sqllogictest
Hex Artifact Content
Not logged in

Artifact 8db95b301ce82e183d1c86ba6cbfb765a23acb43:


0000: 68 61 73 68 2d 74 68 72 65 73 68 6f 6c 64 20 38  hash-threshold 8
0010: 0d 0a 0d 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b  ....statement ok
0020: 0d 0a 43 52 45 41 54 45 20 54 41 42 4c 45 20 74  ..CREATE TABLE t
0030: 61 62 30 28 63 6f 6c 30 20 49 4e 54 45 47 45 52  ab0(col0 INTEGER
0040: 2c 20 63 6f 6c 31 20 49 4e 54 45 47 45 52 2c 20  , col1 INTEGER, 
0050: 63 6f 6c 32 20 49 4e 54 45 47 45 52 29 0d 0a 0d  col2 INTEGER)...
0060: 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 43  .statement ok..C
0070: 52 45 41 54 45 20 54 41 42 4c 45 20 74 61 62 31  REATE TABLE tab1
0080: 28 63 6f 6c 30 20 49 4e 54 45 47 45 52 2c 20 63  (col0 INTEGER, c
0090: 6f 6c 31 20 49 4e 54 45 47 45 52 2c 20 63 6f 6c  ol1 INTEGER, col
00a0: 32 20 49 4e 54 45 47 45 52 29 0d 0a 0d 0a 73 74  2 INTEGER)....st
00b0: 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 43 52 45 41  atement ok..CREA
00c0: 54 45 20 54 41 42 4c 45 20 74 61 62 32 28 63 6f  TE TABLE tab2(co
00d0: 6c 30 20 49 4e 54 45 47 45 52 2c 20 63 6f 6c 31  l0 INTEGER, col1
00e0: 20 49 4e 54 45 47 45 52 2c 20 63 6f 6c 32 20 49   INTEGER, col2 I
00f0: 4e 54 45 47 45 52 29 0d 0a 0d 0a 73 74 61 74 65  NTEGER)....state
0100: 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45 52 54 20  ment ok..INSERT 
0110: 49 4e 54 4f 20 74 61 62 30 20 56 41 4c 55 45 53  INTO tab0 VALUES
0120: 28 39 37 2c 31 2c 39 39 29 0d 0a 0d 0a 73 74 61  (97,1,99)....sta
0130: 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45 52  tement ok..INSER
0140: 54 20 49 4e 54 4f 20 74 61 62 30 20 56 41 4c 55  T INTO tab0 VALU
0150: 45 53 28 31 35 2c 38 31 2c 34 37 29 0d 0a 0d 0a  ES(15,81,47)....
0160: 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49 4e  statement ok..IN
0170: 53 45 52 54 20 49 4e 54 4f 20 74 61 62 30 20 56  SERT INTO tab0 V
0180: 41 4c 55 45 53 28 38 37 2c 32 31 2c 31 30 29 0d  ALUES(87,21,10).
0190: 0a 0d 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d  ...statement ok.
01a0: 0a 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 61 62  .INSERT INTO tab
01b0: 31 20 56 41 4c 55 45 53 28 35 31 2c 31 34 2c 39  1 VALUES(51,14,9
01c0: 36 29 0d 0a 0d 0a 73 74 61 74 65 6d 65 6e 74 20  6)....statement 
01d0: 6f 6b 0d 0a 49 4e 53 45 52 54 20 49 4e 54 4f 20  ok..INSERT INTO 
01e0: 74 61 62 31 20 56 41 4c 55 45 53 28 38 35 2c 35  tab1 VALUES(85,5
01f0: 2c 35 39 29 0d 0a 0d 0a 73 74 61 74 65 6d 65 6e  ,59)....statemen
0200: 74 20 6f 6b 0d 0a 49 4e 53 45 52 54 20 49 4e 54  t ok..INSERT INT
0210: 4f 20 74 61 62 31 20 56 41 4c 55 45 53 28 39 31  O tab1 VALUES(91
0220: 2c 34 37 2c 36 38 29 0d 0a 0d 0a 73 74 61 74 65  ,47,68)....state
0230: 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45 52 54 20  ment ok..INSERT 
0240: 49 4e 54 4f 20 74 61 62 32 20 56 41 4c 55 45 53  INTO tab2 VALUES
0250: 28 36 34 2c 37 37 2c 34 30 29 0d 0a 0d 0a 73 74  (64,77,40)....st
0260: 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45  atement ok..INSE
0270: 52 54 20 49 4e 54 4f 20 74 61 62 32 20 56 41 4c  RT INTO tab2 VAL
0280: 55 45 53 28 37 35 2c 36 37 2c 35 38 29 0d 0a 0d  UES(75,67,58)...
0290: 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49  .statement ok..I
02a0: 4e 53 45 52 54 20 49 4e 54 4f 20 74 61 62 32 20  NSERT INTO tab2 
02b0: 56 41 4c 55 45 53 28 34 36 2c 35 31 2c 32 33 29  VALUES(46,51,23)
02c0: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
02d0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
02e0: 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
02f0: 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63  b2 WHERE NOT - c
0300: 6f 6c 31 20 2b 20 2d 20 2b 20 34 37 20 3e 3d 20  ol1 + - + 47 >= 
0310: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
0320: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
0330: 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 2b 20 2d  ELECT + col0 + -
0340: 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 32   - col2 * + col2
0350: 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 20   FROM tab1 cor0 
0360: 57 48 45 52 45 20 2b 20 63 6f 6c 32 20 2b 20 38  WHERE + col2 + 8
0370: 34 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  4 IS NOT NULL..-
0380: 2d 2d 2d 0d 0a 33 35 36 36 0d 0a 34 37 31 35 0d  ---..3566..4715.
0390: 0a 39 32 36 37 0d 0a 0d 0a 71 75 65 72 79 20 49  .9267....query I
03a0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
03b0: 20 2b 20 2d 20 63 6f 6c 32 20 2a 20 28 20 63 6f   + - col2 * ( co
03c0: 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41  l0 ) FROM tab1 A
03d0: 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 63  S cor0 WHERE + c
03e0: 6f 6c 30 20 2b 20 2b 20 63 6f 6c 31 20 2f 20 2d  ol0 + + col1 / -
03f0: 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d   col0 IS NULL..-
0400: 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
0410: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
0420: 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e  x: aggregate syn
0430: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
0440: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
0450: 6f 72 74 20 6c 61 62 65 6c 2d 33 0d 0a 53 45 4c  ort label-3..SEL
0460: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 28  ECT DISTINCT - (
0470: 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20   + - COUNT( * ) 
0480: 29 20 2b 20 2b 20 43 41 53 54 28 20 35 33 20 41  ) + + CAST( 53 A
0490: 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20  S SIGNED ) FROM 
04a0: 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
04b0: 2d 2d 0d 0a 35 36 0d 0a 0d 0a 73 6b 69 70 69 66  --..56....skipif
04c0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
04d0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
04e0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
04f0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
0500: 54 20 2d 20 28 20 2b 20 2d 20 43 4f 55 4e 54 20  T - ( + - COUNT 
0510: 28 20 2a 20 29 20 29 20 2b 20 2b 20 43 41 53 54  ( * ) ) + + CAST
0520: 20 28 20 35 33 20 41 53 20 49 4e 54 45 47 45 52   ( 53 AS INTEGER
0530: 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
0540: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 36 0d 0a  cor0..----..56..
0550: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
0560: 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30  t..SELECT + col0
0570: 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 31   - col0 + - col1
0580: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
0590: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 32  r0..----..-1..-2
05a0: 31 0d 0a 2d 38 31 0d 0a 0d 0a 71 75 65 72 79 20  1..-81....query 
05b0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
05c0: 54 20 2d 20 63 6f 6c 31 20 2d 20 34 36 20 46 52  T - col1 - 46 FR
05d0: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
05e0: 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 2d 36 30 0d  .----..-51..-60.
05f0: 0a 2d 39 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-93....onlyif m
0600: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
0610: 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
0620: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
0630: 72 74 20 6c 61 62 65 6c 2d 36 0d 0a 53 45 4c 45  rt label-6..SELE
0640: 43 54 20 41 4c 4c 20 43 41 53 54 28 20 4e 55 4c  CT ALL CAST( NUL
0650: 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20  L AS SIGNED ) + 
0660: 2b 20 2d 20 28 20 2d 20 2b 20 63 6f 6c 30 20 29  + - ( - + col0 )
0670: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
0680: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
0690: 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  NULL..NULL....sk
06a0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
06b0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
06c0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
06d0: 65 6c 2d 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  el-6..SELECT ALL
06e0: 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
06f0: 49 4e 54 45 47 45 52 20 29 20 2b 20 2b 20 2d 20  INTEGER ) + + - 
0700: 28 20 2d 20 2b 20 63 6f 6c 30 20 29 20 46 52 4f  ( - + col0 ) FRO
0710: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
0720: 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
0730: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20  ..NULL....query 
0740: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
0750: 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ECT * FROM tab2 
0760: 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  cor0 WHERE NULL 
0770: 3d 20 2d 20 38 38 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  = - 88..----....
0780: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
0790: 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
07a0: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
07b0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
07c0: 2d 38 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 28  -8..SELECT CAST(
07d0: 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
07e0: 29 20 2d 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20  ) - + col1 FROM 
07f0: 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
0800: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
0810: 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
0820: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
0830: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
0840: 6f 72 74 20 6c 61 62 65 6c 2d 38 0d 0a 53 45 4c  ort label-8..SEL
0850: 45 43 54 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  ECT CAST ( NULL 
0860: 41 53 20 49 4e 54 45 47 45 52 20 29 20 2d 20 2b  AS INTEGER ) - +
0870: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
0880: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
0890: 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
08a0: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
08b0: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
08c0: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41  CT * FROM tab2 A
08d0: 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c  S cor0 WHERE NUL
08e0: 4c 20 3d 20 63 6f 6c 31 20 41 4e 44 20 4e 4f 54  L = col1 AND NOT
08f0: 20 37 35 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d   75 IS NULL..---
0900: 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
0910: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
0920: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
0930: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
0940: 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54  ..SELECT - COUNT
0950: 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  ( DISTINCT + col
0960: 30 20 29 20 2d 20 2b 20 2b 20 53 55 4d 28 20 44  0 ) - + + SUM( D
0970: 49 53 54 49 4e 43 54 20 2d 20 28 20 2d 20 31 31  ISTINCT - ( - 11
0980: 20 29 20 29 20 2b 20 33 32 20 46 52 4f 4d 20 74   ) ) + 32 FROM t
0990: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
09a0: 2d 0d 0a 31 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..18....skipif 
09b0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
09c0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
09d0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
09e0: 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54  ..SELECT - COUNT
09f0: 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f   ( DISTINCT + co
0a00: 6c 30 20 29 20 2d 20 2b 20 2b 20 53 55 4d 20 28  l0 ) - + + SUM (
0a10: 20 44 49 53 54 49 4e 43 54 20 2d 20 28 20 2d 20   DISTINCT - ( - 
0a20: 31 31 20 29 20 29 20 2b 20 33 32 20 46 52 4f 4d  11 ) ) + 32 FROM
0a30: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
0a40: 2d 2d 2d 0d 0a 31 38 0d 0a 0d 0a 71 75 65 72 79  ---..18....query
0a50: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
0a60: 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f  CT DISTINCT - co
0a70: 6c 32 20 2b 20 2d 20 2d 20 34 30 20 41 53 20 63  l2 + - - 40 AS c
0a80: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol0 FROM tab0..-
0a90: 2d 2d 2d 0d 0a 2d 35 39 0d 0a 2d 37 0d 0a 33 30  ---..-59..-7..30
0aa0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
0ab0: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
0ac0: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
0ad0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 0d  owsort label-12.
0ae0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 4d 41 58 28  .SELECT ALL MAX(
0af0: 20 2d 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c   - col2 ) AS col
0b00: 30 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  0 FROM tab0 WHER
0b10: 45 20 2d 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 2b  E - - col1 * - +
0b20: 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c   col2 IS NOT NUL
0b30: 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 0d 0a  L..----..-10....
0b40: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
0b50: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
0b60: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
0b70: 61 62 65 6c 2d 31 32 0d 0a 53 45 4c 45 43 54 20  abel-12..SELECT 
0b80: 41 4c 4c 20 4d 41 58 20 28 20 2d 20 63 6f 6c 32  ALL MAX ( - col2
0b90: 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
0ba0: 74 61 62 30 20 57 48 45 52 45 20 2d 20 2d 20 63  tab0 WHERE - - c
0bb0: 6f 6c 31 20 2a 20 2d 20 2b 20 63 6f 6c 32 20 49  ol1 * - + col2 I
0bc0: 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
0bd0: 0d 0a 2d 31 30 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-10....query I
0be0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
0bf0: 20 2b 20 35 31 20 2d 20 2b 20 63 6f 6c 30 20 2b   + 51 - + col0 +
0c00: 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   + col2 FROM tab
0c10: 31 0d 0a 2d 2d 2d 2d 0d 0a 32 35 0d 0a 32 38 0d  1..----..25..28.
0c20: 0a 39 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .96....query I r
0c30: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
0c40: 20 28 20 63 6f 6c 32 20 29 20 2d 20 2b 20 2d 20   ( col2 ) - + - 
0c50: 63 6f 6c 31 20 2b 20 63 6f 6c 31 20 2d 20 63 6f  col1 + col1 - co
0c60: 6c 32 20 2a 20 2d 20 2b 20 63 6f 6c 32 20 2b 20  l2 * - + col2 + 
0c70: 2d 20 31 34 20 46 52 4f 4d 20 74 61 62 32 0d 0a  - 14 FROM tab2..
0c80: 2d 2d 2d 2d 0d 0a 31 37 38 30 0d 0a 33 35 34 32  ----..1780..3542
0c90: 0d 0a 36 34 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..640....skipif 
0ca0: 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
0cb0: 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
0cc0: 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
0cd0: 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
0ce0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
0cf0: 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 63  t..SELECT col0 c
0d00: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48  ol2 FROM tab1 WH
0d10: 45 52 45 20 2d 20 2b 20 28 20 2d 20 63 6f 6c 32  ERE - + ( - col2
0d20: 20 29 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e   ) NOT BETWEEN N
0d30: 55 4c 4c 20 41 4e 44 20 28 20 28 20 63 6f 6c 30  ULL AND ( ( col0
0d40: 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a   ) )..----..51..
0d50: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
0d60: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63  rt..SELECT ALL c
0d70: 6f 6c 30 2c 20 2d 20 35 32 20 2a 20 63 6f 6c 30  ol0, - 52 * col0
0d80: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
0d90: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 2d 37  b0..----..15..-7
0da0: 38 30 0d 0a 38 37 0d 0a 2d 34 35 32 34 0d 0a 39  80..87..-4524..9
0db0: 37 0d 0a 2d 35 30 34 34 0d 0a 0d 0a 6f 6e 6c 79  7..-5044....only
0dc0: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
0dd0: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
0de0: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  ype: ..query II 
0df0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37  rowsort label-17
0e00: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c  ..SELECT ALL col
0e10: 31 2c 20 2b 20 28 20 2b 20 2b 20 43 41 53 54 28  1, + ( + + CAST(
0e20: 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
0e30: 29 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ) ) FROM tab2..-
0e40: 2d 2d 2d 0d 0a 35 31 0d 0a 4e 55 4c 4c 0d 0a 36  ---..51..NULL..6
0e50: 37 0d 0a 4e 55 4c 4c 0d 0a 37 37 0d 0a 4e 55 4c  7..NULL..77..NUL
0e60: 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
0e70: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
0e80: 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
0e90: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37 0d 0a 53  sort label-17..S
0ea0: 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 2c 20  ELECT ALL col1, 
0eb0: 2b 20 28 20 2b 20 2b 20 43 41 53 54 20 28 20 4e  + ( + + CAST ( N
0ec0: 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
0ed0: 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d   ) FROM tab2..--
0ee0: 2d 2d 0d 0a 35 31 0d 0a 4e 55 4c 4c 0d 0a 36 37  --..51..NULL..67
0ef0: 0d 0a 4e 55 4c 4c 0d 0a 37 37 0d 0a 4e 55 4c 4c  ..NULL..77..NULL
0f00: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
0f10: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 34  sort..SELECT - 4
0f20: 30 20 41 53 20 63 6f 6c 30 2c 20 28 20 2d 20 2d  0 AS col0, ( - -
0f30: 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62   col1 ) FROM tab
0f40: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
0f50: 0a 2d 34 30 0d 0a 31 0d 0a 2d 34 30 0d 0a 32 31  .-40..1..-40..21
0f60: 0d 0a 2d 34 30 0d 0a 38 31 0d 0a 0d 0a 6f 6e 6c  ..-40..81....onl
0f70: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
0f80: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
0f90: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
0fa0: 6c 61 62 65 6c 2d 31 39 0d 0a 53 45 4c 45 43 54  label-19..SELECT
0fb0: 20 41 4c 4c 20 43 4f 55 4e 54 28 20 2a 20 29 20   ALL COUNT( * ) 
0fc0: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
0fd0: 30 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  0 cor0 WHERE NOT
0fe0: 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c   NULL IS NOT NUL
0ff0: 4c 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b  L..----..3....sk
1000: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1010: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1020: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1030: 65 6c 2d 31 39 0d 0a 53 45 4c 45 43 54 20 41 4c  el-19..SELECT AL
1040: 4c 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53  L COUNT ( * ) AS
1050: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
1060: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  cor0 WHERE NOT N
1070: 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ULL IS NOT NULL.
1080: 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79  .----..3....only
1090: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
10a0: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56  gate syntax: DIV
10b0: 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
10c0: 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
10d0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
10e0: 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  0..SELECT DISTIN
10f0: 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 44 49  CT COUNT( * ) DI
1100: 56 20 36 33 20 41 53 20 63 6f 6c 32 20 46 52 4f  V 63 AS col2 FRO
1110: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
1120: 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 30 20  HERE NOT - col0 
1130: 3c 3d 20 28 20 63 6f 6c 31 20 2b 20 32 35 20 2a  <= ( col1 + 25 *
1140: 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 30   - col0 + + col0
1150: 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73   )..----..0....s
1160: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1170: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1180: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1190: 62 65 6c 2d 32 30 0d 0a 53 45 4c 45 43 54 20 44  bel-20..SELECT D
11a0: 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 20 28 20  ISTINCT COUNT ( 
11b0: 2a 20 29 20 2f 20 36 33 20 41 53 20 63 6f 6c 32  * ) / 63 AS col2
11c0: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
11d0: 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63  r0 WHERE NOT - c
11e0: 6f 6c 30 20 3c 3d 20 28 20 63 6f 6c 31 20 2b 20  ol0 <= ( col1 + 
11f0: 32 35 20 2a 20 2d 20 63 6f 6c 30 20 2b 20 2b 20  25 * - col0 + + 
1200: 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  col0 )..----..0.
1210: 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
1220: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
1230: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
1240: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
1250: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
1260: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1270: 45 43 54 20 2b 20 2b 20 36 37 20 63 6f 6c 30 20  ECT + + 67 col0 
1280: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
1290: 30 0d 0a 2d 2d 2d 2d 0d 0a 36 37 0d 0a 36 37 0d  0..----..67..67.
12a0: 0a 36 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .67....onlyif my
12b0: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
12c0: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
12d0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
12e0: 32 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  22..SELECT ALL +
12f0: 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53   + COUNT( * ) AS
1300: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
1310: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f  AS cor0 WHERE co
1320: 6c 32 20 2b 20 2d 20 38 36 20 49 53 20 4e 4f 54  l2 + - 86 IS NOT
1330: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   NULL..----..3..
1340: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1350: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1360: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1370: 20 6c 61 62 65 6c 2d 32 32 0d 0a 53 45 4c 45 43   label-22..SELEC
1380: 54 20 41 4c 4c 20 2b 20 2b 20 43 4f 55 4e 54 20  T ALL + + COUNT 
1390: 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ( * ) AS col0 FR
13a0: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
13b0: 57 48 45 52 45 20 63 6f 6c 32 20 2b 20 2d 20 38  WHERE col2 + - 8
13c0: 36 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  6 IS NOT NULL..-
13d0: 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20  ---..3....query 
13e0: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
13f0: 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32  CT DISTINCT col2
1400: 2c 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  , + col1 FROM ta
1410: 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
1420: 20 2d 20 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e   - col0 IS NOT N
1430: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 35  ULL..----..59..5
1440: 0d 0a 36 38 0d 0a 34 37 0d 0a 39 36 0d 0a 31 34  ..68..47..96..14
1450: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
1460: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20  ort..SELECT + ( 
1470: 2b 20 63 6f 6c 31 20 29 20 2a 20 63 6f 6c 30 20  + col1 ) * col0 
1480: 2b 20 2d 20 2d 20 34 33 20 2a 20 63 6f 6c 30 20  + - - 43 * col0 
1490: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
14a0: 30 0d 0a 2d 2d 2d 2d 0d 0a 34 33 32 34 0d 0a 37  0..----..4324..7
14b0: 36 38 30 0d 0a 38 32 35 30 0d 0a 0d 0a 73 6b 69  680..8250....ski
14c0: 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
14d0: 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
14e0: 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
14f0: 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
1500: 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
1510: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
1520: 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20 63 6f  STINCT - col0 co
1530: 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
1540: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28  cor0 WHERE NOT (
1550: 20 4e 55 4c 4c 20 29 20 3e 3d 20 2b 20 2d 20 63   NULL ) >= + - c
1560: 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ol0..----....que
1570: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1580: 4c 45 43 54 20 2b 20 63 6f 6c 31 20 46 52 4f 4d  LECT + col1 FROM
1590: 20 74 61 62 30 20 57 48 45 52 45 20 28 20 2d 20   tab0 WHERE ( - 
15a0: 34 34 20 29 20 42 45 54 57 45 45 4e 20 4e 55 4c  44 ) BETWEEN NUL
15b0: 4c 20 41 4e 44 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d  L AND col1..----
15c0: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
15d0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
15e0: 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c 31 20 46 52   col1, + col1 FR
15f0: 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
1600: 54 20 4e 55 4c 4c 20 3e 20 28 20 4e 55 4c 4c 20  T NULL > ( NULL 
1610: 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  )..----....query
1620: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1630: 43 54 20 2b 20 36 31 20 2b 20 28 20 2d 20 63 6f  CT + 61 + ( - co
1640: 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a  l1 ) FROM tab2..
1650: 2d 2d 2d 2d 0d 0a 2d 31 36 0d 0a 2d 36 0d 0a 31  ----..-16..-6..1
1660: 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  0....query III r
1670: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
1680: 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
1690: 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20 2d 20   NULL BETWEEN - 
16a0: 2b 20 37 39 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d  + 79 AND NULL..-
16b0: 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
16c0: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
16d0: 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e  x: aggregate syn
16e0: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
16f0: 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
1700: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 30 0d 0a 53  sort label-30..S
1710: 45 4c 45 43 54 20 2d 20 4d 49 4e 28 20 44 49 53  ELECT - MIN( DIS
1720: 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20 29 20 2b  TINCT + col2 ) +
1730: 20 31 35 20 63 6f 6c 30 2c 20 43 4f 55 4e 54 28   15 col0, COUNT(
1740: 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   * ) AS col1 FRO
1750: 4d 20 74 61 62 32 20 57 48 45 52 45 20 2d 20 43  M tab2 WHERE - C
1760: 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
1770: 4e 45 44 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c  NED ) IS NOT NUL
1780: 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 30  L..----..NULL..0
1790: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
17a0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
17b0: 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
17c0: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
17d0: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
17e0: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
17f0: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
1800: 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
1810: 65 6c 2d 33 30 0d 0a 53 45 4c 45 43 54 20 2d 20  el-30..SELECT - 
1820: 4d 49 4e 20 28 20 44 49 53 54 49 4e 43 54 20 2b  MIN ( DISTINCT +
1830: 20 63 6f 6c 32 20 29 20 2b 20 31 35 20 63 6f 6c   col2 ) + 15 col
1840: 30 2c 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41  0, COUNT ( * ) A
1850: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
1860: 20 57 48 45 52 45 20 2d 20 43 41 53 54 20 28 20   WHERE - CAST ( 
1870: 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
1880: 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  ) IS NOT NULL..-
1890: 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 30 0d 0a 0d 0a  ---..NULL..0....
18a0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
18b0: 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72  AST syntax: aggr
18c0: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49  egate syntax: SI
18d0: 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
18e0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
18f0: 65 6c 2d 33 31 0d 0a 53 45 4c 45 43 54 20 44 49  el-31..SELECT DI
1900: 53 54 49 4e 43 54 20 2b 20 4d 41 58 28 20 44 49  STINCT + MAX( DI
1910: 53 54 49 4e 43 54 20 2b 20 2d 20 43 41 53 54 28  STINCT + - CAST(
1920: 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
1930: 29 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ) ) AS col2 FROM
1940: 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   tab0..----..NUL
1950: 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
1960: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1970: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1980: 6f 72 74 20 6c 61 62 65 6c 2d 33 31 0d 0a 53 45  ort label-31..SE
1990: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
19a0: 4d 41 58 20 28 20 44 49 53 54 49 4e 43 54 20 2b  MAX ( DISTINCT +
19b0: 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   - CAST ( NULL A
19c0: 53 20 49 4e 54 45 47 45 52 20 29 20 29 20 41 53  S INTEGER ) ) AS
19d0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
19e0: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f  .----..NULL....o
19f0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
1a00: 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
1a10: 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
1a20: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1a30: 33 32 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53  32..SELECT - CAS
1a40: 54 28 20 2b 20 63 6f 6c 32 20 41 53 20 53 49 47  T( + col2 AS SIG
1a50: 4e 45 44 20 29 20 2a 20 2b 20 35 38 20 2b 20 2d  NED ) * + 58 + -
1a60: 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   + col0 FROM tab
1a70: 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 35 30 37 0d 0a  1..----..-3507..
1a80: 2d 34 30 33 35 0d 0a 2d 35 36 31 39 0d 0a 0d 0a  -4035..-5619....
1a90: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1aa0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1ab0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1ac0: 61 62 65 6c 2d 33 32 0d 0a 53 45 4c 45 43 54 20  abel-32..SELECT 
1ad0: 2d 20 43 41 53 54 20 28 20 2b 20 63 6f 6c 32 20  - CAST ( + col2 
1ae0: 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2b  AS INTEGER ) * +
1af0: 20 35 38 20 2b 20 2d 20 2b 20 63 6f 6c 30 20 46   58 + - + col0 F
1b00: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
1b10: 2d 33 35 30 37 0d 0a 2d 34 30 33 35 0d 0a 2d 35  -3507..-4035..-5
1b20: 36 31 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  619....onlyif my
1b30: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
1b40: 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a  x: DECIMAL type:
1b50: 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77   ..query III row
1b60: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 33 0d 0a 53  sort label-33..S
1b70: 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
1b80: 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20   tab2 WHERE NOT 
1b90: 4e 55 4c 4c 20 3e 3d 20 63 6f 6c 30 20 2b 20 2d  NULL >= col0 + -
1ba0: 20 63 6f 6c 30 20 2a 20 2d 20 2b 20 43 41 53 54   col0 * - + CAST
1bb0: 28 20 63 6f 6c 32 20 41 53 20 44 45 43 49 4d 41  ( col2 AS DECIMA
1bc0: 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  L )..----....ski
1bd0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1be0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1bf0: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
1c00: 62 65 6c 2d 33 33 0d 0a 53 45 4c 45 43 54 20 41  bel-33..SELECT A
1c10: 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  LL * FROM tab2 W
1c20: 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3e 3d  HERE NOT NULL >=
1c30: 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 30 20 2a   col0 + - col0 *
1c40: 20 2d 20 2b 20 43 41 53 54 20 28 20 63 6f 6c 32   - + CAST ( col2
1c50: 20 41 53 20 52 45 41 4c 20 29 0d 0a 2d 2d 2d 2d   AS REAL )..----
1c60: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
1c70: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
1c80: 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53  L * FROM tab0 AS
1c90: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
1ca0: 4e 55 4c 4c 20 3d 20 28 20 2b 20 63 6f 6c 32 20  NULL = ( + col2 
1cb0: 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  )..----....query
1cc0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1cd0: 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 39 20  CT DISTINCT - 9 
1ce0: 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  + col0 FROM tab2
1cf0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1d00: 33 37 0d 0a 35 35 0d 0a 36 36 0d 0a 0d 0a 71 75  37..55..66....qu
1d10: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1d20: 45 4c 45 43 54 20 41 4c 4c 20 28 20 2b 20 33 33  ELECT ALL ( + 33
1d30: 20 29 20 2b 20 2b 20 63 6f 6c 31 20 46 52 4f 4d   ) + + col1 FROM
1d40: 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
1d50: 0d 0a 33 38 0d 0a 34 37 0d 0a 38 30 0d 0a 0d 0a  ..38..47..80....
1d60: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1d70: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20  .SELECT ALL - - 
1d80: 63 6f 6c 30 20 2b 20 63 6f 6c 30 20 2a 20 2d 20  col0 + col0 * - 
1d90: 2d 20 34 35 20 41 53 20 63 6f 6c 30 20 46 52 4f  - 45 AS col0 FRO
1da0: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
1db0: 2d 2d 2d 2d 0d 0a 32 33 34 36 0d 0a 33 39 31 30  ----..2346..3910
1dc0: 0d 0a 34 31 38 36 0d 0a 0d 0a 71 75 65 72 79 20  ..4186....query 
1dd0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1de0: 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  T DISTINCT + col
1df0: 30 20 2b 20 2d 20 36 35 20 46 52 4f 4d 20 74 61  0 + - 65 FROM ta
1e00: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 30 0d 0a 32  b0..----..-50..2
1e10: 32 0d 0a 33 32 0d 0a 0d 0a 71 75 65 72 79 20 49  2..32....query I
1e20: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1e30: 20 36 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   62 AS col0 FROM
1e40: 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 43 52   tab2 AS cor0 CR
1e50: 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53  OSS JOIN tab0 AS
1e60: 20 63 6f 72 31 20 57 48 45 52 45 20 4e 4f 54 20   cor1 WHERE NOT 
1e70: 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  NULL IS NOT NULL
1e80: 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
1e90: 20 68 61 73 68 69 6e 67 20 74 6f 20 35 31 64 64   hashing to 51dd
1ea0: 32 37 37 31 64 35 31 36 63 65 62 39 33 35 34 38  2771d516ceb93548
1eb0: 33 65 64 65 64 37 38 61 35 66 61 30 0d 0a 0d 0a  3eded78a5fa0....
1ec0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1ed0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 39 33  .SELECT ALL + 93
1ee0: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
1ef0: 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53  b1 AS cor0 CROSS
1f00: 20 4a 4f 49 4e 20 74 61 62 32 20 41 53 20 63 6f   JOIN tab2 AS co
1f10: 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  r1..----..9 valu
1f20: 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 65 36  es hashing to e6
1f30: 34 31 30 35 64 66 61 61 39 66 62 64 32 30 31 61  4105dfaa9fbd201a
1f40: 64 62 62 31 66 33 66 36 39 36 38 62 64 65 0d 0a  dbb1f3f6968bde..
1f50: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1f60: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
1f70: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
1f80: 73 6f 72 74 20 6c 61 62 65 6c 2d 34 31 0d 0a 53  sort label-41..S
1f90: 45 4c 45 43 54 20 2b 20 4d 49 4e 28 20 2d 20 32  ELECT + MIN( - 2
1fa0: 34 20 29 20 2b 20 2b 20 2b 20 31 20 46 52 4f 4d  4 ) + + + 1 FROM
1fb0: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
1fc0: 2d 2d 2d 0d 0a 2d 32 33 0d 0a 0d 0a 73 6b 69 70  ---..-23....skip
1fd0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1fe0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1ff0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2000: 2d 34 31 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 49  -41..SELECT + MI
2010: 4e 20 28 20 2d 20 32 34 20 29 20 2b 20 2b 20 2b  N ( - 24 ) + + +
2020: 20 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   1 FROM tab1 AS 
2030: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d  cor0..----..-23.
2040: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2050: 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  rt..SELECT - col
2060: 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
2070: 6f 72 30 20 57 48 45 52 45 20 2d 20 28 20 2b 20  or0 WHERE - ( + 
2080: 2d 20 63 6f 6c 32 20 29 20 3e 20 4e 55 4c 4c 0d  - col2 ) > NULL.
2090: 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
20a0: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
20b0: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
20c0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
20d0: 6c 2d 34 33 0d 0a 53 45 4c 45 43 54 20 2d 20 2b  l-43..SELECT - +
20e0: 20 34 35 20 2b 20 2b 20 53 55 4d 28 20 44 49 53   45 + + SUM( DIS
20f0: 54 49 4e 43 54 20 2d 20 2d 20 34 32 20 29 20 46  TINCT - - 42 ) F
2100: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
2110: 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b  ..----..-3....sk
2120: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2130: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2140: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2150: 65 6c 2d 34 33 0d 0a 53 45 4c 45 43 54 20 2d 20  el-43..SELECT - 
2160: 2b 20 34 35 20 2b 20 2b 20 53 55 4d 20 28 20 44  + 45 + + SUM ( D
2170: 49 53 54 49 4e 43 54 20 2d 20 2d 20 34 32 20 29  ISTINCT - - 42 )
2180: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
2190: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a  r0..----..-3....
21a0: 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
21b0: 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
21c0: 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
21d0: 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
21e0: 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
21f0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2200: 54 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 34 39 2c  T - col2 + - 49,
2210: 20 31 39 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   19 col2 FROM ta
2220: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
2230: 0d 0a 2d 31 30 38 0d 0a 31 39 0d 0a 2d 31 31 37  ..-108..19..-117
2240: 0d 0a 31 39 0d 0a 2d 31 34 35 0d 0a 31 39 0d 0a  ..19..-145..19..
2250: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
2260: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
2270: 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  INCT * FROM tab0
2280: 20 57 48 45 52 45 20 2d 20 2b 20 63 6f 6c 32 20   WHERE - + col2 
2290: 3c 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  <= NULL..----...
22a0: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
22b0: 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 2c 20  t..SELECT col1, 
22c0: 34 37 20 2a 20 63 6f 6c 32 20 46 52 4f 4d 20 74  47 * col2 FROM t
22d0: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 34  ab1..----..14..4
22e0: 35 31 32 0d 0a 34 37 0d 0a 33 31 39 36 0d 0a 35  512..47..3196..5
22f0: 0d 0a 32 37 37 33 0d 0a 0d 0a 71 75 65 72 79 20  ..2773....query 
2300: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2310: 54 20 2b 20 63 6f 6c 30 20 2d 20 2d 20 33 31 20  T + col0 - - 31 
2320: 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
2330: 4e 4f 54 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 37  NOT + col0 * + 7
2340: 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  1 IS NULL..----.
2350: 0a 31 30 36 0d 0a 37 37 0d 0a 39 35 0d 0a 0d 0a  .106..77..95....
2360: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
2370: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
2380: 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
2390: 2d 20 2d 20 63 6f 6c 32 20 2b 20 37 36 20 49 53  - - col2 + 76 IS
23a0: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
23b0: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
23c0: 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
23d0: 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 4e  tab1 WHERE NOT N
23e0: 55 4c 4c 20 3d 20 36 31 20 2f 20 2b 20 63 6f 6c  ULL = 61 / + col
23f0: 30 20 41 4e 44 20 4e 4f 54 20 28 20 4e 4f 54 20  0 AND NOT ( NOT 
2400: 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col1 IS NOT NULL
2410: 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72   )..----....quer
2420: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2430: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63  ECT DISTINCT + c
2440: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
2450: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
2460: 28 20 4e 4f 54 20 63 6f 6c 30 20 49 53 20 4e 4f  ( NOT col0 IS NO
2470: 54 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a  T NULL )..----..
2480: 32 33 0d 0a 34 30 0d 0a 35 38 0d 0a 0d 0a 6f 6e  23..40..58....on
2490: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
24a0: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
24b0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
24c0: 20 6c 61 62 65 6c 2d 35 31 0d 0a 53 45 4c 45 43   label-51..SELEC
24d0: 54 20 33 20 2a 20 53 55 4d 28 20 2d 20 2b 20 63  T 3 * SUM( - + c
24e0: 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 30 20  ol2 ) FROM tab0 
24f0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
2500: 34 36 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  468....skipif my
2510: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2520: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
2530: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 31 0d 0a  wsort label-51..
2540: 53 45 4c 45 43 54 20 33 20 2a 20 53 55 4d 20 28  SELECT 3 * SUM (
2550: 20 2d 20 2b 20 63 6f 6c 32 20 29 20 46 52 4f 4d   - + col2 ) FROM
2560: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
2570: 2d 2d 2d 0d 0a 2d 34 36 38 0d 0a 0d 0a 6f 6e 6c  ---..-468....onl
2580: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
2590: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
25a0: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
25b0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
25c0: 35 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  52..SELECT ALL *
25d0: 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
25e0: 20 4e 4f 54 20 2d 20 2b 20 43 41 53 54 28 20 4e   NOT - + CAST( N
25f0: 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
2600: 4e 4f 54 20 42 45 54 57 45 45 4e 20 2b 20 2b 20  NOT BETWEEN + + 
2610: 63 6f 6c 32 20 41 4e 44 20 2b 20 2d 20 63 6f 6c  col2 AND + - col
2620: 31 20 2a 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a  1 * col1..----..
2630: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2640: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2650: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
2660: 72 74 20 6c 61 62 65 6c 2d 35 32 0d 0a 53 45 4c  rt label-52..SEL
2670: 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
2680: 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab1 WHERE NOT - 
2690: 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
26a0: 20 49 4e 54 45 47 45 52 20 29 20 4e 4f 54 20 42   INTEGER ) NOT B
26b0: 45 54 57 45 45 4e 20 2b 20 2b 20 63 6f 6c 32 20  ETWEEN + + col2 
26c0: 41 4e 44 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 63  AND + - col1 * c
26d0: 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ol1..----....que
26e0: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
26f0: 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 41 53 20  ELECT + col1 AS 
2700: 63 6f 6c 31 2c 20 36 33 20 46 52 4f 4d 20 74 61  col1, 63 FROM ta
2710: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 36 33  b1..----..14..63
2720: 0d 0a 34 37 0d 0a 36 33 0d 0a 35 0d 0a 36 33 0d  ..47..63..5..63.
2730: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2740: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
2750: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
2760: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 34 0d 0a  wsort label-54..
2770: 53 45 4c 45 43 54 20 41 4c 4c 20 4d 41 58 28 20  SELECT ALL MAX( 
2780: 41 4c 4c 20 2b 20 28 20 2b 20 63 6f 6c 31 20 29  ALL + ( + col1 )
2790: 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
27a0: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 38 31 0d 0a  tab0..----..81..
27b0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
27c0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
27d0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
27e0: 20 6c 61 62 65 6c 2d 35 34 0d 0a 53 45 4c 45 43   label-54..SELEC
27f0: 54 20 41 4c 4c 20 4d 41 58 20 28 20 41 4c 4c 20  T ALL MAX ( ALL 
2800: 2b 20 28 20 2b 20 63 6f 6c 31 20 29 20 29 20 41  + ( + col1 ) ) A
2810: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
2820: 0d 0a 2d 2d 2d 2d 0d 0a 38 31 0d 0a 0d 0a 71 75  ..----..81....qu
2830: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2840: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
2850: 20 33 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53   30 FROM tab2 AS
2860: 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
2870: 20 74 61 62 31 20 41 53 20 63 6f 72 31 0d 0a 2d   tab1 AS cor1..-
2880: 2d 2d 2d 0d 0a 33 30 0d 0a 0d 0a 6f 6e 6c 79 69  ---..30....onlyi
2890: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
28a0: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
28b0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
28c0: 62 65 6c 2d 35 36 0d 0a 53 45 4c 45 43 54 20 41  bel-56..SELECT A
28d0: 4c 4c 20 2b 20 4d 49 4e 28 20 41 4c 4c 20 63 6f  LL + MIN( ALL co
28e0: 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a  l0 ) FROM tab0..
28f0: 2d 2d 2d 2d 0d 0a 31 35 0d 0a 0d 0a 73 6b 69 70  ----..15....skip
2900: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2910: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2920: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2930: 2d 35 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  -56..SELECT ALL 
2940: 2b 20 4d 49 4e 20 28 20 41 4c 4c 20 63 6f 6c 30  + MIN ( ALL col0
2950: 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
2960: 2d 2d 0d 0a 31 35 0d 0a 0d 0a 71 75 65 72 79 20  --..15....query 
2970: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2980: 54 20 41 4c 4c 20 2b 20 33 35 20 2a 20 2d 20 35  T ALL + 35 * - 5
2990: 33 20 2b 20 2b 20 2d 20 32 30 20 41 53 20 63 6f  3 + + - 20 AS co
29a0: 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
29b0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38 37  cor0..----..-187
29c0: 35 0d 0a 2d 31 38 37 35 0d 0a 2d 31 38 37 35 0d  5..-1875..-1875.
29d0: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
29e0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
29f0: 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
2a00: 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
2a10: 35 38 20 2b 20 2d 20 63 6f 6c 30 20 4e 4f 54 20  58 + - col0 NOT 
2a20: 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44  BETWEEN NULL AND
2a30: 20 2b 20 39 37 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   + 97..----....o
2a40: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
2a50: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
2a60: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2a70: 74 20 6c 61 62 65 6c 2d 35 39 0d 0a 53 45 4c 45  t label-59..SELE
2a80: 43 54 20 53 55 4d 28 20 2b 20 39 33 20 29 20 46  CT SUM( + 93 ) F
2a90: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
2aa0: 0d 0a 2d 2d 2d 2d 0d 0a 32 37 39 0d 0a 0d 0a 73  ..----..279....s
2ab0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2ac0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2ad0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2ae0: 62 65 6c 2d 35 39 0d 0a 53 45 4c 45 43 54 20 53  bel-59..SELECT S
2af0: 55 4d 20 28 20 2b 20 39 33 20 29 20 46 52 4f 4d  UM ( + 93 ) FROM
2b00: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
2b10: 2d 2d 2d 0d 0a 32 37 39 0d 0a 0d 0a 73 6b 69 70  ---..279....skip
2b20: 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
2b30: 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
2b40: 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
2b50: 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
2b60: 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
2b70: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
2b80: 54 49 4e 43 54 20 2b 20 37 32 20 2b 20 2d 20 63  TINCT + 72 + - c
2b90: 6f 6c 32 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  ol2 col2 FROM ta
2ba0: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
2bb0: 0d 0a 31 34 0d 0a 33 32 0d 0a 34 39 0d 0a 0d 0a  ..14..32..49....
2bc0: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
2bd0: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63  ..SELECT ALL + c
2be0: 6f 6c 30 20 2a 20 63 6f 6c 30 20 41 53 20 63 6f  ol0 * col0 AS co
2bf0: 6c 31 2c 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f  l1, - col0 AS co
2c00: 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
2c10: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 36 30 31  cor0..----..2601
2c20: 0d 0a 2d 35 31 0d 0a 37 32 32 35 0d 0a 2d 38 35  ..-51..7225..-85
2c30: 0d 0a 38 32 38 31 0d 0a 2d 39 31 0d 0a 0d 0a 71  ..8281..-91....q
2c40: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
2c50: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2c60: 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53  T * FROM tab1 AS
2c70: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
2c80: 4e 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e  NULL NOT BETWEEN
2c90: 20 4e 55 4c 4c 20 41 4e 44 20 2d 20 34 36 20 2b   NULL AND - 46 +
2ca0: 20 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d   - col2..----...
2cb0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2cc0: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2cd0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2ce0: 6f 72 74 20 6c 61 62 65 6c 2d 36 33 0d 0a 53 45  ort label-63..SE
2cf0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 36 35  LECT DISTINCT 65
2d00: 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52   + COUNT( * ) FR
2d10: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
2d20: 0a 2d 2d 2d 2d 0d 0a 36 38 0d 0a 0d 0a 73 6b 69  .----..68....ski
2d30: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2d40: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2d50: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2d60: 6c 2d 36 33 0d 0a 53 45 4c 45 43 54 20 44 49 53  l-63..SELECT DIS
2d70: 54 49 4e 43 54 20 36 35 20 2b 20 43 4f 55 4e 54  TINCT 65 + COUNT
2d80: 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31   ( * ) FROM tab1
2d90: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2da0: 36 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  68....query II r
2db0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
2dc0: 20 63 6f 6c 30 20 2a 20 2b 20 33 37 2c 20 63 6f   col0 * + 37, co
2dd0: 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l1 AS col0 FROM 
2de0: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 32 31  tab0..----..-321
2df0: 39 0d 0a 32 31 0d 0a 2d 33 35 38 39 0d 0a 31 0d  9..21..-3589..1.
2e00: 0a 2d 35 35 35 0d 0a 38 31 0d 0a 0d 0a 6f 6e 6c  .-555..81....onl
2e10: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
2e20: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
2e30: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2e40: 6c 61 62 65 6c 2d 36 35 0d 0a 53 45 4c 45 43 54  label-65..SELECT
2e50: 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20   COUNT( * ) * + 
2e60: 35 33 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  53 FROM tab1..--
2e70: 2d 2d 0d 0a 31 35 39 0d 0a 0d 0a 73 6b 69 70 69  --..159....skipi
2e80: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2e90: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2ea0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2eb0: 36 35 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54  65..SELECT COUNT
2ec0: 20 28 20 2a 20 29 20 2a 20 2b 20 35 33 20 46 52   ( * ) * + 53 FR
2ed0: 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab1..----..1
2ee0: 35 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  59....query I ro
2ef0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
2f00: 2b 20 63 6f 6c 32 20 2f 20 2d 20 39 37 20 2d 20  + col2 / - 97 - 
2f10: 2d 20 63 6f 6c 31 20 2d 20 2d 20 2b 20 35 30 20  - col1 - - + 50 
2f20: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2f30: 32 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20  2 WHERE NULL IS 
2f40: 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
2f50: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
2f60: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
2f70: 4e 43 54 20 28 20 2b 20 2b 20 63 6f 6c 31 20 29  NCT ( + + col1 )
2f80: 2c 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30  , - col1 AS col0
2f90: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
2fa0: 0d 0a 31 34 0d 0a 2d 31 34 0d 0a 34 37 0d 0a 2d  ..14..-14..47..-
2fb0: 34 37 0d 0a 35 0d 0a 2d 35 0d 0a 0d 0a 71 75 65  47..5..-5....que
2fc0: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
2fd0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2fe0: 2a 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  * FROM tab2 cor0
2ff0: 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
3000: 4e 4f 54 20 42 45 54 57 45 45 4e 20 63 6f 6c 32  NOT BETWEEN col2
3010: 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   AND NULL..----.
3020: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
3030: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
3040: 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
3050: 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
3060: 4e 4f 54 20 28 20 63 6f 6c 32 20 2a 20 2d 20 2b  NOT ( col2 * - +
3070: 20 63 6f 6c 32 20 2b 20 35 32 20 29 20 3e 20 4e   col2 + 52 ) > N
3080: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ULL..----....onl
3090: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
30a0: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
30b0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
30c0: 6c 61 62 65 6c 2d 37 30 0d 0a 53 45 4c 45 43 54  label-70..SELECT
30d0: 20 2d 20 33 31 20 2b 20 2d 20 43 4f 55 4e 54 28   - 31 + - COUNT(
30e0: 20 2a 20 29 20 2d 20 2b 20 2d 20 39 39 20 2d 20   * ) - + - 99 - 
30f0: 2d 20 53 55 4d 28 20 41 4c 4c 20 2b 20 34 38 20  - SUM( ALL + 48 
3100: 29 20 2a 20 34 34 20 2a 20 43 4f 55 4e 54 28 20  ) * 44 * COUNT( 
3110: 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  * ) AS col0 FROM
3120: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
3130: 2d 2d 2d 0d 0a 31 39 30 37 33 0d 0a 0d 0a 73 6b  ---..19073....sk
3140: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
3150: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
3160: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
3170: 65 6c 2d 37 30 0d 0a 53 45 4c 45 43 54 20 2d 20  el-70..SELECT - 
3180: 33 31 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a  31 + - COUNT ( *
3190: 20 29 20 2d 20 2b 20 2d 20 39 39 20 2d 20 2d 20   ) - + - 99 - - 
31a0: 53 55 4d 20 28 20 41 4c 4c 20 2b 20 34 38 20 29  SUM ( ALL + 48 )
31b0: 20 2a 20 34 34 20 2a 20 43 4f 55 4e 54 20 28 20   * 44 * COUNT ( 
31c0: 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  * ) AS col0 FROM
31d0: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
31e0: 2d 2d 2d 0d 0a 31 39 30 37 33 0d 0a 0d 0a 71 75  ---..19073....qu
31f0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
3200: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
3210: 20 63 6f 6c 32 20 2d 20 2b 20 33 30 20 41 53 20   col2 - + 30 AS 
3220: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
3230: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37  S cor0..----..-7
3240: 0d 0a 31 30 0d 0a 32 38 0d 0a 0d 0a 71 75 65 72  ..10..28....quer
3250: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
3260: 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
3270: 20 74 61 62 32 20 63 6f 72 30 20 57 48 45 52 45   tab2 cor0 WHERE
3280: 20 2d 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d   - col2 IS NULL.
3290: 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
32a0: 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
32b0: 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
32c0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
32d0: 6f 72 74 20 6c 61 62 65 6c 2d 37 33 0d 0a 53 45  ort label-73..SE
32e0: 4c 45 43 54 20 2d 20 2b 20 63 6f 6c 31 20 2b 20  LECT - + col1 + 
32f0: 2b 20 39 32 20 44 49 56 20 2b 20 38 36 20 46 52  + 92 DIV + 86 FR
3300: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
3310: 0a 2d 2d 2d 2d 0d 0a 2d 35 30 0d 0a 2d 36 36 0d  .----..-50..-66.
3320: 0a 2d 37 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-76....skipif m
3330: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
3340: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
3350: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 33 0d  owsort label-73.
3360: 0a 53 45 4c 45 43 54 20 2d 20 2b 20 63 6f 6c 31  .SELECT - + col1
3370: 20 2b 20 2b 20 39 32 20 2f 20 2b 20 38 36 20 46   + + 92 / + 86 F
3380: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
3390: 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 30 0d 0a 2d 36 36  ..----..-50..-66
33a0: 0d 0a 2d 37 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-76....onlyif 
33b0: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
33c0: 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73  tax: aggregate s
33d0: 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
33e0: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
33f0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 34 0d 0a  wsort label-74..
3400: 53 45 4c 45 43 54 20 2b 20 4d 41 58 28 20 44 49  SELECT + MAX( DI
3410: 53 54 49 4e 43 54 20 2b 20 2d 20 36 33 20 29 20  STINCT + - 63 ) 
3420: 2b 20 43 41 53 54 28 20 2d 20 43 4f 55 4e 54 28  + CAST( - COUNT(
3430: 20 41 4c 4c 20 2d 20 31 35 20 29 20 41 53 20 53   ALL - 15 ) AS S
3440: 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 30 20  IGNED ) AS col0 
3450: 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
3460: 0a 2d 36 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-66....skipif m
3470: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
3480: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
3490: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 34 0d  owsort label-74.
34a0: 0a 53 45 4c 45 43 54 20 2b 20 4d 41 58 20 28 20  .SELECT + MAX ( 
34b0: 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 36 33 20  DISTINCT + - 63 
34c0: 29 20 2b 20 43 41 53 54 20 28 20 2d 20 43 4f 55  ) + CAST ( - COU
34d0: 4e 54 20 28 20 41 4c 4c 20 2d 20 31 35 20 29 20  NT ( ALL - 15 ) 
34e0: 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20  AS INTEGER ) AS 
34f0: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
3500: 2d 2d 2d 2d 0d 0a 2d 36 36 0d 0a 0d 0a 71 75 65  ----..-66....que
3510: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
3520: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
3530: 6c 32 20 2b 20 2d 20 37 38 20 2a 20 2d 20 2d 20  l2 + - 78 * - - 
3540: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col1 FROM tab2..
3550: 2d 2d 2d 2d 0d 0a 2d 33 39 35 35 0d 0a 2d 35 31  ----..-3955..-51
3560: 36 38 0d 0a 2d 35 39 36 36 0d 0a 0d 0a 71 75 65  68..-5966....que
3570: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
3580: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
3590: 62 31 20 57 48 45 52 45 20 2b 20 2d 20 63 6f 6c  b1 WHERE + - col
35a0: 30 20 2a 20 2b 20 63 6f 6c 30 20 49 53 20 4e 55  0 * + col0 IS NU
35b0: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  LL..----....only
35c0: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
35d0: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
35e0: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49  ype: ..query III
35f0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
3600: 37 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  7..SELECT * FROM
3610: 20 74 61 62 30 20 57 48 45 52 45 20 2b 20 2d 20   tab0 WHERE + - 
3620: 28 20 2b 20 43 41 53 54 28 20 2b 20 2b 20 43 41  ( + CAST( + + CA
3630: 53 54 28 20 2d 20 28 20 2b 20 2d 20 63 6f 6c 30  ST( - ( + - col0
3640: 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 41   ) AS SIGNED ) A
3650: 53 20 53 49 47 4e 45 44 20 29 20 29 20 49 53 20  S SIGNED ) ) IS 
3660: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b  NULL..----....sk
3670: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
3680: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
3690: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
36a0: 61 62 65 6c 2d 37 37 0d 0a 53 45 4c 45 43 54 20  abel-77..SELECT 
36b0: 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
36c0: 45 20 2b 20 2d 20 28 20 2b 20 43 41 53 54 20 28  E + - ( + CAST (
36d0: 20 2b 20 2b 20 43 41 53 54 20 28 20 2d 20 28 20   + + CAST ( - ( 
36e0: 2b 20 2d 20 63 6f 6c 30 20 29 20 41 53 20 49 4e  + - col0 ) AS IN
36f0: 54 45 47 45 52 20 29 20 41 53 20 49 4e 54 45 47  TEGER ) AS INTEG
3700: 45 52 20 29 20 29 20 49 53 20 4e 55 4c 4c 0d 0a  ER ) ) IS NULL..
3710: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
3720: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
3730: 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 2d 20  DISTINCT col0 - 
3740: 2b 20 36 39 20 41 53 20 63 6f 6c 31 20 46 52 4f  + 69 AS col1 FRO
3750: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  M tab2..----..-2
3760: 33 0d 0a 2d 35 0d 0a 36 0d 0a 0d 0a 71 75 65 72  3..-5..6....quer
3770: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
3780: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63  ECT DISTINCT + c
3790: 6f 6c 32 20 2d 20 2b 20 2d 20 63 6f 6c 30 20 46  ol2 - + - col0 F
37a0: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
37b0: 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
37c0: 4e 4f 54 20 42 45 54 57 45 45 4e 20 2b 20 63 6f  NOT BETWEEN + co
37d0: 6c 31 20 41 4e 44 20 2b 20 33 38 0d 0a 2d 2d 2d  l1 AND + 38..---
37e0: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  -....query III r
37f0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
3800: 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20   FROM tab0 cor0 
3810: 57 48 45 52 45 20 37 32 20 2a 20 2d 20 2d 20 63  WHERE 72 * - - c
3820: 6f 6c 31 20 2a 20 2b 20 63 6f 6c 32 20 3c 3d 20  ol1 * + col2 <= 
3830: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
3840: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
3850: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 37  ELECT DISTINCT 7
3860: 36 20 2a 20 38 20 2d 20 2b 20 2b 20 63 6f 6c 30  6 * 8 - + + col0
3870: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
3880: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
3890: 0d 0a 35 33 33 0d 0a 35 34 34 0d 0a 35 36 32 0d  ..533..544..562.
38a0: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
38b0: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
38c0: 20 2b 20 63 6f 6c 32 20 2a 20 37 31 20 46 52 4f   + col2 * 71 FRO
38d0: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
38e0: 2d 2d 2d 2d 0d 0a 2d 31 36 33 33 0d 0a 2d 32 38  ----..-1633..-28
38f0: 34 30 0d 0a 2d 34 31 31 38 0d 0a 0d 0a 6f 6e 6c  40..-4118....onl
3900: 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
3910: 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
3920: 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
3930: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33  rowsort label-83
3940: 0d 0a 53 45 4c 45 43 54 20 2d 20 35 36 20 44 49  ..SELECT - 56 DI
3950: 56 20 2b 20 2d 20 63 6f 6c 31 20 2d 20 63 6f 6c  V + - col1 - col
3960: 31 20 2a 20 2d 20 28 20 33 34 20 29 20 2a 20 2d  1 * - ( 34 ) * -
3970: 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 31 31 20 41   - col1 * - 11 A
3980: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
3990: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
39a0: 2d 37 33 33 30 30 0d 0a 2d 38 32 36 31 36 35 0d  -73300..-826165.
39b0: 0a 2d 39 33 33 39 0d 0a 0d 0a 73 6b 69 70 69 66  .-9339....skipif
39c0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
39d0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
39e0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
39f0: 33 0d 0a 53 45 4c 45 43 54 20 2d 20 35 36 20 2f  3..SELECT - 56 /
3a00: 20 2b 20 2d 20 63 6f 6c 31 20 2d 20 63 6f 6c 31   + - col1 - col1
3a10: 20 2a 20 2d 20 28 20 33 34 20 29 20 2a 20 2d 20   * - ( 34 ) * - 
3a20: 2d 20 63 6f 6c 31 20 2a 20 2d 20 31 31 20 41 53  - col1 * - 11 AS
3a30: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
3a40: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
3a50: 37 33 33 30 30 0d 0a 2d 38 32 36 31 36 35 0d 0a  73300..-826165..
3a60: 2d 39 33 33 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -9339....onlyif 
3a70: 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
3a80: 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
3a90: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
3aa0: 6f 72 74 20 6c 61 62 65 6c 2d 38 34 0d 0a 53 45  ort label-84..SE
3ab0: 4c 45 43 54 20 41 4c 4c 20 2b 20 32 38 20 44 49  LECT ALL + 28 DI
3ac0: 56 20 2d 20 32 31 20 46 52 4f 4d 20 74 61 62 31  V - 21 FROM tab1
3ad0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
3ae0: 2d 31 0d 0a 2d 31 0d 0a 2d 31 0d 0a 0d 0a 73 6b  -1..-1..-1....sk
3af0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
3b00: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
3b10: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
3b20: 65 6c 2d 38 34 0d 0a 53 45 4c 45 43 54 20 41 4c  el-84..SELECT AL
3b30: 4c 20 2b 20 32 38 20 2f 20 2d 20 32 31 20 46 52  L + 28 / - 21 FR
3b40: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
3b50: 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 31 0d 0a 2d  .----..-1..-1..-
3b60: 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  1....query I row
3b70: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 28 20 2b  sort..SELECT ( +
3b80: 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30 20   col0 ) AS col0 
3b90: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
3ba0: 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 28 20  0 WHERE NOT + ( 
3bb0: 2d 20 2d 20 63 6f 6c 30 20 29 20 49 53 20 4e 4f  - - col0 ) IS NO
3bc0: 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  T NULL..----....
3bd0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
3be0: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
3bf0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
3c00: 72 74 20 6c 61 62 65 6c 2d 38 36 0d 0a 53 45 4c  rt label-86..SEL
3c10: 45 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  ECT - COUNT( * )
3c20: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
3c30: 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49  WHERE NOT NULL I
3c40: 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  S NULL..----..0.
3c50: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
3c60: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
3c70: 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
3c80: 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
3c90: 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
3ca0: 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
3cb0: 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
3cc0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
3cd0: 2d 38 36 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f  -86..SELECT - CO
3ce0: 55 4e 54 20 28 20 2a 20 29 20 63 6f 6c 30 20 46  UNT ( * ) col0 F
3cf0: 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
3d00: 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d  OT NULL IS NULL.
3d10: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79  .----..0....only
3d20: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
3d30: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
3d40: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
3d50: 61 62 65 6c 2d 38 37 0d 0a 53 45 4c 45 43 54 20  abel-87..SELECT 
3d60: 44 49 53 54 49 4e 43 54 20 4d 49 4e 28 20 2b 20  DISTINCT MIN( + 
3d70: 28 20 2d 20 28 20 2d 20 2b 20 37 33 20 29 20 29  ( - ( - + 73 ) )
3d80: 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
3d90: 2d 2d 0d 0a 37 33 0d 0a 0d 0a 73 6b 69 70 69 66  --..73....skipif
3da0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
3db0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
3dc0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
3dd0: 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  7..SELECT DISTIN
3de0: 43 54 20 4d 49 4e 20 28 20 2b 20 28 20 2d 20 28  CT MIN ( + ( - (
3df0: 20 2d 20 2b 20 37 33 20 29 20 29 20 29 20 46 52   - + 73 ) ) ) FR
3e00: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 37  OM tab0..----..7
3e10: 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  3....query I row
3e20: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
3e30: 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 28 20 2b 20   - col2 * - ( + 
3e40: 33 37 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a  37 ) FROM tab2..
3e50: 2d 2d 2d 2d 0d 0a 31 34 38 30 0d 0a 32 31 34 36  ----..1480..2146
3e60: 0d 0a 38 35 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..851....onlyif 
3e70: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
3e80: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
3e90: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
3ea0: 6c 2d 38 39 0d 0a 53 45 4c 45 43 54 20 2d 20 2b  l-89..SELECT - +
3eb0: 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20   COUNT( * ) * + 
3ec0: 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f  + COUNT( * ) FRO
3ed0: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
3ee0: 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 73 6b 69 70  ----..-9....skip
3ef0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
3f00: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
3f10: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
3f20: 2d 38 39 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20  -89..SELECT - + 
3f30: 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2b 20  COUNT ( * ) * + 
3f40: 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52  + COUNT ( * ) FR
3f50: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
3f60: 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 71 75 65  .----..-9....que
3f70: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
3f80: 4c 45 43 54 20 41 4c 4c 20 2d 20 32 37 20 41 53  LECT ALL - 27 AS
3f90: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
3fa0: 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49  WHERE NOT NULL I
3fb0: 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
3fc0: 0d 0a 2d 32 37 0d 0a 2d 32 37 0d 0a 2d 32 37 0d  ..-27..-27..-27.
3fd0: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
3fe0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
3ff0: 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
4000: 32 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 2b 20  2 WHERE NOT - + 
4010: 32 38 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  28 IS NULL..----
4020: 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
4030: 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33  ng to 75c998aa53
4040: 61 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36  ac83218cbf2feb96
4050: 32 64 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20  2d0a49....query 
4060: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
4070: 54 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 2b 20 2d  T ALL + col2 + -
4080: 20 38 36 20 2d 20 2b 20 63 6f 6c 30 20 46 52 4f   86 - + col0 FRO
4090: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
40a0: 2d 2d 2d 2d 0d 0a 2d 31 30 33 0d 0a 2d 31 30 39  ----..-103..-109
40b0: 0d 0a 2d 31 31 30 0d 0a 0d 0a 71 75 65 72 79 20  ..-110....query 
40c0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
40d0: 54 20 2d 20 39 39 20 41 53 20 63 6f 6c 30 20 46  T - 99 AS col0 F
40e0: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
40f0: 20 57 48 45 52 45 20 4e 55 4c 4c 20 3e 3d 20 28   WHERE NULL >= (
4100: 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   NULL )..----...
4110: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
4120: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 35  ..SELECT ALL - 5
4130: 30 20 2a 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 2b  0 * - col2 + - +
4140: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
4150: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  AS cor0..----..2
4160: 33 33 35 0d 0a 34 31 33 0d 0a 34 38 35 33 0d 0a  335..413..4853..
4170: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
4180: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
4190: 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  * FROM tab0 AS c
41a0: 6f 72 30 20 57 48 45 52 45 20 2b 20 39 34 20 4e  or0 WHERE + 94 N
41b0: 4f 54 20 49 4e 20 28 20 2b 20 63 6f 6c 32 20 2a  OT IN ( + col2 *
41c0: 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 35 34 2c 20   + col2 + - 54, 
41d0: 63 6f 6c 31 20 2d 20 2b 20 63 6f 6c 32 20 29 0d  col1 - + col2 ).
41e0: 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
41f0: 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32  hashing to c4b42
4200: 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34  765dff94eaaa4604
4210: 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 6f  0e537fb43b7....o
4220: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
4230: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
4240: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
4250: 74 20 6c 61 62 65 6c 2d 39 36 0d 0a 53 45 4c 45  t label-96..SELE
4260: 43 54 20 41 4c 4c 20 28 20 37 37 20 29 20 2b 20  CT ALL ( 77 ) + 
4270: 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20  COUNT( * ) FROM 
4280: 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
4290: 0a 38 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .80....skipif my
42a0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
42b0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
42c0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 36 0d 0a  wsort label-96..
42d0: 53 45 4c 45 43 54 20 41 4c 4c 20 28 20 37 37 20  SELECT ALL ( 77 
42e0: 29 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ) + COUNT ( * ) 
42f0: 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a  FROM tab0 cor0..
4300: 2d 2d 2d 2d 0d 0a 38 30 0d 0a 0d 0a 6f 6e 6c 79  ----..80....only
4310: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
4320: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
4330: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49  ype: ..query III
4340: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
4350: 37 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  7..SELECT * FROM
4360: 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
4370: 45 52 45 20 4e 55 4c 4c 20 49 4e 20 28 20 2b 20  ERE NULL IN ( + 
4380: 63 6f 6c 30 20 2a 20 36 38 20 2a 20 2b 20 2b 20  col0 * 68 * + + 
4390: 43 41 53 54 28 20 63 6f 6c 32 20 41 53 20 53 49  CAST( col2 AS SI
43a0: 47 4e 45 44 20 29 20 2a 20 2d 20 32 32 20 2f 20  GNED ) * - 22 / 
43b0: 2b 20 2d 20 35 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a  + - 51 )..----..
43c0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
43d0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
43e0: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
43f0: 72 74 20 6c 61 62 65 6c 2d 39 37 0d 0a 53 45 4c  rt label-97..SEL
4400: 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ECT * FROM tab2 
4410: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55  AS cor0 WHERE NU
4420: 4c 4c 20 49 4e 20 28 20 2b 20 63 6f 6c 30 20 2a  LL IN ( + col0 *
4430: 20 36 38 20 2a 20 2b 20 2b 20 43 41 53 54 20 28   68 * + + CAST (
4440: 20 63 6f 6c 32 20 41 53 20 49 4e 54 45 47 45 52   col2 AS INTEGER
4450: 20 29 20 2a 20 2d 20 32 32 20 2f 20 2b 20 2d 20   ) * - 22 / + - 
4460: 35 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  51 )..----....qu
4470: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
4480: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 33  ELECT DISTINCT 3
4490: 39 20 2b 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 2d  9 + + col0 * + -
44a0: 20 33 39 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20   39 + col0 FROM 
44b0: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
44c0: 2d 2d 0d 0a 2d 31 38 39 39 0d 0a 2d 33 31 39 31  --..-1899..-3191
44d0: 0d 0a 2d 33 34 31 39 0d 0a 0d 0a 6f 6e 6c 79 69  ..-3419....onlyi
44e0: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
44f0: 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
4500: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72  pe: ..query II r
4510: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 39 0d  owsort label-99.
4520: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
4530: 20 63 6f 6c 32 2c 20 63 6f 6c 31 20 2b 20 2d 20   col2, col1 + - 
4540: 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  + CAST( NULL AS 
4550: 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 32  SIGNED ) AS col2
4560: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
4570: 0d 0a 31 30 0d 0a 4e 55 4c 4c 0d 0a 34 37 0d 0a  ..10..NULL..47..
4580: 4e 55 4c 4c 0d 0a 39 39 0d 0a 4e 55 4c 4c 0d 0a  NULL..99..NULL..
4590: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
45a0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
45b0: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
45c0: 74 20 6c 61 62 65 6c 2d 39 39 0d 0a 53 45 4c 45  t label-99..SELE
45d0: 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32  CT DISTINCT col2
45e0: 2c 20 63 6f 6c 31 20 2b 20 2d 20 2b 20 43 41 53  , col1 + - + CAS
45f0: 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
4600: 47 45 52 20 29 20 41 53 20 63 6f 6c 32 20 46 52  GER ) AS col2 FR
4610: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
4620: 30 0d 0a 4e 55 4c 4c 0d 0a 34 37 0d 0a 4e 55 4c  0..NULL..47..NUL
4630: 4c 0d 0a 39 39 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  L..99..NULL....q
4640: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
4650: 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2b 20  SELECT + col1 + 
4660: 36 35 20 2a 20 2d 20 28 20 2b 20 2d 20 63 6f 6c  65 * - ( + - col
4670: 30 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  0 ) FROM tab1..-
4680: 2d 2d 2d 0d 0a 33 33 32 39 0d 0a 35 35 33 30 0d  ---..3329..5530.
4690: 0a 35 39 36 32 0d 0a 0d 0a 71 75 65 72 79 20 49  .5962....query I
46a0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
46b0: 20 2d 20 33 20 2a 20 63 6f 6c 32 20 41 53 20 63   - 3 * col2 AS c
46c0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
46d0: 2d 2d 2d 0d 0a 2d 31 32 30 0d 0a 2d 31 37 34 0d  ---..-120..-174.
46e0: 0a 2d 36 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-69....onlyif m
46f0: 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
4700: 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
4710: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
4720: 72 74 20 6c 61 62 65 6c 2d 31 30 32 0d 0a 53 45  rt label-102..SE
4730: 4c 45 43 54 20 2b 20 38 32 20 44 49 56 20 2b 20  LECT + 82 DIV + 
4740: 2d 20 36 36 20 41 53 20 63 6f 6c 30 20 46 52 4f  - 66 AS col0 FRO
4750: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab1..----..-1
4760: 0d 0a 2d 31 0d 0a 2d 31 0d 0a 0d 0a 73 6b 69 70  ..-1..-1....skip
4770: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
4780: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
4790: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
47a0: 2d 31 30 32 0d 0a 53 45 4c 45 43 54 20 2b 20 38  -102..SELECT + 8
47b0: 32 20 2f 20 2b 20 2d 20 36 36 20 41 53 20 63 6f  2 / + - 66 AS co
47c0: 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l0 FROM tab1..--
47d0: 2d 2d 0d 0a 2d 31 0d 0a 2d 31 0d 0a 2d 31 0d 0a  --..-1..-1..-1..
47e0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
47f0: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
4800: 43 54 20 2d 20 36 34 20 2b 20 63 6f 6c 32 20 46  CT - 64 + col2 F
4810: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
4820: 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 34 0d 0a 2d 34 31  ..----..-24..-41
4830: 0d 0a 2d 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..-6....query II
4840: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
4850: 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
4860: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
4870: 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20 2a 20  HERE NOT col2 * 
4880: 2d 20 2d 20 34 36 20 2a 20 2d 20 2b 20 63 6f 6c  - - 46 * - + col
4890: 31 20 3c 3d 20 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d  1 <= + col2..---
48a0: 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  -....skipif post
48b0: 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
48c0: 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
48d0: 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
48e0: 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
48f0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
4900: 45 4c 45 43 54 20 63 6f 6c 32 20 63 6f 6c 31 20  ELECT col2 col1 
4910: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
4920: 30 20 57 48 45 52 45 20 2d 20 63 6f 6c 32 20 2a  0 WHERE - col2 *
4930: 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d   col0 IS NULL..-
4940: 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
4950: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
4960: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
4970: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
4980: 31 30 36 0d 0a 53 45 4c 45 43 54 20 2d 20 4d 41  106..SELECT - MA
4990: 58 28 20 2b 20 63 6f 6c 31 20 29 20 2d 20 2d 20  X( + col1 ) - - 
49a0: 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20  COUNT( * ) FROM 
49b0: 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
49c0: 2d 2d 0d 0a 2d 37 34 0d 0a 0d 0a 73 6b 69 70 69  --..-74....skipi
49d0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
49e0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
49f0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
4a00: 31 30 36 0d 0a 53 45 4c 45 43 54 20 2d 20 4d 41  106..SELECT - MA
4a10: 58 20 28 20 2b 20 63 6f 6c 31 20 29 20 2d 20 2d  X ( + col1 ) - -
4a20: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f   COUNT ( * ) FRO
4a30: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
4a40: 2d 2d 2d 2d 0d 0a 2d 37 34 0d 0a 0d 0a 6f 6e 6c  ----..-74....onl
4a50: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
4a60: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
4a70: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
4a80: 6c 61 62 65 6c 2d 31 30 37 0d 0a 53 45 4c 45 43  label-107..SELEC
4a90: 54 20 2d 20 4d 49 4e 28 20 2d 20 2d 20 63 6f 6c  T - MIN( - - col
4aa0: 32 20 29 20 2d 20 39 20 46 52 4f 4d 20 74 61 62  2 ) - 9 FROM tab
4ab0: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 0d 0a 0d 0a  0..----..-19....
4ac0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
4ad0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
4ae0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
4af0: 61 62 65 6c 2d 31 30 37 0d 0a 53 45 4c 45 43 54  abel-107..SELECT
4b00: 20 2d 20 4d 49 4e 20 28 20 2d 20 2d 20 63 6f 6c   - MIN ( - - col
4b10: 32 20 29 20 2d 20 39 20 46 52 4f 4d 20 74 61 62  2 ) - 9 FROM tab
4b20: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 0d 0a 0d 0a  0..----..-19....
4b30: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
4b40: 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49  AST syntax: DECI
4b50: 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  MAL type: ..quer
4b60: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
4b70: 6c 2d 31 30 38 0d 0a 53 45 4c 45 43 54 20 63 6f  l-108..SELECT co
4b80: 6c 31 20 2a 20 2b 20 43 41 53 54 28 20 4e 55 4c  l1 * + CAST( NUL
4b90: 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20 2a  L AS DECIMAL ) *
4ba0: 20 2b 20 63 6f 6c 31 20 2d 20 2b 20 34 20 46 52   + col1 - + 4 FR
4bb0: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab2..----..N
4bc0: 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
4bd0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
4be0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
4bf0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
4c00: 74 20 6c 61 62 65 6c 2d 31 30 38 0d 0a 53 45 4c  t label-108..SEL
4c10: 45 43 54 20 63 6f 6c 31 20 2a 20 2b 20 43 41 53  ECT col1 * + CAS
4c20: 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c  T ( NULL AS REAL
4c30: 20 29 20 2a 20 2b 20 63 6f 6c 31 20 2d 20 2b 20   ) * + col1 - + 
4c40: 34 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  4 FROM tab2..---
4c50: 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
4c60: 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ULL....onlyif my
4c70: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
4c80: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
4c90: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
4ca0: 31 30 39 0d 0a 53 45 4c 45 43 54 20 2d 20 38 38  109..SELECT - 88
4cb0: 20 2b 20 2d 20 4d 41 58 28 20 44 49 53 54 49 4e   + - MAX( DISTIN
4cc0: 43 54 20 2b 20 63 6f 6c 31 20 29 20 46 52 4f 4d  CT + col1 ) FROM
4cd0: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33   tab1..----..-13
4ce0: 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  5....skipif mysq
4cf0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
4d00: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
4d10: 6f 72 74 20 6c 61 62 65 6c 2d 31 30 39 0d 0a 53  ort label-109..S
4d20: 45 4c 45 43 54 20 2d 20 38 38 20 2b 20 2d 20 4d  ELECT - 88 + - M
4d30: 41 58 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20  AX ( DISTINCT + 
4d40: 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 31  col1 ) FROM tab1
4d50: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 35 0d 0a 0d 0a  ..----..-135....
4d60: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
4d70: 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
4d80: 20 74 61 62 32 20 57 48 45 52 45 20 4e 55 4c 4c   tab2 WHERE NULL
4d90: 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2b 20 2b   NOT BETWEEN + +
4da0: 20 28 20 2d 20 31 38 20 29 20 41 4e 44 20 4e 55   ( - 18 ) AND NU
4db0: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  LL..----....only
4dc0: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
4dd0: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
4de0: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
4df0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31  owsort label-111
4e00: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
4e10: 54 20 2b 20 2d 20 35 32 20 46 52 4f 4d 20 74 61  T + - 52 FROM ta
4e20: 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
4e30: 20 28 20 4e 55 4c 4c 20 29 20 42 45 54 57 45 45   ( NULL ) BETWEE
4e40: 4e 20 43 41 53 54 28 20 63 6f 6c 30 20 41 53 20  N CAST( col0 AS 
4e50: 53 49 47 4e 45 44 20 29 20 41 4e 44 20 4e 55 4c  SIGNED ) AND NUL
4e60: 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  L..----....skipi
4e70: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
4e80: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
4e90: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
4ea0: 31 31 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  111..SELECT DIST
4eb0: 49 4e 43 54 20 2b 20 2d 20 35 32 20 46 52 4f 4d  INCT + - 52 FROM
4ec0: 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
4ed0: 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 42 45 54  ERE ( NULL ) BET
4ee0: 57 45 45 4e 20 43 41 53 54 20 28 20 63 6f 6c 30  WEEN CAST ( col0
4ef0: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 4e   AS INTEGER ) AN
4f00: 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  D NULL..----....
4f10: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
4f20: 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49  AST syntax: DECI
4f30: 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  MAL type: ..quer
4f40: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
4f50: 62 65 6c 2d 31 31 32 0d 0a 53 45 4c 45 43 54 20  bel-112..SELECT 
4f60: 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ALL * FROM tab1 
4f70: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
4f80: 54 20 43 41 53 54 28 20 2b 20 2b 20 32 36 20 41  T CAST( + + 26 A
4f90: 53 20 44 45 43 49 4d 41 4c 20 29 20 49 53 20 4e  S DECIMAL ) IS N
4fa0: 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  OT NULL..----...
4fb0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
4fc0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
4fd0: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
4fe0: 74 20 6c 61 62 65 6c 2d 31 31 32 0d 0a 53 45 4c  t label-112..SEL
4ff0: 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
5000: 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
5010: 45 20 4e 4f 54 20 43 41 53 54 20 28 20 2b 20 2b  E NOT CAST ( + +
5020: 20 32 36 20 41 53 20 52 45 41 4c 20 29 20 49 53   26 AS REAL ) IS
5030: 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
5040: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
5050: 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
5060: 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
5070: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
5080: 62 65 6c 2d 31 31 33 0d 0a 53 45 4c 45 43 54 20  bel-113..SELECT 
5090: 41 4c 4c 20 2b 20 36 30 20 44 49 56 20 2d 20 2d  ALL + 60 DIV - -
50a0: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
50b0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30  AS cor0..----..0
50c0: 0d 0a 30 0d 0a 34 0d 0a 0d 0a 73 6b 69 70 69 66  ..0..4....skipif
50d0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
50e0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
50f0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
5100: 31 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  13..SELECT ALL +
5110: 20 36 30 20 2f 20 2d 20 2d 20 63 6f 6c 30 20 46   60 / - - col0 F
5120: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
5130: 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 34 0d  ..----..0..0..4.
5140: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
5150: 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  rt..SELECT - col
5160: 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
5170: 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f  or0 WHERE NOT co
5180: 6c 32 20 2a 20 2b 20 2d 20 63 6f 6c 30 20 49 53  l2 * + - col0 IS
5190: 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
51a0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
51b0: 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
51c0: 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
51d0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
51e0: 62 65 6c 2d 31 31 35 0d 0a 53 45 4c 45 43 54 20  bel-115..SELECT 
51f0: 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 28 20 2d  DISTINCT + + ( -
5200: 20 2b 20 63 6f 6c 31 20 29 20 44 49 56 20 63 6f   + col1 ) DIV co
5210: 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l2 AS col2 FROM 
5220: 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
5230: 2d 2d 0d 0a 2d 31 0d 0a 2d 32 0d 0a 0d 0a 73 6b  --..-1..-2....sk
5240: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
5250: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
5260: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
5270: 65 6c 2d 31 31 35 0d 0a 53 45 4c 45 43 54 20 44  el-115..SELECT D
5280: 49 53 54 49 4e 43 54 20 2b 20 2b 20 28 20 2d 20  ISTINCT + + ( - 
5290: 2b 20 63 6f 6c 31 20 29 20 2f 20 63 6f 6c 32 20  + col1 ) / col2 
52a0: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
52b0: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
52c0: 0a 2d 31 0d 0a 2d 32 0d 0a 0d 0a 6f 6e 6c 79 69  .-1..-2....onlyi
52d0: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
52e0: 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
52f0: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20  pe: ..query III 
5300: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
5310: 36 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  6..SELECT * FROM
5320: 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
5330: 45 52 45 20 4e 4f 54 20 2d 20 38 38 20 2a 20 43  ERE NOT - 88 * C
5340: 41 53 54 28 20 2b 20 28 20 35 30 20 29 20 41 53  AST( + ( 50 ) AS
5350: 20 53 49 47 4e 45 44 20 29 20 4e 4f 54 20 49 4e   SIGNED ) NOT IN
5360: 20 28 20 2b 20 2d 20 43 41 53 54 28 20 4e 55 4c   ( + - CAST( NUL
5370: 4c 20 41 53 20 53 49 47 4e 45 44 20 29 2c 20 2d  L AS SIGNED ), -
5380: 20 28 20 2b 20 63 6f 6c 32 20 29 20 29 0d 0a 2d   ( + col2 ) )..-
5390: 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ---....skipif my
53a0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
53b0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20  ible..query III 
53c0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
53d0: 36 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  6..SELECT * FROM
53e0: 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
53f0: 45 52 45 20 4e 4f 54 20 2d 20 38 38 20 2a 20 43  ERE NOT - 88 * C
5400: 41 53 54 20 28 20 2b 20 28 20 35 30 20 29 20 41  AST ( + ( 50 ) A
5410: 53 20 49 4e 54 45 47 45 52 20 29 20 4e 4f 54 20  S INTEGER ) NOT 
5420: 49 4e 20 28 20 2b 20 2d 20 43 41 53 54 20 28 20  IN ( + - CAST ( 
5430: 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
5440: 29 2c 20 2d 20 28 20 2b 20 63 6f 6c 32 20 29 20  ), - ( + col2 ) 
5450: 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  )..----....onlyi
5460: 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
5470: 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
5480: 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
5490: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 37 0d  wsort label-117.
54a0: 0a 53 45 4c 45 43 54 20 28 20 37 30 20 29 20 44  .SELECT ( 70 ) D
54b0: 49 56 20 63 6f 6c 31 20 44 49 56 20 39 37 20 2b  IV col1 DIV 97 +
54c0: 20 63 6f 6c 31 20 63 6f 6c 31 20 46 52 4f 4d 20   col1 col1 FROM 
54d0: 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab2 cor0..----.
54e0: 0a 35 31 0d 0a 36 37 0d 0a 37 37 0d 0a 0d 0a 73  .51..67..77....s
54f0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
5500: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
5510: 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
5520: 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
5530: 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
5540: 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
5550: 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
5560: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 37  owsort label-117
5570: 0d 0a 53 45 4c 45 43 54 20 28 20 37 30 20 29 20  ..SELECT ( 70 ) 
5580: 2f 20 63 6f 6c 31 20 2f 20 39 37 20 2b 20 63 6f  / col1 / 97 + co
5590: 6c 31 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  l1 col1 FROM tab
55a0: 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31  2 cor0..----..51
55b0: 0d 0a 36 37 0d 0a 37 37 0d 0a 0d 0a 6f 6e 6c 79  ..67..77....only
55c0: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
55d0: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
55e0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
55f0: 61 62 65 6c 2d 31 31 38 0d 0a 53 45 4c 45 43 54  abel-118..SELECT
5600: 20 2d 20 2b 20 53 55 4d 28 20 41 4c 4c 20 35 20   - + SUM( ALL 5 
5610: 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  ) FROM tab2 AS c
5620: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a  or0..----..-15..
5630: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
5640: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
5650: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
5660: 20 6c 61 62 65 6c 2d 31 31 38 0d 0a 53 45 4c 45   label-118..SELE
5670: 43 54 20 2d 20 2b 20 53 55 4d 20 28 20 41 4c 4c  CT - + SUM ( ALL
5680: 20 35 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41   5 ) FROM tab2 A
5690: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
56a0: 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  5....query I row
56b0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 38  sort..SELECT + 8
56c0: 38 20 2a 20 2d 20 2b 20 63 6f 6c 31 20 46 52 4f  8 * - + col1 FRO
56d0: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab0..----..-1
56e0: 38 34 38 0d 0a 2d 37 31 32 38 0d 0a 2d 38 38 0d  848..-7128..-88.
56f0: 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
5700: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 36 37  ort..SELECT + 67
5710: 20 41 53 20 63 6f 6c 32 2c 20 31 34 20 46 52 4f   AS col2, 14 FRO
5720: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 36 37  M tab1..----..67
5730: 0d 0a 31 34 0d 0a 36 37 0d 0a 31 34 0d 0a 36 37  ..14..67..14..67
5740: 0d 0a 31 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..14....onlyif m
5750: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
5760: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
5770: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
5780: 2d 31 32 31 0d 0a 53 45 4c 45 43 54 20 43 4f 55  -121..SELECT COU
5790: 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20  NT( * ) AS col0 
57a0: 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
57b0: 4e 4f 54 20 4e 55 4c 4c 20 3c 3e 20 34 38 20 2d  NOT NULL <> 48 -
57c0: 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 30   + col0..----..0
57d0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
57e0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
57f0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
5800: 72 74 20 6c 61 62 65 6c 2d 31 32 31 0d 0a 53 45  rt label-121..SE
5810: 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29  LECT COUNT ( * )
5820: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
5830: 62 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  b0 WHERE NOT NUL
5840: 4c 20 3c 3e 20 34 38 20 2d 20 2b 20 63 6f 6c 30  L <> 48 - + col0
5850: 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c  ..----..0....onl
5860: 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
5870: 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
5880: 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
5890: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
58a0: 32 0d 0a 53 45 4c 45 43 54 20 38 37 20 44 49 56  2..SELECT 87 DIV
58b0: 20 2b 20 39 37 20 46 52 4f 4d 20 74 61 62 30 0d   + 97 FROM tab0.
58c0: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a  .----..0..0..0..
58d0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
58e0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
58f0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
5900: 20 6c 61 62 65 6c 2d 31 32 32 0d 0a 53 45 4c 45   label-122..SELE
5910: 43 54 20 38 37 20 2f 20 2b 20 39 37 20 46 52 4f  CT 87 / + 97 FRO
5920: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab0..----..0.
5930: 0a 30 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49  .0..0....query I
5940: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
5950: 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 46 52 4f 4d   ALL + col1 FROM
5960: 20 74 61 62 32 20 57 48 45 52 45 20 2d 20 63 6f   tab2 WHERE - co
5970: 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  l2 IS NOT NULL..
5980: 2d 2d 2d 2d 0d 0a 35 31 0d 0a 36 37 0d 0a 37 37  ----..51..67..77
5990: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
59a0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
59b0: 30 2c 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 39 36  0, - col0 * - 96
59c0: 20 2b 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74   + - col2 FROM t
59d0: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
59e0: 2d 0d 0a 35 31 0d 0a 34 38 30 30 0d 0a 38 35 0d  -..51..4800..85.
59f0: 0a 38 31 30 31 0d 0a 39 31 0d 0a 38 36 36 38 0d  .8101..91..8668.
5a00: 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
5a10: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  ort..SELECT + co
5a20: 6c 30 20 41 53 20 63 6f 6c 32 2c 20 2d 20 63 6f  l0 AS col2, - co
5a30: 6c 31 20 2b 20 2d 20 2b 20 36 32 20 41 53 20 63  l1 + - + 62 AS c
5a40: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  ol0 FROM tab1 co
5a50: 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2d  r0 WHERE NOT ( -
5a60: 20 38 38 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c   88 ) IS NOT NUL
5a70: 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
5a80: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
5a90: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  LECT * FROM tab1
5aa0: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
5ab0: 4f 54 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 39 38  OT + col0 * + 98
5ac0: 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
5ad0: 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
5ae0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
5af0: 63 6f 6c 31 20 2a 20 2b 20 2d 20 63 6f 6c 31 20  col1 * + - col1 
5b00: 2a 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  * col0 FROM tab0
5b10: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
5b20: 2d 33 38 33 36 37 0d 0a 2d 39 37 0d 0a 2d 39 38  -38367..-97..-98
5b30: 34 31 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  415....query I r
5b40: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
5b50: 4c 4c 20 28 20 2d 20 33 39 20 29 20 41 53 20 63  LL ( - 39 ) AS c
5b60: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  ol1 FROM tab0 co
5b70: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 39 0d 0a 2d  r0..----..-39..-
5b80: 33 39 0d 0a 2d 33 39 0d 0a 0d 0a 71 75 65 72 79  39..-39....query
5b90: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
5ba0: 43 54 20 41 4c 4c 20 2b 20 2b 20 63 6f 6c 31 20  CT ALL + + col1 
5bb0: 2b 20 28 20 63 6f 6c 32 20 29 20 2b 20 2b 20 2b  + ( col2 ) + + +
5bc0: 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52   col1 AS col1 FR
5bd0: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
5be0: 0a 2d 2d 2d 2d 0d 0a 31 32 35 0d 0a 31 39 32 0d  .----..125..192.
5bf0: 0a 31 39 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .194....query I 
5c00: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
5c10: 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  + col2 FROM tab0
5c20: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b   AS cor0 WHERE +
5c30: 20 35 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d   52 IS NOT NULL.
5c40: 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 34 37 0d 0a 39  .----..10..47..9
5c50: 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  9....onlyif mysq
5c60: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
5c70: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
5c80: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 33  rowsort label-13
5c90: 31 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 49 4e 28  1..SELECT + MIN(
5ca0: 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 29 20 46 52   ALL + col1 ) FR
5cb0: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
5cc0: 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 0d 0a 73 6b 69  .----..51....ski
5cd0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
5ce0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
5cf0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
5d00: 6c 2d 31 33 31 0d 0a 53 45 4c 45 43 54 20 2b 20  l-131..SELECT + 
5d10: 4d 49 4e 20 28 20 41 4c 4c 20 2b 20 63 6f 6c 31  MIN ( ALL + col1
5d20: 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
5d30: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a  cor0..----..51..
5d40: 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
5d50: 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
5d60: 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
5d70: 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
5d80: 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
5d90: 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
5da0: 45 43 54 20 2d 20 63 6f 6c 31 20 63 6f 6c 31 2c  ECT - col1 col1,
5db0: 20 2d 20 31 30 20 41 53 20 63 6f 6c 32 20 46 52   - 10 AS col2 FR
5dc0: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
5dd0: 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 4f  WHERE NULL IS NO
5de0: 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  T NULL..----....
5df0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
5e00: 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49  AST syntax: DECI
5e10: 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  MAL type: ..quer
5e20: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
5e30: 6c 2d 31 33 33 0d 0a 53 45 4c 45 43 54 20 2d 20  l-133..SELECT - 
5e40: 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  + CAST( NULL AS 
5e50: 44 45 43 49 4d 41 4c 20 29 20 41 53 20 63 6f 6c  DECIMAL ) AS col
5e60: 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  0 FROM tab0 cor0
5e70: 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
5e80: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  LL..NULL....skip
5e90: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
5ea0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
5eb0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
5ec0: 2d 31 33 33 0d 0a 53 45 4c 45 43 54 20 2d 20 2b  -133..SELECT - +
5ed0: 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
5ee0: 52 45 41 4c 20 29 20 41 53 20 63 6f 6c 30 20 46  REAL ) AS col0 F
5ef0: 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d  ROM tab0 cor0..-
5f00: 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
5f10: 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
5f20: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
5f30: 20 44 49 53 54 49 4e 43 54 20 2b 20 36 38 20 2a   DISTINCT + 68 *
5f40: 20 2d 20 32 39 20 2d 20 2b 20 63 6f 6c 30 20 41   - 29 - + col0 A
5f50: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
5f60: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
5f70: 2d 32 30 31 38 0d 0a 2d 32 30 33 36 0d 0a 2d 32  -2018..-2036..-2
5f80: 30 34 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  047....onlyif my
5f90: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
5fa0: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
5fb0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
5fc0: 31 33 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  135..SELECT DIST
5fd0: 49 4e 43 54 20 2b 20 53 55 4d 28 20 44 49 53 54  INCT + SUM( DIST
5fe0: 49 4e 43 54 20 2b 20 2b 20 63 6f 6c 32 20 29 20  INCT + + col2 ) 
5ff0: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
6000: 0a 32 32 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .223....skipif m
6010: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
6020: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
6030: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 33 35  owsort label-135
6040: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
6050: 54 20 2b 20 53 55 4d 20 28 20 44 49 53 54 49 4e  T + SUM ( DISTIN
6060: 43 54 20 2b 20 2b 20 63 6f 6c 32 20 29 20 46 52  CT + + col2 ) FR
6070: 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32  OM tab1..----..2
6080: 32 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  23....query I ro
6090: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
60a0: 4c 20 2d 20 32 39 20 2b 20 2d 20 63 6f 6c 31 20  L - 29 + - col1 
60b0: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
60c0: 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 34 0d 0a 2d 34  1..----..-34..-4
60d0: 33 0d 0a 2d 37 36 0d 0a 0d 0a 71 75 65 72 79 20  3..-76....query 
60e0: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
60f0: 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
6100: 61 62 30 20 57 48 45 52 45 20 28 20 2d 20 63 6f  ab0 WHERE ( - co
6110: 6c 30 20 29 20 2a 20 28 20 2d 20 39 33 20 29 20  l0 ) * ( - 93 ) 
6120: 2b 20 2d 20 2b 20 63 6f 6c 31 20 49 53 20 4e 55  + - + col1 IS NU
6130: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
6140: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
6150: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a  ELECT DISTINCT *
6160: 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
6170: 20 4e 4f 54 20 2d 20 63 6f 6c 32 20 3e 20 2d 20   NOT - col2 > - 
6180: 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  col2..----..9 va
6190: 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
61a0: 37 35 63 39 39 38 61 61 35 33 61 63 38 33 32 31  75c998aa53ac8321
61b0: 38 63 62 66 32 66 65 62 39 36 32 64 30 61 34 39  8cbf2feb962d0a49
61c0: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
61d0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
61e0: 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
61f0: 2d 20 63 6f 6c 32 20 49 4e 20 28 20 2b 20 63 6f  - col2 IN ( + co
6200: 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  l1 )..----....on
6210: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
6220: 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
6230: 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
6240: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
6250: 34 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  40..SELECT ALL +
6260: 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   + CAST( NULL AS
6270: 20 53 49 47 4e 45 44 20 29 20 2b 20 2b 20 2d 20   SIGNED ) + + - 
6280: 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f  col0 AS col0 FRO
6290: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
62a0: 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
62b0: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
62c0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
62d0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
62e0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
62f0: 34 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  40..SELECT ALL +
6300: 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   + CAST ( NULL A
6310: 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20 2b 20  S INTEGER ) + + 
6320: 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46  - col0 AS col0 F
6330: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
6340: 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
6350: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79  LL..NULL....only
6360: 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
6370: 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
6380: 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
6390: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 34 31  owsort label-141
63a0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
63b0: 54 20 2d 20 63 6f 6c 30 20 44 49 56 20 2d 20 2b  T - col0 DIV - +
63c0: 20 63 6f 6c 31 20 2b 20 63 6f 6c 30 20 46 52 4f   col1 + col0 FRO
63d0: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
63e0: 2d 2d 2d 2d 0d 0a 34 36 0d 0a 36 34 0d 0a 37 36  ----..46..64..76
63f0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
6400: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
6410: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
6420: 72 74 20 6c 61 62 65 6c 2d 31 34 31 0d 0a 53 45  rt label-141..SE
6430: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
6440: 63 6f 6c 30 20 2f 20 2d 20 2b 20 63 6f 6c 31 20  col0 / - + col1 
6450: 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  + col0 FROM tab2
6460: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
6470: 34 36 0d 0a 36 34 0d 0a 37 36 0d 0a 0d 0a 71 75  46..64..76....qu
6480: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
6490: 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 2a  ELECT ALL col0 *
64a0: 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 32   - col1 + - col2
64b0: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
64c0: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
64d0: 0d 0a 2d 34 33 34 35 0d 0a 2d 34 38 34 0d 0a 2d  ..-4345..-484..-
64e0: 38 31 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  810....onlyif my
64f0: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
6500: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
6510: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
6520: 31 34 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  143..SELECT ALL 
6530: 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b  - - COUNT( * ) +
6540: 20 2d 20 34 32 20 41 53 20 63 6f 6c 30 20 46 52   - 42 AS col0 FR
6550: 4f 4d 20 28 20 74 61 62 31 20 41 53 20 63 6f 72  OM ( tab1 AS cor
6560: 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62  0 CROSS JOIN tab
6570: 31 20 63 6f 72 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a  1 cor1 )..----..
6580: 2d 33 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -33....skipif my
6590: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
65a0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
65b0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 34 33 0d  wsort label-143.
65c0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20  .SELECT ALL - - 
65d0: 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2d 20  COUNT ( * ) + - 
65e0: 34 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  42 AS col0 FROM 
65f0: 28 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 43  ( tab1 AS cor0 C
6600: 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20 63  ROSS JOIN tab1 c
6610: 6f 72 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 33  or1 )..----..-33
6620: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
6630: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 31 34  ort..SELECT + 14
6640: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
6650: 62 31 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  b1 cor0 CROSS JO
6660: 49 4e 20 74 61 62 30 20 41 53 20 63 6f 72 31 0d  IN tab0 AS cor1.
6670: 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
6680: 68 61 73 68 69 6e 67 20 74 6f 20 38 33 65 35 37  hashing to 83e57
6690: 37 39 64 32 34 38 37 64 31 32 34 39 35 65 37 64  79d2487d12495e7d
66a0: 38 31 36 63 37 39 37 32 36 34 66 0d 0a 0d 0a 6f  816c797264f....o
66b0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
66c0: 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
66d0: 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
66e0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
66f0: 31 34 35 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  145..SELECT + co
6700: 6c 32 20 2d 20 2d 20 43 41 53 54 28 20 2b 20 2b  l2 - - CAST( + +
6710: 20 63 6f 6c 31 20 41 53 20 53 49 47 4e 45 44 20   col1 AS SIGNED 
6720: 29 20 2b 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 35  ) + - col2 * - 5
6730: 33 20 2a 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20  3 * - col0 FROM 
6740: 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  tab0 WHERE NOT N
6750: 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ULL IS NULL..---
6760: 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  -....skipif mysq
6770: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
6780: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
6790: 6f 72 74 20 6c 61 62 65 6c 2d 31 34 35 0d 0a 53  ort label-145..S
67a0: 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2d 20 2d  ELECT + col2 - -
67b0: 20 43 41 53 54 20 28 20 2b 20 2b 20 63 6f 6c 31   CAST ( + + col1
67c0: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20   AS INTEGER ) + 
67d0: 2d 20 63 6f 6c 32 20 2a 20 2d 20 35 33 20 2a 20  - col2 * - 53 * 
67e0: 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  - col0 FROM tab0
67f0: 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
6800: 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
6810: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
6820: 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2a 20  ..SELECT col0 * 
6830: 2d 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30  - - col0 AS col0
6840: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
6850: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 36 30 31 0d 0a  r0..----..2601..
6860: 37 32 32 35 0d 0a 38 32 38 31 0d 0a 0d 0a 71 75  7225..8281....qu
6870: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
6880: 53 45 4c 45 43 54 20 2b 20 2d 20 63 6f 6c 30 20  SELECT + - col0 
6890: 41 53 20 63 6f 6c 32 2c 20 2d 20 63 6f 6c 31 20  AS col2, - col1 
68a0: 2a 20 39 37 20 41 53 20 63 6f 6c 31 20 46 52 4f  * 97 AS col1 FRO
68b0: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
68c0: 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 2d 37 38 35 37  ----..-15..-7857
68d0: 0d 0a 2d 38 37 0d 0a 2d 32 30 33 37 0d 0a 2d 39  ..-87..-2037..-9
68e0: 37 0d 0a 2d 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  7..-97....onlyif
68f0: 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
6900: 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
6910: 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
6920: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 34 38 0d 0a  sort label-148..
6930: 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 44 49  SELECT + col1 DI
6940: 56 20 63 6f 6c 31 20 2a 20 31 30 20 41 53 20 63  V col1 * 10 AS c
6950: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
6960: 2d 2d 2d 0d 0a 31 30 0d 0a 31 30 0d 0a 31 30 0d  ---..10..10..10.
6970: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
6980: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
6990: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
69a0: 74 20 6c 61 62 65 6c 2d 31 34 38 0d 0a 53 45 4c  t label-148..SEL
69b0: 45 43 54 20 2b 20 63 6f 6c 31 20 2f 20 63 6f 6c  ECT + col1 / col
69c0: 31 20 2a 20 31 30 20 41 53 20 63 6f 6c 30 20 46  1 * 10 AS col0 F
69d0: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
69e0: 31 30 0d 0a 31 30 0d 0a 31 30 0d 0a 0d 0a 6f 6e  10..10..10....on
69f0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
6a00: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
6a10: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
6a20: 20 6c 61 62 65 6c 2d 31 34 39 0d 0a 53 45 4c 45   label-149..SELE
6a30: 43 54 20 44 49 53 54 49 4e 43 54 20 31 37 20 2a  CT DISTINCT 17 *
6a40: 20 2d 20 4d 49 4e 28 20 44 49 53 54 49 4e 43 54   - MIN( DISTINCT
6a50: 20 63 6f 6c 31 20 29 20 2a 20 33 39 20 2a 20 2b   col1 ) * 39 * +
6a60: 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d   COUNT( * ) FROM
6a70: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30   tab2..----..-10
6a80: 31 34 33 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  1439....skipif m
6a90: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
6aa0: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
6ab0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 34 39  owsort label-149
6ac0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
6ad0: 54 20 31 37 20 2a 20 2d 20 4d 49 4e 20 28 20 44  T 17 * - MIN ( D
6ae0: 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 29 20 2a  ISTINCT col1 ) *
6af0: 20 33 39 20 2a 20 2b 20 43 4f 55 4e 54 20 28 20   39 * + COUNT ( 
6b00: 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  * ) FROM tab2..-
6b10: 2d 2d 2d 0d 0a 2d 31 30 31 34 33 39 0d 0a 0d 0a  ---..-101439....
6b20: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
6b30: 0a 53 45 4c 45 43 54 20 2d 20 33 36 20 2a 20 2b  .SELECT - 36 * +
6b40: 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20   + col2 AS col0 
6b50: 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
6b60: 0a 2d 31 34 34 30 0d 0a 2d 32 30 38 38 0d 0a 2d  .-1440..-2088..-
6b70: 38 32 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  828....query I r
6b80: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
6b90: 4c 4c 20 63 6f 6c 30 20 2a 20 2d 20 2d 20 32 37  LL col0 * - - 27
6ba0: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
6bb0: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 34 39 0d 0a  b0..----..2349..
6bc0: 32 36 31 39 0d 0a 34 30 35 0d 0a 0d 0a 6f 6e 6c  2619..405....onl
6bd0: 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
6be0: 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
6bf0: 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
6c00: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 35  rowsort label-15
6c10: 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  2..SELECT DISTIN
6c20: 43 54 20 2d 20 32 34 20 44 49 56 20 2d 20 28 20  CT - 24 DIV - ( 
6c30: 2d 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61  - col2 ) FROM ta
6c40: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 30 0d  b0..----..-2..0.
6c50: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
6c60: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
6c70: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
6c80: 74 20 6c 61 62 65 6c 2d 31 35 32 0d 0a 53 45 4c  t label-152..SEL
6c90: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 32  ECT DISTINCT - 2
6ca0: 34 20 2f 20 2d 20 28 20 2d 20 63 6f 6c 32 20 29  4 / - ( - col2 )
6cb0: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
6cc0: 0d 0a 2d 32 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79  ..-2..0....query
6cd0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
6ce0: 43 54 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 63 6f  CT - col0 * - co
6cf0: 6c 32 20 2b 20 2d 20 33 33 20 41 53 20 63 6f 6c  l2 + - 33 AS col
6d00: 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
6d10: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 32 35 0d  or0..----..1025.
6d20: 0a 32 35 32 37 0d 0a 34 33 31 37 0d 0a 0d 0a 6f  .2527..4317....o
6d30: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
6d40: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
6d50: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
6d60: 74 20 6c 61 62 65 6c 2d 31 35 34 0d 0a 53 45 4c  t label-154..SEL
6d70: 45 43 54 20 34 20 2a 20 53 55 4d 28 20 44 49 53  ECT 4 * SUM( DIS
6d80: 54 49 4e 43 54 20 35 31 20 29 20 2b 20 2b 20 2d  TINCT 51 ) + + -
6d90: 20 35 36 20 2b 20 2d 20 33 30 20 46 52 4f 4d 20   56 + - 30 FROM 
6da0: 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
6db0: 0a 31 31 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .118....skipif m
6dc0: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
6dd0: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
6de0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 35 34  owsort label-154
6df0: 0d 0a 53 45 4c 45 43 54 20 34 20 2a 20 53 55 4d  ..SELECT 4 * SUM
6e00: 20 28 20 44 49 53 54 49 4e 43 54 20 35 31 20 29   ( DISTINCT 51 )
6e10: 20 2b 20 2b 20 2d 20 35 36 20 2b 20 2d 20 33 30   + + - 56 + - 30
6e20: 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d   FROM tab0 cor0.
6e30: 0a 2d 2d 2d 2d 0d 0a 31 31 38 0d 0a 0d 0a 73 6b  .----..118....sk
6e40: 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
6e50: 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
6e60: 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
6e70: 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
6e80: 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
6e90: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
6ea0: 49 53 54 49 4e 43 54 20 38 38 20 2b 20 2b 20 2d  ISTINCT 88 + + -
6eb0: 20 63 6f 6c 31 20 63 6f 6c 31 20 46 52 4f 4d 20   col1 col1 FROM 
6ec0: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
6ed0: 2d 2d 0d 0a 34 31 0d 0a 37 34 0d 0a 38 33 0d 0a  --..41..74..83..
6ee0: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
6ef0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
6f00: 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45  OM tab0 cor0 WHE
6f10: 52 45 20 4e 55 4c 4c 20 3c 3d 20 36 31 20 2a 20  RE NULL <= 61 * 
6f20: 2d 20 39 37 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  - 97..----....qu
6f30: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
6f40: 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
6f50: 61 62 32 20 57 48 45 52 45 20 2d 20 63 6f 6c 32  ab2 WHERE - col2
6f60: 20 42 45 54 57 45 45 4e 20 2d 20 2b 20 63 6f 6c   BETWEEN - + col
6f70: 31 20 41 4e 44 20 2b 20 2d 20 32 33 20 2f 20 2b  1 AND + - 23 / +
6f80: 20 31 37 20 2b 20 2d 20 63 6f 6c 30 0d 0a 2d 2d   17 + - col0..--
6f90: 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
6fa0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
6fb0: 4c 20 2d 20 28 20 2b 20 63 6f 6c 30 20 29 20 2b  L - ( + col0 ) +
6fc0: 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   - col2 FROM tab
6fd0: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 36 0d 0a 2d  0..----..-196..-
6fe0: 36 32 0d 0a 2d 39 37 0d 0a 0d 0a 6f 6e 6c 79 69  62..-97....onlyi
6ff0: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
7000: 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
7010: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
7020: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 35 39 0d  wsort label-159.
7030: 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2b  .SELECT + col1 +
7040: 20 2b 20 43 41 53 54 28 20 2b 20 35 37 20 41 53   + CAST( + 57 AS
7050: 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c   SIGNED ) AS col
7060: 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  2 FROM tab2..---
7070: 2d 0d 0a 31 30 38 0d 0a 31 32 34 0d 0a 31 33 34  -..108..124..134
7080: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
7090: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
70a0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
70b0: 72 74 20 6c 61 62 65 6c 2d 31 35 39 0d 0a 53 45  rt label-159..SE
70c0: 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2b 20 2b 20  LECT + col1 + + 
70d0: 43 41 53 54 20 28 20 2b 20 35 37 20 41 53 20 49  CAST ( + 57 AS I
70e0: 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 32  NTEGER ) AS col2
70f0: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
7100: 0d 0a 31 30 38 0d 0a 31 32 34 0d 0a 31 33 34 0d  ..108..124..134.
7110: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
7120: 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
7130: 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
7140: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
7150: 62 65 6c 2d 31 36 30 0d 0a 53 45 4c 45 43 54 20  bel-160..SELECT 
7160: 41 4c 4c 20 2b 20 63 6f 6c 30 20 44 49 56 20 38  ALL + col0 DIV 8
7170: 37 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  7 - col1 FROM ta
7180: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 2d  b2..----..-51..-
7190: 36 37 0d 0a 2d 37 37 0d 0a 0d 0a 73 6b 69 70 69  67..-77....skipi
71a0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
71b0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
71c0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
71d0: 31 36 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  160..SELECT ALL 
71e0: 2b 20 63 6f 6c 30 20 2f 20 38 37 20 2d 20 63 6f  + col0 / 87 - co
71f0: 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
7200: 2d 2d 0d 0a 2d 35 31 0d 0a 2d 36 37 0d 0a 2d 37  --..-51..-67..-7
7210: 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  7....query II ro
7220: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
7230: 28 20 2d 20 2b 20 63 6f 6c 32 20 29 20 41 53 20  ( - + col2 ) AS 
7240: 63 6f 6c 32 2c 20 34 20 41 53 20 63 6f 6c 30 20  col2, 4 AS col0 
7250: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
7260: 0a 2d 31 30 0d 0a 34 0d 0a 2d 34 37 0d 0a 34 0d  .-10..4..-47..4.
7270: 0a 2d 39 39 0d 0a 34 0d 0a 0d 0a 6f 6e 6c 79 69  .-99..4....onlyi
7280: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
7290: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
72a0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
72b0: 62 65 6c 2d 31 36 32 0d 0a 53 45 4c 45 43 54 20  bel-162..SELECT 
72c0: 44 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54  DISTINCT + COUNT
72d0: 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20  ( * ) FROM tab1 
72e0: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
72f0: 54 20 2d 20 63 6f 6c 32 20 2f 20 36 39 20 2f 20  T - col2 / 69 / 
7300: 2d 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55  - col1 IS NOT NU
7310: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73  LL..----..0....s
7320: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
7330: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
7340: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
7350: 62 65 6c 2d 31 36 32 0d 0a 53 45 4c 45 43 54 20  bel-162..SELECT 
7360: 44 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54  DISTINCT + COUNT
7370: 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31   ( * ) FROM tab1
7380: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
7390: 4f 54 20 2d 20 63 6f 6c 32 20 2f 20 36 39 20 2f  OT - col2 / 69 /
73a0: 20 2d 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e   - col1 IS NOT N
73b0: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  ULL..----..0....
73c0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
73d0: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
73e0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
73f0: 72 74 20 6c 61 62 65 6c 2d 31 36 33 0d 0a 53 45  rt label-163..SE
7400: 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20  LECT + COUNT( * 
7410: 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
7420: 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
7430: 45 20 4e 4f 54 20 63 6f 6c 31 20 3c 3d 20 2d 20  E NOT col1 <= - 
7440: 28 20 2d 20 63 6f 6c 30 20 29 20 2a 20 2b 20 63  ( - col0 ) * + c
7450: 6f 6c 31 20 2a 20 2b 20 2d 20 37 37 20 2b 20 2d  ol1 * + - 77 + -
7460: 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   col0..----..3..
7470: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
7480: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
7490: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
74a0: 20 6c 61 62 65 6c 2d 31 36 33 0d 0a 53 45 4c 45   label-163..SELE
74b0: 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29  CT + COUNT ( * )
74c0: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
74d0: 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
74e0: 20 4e 4f 54 20 63 6f 6c 31 20 3c 3d 20 2d 20 28   NOT col1 <= - (
74f0: 20 2d 20 63 6f 6c 30 20 29 20 2a 20 2b 20 63 6f   - col0 ) * + co
7500: 6c 31 20 2a 20 2b 20 2d 20 37 37 20 2b 20 2d 20  l1 * + - 77 + - 
7510: 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d  col0..----..3...
7520: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
7530: 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
7540: 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
7550: 20 63 6f 6c 30 20 2b 20 2b 20 37 30 20 3e 20 4e   col0 + + 70 > N
7560: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ULL..----....onl
7570: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
7580: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
7590: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
75a0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
75b0: 31 36 35 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  165..SELECT * FR
75c0: 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
75d0: 54 20 2b 20 2b 20 63 6f 6c 31 20 4e 4f 54 20 49  T + + col1 NOT I
75e0: 4e 20 28 20 2d 20 63 6f 6c 31 2c 20 37 20 2b 20  N ( - col1, 7 + 
75f0: 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  + CAST( NULL AS 
7600: 53 49 47 4e 45 44 20 29 20 2f 20 2d 20 63 6f 6c  SIGNED ) / - col
7610: 32 2c 20 2d 20 63 6f 6c 30 2c 20 2b 20 28 20 63  2, - col0, + ( c
7620: 6f 6c 31 20 29 20 2a 20 2d 20 2d 20 32 35 20 2b  ol1 ) * - - 25 +
7630: 20 2d 20 2d 20 33 38 20 2b 20 2d 20 2b 20 63 6f   - - 38 + - + co
7640: 6c 31 2c 20 2d 20 63 6f 6c 30 20 2d 20 2d 20 63  l1, - col0 - - c
7650: 6f 6c 30 2c 20 2d 20 2b 20 63 6f 6c 32 20 29 0d  ol0, - + col2 ).
7660: 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
7670: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
7680: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
7690: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
76a0: 31 36 35 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  165..SELECT * FR
76b0: 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
76c0: 54 20 2b 20 2b 20 63 6f 6c 31 20 4e 4f 54 20 49  T + + col1 NOT I
76d0: 4e 20 28 20 2d 20 63 6f 6c 31 2c 20 37 20 2b 20  N ( - col1, 7 + 
76e0: 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
76f0: 20 49 4e 54 45 47 45 52 20 29 20 2f 20 2d 20 63   INTEGER ) / - c
7700: 6f 6c 32 2c 20 2d 20 63 6f 6c 30 2c 20 2b 20 28  ol2, - col0, + (
7710: 20 63 6f 6c 31 20 29 20 2a 20 2d 20 2d 20 32 35   col1 ) * - - 25
7720: 20 2b 20 2d 20 2d 20 33 38 20 2b 20 2d 20 2b 20   + - - 38 + - + 
7730: 63 6f 6c 31 2c 20 2d 20 63 6f 6c 30 20 2d 20 2d  col1, - col0 - -
7740: 20 63 6f 6c 30 2c 20 2d 20 2b 20 63 6f 6c 32 20   col0, - + col2 
7750: 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  )..----....query
7760: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
7770: 43 54 20 44 49 53 54 49 4e 43 54 20 28 20 2d 20  CT DISTINCT ( - 
7780: 30 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  0 ) AS col1 FROM
7790: 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
77a0: 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..0....onlyif my
77b0: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
77c0: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
77d0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
77e0: 31 36 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  167..SELECT ALL 
77f0: 2d 20 53 55 4d 28 20 41 4c 4c 20 2d 20 2b 20 32  - SUM( ALL - + 2
7800: 32 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  2 ) AS col1 FROM
7810: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
7820: 2d 2d 2d 0d 0a 36 36 0d 0a 0d 0a 73 6b 69 70 69  ---..66....skipi
7830: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
7840: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
7850: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
7860: 31 36 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  167..SELECT ALL 
7870: 2d 20 53 55 4d 20 28 20 41 4c 4c 20 2d 20 2b 20  - SUM ( ALL - + 
7880: 32 32 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  22 ) AS col1 FRO
7890: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
78a0: 2d 2d 2d 2d 0d 0a 36 36 0d 0a 0d 0a 71 75 65 72  ----..66....quer
78b0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
78c0: 45 43 54 20 34 37 20 2a 20 2b 20 63 6f 6c 30 20  ECT 47 * + col0 
78d0: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
78e0: 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 36 32 0d 0a 33  0..----..2162..3
78f0: 30 30 38 0d 0a 33 35 32 35 0d 0a 0d 0a 6f 6e 6c  008..3525....onl
7900: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
7910: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49  egate syntax: DI
7920: 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
7930: 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
7940: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
7950: 2d 31 36 39 0d 0a 53 45 4c 45 43 54 20 44 49 53  -169..SELECT DIS
7960: 54 49 4e 43 54 20 2d 20 2b 20 38 31 20 41 53 20  TINCT - + 81 AS 
7970: 63 6f 6c 30 2c 20 4d 41 58 28 20 2d 20 63 6f 6c  col0, MAX( - col
7980: 32 20 29 20 44 49 56 20 2d 20 2b 20 37 32 20 41  2 ) DIV - + 72 A
7990: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
79a0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
79b0: 2d 38 31 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  -81..0....skipif
79c0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
79d0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
79e0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
79f0: 31 36 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  169..SELECT DIST
7a00: 49 4e 43 54 20 2d 20 2b 20 38 31 20 41 53 20 63  INCT - + 81 AS c
7a10: 6f 6c 30 2c 20 4d 41 58 20 28 20 2d 20 63 6f 6c  ol0, MAX ( - col
7a20: 32 20 29 20 2f 20 2d 20 2b 20 37 32 20 41 53 20  2 ) / - + 72 AS 
7a30: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
7a40: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38  S cor0..----..-8
7a50: 31 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  1..0....query I 
7a60: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
7a70: 41 4c 4c 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  ALL col2 FROM ta
7a80: 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
7a90: 20 4e 4f 54 20 2d 20 63 6f 6c 30 20 42 45 54 57   NOT - col0 BETW
7aa0: 45 45 4e 20 2b 20 38 38 20 2a 20 2d 20 63 6f 6c  EEN + 88 * - col
7ab0: 31 20 41 4e 44 20 2b 20 2b 20 63 6f 6c 30 0d 0a  1 AND + + col0..
7ac0: 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  ----....skipif p
7ad0: 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
7ae0: 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
7af0: 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
7b00: 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
7b10: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
7b20: 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20 2b 20 33  ..SELECT - ( + 3
7b30: 37 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  7 ) col0 FROM ta
7b40: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
7b50: 0d 0a 2d 33 37 0d 0a 2d 33 37 0d 0a 2d 33 37 0d  ..-37..-37..-37.
7b60: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
7b70: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
7b80: 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 20 57 48  ROM tab1 cor0 WH
7b90: 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 42 45 54  ERE NOT NULL BET
7ba0: 57 45 45 4e 20 63 6f 6c 32 20 41 4e 44 20 2d 20  WEEN col2 AND - 
7bb0: 63 6f 6c 30 20 2a 20 63 6f 6c 32 20 2b 20 63 6f  col0 * col2 + co
7bc0: 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  l0..----....only
7bd0: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
7be0: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
7bf0: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  ype: ..query II 
7c00: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37  rowsort label-17
7c10: 33 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53 54  3..SELECT - CAST
7c20: 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
7c30: 20 29 20 41 53 20 63 6f 6c 32 2c 20 2b 20 38 38   ) AS col2, + 88
7c40: 20 2a 20 2d 20 2b 20 39 39 20 2a 20 2d 20 2b 20   * - + 99 * - + 
7c50: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
7c60: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
7c70: 4c 4c 0d 0a 34 30 39 34 36 34 0d 0a 4e 55 4c 4c  LL..409464..NULL
7c80: 0d 0a 38 36 32 34 38 38 0d 0a 4e 55 4c 4c 0d 0a  ..862488..NULL..
7c90: 38 37 31 32 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  87120....skipif 
7ca0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
7cb0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
7cc0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
7cd0: 37 33 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53  73..SELECT - CAS
7ce0: 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
7cf0: 47 45 52 20 29 20 41 53 20 63 6f 6c 32 2c 20 2b  GER ) AS col2, +
7d00: 20 38 38 20 2a 20 2d 20 2b 20 39 39 20 2a 20 2d   88 * - + 99 * -
7d10: 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   + col2 FROM tab
7d20: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
7d30: 0a 4e 55 4c 4c 0d 0a 34 30 39 34 36 34 0d 0a 4e  .NULL..409464..N
7d40: 55 4c 4c 0d 0a 38 36 32 34 38 38 0d 0a 4e 55 4c  ULL..862488..NUL
7d50: 4c 0d 0a 38 37 31 32 30 0d 0a 0d 0a 71 75 65 72  L..87120....quer
7d60: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
7d70: 45 43 54 20 2b 20 35 36 20 41 53 20 63 6f 6c 30  ECT + 56 AS col0
7d80: 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d   FROM tab1 cor0.
7d90: 0a 2d 2d 2d 2d 0d 0a 35 36 0d 0a 35 36 0d 0a 35  .----..56..56..5
7da0: 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
7db0: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
7dc0: 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
7dd0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
7de0: 6c 61 62 65 6c 2d 31 37 35 0d 0a 53 45 4c 45 43  label-175..SELEC
7df0: 54 20 41 4c 4c 20 2d 20 43 41 53 54 28 20 43 41  T ALL - CAST( CA
7e00: 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
7e10: 45 44 20 29 20 41 53 20 53 49 47 4e 45 44 20 29  ED ) AS SIGNED )
7e20: 20 2a 20 2b 20 63 6f 6c 32 20 63 6f 6c 30 20 46   * + col2 col0 F
7e30: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
7e40: 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
7e50: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
7e60: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
7e70: 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
7e80: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
7e90: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
7ea0: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
7eb0: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
7ec0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
7ed0: 6c 2d 31 37 35 0d 0a 53 45 4c 45 43 54 20 41 4c  l-175..SELECT AL
7ee0: 4c 20 2d 20 43 41 53 54 20 28 20 43 41 53 54 20  L - CAST ( CAST 
7ef0: 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
7f00: 52 20 29 20 41 53 20 49 4e 54 45 47 45 52 20 29  R ) AS INTEGER )
7f10: 20 2a 20 2b 20 63 6f 6c 32 20 63 6f 6c 30 20 46   * + col2 col0 F
7f20: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
7f30: 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
7f40: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
7f50: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 31 32 20 2a  ort..SELECT 12 *
7f60: 20 2b 20 31 38 20 41 53 20 63 6f 6c 32 20 46 52   + 18 AS col2 FR
7f70: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32  OM tab0..----..2
7f80: 31 36 0d 0a 32 31 36 0d 0a 32 31 36 0d 0a 0d 0a  16..216..216....
7f90: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
7fa0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
7fb0: 20 2d 20 38 36 20 2a 20 2b 20 63 6f 6c 32 20 41   - 86 * + col2 A
7fc0: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
7fd0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 37 38 0d 0a 2d  ..----..-1978..-
7fe0: 33 34 34 30 0d 0a 2d 34 39 38 38 0d 0a 0d 0a 6f  3440..-4988....o
7ff0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
8000: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
8010: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
8020: 74 20 6c 61 62 65 6c 2d 31 37 38 0d 0a 53 45 4c  t label-178..SEL
8030: 45 43 54 20 41 4c 4c 20 2d 20 4d 41 58 28 20 44  ECT ALL - MAX( D
8040: 49 53 54 49 4e 43 54 20 2d 20 35 33 20 29 20 46  ISTINCT - 53 ) F
8050: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
8060: 35 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  53....skipif mys
8070: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
8080: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
8090: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37 38 0d 0a  sort label-178..
80a0: 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 4d 41 58  SELECT ALL - MAX
80b0: 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 35 33   ( DISTINCT - 53
80c0: 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
80d0: 2d 2d 0d 0a 35 33 0d 0a 0d 0a 6f 6e 6c 79 69 66  --..53....onlyif
80e0: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
80f0: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
8100: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
8110: 65 6c 2d 31 37 39 0d 0a 53 45 4c 45 43 54 20 43  el-179..SELECT C
8120: 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c  OUNT( * ) AS col
8130: 31 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  1 FROM tab0 WHER
8140: 45 20 4e 4f 54 20 2d 20 2d 20 31 33 20 49 53 20  E NOT - - 13 IS 
8150: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d  NULL..----..3...
8160: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
8170: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
8180: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
8190: 6c 61 62 65 6c 2d 31 37 39 0d 0a 53 45 4c 45 43  label-179..SELEC
81a0: 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53  T COUNT ( * ) AS
81b0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
81c0: 57 48 45 52 45 20 4e 4f 54 20 2d 20 2d 20 31 33  WHERE NOT - - 13
81d0: 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
81e0: 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
81f0: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
8200: 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e  ntax: DIV for in
8210: 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
8220: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
8230: 74 20 6c 61 62 65 6c 2d 31 38 30 0d 0a 53 45 4c  t label-180..SEL
8240: 45 43 54 20 41 4c 4c 20 4d 41 58 28 20 44 49 53  ECT ALL MAX( DIS
8250: 54 49 4e 43 54 20 28 20 2b 20 34 39 20 29 20 29  TINCT ( + 49 ) )
8260: 20 44 49 56 20 2b 20 43 4f 55 4e 54 28 20 2a 20   DIV + COUNT( * 
8270: 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
8280: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 0d 0a 0d  ab0..----..16...
8290: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
82a0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
82b0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
82c0: 6c 61 62 65 6c 2d 31 38 30 0d 0a 53 45 4c 45 43  label-180..SELEC
82d0: 54 20 41 4c 4c 20 4d 41 58 20 28 20 44 49 53 54  T ALL MAX ( DIST
82e0: 49 4e 43 54 20 28 20 2b 20 34 39 20 29 20 29 20  INCT ( + 49 ) ) 
82f0: 2f 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  / + COUNT ( * ) 
8300: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
8310: 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 0d 0a 0d 0a 71  0..----..16....q
8320: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
8330: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
8340: 20 2b 20 63 6f 6c 30 2c 20 2b 20 34 37 20 46 52   + col0, + 47 FR
8350: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
8360: 35 0d 0a 34 37 0d 0a 38 37 0d 0a 34 37 0d 0a 39  5..47..87..47..9
8370: 37 0d 0a 34 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  7..47....onlyif 
8380: 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
8390: 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
83a0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
83b0: 6f 72 74 20 6c 61 62 65 6c 2d 31 38 32 0d 0a 53  ort label-182..S
83c0: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
83d0: 20 63 6f 6c 32 20 44 49 56 20 39 30 20 2b 20 63   col2 DIV 90 + c
83e0: 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol2 AS col0 FROM
83f0: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
8400: 2d 2d 2d 0d 0a 32 33 0d 0a 34 30 0d 0a 35 38 0d  ---..23..40..58.
8410: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
8420: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
8430: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
8440: 74 20 6c 61 62 65 6c 2d 31 38 32 0d 0a 53 45 4c  t label-182..SEL
8450: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63  ECT DISTINCT - c
8460: 6f 6c 32 20 2f 20 39 30 20 2b 20 63 6f 6c 32 20  ol2 / 90 + col2 
8470: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
8480: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
8490: 0a 32 33 0d 0a 34 30 0d 0a 35 38 0d 0a 0d 0a 6f  .23..40..58....o
84a0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
84b0: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
84c0: 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
84d0: 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
84e0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
84f0: 6c 2d 31 38 33 0d 0a 53 45 4c 45 43 54 20 41 4c  l-183..SELECT AL
8500: 4c 20 4d 49 4e 28 20 63 6f 6c 30 20 29 20 44 49  L MIN( col0 ) DI
8510: 56 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  V - - COUNT( * )
8520: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
8530: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37 0d 0a 0d 0a  r0..----..17....
8540: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
8550: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
8560: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
8570: 61 62 65 6c 2d 31 38 33 0d 0a 53 45 4c 45 43 54  abel-183..SELECT
8580: 20 41 4c 4c 20 4d 49 4e 20 28 20 63 6f 6c 30 20   ALL MIN ( col0 
8590: 29 20 2f 20 2d 20 2d 20 43 4f 55 4e 54 20 28 20  ) / - - COUNT ( 
85a0: 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  * ) FROM tab1 AS
85b0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37 0d   cor0..----..17.
85c0: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
85d0: 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 38  rt..SELECT - - 8
85e0: 33 20 2b 20 2d 20 2d 20 63 6f 6c 30 20 46 52 4f  3 + - - col0 FRO
85f0: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
8600: 2d 2d 2d 2d 0d 0a 31 32 39 0d 0a 31 34 37 0d 0a  ----..129..147..
8610: 31 35 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  158....query III
8620: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
8630: 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
8640: 20 74 61 62 31 20 63 6f 72 30 20 57 48 45 52 45   tab1 cor0 WHERE
8650: 20 63 6f 6c 31 20 2b 20 2d 20 32 38 20 49 53 20   col1 + - 28 IS 
8660: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
8670: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
8680: 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
8690: 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
86a0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
86b0: 38 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  86..SELECT ALL -
86c0: 20 63 6f 6c 30 20 44 49 56 20 63 6f 6c 31 20 2b   col0 DIV col1 +
86d0: 20 2d 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 63 6f   - - col1 * + co
86e0: 6c 30 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  l0 col1 FROM tab
86f0: 31 0d 0a 2d 2d 2d 2d 0d 0a 34 30 38 0d 0a 34 32  1..----..408..42
8700: 37 36 0d 0a 37 31 31 0d 0a 0d 0a 73 6b 69 70 69  76..711....skipi
8710: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
8720: 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66  mpatible..skipif
8730: 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
8740: 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
8750: 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
8760: 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
8770: 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
8780: 72 74 20 6c 61 62 65 6c 2d 31 38 36 0d 0a 53 45  rt label-186..SE
8790: 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20  LECT ALL - col0 
87a0: 2f 20 63 6f 6c 31 20 2b 20 2d 20 2d 20 63 6f 6c  / col1 + - - col
87b0: 31 20 2a 20 2b 20 63 6f 6c 30 20 63 6f 6c 31 20  1 * + col0 col1 
87c0: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
87d0: 0a 34 30 38 0d 0a 34 32 37 36 0d 0a 37 31 31 0d  .408..4276..711.
87e0: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
87f0: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
8800: 4e 43 54 20 2b 20 2b 20 33 34 20 46 52 4f 4d 20  NCT + + 34 FROM 
8810: 74 61 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f  tab1 AS cor0 CRO
8820: 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53 20  SS JOIN tab2 AS 
8830: 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 33 34 0d 0a  cor1..----..34..
8840: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
8850: 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 32 30 20  rt..SELECT - 20 
8860: 41 53 20 63 6f 6c 32 2c 20 2b 20 35 20 41 53 20  AS col2, + 5 AS 
8870: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41  col2 FROM tab1 A
8880: 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c  S cor0 WHERE NUL
8890: 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  L IS NOT NULL..-
88a0: 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
88b0: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
88c0: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
88d0: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
88e0: 2d 31 38 39 0d 0a 53 45 4c 45 43 54 20 44 49 53  -189..SELECT DIS
88f0: 54 49 4e 43 54 20 2b 20 28 20 2b 20 43 4f 55 4e  TINCT + ( + COUN
8900: 54 28 20 2a 20 29 20 29 20 63 6f 6c 31 2c 20 2d  T( * ) ) col1, -
8910: 20 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   2 FROM tab2 AS 
8920: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 2d  cor0..----..3..-
8930: 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  2....skipif mysq
8940: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
8950: 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
8960: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
8970: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
8980: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
8990: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
89a0: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
89b0: 62 65 6c 2d 31 38 39 0d 0a 53 45 4c 45 43 54 20  bel-189..SELECT 
89c0: 44 49 53 54 49 4e 43 54 20 2b 20 28 20 2b 20 43  DISTINCT + ( + C
89d0: 4f 55 4e 54 20 28 20 2a 20 29 20 29 20 63 6f 6c  OUNT ( * ) ) col
89e0: 31 2c 20 2d 20 32 20 46 52 4f 4d 20 74 61 62 32  1, - 2 FROM tab2
89f0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
8a00: 33 0d 0a 2d 32 0d 0a 0d 0a 73 6b 69 70 69 66 20  3..-2....skipif 
8a10: 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
8a20: 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
8a30: 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
8a40: 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
8a50: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
8a60: 74 0d 0a 53 45 4c 45 43 54 20 2b 20 34 31 20 63  t..SELECT + 41 c
8a70: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  ol1 FROM tab0 co
8a80: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 31 0d 0a 34 31  r0..----..41..41
8a90: 0d 0a 34 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..41....query I 
8aa0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
8ab0: 2d 20 63 6f 6c 30 20 2a 20 63 6f 6c 30 20 2b 20  - col0 * col0 + 
8ac0: 2b 20 36 32 20 46 52 4f 4d 20 74 61 62 31 20 41  + 62 FROM tab1 A
8ad0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  S cor0..----..-2
8ae0: 35 33 39 0d 0a 2d 37 31 36 33 0d 0a 2d 38 32 31  539..-7163..-821
8af0: 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  9....onlyif mysq
8b00: 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
8b10: 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
8b20: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
8b30: 6c 61 62 65 6c 2d 31 39 32 0d 0a 53 45 4c 45 43  label-192..SELEC
8b40: 54 20 63 6f 6c 30 20 44 49 56 20 2d 20 32 35 20  T col0 DIV - 25 
8b50: 2d 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  - - col0 FROM ta
8b60: 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34  b1 cor0..----..4
8b70: 39 0d 0a 38 32 0d 0a 38 38 0d 0a 0d 0a 73 6b 69  9..82..88....ski
8b80: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
8b90: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
8ba0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
8bb0: 6c 2d 31 39 32 0d 0a 53 45 4c 45 43 54 20 63 6f  l-192..SELECT co
8bc0: 6c 30 20 2f 20 2d 20 32 35 20 2d 20 2d 20 63 6f  l0 / - 25 - - co
8bd0: 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  l0 FROM tab1 cor
8be0: 30 0d 0a 2d 2d 2d 2d 0d 0a 34 39 0d 0a 38 32 0d  0..----..49..82.
8bf0: 0a 38 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  .88....query II 
8c00: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
8c10: 2d 20 63 6f 6c 31 20 2d 20 2d 20 37 35 20 41 53  - col1 - - 75 AS
8c20: 20 63 6f 6c 31 2c 20 63 6f 6c 32 20 46 52 4f 4d   col1, col2 FROM
8c30: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
8c40: 2d 2d 2d 0d 0a 2d 36 0d 0a 34 37 0d 0a 35 34 0d  ---..-6..47..54.
8c50: 0a 31 30 0d 0a 37 34 0d 0a 39 39 0d 0a 0d 0a 71  .10..74..99....q
8c60: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
8c70: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
8c80: 2d 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 2b 20 36  - - col2 + + + 6
8c90: 36 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  6 AS col0 FROM t
8ca0: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
8cb0: 2d 0d 0a 31 30 36 0d 0a 31 32 34 0d 0a 38 39 0d  -..106..124..89.
8cc0: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
8cd0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
8ce0: 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   * FROM tab2 WHE
8cf0: 52 45 20 2b 20 63 6f 6c 32 20 49 53 20 4e 55 4c  RE + col2 IS NUL
8d00: 4c 20 41 4e 44 20 4e 55 4c 4c 20 49 53 20 4e 4f  L AND NULL IS NO
8d10: 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  T NULL..----....
8d20: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
8d30: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
8d40: 20 36 20 2d 20 2b 20 63 6f 6c 32 20 46 52 4f 4d   6 - + col2 FROM
8d50: 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 0d   tab0..----..-4.
8d60: 0a 2d 34 31 0d 0a 2d 39 33 0d 0a 0d 0a 71 75 65  .-41..-93....que
8d70: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
8d80: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
8d90: 38 34 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c  84 - col0 AS col
8da0: 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
8db0: 2d 0d 0a 32 30 0d 0a 33 38 0d 0a 39 0d 0a 0d 0a  -..20..38..9....
8dc0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
8dd0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 28 20  .SELECT ALL - ( 
8de0: 2b 20 63 6f 6c 32 20 29 20 2d 20 2d 20 63 6f 6c  + col2 ) - - col
8df0: 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
8e00: 2d 0d 0a 31 37 0d 0a 32 33 0d 0a 32 34 0d 0a 0d  -..17..23..24...
8e10: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
8e20: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 34  ..SELECT ALL - 4
8e30: 36 20 2a 20 2d 20 2d 20 63 6f 6c 32 20 2a 20 2d  6 * - - col2 * -
8e40: 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   + col0 FROM tab
8e50: 31 0d 0a 2d 2d 2d 2d 0d 0a 32 32 35 32 31 36 0d  1..----..225216.
8e60: 0a 32 33 30 36 39 30 0d 0a 32 38 34 36 34 38 0d  .230690..284648.
8e70: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
8e80: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
8e90: 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
8ea0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
8eb0: 62 65 6c 2d 32 30 30 0d 0a 53 45 4c 45 43 54 20  bel-200..SELECT 
8ec0: 41 4c 4c 20 43 41 53 54 28 20 2b 20 2b 20 63 6f  ALL CAST( + + co
8ed0: 6c 32 20 41 53 20 53 49 47 4e 45 44 20 29 20 41  l2 AS SIGNED ) A
8ee0: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
8ef0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
8f00: 31 30 0d 0a 34 37 0d 0a 39 39 0d 0a 0d 0a 73 6b  10..47..99....sk
8f10: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
8f20: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
8f30: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
8f40: 65 6c 2d 32 30 30 0d 0a 53 45 4c 45 43 54 20 41  el-200..SELECT A
8f50: 4c 4c 20 43 41 53 54 20 28 20 2b 20 2b 20 63 6f  LL CAST ( + + co
8f60: 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  l2 AS INTEGER ) 
8f70: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
8f80: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
8f90: 0a 31 30 0d 0a 34 37 0d 0a 39 39 0d 0a 0d 0a 73  .10..47..99....s
8fa0: 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
8fb0: 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
8fc0: 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
8fd0: 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
8fe0: 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49  olumns..query II
8ff0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
9000: 20 41 4c 4c 20 63 6f 6c 31 20 63 6f 6c 32 2c 20   ALL col1 col2, 
9010: 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  - col0 FROM tab1
9020: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
9030: 31 34 0d 0a 2d 35 31 0d 0a 34 37 0d 0a 2d 39 31  14..-51..47..-91
9040: 0d 0a 35 0d 0a 2d 38 35 0d 0a 0d 0a 6f 6e 6c 79  ..5..-85....only
9050: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
9060: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56  gate syntax: DIV
9070: 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
9080: 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
9090: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
90a0: 30 32 0d 0a 53 45 4c 45 43 54 20 38 31 20 44 49  02..SELECT 81 DI
90b0: 56 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41  V + COUNT( * ) A
90c0: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
90d0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
90e0: 32 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  27....skipif mys
90f0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
9100: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
9110: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 30 32 0d 0a  sort label-202..
9120: 53 45 4c 45 43 54 20 38 31 20 2f 20 2b 20 43 4f  SELECT 81 / + CO
9130: 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c  UNT ( * ) AS col
9140: 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
9150: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 37 0d 0a 0d  or0..----..27...
9160: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
9170: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
9180: 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
9190: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 30 33 0d 0a  sort label-203..
91a0: 53 45 4c 45 43 54 20 2b 20 2b 20 53 55 4d 28 20  SELECT + + SUM( 
91b0: 63 6f 6c 31 20 29 2c 20 2d 20 31 33 20 41 53 20  col1 ), - 13 AS 
91c0: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
91d0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39  S cor0..----..19
91e0: 35 0d 0a 2d 31 33 0d 0a 0d 0a 73 6b 69 70 69 66  5..-13....skipif
91f0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
9200: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
9210: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
9220: 32 30 33 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20  203..SELECT + + 
9230: 53 55 4d 20 28 20 63 6f 6c 31 20 29 2c 20 2d 20  SUM ( col1 ), - 
9240: 31 33 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  13 AS col0 FROM 
9250: 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
9260: 2d 2d 0d 0a 31 39 35 0d 0a 2d 31 33 0d 0a 0d 0a  --..195..-13....
9270: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
9280: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
9290: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
92a0: 72 74 20 6c 61 62 65 6c 2d 32 30 34 0d 0a 53 45  rt label-204..SE
92b0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
92c0: 4d 49 4e 28 20 2d 20 2b 20 39 35 20 29 20 41 53  MIN( - + 95 ) AS
92d0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
92e0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
92f0: 39 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  95....skipif mys
9300: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
9310: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
9320: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 30 34 0d 0a  sort label-204..
9330: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
9340: 2b 20 4d 49 4e 20 28 20 2d 20 2b 20 39 35 20 29  + MIN ( - + 95 )
9350: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
9360: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
9370: 0d 0a 2d 39 35 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-95....query I
9380: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
9390: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41  CT * FROM tab1 A
93a0: 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
93b0: 20 4e 55 4c 4c 20 3c 3d 20 63 6f 6c 31 20 2a 20   NULL <= col1 * 
93c0: 2b 20 38 38 20 2d 20 2d 20 63 6f 6c 30 0d 0a 2d  + 88 - - col0..-
93d0: 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  ---....skipif po
93e0: 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
93f0: 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
9400: 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
9410: 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
9420: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
9430: 0a 53 45 4c 45 43 54 20 2d 20 2b 20 36 39 20 2a  .SELECT - + 69 *
9440: 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 30   - col1 * + col0
9450: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
9460: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  AS cor0..----..2
9470: 39 33 32 35 0d 0a 32 39 35 31 31 33 0d 0a 34 39  9325..295113..49
9480: 32 36 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  266....onlyif my
9490: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
94a0: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
94b0: 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a  DECIMAL type: ..
94c0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
94d0: 6c 61 62 65 6c 2d 32 30 37 0d 0a 53 45 4c 45 43  label-207..SELEC
94e0: 54 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  T + CAST( NULL A
94f0: 53 20 44 45 43 49 4d 41 4c 20 29 20 2f 20 2d 20  S DECIMAL ) / - 
9500: 2b 20 39 37 20 2a 20 2b 20 2b 20 28 20 2d 20 63  + 97 * + + ( - c
9510: 6f 6c 30 20 29 20 2b 20 2d 20 35 34 20 2b 20 2d  ol0 ) + - 54 + -
9520: 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 30 20 2b   col0 * - col0 +
9530: 20 2b 20 2b 20 34 35 20 2a 20 2d 20 2b 20 63 6f   + + 45 * - + co
9540: 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
9550: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  cor0 WHERE NOT N
9560: 55 4c 4c 20 4e 4f 54 20 49 4e 20 28 20 2b 20 63  ULL NOT IN ( + c
9570: 6f 6c 32 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 2d  ol2 + + col1 + -
9580: 20 43 41 53 54 28 20 2b 20 36 31 20 41 53 20 53   CAST( + 61 AS S
9590: 49 47 4e 45 44 20 29 20 2b 20 34 39 20 2a 20 34  IGNED ) + 49 * 4
95a0: 35 20 2d 20 38 31 20 2a 20 63 6f 6c 30 20 2f 20  5 - 81 * col0 / 
95b0: 63 6f 6c 30 20 2a 20 2b 20 34 37 20 2d 20 37 31  col0 * + 47 - 71
95c0: 20 2d 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d   - col0 )..----.
95d0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
95e0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
95f0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
9600: 74 20 6c 61 62 65 6c 2d 32 30 37 0d 0a 53 45 4c  t label-207..SEL
9610: 45 43 54 20 2b 20 43 41 53 54 20 28 20 4e 55 4c  ECT + CAST ( NUL
9620: 4c 20 41 53 20 52 45 41 4c 20 29 20 2f 20 2d 20  L AS REAL ) / - 
9630: 2b 20 39 37 20 2a 20 2b 20 2b 20 28 20 2d 20 63  + 97 * + + ( - c
9640: 6f 6c 30 20 29 20 2b 20 2d 20 35 34 20 2b 20 2d  ol0 ) + - 54 + -
9650: 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 30 20 2b   col0 * - col0 +
9660: 20 2b 20 2b 20 34 35 20 2a 20 2d 20 2b 20 63 6f   + + 45 * - + co
9670: 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
9680: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  cor0 WHERE NOT N
9690: 55 4c 4c 20 4e 4f 54 20 49 4e 20 28 20 2b 20 63  ULL NOT IN ( + c
96a0: 6f 6c 32 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 2d  ol2 + + col1 + -
96b0: 20 43 41 53 54 20 28 20 2b 20 36 31 20 41 53 20   CAST ( + 61 AS 
96c0: 49 4e 54 45 47 45 52 20 29 20 2b 20 34 39 20 2a  INTEGER ) + 49 *
96d0: 20 34 35 20 2d 20 38 31 20 2a 20 63 6f 6c 30 20   45 - 81 * col0 
96e0: 2f 20 63 6f 6c 30 20 2a 20 2b 20 34 37 20 2d 20  / col0 * + 47 - 
96f0: 37 31 20 2d 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d  71 - col0 )..---
9700: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  -....query III r
9710: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
9720: 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41  LL * FROM tab0 A
9730: 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
9740: 20 31 35 20 2d 20 2d 20 2b 20 28 20 2d 20 2b 20   15 - - + ( - + 
9750: 33 31 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  31 ) IS NOT NULL
9760: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
9770: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
9780: 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
9790: 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 28 20  ab1 WHERE NOT ( 
97a0: 28 20 63 6f 6c 32 20 29 20 3d 20 28 20 2b 20 63  ( col2 ) = ( + c
97b0: 6f 6c 31 20 29 20 2a 20 2b 20 2d 20 63 6f 6c 32  ol1 ) * + - col2
97c0: 20 2a 20 2b 20 2b 20 63 6f 6c 30 20 29 0d 0a 2d   * + + col0 )..-
97d0: 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
97e0: 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31  shing to c6c0a41
97f0: 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31  11b36d04dbc811a1
9800: 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65  1e4d54cad....que
9810: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
9820: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
9830: 63 6f 6c 31 20 2a 20 36 31 20 46 52 4f 4d 20 74  col1 * 61 FROM t
9840: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 38 31  ab0..----..-1281
9850: 0d 0a 2d 34 39 34 31 0d 0a 2d 36 31 0d 0a 0d 0a  ..-4941..-61....
9860: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
9870: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
9880: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
9890: 72 74 20 6c 61 62 65 6c 2d 32 31 31 0d 0a 53 45  rt label-211..SE
98a0: 4c 45 43 54 20 41 4c 4c 20 28 20 2d 20 28 20 2b  LECT ALL ( - ( +
98b0: 20 2b 20 4d 41 58 28 20 44 49 53 54 49 4e 43 54   + MAX( DISTINCT
98c0: 20 63 6f 6c 32 20 29 20 29 20 29 20 41 53 20 63   col2 ) ) ) AS c
98d0: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
98e0: 2d 2d 2d 0d 0a 2d 39 39 0d 0a 0d 0a 73 6b 69 70  ---..-99....skip
98f0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
9900: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
9910: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
9920: 2d 32 31 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -211..SELECT ALL
9930: 20 28 20 2d 20 28 20 2b 20 2b 20 4d 41 58 20 28   ( - ( + + MAX (
9940: 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 29   DISTINCT col2 )
9950: 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   ) ) AS col1 FRO
9960: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39  M tab0..----..-9
9970: 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  9....onlyif mysq
9980: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
9990: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
99a0: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
99b0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
99c0: 74 20 6c 61 62 65 6c 2d 32 31 32 0d 0a 53 45 4c  t label-212..SEL
99d0: 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  ECT + COUNT( * )
99e0: 20 2b 20 28 20 2d 20 43 41 53 54 28 20 2b 20 31   + ( - CAST( + 1
99f0: 38 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20  8 AS SIGNED ) ) 
9a00: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
9a10: 0a 2d 31 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-15....skipif m
9a20: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
9a30: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
9a40: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 31 32  owsort label-212
9a50: 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54  ..SELECT + COUNT
9a60: 20 28 20 2a 20 29 20 2b 20 28 20 2d 20 43 41 53   ( * ) + ( - CAS
9a70: 54 20 28 20 2b 20 31 38 20 41 53 20 49 4e 54 45  T ( + 18 AS INTE
9a80: 47 45 52 20 29 20 29 20 46 52 4f 4d 20 74 61 62  GER ) ) FROM tab
9a90: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 0d 0a  0..----..-15....
9aa0: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
9ab0: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
9ac0: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  CT * FROM tab2 W
9ad0: 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f  HERE NOT NULL NO
9ae0: 54 20 42 45 54 57 45 45 4e 20 2d 20 63 6f 6c 31  T BETWEEN - col1
9af0: 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   AND NULL..----.
9b00: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
9b10: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
9b20: 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e  ROM tab1 WHERE N
9b30: 4f 54 20 2d 20 28 20 2b 20 63 6f 6c 31 20 29 20  OT - ( + col1 ) 
9b40: 2a 20 2b 20 32 37 20 2b 20 2b 20 2b 20 28 20 2d  * + 27 + + + ( -
9b50: 20 63 6f 6c 30 20 29 20 49 53 20 4e 55 4c 4c 0d   col0 ) IS NULL.
9b60: 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
9b70: 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61  hashing to c6c0a
9b80: 34 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31  4111b36d04dbc811
9b90: 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71  a11e4d54cad....q
9ba0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
9bb0: 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2b 20  SELECT + col1 + 
9bc0: 2b 20 28 20 2d 20 28 20 2d 20 63 6f 6c 31 20 29  + ( - ( - col1 )
9bd0: 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d   ) FROM tab2..--
9be0: 2d 2d 0d 0a 31 30 32 0d 0a 31 33 34 0d 0a 31 35  --..102..134..15
9bf0: 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  4....onlyif mysq
9c00: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
9c10: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
9c20: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 31  rowsort label-21
9c30: 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  6..SELECT ALL + 
9c40: 53 55 4d 28 20 41 4c 4c 20 2d 20 2b 20 35 32 20  SUM( ALL - + 52 
9c50: 29 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  ) FROM tab2 WHER
9c60: 45 20 4e 4f 54 20 2b 20 63 6f 6c 30 20 49 53 20  E NOT + col0 IS 
9c70: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 36  NULL..----..-156
9c80: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
9c90: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
9ca0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
9cb0: 72 74 20 6c 61 62 65 6c 2d 32 31 36 0d 0a 53 45  rt label-216..SE
9cc0: 4c 45 43 54 20 41 4c 4c 20 2b 20 53 55 4d 20 28  LECT ALL + SUM (
9cd0: 20 41 4c 4c 20 2d 20 2b 20 35 32 20 29 20 46 52   ALL - + 52 ) FR
9ce0: 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
9cf0: 54 20 2b 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c  T + col0 IS NULL
9d00: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 36 0d 0a 0d 0a  ..----..-156....
9d10: 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
9d20: 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
9d30: 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
9d40: 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
9d50: 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
9d60: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
9d70: 20 41 4c 4c 20 2b 20 33 33 20 63 6f 6c 30 20 46   ALL + 33 col0 F
9d80: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
9d90: 33 33 0d 0a 33 33 0d 0a 33 33 0d 0a 0d 0a 71 75  33..33..33....qu
9da0: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
9db0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
9dc0: 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f  OM tab1 WHERE NO
9dd0: 54 20 2d 20 63 6f 6c 32 20 3c 3d 20 63 6f 6c 32  T - col2 <= col2
9de0: 20 2f 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d   / col2..----...
9df0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
9e00: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
9e10: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
9e20: 6f 72 74 20 6c 61 62 65 6c 2d 32 31 39 0d 0a 53  ort label-219..S
9e30: 45 4c 45 43 54 20 33 30 20 2b 20 2b 20 2b 20 28  ELECT 30 + + + (
9e40: 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 29 20   - COUNT( * ) ) 
9e50: 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
9e60: 0a 32 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .27....skipif my
9e70: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
9e80: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
9e90: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 31 39 0d  wsort label-219.
9ea0: 0a 53 45 4c 45 43 54 20 33 30 20 2b 20 2b 20 2b  .SELECT 30 + + +
9eb0: 20 28 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29   ( - COUNT ( * )
9ec0: 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d   ) FROM tab2..--
9ed0: 2d 2d 0d 0a 32 37 0d 0a 0d 0a 71 75 65 72 79 20  --..27....query 
9ee0: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
9ef0: 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
9f00: 57 48 45 52 45 20 2d 20 32 32 20 3e 3d 20 4e 55  WHERE - 22 >= NU
9f10: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  LL..----....only
9f20: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
9f30: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
9f40: 79 70 65 3a 20 44 45 43 49 4d 41 4c 20 74 79 70  ype: DECIMAL typ
9f50: 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
9f60: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 32 31 0d 0a  sort label-221..
9f70: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
9f80: 2b 20 43 41 53 54 28 20 2b 20 43 41 53 54 28 20  + CAST( + CAST( 
9f90: 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
9fa0: 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20 46 52   AS DECIMAL ) FR
9fb0: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
9fc0: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
9fd0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
9fe0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
9ff0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
a000: 62 65 6c 2d 32 32 31 0d 0a 53 45 4c 45 43 54 20  bel-221..SELECT 
a010: 44 49 53 54 49 4e 43 54 20 2b 20 43 41 53 54 20  DISTINCT + CAST 
a020: 28 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  ( + CAST ( NULL 
a030: 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20  AS INTEGER ) AS 
a040: 52 45 41 4c 20 29 20 46 52 4f 4d 20 74 61 62 32  REAL ) FROM tab2
a050: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
a060: 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  NULL....onlyif m
a070: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
a080: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
a090: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
a0a0: 2d 32 32 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -222..SELECT ALL
a0b0: 20 4d 49 4e 28 20 2d 20 2d 20 35 35 20 29 20 2b   MIN( - - 55 ) +
a0c0: 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d   COUNT( * ) FROM
a0d0: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
a0e0: 2d 2d 2d 0d 0a 35 38 0d 0a 0d 0a 73 6b 69 70 69  ---..58....skipi
a0f0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
a100: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
a110: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
a120: 32 32 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  222..SELECT ALL 
a130: 4d 49 4e 20 28 20 2d 20 2d 20 35 35 20 29 20 2b  MIN ( - - 55 ) +
a140: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f   COUNT ( * ) FRO
a150: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
a160: 2d 2d 2d 2d 0d 0a 35 38 0d 0a 0d 0a 73 6b 69 70  ----..58....skip
a170: 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
a180: 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
a190: 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
a1a0: 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
a1b0: 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
a1c0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
a1d0: 54 49 4e 43 54 20 2b 20 35 35 20 2b 20 2b 20 2b  TINCT + 55 + + +
a1e0: 20 63 6f 6c 31 20 63 6f 6c 31 20 46 52 4f 4d 20   col1 col1 FROM 
a1f0: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
a200: 2d 2d 0d 0a 31 30 32 0d 0a 36 30 0d 0a 36 39 0d  --..102..60..69.
a210: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
a220: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
a230: 20 36 31 20 2b 20 2d 20 63 6f 6c 31 20 41 53 20   61 + - col1 AS 
a240: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
a250: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
a260: 36 0d 0a 2d 36 0d 0a 31 30 0d 0a 0d 0a 6f 6e 6c  6..-6..10....onl
a270: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
a280: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
a290: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
a2a0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 32  rowsort label-22
a2b0: 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  5..SELECT DISTIN
a2c0: 43 54 20 2d 20 32 33 20 2b 20 2b 20 2b 20 43 41  CT - 23 + + + CA
a2d0: 53 54 28 20 28 20 2d 20 34 33 20 29 20 41 53 20  ST( ( - 43 ) AS 
a2e0: 53 49 47 4e 45 44 20 29 20 2b 20 2b 20 63 6f 6c  SIGNED ) + + col
a2f0: 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
a300: 2d 0d 0a 2d 31 35 0d 0a 31 0d 0a 31 31 0d 0a 0d  -..-15..1..11...
a310: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
a320: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
a330: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
a340: 6c 61 62 65 6c 2d 32 32 35 0d 0a 53 45 4c 45 43  label-225..SELEC
a350: 54 20 44 49 53 54 49 4e 43 54 20 2d 20 32 33 20  T DISTINCT - 23 
a360: 2b 20 2b 20 2b 20 43 41 53 54 20 28 20 28 20 2d  + + + CAST ( ( -
a370: 20 34 33 20 29 20 41 53 20 49 4e 54 45 47 45 52   43 ) AS INTEGER
a380: 20 29 20 2b 20 2b 20 63 6f 6c 31 20 46 52 4f 4d   ) + + col1 FROM
a390: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35   tab2..----..-15
a3a0: 0d 0a 31 0d 0a 31 31 0d 0a 0d 0a 71 75 65 72 79  ..1..11....query
a3b0: 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
a3c0: 45 43 54 20 2b 20 37 36 2c 20 2d 20 63 6f 6c 32  ECT + 76, - col2
a3d0: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
a3e0: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 37 36 0d 0a 2d 35  b1..----..76..-5
a3f0: 39 0d 0a 37 36 0d 0a 2d 36 38 0d 0a 37 36 0d 0a  9..76..-68..76..
a400: 2d 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -96....onlyif my
a410: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
a420: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
a430: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
a440: 32 32 37 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f  227..SELECT + CO
a450: 55 4e 54 28 20 2d 20 35 37 20 29 20 41 53 20 63  UNT( - 57 ) AS c
a460: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
a470: 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66  ---..3....skipif
a480: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
a490: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
a4a0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
a4b0: 32 37 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55  27..SELECT + COU
a4c0: 4e 54 20 28 20 2d 20 35 37 20 29 20 41 53 20 63  NT ( - 57 ) AS c
a4d0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
a4e0: 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66  ---..3....onlyif
a4f0: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
a500: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
a510: 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
a520: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 32 38 0d 0a  sort label-228..
a530: 53 45 4c 45 43 54 20 2b 20 43 41 53 54 28 20 4e  SELECT + CAST( N
a540: 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
a550: 2f 20 2b 20 2d 20 63 6f 6c 30 20 2d 20 2d 20 28  / + - col0 - - (
a560: 20 2b 20 63 6f 6c 32 20 29 20 2b 20 2d 20 2b 20   + col2 ) + - + 
a570: 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f  col1 AS col2 FRO
a580: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab0..----..NU
a590: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
a5a0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
a5b0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
a5c0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
a5d0: 20 6c 61 62 65 6c 2d 32 32 38 0d 0a 53 45 4c 45   label-228..SELE
a5e0: 43 54 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c  CT + CAST ( NULL
a5f0: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2f 20   AS INTEGER ) / 
a600: 2b 20 2d 20 63 6f 6c 30 20 2d 20 2d 20 28 20 2b  + - col0 - - ( +
a610: 20 63 6f 6c 32 20 29 20 2b 20 2d 20 2b 20 63 6f   col2 ) + - + co
a620: 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l1 AS col2 FROM 
a630: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab0..----..NULL
a640: 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
a650: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
a660: 0a 53 45 4c 45 43 54 20 2b 20 2b 20 36 35 20 2b  .SELECT + + 65 +
a670: 20 31 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53   11 FROM tab1 AS
a680: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 36 0d   cor0..----..76.
a690: 0a 37 36 0d 0a 37 36 0d 0a 0d 0a 71 75 65 72 79  .76..76....query
a6a0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
a6b0: 43 54 20 36 38 20 41 53 20 63 6f 6c 32 20 46 52  CT 68 AS col2 FR
a6c0: 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48 45  OM tab2 cor0 WHE
a6d0: 52 45 20 4e 55 4c 4c 20 3c 3e 20 2b 20 36 31 20  RE NULL <> + 61 
a6e0: 2d 20 31 38 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  - 18..----....on
a6f0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
a700: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
a710: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
a720: 20 6c 61 62 65 6c 2d 32 33 31 0d 0a 53 45 4c 45   label-231..SELE
a730: 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20 2a 20  CT ALL COUNT( * 
a740: 29 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41  ) + COUNT( * ) A
a750: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
a760: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 0d 0a   cor0..----..6..
a770: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
a780: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
a790: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
a7a0: 20 6c 61 62 65 6c 2d 32 33 31 0d 0a 53 45 4c 45   label-231..SELE
a7b0: 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20 28 20 2a  CT ALL COUNT ( *
a7c0: 20 29 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29   ) + COUNT ( * )
a7d0: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
a7e0: 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36  b1 cor0..----..6
a7f0: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
a800: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
a810: 2d 20 2d 20 39 37 20 2d 20 2b 20 2b 20 63 6f 6c  - - 97 - + + col
a820: 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  2 AS col0 FROM t
a830: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
a840: 2d 0d 0a 2d 32 0d 0a 35 30 0d 0a 38 37 0d 0a 0d  -..-2..50..87...
a850: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
a860: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
a870: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
a880: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
a890: 62 65 6c 2d 32 33 33 0d 0a 53 45 4c 45 43 54 20  bel-233..SELECT 
a8a0: 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  * FROM tab1 AS c
a8b0: 6f 72 30 20 57 48 45 52 45 20 43 41 53 54 28 20  or0 WHERE CAST( 
a8c0: 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
a8d0: 20 2a 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e   * col1 IS NOT N
a8e0: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  ULL..----....ski
a8f0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
a900: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
a910: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
a920: 62 65 6c 2d 32 33 33 0d 0a 53 45 4c 45 43 54 20  bel-233..SELECT 
a930: 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  * FROM tab1 AS c
a940: 6f 72 30 20 57 48 45 52 45 20 43 41 53 54 20 28  or0 WHERE CAST (
a950: 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
a960: 20 29 20 2a 20 63 6f 6c 31 20 49 53 20 4e 4f 54   ) * col1 IS NOT
a970: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
a980: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
a990: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
a9a0: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
a9b0: 20 57 48 45 52 45 20 4e 55 4c 4c 20 42 45 54 57   WHERE NULL BETW
a9c0: 45 45 4e 20 2b 20 63 6f 6c 32 20 41 4e 44 20 2d  EEN + col2 AND -
a9d0: 20 35 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65   52..----....que
a9e0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
a9f0: 4c 45 43 54 20 2d 20 38 34 20 2a 20 2b 20 2b 20  LECT - 84 * + + 
aa00: 37 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  7 AS col2 FROM t
aa10: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 38 38 0d  ab0..----..-588.
aa20: 0a 2d 35 38 38 0d 0a 2d 35 38 38 0d 0a 0d 0a 6f  .-588..-588....o
aa30: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
aa40: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
aa50: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
aa60: 72 74 20 6c 61 62 65 6c 2d 32 33 36 0d 0a 53 45  rt label-236..SE
aa70: 4c 45 43 54 20 2d 20 4d 41 58 28 20 44 49 53 54  LECT - MAX( DIST
aa80: 49 4e 43 54 20 63 6f 6c 31 20 29 20 41 53 20 63  INCT col1 ) AS c
aa90: 6f 6c 32 2c 20 2b 20 32 37 20 2b 20 2d 20 53 55  ol2, + 27 + - SU
aaa0: 4d 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f  M( DISTINCT + co
aab0: 6c 30 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  l0 ) AS col2 FRO
aac0: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38  M tab0..----..-8
aad0: 31 0d 0a 2d 31 37 32 0d 0a 0d 0a 73 6b 69 70 69  1..-172....skipi
aae0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
aaf0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
ab00: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
ab10: 2d 32 33 36 0d 0a 53 45 4c 45 43 54 20 2d 20 4d  -236..SELECT - M
ab20: 41 58 20 28 20 44 49 53 54 49 4e 43 54 20 63 6f  AX ( DISTINCT co
ab30: 6c 31 20 29 20 41 53 20 63 6f 6c 32 2c 20 2b 20  l1 ) AS col2, + 
ab40: 32 37 20 2b 20 2d 20 53 55 4d 20 28 20 44 49 53  27 + - SUM ( DIS
ab50: 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20 29 20 41  TINCT + col0 ) A
ab60: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
ab70: 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 31 0d 0a 2d 31 37  ..----..-81..-17
ab80: 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  2....onlyif mysq
ab90: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
aba0: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
abb0: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
abc0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
abd0: 74 20 6c 61 62 65 6c 2d 32 33 37 0d 0a 53 45 4c  t label-237..SEL
abe0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 28  ECT DISTINCT + (
abf0: 20 2d 20 4d 49 4e 28 20 44 49 53 54 49 4e 43 54   - MIN( DISTINCT
ac00: 20 2b 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20   + - CAST( NULL 
ac10: 41 53 20 53 49 47 4e 45 44 20 29 20 29 20 29 20  AS SIGNED ) ) ) 
ac20: 2b 20 2b 20 2d 20 37 35 20 2a 20 2d 20 2d 20 43  + + - 75 * - - C
ac30: 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74  OUNT( * ) FROM t
ac40: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab0..----..NULL.
ac50: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
ac60: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
ac70: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
ac80: 74 20 6c 61 62 65 6c 2d 32 33 37 0d 0a 53 45 4c  t label-237..SEL
ac90: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 28  ECT DISTINCT + (
aca0: 20 2d 20 4d 49 4e 20 28 20 44 49 53 54 49 4e 43   - MIN ( DISTINC
acb0: 54 20 2b 20 2d 20 43 41 53 54 20 28 20 4e 55 4c  T + - CAST ( NUL
acc0: 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29  L AS INTEGER ) )
acd0: 20 29 20 2b 20 2b 20 2d 20 37 35 20 2a 20 2d 20   ) + + - 75 * - 
ace0: 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52  - COUNT ( * ) FR
acf0: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab0..----..N
ad00: 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ULL....query I r
ad10: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
ad20: 4c 4c 20 63 6f 6c 32 20 2b 20 63 6f 6c 32 20 2a  LL col2 + col2 *
ad30: 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 31 20 41   col1 * - col1 A
ad40: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
ad50: 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 37 31 32 30 0d  ..----..-237120.
ad60: 0a 2d 32 36 30 33 30 34 0d 0a 2d 35 39 38 30 30  .-260304..-59800
ad70: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
ad80: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
ad90: 36 38 20 2d 20 2b 20 63 6f 6c 31 20 2a 20 63 6f  68 - + col1 * co
ada0: 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l2 AS col2 FROM 
adb0: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 37  tab1..----..-127
adc0: 36 0d 0a 2d 32 32 37 0d 0a 2d 33 31 32 38 0d 0a  6..-227..-3128..
add0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
ade0: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
adf0: 2d 20 32 38 20 46 52 4f 4d 20 74 61 62 32 20 57  - 28 FROM tab2 W
ae00: 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 55 4c  HERE NULL IS NUL
ae10: 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 38 0d 0a 2d 32  L..----..-28..-2
ae20: 38 0d 0a 2d 32 38 0d 0a 0d 0a 71 75 65 72 79 20  8..-28....query 
ae30: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
ae40: 43 54 20 41 4c 4c 20 28 20 2d 20 63 6f 6c 31 20  CT ALL ( - col1 
ae50: 29 20 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 31 20  ) AS col2, col1 
ae60: 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  + col0 FROM tab1
ae70: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 0d 0a 36 35 0d  ..----..-14..65.
ae80: 0a 2d 34 37 0d 0a 31 33 38 0d 0a 2d 35 0d 0a 39  .-47..138..-5..9
ae90: 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
aea0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
aeb0: 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 2a 20 2b  TINCT - col2 * +
aec0: 20 28 20 2b 20 2b 20 63 6f 6c 31 20 29 20 41 53   ( + + col1 ) AS
aed0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
aee0: 0a 2d 2d 2d 2d 0d 0a 2d 32 31 30 0d 0a 2d 33 38  .----..-210..-38
aef0: 30 37 0d 0a 2d 39 39 0d 0a 0d 0a 6f 6e 6c 79 69  07..-99....onlyi
af00: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
af10: 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
af20: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
af30: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 34 33 0d  wsort label-243.
af40: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20  .SELECT ALL - + 
af50: 28 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  ( + CAST( NULL A
af60: 53 20 53 49 47 4e 45 44 20 29 20 29 20 63 6f 6c  S SIGNED ) ) col
af70: 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
af80: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
af90: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .NULL..NULL....s
afa0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
afb0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
afc0: 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
afd0: 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
afe0: 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
aff0: 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
b000: 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
b010: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 34 33  owsort label-243
b020: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b  ..SELECT ALL - +
b030: 20 28 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c   ( + CAST ( NULL
b040: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20   AS INTEGER ) ) 
b050: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
b060: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
b070: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
b080: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
b090: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
b0a0: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
b0b0: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 34 34 0d 0a  sort label-244..
b0c0: 53 45 4c 45 43 54 20 4d 49 4e 28 20 44 49 53 54  SELECT MIN( DIST
b0d0: 49 4e 43 54 20 31 37 20 29 20 41 53 20 63 6f 6c  INCT 17 ) AS col
b0e0: 31 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  1 FROM tab1 cor0
b0f0: 0d 0a 2d 2d 2d 2d 0d 0a 31 37 0d 0a 0d 0a 73 6b  ..----..17....sk
b100: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
b110: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
b120: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
b130: 65 6c 2d 32 34 34 0d 0a 53 45 4c 45 43 54 20 4d  el-244..SELECT M
b140: 49 4e 20 28 20 44 49 53 54 49 4e 43 54 20 31 37  IN ( DISTINCT 17
b150: 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
b160: 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
b170: 0a 31 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .17....query I r
b180: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
b190: 4c 4c 20 2d 20 2b 20 34 37 20 2a 20 2d 20 63 6f  LL - + 47 * - co
b1a0: 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l0 AS col2 FROM 
b1b0: 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
b1c0: 2d 2d 0d 0a 34 30 38 39 0d 0a 34 35 35 39 0d 0a  --..4089..4559..
b1d0: 37 30 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  705....query I r
b1e0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
b1f0: 4c 4c 20 2b 20 2d 20 63 6f 6c 32 20 2b 20 32 35  LL + - col2 + 25
b200: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
b210: 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  r0 WHERE NOT col
b220: 32 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41  2 BETWEEN NULL A
b230: 4e 44 20 2d 20 63 6f 6c 32 20 2b 20 63 6f 6c 30  ND - col2 + col0
b240: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 2d 33 33  ..----..-15..-33
b250: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
b260: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
b270: 49 4e 43 54 20 2d 20 30 20 41 53 20 63 6f 6c 32  INCT - 0 AS col2
b280: 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d   FROM tab1 cor0.
b290: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72  .----..0....quer
b2a0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
b2b0: 45 43 54 20 41 4c 4c 20 35 36 20 46 52 4f 4d 20  ECT ALL 56 FROM 
b2c0: 74 61 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f  tab1 AS cor0 CRO
b2d0: 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20  SS JOIN tab0 AS 
b2e0: 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  cor1..----..9 va
b2f0: 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
b300: 39 63 34 35 32 33 33 31 32 31 37 34 37 33 30 62  9c4523312174730b
b310: 62 63 35 32 35 62 39 39 37 37 61 61 39 39 66 61  bc525b9977aa99fa
b320: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
b330: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
b340: 49 4e 43 54 20 28 20 28 20 2b 20 63 6f 6c 32 20  INCT ( ( + col2 
b350: 29 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ) ) FROM tab0..-
b360: 2d 2d 2d 0d 0a 31 30 0d 0a 34 37 0d 0a 39 39 0d  ---..10..47..99.
b370: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
b380: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
b390: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
b3a0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 35 30 0d  wsort label-250.
b3b0: 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28  .SELECT - COUNT(
b3c0: 20 2b 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c   + col1 ) AS col
b3d0: 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
b3e0: 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  or0 WHERE NOT - 
b3f0: 32 20 42 45 54 57 45 45 4e 20 63 6f 6c 30 20 41  2 BETWEEN col0 A
b400: 4e 44 20 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d  ND - col2..----.
b410: 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .-3....skipif my
b420: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
b430: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
b440: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 35 30 0d  wsort label-250.
b450: 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 20  .SELECT - COUNT 
b460: 28 20 2b 20 63 6f 6c 31 20 29 20 41 53 20 63 6f  ( + col1 ) AS co
b470: 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
b480: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d  cor0 WHERE NOT -
b490: 20 32 20 42 45 54 57 45 45 4e 20 63 6f 6c 30 20   2 BETWEEN col0 
b4a0: 41 4e 44 20 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d  AND - col2..----
b4b0: 0d 0a 2d 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..-3....onlyif m
b4c0: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
b4d0: 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79  ax: aggregate sy
b4e0: 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79  ntax: DECIMAL ty
b4f0: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
b500: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 35 31 0d  wsort label-251.
b510: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
b520: 20 4d 49 4e 28 20 2b 20 2b 20 43 41 53 54 28 20   MIN( + + CAST( 
b530: 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20  NULL AS DECIMAL 
b540: 29 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ) ) FROM tab2 AS
b550: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
b560: 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
b570: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
b580: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
b590: 6f 72 74 20 6c 61 62 65 6c 2d 32 35 31 0d 0a 53  ort label-251..S
b5a0: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 4d  ELECT DISTINCT M
b5b0: 49 4e 20 28 20 2b 20 2b 20 43 41 53 54 20 28 20  IN ( + + CAST ( 
b5c0: 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 29  NULL AS REAL ) )
b5d0: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
b5e0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
b5f0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
b600: 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
b610: 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
b620: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
b630: 65 6c 2d 32 35 32 0d 0a 53 45 4c 45 43 54 20 44  el-252..SELECT D
b640: 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 44 49 56  ISTINCT col1 DIV
b650: 20 2d 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 2b 20   - + col0 * - + 
b660: 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 32 20 41 53  col2 + + col2 AS
b670: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
b680: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35  AS cor0..----..5
b690: 39 0d 0a 36 38 0d 0a 39 36 0d 0a 0d 0a 73 6b 69  9..68..96....ski
b6a0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
b6b0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
b6c0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
b6d0: 6c 2d 32 35 32 0d 0a 53 45 4c 45 43 54 20 44 49  l-252..SELECT DI
b6e0: 53 54 49 4e 43 54 20 63 6f 6c 31 20 2f 20 2d 20  STINCT col1 / - 
b6f0: 2b 20 63 6f 6c 30 20 2a 20 2d 20 2b 20 63 6f 6c  + col0 * - + col
b700: 32 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  2 + + col2 AS co
b710: 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
b720: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a  cor0..----..59..
b730: 36 38 0d 0a 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66  68..96....onlyif
b740: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
b750: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
b760: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
b770: 65 6c 2d 32 35 33 0d 0a 53 45 4c 45 43 54 20 41  el-253..SELECT A
b780: 4c 4c 20 32 37 20 2b 20 2b 20 43 4f 55 4e 54 28  LL 27 + + COUNT(
b790: 20 2a 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74   * ) col2 FROM t
b7a0: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
b7b0: 2d 0d 0a 33 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..30....skipif 
b7c0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
b7d0: 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70  atible..skipif p
b7e0: 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
b7f0: 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
b800: 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
b810: 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
b820: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
b830: 20 6c 61 62 65 6c 2d 32 35 33 0d 0a 53 45 4c 45   label-253..SELE
b840: 43 54 20 41 4c 4c 20 32 37 20 2b 20 2b 20 43 4f  CT ALL 27 + + CO
b850: 55 4e 54 20 28 20 2a 20 29 20 63 6f 6c 32 20 46  UNT ( * ) col2 F
b860: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
b870: 0d 0a 2d 2d 2d 2d 0d 0a 33 30 0d 0a 0d 0a 6f 6e  ..----..30....on
b880: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
b890: 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
b8a0: 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
b8b0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
b8c0: 35 34 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  54..SELECT - col
b8d0: 32 20 44 49 56 20 2b 20 63 6f 6c 30 20 41 53 20  2 DIV + col0 AS 
b8e0: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
b8f0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  S cor0..----..0.
b900: 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  .0..0....skipif 
b910: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
b920: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
b930: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 35  rowsort label-25
b940: 34 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32  4..SELECT - col2
b950: 20 2f 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c   / + col0 AS col
b960: 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
b970: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d  or0..----..0..0.
b980: 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .0....onlyif mys
b990: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
b9a0: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
b9b0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
b9c0: 35 35 0d 0a 53 45 4c 45 43 54 20 2b 20 37 33 20  55..SELECT + 73 
b9d0: 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2d  + - COUNT( * ) -
b9e0: 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52   - COUNT( * ) FR
b9f0: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
ba00: 0a 2d 2d 2d 2d 0d 0a 37 33 0d 0a 0d 0a 73 6b 69  .----..73....ski
ba10: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
ba20: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
ba30: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
ba40: 6c 2d 32 35 35 0d 0a 53 45 4c 45 43 54 20 2b 20  l-255..SELECT + 
ba50: 37 33 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a  73 + - COUNT ( *
ba60: 20 29 20 2d 20 2d 20 43 4f 55 4e 54 20 28 20 2a   ) - - COUNT ( *
ba70: 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
ba80: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 33 0d 0a  cor0..----..73..
ba90: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
baa0: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f  t..SELECT ALL co
bab0: 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l1 AS col0 FROM 
bac0: 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
bad0: 52 45 20 28 20 63 6f 6c 32 20 29 20 4e 4f 54 20  RE ( col2 ) NOT 
bae0: 49 4e 20 28 20 2b 20 36 30 2c 20 2d 20 63 6f 6c  IN ( + 60, - col
baf0: 31 20 2a 20 2d 20 63 6f 6c 30 20 29 0d 0a 2d 2d  1 * - col0 )..--
bb00: 2d 2d 0d 0a 31 34 0d 0a 34 37 0d 0a 35 0d 0a 0d  --..14..47..5...
bb10: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
bb20: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
bb30: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
bb40: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
bb50: 6c 2d 32 35 37 0d 0a 53 45 4c 45 43 54 20 41 4c  l-257..SELECT AL
bb60: 4c 20 39 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  L 9 FROM tab2 co
bb70: 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
bb80: 62 32 20 41 53 20 63 6f 72 31 20 57 48 45 52 45  b2 AS cor1 WHERE
bb90: 20 43 41 53 54 28 20 2b 20 2b 20 37 32 20 41 53   CAST( + + 72 AS
bba0: 20 53 49 47 4e 45 44 20 29 20 49 53 20 4e 4f 54   SIGNED ) IS NOT
bbb0: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   NULL..----..9 v
bbc0: 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
bbd0: 20 30 33 62 39 33 62 35 33 31 30 37 65 33 36 63   03b93b53107e36c
bbe0: 66 37 64 35 32 34 65 34 38 63 35 30 39 62 31 37  f7d524e48c509b17
bbf0: 62 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  b....skipif mysq
bc00: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
bc10: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
bc20: 6f 72 74 20 6c 61 62 65 6c 2d 32 35 37 0d 0a 53  ort label-257..S
bc30: 45 4c 45 43 54 20 41 4c 4c 20 39 20 46 52 4f 4d  ELECT ALL 9 FROM
bc40: 20 74 61 62 32 20 63 6f 72 30 20 43 52 4f 53 53   tab2 cor0 CROSS
bc50: 20 4a 4f 49 4e 20 74 61 62 32 20 41 53 20 63 6f   JOIN tab2 AS co
bc60: 72 31 20 57 48 45 52 45 20 43 41 53 54 20 28 20  r1 WHERE CAST ( 
bc70: 2b 20 2b 20 37 32 20 41 53 20 49 4e 54 45 47 45  + + 72 AS INTEGE
bc80: 52 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  R ) IS NOT NULL.
bc90: 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
bca0: 68 61 73 68 69 6e 67 20 74 6f 20 30 33 62 39 33  hashing to 03b93
bcb0: 62 35 33 31 30 37 65 33 36 63 66 37 64 35 32 34  b53107e36cf7d524
bcc0: 65 34 38 63 35 30 39 62 31 37 62 0d 0a 0d 0a 6f  e48c509b17b....o
bcd0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
bce0: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
bcf0: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
bd00: 72 74 20 6c 61 62 65 6c 2d 32 35 38 0d 0a 53 45  rt label-258..SE
bd10: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
bd20: 43 4f 55 4e 54 28 20 2b 20 2b 20 63 6f 6c 31 20  COUNT( + + col1 
bd30: 29 20 2b 20 2d 20 39 33 20 2a 20 2b 20 28 20 34  ) + - 93 * + ( 4
bd40: 32 20 29 20 63 6f 6c 31 2c 20 2d 20 31 35 20 2b  2 ) col1, - 15 +
bd50: 20 2b 20 33 33 20 41 53 20 63 6f 6c 32 20 46 52   + 33 AS col2 FR
bd60: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
bd70: 33 39 30 33 0d 0a 31 38 0d 0a 0d 0a 73 6b 69 70  3903..18....skip
bd80: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
bd90: 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
bda0: 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
bdb0: 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
bdc0: 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
bdd0: 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
bde0: 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ns..query II row
bdf0: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 35 38 0d 0a  sort label-258..
be00: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
be10: 2b 20 43 4f 55 4e 54 20 28 20 2b 20 2b 20 63 6f  + COUNT ( + + co
be20: 6c 31 20 29 20 2b 20 2d 20 39 33 20 2a 20 2b 20  l1 ) + - 93 * + 
be30: 28 20 34 32 20 29 20 63 6f 6c 31 2c 20 2d 20 31  ( 42 ) col1, - 1
be40: 35 20 2b 20 2b 20 33 33 20 41 53 20 63 6f 6c 32  5 + + 33 AS col2
be50: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
be60: 0d 0a 2d 33 39 30 33 0d 0a 31 38 0d 0a 0d 0a 71  ..-3903..18....q
be70: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
be80: 53 45 4c 45 43 54 20 63 6f 6c 31 20 2a 20 2d 20  SELECT col1 * - 
be90: 63 6f 6c 31 20 2a 20 2d 20 33 38 20 41 53 20 63  col1 * - 38 AS c
bea0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
beb0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 37   cor0..----..167
bec0: 35 38 0d 0a 32 34 39 33 31 38 0d 0a 33 38 0d 0a  58..249318..38..
bed0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
bee0: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
bef0: 43 54 20 34 20 2a 20 2d 20 38 38 20 2b 20 2b 20  CT 4 * - 88 + + 
bf00: 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f  col0 AS col1 FRO
bf10: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
bf20: 2d 2d 2d 2d 0d 0a 2d 32 36 31 0d 0a 2d 32 36 37  ----..-261..-267
bf30: 0d 0a 2d 33 30 31 0d 0a 0d 0a 71 75 65 72 79 20  ..-301....query 
bf40: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
bf50: 54 20 63 6f 6c 32 20 2a 20 2b 20 37 35 20 2a 20  T col2 * + 75 * 
bf60: 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46  - col0 AS col0 F
bf70: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
bf80: 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 36 37 32 30 30 0d  ..----..-367200.
bf90: 0a 2d 33 37 36 31 32 35 0d 0a 2d 34 36 34 31 30  .-376125..-46410
bfa0: 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
bfb0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
bfc0: 20 2d 20 35 33 20 2b 20 2d 20 63 6f 6c 32 20 41   - 53 + - col2 A
bfd0: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
bfe0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
bff0: 2d 31 30 30 0d 0a 2d 31 35 32 0d 0a 2d 36 33 0d  -100..-152..-63.
c000: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
c010: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44  # CAST syntax: D
c020: 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71  ECIMAL type: ..q
c030: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
c040: 20 6c 61 62 65 6c 2d 32 36 33 0d 0a 53 45 4c 45   label-263..SELE
c050: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 63  CT * FROM tab2 c
c060: 6f 72 30 20 57 48 45 52 45 20 2d 20 34 36 20 2f  or0 WHERE - 46 /
c070: 20 2d 20 2d 20 33 36 20 4e 4f 54 20 49 4e 20 28   - - 36 NOT IN (
c080: 20 2d 20 2d 20 63 6f 6c 30 2c 20 32 32 2c 20 63   - - col0, 22, c
c090: 6f 6c 30 2c 20 2d 20 2d 20 63 6f 6c 32 2c 20 2d  ol0, - - col2, -
c0a0: 20 63 6f 6c 30 2c 20 2b 20 2b 20 63 6f 6c 31 20   col0, + + col1 
c0b0: 2a 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  * - CAST( NULL A
c0c0: 53 20 44 45 43 49 4d 41 4c 20 29 20 2b 20 2d 20  S DECIMAL ) + - 
c0d0: 2b 20 32 33 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  + 23 )..----....
c0e0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
c0f0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
c100: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
c110: 20 6c 61 62 65 6c 2d 32 36 33 0d 0a 53 45 4c 45   label-263..SELE
c120: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 63  CT * FROM tab2 c
c130: 6f 72 30 20 57 48 45 52 45 20 2d 20 34 36 20 2f  or0 WHERE - 46 /
c140: 20 2d 20 2d 20 33 36 20 4e 4f 54 20 49 4e 20 28   - - 36 NOT IN (
c150: 20 2d 20 2d 20 63 6f 6c 30 2c 20 32 32 2c 20 63   - - col0, 22, c
c160: 6f 6c 30 2c 20 2d 20 2d 20 63 6f 6c 32 2c 20 2d  ol0, - - col2, -
c170: 20 63 6f 6c 30 2c 20 2b 20 2b 20 63 6f 6c 31 20   col0, + + col1 
c180: 2a 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  * - CAST ( NULL 
c190: 41 53 20 52 45 41 4c 20 29 20 2b 20 2d 20 2b 20  AS REAL ) + - + 
c1a0: 32 33 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  23 )..----....on
c1b0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
c1c0: 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
c1d0: 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
c1e0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
c1f0: 36 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  64..SELECT ALL -
c200: 20 2d 20 39 20 2b 20 38 39 20 2b 20 2b 20 63 6f   - 9 + 89 + + co
c210: 6c 30 20 44 49 56 20 2b 20 63 6f 6c 32 20 46 52  l0 DIV + col2 FR
c220: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
c230: 0a 2d 2d 2d 2d 0d 0a 31 30 36 0d 0a 39 38 0d 0a  .----..106..98..
c240: 39 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  98....skipif mys
c250: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
c260: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
c270: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 36 34 0d 0a  sort label-264..
c280: 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 39  SELECT ALL - - 9
c290: 20 2b 20 38 39 20 2b 20 2b 20 63 6f 6c 30 20 2f   + 89 + + col0 /
c2a0: 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   + col2 FROM tab
c2b0: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
c2c0: 0a 31 30 36 0d 0a 39 38 0d 0a 39 38 0d 0a 0d 0a  .106..98..98....
c2d0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
c2e0: 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 2d  .SELECT + col0 -
c2f0: 20 2b 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c   + - col0 AS col
c300: 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
c310: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 32 0d 0a  or0..----..102..
c320: 31 37 30 0d 0a 31 38 32 0d 0a 0d 0a 71 75 65 72  170..182....quer
c330: 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
c340: 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2d 20 2d 20  LECT - col1 - - 
c350: 37 33 20 2d 20 2d 20 63 6f 6c 30 20 2b 20 2d 20  73 - - col0 + - 
c360: 63 6f 6c 32 20 2b 20 2b 20 32 38 2c 20 63 6f 6c  col2 + + 28, col
c370: 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  1 AS col2 FROM t
c380: 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab2 cor0..----..
c390: 34 38 0d 0a 37 37 0d 0a 35 31 0d 0a 36 37 0d 0a  48..77..51..67..
c3a0: 37 33 0d 0a 35 31 0d 0a 0d 0a 71 75 65 72 79 20  73..51....query 
c3b0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
c3c0: 54 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c  T - col0 * - col
c3d0: 30 20 2d 20 36 38 20 46 52 4f 4d 20 74 61 62 30  0 - 68 FROM tab0
c3e0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
c3f0: 31 35 37 0d 0a 37 35 30 31 0d 0a 39 33 34 31 0d  157..7501..9341.
c400: 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
c410: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
c420: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
c430: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
c440: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
c450: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
c460: 45 43 54 20 2d 20 2d 20 33 34 20 2d 20 2d 20 63  ECT - - 34 - - c
c470: 6f 6c 31 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  ol1 col1 FROM ta
c480: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
c490: 0d 0a 31 30 31 0d 0a 31 31 31 0d 0a 38 35 0d 0a  ..101..111..85..
c4a0: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
c4b0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
c4c0: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
c4d0: 57 48 45 52 45 20 28 20 2b 20 39 30 20 2a 20 2b  WHERE ( + 90 * +
c4e0: 20 39 37 20 2a 20 2b 20 2b 20 63 6f 6c 30 20 2a   97 * + + col0 *
c4f0: 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 30   - col1 + - col0
c500: 20 2b 20 2d 20 63 6f 6c 31 20 29 20 49 53 20 4e   + - col1 ) IS N
c510: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
c520: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
c530: 4c 45 43 54 20 41 4c 4c 20 2d 20 28 20 2b 20 2d  LECT ALL - ( + -
c540: 20 63 6f 6c 30 20 29 20 2b 20 32 33 20 46 52 4f   col0 ) + 23 FRO
c550: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
c560: 2d 2d 2d 2d 0d 0a 31 30 38 0d 0a 31 31 34 0d 0a  ----..108..114..
c570: 37 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  74....query I ro
c580: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
c590: 2b 20 28 20 2b 20 37 32 20 29 20 46 52 4f 4d 20  + ( + 72 ) FROM 
c5a0: 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
c5b0: 2d 2d 0d 0a 2d 37 32 0d 0a 2d 37 32 0d 0a 2d 37  --..-72..-72..-7
c5c0: 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  2....query I row
c5d0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63  sort..SELECT - c
c5e0: 6f 6c 30 20 2a 20 63 6f 6c 31 20 2a 20 36 34 20  ol0 * col1 * 64 
c5f0: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
c600: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 36 39 32 38  0..----..-116928
c610: 0d 0a 2d 36 32 30 38 0d 0a 2d 37 37 37 36 30 0d  ..-6208..-77760.
c620: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
c630: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
c640: 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   * FROM tab2 WHE
c650: 52 45 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 63 6f  RE + col1 * - co
c660: 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  l1 IS NOT NULL..
c670: 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
c680: 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38  ashing to 75c998
c690: 61 61 35 33 61 63 38 33 32 31 38 63 62 66 32 66  aa53ac83218cbf2f
c6a0: 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 71 75  eb962d0a49....qu
c6b0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
c6c0: 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 2a  ELECT ALL col0 *
c6d0: 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c   + + col0 AS col
c6e0: 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  2 FROM tab2..---
c6f0: 2d 0d 0a 32 31 31 36 0d 0a 34 30 39 36 0d 0a 35  -..2116..4096..5
c700: 36 32 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  625....onlyif my
c710: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
c720: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
c730: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
c740: 2d 32 37 35 0d 0a 53 45 4c 45 43 54 20 33 20 41  -275..SELECT 3 A
c750: 53 20 63 6f 6c 32 2c 20 39 34 20 2a 20 4d 49 4e  S col2, 94 * MIN
c760: 28 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  ( DISTINCT - col
c770: 32 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  2 ) FROM tab0..-
c780: 2d 2d 2d 0d 0a 33 0d 0a 2d 39 33 30 36 0d 0a 0d  ---..3..-9306...
c790: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
c7a0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
c7b0: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
c7c0: 20 6c 61 62 65 6c 2d 32 37 35 0d 0a 53 45 4c 45   label-275..SELE
c7d0: 43 54 20 33 20 41 53 20 63 6f 6c 32 2c 20 39 34  CT 3 AS col2, 94
c7e0: 20 2a 20 4d 49 4e 20 28 20 44 49 53 54 49 4e 43   * MIN ( DISTINC
c7f0: 54 20 2d 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20  T - col2 ) FROM 
c800: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 2d  tab0..----..3..-
c810: 39 33 30 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  9306....onlyif m
c820: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
c830: 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
c840: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
c850: 72 74 20 6c 61 62 65 6c 2d 32 37 36 0d 0a 53 45  rt label-276..SE
c860: 4c 45 43 54 20 39 30 20 2a 20 43 41 53 54 28 20  LECT 90 * CAST( 
c870: 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
c880: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
c890: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b2..----..NULL..
c8a0: 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  NULL..NULL....sk
c8b0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
c8c0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
c8d0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
c8e0: 65 6c 2d 32 37 36 0d 0a 53 45 4c 45 43 54 20 39  el-276..SELECT 9
c8f0: 30 20 2a 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  0 * CAST ( NULL 
c900: 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20  AS INTEGER ) AS 
c910: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
c920: 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
c930: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20  ..NULL....query 
c940: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
c950: 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  T DISTINCT - col
c960: 30 20 2a 20 2d 20 39 32 20 46 52 4f 4d 20 74 61  0 * - 92 FROM ta
c970: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
c980: 0d 0a 31 33 38 30 0d 0a 38 30 30 34 0d 0a 38 39  ..1380..8004..89
c990: 32 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  24....query I ro
c9a0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
c9b0: 4c 20 36 32 20 2a 20 2b 20 2d 20 63 6f 6c 30 20  L 62 * + - col0 
c9c0: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
c9d0: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
c9e0: 0a 2d 32 38 35 32 0d 0a 2d 33 39 36 38 0d 0a 2d  .-2852..-3968..-
c9f0: 34 36 35 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49  4650....query II
ca00: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
ca10: 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 2c 20 2b   col1 AS col2, +
ca20: 20 35 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c   5 + col2 AS col
ca30: 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
ca40: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 31  or0..----..14..1
ca50: 30 31 0d 0a 34 37 0d 0a 37 33 0d 0a 35 0d 0a 36  01..47..73..5..6
ca60: 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  4....query II ro
ca70: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
ca80: 53 54 49 4e 43 54 20 2d 20 37 34 2c 20 63 6f 6c  STINCT - 74, col
ca90: 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
caa0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 34 0d 0a  or0..----..-74..
cab0: 31 30 0d 0a 2d 37 34 0d 0a 34 37 0d 0a 2d 37 34  10..-74..47..-74
cac0: 0d 0a 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..99....query I 
cad0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
cae0: 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 63 6f 6c  DISTINCT + + col
caf0: 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  2 AS col2 FROM t
cb00: 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab1 WHERE NOT - 
cb10: 63 6f 6c 30 20 2f 20 2b 20 39 37 20 3c 3e 20 4e  col0 / + 97 <> N
cb20: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
cb30: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
cb40: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
cb50: 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  * FROM tab0 AS c
cb60: 6f 72 30 20 57 48 45 52 45 20 2d 20 31 39 20 2a  or0 WHERE - 19 *
cb70: 20 2d 20 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e   - col0 IS NOT N
cb80: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  ULL..----..9 val
cb90: 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
cba0: 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61  4b42765dff94eaaa
cbb0: 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d  46040e537fb43b7.
cbc0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
cbd0: 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
cbe0: 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
cbf0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
cc00: 62 65 6c 2d 32 38 33 0d 0a 53 45 4c 45 43 54 20  bel-283..SELECT 
cc10: 44 49 53 54 49 4e 43 54 20 2d 20 39 39 20 44 49  DISTINCT - 99 DI
cc20: 56 20 2b 20 63 6f 6c 32 20 2d 20 63 6f 6c 31 20  V + col2 - col1 
cc30: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
cc40: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
cc50: 0a 2d 31 35 0d 0a 2d 34 38 0d 0a 2d 36 0d 0a 0d  .-15..-48..-6...
cc60: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
cc70: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
cc80: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
cc90: 6c 61 62 65 6c 2d 32 38 33 0d 0a 53 45 4c 45 43  label-283..SELEC
cca0: 54 20 44 49 53 54 49 4e 43 54 20 2d 20 39 39 20  T DISTINCT - 99 
ccb0: 2f 20 2b 20 63 6f 6c 32 20 2d 20 63 6f 6c 31 20  / + col2 - col1 
ccc0: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
ccd0: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
cce0: 0a 2d 31 35 0d 0a 2d 34 38 0d 0a 2d 36 0d 0a 0d  .-15..-48..-6...
ccf0: 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
cd00: 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
cd10: 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
cd20: 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
cd30: 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
cd40: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
cd50: 54 20 44 49 53 54 49 4e 43 54 20 2b 20 39 34 20  T DISTINCT + 94 
cd60: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
cd70: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 34  S cor0..----..94
cd80: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
cd90: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
cda0: 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
cdb0: 62 31 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55  b1 cor0 WHERE NU
cdc0: 4c 4c 20 3e 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d  LL > ( NULL )..-
cdd0: 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
cde0: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
cdf0: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
ce00: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
ce10: 32 38 36 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20  286..SELECT - - 
ce20: 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f  COUNT( * ) AS co
ce30: 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
ce40: 63 6f 72 30 20 57 48 45 52 45 20 2b 20 38 36 20  cor0 WHERE + 86 
ce50: 2b 20 2d 20 2d 20 35 39 20 3c 3d 20 28 20 2b 20  + - - 59 <= ( + 
ce60: 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  col2 )..----..0.
ce70: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
ce80: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
ce90: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
cea0: 74 20 6c 61 62 65 6c 2d 32 38 36 0d 0a 53 45 4c  t label-286..SEL
ceb0: 45 43 54 20 2d 20 2d 20 43 4f 55 4e 54 20 28 20  ECT - - COUNT ( 
cec0: 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  * ) AS col1 FROM
ced0: 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
cee0: 45 52 45 20 2b 20 38 36 20 2b 20 2d 20 2d 20 35  ERE + 86 + - - 5
cef0: 39 20 3c 3d 20 28 20 2b 20 63 6f 6c 32 20 29 0d  9 <= ( + col2 ).
cf00: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72  .----..0....quer
cf10: 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
cf20: 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 63 6f 6c  LECT ALL - - col
cf30: 31 20 2a 20 2b 20 31 33 20 41 53 20 63 6f 6c 30  1 * + 13 AS col0
cf40: 2c 20 36 35 20 41 53 20 63 6f 6c 30 20 46 52 4f  , 65 AS col0 FRO
cf50: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
cf60: 2d 2d 2d 2d 0d 0a 31 30 35 33 0d 0a 36 35 0d 0a  ----..1053..65..
cf70: 31 33 0d 0a 36 35 0d 0a 32 37 33 0d 0a 36 35 0d  13..65..273..65.
cf80: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
cf90: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
cfa0: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72  ax: ..query II r
cfb0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38 38  owsort label-288
cfc0: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43  ..SELECT ALL + C
cfd0: 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c  OUNT( * ) AS col
cfe0: 32 2c 20 2d 20 43 4f 55 4e 54 28 20 44 49 53 54  2, - COUNT( DIST
cff0: 49 4e 43 54 20 2d 20 63 6f 6c 30 20 29 20 46 52  INCT - col0 ) FR
d000: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33  OM tab0..----..3
d010: 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..-3....skipif m
d020: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
d030: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
d040: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38  rowsort label-28
d050: 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  8..SELECT ALL + 
d060: 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63  COUNT ( * ) AS c
d070: 6f 6c 32 2c 20 2d 20 43 4f 55 4e 54 20 28 20 44  ol2, - COUNT ( D
d080: 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20 29  ISTINCT - col0 )
d090: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
d0a0: 0d 0a 33 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69  ..3..-3....skipi
d0b0: 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
d0c0: 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
d0d0: 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
d0e0: 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
d0f0: 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
d100: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
d110: 49 4e 43 54 20 2d 20 31 35 20 63 6f 6c 30 20 46  INCT - 15 col0 F
d120: 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
d130: 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ULL IS NULL..---
d140: 2d 0d 0a 2d 31 35 0d 0a 0d 0a 6f 6e 6c 79 69 66  -..-15....onlyif
d150: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
d160: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
d170: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
d180: 65 6c 2d 32 39 30 0d 0a 53 45 4c 45 43 54 20 44  el-290..SELECT D
d190: 49 53 54 49 4e 43 54 20 2d 20 53 55 4d 28 20 2d  ISTINCT - SUM( -
d1a0: 20 2b 20 34 20 29 20 46 52 4f 4d 20 74 61 62 32   + 4 ) FROM tab2
d1b0: 0d 0a 2d 2d 2d 2d 0d 0a 31 32 0d 0a 0d 0a 73 6b  ..----..12....sk
d1c0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
d1d0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
d1e0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
d1f0: 65 6c 2d 32 39 30 0d 0a 53 45 4c 45 43 54 20 44  el-290..SELECT D
d200: 49 53 54 49 4e 43 54 20 2d 20 53 55 4d 20 28 20  ISTINCT - SUM ( 
d210: 2d 20 2b 20 34 20 29 20 46 52 4f 4d 20 74 61 62  - + 4 ) FROM tab
d220: 32 0d 0a 2d 2d 2d 2d 0d 0a 31 32 0d 0a 0d 0a 6f  2..----..12....o
d230: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
d240: 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
d250: 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
d260: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
d270: 32 39 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  291..SELECT DIST
d280: 49 4e 43 54 20 2b 20 63 6f 6c 31 20 2b 20 2b 20  INCT + col1 + + 
d290: 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
d2a0: 47 4e 45 44 20 29 20 63 6f 6c 32 20 46 52 4f 4d  GNED ) col2 FROM
d2b0: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   tab1..----..NUL
d2c0: 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
d2d0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
d2e0: 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
d2f0: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
d300: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
d310: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
d320: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
d330: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
d340: 65 6c 2d 32 39 31 0d 0a 53 45 4c 45 43 54 20 44  el-291..SELECT D
d350: 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 2b  ISTINCT + col1 +
d360: 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   + CAST ( NULL A
d370: 53 20 49 4e 54 45 47 45 52 20 29 20 63 6f 6c 32  S INTEGER ) col2
d380: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
d390: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..NULL....onlyif
d3a0: 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
d3b0: 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
d3c0: 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  n: ..query II ro
d3d0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 39 32 0d  wsort label-292.
d3e0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
d3f0: 20 2d 20 2b 20 63 6f 6c 30 20 44 49 56 20 35 34   - + col0 DIV 54
d400: 20 2a 20 2d 20 2d 20 63 6f 6c 32 20 41 53 20 63   * - - col2 AS c
d410: 6f 6c 31 2c 20 2d 20 63 6f 6c 30 20 46 52 4f 4d  ol1, - col0 FROM
d420: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
d430: 2d 2d 2d 0d 0a 2d 34 30 0d 0a 2d 36 34 0d 0a 2d  ---..-40..-64..-
d440: 35 38 0d 0a 2d 37 35 0d 0a 30 0d 0a 2d 34 36 0d  58..-75..0..-46.
d450: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
d460: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
d470: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
d480: 72 74 20 6c 61 62 65 6c 2d 32 39 32 0d 0a 53 45  rt label-292..SE
d490: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
d4a0: 2b 20 63 6f 6c 30 20 2f 20 35 34 20 2a 20 2d 20  + col0 / 54 * - 
d4b0: 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 2c 20  - col2 AS col1, 
d4c0: 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  - col0 FROM tab2
d4d0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
d4e0: 2d 34 30 0d 0a 2d 36 34 0d 0a 2d 35 38 0d 0a 2d  -40..-64..-58..-
d4f0: 37 35 0d 0a 30 0d 0a 2d 34 36 0d 0a 0d 0a 71 75  75..0..-46....qu
d500: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
d510: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
d520: 20 63 6f 6c 32 20 2b 20 2b 20 32 35 20 41 53 20   col2 + + 25 AS 
d530: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
d540: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
d550: 35 0d 0a 2d 33 33 0d 0a 32 0d 0a 0d 0a 6f 6e 6c  5..-33..2....onl
d560: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
d570: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
d580: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
d590: 6c 61 62 65 6c 2d 32 39 34 0d 0a 53 45 4c 45 43  label-294..SELEC
d5a0: 54 20 44 49 53 54 49 4e 43 54 20 2b 20 4d 41 58  T DISTINCT + MAX
d5b0: 28 20 44 49 53 54 49 4e 43 54 20 2b 20 36 39 20  ( DISTINCT + 69 
d5c0: 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  ) FROM tab2 AS c
d5d0: 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
d5e0: 61 62 32 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a  ab2 cor1..----..
d5f0: 36 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  69....skipif mys
d600: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
d610: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
d620: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 39 34 0d 0a  sort label-294..
d630: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
d640: 2b 20 4d 41 58 20 28 20 44 49 53 54 49 4e 43 54  + MAX ( DISTINCT
d650: 20 2b 20 36 39 20 29 20 46 52 4f 4d 20 74 61 62   + 69 ) FROM tab
d660: 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  2 AS cor0 CROSS 
d670: 4a 4f 49 4e 20 74 61 62 32 20 63 6f 72 31 0d 0a  JOIN tab2 cor1..
d680: 2d 2d 2d 2d 0d 0a 36 39 0d 0a 0d 0a 6f 6e 6c 79  ----..69....only
d690: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
d6a0: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
d6b0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
d6c0: 61 62 65 6c 2d 32 39 35 0d 0a 53 45 4c 45 43 54  abel-295..SELECT
d6d0: 20 44 49 53 54 49 4e 43 54 20 2b 20 32 33 20 2b   DISTINCT + 23 +
d6e0: 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53   - COUNT( * ) AS
d6f0: 20 63 6f 6c 32 20 46 52 4f 4d 20 28 20 74 61 62   col2 FROM ( tab
d700: 30 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  0 cor0 CROSS JOI
d710: 4e 20 74 61 62 31 20 63 6f 72 31 20 29 0d 0a 2d  N tab1 cor1 )..-
d720: 2d 2d 2d 0d 0a 31 34 0d 0a 0d 0a 73 6b 69 70 69  ---..14....skipi
d730: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
d740: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
d750: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
d760: 32 39 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  295..SELECT DIST
d770: 49 4e 43 54 20 2b 20 32 33 20 2b 20 2d 20 43 4f  INCT + 23 + - CO
d780: 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c  UNT ( * ) AS col
d790: 32 20 46 52 4f 4d 20 28 20 74 61 62 30 20 63 6f  2 FROM ( tab0 co
d7a0: 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
d7b0: 62 31 20 63 6f 72 31 20 29 0d 0a 2d 2d 2d 2d 0d  b1 cor1 )..----.
d7c0: 0a 31 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .14....query I r
d7d0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
d7e0: 20 33 37 20 2b 20 2b 20 28 20 2d 20 34 33 20 29   37 + + ( - 43 )
d7f0: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
d800: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 0d 0a 2d 36  b2..----..-6..-6
d810: 0d 0a 2d 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..-6....query II
d820: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
d830: 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48  T * FROM tab0 WH
d840: 45 52 45 20 2d 20 31 30 20 4e 4f 54 20 42 45 54  ERE - 10 NOT BET
d850: 57 45 45 4e 20 2d 20 2d 20 63 6f 6c 30 20 41 4e  WEEN - - col0 AN
d860: 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20  D NULL..----..9 
d870: 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
d880: 6f 20 63 34 62 34 32 37 36 35 64 66 66 39 34 65  o c4b42765dff94e
d890: 61 61 61 34 36 30 34 30 65 35 33 37 66 62 34 33  aaa46040e537fb43
d8a0: 62 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  b7....onlyif mys
d8b0: 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
d8c0: 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
d8d0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
d8e0: 20 6c 61 62 65 6c 2d 32 39 38 0d 0a 53 45 4c 45   label-298..SELE
d8f0: 43 54 20 2b 20 2b 20 43 41 53 54 28 20 2b 20 34  CT + + CAST( + 4
d900: 34 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52  4 AS SIGNED ) FR
d910: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
d920: 0a 2d 2d 2d 2d 0d 0a 34 34 0d 0a 34 34 0d 0a 34  .----..44..44..4
d930: 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  4....skipif mysq
d940: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
d950: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
d960: 6f 72 74 20 6c 61 62 65 6c 2d 32 39 38 0d 0a 53  ort label-298..S
d970: 45 4c 45 43 54 20 2b 20 2b 20 43 41 53 54 20 28  ELECT + + CAST (
d980: 20 2b 20 34 34 20 41 53 20 49 4e 54 45 47 45 52   + 44 AS INTEGER
d990: 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
d9a0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 34 0d 0a  cor0..----..44..
d9b0: 34 34 0d 0a 34 34 0d 0a 0d 0a 6f 6e 6c 79 69 66  44..44....onlyif
d9c0: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
d9d0: 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20  ntax: aggregate 
d9e0: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
d9f0: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
da00: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 39 39  owsort label-299
da10: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28 20 2b  ..SELECT ALL ( +
da20: 20 38 31 20 29 20 2a 20 2d 20 35 20 2a 20 2d 20   81 ) * - 5 * - 
da30: 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2d  - COUNT( * ) + -
da40: 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
da50: 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 31 20  IGNED ) AS col1 
da60: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
da70: 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  0..----..NULL...
da80: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
da90: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
daa0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
dab0: 6c 61 62 65 6c 2d 32 39 39 0d 0a 53 45 4c 45 43  label-299..SELEC
dac0: 54 20 41 4c 4c 20 28 20 2b 20 38 31 20 29 20 2a  T ALL ( + 81 ) *
dad0: 20 2d 20 35 20 2a 20 2d 20 2d 20 43 4f 55 4e 54   - 5 * - - COUNT
dae0: 20 28 20 2a 20 29 20 2b 20 2d 20 43 41 53 54 20   ( * ) + - CAST 
daf0: 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
db00: 52 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  R ) AS col1 FROM
db10: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
db20: 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65  ---..NULL....que
db30: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
db40: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
db50: 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
db60: 20 4e 4f 54 20 2b 20 63 6f 6c 31 20 2b 20 2b 20   NOT + col1 + + 
db70: 2b 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55  + col1 IS NOT NU
db80: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  LL..----....only
db90: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
dba0: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
dbb0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
dbc0: 61 62 65 6c 2d 33 30 31 0d 0a 53 45 4c 45 43 54  abel-301..SELECT
dbd0: 20 35 34 20 2a 20 2b 20 43 4f 55 4e 54 28 20 44   54 * + COUNT( D
dbe0: 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 29 20 63  ISTINCT col1 ) c
dbf0: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  ol0 FROM tab1 co
dc00: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 32 0d 0a 0d  r0..----..162...
dc10: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
dc20: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
dc30: 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
dc40: 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
dc50: 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
dc60: 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
dc70: 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
dc80: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
dc90: 30 31 0d 0a 53 45 4c 45 43 54 20 35 34 20 2a 20  01..SELECT 54 * 
dca0: 2b 20 43 4f 55 4e 54 20 28 20 44 49 53 54 49 4e  + COUNT ( DISTIN
dcb0: 43 54 20 63 6f 6c 31 20 29 20 63 6f 6c 30 20 46  CT col1 ) col0 F
dcc0: 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d  ROM tab1 cor0..-
dcd0: 2d 2d 2d 0d 0a 31 36 32 0d 0a 0d 0a 73 6b 69 70  ---..162....skip
dce0: 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
dcf0: 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
dd00: 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
dd10: 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
dd20: 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  mns..query II ro
dd30: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
dd40: 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 32 2c 20 2d  col0 * + col2, -
dd50: 20 63 6f 6c 31 20 2b 20 2b 20 39 38 20 2a 20 2b   col1 + + 98 * +
dd60: 20 63 6f 6c 31 20 2a 20 32 37 20 63 6f 6c 31 20   col1 * 27 col1 
dd70: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
dd80: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 35 38 0d 0a  0..----..-1058..
dd90: 31 33 34 38 39 35 0d 0a 2d 32 35 36 30 0d 0a 32  134895..-2560..2
dda0: 30 33 36 36 35 0d 0a 2d 34 33 35 30 0d 0a 31 37  03665..-4350..17
ddb0: 37 32 31 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  7215....onlyif m
ddc0: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
ddd0: 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
dde0: 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
ddf0: 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
de00: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
de10: 65 6c 2d 33 30 33 0d 0a 53 45 4c 45 43 54 20 43  el-303..SELECT C
de20: 41 53 54 28 20 63 6f 6c 31 20 41 53 20 53 49 47  AST( col1 AS SIG
de30: 4e 45 44 20 29 20 44 49 56 20 2b 20 37 31 20 41  NED ) DIV + 71 A
de40: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
de50: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   cor0..----..0..
de60: 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  0..0....skipif m
de70: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
de80: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
de90: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 30 33  owsort label-303
dea0: 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 20 28 20  ..SELECT CAST ( 
deb0: 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45 52 20  col1 AS INTEGER 
dec0: 29 20 2f 20 2b 20 37 31 20 41 53 20 63 6f 6c 31  ) / + 71 AS col1
ded0: 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d   FROM tab1 cor0.
dee0: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a  .----..0..0..0..
def0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
df00: 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
df10: 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
df20: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
df30: 65 6c 2d 33 30 34 0d 0a 53 45 4c 45 43 54 20 34  el-304..SELECT 4
df40: 34 20 44 49 56 20 2b 20 2b 20 63 6f 6c 30 20 2a  4 DIV + + col0 *
df50: 20 2b 20 28 20 2d 20 63 6f 6c 31 20 29 20 2a 20   + ( - col1 ) * 
df60: 2d 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31  - + col0 AS col1
df70: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
df80: 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69  ..0..0..0....ski
df90: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
dfa0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
dfb0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
dfc0: 6c 2d 33 30 34 0d 0a 53 45 4c 45 43 54 20 34 34  l-304..SELECT 44
dfd0: 20 2f 20 2b 20 2b 20 63 6f 6c 30 20 2a 20 2b 20   / + + col0 * + 
dfe0: 28 20 2d 20 63 6f 6c 31 20 29 20 2a 20 2d 20 2b  ( - col1 ) * - +
dff0: 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52   col0 AS col1 FR
e000: 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30  OM tab1..----..0
e010: 0d 0a 30 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20  ..0..0....query 
e020: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
e030: 43 54 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 30  CT col2 * - col0
e040: 20 2a 20 2b 20 37 38 20 41 53 20 63 6f 6c 30 2c   * + 78 AS col0,
e050: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
e060: 0a 2d 2d 2d 2d 0d 0a 2d 35 34 39 39 30 0d 0a 31  .----..-54990..1
e070: 35 0d 0a 2d 36 37 38 36 30 0d 0a 38 37 0d 0a 2d  5..-67860..87..-
e080: 37 34 39 30 33 34 0d 0a 39 37 0d 0a 0d 0a 6f 6e  749034..97....on
e090: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
e0a0: 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
e0b0: 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
e0c0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
e0d0: 30 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  06..SELECT ALL +
e0e0: 20 63 6f 6c 32 20 2a 20 2b 20 43 41 53 54 28 20   col2 * + CAST( 
e0f0: 2d 20 2b 20 63 6f 6c 32 20 41 53 20 53 49 47 4e  - + col2 AS SIGN
e100: 45 44 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a  ED ) FROM tab1..
e110: 2d 2d 2d 2d 0d 0a 2d 33 34 38 31 0d 0a 2d 34 36  ----..-3481..-46
e120: 32 34 0d 0a 2d 39 32 31 36 0d 0a 0d 0a 73 6b 69  24..-9216....ski
e130: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
e140: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
e150: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
e160: 6c 2d 33 30 36 0d 0a 53 45 4c 45 43 54 20 41 4c  l-306..SELECT AL
e170: 4c 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 43 41 53  L + col2 * + CAS
e180: 54 20 28 20 2d 20 2b 20 63 6f 6c 32 20 41 53 20  T ( - + col2 AS 
e190: 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74  INTEGER ) FROM t
e1a0: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 34 38 31  ab1..----..-3481
e1b0: 0d 0a 2d 34 36 32 34 0d 0a 2d 39 32 31 36 0d 0a  ..-4624..-9216..
e1c0: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
e1d0: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
e1e0: 4e 43 54 20 63 6f 6c 30 20 2b 20 2d 20 36 34 20  NCT col0 + - 64 
e1f0: 2a 20 2d 20 63 6f 6c 30 2c 20 37 20 46 52 4f 4d  * - col0, 7 FROM
e200: 20 74 61 62 30 20 57 48 45 52 45 20 4e 55 4c 4c   tab0 WHERE NULL
e210: 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d   < NULL..----...
e220: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
e230: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28 20 2d  ..SELECT ALL ( -
e240: 20 2b 20 63 6f 6c 32 20 29 20 2a 20 33 32 20 41   + col2 ) * 32 A
e250: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
e260: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38 38 38 0d 0a 2d  ..----..-1888..-
e270: 32 31 37 36 0d 0a 2d 33 30 37 32 0d 0a 0d 0a 71  2176..-3072....q
e280: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
e290: 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c  SELECT ALL - col
e2a0: 31 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20  1 * + - col2 AS 
e2b0: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col1 FROM tab2..
e2c0: 2d 2d 2d 2d 0d 0a 31 31 37 33 0d 0a 33 30 38 30  ----..1173..3080
e2d0: 0d 0a 33 38 38 36 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..3886....onlyif
e2e0: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
e2f0: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
e300: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
e310: 65 6c 2d 33 31 30 0d 0a 53 45 4c 45 43 54 20 41  el-310..SELECT A
e320: 4c 4c 20 4d 49 4e 28 20 44 49 53 54 49 4e 43 54  LL MIN( DISTINCT
e330: 20 2d 20 2b 20 63 6f 6c 32 20 29 20 41 53 20 63   - + col2 ) AS c
e340: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
e350: 2d 2d 2d 0d 0a 2d 35 38 0d 0a 0d 0a 73 6b 69 70  ---..-58....skip
e360: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
e370: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
e380: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
e390: 2d 33 31 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -310..SELECT ALL
e3a0: 20 4d 49 4e 20 28 20 44 49 53 54 49 4e 43 54 20   MIN ( DISTINCT 
e3b0: 2d 20 2b 20 63 6f 6c 32 20 29 20 41 53 20 63 6f  - + col2 ) AS co
e3c0: 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
e3d0: 2d 2d 0d 0a 2d 35 38 0d 0a 0d 0a 71 75 65 72 79  --..-58....query
e3e0: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
e3f0: 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
e400: 74 61 62 31 20 57 48 45 52 45 20 2d 20 2d 20 28  tab1 WHERE - - (
e410: 20 2b 20 28 20 2b 20 63 6f 6c 30 20 29 20 29 20   + ( + col0 ) ) 
e420: 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
e430: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
e440: 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30  t..SELECT + col0
e450: 2c 20 2d 20 39 32 20 46 52 4f 4d 20 74 61 62 30  , - 92 FROM tab0
e460: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
e470: 31 35 0d 0a 2d 39 32 0d 0a 38 37 0d 0a 2d 39 32  15..-92..87..-92
e480: 0d 0a 39 37 0d 0a 2d 39 32 0d 0a 0d 0a 6f 6e 6c  ..97..-92....onl
e490: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
e4a0: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49  egate syntax: DI
e4b0: 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
e4c0: 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
e4d0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
e4e0: 33 31 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  313..SELECT ALL 
e4f0: 2b 20 33 34 20 44 49 56 20 43 4f 55 4e 54 28 20  + 34 DIV COUNT( 
e500: 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  * ) FROM tab0 AS
e510: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 0d   cor0..----..11.
e520: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
e530: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
e540: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
e550: 74 20 6c 61 62 65 6c 2d 33 31 33 0d 0a 53 45 4c  t label-313..SEL
e560: 45 43 54 20 41 4c 4c 20 2b 20 33 34 20 2f 20 43  ECT ALL + 34 / C
e570: 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20  OUNT ( * ) FROM 
e580: 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
e590: 2d 2d 0d 0a 31 31 0d 0a 0d 0a 6f 6e 6c 79 69 66  --..11....onlyif
e5a0: 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
e5b0: 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
e5c0: 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
e5d0: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 31 34 0d 0a  sort label-314..
e5e0: 53 45 4c 45 43 54 20 2d 20 32 31 20 44 49 56 20  SELECT - 21 DIV 
e5f0: 2d 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c  - + col2 * - col
e600: 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  1 AS col2 FROM t
e610: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
e620: 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b  -..0..0..0....sk
e630: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
e640: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
e650: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
e660: 65 6c 2d 33 31 34 0d 0a 53 45 4c 45 43 54 20 2d  el-314..SELECT -
e670: 20 32 31 20 2f 20 2d 20 2b 20 63 6f 6c 32 20 2a   21 / - + col2 *
e680: 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20   - col1 AS col2 
e690: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
e6a0: 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30  0..----..0..0..0
e6b0: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 49 49 49  ....query IIIIII
e6c0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
e6d0: 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
e6e0: 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 43 52   tab2 AS cor0 CR
e6f0: 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20 41 53  OSS JOIN tab1 AS
e700: 20 63 6f 72 31 20 57 48 45 52 45 20 4e 4f 54 20   cor1 WHERE NOT 
e710: 28 20 4e 55 4c 4c 20 29 20 3d 20 4e 55 4c 4c 0d  ( NULL ) = NULL.
e720: 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
e730: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
e740: 20 41 4c 4c 20 63 6f 6c 31 20 2a 20 2b 20 2d 20   ALL col1 * + - 
e750: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col0 FROM tab1..
e760: 2d 2d 2d 2d 0d 0a 2d 34 32 35 0d 0a 2d 34 32 37  ----..-425..-427
e770: 37 0d 0a 2d 37 31 34 0d 0a 0d 0a 6f 6e 6c 79 69  7..-714....onlyi
e780: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
e790: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
e7a0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
e7b0: 62 65 6c 2d 33 31 37 0d 0a 53 45 4c 45 43 54 20  bel-317..SELECT 
e7c0: 41 4c 4c 20 4d 41 58 28 20 2b 20 2b 20 38 30 20  ALL MAX( + + 80 
e7d0: 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  ) FROM tab2 AS c
e7e0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 30 0d 0a 0d  or0..----..80...
e7f0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
e800: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
e810: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
e820: 6c 61 62 65 6c 2d 33 31 37 0d 0a 53 45 4c 45 43  label-317..SELEC
e830: 54 20 41 4c 4c 20 4d 41 58 20 28 20 2b 20 2b 20  T ALL MAX ( + + 
e840: 38 30 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41  80 ) FROM tab2 A
e850: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 30  S cor0..----..80
e860: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
e870: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
e880: 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
e890: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
e8a0: 20 6c 61 62 65 6c 2d 33 31 38 0d 0a 53 45 4c 45   label-318..SELE
e8b0: 43 54 20 2d 20 2b 20 39 38 2c 20 63 6f 6c 31 20  CT - + 98, col1 
e8c0: 2b 20 2b 20 43 41 53 54 28 20 2d 20 33 20 41 53  + + CAST( - 3 AS
e8d0: 20 53 49 47 4e 45 44 20 29 20 2b 20 2b 20 28 20   SIGNED ) + + ( 
e8e0: 2d 20 2d 20 63 6f 6c 32 20 29 20 2a 20 2b 20 63  - - col2 ) * + c
e8f0: 6f 6c 30 20 41 53 20 63 6f 6c 32 2c 20 2b 20 63  ol0 AS col2, + c
e900: 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol1 AS col0 FROM
e910: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
e920: 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
e930: 73 68 69 6e 67 20 74 6f 20 63 33 32 36 63 31 33  shing to c326c13
e940: 34 66 62 37 38 30 33 36 35 30 32 62 32 61 36 65  4fb78036502b2a6e
e950: 36 35 31 31 35 65 33 39 66 0d 0a 0d 0a 73 6b 69  65115e39f....ski
e960: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
e970: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
e980: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
e990: 62 65 6c 2d 33 31 38 0d 0a 53 45 4c 45 43 54 20  bel-318..SELECT 
e9a0: 2d 20 2b 20 39 38 2c 20 63 6f 6c 31 20 2b 20 2b  - + 98, col1 + +
e9b0: 20 43 41 53 54 20 28 20 2d 20 33 20 41 53 20 49   CAST ( - 3 AS I
e9c0: 4e 54 45 47 45 52 20 29 20 2b 20 2b 20 28 20 2d  NTEGER ) + + ( -
e9d0: 20 2d 20 63 6f 6c 32 20 29 20 2a 20 2b 20 63 6f   - col2 ) * + co
e9e0: 6c 30 20 41 53 20 63 6f 6c 32 2c 20 2b 20 63 6f  l0 AS col2, + co
e9f0: 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l1 AS col0 FROM 
ea00: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
ea10: 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
ea20: 68 69 6e 67 20 74 6f 20 63 33 32 36 63 31 33 34  hing to c326c134
ea30: 66 62 37 38 30 33 36 35 30 32 62 32 61 36 65 36  fb78036502b2a6e6
ea40: 35 31 31 35 65 33 39 66 0d 0a 0d 0a 71 75 65 72  5115e39f....quer
ea50: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
ea60: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63  ECT DISTINCT + c
ea70: 6f 6c 31 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 2a  ol1 * + - col2 *
ea80: 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 2d 20 63 6f   - col1 + + - co
ea90: 6c 32 20 2b 20 2b 20 28 20 2b 20 63 6f 6c 30 20  l2 + + ( + col0 
eaa0: 29 20 2a 20 2d 20 39 39 20 46 52 4f 4d 20 74 61  ) * - 99 FROM ta
eab0: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
eac0: 0d 0a 2d 36 39 39 39 0d 0a 31 33 36 37 31 0d 0a  ..-6999..13671..
ead0: 31 34 31 31 33 35 0d 0a 0d 0a 6f 6e 6c 79 69 66  141135....onlyif
eae0: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
eaf0: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
eb00: 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  e: ..query II ro
eb10: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 32 30 0d  wsort label-320.
eb20: 0a 53 45 4c 45 43 54 20 2b 20 2d 20 33 33 2c 20  .SELECT + - 33, 
eb30: 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  + CAST( NULL AS 
eb40: 53 49 47 4e 45 44 20 29 20 2a 20 2d 20 63 6f 6c  SIGNED ) * - col
eb50: 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  2 AS col1 FROM t
eb60: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
eb70: 2d 0d 0a 2d 33 33 0d 0a 4e 55 4c 4c 0d 0a 2d 33  -..-33..NULL..-3
eb80: 33 0d 0a 4e 55 4c 4c 0d 0a 2d 33 33 0d 0a 4e 55  3..NULL..-33..NU
eb90: 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
eba0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
ebb0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
ebc0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 32 30 0d  wsort label-320.
ebd0: 0a 53 45 4c 45 43 54 20 2b 20 2d 20 33 33 2c 20  .SELECT + - 33, 
ebe0: 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
ebf0: 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2d 20 63   INTEGER ) * - c
ec00: 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol2 AS col1 FROM
ec10: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
ec20: 2d 2d 2d 0d 0a 2d 33 33 0d 0a 4e 55 4c 4c 0d 0a  ---..-33..NULL..
ec30: 2d 33 33 0d 0a 4e 55 4c 4c 0d 0a 2d 33 33 0d 0a  -33..NULL..-33..
ec40: 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49  NULL....query II
ec50: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
ec60: 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53  T * FROM tab0 AS
ec70: 20 63 6f 72 30 20 57 48 45 52 45 20 39 36 20 49   cor0 WHERE 96 I
ec80: 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  S NULL..----....
ec90: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
eca0: 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20  ..SELECT - col0 
ecb0: 41 53 20 63 6f 6c 32 2c 20 2d 20 63 6f 6c 31 20  AS col2, - col1 
ecc0: 2a 20 2b 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 37  * + - col2 + + 7
ecd0: 32 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  2 FROM tab1 cor0
ece0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 31 34 31  ..----..-51..141
ecf0: 36 0d 0a 2d 38 35 0d 0a 33 36 37 0d 0a 2d 39 31  6..-85..367..-91
ed00: 0d 0a 33 32 36 38 0d 0a 0d 0a 71 75 65 72 79 20  ..3268....query 
ed10: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
ed20: 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ECT * FROM tab1 
ed30: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 30 20  AS cor0 WHERE 0 
ed40: 3c 3e 20 2d 20 63 6f 6c 32 20 2b 20 63 6f 6c 32  <> - col2 + col2
ed50: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
ed60: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
ed70: 43 54 20 2d 20 2b 20 63 6f 6c 30 20 41 53 20 63  CT - + col0 AS c
ed80: 6f 6c 30 2c 20 2d 20 39 20 41 53 20 63 6f 6c 31  ol0, - 9 AS col1
ed90: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
eda0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 2d  r0..----..-15..-
edb0: 39 0d 0a 2d 38 37 0d 0a 2d 39 0d 0a 2d 39 37 0d  9..-87..-9..-97.
edc0: 0a 2d 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .-9....onlyif my
edd0: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
ede0: 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e  x: aggregate syn
edf0: 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70  tax: DECIMAL typ
ee00: 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
ee10: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 32 35 0d 0a  sort label-325..
ee20: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
ee30: 2b 20 33 39 20 2a 20 2d 20 2d 20 43 4f 55 4e 54  + 39 * - - COUNT
ee40: 28 20 2a 20 29 20 2b 20 2b 20 2b 20 43 41 53 54  ( * ) + + + CAST
ee50: 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41  ( NULL AS DECIMA
ee60: 4c 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  L ) AS col2 FROM
ee70: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
ee80: 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ---..NULL....ski
ee90: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
eea0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
eeb0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
eec0: 6c 2d 33 32 35 0d 0a 53 45 4c 45 43 54 20 44 49  l-325..SELECT DI
eed0: 53 54 49 4e 43 54 20 2b 20 33 39 20 2a 20 2d 20  STINCT + 39 * - 
eee0: 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20  - COUNT ( * ) + 
eef0: 2b 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  + + CAST ( NULL 
ef00: 41 53 20 52 45 41 4c 20 29 20 41 53 20 63 6f 6c  AS REAL ) AS col
ef10: 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
ef20: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
ef30: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
ef40: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
ef50: 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
ef60: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
ef70: 61 62 65 6c 2d 33 32 36 0d 0a 53 45 4c 45 43 54  abel-326..SELECT
ef80: 20 2d 20 2d 20 63 6f 6c 30 2c 20 2b 20 43 41 53   - - col0, + CAS
ef90: 54 28 20 63 6f 6c 31 20 41 53 20 53 49 47 4e 45  T( col1 AS SIGNE
efa0: 44 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  D ) AS col0 FROM
efb0: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
efc0: 2d 2d 2d 0d 0a 31 35 0d 0a 38 31 0d 0a 38 37 0d  ---..15..81..87.
efd0: 0a 32 31 0d 0a 39 37 0d 0a 31 0d 0a 0d 0a 73 6b  .21..97..1....sk
efe0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
eff0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
f000: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
f010: 62 65 6c 2d 33 32 36 0d 0a 53 45 4c 45 43 54 20  bel-326..SELECT 
f020: 2d 20 2d 20 63 6f 6c 30 2c 20 2b 20 43 41 53 54  - - col0, + CAST
f030: 20 28 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47   ( col1 AS INTEG
f040: 45 52 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  ER ) AS col0 FRO
f050: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
f060: 2d 2d 2d 2d 0d 0a 31 35 0d 0a 38 31 0d 0a 38 37  ----..15..81..87
f070: 0d 0a 32 31 0d 0a 39 37 0d 0a 31 0d 0a 0d 0a 73  ..21..97..1....s
f080: 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
f090: 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
f0a0: 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
f0b0: 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
f0c0: 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49  olumns..query II
f0d0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
f0e0: 20 28 20 2d 20 63 6f 6c 32 20 29 20 63 6f 6c 31   ( - col2 ) col1
f0f0: 2c 20 34 37 20 41 53 20 63 6f 6c 30 20 46 52 4f  , 47 AS col0 FRO
f100: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  M tab1..----..-5
f110: 39 0d 0a 34 37 0d 0a 2d 36 38 0d 0a 34 37 0d 0a  9..47..-68..47..
f120: 2d 39 36 0d 0a 34 37 0d 0a 0d 0a 6f 6e 6c 79 69  -96..47....onlyi
f130: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
f140: 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65  yntax: aggregate
f150: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
f160: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
f170: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 32  rowsort label-32
f180: 38 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e  8..SELECT + COUN
f190: 54 28 20 2a 20 29 20 2b 20 2b 20 4d 41 58 28 20  T( * ) + + MAX( 
f1a0: 2b 20 2b 20 38 32 20 29 20 46 52 4f 4d 20 74 61  + + 82 ) FROM ta
f1b0: 62 32 20 57 48 45 52 45 20 43 41 53 54 28 20 4e  b2 WHERE CAST( N
f1c0: 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
f1d0: 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
f1e0: 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  -..NULL....skipi
f1f0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
f200: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
f210: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
f220: 33 32 38 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f  328..SELECT + CO
f230: 55 4e 54 20 28 20 2a 20 29 20 2b 20 2b 20 4d 41  UNT ( * ) + + MA
f240: 58 20 28 20 2b 20 2b 20 38 32 20 29 20 46 52 4f  X ( + + 82 ) FRO
f250: 4d 20 74 61 62 32 20 57 48 45 52 45 20 43 41 53  M tab2 WHERE CAS
f260: 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
f270: 47 45 52 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c  GER ) IS NOT NUL
f280: 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  L..----..NULL...
f290: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
f2a0: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
f2b0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
f2c0: 6f 72 74 20 6c 61 62 65 6c 2d 33 32 39 0d 0a 53  ort label-329..S
f2d0: 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a  ELECT + COUNT( *
f2e0: 20 29 20 2b 20 2b 20 38 31 20 46 52 4f 4d 20 74   ) + + 81 FROM t
f2f0: 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 38 34 0d 0a 0d  ab2..----..84...
f300: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
f310: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
f320: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
f330: 6c 61 62 65 6c 2d 33 32 39 0d 0a 53 45 4c 45 43  label-329..SELEC
f340: 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  T + COUNT ( * ) 
f350: 2b 20 2b 20 38 31 20 46 52 4f 4d 20 74 61 62 32  + + 81 FROM tab2
f360: 0d 0a 2d 2d 2d 2d 0d 0a 38 34 0d 0a 0d 0a 6f 6e  ..----..84....on
f370: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
f380: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
f390: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
f3a0: 20 6c 61 62 65 6c 2d 33 33 30 0d 0a 53 45 4c 45   label-330..SELE
f3b0: 43 54 20 33 37 20 2b 20 2d 20 2b 20 43 4f 55 4e  CT 37 + - + COUN
f3c0: 54 28 20 2a 20 29 20 2a 20 2b 20 2b 20 38 30 20  T( * ) * + + 80 
f3d0: 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  + - COUNT( * ) F
f3e0: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
f3f0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30 36 0d 0a 0d 0a  ..----..-206....
f400: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
f410: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
f420: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
f430: 61 62 65 6c 2d 33 33 30 0d 0a 53 45 4c 45 43 54  abel-330..SELECT
f440: 20 33 37 20 2b 20 2d 20 2b 20 43 4f 55 4e 54 20   37 + - + COUNT 
f450: 28 20 2a 20 29 20 2a 20 2b 20 2b 20 38 30 20 2b  ( * ) * + + 80 +
f460: 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46   - COUNT ( * ) F
f470: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
f480: 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30 36 0d 0a 0d 0a  ..----..-206....
f490: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
f4a0: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
f4b0: 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
f4c0: 6f 72 74 20 6c 61 62 65 6c 2d 33 33 31 0d 0a 53  ort label-331..S
f4d0: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
f4e0: 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2d 20   COUNT( * ) * - 
f4f0: 35 36 20 2b 20 2b 20 34 32 20 41 53 20 63 6f 6c  56 + + 42 AS col
f500: 31 2c 20 2b 20 28 20 2d 20 43 4f 55 4e 54 28 20  1, + ( - COUNT( 
f510: 2a 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52  * ) ) AS col1 FR
f520: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
f530: 0a 2d 2d 2d 2d 0d 0a 2d 31 32 36 0d 0a 2d 33 0d  .----..-126..-3.
f540: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
f550: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
f560: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
f570: 72 74 20 6c 61 62 65 6c 2d 33 33 31 0d 0a 53 45  rt label-331..SE
f580: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
f590: 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20  COUNT ( * ) * - 
f5a0: 35 36 20 2b 20 2b 20 34 32 20 41 53 20 63 6f 6c  56 + + 42 AS col
f5b0: 31 2c 20 2b 20 28 20 2d 20 43 4f 55 4e 54 20 28  1, + ( - COUNT (
f5c0: 20 2a 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46   * ) ) AS col1 F
f5d0: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
f5e0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 36 0d 0a 2d 33  ..----..-126..-3
f5f0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
f600: 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
f610: 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
f620: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
f630: 61 62 65 6c 2d 33 33 32 0d 0a 53 45 4c 45 43 54  abel-332..SELECT
f640: 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 2d 20 63 6f   ALL - col0 - co
f650: 6c 32 20 44 49 56 20 63 6f 6c 30 20 2a 20 2d 20  l2 DIV col0 * - 
f660: 2b 20 37 30 20 63 6f 6c 32 20 46 52 4f 4d 20 74  + 70 col2 FROM t
f670: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 35 0d 0a  ab1..----..-85..
f680: 2d 39 31 0d 0a 31 39 0d 0a 0d 0a 73 6b 69 70 69  -91..19....skipi
f690: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
f6a0: 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66  mpatible..skipif
f6b0: 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
f6c0: 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
f6d0: 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
f6e0: 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
f6f0: 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
f700: 72 74 20 6c 61 62 65 6c 2d 33 33 32 0d 0a 53 45  rt label-332..SE
f710: 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20  LECT ALL - col0 
f720: 2d 20 63 6f 6c 32 20 2f 20 63 6f 6c 30 20 2a 20  - col2 / col0 * 
f730: 2d 20 2b 20 37 30 20 63 6f 6c 32 20 46 52 4f 4d  - + 70 col2 FROM
f740: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 35   tab1..----..-85
f750: 0d 0a 2d 39 31 0d 0a 31 39 0d 0a 0d 0a 6f 6e 6c  ..-91..19....onl
f760: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
f770: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
f780: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
f790: 6c 61 62 65 6c 2d 33 33 33 0d 0a 53 45 4c 45 43  label-333..SELEC
f7a0: 54 20 44 49 53 54 49 4e 43 54 20 4d 41 58 28 20  T DISTINCT MAX( 
f7b0: 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 28 20 63  DISTINCT + + ( c
f7c0: 6f 6c 30 20 29 20 29 20 41 53 20 63 6f 6c 32 20  ol0 ) ) AS col2 
f7d0: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
f7e0: 30 0d 0a 2d 2d 2d 2d 0d 0a 39 31 0d 0a 0d 0a 73  0..----..91....s
f7f0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
f800: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
f810: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
f820: 62 65 6c 2d 33 33 33 0d 0a 53 45 4c 45 43 54 20  bel-333..SELECT 
f830: 44 49 53 54 49 4e 43 54 20 4d 41 58 20 28 20 44  DISTINCT MAX ( D
f840: 49 53 54 49 4e 43 54 20 2b 20 2b 20 28 20 63 6f  ISTINCT + + ( co
f850: 6c 30 20 29 20 29 20 41 53 20 63 6f 6c 32 20 46  l0 ) ) AS col2 F
f860: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
f870: 0d 0a 2d 2d 2d 2d 0d 0a 39 31 0d 0a 0d 0a 71 75  ..----..91....qu
f880: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
f890: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
f8a0: 20 2b 20 28 20 2d 20 2b 20 28 20 2b 20 2d 20 63   + ( - + ( + - c
f8b0: 6f 6c 31 20 29 20 29 20 41 53 20 63 6f 6c 32 20  ol1 ) ) AS col2 
f8c0: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
f8d0: 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 32 31 0d 0a  0..----..1..21..
f8e0: 38 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  81....query III 
f8f0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
f900: 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  * FROM tab0 AS c
f910: 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  or0 WHERE NOT - 
f920: 63 6f 6c 30 20 2b 20 2b 20 2b 20 63 6f 6c 32 20  col0 + + + col2 
f930: 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  = NULL..----....
f940: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
f950: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
f960: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
f970: 72 74 20 6c 61 62 65 6c 2d 33 33 36 0d 0a 53 45  rt label-336..SE
f980: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f  LECT DISTINCT CO
f990: 55 4e 54 28 20 2d 20 32 36 20 29 20 46 52 4f 4d  UNT( - 26 ) FROM
f9a0: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
f9b0: 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66  ---..3....skipif
f9c0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
f9d0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
f9e0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
f9f0: 33 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  36..SELECT DISTI
fa00: 4e 43 54 20 43 4f 55 4e 54 20 28 20 2d 20 32 36  NCT COUNT ( - 26
fa10: 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
fa20: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d  cor0..----..3...
fa30: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
fa40: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
fa50: 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  NCT * FROM tab1 
fa60: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
fa70: 54 20 31 31 20 2a 20 2b 20 2d 20 63 6f 6c 31 20  T 11 * + - col1 
fa80: 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  IS NULL..----..9
fa90: 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
faa0: 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64  to c6c0a4111b36d
fab0: 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34  04dbc811a11e4d54
fac0: 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  cad....query I r
fad0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
fae0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
faf0: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
fb00: 54 20 28 20 4e 55 4c 4c 20 29 20 42 45 54 57 45  T ( NULL ) BETWE
fb10: 45 4e 20 2d 20 28 20 2b 20 63 6f 6c 31 20 29 20  EN - ( + col1 ) 
fb20: 41 4e 44 20 2b 20 2d 20 36 34 20 2a 20 34 35 20  AND + - 64 * 45 
fb30: 2b 20 2b 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 2d  + + + col0 * + -
fb40: 20 36 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65   61..----....que
fb50: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
fb60: 4c 45 43 54 20 31 30 20 2a 20 2d 20 34 34 20 2a  LECT 10 * - 44 *
fb70: 20 34 30 20 2b 20 2d 20 35 38 20 2a 20 2b 20 35   40 + - 58 * + 5
fb80: 20 2a 20 36 39 20 46 52 4f 4d 20 74 61 62 31 20   * 69 FROM tab1 
fb90: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
fba0: 33 37 36 31 30 0d 0a 2d 33 37 36 31 30 0d 0a 2d  37610..-37610..-
fbb0: 33 37 36 31 30 0d 0a 0d 0a 71 75 65 72 79 20 49  37610....query I
fbc0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
fbd0: 20 2b 20 63 6f 6c 32 20 2a 20 32 34 20 41 53 20   + col2 * 24 AS 
fbe0: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col1 FROM tab2..
fbf0: 2d 2d 2d 2d 0d 0a 31 33 39 32 0d 0a 35 35 32 0d  ----..1392..552.
fc00: 0a 39 36 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .960....onlyif m
fc10: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
fc20: 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
fc30: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
fc40: 72 74 20 6c 61 62 65 6c 2d 33 34 31 0d 0a 53 45  rt label-341..SE
fc50: 4c 45 43 54 20 2b 20 39 31 20 2a 20 63 6f 6c 32  LECT + 91 * col2
fc60: 20 2a 20 63 6f 6c 32 20 2a 20 2d 20 43 41 53 54   * col2 * - CAST
fc70: 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
fc80: 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
fc90: 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2b  tab0 WHERE NOT +
fca0: 20 63 6f 6c 32 20 42 45 54 57 45 45 4e 20 37 33   col2 BETWEEN 73
fcb0: 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   AND NULL..----.
fcc0: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .NULL..NULL....s
fcd0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
fce0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
fcf0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
fd00: 62 65 6c 2d 33 34 31 0d 0a 53 45 4c 45 43 54 20  bel-341..SELECT 
fd10: 2b 20 39 31 20 2a 20 63 6f 6c 32 20 2a 20 63 6f  + 91 * col2 * co
fd20: 6c 32 20 2a 20 2d 20 43 41 53 54 20 28 20 4e 55  l2 * - CAST ( NU
fd30: 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
fd40: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
fd50: 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f  0 WHERE NOT + co
fd60: 6c 32 20 42 45 54 57 45 45 4e 20 37 33 20 41 4e  l2 BETWEEN 73 AN
fd70: 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  D NULL..----..NU
fd80: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72  LL..NULL....quer
fd90: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
fda0: 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 41  ECT ALL + col2 A
fdb0: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
fdc0: 20 57 48 45 52 45 20 63 6f 6c 30 20 49 53 20 4e   WHERE col0 IS N
fdd0: 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31  OT NULL..----..1
fde0: 30 0d 0a 34 37 0d 0a 39 39 0d 0a 0d 0a 6f 6e 6c  0..47..99....onl
fdf0: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
fe00: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
fe10: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
fe20: 6c 61 62 65 6c 2d 33 34 33 0d 0a 53 45 4c 45 43  label-343..SELEC
fe30: 54 20 2d 20 4d 41 58 28 20 2b 20 2b 20 28 20 2b  T - MAX( + + ( +
fe40: 20 28 20 2d 20 2b 20 63 6f 6c 30 20 29 20 29 20   ( - + col0 ) ) 
fe50: 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
fe60: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 0d  ab0..----..15...
fe70: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
fe80: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
fe90: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
fea0: 6c 61 62 65 6c 2d 33 34 33 0d 0a 53 45 4c 45 43  label-343..SELEC
feb0: 54 20 2d 20 4d 41 58 20 28 20 2b 20 2b 20 28 20  T - MAX ( + + ( 
fec0: 2b 20 28 20 2d 20 2b 20 63 6f 6c 30 20 29 20 29  + ( - + col0 ) )
fed0: 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
fee0: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a  tab0..----..15..
fef0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
ff00: 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
ff10: 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
ff20: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
ff30: 65 6c 2d 33 34 34 0d 0a 53 45 4c 45 43 54 20 2b  el-344..SELECT +
ff40: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
ff50: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
ff60: 54 20 31 38 20 2a 20 2d 20 63 6f 6c 32 20 2a 20  T 18 * - col2 * 
ff70: 2d 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  - + CAST( NULL A
ff80: 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2b 20 2d  S SIGNED ) * + -
ff90: 20 63 6f 6c 31 20 3e 3d 20 4e 55 4c 4c 0d 0a 2d   col1 >= NULL..-
ffa0: 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ---....skipif my
ffb0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
ffc0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
ffd0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 34 34 0d  wsort label-344.
ffe0: 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 46  .SELECT + col2 F
fff0: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
10000 20 57 48 45 52 45 20 4e 4f 54 20 31 38 20 2a 20   WHERE NOT 18 * 
10010 2d 20 63 6f 6c 32 20 2a 20 2d 20 2b 20 43 41 53  - col2 * - + CAS
10020 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
10030 47 45 52 20 29 20 2a 20 2b 20 2d 20 63 6f 6c 31  GER ) * + - col1
10040 20 3e 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   >= NULL..----..
10050 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
10060 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
10070 20 2b 20 63 6f 6c 30 20 2a 20 31 38 20 41 53 20   + col0 * 18 AS 
10080 63 6f 6c 32 2c 20 32 20 41 53 20 63 6f 6c 30 20  col2, 2 AS col0 
10090 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
100a0 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 36 36 0d 0a 32  0..----..1566..2
100b0 0d 0a 31 37 34 36 0d 0a 32 0d 0a 32 37 30 0d 0a  ..1746..2..270..
100c0 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  2....query III r
100d0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
100e0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
100f0 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63  r0 WHERE NOT - c
10100 6f 6c 31 20 2a 20 2b 20 37 20 49 4e 20 28 20 2d  ol1 * + 7 IN ( -
10110 20 2b 20 31 37 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39   + 17 )..----..9
10120 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
10130 74 6f 20 63 34 62 34 32 37 36 35 64 66 66 39 34  to c4b42765dff94
10140 65 61 61 61 34 36 30 34 30 65 35 33 37 66 62 34  eaaa46040e537fb4
10150 33 62 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  3b7....onlyif my
10160 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
10170 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
10180 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
10190 33 34 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  347..SELECT ALL 
101a0 2d 20 2b 20 38 33 20 2b 20 43 4f 55 4e 54 28 20  - + 83 + COUNT( 
101b0 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  * ) FROM tab1 co
101c0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 30 0d 0a 0d  r0..----..-80...
101d0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
101e0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
101f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
10200 6c 61 62 65 6c 2d 33 34 37 0d 0a 53 45 4c 45 43  label-347..SELEC
10210 54 20 41 4c 4c 20 2d 20 2b 20 38 33 20 2b 20 43  T ALL - + 83 + C
10220 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20  OUNT ( * ) FROM 
10230 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
10240 0a 2d 38 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-80....query I 
10250 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
10260 44 49 53 54 49 4e 43 54 20 2b 20 35 32 20 2a 20  DISTINCT + 52 * 
10270 2b 20 38 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  + 8 FROM tab1..-
10280 2d 2d 2d 0d 0a 34 31 36 0d 0a 0d 0a 6f 6e 6c 79  ---..416....only
10290 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
102a0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
102b0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
102c0 6c 61 62 65 6c 2d 33 34 39 0d 0a 53 45 4c 45 43  label-349..SELEC
102d0 54 20 34 33 2c 20 2d 20 43 4f 55 4e 54 28 20 2a  T 43, - COUNT( *
102e0 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
102f0 74 61 62 32 20 41 53 20 63 6f 72 30 20 43 52 4f  tab2 AS cor0 CRO
10300 53 53 20 4a 4f 49 4e 20 74 61 62 31 20 41 53 20  SS JOIN tab1 AS 
10310 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 34 33 0d 0a  cor1..----..43..
10320 2d 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  -9....skipif mys
10330 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
10340 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
10350 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 34 39 0d  wsort label-349.
10360 0a 53 45 4c 45 43 54 20 34 33 2c 20 2d 20 43 4f  .SELECT 43, - CO
10370 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c  UNT ( * ) AS col
10380 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
10390 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
103a0 61 62 31 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d  ab1 AS cor1..---
103b0 2d 0d 0a 34 33 0d 0a 2d 39 0d 0a 0d 0a 71 75 65  -..43..-9....que
103c0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
103d0 4c 45 43 54 20 63 6f 6c 31 20 46 52 4f 4d 20 74  LECT col1 FROM t
103e0 61 62 32 20 57 48 45 52 45 20 28 20 38 31 20 3e  ab2 WHERE ( 81 >
103f0 3d 20 2b 20 32 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a  = + 20 )..----..
10400 35 31 0d 0a 36 37 0d 0a 37 37 0d 0a 0d 0a 73 6b  51..67..77....sk
10410 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
10420 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
10430 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
10440 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
10450 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
10460 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
10470 4c 4c 20 28 20 2b 20 63 6f 6c 31 20 29 20 63 6f  LL ( + col1 ) co
10480 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
10490 2d 2d 0d 0a 35 31 0d 0a 36 37 0d 0a 37 37 0d 0a  --..51..67..77..
104a0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
104b0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 34 30  t..SELECT ALL 40
104c0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
104d0 62 30 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53  b0 AS cor0 CROSS
104e0 20 4a 4f 49 4e 20 74 61 62 31 20 41 53 20 63 6f   JOIN tab1 AS co
104f0 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  r1..----..9 valu
10500 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 62 31  es hashing to b1
10510 65 38 66 66 65 65 66 33 33 34 62 34 61 32 62 30  e8ffeef334b4a2b0
10520 31 62 32 66 39 31 65 36 34 39 63 32 64 33 0d 0a  1b2f91e649c2d3..
10530 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
10540 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
10550 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
10560 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
10570 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
10580 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
10590 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 33 33  CT DISTINCT + 33
105a0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
105b0 0a 2d 2d 2d 2d 0d 0a 33 33 0d 0a 0d 0a 71 75 65  .----..33....que
105c0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
105d0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
105e0 20 33 30 20 2b 20 2d 20 2b 20 36 32 20 2b 20 2d   30 + - + 62 + -
105f0 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 2c 20 63   col1 AS col2, c
10600 6f 6c 31 20 2a 20 2b 20 63 6f 6c 32 20 41 53 20  ol1 * + col2 AS 
10610 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
10620 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
10630 30 39 0d 0a 33 30 38 30 0d 0a 2d 38 33 0d 0a 31  09..3080..-83..1
10640 31 37 33 0d 0a 2d 39 39 0d 0a 33 38 38 36 0d 0a  173..-99..3886..
10650 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
10660 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
10670 47 4e 45 44 20 74 79 70 65 3a 20 44 49 56 20 66  GNED type: DIV f
10680 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
10690 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
106a0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 35 35  owsort label-355
106b0 0d 0a 53 45 4c 45 43 54 20 33 38 20 2a 20 43 41  ..SELECT 38 * CA
106c0 53 54 28 20 2b 20 63 6f 6c 32 20 41 53 20 53 49  ST( + col2 AS SI
106d0 47 4e 45 44 20 29 20 2a 20 63 6f 6c 30 20 44 49  GNED ) * col0 DI
106e0 56 20 2b 20 2b 20 63 6f 6c 30 20 2b 20 63 6f 6c  V + + col0 + col
106f0 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
10700 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 36 30 0d  or0..----..1560.
10710 0a 32 32 36 32 0d 0a 38 39 37 0d 0a 0d 0a 73 6b  .2262..897....sk
10720 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
10730 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
10740 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
10750 65 6c 2d 33 35 35 0d 0a 53 45 4c 45 43 54 20 33  el-355..SELECT 3
10760 38 20 2a 20 43 41 53 54 20 28 20 2b 20 63 6f 6c  8 * CAST ( + col
10770 32 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a  2 AS INTEGER ) *
10780 20 63 6f 6c 30 20 2f 20 2b 20 2b 20 63 6f 6c 30   col0 / + + col0
10790 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   + col2 FROM tab
107a0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
107b0 0a 31 35 36 30 0d 0a 32 32 36 32 0d 0a 38 39 37  .1560..2262..897
107c0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
107d0 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
107e0 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
107f0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
10800 61 62 65 6c 2d 33 35 36 0d 0a 53 45 4c 45 43 54  abel-356..SELECT
10810 20 2b 20 63 6f 6c 30 20 44 49 56 20 2b 20 35 31   + col0 DIV + 51
10820 20 2b 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74   + - col1 FROM t
10830 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
10840 2d 0d 0a 2d 31 33 0d 0a 2d 34 0d 0a 2d 34 36 0d  -..-13..-4..-46.
10850 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
10860 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
10870 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
10880 74 20 6c 61 62 65 6c 2d 33 35 36 0d 0a 53 45 4c  t label-356..SEL
10890 45 43 54 20 2b 20 63 6f 6c 30 20 2f 20 2b 20 35  ECT + col0 / + 5
108a0 31 20 2b 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20  1 + - col1 FROM 
108b0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
108c0 2d 2d 0d 0a 2d 31 33 0d 0a 2d 34 0d 0a 2d 34 36  --..-13..-4..-46
108d0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
108e0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
108f0 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
10900 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
10910 61 62 65 6c 2d 33 35 37 0d 0a 53 45 4c 45 43 54  abel-357..SELECT
10920 20 2d 20 43 41 53 54 28 20 2b 20 2d 20 63 6f 6c   - CAST( + - col
10930 31 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20  1 AS SIGNED ) + 
10940 2b 20 34 33 20 2b 20 63 6f 6c 30 20 2a 20 2d 20  + 43 + col0 * - 
10950 2d 20 36 37 20 46 52 4f 4d 20 74 61 62 31 20 41  - 67 FROM tab1 A
10960 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e  S cor0 WHERE ( N
10970 55 4c 4c 20 29 20 3c 3d 20 4e 55 4c 4c 0d 0a 2d  ULL ) <= NULL..-
10980 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ---....skipif my
10990 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
109a0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
109b0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 35 37 0d  wsort label-357.
109c0 0a 53 45 4c 45 43 54 20 2d 20 43 41 53 54 20 28  .SELECT - CAST (
109d0 20 2b 20 2d 20 63 6f 6c 31 20 41 53 20 49 4e 54   + - col1 AS INT
109e0 45 47 45 52 20 29 20 2b 20 2b 20 34 33 20 2b 20  EGER ) + + 43 + 
109f0 63 6f 6c 30 20 2a 20 2d 20 2d 20 36 37 20 46 52  col0 * - - 67 FR
10a00 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
10a10 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 3c  WHERE ( NULL ) <
10a20 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  = NULL..----....
10a30 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
10a40 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
10a50 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41  CT * FROM tab0 A
10a60 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20 63  S cor0 WHERE - c
10a70 6f 6c 32 20 3c 20 2d 20 63 6f 6c 32 0d 0a 2d 2d  ol2 < - col2..--
10a80 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
10a90 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
10aa0 2b 20 38 38 20 41 53 20 63 6f 6c 30 20 46 52 4f  + 88 AS col0 FRO
10ab0 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45 52  M tab0 cor0 WHER
10ac0 45 20 2b 20 63 6f 6c 32 20 3c 3e 20 63 6f 6c 30  E + col2 <> col0
10ad0 20 2a 20 2d 20 35 30 20 2d 20 2b 20 63 6f 6c 31   * - 50 - + col1
10ae0 20 2b 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d   + + col1..----.
10af0 0a 2d 38 38 0d 0a 2d 38 38 0d 0a 2d 38 38 0d 0a  .-88..-88..-88..
10b00 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
10b10 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
10b20 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
10b30 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 3d  WHERE ( NULL ) =
10b40 20 63 6f 6c 32 20 2a 20 2b 20 2d 20 63 6f 6c 30   col2 * + - col0
10b50 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
10b60 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
10b70 54 20 41 4c 4c 20 63 6f 6c 32 20 2a 20 35 37 20  T ALL col2 * 57 
10b80 2d 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 2b 20 32  - - col2 + + + 2
10b90 33 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  3 AS col2 FROM t
10ba0 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab2 cor0..----..
10bb0 31 33 35 37 0d 0a 32 33 34 33 0d 0a 33 33 38 37  1357..2343..3387
10bc0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
10bd0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
10be0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
10bf0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 36 32  owsort label-362
10c00 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d  ..SELECT ALL + M
10c10 41 58 28 20 41 4c 4c 20 2d 20 2b 20 63 6f 6c 31  AX( ALL - + col1
10c20 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d   ) FROM tab2..--
10c30 2d 2d 0d 0a 2d 35 31 0d 0a 0d 0a 73 6b 69 70 69  --..-51....skipi
10c40 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
10c50 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
10c60 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
10c70 33 36 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  362..SELECT ALL 
10c80 2b 20 4d 41 58 20 28 20 41 4c 4c 20 2d 20 2b 20  + MAX ( ALL - + 
10c90 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 32  col1 ) FROM tab2
10ca0 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 0d 0a 6f  ..----..-51....o
10cb0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
10cc0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
10cd0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
10ce0 74 20 6c 61 62 65 6c 2d 33 36 33 0d 0a 53 45 4c  t label-363..SEL
10cf0 45 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  ECT - COUNT( * )
10d00 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
10d10 62 31 20 57 48 45 52 45 20 2d 20 63 6f 6c 31 20  b1 WHERE - col1 
10d20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30  IS NULL..----..0
10d30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
10d40 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
10d50 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
10d60 72 74 20 6c 61 62 65 6c 2d 33 36 33 0d 0a 53 45  rt label-363..SE
10d70 4c 45 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a  LECT - COUNT ( *
10d80 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
10d90 74 61 62 31 20 57 48 45 52 45 20 2d 20 63 6f 6c  tab1 WHERE - col
10da0 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  1 IS NULL..----.
10db0 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .0....onlyif mys
10dc0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
10dd0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
10de0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
10df0 36 34 0d 0a 53 45 4c 45 43 54 20 2d 20 32 34 20  64..SELECT - 24 
10e00 2a 20 43 4f 55 4e 54 28 20 44 49 53 54 49 4e 43  * COUNT( DISTINC
10e10 54 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61  T col1 ) FROM ta
10e20 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 32 0d 0a 0d  b1..----..-72...
10e30 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
10e40 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
10e50 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
10e60 6c 61 62 65 6c 2d 33 36 34 0d 0a 53 45 4c 45 43  label-364..SELEC
10e70 54 20 2d 20 32 34 20 2a 20 43 4f 55 4e 54 20 28  T - 24 * COUNT (
10e80 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 29   DISTINCT col1 )
10e90 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
10ea0 0d 0a 2d 37 32 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-72....query I
10eb0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
10ec0 20 44 49 53 54 49 4e 43 54 20 2d 20 28 20 2d 20   DISTINCT - ( - 
10ed0 63 6f 6c 31 20 29 20 2a 20 2b 20 37 37 20 2d 20  col1 ) * + 77 - 
10ee0 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  + col2 FROM tab2
10ef0 0d 0a 2d 2d 2d 2d 0d 0a 33 39 30 34 0d 0a 35 31  ..----..3904..51
10f00 30 31 0d 0a 35 38 38 39 0d 0a 0d 0a 71 75 65 72  01..5889....quer
10f10 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
10f20 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a  ELECT DISTINCT *
10f30 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
10f40 20 4e 4f 54 20 4e 55 4c 4c 20 3c 3e 20 2b 20 2b   NOT NULL <> + +
10f50 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   col2..----....q
10f60 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
10f70 53 45 4c 45 43 54 20 2d 20 28 20 63 6f 6c 30 20  SELECT - ( col0 
10f80 29 20 2d 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20  ) - + col0 FROM 
10f90 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
10fa0 2d 2d 0d 0a 2d 31 37 34 0d 0a 2d 31 39 34 0d 0a  --..-174..-194..
10fb0 2d 33 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -30....onlyif my
10fc0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
10fd0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
10fe0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
10ff0 33 36 38 0d 0a 53 45 4c 45 43 54 20 2d 20 35 38  368..SELECT - 58
11000 20 2a 20 2b 20 2d 20 34 20 2d 20 2b 20 38 20 2b   * + - 4 - + 8 +
11010 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52   - COUNT( * ) FR
11020 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32  OM tab0..----..2
11030 32 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  21....skipif mys
11040 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
11050 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
11060 73 6f 72 74 20 6c 61 62 65 6c 2d 33 36 38 0d 0a  sort label-368..
11070 53 45 4c 45 43 54 20 2d 20 35 38 20 2a 20 2b 20  SELECT - 58 * + 
11080 2d 20 34 20 2d 20 2b 20 38 20 2b 20 2d 20 43 4f  - 4 - + 8 + - CO
11090 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
110a0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 32 31 0d 0a  ab0..----..221..
110b0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
110c0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
110d0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
110e0 73 6f 72 74 20 6c 61 62 65 6c 2d 33 36 39 0d 0a  sort label-369..
110f0 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 43  SELECT ALL - - C
11100 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c  OUNT( * ) AS col
11110 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
11120 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
11130 61 62 30 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a  ab0 cor1..----..
11140 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
11150 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
11160 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
11170 6f 72 74 20 6c 61 62 65 6c 2d 33 36 39 0d 0a 53  ort label-369..S
11180 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 43 4f  ELECT ALL - - CO
11190 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c  UNT ( * ) AS col
111a0 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
111b0 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
111c0 61 62 30 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a  ab0 cor1..----..
111d0 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  9....query III r
111e0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
111f0 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41  LL * FROM tab1 A
11200 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
11210 20 63 6f 6c 32 20 2b 20 63 6f 6c 32 20 3d 20 2b   col2 + col2 = +
11220 20 63 6f 6c 30 20 2a 20 2b 20 39 37 0d 0a 2d 2d   col0 * + 97..--
11230 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
11240 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31  hing to c6c0a411
11250 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31  1b36d04dbc811a11
11260 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72  e4d54cad....quer
11270 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
11280 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63  ECT DISTINCT + c
11290 6f 6c 31 20 2a 20 36 38 20 46 52 4f 4d 20 74 61  ol1 * 68 FROM ta
112a0 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
112b0 0d 0a 33 34 36 38 0d 0a 34 35 35 36 0d 0a 35 32  ..3468..4556..52
112c0 33 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  36....query I ro
112d0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
112e0 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f  col1 AS col2 FRO
112f0 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48 45 52  M tab2 cor0 WHER
11300 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 42  E NOT NULL NOT B
11310 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20  ETWEEN NULL AND 
11320 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a  ( NULL )..----..
11330 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
11340 74 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20 2d 20  t..SELECT - ( - 
11350 2d 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 30  - col1 ) AS col0
11360 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d   FROM tab0 cor0.
11370 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 32 31 0d 0a  .----..-1..-21..
11380 2d 38 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  -81....query II 
11390 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
113a0 2b 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 2d 20 38  + + col2 * - - 8
113b0 31 2c 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 32  1, col2 * + col2
113c0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
113d0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
113e0 0d 0a 34 37 37 39 0d 0a 33 34 38 31 0d 0a 35 35  ..4779..3481..55
113f0 30 38 0d 0a 34 36 32 34 0d 0a 37 37 37 36 0d 0a  08..4624..7776..
11400 39 32 31 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  9216....onlyif m
11410 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
11420 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65  ax: DECIMAL type
11430 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
11440 6f 72 74 20 6c 61 62 65 6c 2d 33 37 35 0d 0a 53  ort label-375..S
11450 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
11460 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
11470 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
11480 54 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  T - CAST( NULL A
11490 53 20 44 45 43 49 4d 41 4c 20 29 20 49 53 20 4e  S DECIMAL ) IS N
114a0 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d  OT NULL..----..-
114b0 31 35 0d 0a 2d 38 37 0d 0a 2d 39 37 0d 0a 0d 0a  15..-87..-97....
114c0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
114d0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
114e0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
114f0 61 62 65 6c 2d 33 37 35 0d 0a 53 45 4c 45 43 54  abel-375..SELECT
11500 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30   DISTINCT - col0
11510 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
11520 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 43  r0 WHERE NOT - C
11530 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45  AST ( NULL AS RE
11540 41 4c 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  AL ) IS NOT NULL
11550 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 2d 38 37  ..----..-15..-87
11560 0d 0a 2d 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-97....onlyif 
11570 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
11580 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
11590 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  : DIV for intege
115a0 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
115b0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
115c0 62 65 6c 2d 33 37 36 0d 0a 53 45 4c 45 43 54 20  bel-376..SELECT 
115d0 2b 20 63 6f 6c 31 20 44 49 56 20 2d 20 63 6f 6c  + col1 DIV - col
115e0 32 20 2b 20 43 41 53 54 28 20 2d 20 63 6f 6c 30  2 + CAST( - col0
115f0 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20   AS SIGNED ) AS 
11600 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
11610 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
11620 36 0d 0a 2d 38 39 0d 0a 2d 39 37 0d 0a 0d 0a 73  6..-89..-97....s
11630 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
11640 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
11650 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
11660 62 65 6c 2d 33 37 36 0d 0a 53 45 4c 45 43 54 20  bel-376..SELECT 
11670 2b 20 63 6f 6c 31 20 2f 20 2d 20 63 6f 6c 32 20  + col1 / - col2 
11680 2b 20 43 41 53 54 20 28 20 2d 20 63 6f 6c 30 20  + CAST ( - col0 
11690 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20  AS INTEGER ) AS 
116a0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
116b0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
116c0 36 0d 0a 2d 38 39 0d 0a 2d 39 37 0d 0a 0d 0a 73  6..-89..-97....s
116d0 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
116e0 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
116f0 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
11700 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
11710 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
11720 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
11730 44 49 53 54 49 4e 43 54 20 28 20 2b 20 31 35 20  DISTINCT ( + 15 
11740 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  ) col2 FROM tab0
11750 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 0d 0a 71 75  ..----..15....qu
11760 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
11770 53 45 4c 45 43 54 20 2d 20 39 30 20 41 53 20 63  SELECT - 90 AS c
11780 6f 6c 32 2c 20 2b 20 35 35 20 2a 20 2b 20 2d 20  ol2, + 55 * + - 
11790 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f  col1 AS col1 FRO
117a0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39  M tab0..----..-9
117b0 30 0d 0a 2d 31 31 35 35 0d 0a 2d 39 30 0d 0a 2d  0..-1155..-90..-
117c0 34 34 35 35 0d 0a 2d 39 30 0d 0a 2d 35 35 0d 0a  4455..-90..-55..
117d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
117e0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
117f0 43 54 20 2b 20 37 20 41 53 20 63 6f 6c 32 20 46  CT + 7 AS col2 F
11800 52 4f 4d 20 74 61 62 31 2c 20 74 61 62 30 20 41  ROM tab1, tab0 A
11810 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 0d  S cor0..----..7.
11820 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
11830 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
11840 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
11850 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 38 30 0d  wsort label-380.
11860 0a 53 45 4c 45 43 54 20 2d 20 2d 20 4d 49 4e 28  .SELECT - - MIN(
11870 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 29 20 2b 20   ALL - col2 ) + 
11880 36 39 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  69 FROM tab0 AS 
11890 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 30 0d  cor0..----..-30.
118a0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
118b0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
118c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
118d0 74 20 6c 61 62 65 6c 2d 33 38 30 0d 0a 53 45 4c  t label-380..SEL
118e0 45 43 54 20 2d 20 2d 20 4d 49 4e 20 28 20 41 4c  ECT - - MIN ( AL
118f0 4c 20 2d 20 63 6f 6c 32 20 29 20 2b 20 36 39 20  L - col2 ) + 69 
11900 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
11910 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 30 0d 0a 0d 0a  0..----..-30....
11920 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
11930 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
11940 45 44 20 74 79 70 65 3a 20 44 49 56 20 66 6f 72  ED type: DIV for
11950 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
11960 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
11970 73 6f 72 74 20 6c 61 62 65 6c 2d 33 38 31 0d 0a  sort label-381..
11980 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20  SELECT ALL col2 
11990 44 49 56 20 43 41 53 54 28 20 2b 20 28 20 63 6f  DIV CAST( + ( co
119a0 6c 32 20 29 20 2a 20 63 6f 6c 31 20 41 53 20 53  l2 ) * col1 AS S
119b0 49 47 4e 45 44 20 29 20 2d 20 2d 20 32 34 20 2a  IGNED ) - - 24 *
119c0 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52   col2 AS col0 FR
119d0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
119e0 31 32 38 0d 0a 32 33 37 37 0d 0a 32 34 30 0d 0a  128..2377..240..
119f0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
11a00 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
11a10 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
11a20 20 6c 61 62 65 6c 2d 33 38 31 0d 0a 53 45 4c 45   label-381..SELE
11a30 43 54 20 41 4c 4c 20 63 6f 6c 32 20 2f 20 43 41  CT ALL col2 / CA
11a40 53 54 20 28 20 2b 20 28 20 63 6f 6c 32 20 29 20  ST ( + ( col2 ) 
11a50 2a 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45  * col1 AS INTEGE
11a60 52 20 29 20 2d 20 2d 20 32 34 20 2a 20 63 6f 6c  R ) - - 24 * col
11a70 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  2 AS col0 FROM t
11a80 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 32 38 0d  ab0..----..1128.
11a90 0a 32 33 37 37 0d 0a 32 34 30 0d 0a 0d 0a 6f 6e  .2377..240....on
11aa0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
11ab0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
11ac0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
11ad0 20 6c 61 62 65 6c 2d 33 38 32 0d 0a 53 45 4c 45   label-382..SELE
11ae0 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 4d 49  CT DISTINCT - MI
11af0 4e 28 20 2d 20 63 6f 6c 32 20 29 20 63 6f 6c 32  N( - col2 ) col2
11b00 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
11b10 0d 0a 39 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..96....skipif m
11b20 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
11b30 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
11b40 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
11b50 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
11b60 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
11b70 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
11b80 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
11b90 6c 61 62 65 6c 2d 33 38 32 0d 0a 53 45 4c 45 43  label-382..SELEC
11ba0 54 20 44 49 53 54 49 4e 43 54 20 2d 20 4d 49 4e  T DISTINCT - MIN
11bb0 20 28 20 2d 20 63 6f 6c 32 20 29 20 63 6f 6c 32   ( - col2 ) col2
11bc0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
11bd0 0d 0a 39 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..96....query I 
11be0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
11bf0 63 6f 6c 31 20 2a 20 33 20 46 52 4f 4d 20 74 61  col1 * 3 FROM ta
11c00 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 31 0d 0a 31  b1..----..141..1
11c10 35 0d 0a 34 32 0d 0a 0d 0a 71 75 65 72 79 20 49  5..42....query I
11c20 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
11c30 20 2d 20 38 35 20 2d 20 2b 20 63 6f 6c 32 20 2a   - 85 - + col2 *
11c40 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
11c50 0a 2d 2d 2d 2d 0d 0a 2d 31 31 34 33 0d 0a 2d 32  .----..-1143..-2
11c60 36 34 35 0d 0a 2d 34 34 33 35 0d 0a 0d 0a 71 75  645..-4435....qu
11c70 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
11c80 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
11c90 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
11ca0 52 45 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 30  RE col1 * + col0
11cb0 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
11cc0 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
11cd0 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35  hing to c4b42765
11ce0 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35  dff94eaaa46040e5
11cf0 33 37 66 62 34 33 62 37 0d 0a 0d 0a 73 6b 69 70  37fb43b7....skip
11d00 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
11d10 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
11d20 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
11d30 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
11d40 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
11d50 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 38  sort..SELECT - 8
11d60 35 20 2a 20 2b 20 38 31 20 63 6f 6c 31 20 46 52  5 * + 81 col1 FR
11d70 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 28 20  OM tab2 WHERE ( 
11d80 2b 20 33 30 20 2b 20 2d 20 63 6f 6c 31 20 29 20  + 30 + - col1 ) 
11d90 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
11da0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
11db0 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67  CAST syntax: agg
11dc0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53  regate syntax: S
11dd0 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
11de0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
11df0 62 65 6c 2d 33 38 37 0d 0a 53 45 4c 45 43 54 20  bel-387..SELECT 
11e00 2d 20 4d 49 4e 28 20 2b 20 63 6f 6c 32 20 29 20  - MIN( + col2 ) 
11e10 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
11e20 4e 4f 54 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c  NOT + CAST( NULL
11e30 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2d   AS SIGNED ) * -
11e40 20 63 6f 6c 32 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d   col2 <> NULL..-
11e50 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ---..NULL....ski
11e60 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
11e70 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
11e80 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
11e90 6c 2d 33 38 37 0d 0a 53 45 4c 45 43 54 20 2d 20  l-387..SELECT - 
11ea0 4d 49 4e 20 28 20 2b 20 63 6f 6c 32 20 29 20 46  MIN ( + col2 ) F
11eb0 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
11ec0 4f 54 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c  OT + CAST ( NULL
11ed0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20   AS INTEGER ) * 
11ee0 2d 20 63 6f 6c 32 20 3c 3e 20 4e 55 4c 4c 0d 0a  - col2 <> NULL..
11ef0 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  ----..NULL....qu
11f00 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
11f10 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 30  ELECT ALL + col0
11f20 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
11f30 62 32 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  b2 WHERE NOT NUL
11f40 4c 20 3c 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  L <= NULL..----.
11f50 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
11f60 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
11f70 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
11f80 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 38 39 0d  wsort label-389.
11f90 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 33  .SELECT COUNT( 3
11fa0 34 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  4 ) FROM tab0..-
11fb0 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66  ---..3....skipif
11fc0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
11fd0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
11fe0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
11ff0 38 39 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54  89..SELECT COUNT
12000 20 28 20 33 34 20 29 20 46 52 4f 4d 20 74 61 62   ( 34 ) FROM tab
12010 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75  0..----..3....qu
12020 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
12030 45 4c 45 43 54 20 41 4c 4c 20 2d 20 31 32 20 2a  ELECT ALL - 12 *
12040 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20   + col0 AS col2 
12050 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
12060 0a 2d 35 35 32 0d 0a 2d 37 36 38 0d 0a 2d 39 30  .-552..-768..-90
12070 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  0....query III r
12080 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
12090 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
120a0 20 63 6f 6c 32 20 49 4e 20 28 20 63 6f 6c 32 20   col2 IN ( col2 
120b0 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  )..----..9 value
120c0 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63  s hashing to c6c
120d0 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38  0a4111b36d04dbc8
120e0 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d  11a11e4d54cad...
120f0 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
12100 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
12110 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
12120 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
12130 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
12140 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
12150 54 20 2b 20 63 6f 6c 31 20 63 6f 6c 32 20 46 52  T + col1 col2 FR
12160 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f  OM tab1 WHERE NO
12170 54 20 28 20 4e 55 4c 4c 20 29 20 4e 4f 54 20 42  T ( NULL ) NOT B
12180 45 54 57 45 45 4e 20 63 6f 6c 32 20 41 4e 44 20  ETWEEN col2 AND 
12190 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
121a0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
121b0 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
121c0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
121d0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
121e0 39 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  93..SELECT DISTI
121f0 4e 43 54 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 43  NCT + col2 * - C
12200 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
12210 4e 45 44 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20  NED ) col1 FROM 
12220 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab0..----..NULL
12230 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
12240 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
12250 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
12260 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
12270 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
12280 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
12290 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
122a0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
122b0 6c 2d 33 39 33 0d 0a 53 45 4c 45 43 54 20 44 49  l-393..SELECT DI
122c0 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20 2a 20  STINCT + col2 * 
122d0 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
122e0 20 49 4e 54 45 47 45 52 20 29 20 63 6f 6c 31 20   INTEGER ) col1 
122f0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
12300 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .NULL....onlyif 
12310 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
12320 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
12330 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
12340 6c 2d 33 39 34 0d 0a 53 45 4c 45 43 54 20 41 4c  l-394..SELECT AL
12350 4c 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a  L + COUNT( * ) *
12360 20 2b 20 39 31 20 46 52 4f 4d 20 74 61 62 30 0d   + 91 FROM tab0.
12370 0a 2d 2d 2d 2d 0d 0a 32 37 33 0d 0a 0d 0a 73 6b  .----..273....sk
12380 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
12390 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
123a0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
123b0 65 6c 2d 33 39 34 0d 0a 53 45 4c 45 43 54 20 41  el-394..SELECT A
123c0 4c 4c 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29  LL + COUNT ( * )
123d0 20 2a 20 2b 20 39 31 20 46 52 4f 4d 20 74 61 62   * + 91 FROM tab
123e0 30 0d 0a 2d 2d 2d 2d 0d 0a 32 37 33 0d 0a 0d 0a  0..----..273....
123f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
12400 0a 53 45 4c 45 43 54 20 2d 20 39 34 20 41 53 20  .SELECT - 94 AS 
12410 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57  col2 FROM tab1 W
12420 48 45 52 45 20 28 20 2d 20 63 6f 6c 32 20 29 20  HERE ( - col2 ) 
12430 2a 20 63 6f 6c 31 20 3c 20 4e 55 4c 4c 0d 0a 2d  * col1 < NULL..-
12440 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
12450 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
12460 6f 6c 30 20 2a 20 2b 20 63 6f 6c 32 20 46 52 4f  ol0 * + col2 FRO
12470 4d 20 74 61 62 31 20 57 48 45 52 45 20 28 20 4e  M tab1 WHERE ( N
12480 55 4c 4c 20 29 20 3d 20 63 6f 6c 30 20 2b 20 2d  ULL ) = col0 + -
12490 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 30 0d 0a   col2 * - col0..
124a0 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
124b0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
124c0 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72   syntax: DIV for
124d0 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
124e0 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
124f0 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39 37 0d 0a  sort label-397..
12500 53 45 4c 45 43 54 20 2d 20 28 20 2d 20 53 55 4d  SELECT - ( - SUM
12510 28 20 2d 20 63 6f 6c 31 20 29 20 29 20 44 49 56  ( - col1 ) ) DIV
12520 20 31 38 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d   18 FROM tab0..-
12530 2d 2d 2d 0d 0a 2d 35 0d 0a 0d 0a 73 6b 69 70 69  ---..-5....skipi
12540 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
12550 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
12560 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
12570 33 39 37 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20  397..SELECT - ( 
12580 2d 20 53 55 4d 20 28 20 2d 20 63 6f 6c 31 20 29  - SUM ( - col1 )
12590 20 29 20 2f 20 31 38 20 46 52 4f 4d 20 74 61 62   ) / 18 FROM tab
125a0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 0d 0a 0d 0a 71  0..----..-5....q
125b0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
125c0 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c  SELECT ALL - col
125d0 30 20 2d 20 63 6f 6c 31 20 2a 20 63 6f 6c 30 20  0 - col1 * col0 
125e0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
125f0 32 20 57 48 45 52 45 20 63 6f 6c 30 20 49 53 20  2 WHERE col0 IS 
12600 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
12610 2d 32 33 39 32 0d 0a 2d 34 39 39 32 0d 0a 2d 35  -2392..-4992..-5
12620 31 30 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  100....query I r
12630 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
12640 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 2f 20 2d  ISTINCT col2 / -
12650 20 63 6f 6c 30 20 2b 20 2d 20 39 32 20 2a 20 33   col0 + - 92 * 3
12660 35 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  5 FROM tab1 WHER
12670 45 20 63 6f 6c 32 20 2b 20 37 20 49 53 20 4e 55  E col2 + 7 IS NU
12680 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
12690 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
126a0 45 43 54 20 41 4c 4c 20 34 37 20 2b 20 39 36 20  ECT ALL 47 + 96 
126b0 2a 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  * col0 FROM tab1
126c0 0d 0a 2d 2d 2d 2d 0d 0a 34 39 34 33 0d 0a 38 32  ..----..4943..82
126d0 30 37 0d 0a 38 37 38 33 0d 0a 0d 0a 71 75 65 72  07..8783....quer
126e0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
126f0 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 41  ECT ALL - col0 A
12700 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
12710 20 57 48 45 52 45 20 2d 20 28 20 2b 20 63 6f 6c   WHERE - ( + col
12720 31 20 29 20 2a 20 2d 20 63 6f 6c 31 20 49 53 20  1 ) * - col1 IS 
12730 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
12740 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
12750 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
12760 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45   * FROM tab1 WHE
12770 52 45 20 2b 20 33 30 20 3c 3d 20 28 20 2b 20 34  RE + 30 <= ( + 4
12780 34 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  4 )..----..9 val
12790 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
127a0 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64 62  6c0a4111b36d04db
127b0 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64 0d  c811a11e4d54cad.
127c0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
127d0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
127e0 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 2d  ROM tab2 WHERE -
127f0 20 34 34 20 2a 20 37 36 20 2b 20 2d 20 63 6f 6c   44 * 76 + - col
12800 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  2 IS NULL..----.
12810 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
12820 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
12830 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
12840 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
12850 62 65 6c 2d 34 30 34 0d 0a 53 45 4c 45 43 54 20  bel-404..SELECT 
12860 44 49 53 54 49 4e 43 54 20 33 37 20 44 49 56 20  DISTINCT 37 DIV 
12870 33 34 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  34 col0 FROM tab
12880 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 73 6b  0..----..1....sk
12890 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
128a0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69   compatible..ski
128b0 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
128c0 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
128d0 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
128e0 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
128f0 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
12900 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 30 34 0d  wsort label-404.
12910 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
12920 20 33 37 20 2f 20 33 34 20 63 6f 6c 30 20 46 52   37 / 34 col0 FR
12930 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
12940 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
12950 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
12960 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
12970 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 44  : SIGNED type: D
12980 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71  ECIMAL type: ..q
12990 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
129a0 61 62 65 6c 2d 34 30 35 0d 0a 53 45 4c 45 43 54  abel-405..SELECT
129b0 20 44 49 53 54 49 4e 43 54 20 43 41 53 54 28 20   DISTINCT CAST( 
129c0 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 53 49  COUNT( * ) AS SI
129d0 47 4e 45 44 20 29 20 63 6f 6c 31 20 46 52 4f 4d  GNED ) col1 FROM
129e0 20 74 61 62 30 20 57 48 45 52 45 20 2d 20 43 41   tab0 WHERE - CA
129f0 53 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49  ST( NULL AS DECI
12a00 4d 41 4c 20 29 20 4e 4f 54 20 42 45 54 57 45 45  MAL ) NOT BETWEE
12a10 4e 20 2d 20 63 6f 6c 30 20 2f 20 63 6f 6c 31 20  N - col0 / col1 
12a20 2b 20 34 38 20 2a 20 63 6f 6c 30 20 41 4e 44 20  + 48 * col0 AND 
12a30 2b 20 63 6f 6c 30 20 2f 20 28 20 63 6f 6c 31 20  + col0 / ( col1 
12a40 29 20 2d 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d  ) - + col1..----
12a50 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
12a60 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
12a70 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
12a80 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
12a90 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
12aa0 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
12ab0 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
12ac0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
12ad0 61 62 65 6c 2d 34 30 35 0d 0a 53 45 4c 45 43 54  abel-405..SELECT
12ae0 20 44 49 53 54 49 4e 43 54 20 43 41 53 54 20 28   DISTINCT CAST (
12af0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
12b00 49 4e 54 45 47 45 52 20 29 20 63 6f 6c 31 20 46  INTEGER ) col1 F
12b10 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 2d  ROM tab0 WHERE -
12b20 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
12b30 52 45 41 4c 20 29 20 4e 4f 54 20 42 45 54 57 45  REAL ) NOT BETWE
12b40 45 4e 20 2d 20 63 6f 6c 30 20 2f 20 63 6f 6c 31  EN - col0 / col1
12b50 20 2b 20 34 38 20 2a 20 63 6f 6c 30 20 41 4e 44   + 48 * col0 AND
12b60 20 2b 20 63 6f 6c 30 20 2f 20 28 20 63 6f 6c 31   + col0 / ( col1
12b70 20 29 20 2d 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d   ) - + col1..---
12b80 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -..0....onlyif m
12b90 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
12ba0 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
12bb0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
12bc0 72 74 20 6c 61 62 65 6c 2d 34 30 36 0d 0a 53 45  rt label-406..SE
12bd0 4c 45 43 54 20 43 41 53 54 28 20 4e 55 4c 4c 20  LECT CAST( NULL 
12be0 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2b 20  AS SIGNED ) + + 
12bf0 63 6f 6c 32 20 2a 20 37 38 20 41 53 20 63 6f 6c  col2 * 78 AS col
12c00 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
12c10 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
12c20 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .NULL..NULL....s
12c30 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
12c40 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
12c50 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
12c60 62 65 6c 2d 34 30 36 0d 0a 53 45 4c 45 43 54 20  bel-406..SELECT 
12c70 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
12c80 4e 54 45 47 45 52 20 29 20 2b 20 2b 20 63 6f 6c  NTEGER ) + + col
12c90 32 20 2a 20 37 38 20 41 53 20 63 6f 6c 30 20 46  2 * 78 AS col0 F
12ca0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
12cb0 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
12cc0 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79  LL..NULL....only
12cd0 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
12ce0 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
12cf0 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
12d00 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 30 37  owsort label-407
12d10 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
12d20 54 20 38 38 20 44 49 56 20 31 35 20 41 53 20 63  T 88 DIV 15 AS c
12d30 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
12d40 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 0d 0a   cor0..----..5..
12d50 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
12d60 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
12d70 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
12d80 20 6c 61 62 65 6c 2d 34 30 37 0d 0a 53 45 4c 45   label-407..SELE
12d90 43 54 20 44 49 53 54 49 4e 43 54 20 38 38 20 2f  CT DISTINCT 88 /
12da0 20 31 35 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   15 AS col0 FROM
12db0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
12dc0 2d 2d 2d 0d 0a 35 0d 0a 0d 0a 71 75 65 72 79 20  ---..5....query 
12dd0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
12de0 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
12df0 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
12e00 45 20 4e 4f 54 20 28 20 2d 20 63 6f 6c 30 20 2f  E NOT ( - col0 /
12e10 20 63 6f 6c 30 20 29 20 3c 3e 20 4e 55 4c 4c 0d   col0 ) <> NULL.
12e20 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
12e30 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
12e40 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
12e50 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
12e60 6f 72 74 20 6c 61 62 65 6c 2d 34 30 39 0d 0a 53  ort label-409..S
12e70 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 2b  ELECT ALL col0 +
12e80 20 2d 20 43 41 53 54 28 20 2b 20 63 6f 6c 32 20   - CAST( + col2 
12e90 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2b 20  AS SIGNED ) * + 
12ea0 36 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  62 AS col2 FROM 
12eb0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
12ec0 2d 2d 0d 0a 2d 33 35 37 33 0d 0a 2d 34 31 32 35  --..-3573..-4125
12ed0 0d 0a 2d 35 39 30 31 0d 0a 0d 0a 73 6b 69 70 69  ..-5901....skipi
12ee0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
12ef0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
12f00 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
12f10 34 30 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  409..SELECT ALL 
12f20 63 6f 6c 30 20 2b 20 2d 20 43 41 53 54 20 28 20  col0 + - CAST ( 
12f30 2b 20 63 6f 6c 32 20 41 53 20 49 4e 54 45 47 45  + col2 AS INTEGE
12f40 52 20 29 20 2a 20 2b 20 36 32 20 41 53 20 63 6f  R ) * + 62 AS co
12f50 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
12f60 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 35 37  cor0..----..-357
12f70 33 0d 0a 2d 34 31 32 35 0d 0a 2d 35 39 30 31 0d  3..-4125..-5901.
12f80 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
12f90 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
12fa0 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65  ax: DIV for inte
12fb0 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
12fc0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
12fd0 6c 61 62 65 6c 2d 34 31 30 0d 0a 53 45 4c 45 43  label-410..SELEC
12fe0 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b  T - COUNT( * ) +
12ff0 20 2d 20 35 30 20 44 49 56 20 2d 20 4d 41 58 28   - 50 DIV - MAX(
13000 20 2b 20 32 32 20 2a 20 28 20 2d 20 38 37 20 29   + 22 * ( - 87 )
13010 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
13020 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
13030 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66  --..-3....skipif
13040 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
13050 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
13060 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
13070 31 30 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55  10..SELECT - COU
13080 4e 54 20 28 20 2a 20 29 20 2b 20 2d 20 35 30 20  NT ( * ) + - 50 
13090 2f 20 2d 20 4d 41 58 20 28 20 2b 20 32 32 20 2a  / - MAX ( + 22 *
130a0 20 28 20 2d 20 38 37 20 29 20 29 20 41 53 20 63   ( - 87 ) ) AS c
130b0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
130c0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d   cor0..----..-3.
130d0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
130e0 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20 2b  rt..SELECT - ( +
130f0 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 32 20   col1 ) AS col2 
13100 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
13110 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 31 34  0 WHERE NOT - 14
13120 20 2b 20 2d 20 63 6f 6c 30 20 49 4e 20 28 20 2b   + - col0 IN ( +
13130 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 2d   col2 )..----..-
13140 31 34 0d 0a 2d 34 37 0d 0a 2d 35 0d 0a 0d 0a 71  14..-47..-5....q
13150 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
13160 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 33 35 20  SELECT ALL - 35 
13170 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57  FROM tab0 cor0 W
13180 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 31 20  HERE NOT + col1 
13190 49 4e 20 28 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d  IN ( col2 )..---
131a0 2d 0d 0a 2d 33 35 0d 0a 2d 33 35 0d 0a 2d 33 35  -..-35..-35..-35
131b0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
131c0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20  ort..SELECT + ( 
131d0 38 33 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41  83 ) FROM tab2 A
131e0 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  S cor0 CROSS JOI
131f0 4e 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20  N tab2..----..9 
13200 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
13210 6f 20 31 38 66 34 30 35 63 33 31 61 30 66 62 34  o 18f405c31a0fb4
13220 37 63 65 33 63 63 39 66 37 65 66 66 61 38 38 35  7ce3cc9f7effa885
13230 35 63 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  5c....query III 
13240 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
13250 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
13260 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
13270 52 45 20 28 20 2b 20 39 32 20 2a 20 2d 20 63 6f  RE ( + 92 * - co
13280 6c 30 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  l0 ) IS NULL..--
13290 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  --....query III 
132a0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
132b0 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  * FROM tab2 AS c
132c0 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f  or0 WHERE NOT co
132d0 6c 31 20 2b 20 2d 20 31 33 20 49 4e 20 28 20 38  l1 + - 13 IN ( 8
132e0 30 20 2a 20 38 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39  0 * 8 )..----..9
132f0 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
13300 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38  to 75c998aa53ac8
13310 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30  3218cbf2feb962d0
13320 61 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  a49....onlyif my
13330 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
13340 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
13350 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
13360 34 31 36 0d 0a 53 45 4c 45 43 54 20 2b 20 34 32  416..SELECT + 42
13370 20 2a 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52   * COUNT( * ) FR
13380 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
13390 0a 2d 2d 2d 2d 0d 0a 31 32 36 0d 0a 0d 0a 73 6b  .----..126....sk
133a0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
133b0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
133c0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
133d0 65 6c 2d 34 31 36 0d 0a 53 45 4c 45 43 54 20 2b  el-416..SELECT +
133e0 20 34 32 20 2a 20 43 4f 55 4e 54 20 28 20 2a 20   42 * COUNT ( * 
133f0 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  ) FROM tab0 AS c
13400 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 36 0d 0a  or0..----..126..
13410 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
13420 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
13430 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
13440 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
13450 65 6c 2d 34 31 37 0d 0a 53 45 4c 45 43 54 20 44  el-417..SELECT D
13460 49 53 54 49 4e 43 54 20 2b 20 2b 20 63 6f 6c 31  ISTINCT + + col1
13470 20 44 49 56 20 35 33 20 41 53 20 63 6f 6c 31 20   DIV 53 AS col1 
13480 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
13490 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31 0d 0a 0d  0..----..0..1...
134a0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
134b0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
134c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
134d0 6c 61 62 65 6c 2d 34 31 37 0d 0a 53 45 4c 45 43  label-417..SELEC
134e0 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 63  T DISTINCT + + c
134f0 6f 6c 31 20 2f 20 35 33 20 41 53 20 63 6f 6c 31  ol1 / 53 AS col1
13500 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
13510 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31 0d 0a  r0..----..0..1..
13520 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
13530 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67   CAST syntax: ag
13540 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
13550 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
13560 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
13570 61 62 65 6c 2d 34 31 38 0d 0a 53 45 4c 45 43 54  abel-418..SELECT
13580 20 43 41 53 54 28 20 43 4f 55 4e 54 28 20 2a 20   CAST( COUNT( * 
13590 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20  ) AS SIGNED ) * 
135a0 2d 20 34 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  - 4 FROM tab1 co
135b0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 0d 0a 0d  r0..----..-12...
135c0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
135d0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
135e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
135f0 6c 61 62 65 6c 2d 34 31 38 0d 0a 53 45 4c 45 43  label-418..SELEC
13600 54 20 43 41 53 54 20 28 20 43 4f 55 4e 54 20 28  T CAST ( COUNT (
13610 20 2a 20 29 20 41 53 20 49 4e 54 45 47 45 52 20   * ) AS INTEGER 
13620 29 20 2a 20 2d 20 34 20 46 52 4f 4d 20 74 61 62  ) * - 4 FROM tab
13630 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  1 cor0..----..-1
13640 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  2....query I row
13650 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 28  sort..SELECT + (
13660 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 32 20   col0 ) AS col2 
13670 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57  FROM tab0 cor0 W
13680 48 45 52 45 20 4e 4f 54 20 33 34 20 2b 20 2b 20  HERE NOT 34 + + 
13690 63 6f 6c 31 20 49 4e 20 28 20 2b 20 63 6f 6c 31  col1 IN ( + col1
136a0 20 2b 20 2b 20 34 37 20 29 0d 0a 2d 2d 2d 2d 0d   + + 47 )..----.
136b0 0a 31 35 0d 0a 38 37 0d 0a 39 37 0d 0a 0d 0a 71  .15..87..97....q
136c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
136d0 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20  SELECT ALL col1 
136e0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
136f0 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
13700 4e 4f 54 20 38 37 20 3c 3e 20 2b 20 63 6f 6c 30  NOT 87 <> + col0
13710 20 2a 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d   * col1..----...
13720 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
13730 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 63 6f 6c  ..SELECT + - col
13740 30 20 2a 20 32 30 20 41 53 20 63 6f 6c 31 20 46  0 * 20 AS col1 F
13750 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d  ROM tab1 cor0..-
13760 2d 2d 2d 0d 0a 2d 31 30 32 30 0d 0a 2d 31 37 30  ---..-1020..-170
13770 30 0d 0a 2d 31 38 32 30 0d 0a 0d 0a 6f 6e 6c 79  0..-1820....only
13780 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
13790 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
137a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
137b0 61 62 65 6c 2d 34 32 32 0d 0a 53 45 4c 45 43 54  abel-422..SELECT
137c0 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20   + COUNT( * ) * 
137d0 2b 20 2b 20 31 34 20 41 53 20 63 6f 6c 30 20 46  + + 14 AS col0 F
137e0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
137f0 34 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  42....skipif mys
13800 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
13810 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
13820 73 6f 72 74 20 6c 61 62 65 6c 2d 34 32 32 0d 0a  sort label-422..
13830 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20 28  SELECT + COUNT (
13840 20 2a 20 29 20 2a 20 2b 20 2b 20 31 34 20 41 53   * ) * + + 14 AS
13850 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
13860 0a 2d 2d 2d 2d 0d 0a 34 32 0d 0a 0d 0a 6f 6e 6c  .----..42....onl
13870 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
13880 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
13890 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
138a0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
138b0 34 32 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  423..SELECT ALL 
138c0 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  * FROM tab2 WHER
138d0 45 20 4e 4f 54 20 28 20 2b 20 35 36 20 2f 20 63  E NOT ( + 56 / c
138e0 6f 6c 32 20 2d 20 43 41 53 54 28 20 2d 20 63 6f  ol2 - CAST( - co
138f0 6c 30 20 41 53 20 53 49 47 4e 45 44 20 29 20 29  l0 AS SIGNED ) )
13900 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
13910 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
13920 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63   to 75c998aa53ac
13930 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64  83218cbf2feb962d
13940 30 61 34 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  0a49....skipif m
13950 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
13960 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49  tible..query III
13970 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
13980 32 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  23..SELECT ALL *
13990 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
139a0 20 4e 4f 54 20 28 20 2b 20 35 36 20 2f 20 63 6f   NOT ( + 56 / co
139b0 6c 32 20 2d 20 43 41 53 54 20 28 20 2d 20 63 6f  l2 - CAST ( - co
139c0 6c 30 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  l0 AS INTEGER ) 
139d0 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  ) IS NULL..----.
139e0 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
139f0 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61  g to 75c998aa53a
13a00 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32  c83218cbf2feb962
13a10 64 30 61 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  d0a49....onlyif 
13a20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
13a30 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
13a40 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
13a50 6c 2d 34 32 34 0d 0a 53 45 4c 45 43 54 20 43 4f  l-424..SELECT CO
13a60 55 4e 54 28 20 2a 20 29 20 2b 20 2d 20 2d 20 53  UNT( * ) + - - S
13a70 55 4d 28 20 44 49 53 54 49 4e 43 54 20 37 30 20  UM( DISTINCT 70 
13a80 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  ) FROM tab2..---
13a90 2d 0d 0a 37 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..73....skipif 
13aa0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
13ab0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
13ac0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 32  rowsort label-42
13ad0 34 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20  4..SELECT COUNT 
13ae0 28 20 2a 20 29 20 2b 20 2d 20 2d 20 53 55 4d 20  ( * ) + - - SUM 
13af0 28 20 44 49 53 54 49 4e 43 54 20 37 30 20 29 20  ( DISTINCT 70 ) 
13b00 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
13b10 0a 37 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .73....query I r
13b20 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
13b30 20 63 6f 6c 32 20 2b 20 2d 20 34 34 20 41 53 20   col2 + - 44 AS 
13b40 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col2 FROM tab1..
13b50 2d 2d 2d 2d 0d 0a 2d 31 30 33 0d 0a 2d 31 31 32  ----..-103..-112
13b60 0d 0a 2d 31 34 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..-140....onlyif
13b70 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
13b80 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
13b90 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
13ba0 65 6c 2d 34 32 36 0d 0a 53 45 4c 45 43 54 20 43  el-426..SELECT C
13bb0 4f 55 4e 54 28 20 2a 20 29 20 2b 20 38 34 20 2b  OUNT( * ) + 84 +
13bc0 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53   - COUNT( * ) AS
13bd0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d   col1 FROM tab0.
13be0 0a 2d 2d 2d 2d 0d 0a 38 34 0d 0a 0d 0a 73 6b 69  .----..84....ski
13bf0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
13c00 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
13c10 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
13c20 6c 2d 34 32 36 0d 0a 53 45 4c 45 43 54 20 43 4f  l-426..SELECT CO
13c30 55 4e 54 20 28 20 2a 20 29 20 2b 20 38 34 20 2b  UNT ( * ) + 84 +
13c40 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41   - COUNT ( * ) A
13c50 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
13c60 0d 0a 2d 2d 2d 2d 0d 0a 38 34 0d 0a 0d 0a 6f 6e  ..----..84....on
13c70 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
13c80 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
13c90 61 74 65 20 73 79 6e 74 61 78 3a 20 44 45 43 49  ate syntax: DECI
13ca0 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  MAL type: ..quer
13cb0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
13cc0 6c 2d 34 32 37 0d 0a 53 45 4c 45 43 54 20 2b 20  l-427..SELECT + 
13cd0 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 36 37 20  COUNT( * ) * 67 
13ce0 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
13cf0 4e 4f 54 20 4e 55 4c 4c 20 3c 20 2d 20 43 41 53  NOT NULL < - CAS
13d00 54 28 20 2b 20 31 20 41 53 20 44 45 43 49 4d 41  T( + 1 AS DECIMA
13d10 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  L )..----..0....
13d20 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
13d30 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
13d40 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
13d50 61 62 65 6c 2d 34 32 37 0d 0a 53 45 4c 45 43 54  abel-427..SELECT
13d60 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a   + COUNT ( * ) *
13d70 20 36 37 20 46 52 4f 4d 20 74 61 62 31 20 57 48   67 FROM tab1 WH
13d80 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3c 20 2d  ERE NOT NULL < -
13d90 20 43 41 53 54 20 28 20 2b 20 31 20 41 53 20 52   CAST ( + 1 AS R
13da0 45 41 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a  EAL )..----..0..
13db0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
13dc0 74 0d 0a 53 45 4c 45 43 54 20 2d 20 31 32 20 2b  t..SELECT - 12 +
13dd0 20 38 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d   80 FROM tab2..-
13de0 2d 2d 2d 0d 0a 36 38 0d 0a 36 38 0d 0a 36 38 0d  ---..68..68..68.
13df0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
13e00 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61  # CAST syntax: a
13e10 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
13e20 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
13e30 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
13e40 6c 61 62 65 6c 2d 34 32 39 0d 0a 53 45 4c 45 43  label-429..SELEC
13e50 54 20 44 49 53 54 49 4e 43 54 20 4d 49 4e 28 20  T DISTINCT MIN( 
13e60 41 4c 4c 20 2b 20 2d 20 28 20 2d 20 43 41 53 54  ALL + - ( - CAST
13e70 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
13e80 20 29 20 29 20 29 20 41 53 20 63 6f 6c 32 20 46   ) ) ) AS col2 F
13e90 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
13ea0 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
13eb0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
13ec0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
13ed0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 32 39  owsort label-429
13ee0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
13ef0 54 20 4d 49 4e 20 28 20 41 4c 4c 20 2b 20 2d 20  T MIN ( ALL + - 
13f00 28 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  ( - CAST ( NULL 
13f10 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20 29  AS INTEGER ) ) )
13f20 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
13f30 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b2..----..NULL..
13f40 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
13f50 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
13f60 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
13f70 73 6f 72 74 20 6c 61 62 65 6c 2d 34 33 30 0d 0a  sort label-430..
13f80 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
13f90 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 33  + COUNT( * ) + 3
13fa0 34 20 2a 20 2b 20 33 36 20 46 52 4f 4d 20 74 61  4 * + 36 FROM ta
13fb0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 32 32 37 0d 0a  b1..----..1227..
13fc0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
13fd0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
13fe0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
13ff0 20 6c 61 62 65 6c 2d 34 33 30 0d 0a 53 45 4c 45   label-430..SELE
14000 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 4f  CT DISTINCT + CO
14010 55 4e 54 20 28 20 2a 20 29 20 2b 20 33 34 20 2a  UNT ( * ) + 34 *
14020 20 2b 20 33 36 20 46 52 4f 4d 20 74 61 62 31 0d   + 36 FROM tab1.
14030 0a 2d 2d 2d 2d 0d 0a 31 32 32 37 0d 0a 0d 0a 6f  .----..1227....o
14040 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
14050 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
14060 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
14070 74 20 6c 61 62 65 6c 2d 34 33 31 0d 0a 53 45 4c  t label-431..SEL
14080 45 43 54 20 44 49 53 54 49 4e 43 54 20 35 35 20  ECT DISTINCT 55 
14090 2a 20 53 55 4d 28 20 63 6f 6c 32 20 29 20 46 52  * SUM( col2 ) FR
140a0 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
140b0 54 20 28 20 2d 20 34 31 20 2a 20 2b 20 35 31 20  T ( - 41 * + 51 
140c0 2b 20 2d 20 39 38 20 29 20 49 53 20 4e 4f 54 20  + - 98 ) IS NOT 
140d0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  NULL..----..NULL
140e0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
140f0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
14100 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
14110 72 74 20 6c 61 62 65 6c 2d 34 33 31 0d 0a 53 45  rt label-431..SE
14120 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 35 35  LECT DISTINCT 55
14130 20 2a 20 53 55 4d 20 28 20 63 6f 6c 32 20 29 20   * SUM ( col2 ) 
14140 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
14150 4e 4f 54 20 28 20 2d 20 34 31 20 2a 20 2b 20 35  NOT ( - 41 * + 5
14160 31 20 2b 20 2d 20 39 38 20 29 20 49 53 20 4e 4f  1 + - 98 ) IS NO
14170 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  T NULL..----..NU
14180 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  LL....query I ro
14190 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
141a0 53 54 49 4e 43 54 20 39 30 20 41 53 20 63 6f 6c  STINCT 90 AS col
141b0 30 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  0 FROM tab1 WHER
141c0 45 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 37 39 20  E - col0 + + 79 
141d0 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
141e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
141f0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d  ..SELECT ALL - -
14200 20 38 33 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   83 AS col2 FROM
14210 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
14220 2d 2d 2d 0d 0a 38 33 0d 0a 38 33 0d 0a 38 33 0d  ---..83..83..83.
14230 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
14240 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
14250 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
14260 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
14270 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
14280 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
14290 45 43 54 20 44 49 53 54 49 4e 43 54 20 39 32 20  ECT DISTINCT 92 
142a0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 63  col2 FROM tab0 c
142b0 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 3e  or0 WHERE NULL >
142c0 20 28 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d   ( col0 )..----.
142d0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
142e0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
142f0 4e 43 54 20 35 36 20 2b 20 2d 20 35 39 20 46 52  NCT 56 + - 59 FR
14300 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
14310 57 48 45 52 45 20 38 31 20 49 53 20 4e 55 4c 4c  WHERE 81 IS NULL
14320 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
14330 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
14340 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
14350 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
14360 73 6f 72 74 20 6c 61 62 65 6c 2d 34 33 36 0d 0a  sort label-436..
14370 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
14380 2b 20 35 20 44 49 56 20 63 6f 6c 30 20 44 49 56  + 5 DIV col0 DIV
14390 20 63 6f 6c 32 20 2b 20 28 20 2b 20 28 20 63 6f   col2 + ( + ( co
143a0 6c 32 20 29 20 29 20 2b 20 2d 20 33 38 20 2a 20  l2 ) ) + - 38 * 
143b0 39 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  90 FROM tab0 cor
143c0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 33 32 31 0d 0a  0..----..-3321..
143d0 2d 33 33 37 33 0d 0a 2d 33 34 31 30 0d 0a 0d 0a  -3373..-3410....
143e0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
143f0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
14400 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
14410 61 62 65 6c 2d 34 33 36 0d 0a 53 45 4c 45 43 54  abel-436..SELECT
14420 20 44 49 53 54 49 4e 43 54 20 2b 20 35 20 2f 20   DISTINCT + 5 / 
14430 63 6f 6c 30 20 2f 20 63 6f 6c 32 20 2b 20 28 20  col0 / col2 + ( 
14440 2b 20 28 20 63 6f 6c 32 20 29 20 29 20 2b 20 2d  + ( col2 ) ) + -
14450 20 33 38 20 2a 20 39 30 20 46 52 4f 4d 20 74 61   38 * 90 FROM ta
14460 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b0 cor0..----..-
14470 33 33 32 31 0d 0a 2d 33 33 37 33 0d 0a 2d 33 34  3321..-3373..-34
14480 31 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  10....query II r
14490 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
144a0 4c 4c 20 63 6f 6c 30 2c 20 2b 20 36 36 20 41 53  LL col0, + 66 AS
144b0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
144c0 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 36 36 0d 0a 38  .----..15..66..8
144d0 37 0d 0a 36 36 0d 0a 39 37 0d 0a 36 36 0d 0a 0d  7..66..97..66...
144e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
144f0 0d 0a 53 45 4c 45 43 54 20 2d 20 39 35 20 46 52  ..SELECT - 95 FR
14500 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
14510 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20  CROSS JOIN tab2 
14520 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  cor1..----..9 va
14530 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
14540 31 63 37 39 33 34 64 62 30 36 33 32 63 31 32 33  1c7934db0632c123
14550 33 33 32 63 34 33 66 31 37 62 36 36 31 64 36 63  332c43f17b661d6c
14560 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
14570 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
14580 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
14590 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
145a0 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
145b0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
145c0 4c 45 43 54 20 2b 20 2b 20 63 6f 6c 30 20 2b 20  LECT + + col0 + 
145d0 63 6f 6c 32 20 63 6f 6c 31 20 46 52 4f 4d 20 74  col2 col1 FROM t
145e0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
145f0 2d 0d 0a 31 30 34 0d 0a 31 33 33 0d 0a 36 39 0d  -..104..133..69.
14600 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
14610 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
14620 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
14630 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 34 30 0d  wsort label-440.
14640 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28  .SELECT + COUNT(
14650 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41   * ) FROM tab0 A
14660 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 63  S cor0 WHERE ( c
14670 6f 6c 30 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c  ol0 ) IS NOT NUL
14680 4c 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b  L..----..3....sk
14690 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
146a0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
146b0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
146c0 65 6c 2d 34 34 30 0d 0a 53 45 4c 45 43 54 20 2b  el-440..SELECT +
146d0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f   COUNT ( * ) FRO
146e0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
146f0 48 45 52 45 20 28 20 63 6f 6c 30 20 29 20 49 53  HERE ( col0 ) IS
14700 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
14710 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .3....query I ro
14720 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
14730 63 6f 6c 31 20 2b 20 2d 20 2d 20 28 20 2b 20 63  col1 + - - ( + c
14740 6f 6c 32 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ol2 ) AS col0 FR
14750 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
14760 0a 2d 2d 2d 2d 0d 0a 2d 32 38 0d 0a 2d 33 37 0d  .----..-28..-37.
14770 0a 2d 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .-9....onlyif my
14780 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
14790 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
147a0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
147b0 34 34 32 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20  442..SELECT - - 
147c0 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2b 20 53  COUNT( * ) + + S
147d0 55 4d 28 20 2b 20 28 20 2d 20 63 6f 6c 31 20 29  UM( + ( - col1 )
147e0 20 29 20 2d 20 2d 20 37 30 20 63 6f 6c 32 20 46   ) - - 70 col2 F
147f0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
14800 0d 0a 2d 2d 2d 2d 0d 0a 37 0d 0a 0d 0a 73 6b 69  ..----..7....ski
14810 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
14820 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70  compatible..skip
14830 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
14840 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
14850 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
14860 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
14870 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
14880 73 6f 72 74 20 6c 61 62 65 6c 2d 34 34 32 0d 0a  sort label-442..
14890 53 45 4c 45 43 54 20 2d 20 2d 20 43 4f 55 4e 54  SELECT - - COUNT
148a0 20 28 20 2a 20 29 20 2b 20 2b 20 53 55 4d 20 28   ( * ) + + SUM (
148b0 20 2b 20 28 20 2d 20 63 6f 6c 31 20 29 20 29 20   + ( - col1 ) ) 
148c0 2d 20 2d 20 37 30 20 63 6f 6c 32 20 46 52 4f 4d  - - 70 col2 FROM
148d0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
148e0 2d 2d 2d 0d 0a 37 0d 0a 0d 0a 71 75 65 72 79 20  ---..7....query 
148f0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
14900 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ECT * FROM tab1 
14910 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20  AS cor0 WHERE + 
14920 33 31 20 2a 20 2b 20 32 38 20 2b 20 2b 20 63 6f  31 * + 28 + + co
14930 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  l2 IS NOT NULL..
14940 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
14950 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34  ashing to c6c0a4
14960 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61  111b36d04dbc811a
14970 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75  11e4d54cad....qu
14980 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
14990 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
149a0 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 31 20 2b   col0 + - col1 +
149b0 20 2d 20 38 20 2d 20 2b 20 63 6f 6c 32 20 46 52   - 8 - + col2 FR
149c0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
149d0 0a 2d 2d 2d 2d 0d 0a 2d 31 32 36 0d 0a 2d 31 35  .----..-126..-15
149e0 31 0d 0a 2d 32 30 35 0d 0a 0d 0a 6f 6e 6c 79 69  1..-205....onlyi
149f0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
14a00 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
14a10 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
14a20 62 65 6c 2d 34 34 35 0d 0a 53 45 4c 45 43 54 20  bel-445..SELECT 
14a30 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 38 31 20  DISTINCT + - 81 
14a40 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  + COUNT( * ) AS 
14a50 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
14a60 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37  S cor0..----..-7
14a70 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  8....skipif mysq
14a80 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
14a90 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
14aa0 6f 72 74 20 6c 61 62 65 6c 2d 34 34 35 0d 0a 53  ort label-445..S
14ab0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
14ac0 20 2d 20 38 31 20 2b 20 43 4f 55 4e 54 20 28 20   - 81 + COUNT ( 
14ad0 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  * ) AS col1 FROM
14ae0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
14af0 2d 2d 2d 0d 0a 2d 37 38 0d 0a 0d 0a 71 75 65 72  ---..-78....quer
14b00 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
14b10 45 43 54 20 2b 20 2d 20 63 6f 6c 30 20 41 53 20  ECT + - col0 AS 
14b20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41  col2 FROM tab1 A
14b30 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 63  S cor0 WHERE + c
14b40 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ol1 IS NULL..---
14b50 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
14b60 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
14b70 20 2d 20 28 20 2d 20 35 39 20 29 20 2a 20 63 6f   - ( - 59 ) * co
14b80 6c 32 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c  l2 + col2 AS col
14b90 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
14ba0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 38 30 0d  or0..----..1380.
14bb0 0a 32 34 30 30 0d 0a 33 34 38 30 0d 0a 0d 0a 71  .2400..3480....q
14bc0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
14bd0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
14be0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 57  col0 FROM tab1 W
14bf0 48 45 52 45 20 63 6f 6c 30 20 2f 20 2b 20 2b 20  HERE col0 / + + 
14c00 63 6f 6c 32 20 2b 20 28 20 2b 20 63 6f 6c 32 20  col2 + ( + col2 
14c10 29 20 49 4e 20 28 20 2d 20 63 6f 6c 31 20 29 0d  ) IN ( - col1 ).
14c20 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
14c30 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
14c40 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
14c50 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
14c60 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
14c70 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
14c80 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
14c90 43 54 20 39 35 20 2a 20 39 39 20 2d 20 2b 20 2d  CT 95 * 99 - + -
14ca0 20 63 6f 6c 31 20 2b 20 2b 20 34 37 20 63 6f 6c   col1 + + 47 col
14cb0 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
14cc0 2d 0d 0a 39 34 35 33 0d 0a 39 34 37 33 0d 0a 39  -..9453..9473..9
14cd0 35 33 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  533....query I r
14ce0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
14cf0 4c 4c 20 2d 20 34 20 2a 20 35 33 20 46 52 4f 4d  LL - 4 * 53 FROM
14d00 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31   tab1..----..-21
14d10 32 0d 0a 2d 32 31 32 0d 0a 2d 32 31 32 0d 0a 0d  2..-212..-212...
14d20 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
14d30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
14d40 54 20 63 6f 6c 31 20 2a 20 2b 20 36 20 41 53 20  T col1 * + 6 AS 
14d50 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 57  col0 FROM tab0 W
14d60 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 42 45  HERE NOT NULL BE
14d70 54 57 45 45 4e 20 34 20 41 4e 44 20 28 20 4e 55  TWEEN 4 AND ( NU
14d80 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  LL )..----....on
14d90 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
14da0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
14db0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
14dc0 20 6c 61 62 65 6c 2d 34 35 32 0d 0a 53 45 4c 45   label-452..SELE
14dd0 43 54 20 28 20 2d 20 43 4f 55 4e 54 28 20 2a 20  CT ( - COUNT( * 
14de0 29 20 29 20 2d 20 32 39 20 46 52 4f 4d 20 74 61  ) ) - 29 FROM ta
14df0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 32 0d 0a 0d  b1..----..-32...
14e00 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
14e10 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
14e20 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
14e30 6c 61 62 65 6c 2d 34 35 32 0d 0a 53 45 4c 45 43  label-452..SELEC
14e40 54 20 28 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  T ( - COUNT ( * 
14e50 29 20 29 20 2d 20 32 39 20 46 52 4f 4d 20 74 61  ) ) - 29 FROM ta
14e60 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 32 0d 0a 0d  b1..----..-32...
14e70 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
14e80 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
14e90 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
14ea0 6f 72 74 20 6c 61 62 65 6c 2d 34 35 33 0d 0a 53  ort label-453..S
14eb0 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e  ELECT ALL + COUN
14ec0 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46  T( * ) AS col0 F
14ed0 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 63  ROM tab1 WHERE c
14ee0 6f 6c 32 20 2b 20 2d 20 63 6f 6c 32 20 49 53 20  ol2 + - col2 IS 
14ef0 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
14f00 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
14f10 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
14f20 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
14f30 6f 72 74 20 6c 61 62 65 6c 2d 34 35 33 0d 0a 53  ort label-453..S
14f40 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e  ELECT ALL + COUN
14f50 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20  T ( * ) AS col0 
14f60 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
14f70 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 32 20 49 53  col2 + - col2 IS
14f80 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
14f90 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  .3....query III 
14fa0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
14fb0 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
14fc0 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 32  tab1 WHERE NOT 2
14fd0 32 20 3c 3d 20 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d  2 <= - col0..---
14fe0 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
14ff0 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31  ing to c6c0a4111
15000 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65  b36d04dbc811a11e
15010 34 64 35 34 63 61 64 0d 0a 0d 0a 6f 6e 6c 79 69  4d54cad....onlyi
15020 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
15030 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
15040 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
15050 62 65 6c 2d 34 35 35 0d 0a 53 45 4c 45 43 54 20  bel-455..SELECT 
15060 44 49 53 54 49 4e 43 54 20 53 55 4d 28 20 2b 20  DISTINCT SUM( + 
15070 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 30  col0 ) FROM tab0
15080 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2d 20 2d   WHERE NOT ( - -
15090 20 37 38 20 2d 20 2b 20 39 31 20 29 20 4e 4f 54   78 - + 91 ) NOT
150a0 20 42 45 54 57 45 45 4e 20 28 20 63 6f 6c 32 20   BETWEEN ( col2 
150b0 29 20 41 4e 44 20 2b 20 63 6f 6c 30 0d 0a 2d 2d  ) AND + col0..--
150c0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
150d0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
150e0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
150f0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
15100 2d 34 35 35 0d 0a 53 45 4c 45 43 54 20 44 49 53  -455..SELECT DIS
15110 54 49 4e 43 54 20 53 55 4d 20 28 20 2b 20 63 6f  TINCT SUM ( + co
15120 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 30 20 57  l0 ) FROM tab0 W
15130 48 45 52 45 20 4e 4f 54 20 28 20 2d 20 2d 20 37  HERE NOT ( - - 7
15140 38 20 2d 20 2b 20 39 31 20 29 20 4e 4f 54 20 42  8 - + 91 ) NOT B
15150 45 54 57 45 45 4e 20 28 20 63 6f 6c 32 20 29 20  ETWEEN ( col2 ) 
15160 41 4e 44 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d  AND + col0..----
15170 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..NULL....onlyif
15180 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
15190 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
151a0 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72  e: ..query III r
151b0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 35 36  owsort label-456
151c0 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
151d0 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
151e0 52 45 20 4e 4f 54 20 28 20 28 20 2d 20 43 41 53  RE NOT ( ( - CAS
151f0 54 28 20 2b 20 63 6f 6c 32 20 41 53 20 53 49 47  T( + col2 AS SIG
15200 4e 45 44 20 29 20 29 20 29 20 49 53 20 4e 55 4c  NED ) ) ) IS NUL
15210 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  L..----..9 value
15220 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63  s hashing to c6c
15230 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38  0a4111b36d04dbc8
15240 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d  11a11e4d54cad...
15250 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
15260 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
15270 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
15280 74 20 6c 61 62 65 6c 2d 34 35 36 0d 0a 53 45 4c  t label-456..SEL
15290 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ECT * FROM tab1 
152a0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
152b0 54 20 28 20 28 20 2d 20 43 41 53 54 20 28 20 2b  T ( ( - CAST ( +
152c0 20 63 6f 6c 32 20 41 53 20 49 4e 54 45 47 45 52   col2 AS INTEGER
152d0 20 29 20 29 20 29 20 49 53 20 4e 55 4c 4c 0d 0a   ) ) ) IS NULL..
152e0 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
152f0 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34  ashing to c6c0a4
15300 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61  111b36d04dbc811a
15310 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75  11e4d54cad....qu
15320 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
15330 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
15340 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
15350 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
15360 54 20 2b 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c  T + col2 IS NULL
15370 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 2d 36 37  ..----..-51..-67
15380 0d 0a 2d 37 37 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-77....query I
15390 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
153a0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41  CT * FROM tab1 A
153b0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
153c0 20 32 37 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d   27 IS NOT NULL.
153d0 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
153e0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
153f0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
15400 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
15410 6c 2d 34 35 39 0d 0a 53 45 4c 45 43 54 20 2d 20  l-459..SELECT - 
15420 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20  COUNT( * ) FROM 
15430 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
15440 52 45 20 4e 4f 54 20 63 6f 6c 30 20 2a 20 2b 20  RE NOT col0 * + 
15450 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  col1 IS NULL..--
15460 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66  --..-3....skipif
15470 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
15480 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
15490 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
154a0 35 39 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55  59..SELECT - COU
154b0 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  NT ( * ) FROM ta
154c0 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
154d0 20 4e 4f 54 20 63 6f 6c 30 20 2a 20 2b 20 63 6f   NOT col0 * + co
154e0 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l1 IS NULL..----
154f0 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..-3....query I 
15500 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
15510 2b 20 2b 20 38 34 20 46 52 4f 4d 20 74 61 62 30  + + 84 FROM tab0
15520 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 34 0d   cor0..----..84.
15530 0a 38 34 0d 0a 38 34 0d 0a 0d 0a 6f 6e 6c 79 69  .84..84....onlyi
15540 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
15550 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
15560 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
15570 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 36 31 0d  wsort label-461.
15580 0a 53 45 4c 45 43 54 20 2d 20 28 20 2d 20 43 41  .SELECT - ( - CA
15590 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
155a0 45 44 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46  ED ) ) AS col1 F
155b0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
155c0 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
155d0 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  LL..NULL....skip
155e0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
155f0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
15600 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
15610 2d 34 36 31 0d 0a 53 45 4c 45 43 54 20 2d 20 28  -461..SELECT - (
15620 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   - CAST ( NULL A
15630 53 20 49 4e 54 45 47 45 52 20 29 20 29 20 41 53  S INTEGER ) ) AS
15640 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
15650 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
15660 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
15670 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
15680 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
15690 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
156a0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
156b0 62 65 6c 2d 34 36 32 0d 0a 53 45 4c 45 43 54 20  bel-462..SELECT 
156c0 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 46 52  DISTINCT col2 FR
156d0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
156e0 57 48 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 49  WHERE NULL NOT I
156f0 4e 20 28 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 43  N ( + col2 * + C
15700 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
15710 4e 45 44 20 29 20 2b 20 2d 20 63 6f 6c 31 20 2a  NED ) + - col1 *
15720 20 2b 20 35 37 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   + 57 )..----...
15730 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
15740 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
15750 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
15760 6c 61 62 65 6c 2d 34 36 32 0d 0a 53 45 4c 45 43  label-462..SELEC
15770 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20  T DISTINCT col2 
15780 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
15790 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e 4f 54  0 WHERE NULL NOT
157a0 20 49 4e 20 28 20 2b 20 63 6f 6c 32 20 2a 20 2b   IN ( + col2 * +
157b0 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
157c0 49 4e 54 45 47 45 52 20 29 20 2b 20 2d 20 63 6f  INTEGER ) + - co
157d0 6c 31 20 2a 20 2b 20 35 37 20 29 0d 0a 2d 2d 2d  l1 * + 57 )..---
157e0 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
157f0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
15800 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20 46 52 4f  TINCT + col0 FRO
15810 4d 20 74 61 62 32 20 57 48 45 52 45 20 2d 20 63  M tab2 WHERE - c
15820 6f 6c 30 20 2b 20 63 6f 6c 32 20 49 4e 20 28 20  ol0 + col2 IN ( 
15830 2b 20 35 37 20 2a 20 63 6f 6c 30 20 29 0d 0a 2d  + 57 * col0 )..-
15840 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
15850 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
15860 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
15870 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
15880 34 36 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  464..SELECT DIST
15890 49 4e 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20  INCT COUNT( * ) 
158a0 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
158b0 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 3e 20 4e  NOT ( NULL ) > N
158c0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  ULL..----..0....
158d0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
158e0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
158f0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
15900 61 62 65 6c 2d 34 36 34 0d 0a 53 45 4c 45 43 54  abel-464..SELECT
15910 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 20   DISTINCT COUNT 
15920 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ( * ) FROM tab2 
15930 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c  WHERE NOT ( NULL
15940 20 29 20 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   ) > NULL..----.
15950 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  .0....query III 
15960 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
15970 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ALL * FROM tab1 
15980 57 48 45 52 45 20 2d 20 2d 20 63 6f 6c 30 20 49  WHERE - - col0 I
15990 4e 20 28 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 37  N ( - col2 + + 7
159a0 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  0 )..----....que
159b0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
159c0 4c 45 43 54 20 2b 20 28 20 63 6f 6c 31 20 29 20  LECT + ( col1 ) 
159d0 2d 20 2b 20 33 39 20 46 52 4f 4d 20 74 61 62 32  - + 39 FROM tab2
159e0 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20   WHERE NOT col2 
159f0 3c 3d 20 28 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d  <= ( col0 )..---
15a00 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
15a10 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
15a20 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 44 49   SIGNED type: DI
15a30 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
15a40 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
15a50 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
15a60 2d 34 36 37 0d 0a 53 45 4c 45 43 54 20 44 49 53  -467..SELECT DIS
15a70 54 49 4e 43 54 20 63 6f 6c 32 20 44 49 56 20 2d  TINCT col2 DIV -
15a80 20 28 20 32 31 20 29 20 41 53 20 63 6f 6c 31 2c   ( 21 ) AS col1,
15a90 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   - CAST( NULL AS
15aa0 20 53 49 47 4e 45 44 20 29 20 2a 20 2d 20 2d 20   SIGNED ) * - - 
15ab0 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f  col0 AS col0 FRO
15ac0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
15ad0 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 4e 55 4c 4c 0d 0a  ----..-2..NULL..
15ae0 2d 33 0d 0a 4e 55 4c 4c 0d 0a 2d 34 0d 0a 4e 55  -3..NULL..-4..NU
15af0 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
15b00 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
15b10 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
15b20 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 36 37 0d  wsort label-467.
15b30 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
15b40 20 63 6f 6c 32 20 2f 20 2d 20 28 20 32 31 20 29   col2 / - ( 21 )
15b50 20 41 53 20 63 6f 6c 31 2c 20 2d 20 43 41 53 54   AS col1, - CAST
15b60 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
15b70 45 52 20 29 20 2a 20 2d 20 2d 20 63 6f 6c 30 20  ER ) * - - col0 
15b80 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
15b90 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
15ba0 0a 2d 32 0d 0a 4e 55 4c 4c 0d 0a 2d 33 0d 0a 4e  .-2..NULL..-3..N
15bb0 55 4c 4c 0d 0a 2d 34 0d 0a 4e 55 4c 4c 0d 0a 0d  ULL..-4..NULL...
15bc0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
15bd0 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
15be0 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
15bf0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
15c00 6c 2d 34 36 38 0d 0a 53 45 4c 45 43 54 20 44 49  l-468..SELECT DI
15c10 53 54 49 4e 43 54 20 2b 20 2b 20 28 20 2d 20 2d  STINCT + + ( - -
15c20 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
15c30 49 47 4e 45 44 20 29 20 29 20 46 52 4f 4d 20 74  IGNED ) ) FROM t
15c40 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab0 cor0..----..
15c50 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
15c60 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
15c70 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
15c80 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 36 38  owsort label-468
15c90 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
15ca0 54 20 2b 20 2b 20 28 20 2d 20 2d 20 43 41 53 54  T + + ( - - CAST
15cb0 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
15cc0 45 52 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30  ER ) ) FROM tab0
15cd0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
15ce0 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  L....query III r
15cf0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
15d00 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41  LL * FROM tab0 A
15d10 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 63  S cor0 WHERE + c
15d20 6f 6c 32 20 2b 20 2d 20 63 6f 6c 31 20 49 53 20  ol2 + - col1 IS 
15d30 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
15d40 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
15d50 20 74 6f 20 63 34 62 34 32 37 36 35 64 66 66 39   to c4b42765dff9
15d60 34 65 61 61 61 34 36 30 34 30 65 35 33 37 66 62  4eaaa46040e537fb
15d70 34 33 62 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  43b7....onlyif m
15d80 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
15d90 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
15da0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
15db0 2d 34 37 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -470..SELECT ALL
15dc0 20 4d 41 58 28 20 41 4c 4c 20 2d 20 63 6f 6c 30   MAX( ALL - col0
15dd0 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
15de0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
15df0 2d 2d 0d 0a 2d 35 31 0d 0a 0d 0a 73 6b 69 70 69  --..-51....skipi
15e00 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
15e10 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
15e20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
15e30 34 37 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  470..SELECT ALL 
15e40 4d 41 58 20 28 20 41 4c 4c 20 2d 20 63 6f 6c 30  MAX ( ALL - col0
15e50 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
15e60 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
15e70 2d 2d 0d 0a 2d 35 31 0d 0a 0d 0a 71 75 65 72 79  --..-51....query
15e80 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
15e90 43 54 20 41 4c 4c 20 32 20 41 53 20 63 6f 6c 32  CT ALL 2 AS col2
15ea0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
15eb0 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63  r0 WHERE NOT - c
15ec0 6f 6c 32 20 2f 20 2d 20 39 33 20 3d 20 2b 20 63  ol2 / - 93 = + c
15ed0 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 32 0d 0a 32 0d  ol1..----..2..2.
15ee0 0a 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .2....query I ro
15ef0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
15f00 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 31 20 2a 20  col2 * - col1 * 
15f10 2b 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c  + + col0 + - col
15f20 31 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  1 FROM tab2 cor0
15f30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 37 31 39 37 0d  ..----..-197197.
15f40 0a 2d 32 39 31 35 31 37 0d 0a 2d 35 34 30 30 39  .-291517..-54009
15f50 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
15f60 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
15f70 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
15f80 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 37 33  owsort label-473
15f90 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
15fa0 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2b  T COUNT( * ) * +
15fb0 20 28 20 2b 20 2d 20 33 20 29 20 46 52 4f 4d 20   ( + - 3 ) FROM 
15fc0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a  tab0..----..-9..
15fd0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
15fe0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
15ff0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
16000 20 6c 61 62 65 6c 2d 34 37 33 0d 0a 53 45 4c 45   label-473..SELE
16010 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e  CT DISTINCT COUN
16020 54 20 28 20 2a 20 29 20 2a 20 2b 20 28 20 2b 20  T ( * ) * + ( + 
16030 2d 20 33 20 29 20 46 52 4f 4d 20 74 61 62 30 0d  - 3 ) FROM tab0.
16040 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 6f 6e 6c  .----..-9....onl
16050 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
16060 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
16070 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
16080 6c 61 62 65 6c 2d 34 37 34 0d 0a 53 45 4c 45 43  label-474..SELEC
16090 54 20 39 35 20 2a 20 43 4f 55 4e 54 28 20 2d 20  T 95 * COUNT( - 
160a0 2d 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61  - col1 ) FROM ta
160b0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 38 35 0d 0a 0d  b2..----..285...
160c0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
160d0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
160e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
160f0 6c 61 62 65 6c 2d 34 37 34 0d 0a 53 45 4c 45 43  label-474..SELEC
16100 54 20 39 35 20 2a 20 43 4f 55 4e 54 20 28 20 2d  T 95 * COUNT ( -
16110 20 2d 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74   - col1 ) FROM t
16120 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 38 35 0d 0a  ab2..----..285..
16130 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
16140 74 0d 0a 53 45 4c 45 43 54 20 2d 20 32 20 46 52  t..SELECT - 2 FR
16150 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
16160 54 20 28 20 4e 4f 54 20 63 6f 6c 30 20 49 53 20  T ( NOT col0 IS 
16170 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  NULL )..----....
16180 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
16190 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
161a0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57  CT * FROM tab0 W
161b0 48 45 52 45 20 28 20 4e 4f 54 20 4e 55 4c 4c 20  HERE ( NOT NULL 
161c0 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44  BETWEEN NULL AND
161d0 20 28 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 2b 20   ( + col0 + - + 
161e0 63 6f 6c 32 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a  col2 ) )..----..
161f0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
16200 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
16210 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
16220 73 6f 72 74 20 6c 61 62 65 6c 2d 34 37 37 0d 0a  sort label-477..
16230 53 45 4c 45 43 54 20 41 4c 4c 20 53 55 4d 28 20  SELECT ALL SUM( 
16240 41 4c 4c 20 2d 20 2b 20 63 6f 6c 31 20 29 20 41  ALL - + col1 ) A
16250 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
16260 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 33 0d 0a 0d 0a  ..----..-103....
16270 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
16280 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
16290 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
162a0 61 62 65 6c 2d 34 37 37 0d 0a 53 45 4c 45 43 54  abel-477..SELECT
162b0 20 41 4c 4c 20 53 55 4d 20 28 20 41 4c 4c 20 2d   ALL SUM ( ALL -
162c0 20 2b 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c   + col1 ) AS col
162d0 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
162e0 2d 0d 0a 2d 31 30 33 0d 0a 0d 0a 71 75 65 72 79  -..-103....query
162f0 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
16300 4c 45 43 54 20 30 2c 20 2b 20 63 6f 6c 30 2c 20  LECT 0, + col0, 
16310 2d 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c  - + col1 + + col
16320 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  2 AS col2 FROM t
16330 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  ab2..----..9 val
16340 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37  ues hashing to 7
16350 31 63 38 39 35 64 65 34 33 66 38 65 36 64 30 65  1c895de43f8e6d0e
16360 32 66 38 34 64 37 32 61 31 36 38 32 62 63 31 0d  2f84d72a1682bc1.
16370 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
16380 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
16390 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
163a0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
163b0 6c 61 62 65 6c 2d 34 37 39 0d 0a 53 45 4c 45 43  label-479..SELEC
163c0 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  T * FROM tab2 WH
163d0 45 52 45 20 28 20 4e 55 4c 4c 20 4e 4f 54 20 42  ERE ( NULL NOT B
163e0 45 54 57 45 45 4e 20 2b 20 43 41 53 54 28 20 4e  ETWEEN + CAST( N
163f0 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
16400 2b 20 39 39 20 2a 20 2d 20 28 20 2b 20 34 31 20  + 99 * - ( + 41 
16410 29 20 41 4e 44 20 28 20 2d 20 63 6f 6c 32 20 2f  ) AND ( - col2 /
16420 20 2b 20 63 6f 6c 30 20 29 20 29 0d 0a 2d 2d 2d   + col0 ) )..---
16430 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  -....skipif mysq
16440 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
16450 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  le..query III ro
16460 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 37 39 0d  wsort label-479.
16470 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
16480 61 62 32 20 57 48 45 52 45 20 28 20 4e 55 4c 4c  ab2 WHERE ( NULL
16490 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2b 20 43   NOT BETWEEN + C
164a0 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
164b0 54 45 47 45 52 20 29 20 2b 20 39 39 20 2a 20 2d  TEGER ) + 99 * -
164c0 20 28 20 2b 20 34 31 20 29 20 41 4e 44 20 28 20   ( + 41 ) AND ( 
164d0 2d 20 63 6f 6c 32 20 2f 20 2b 20 63 6f 6c 30 20  - col2 / + col0 
164e0 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ) )..----....que
164f0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
16500 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
16510 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
16520 20 2d 20 32 31 20 2f 20 2b 20 2d 20 28 20 63 6f   - 21 / + - ( co
16530 6c 32 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  l2 ) IS NOT NULL
16540 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
16550 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34   hashing to c4b4
16560 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30  2765dff94eaaa460
16570 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a  40e537fb43b7....
16580 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
16590 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
165a0 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
165b0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
165c0 2d 34 38 31 0d 0a 53 45 4c 45 43 54 20 44 49 53  -481..SELECT DIS
165d0 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20 2b 20 2b  TINCT + col2 + +
165e0 20 2b 20 43 41 53 54 28 20 2b 20 2d 20 63 6f 6c   + CAST( + - col
165f0 31 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53  1 AS SIGNED ) AS
16600 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
16610 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
16620 31 31 0d 0a 2d 33 34 0d 0a 39 38 0d 0a 0d 0a 73  11..-34..98....s
16630 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
16640 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
16650 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
16660 62 65 6c 2d 34 38 31 0d 0a 53 45 4c 45 43 54 20  bel-481..SELECT 
16670 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20  DISTINCT + col2 
16680 2b 20 2b 20 2b 20 43 41 53 54 20 28 20 2b 20 2d  + + + CAST ( + -
16690 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45 52   col1 AS INTEGER
166a0 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
166b0 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
166c0 2d 2d 0d 0a 2d 31 31 0d 0a 2d 33 34 0d 0a 39 38  --..-11..-34..98
166d0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
166e0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
166f0 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 32 20 2b 20  col1 * - col2 + 
16700 2d 20 2d 20 28 20 63 6f 6c 31 20 29 20 46 52 4f  - - ( col1 ) FRO
16710 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
16720 2d 2d 2d 2d 0d 0a 2d 31 38 39 0d 0a 2d 33 37 32  ----..-189..-372
16730 36 0d 0a 2d 39 38 0d 0a 0d 0a 71 75 65 72 79 20  6..-98....query 
16740 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
16750 54 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 32 20  T col2 + + col2 
16760 2d 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 36  - + - col1 * + 6
16770 37 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  7 AS col0 FROM t
16780 61 62 32 20 63 6f 72 30 20 57 48 45 52 45 20 4e  ab2 cor0 WHERE N
16790 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ULL IS NOT NULL.
167a0 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
167b0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
167c0 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 2b   DISTINCT col1 +
167d0 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 32   - col2 + + col2
167e0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
167f0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 36 37  r0..----..51..67
16800 0d 0a 37 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..77....query I 
16810 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
16820 2b 20 31 32 20 2a 20 2d 20 2d 20 63 6f 6c 30 20  + 12 * - - col0 
16830 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
16840 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 34 34 0d 0a 31  0..----..1044..1
16850 31 36 34 0d 0a 31 38 30 0d 0a 0d 0a 71 75 65 72  164..180....quer
16860 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
16870 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63  ECT DISTINCT + c
16880 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  ol1 FROM tab0 co
16890 72 30 20 57 48 45 52 45 20 2b 20 63 6f 6c 31 20  r0 WHERE + col1 
168a0 2a 20 2d 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c  * - col2 IS NULL
168b0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
168c0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
168d0 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ECT * FROM tab1 
168e0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20  AS cor0 WHERE ( 
168f0 4e 55 4c 4c 20 29 20 3c 3e 20 2d 20 2d 20 63 6f  NULL ) <> - - co
16900 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  l2..----....quer
16910 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
16920 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 37  ECT DISTINCT - 7
16930 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
16940 6f 72 30 20 57 48 45 52 45 20 2b 20 33 38 20 2b  or0 WHERE + 38 +
16950 20 63 6f 6c 32 20 2f 20 2d 20 28 20 2b 20 63 6f   col2 / - ( + co
16960 6c 30 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  l0 ) IS NOT NULL
16970 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 32 0d 0a 0d 0a 71  ..----..-72....q
16980 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
16990 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 41 53  SELECT - col0 AS
169a0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
169b0 57 48 45 52 45 20 28 20 2b 20 63 6f 6c 30 20 29  WHERE ( + col0 )
169c0 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e 55 4c   NOT BETWEEN NUL
169d0 4c 20 41 4e 44 20 28 20 63 6f 6c 30 20 29 0d 0a  L AND ( col0 )..
169e0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
169f0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
16a00 63 6f 6c 31 20 2b 20 2d 20 2b 20 36 33 20 2b 20  col1 + - + 63 + 
16a10 2d 20 2d 20 33 20 41 53 20 63 6f 6c 31 20 46 52  - - 3 AS col1 FR
16a20 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
16a30 31 33 0d 0a 2d 34 36 0d 0a 2d 35 35 0d 0a 0d 0a  13..-46..-55....
16a40 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
16a50 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
16a60 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 2d 20 39 31   + col1 * + - 91
16a70 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
16a80 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 31 31 0d  b0..----..-1911.
16a90 0a 2d 37 33 37 31 0d 0a 2d 39 31 0d 0a 0d 0a 71  .-7371..-91....q
16aa0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
16ab0 0a 53 45 4c 45 43 54 20 63 6f 6c 32 2c 20 2b 20  .SELECT col2, + 
16ac0 35 36 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  56 AS col2 FROM 
16ad0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a  tab1..----..59..
16ae0 35 36 0d 0a 36 38 0d 0a 35 36 0d 0a 39 36 0d 0a  56..68..56..96..
16af0 35 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  56....query III 
16b00 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
16b10 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ALL * FROM tab0 
16b20 57 48 45 52 45 20 2b 20 32 32 20 3c 3d 20 2d 20  WHERE + 22 <= - 
16b30 63 6f 6c 32 20 2b 20 63 6f 6c 30 20 2b 20 63 6f  col2 + col0 + co
16b40 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 38 37 0d 0a 32 31  l2..----..87..21
16b50 0d 0a 31 30 0d 0a 39 37 0d 0a 31 0d 0a 39 39 0d  ..10..97..1..99.
16b60 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
16b70 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
16b80 49 4e 43 54 20 37 37 20 41 53 20 63 6f 6c 32 2c  INCT 77 AS col2,
16b90 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 2b 20 63 6f   + col1 + + + co
16ba0 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
16bb0 2d 2d 0d 0a 37 37 0d 0a 31 30 0d 0a 37 37 0d 0a  --..77..10..77..
16bc0 32 38 0d 0a 37 37 0d 0a 39 34 0d 0a 0d 0a 71 75  28..77..94....qu
16bd0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
16be0 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 2c 20 2d  SELECT - col2, -
16bf0 20 63 6f 6c 31 20 2a 20 63 6f 6c 32 20 2a 20 2d   col1 * col2 * -
16c00 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20   - col2 AS col2 
16c10 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
16c20 0a 2d 35 39 0d 0a 2d 31 37 34 30 35 0d 0a 2d 36  .-59..-17405..-6
16c30 38 0d 0a 2d 32 31 37 33 32 38 0d 0a 2d 39 36 0d  8..-217328..-96.
16c40 0a 2d 31 32 39 30 32 34 0d 0a 0d 0a 6f 6e 6c 79  .-129024....only
16c50 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
16c60 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
16c70 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
16c80 61 62 65 6c 2d 34 39 36 0d 0a 53 45 4c 45 43 54  abel-496..SELECT
16c90 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 28 20 2a 20   ALL - COUNT( * 
16ca0 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
16cb0 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 28 20  ab1 WHERE NOT ( 
16cc0 2d 20 63 6f 6c 31 20 2b 20 36 32 20 29 20 49 53  - col1 + 62 ) IS
16cd0 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
16ce0 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
16cf0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
16d00 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
16d10 73 6f 72 74 20 6c 61 62 65 6c 2d 34 39 36 0d 0a  sort label-496..
16d20 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55  SELECT ALL - COU
16d30 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32  NT ( * ) AS col2
16d40 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
16d50 20 4e 4f 54 20 28 20 2d 20 63 6f 6c 31 20 2b 20   NOT ( - col1 + 
16d60 36 32 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  62 ) IS NOT NULL
16d70 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c  ..----..0....onl
16d80 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
16d90 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
16da0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
16db0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
16dc0 39 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  97..SELECT ALL -
16dd0 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
16de0 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 32 2c  IGNED ) AS col2,
16df0 20 33 36 20 46 52 4f 4d 20 74 61 62 32 20 41 53   36 FROM tab2 AS
16e00 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
16e10 63 6f 6c 30 20 2b 20 2b 20 2d 20 63 6f 6c 30 20  col0 + + - col0 
16e20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
16e30 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  -....skipif mysq
16e40 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
16e50 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
16e60 73 6f 72 74 20 6c 61 62 65 6c 2d 34 39 37 0d 0a  sort label-497..
16e70 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 41 53  SELECT ALL - CAS
16e80 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
16e90 47 45 52 20 29 20 41 53 20 63 6f 6c 32 2c 20 33  GER ) AS col2, 3
16ea0 36 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  6 FROM tab2 AS c
16eb0 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f  or0 WHERE NOT co
16ec0 6c 30 20 2b 20 2b 20 2d 20 63 6f 6c 30 20 49 53  l0 + + - col0 IS
16ed0 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
16ee0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
16ef0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
16f00 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
16f10 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 39 38 0d  wsort label-498.
16f20 0a 53 45 4c 45 43 54 20 4d 41 58 28 20 2b 20 28  .SELECT MAX( + (
16f30 20 2b 20 63 6f 6c 30 20 29 20 29 20 63 6f 6c 30   + col0 ) ) col0
16f40 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
16f50 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 35 0d 0a 0d 0a  r0..----..75....
16f60 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
16f70 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73  ot compatible..s
16f80 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
16f90 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
16fa0 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
16fb0 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
16fc0 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
16fd0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 39  rowsort label-49
16fe0 38 0d 0a 53 45 4c 45 43 54 20 4d 41 58 20 28 20  8..SELECT MAX ( 
16ff0 2b 20 28 20 2b 20 63 6f 6c 30 20 29 20 29 20 63  + ( + col0 ) ) c
17000 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
17010 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 35 0d   cor0..----..75.
17020 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
17030 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
17040 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
17050 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54 57  OT NULL NOT BETW
17060 45 45 4e 20 2d 20 2d 20 35 36 20 41 4e 44 20 28  EEN - - 56 AND (
17070 20 2d 20 33 39 20 2a 20 2d 20 63 6f 6c 31 20 29   - 39 * - col1 )
17080 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
17090 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
170a0 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
170b0 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72  e: ..query III r
170c0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 30 30  owsort label-500
170d0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
170e0 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48  T * FROM tab0 WH
170f0 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54  ERE NULL NOT BET
17100 57 45 45 4e 20 2b 20 43 41 53 54 28 20 2d 20 63  WEEN + CAST( - c
17110 6f 6c 30 20 41 53 20 53 49 47 4e 45 44 20 29 20  ol0 AS SIGNED ) 
17120 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  AND NULL..----..
17130 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
17140 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
17150 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
17160 72 74 20 6c 61 62 65 6c 2d 35 30 30 0d 0a 53 45  rt label-500..SE
17170 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
17180 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
17190 4e 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e  NULL NOT BETWEEN
171a0 20 2b 20 43 41 53 54 20 28 20 2d 20 63 6f 6c 30   + CAST ( - col0
171b0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 4e   AS INTEGER ) AN
171c0 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  D NULL..----....
171d0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
171e0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
171f0 20 2d 20 39 33 20 46 52 4f 4d 20 74 61 62 31 20   - 93 FROM tab1 
17200 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
17210 49 4e 20 74 61 62 30 20 63 6f 72 31 0d 0a 2d 2d  IN tab0 cor1..--
17220 2d 2d 0d 0a 2d 39 33 0d 0a 0d 0a 71 75 65 72 79  --..-93....query
17230 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
17240 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
17250 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
17260 30 20 57 48 45 52 45 20 63 6f 6c 30 20 2f 20 2d  0 WHERE col0 / -
17270 20 31 38 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d   18 IS NULL..---
17280 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
17290 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d  sort..SELECT + -
172a0 20 34 36 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   46 AS col1 FROM
172b0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
172c0 2d 2d 2d 0d 0a 2d 34 36 0d 0a 2d 34 36 0d 0a 2d  ---..-46..-46..-
172d0 34 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  46....query III 
172e0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
172f0 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
17300 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
17310 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54 57  RE NULL NOT BETW
17320 45 45 4e 20 28 20 63 6f 6c 32 20 29 20 41 4e 44  EEN ( col2 ) AND
17330 20 63 6f 6c 32 20 2a 20 2b 20 2b 20 33 37 0d 0a   col2 * + + 37..
17340 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
17350 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
17360 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32   DISTINCT + col2
17370 20 2a 20 2b 20 2b 20 28 20 63 6f 6c 31 20 29 20   * + + ( col1 ) 
17380 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 2c 20  + col1 AS col2, 
17390 2b 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 30 20  + col1 + + col0 
173a0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
173b0 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 32 34 0d 0a 39  0..----..1224..9
173c0 37 0d 0a 33 31 35 37 0d 0a 31 34 31 0d 0a 33 39  7..3157..141..39
173d0 35 33 0d 0a 31 34 32 0d 0a 0d 0a 6f 6e 6c 79 69  53..142....onlyi
173e0 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
173f0 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
17400 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
17410 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 30 36 0d  wsort label-506.
17420 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
17430 20 2d 20 33 37 20 44 49 56 20 2d 20 63 6f 6c 31   - 37 DIV - col1
17440 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
17450 0d 0a 30 0d 0a 32 0d 0a 37 0d 0a 0d 0a 73 6b 69  ..0..2..7....ski
17460 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
17470 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
17480 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
17490 6c 2d 35 30 36 0d 0a 53 45 4c 45 43 54 20 44 49  l-506..SELECT DI
174a0 53 54 49 4e 43 54 20 2d 20 33 37 20 2f 20 2d 20  STINCT - 37 / - 
174b0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col1 FROM tab1..
174c0 2d 2d 2d 2d 0d 0a 30 0d 0a 32 0d 0a 37 0d 0a 0d  ----..0..2..7...
174d0 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
174e0 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
174f0 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
17500 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
17510 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
17520 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
17530 54 20 63 6f 6c 31 20 63 6f 6c 30 20 46 52 4f 4d  T col1 col0 FROM
17540 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20   tab1 WHERE NOT 
17550 2d 20 28 20 2b 20 28 20 63 6f 6c 30 20 29 20 29  - ( + ( col0 ) )
17560 20 49 53 20 4e 55 4c 4c 20 41 4e 44 20 28 20 36   IS NULL AND ( 6
17570 20 29 20 4e 4f 54 20 49 4e 20 28 20 63 6f 6c 31   ) NOT IN ( col1
17580 20 29 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 34 37   )..----..14..47
17590 0d 0a 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..5....onlyif my
175a0 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
175b0 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
175c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
175d0 74 20 6c 61 62 65 6c 2d 35 30 38 0d 0a 53 45 4c  t label-508..SEL
175e0 45 43 54 20 41 4c 4c 20 2d 20 34 33 20 44 49 56  ECT ALL - 43 DIV
175f0 20 2b 20 63 6f 6c 31 20 63 6f 6c 30 20 46 52 4f   + col1 col0 FRO
17600 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  M tab0..----..-2
17610 0d 0a 2d 34 33 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  ..-43..0....skip
17620 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
17630 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
17640 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
17650 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
17660 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
17670 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
17680 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
17690 6f 72 74 20 6c 61 62 65 6c 2d 35 30 38 0d 0a 53  ort label-508..S
176a0 45 4c 45 43 54 20 41 4c 4c 20 2d 20 34 33 20 2f  ELECT ALL - 43 /
176b0 20 2b 20 63 6f 6c 31 20 63 6f 6c 30 20 46 52 4f   + col1 col0 FRO
176c0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  M tab0..----..-2
176d0 0d 0a 2d 34 33 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79  ..-43..0....only
176e0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
176f0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
17700 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
17710 61 62 65 6c 2d 35 30 39 0d 0a 53 45 4c 45 43 54  abel-509..SELECT
17720 20 44 49 53 54 49 4e 43 54 20 2b 20 4d 49 4e 28   DISTINCT + MIN(
17730 20 2d 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c   - col0 ) AS col
17740 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
17750 2d 0d 0a 2d 37 35 0d 0a 0d 0a 73 6b 69 70 69 66  -..-75....skipif
17760 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
17770 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
17780 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
17790 30 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  09..SELECT DISTI
177a0 4e 43 54 20 2b 20 4d 49 4e 20 28 20 2d 20 63 6f  NCT + MIN ( - co
177b0 6c 30 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  l0 ) AS col1 FRO
177c0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 37  M tab2..----..-7
177d0 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  5....query I row
177e0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 35  sort..SELECT + 5
177f0 31 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  1 + col0 FROM ta
17800 62 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53  b1 WHERE NULL IS
17810 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 30 32   NULL..----..102
17820 0d 0a 31 33 36 0d 0a 31 34 32 0d 0a 0d 0a 6f 6e  ..136..142....on
17830 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
17840 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
17850 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
17860 20 6c 61 62 65 6c 2d 35 31 31 0d 0a 53 45 4c 45   label-511..SELE
17870 43 54 20 41 4c 4c 20 32 34 20 2b 20 2d 20 43 4f  CT ALL 24 + - CO
17880 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31  UNT( * ) AS col1
17890 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
178a0 20 4e 4f 54 20 2d 20 63 6f 6c 32 20 2b 20 2b 20   NOT - col2 + + 
178b0 63 6f 6c 32 20 4e 4f 54 20 49 4e 20 28 20 2d 20  col2 NOT IN ( - 
178c0 36 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 32 34 0d 0a  62 )..----..24..
178d0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
178e0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
178f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
17900 20 6c 61 62 65 6c 2d 35 31 31 0d 0a 53 45 4c 45   label-511..SELE
17910 43 54 20 41 4c 4c 20 32 34 20 2b 20 2d 20 43 4f  CT ALL 24 + - CO
17920 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c  UNT ( * ) AS col
17930 31 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  1 FROM tab1 WHER
17940 45 20 4e 4f 54 20 2d 20 63 6f 6c 32 20 2b 20 2b  E NOT - col2 + +
17950 20 63 6f 6c 32 20 4e 4f 54 20 49 4e 20 28 20 2d   col2 NOT IN ( -
17960 20 36 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 32 34 0d   62 )..----..24.
17970 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
17980 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  ort..SELECT - co
17990 6c 31 2c 20 2d 20 37 30 20 41 53 20 63 6f 6c 31  l1, - 70 AS col1
179a0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
179b0 0d 0a 2d 31 34 0d 0a 2d 37 30 0d 0a 2d 34 37 0d  ..-14..-70..-47.
179c0 0a 2d 37 30 0d 0a 2d 35 0d 0a 2d 37 30 0d 0a 0d  .-70..-5..-70...
179d0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
179e0 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
179f0 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
17a00 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
17a10 6c 2d 35 31 33 0d 0a 53 45 4c 45 43 54 20 2b 20  l-513..SELECT + 
17a20 2d 20 63 6f 6c 31 20 44 49 56 20 2d 20 2d 20 63  - col1 DIV - - c
17a30 6f 6c 30 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  ol0 col2 FROM ta
17a40 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
17a50 0d 0a 2d 31 0d 0a 2d 31 0d 0a 30 0d 0a 0d 0a 73  ..-1..-1..0....s
17a60 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
17a70 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
17a80 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
17a90 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
17aa0 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
17ab0 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
17ac0 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
17ad0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 31 33  owsort label-513
17ae0 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 63 6f 6c  ..SELECT + - col
17af0 31 20 2f 20 2d 20 2d 20 63 6f 6c 30 20 63 6f 6c  1 / - - col0 col
17b00 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
17b10 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d  or0..----..-1..-
17b20 31 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  1..0....query I 
17b30 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
17b40 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 63 6f 6c  DISTINCT + - col
17b50 32 20 2a 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 63  2 * + + col1 * c
17b60 6f 6c 32 20 2b 20 2d 20 2d 20 63 6f 6c 31 20 41  ol2 + - - col1 A
17b70 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
17b80 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 63   AS cor0 WHERE c
17b90 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ol1 IS NULL..---
17ba0 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
17bb0 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
17bc0 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
17bd0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
17be0 6c 61 62 65 6c 2d 35 31 35 0d 0a 53 45 4c 45 43  label-515..SELEC
17bf0 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  T DISTINCT - col
17c00 30 20 2b 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c  0 + - CAST( NULL
17c10 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f   AS SIGNED ) FRO
17c20 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
17c30 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  ----..NULL....sk
17c40 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
17c50 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
17c60 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
17c70 65 6c 2d 35 31 35 0d 0a 53 45 4c 45 43 54 20 44  el-515..SELECT D
17c80 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20 2b  ISTINCT - col0 +
17c90 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   - CAST ( NULL A
17ca0 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d  S INTEGER ) FROM
17cb0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
17cc0 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c  ---..NULL....onl
17cd0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
17ce0 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
17cf0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
17d00 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 31  rowsort label-51
17d10 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  6..SELECT DISTIN
17d20 43 54 20 2b 20 2d 20 43 41 53 54 28 20 4e 55 4c  CT + - CAST( NUL
17d30 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20  L AS SIGNED ) + 
17d40 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46  + col1 AS col0 F
17d50 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
17d60 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
17d70 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
17d80 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
17d90 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
17da0 61 62 65 6c 2d 35 31 36 0d 0a 53 45 4c 45 43 54  abel-516..SELECT
17db0 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 43 41   DISTINCT + - CA
17dc0 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
17dd0 45 47 45 52 20 29 20 2b 20 2b 20 63 6f 6c 31 20  EGER ) + + col1 
17de0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
17df0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
17e00 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
17e10 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
17e20 20 2b 20 33 38 20 2d 20 2d 20 63 6f 6c 32 20 41   + 38 - - col2 A
17e30 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
17e40 0d 0a 2d 2d 2d 2d 0d 0a 36 31 0d 0a 37 38 0d 0a  ..----..61..78..
17e50 39 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  96....query I ro
17e60 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
17e70 63 6f 6c 30 20 2d 20 2d 20 32 20 46 52 4f 4d 20  col0 - - 2 FROM 
17e80 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 0d  tab0..----..-13.
17e90 0a 2d 38 35 0d 0a 2d 39 35 0d 0a 0d 0a 71 75 65  .-85..-95....que
17ea0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
17eb0 4c 45 43 54 20 2b 20 63 6f 6c 32 20 46 52 4f 4d  LECT + col2 FROM
17ec0 20 74 61 62 32 20 57 48 45 52 45 20 2d 20 2b 20   tab2 WHERE - + 
17ed0 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col1 IS NOT NULL
17ee0 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 34 30 0d 0a  ..----..23..40..
17ef0 35 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  58....query I ro
17f00 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
17f10 2d 20 63 6f 6c 32 20 2a 20 2b 20 35 36 20 2b 20  - col2 * + 56 + 
17f20 2d 20 38 33 20 41 53 20 63 6f 6c 31 20 46 52 4f  - 83 AS col1 FRO
17f30 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
17f40 2d 2d 2d 2d 0d 0a 2d 32 37 31 35 0d 0a 2d 35 36  ----..-2715..-56
17f50 32 37 0d 0a 2d 36 34 33 0d 0a 0d 0a 73 6b 69 70  27..-643....skip
17f60 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
17f70 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
17f80 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
17f90 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
17fa0 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
17fb0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
17fc0 20 28 20 31 38 20 29 20 63 6f 6c 32 20 46 52 4f   ( 18 ) col2 FRO
17fd0 4d 20 74 61 62 31 20 63 6f 72 30 20 57 48 45 52  M tab1 cor0 WHER
17fe0 45 20 4e 4f 54 20 63 6f 6c 30 20 2b 20 2d 20 2b  E NOT col0 + - +
17ff0 20 36 33 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d   63 IS NOT NULL.
18000 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
18010 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
18020 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74   + - col0 FROM t
18030 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
18040 45 20 2d 20 63 6f 6c 30 20 2f 20 2b 20 2b 20 28  E - col0 / + + (
18050 20 2b 20 2d 20 31 20 29 20 2b 20 63 6f 6c 30 20   + - 1 ) + col0 
18060 3c 3d 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d  <= + col0..----.
18070 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
18080 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
18090 4e 43 54 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f  NCT + col1 AS co
180a0 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
180b0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d  cor0 WHERE NOT -
180c0 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d   col1 IS NULL..-
180d0 2d 2d 2d 0d 0a 31 0d 0a 32 31 0d 0a 38 31 0d 0a  ---..1..21..81..
180e0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
180f0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
18100 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  INCT * FROM tab1
18110 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b   AS cor0 WHERE +
18120 20 63 6f 6c 31 20 2a 20 2b 20 34 34 20 49 4e 20   col1 * + 44 IN 
18130 28 20 2b 20 2d 20 63 6f 6c 32 2c 20 63 6f 6c 30  ( + - col2, col0
18140 2c 20 2b 20 39 35 20 29 0d 0a 2d 2d 2d 2d 0d 0a  , + 95 )..----..
18150 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
18160 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
18170 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
18180 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
18190 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
181a0 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
181b0 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  ECT DISTINCT col
181c0 30 20 63 6f 6c 30 2c 20 2b 20 63 6f 6c 31 20 46  0 col0, + col1 F
181d0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
181e0 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 35 31 0d 0a  ..----..46..51..
181f0 36 34 0d 0a 37 37 0d 0a 37 35 0d 0a 36 37 0d 0a  64..77..75..67..
18200 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
18210 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
18220 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
18230 73 6f 72 74 20 6c 61 62 65 6c 2d 35 32 36 0d 0a  sort label-526..
18240 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
18250 2d 20 53 55 4d 28 20 41 4c 4c 20 36 20 29 20 63  - SUM( ALL 6 ) c
18260 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
18270 2d 2d 2d 0d 0a 2d 31 38 0d 0a 0d 0a 73 6b 69 70  ---..-18....skip
18280 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
18290 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
182a0 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
182b0 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
182c0 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
182d0 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
182e0 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
182f0 6f 72 74 20 6c 61 62 65 6c 2d 35 32 36 0d 0a 53  ort label-526..S
18300 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
18310 20 53 55 4d 20 28 20 41 4c 4c 20 36 20 29 20 63   SUM ( ALL 6 ) c
18320 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
18330 2d 2d 2d 0d 0a 2d 31 38 0d 0a 0d 0a 71 75 65 72  ---..-18....quer
18340 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
18350 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 46  ECT ALL + col1 F
18360 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 28  ROM tab0 WHERE (
18370 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c   NULL IS NOT NUL
18380 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  L )..----....onl
18390 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
183a0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
183b0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
183c0 6c 61 62 65 6c 2d 35 32 38 0d 0a 53 45 4c 45 43  label-528..SELEC
183d0 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 4f 55  T DISTINCT + COU
183e0 4e 54 28 20 2a 20 29 20 2a 20 4d 49 4e 28 20 44  NT( * ) * MIN( D
183f0 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20 29  ISTINCT + col0 )
18400 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
18410 20 4e 4f 54 20 2d 20 63 6f 6c 31 20 4e 4f 54 20   NOT - col1 NOT 
18420 49 4e 20 28 20 63 6f 6c 32 20 2b 20 2b 20 35 35  IN ( col2 + + 55
18430 2c 20 2b 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d  , + col0 )..----
18440 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
18450 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
18460 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
18470 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
18480 32 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  28..SELECT DISTI
18490 4e 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  NCT + COUNT ( * 
184a0 29 20 2a 20 4d 49 4e 20 28 20 44 49 53 54 49 4e  ) * MIN ( DISTIN
184b0 43 54 20 2b 20 63 6f 6c 30 20 29 20 46 52 4f 4d  CT + col0 ) FROM
184c0 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20   tab2 WHERE NOT 
184d0 2d 20 63 6f 6c 31 20 4e 4f 54 20 49 4e 20 28 20  - col1 NOT IN ( 
184e0 63 6f 6c 32 20 2b 20 2b 20 35 35 2c 20 2b 20 63  col2 + + 55, + c
184f0 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c  ol0 )..----..NUL
18500 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  L....query I row
18510 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
18520 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 2a 20 2b  TINCT + col1 * +
18530 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 31 20 2b   col1 + + col1 +
18540 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52   col2 AS col1 FR
18550 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
18560 0a 2d 2d 2d 2d 0d 0a 31 30 31 0d 0a 34 37 32 0d  .----..101..472.
18570 0a 36 36 38 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .6689....onlyif 
18580 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
18590 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
185a0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
185b0 6c 2d 35 33 30 0d 0a 53 45 4c 45 43 54 20 41 4c  l-530..SELECT AL
185c0 4c 20 2b 20 4d 41 58 28 20 2d 20 63 6f 6c 31 20  L + MAX( - col1 
185d0 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
185e0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 0d 0a 0d  ab1..----..-5...
185f0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
18600 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
18610 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
18620 6c 61 62 65 6c 2d 35 33 30 0d 0a 53 45 4c 45 43  label-530..SELEC
18630 54 20 41 4c 4c 20 2b 20 4d 41 58 20 28 20 2d 20  T ALL + MAX ( - 
18640 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 32 20 46  col1 ) AS col2 F
18650 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
18660 2d 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  -5....query I ro
18670 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
18680 28 20 2b 20 35 31 20 29 20 41 53 20 63 6f 6c 31  ( + 51 ) AS col1
18690 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
186a0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 2d  r0..----..-51..-
186b0 35 31 0d 0a 2d 35 31 0d 0a 0d 0a 6f 6e 6c 79 69  51..-51....onlyi
186c0 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
186d0 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
186e0 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
186f0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 33 32 0d  wsort label-532.
18700 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
18710 20 63 6f 6c 30 20 2b 20 2d 20 2b 20 43 41 53 54   col0 + - + CAST
18720 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
18730 20 29 20 2f 20 2b 20 63 6f 6c 30 20 2b 20 2d 20   ) / + col0 + - 
18740 63 6f 6c 31 20 2b 20 39 36 20 46 52 4f 4d 20 74  col1 + 96 FROM t
18750 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
18760 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  -..NULL....skipi
18770 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
18780 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
18790 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
187a0 35 33 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  532..SELECT DIST
187b0 49 4e 43 54 20 63 6f 6c 30 20 2b 20 2d 20 2b 20  INCT col0 + - + 
187c0 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
187d0 4e 54 45 47 45 52 20 29 20 2f 20 2b 20 63 6f 6c  NTEGER ) / + col
187e0 30 20 2b 20 2d 20 63 6f 6c 31 20 2b 20 39 36 20  0 + - col1 + 96 
187f0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
18800 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  0..----..NULL...
18810 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
18820 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
18830 54 20 2d 20 2d 20 63 6f 6c 32 20 2a 20 28 20 2d  T - - col2 * ( -
18840 20 63 6f 6c 30 20 29 20 2b 20 2b 20 2b 20 38 39   col0 ) + + + 89
18850 20 2b 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74   + + col0 FROM t
18860 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
18870 2d 0d 0a 2d 34 37 35 36 0d 0a 2d 34 38 34 31 0d  -..-4756..-4841.
18880 0a 2d 36 30 30 38 0d 0a 0d 0a 73 6b 69 70 69 66  .-6008....skipif
18890 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
188a0 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
188b0 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
188c0 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
188d0 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
188e0 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 33  rt..SELECT + - 3
188f0 34 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  4 col2 FROM tab0
18900 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
18910 2d 33 34 0d 0a 2d 33 34 0d 0a 2d 33 34 0d 0a 0d  -34..-34..-34...
18920 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
18930 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
18940 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
18950 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
18960 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
18970 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
18980 43 54 20 63 6f 6c 30 20 63 6f 6c 32 2c 20 2d 20  CT col0 col2, - 
18990 63 6f 6c 30 20 2b 20 2d 20 38 31 20 2d 20 34 33  col0 + - 81 - 43
189a0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
189b0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 2d 31  r0..----..46..-1
189c0 37 30 0d 0a 36 34 0d 0a 2d 31 38 38 0d 0a 37 35  70..64..-188..75
189d0 0d 0a 2d 31 39 39 0d 0a 0d 0a 71 75 65 72 79 20  ..-199....query 
189e0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
189f0 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
18a00 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55  AS cor0 WHERE NU
18a10 4c 4c 20 3c 20 2d 20 63 6f 6c 30 20 2b 20 2d 20  LL < - col0 + - 
18a20 36 36 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  66..----....quer
18a30 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
18a40 45 43 54 20 2b 20 2b 20 39 35 20 2a 20 2b 20 32  ECT + + 95 * + 2
18a50 34 20 2a 20 2d 20 39 33 20 2b 20 2b 20 2b 20 63  4 * - 93 + + + c
18a60 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol0 AS col1 FROM
18a70 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
18a80 2d 2d 2d 0d 0a 2d 32 31 31 39 36 35 0d 0a 2d 32  ---..-211965..-2
18a90 31 31 39 37 36 0d 0a 2d 32 31 31 39 39 34 0d 0a  11976..-211994..
18aa0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
18ab0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
18ac0 2d 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 30 20  - col2 + - col0 
18ad0 2b 20 2b 20 2d 20 63 6f 6c 32 20 2d 20 2d 20 38  + + - col2 - - 8
18ae0 35 20 2a 20 2b 20 36 33 20 2a 20 2d 20 2b 20 38  5 * + 63 * - + 8
18af0 39 20 2a 20 2d 20 39 38 20 41 53 20 63 6f 6c 30  9 * - 98 AS col0
18b00 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
18b10 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36 37 30 36 32  r0..----..467062
18b20 31 33 0d 0a 34 36 37 30 36 32 32 33 0d 0a 34 36  13..46706223..46
18b30 37 30 36 32 39 35 0d 0a 0d 0a 71 75 65 72 79 20  706295....query 
18b40 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
18b50 43 54 20 35 32 20 41 53 20 63 6f 6c 31 2c 20 63  CT 52 AS col1, c
18b60 6f 6c 32 20 2a 20 2d 20 63 6f 6c 31 20 41 53 20  ol2 * - col1 AS 
18b70 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
18b80 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 32  S cor0..----..52
18b90 0d 0a 2d 32 31 30 0d 0a 35 32 0d 0a 2d 33 38 30  ..-210..52..-380
18ba0 37 0d 0a 35 32 0d 0a 2d 39 39 0d 0a 0d 0a 71 75  7..52..-99....qu
18bb0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
18bc0 45 4c 45 43 54 20 2b 20 34 34 20 2a 20 63 6f 6c  ELECT + 44 * col
18bd0 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  0 AS col0 FROM t
18be0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 30 32 34 0d  ab2..----..2024.
18bf0 0a 32 38 31 36 0d 0a 33 33 30 30 0d 0a 0d 0a 6f  .2816..3300....o
18c00 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
18c10 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
18c20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
18c30 74 20 6c 61 62 65 6c 2d 35 34 31 0d 0a 53 45 4c  t label-541..SEL
18c40 45 43 54 20 41 4c 4c 20 2d 20 31 34 20 2a 20 2b  ECT ALL - 14 * +
18c50 20 28 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20   ( - COUNT( * ) 
18c60 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
18c70 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 34 32 0d 0a 0d  ab1..----..42...
18c80 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
18c90 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
18ca0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
18cb0 6c 61 62 65 6c 2d 35 34 31 0d 0a 53 45 4c 45 43  label-541..SELEC
18cc0 54 20 41 4c 4c 20 2d 20 31 34 20 2a 20 2b 20 28  T ALL - 14 * + (
18cd0 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29   - COUNT ( * ) )
18ce0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
18cf0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 34 32 0d 0a 0d 0a  b1..----..42....
18d00 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
18d10 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
18d20 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
18d30 72 74 20 6c 61 62 65 6c 2d 35 34 32 0d 0a 53 45  rt label-542..SE
18d40 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f  LECT DISTINCT CO
18d50 55 4e 54 28 20 41 4c 4c 20 63 6f 6c 32 20 29 20  UNT( ALL col2 ) 
18d60 2a 20 2b 20 38 34 20 46 52 4f 4d 20 74 61 62 31  * + 84 FROM tab1
18d70 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
18d80 32 35 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  252....skipif my
18d90 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
18da0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
18db0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 34 32 0d  wsort label-542.
18dc0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
18dd0 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20 63 6f 6c   COUNT ( ALL col
18de0 32 20 29 20 2a 20 2b 20 38 34 20 46 52 4f 4d 20  2 ) * + 84 FROM 
18df0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
18e00 2d 2d 0d 0a 32 35 32 0d 0a 0d 0a 6f 6e 6c 79 69  --..252....onlyi
18e10 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
18e20 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
18e30 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
18e40 62 65 6c 2d 35 34 33 0d 0a 53 45 4c 45 43 54 20  bel-543..SELECT 
18e50 44 49 53 54 49 4e 43 54 20 2b 20 34 20 2b 20 2b  DISTINCT + 4 + +
18e60 20 32 36 20 2a 20 2d 20 43 4f 55 4e 54 28 20 41   26 * - COUNT( A
18e70 4c 4c 20 2b 20 2d 20 63 6f 6c 31 20 29 20 41 53  LL + - col1 ) AS
18e80 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
18e90 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
18ea0 37 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  74....skipif mys
18eb0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
18ec0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
18ed0 73 6f 72 74 20 6c 61 62 65 6c 2d 35 34 33 0d 0a  sort label-543..
18ee0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
18ef0 2b 20 34 20 2b 20 2b 20 32 36 20 2a 20 2d 20 43  + 4 + + 26 * - C
18f00 4f 55 4e 54 20 28 20 41 4c 4c 20 2b 20 2d 20 63  OUNT ( ALL + - c
18f10 6f 6c 31 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ol1 ) AS col0 FR
18f20 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
18f30 0a 2d 2d 2d 2d 0d 0a 2d 37 34 0d 0a 0d 0a 71 75  .----..-74....qu
18f40 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
18f50 45 4c 45 43 54 20 2d 20 2b 20 33 31 20 2b 20 2b  ELECT - + 31 + +
18f60 20 37 35 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   75 AS col2 FROM
18f70 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
18f80 2d 2d 2d 0d 0a 34 34 0d 0a 34 34 0d 0a 34 34 0d  ---..44..44..44.
18f90 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
18fa0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44  # CAST syntax: D
18fb0 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71  ECIMAL type: ..q
18fc0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
18fd0 61 62 65 6c 2d 35 34 35 0d 0a 53 45 4c 45 43 54  abel-545..SELECT
18fe0 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 32 20 46   col2 + + col2 F
18ff0 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 2b  ROM tab1 WHERE +
19000 20 39 37 20 42 45 54 57 45 45 4e 20 2d 20 63 6f   97 BETWEEN - co
19010 6c 30 20 41 4e 44 20 2b 20 43 41 53 54 28 20 2d  l0 AND + CAST( -
19020 20 36 31 20 41 53 20 44 45 43 49 4d 41 4c 20 29   61 AS DECIMAL )
19030 20 2a 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 2d 20   * + col1 + - - 
19040 37 20 2b 20 2d 20 2b 20 63 6f 6c 30 0d 0a 2d 2d  7 + - + col0..--
19050 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
19060 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
19070 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
19080 73 6f 72 74 20 6c 61 62 65 6c 2d 35 34 35 0d 0a  sort label-545..
19090 53 45 4c 45 43 54 20 63 6f 6c 32 20 2b 20 2b 20  SELECT col2 + + 
190a0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57  col2 FROM tab1 W
190b0 48 45 52 45 20 2b 20 39 37 20 42 45 54 57 45 45  HERE + 97 BETWEE
190c0 4e 20 2d 20 63 6f 6c 30 20 41 4e 44 20 2b 20 43  N - col0 AND + C
190d0 41 53 54 20 28 20 2d 20 36 31 20 41 53 20 52 45  AST ( - 61 AS RE
190e0 41 4c 20 29 20 2a 20 2b 20 63 6f 6c 31 20 2b 20  AL ) * + col1 + 
190f0 2d 20 2d 20 37 20 2b 20 2d 20 2b 20 63 6f 6c 30  - - 7 + - + col0
19100 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
19110 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
19120 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
19130 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
19140 65 6c 2d 35 34 36 0d 0a 53 45 4c 45 43 54 20 2d  el-546..SELECT -
19150 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
19160 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 2c 20 74  ol2 FROM tab2, t
19170 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
19180 2d 0d 0a 2d 39 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..-9....skipif 
19190 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
191a0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
191b0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 34  rowsort label-54
191c0 36 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e  6..SELECT - COUN
191d0 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20  T ( * ) AS col2 
191e0 46 52 4f 4d 20 74 61 62 32 2c 20 74 61 62 32 20  FROM tab2, tab2 
191f0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
19200 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  9....query I row
19210 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
19220 20 2b 20 28 20 2d 20 2b 20 31 36 20 29 20 41 53   + ( - + 16 ) AS
19230 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
19240 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
19250 49 4e 20 74 61 62 32 20 63 6f 72 31 0d 0a 2d 2d  IN tab2 cor1..--
19260 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
19270 68 69 6e 67 20 74 6f 20 62 65 32 32 61 63 37 36  hing to be22ac76
19280 62 34 32 63 36 66 37 32 31 32 65 63 63 30 62 61  b42c6f7212ecc0ba
19290 37 63 38 39 65 62 33 34 0d 0a 0d 0a 6f 6e 6c 79  7c89eb34....only
192a0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
192b0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56  gate syntax: DIV
192c0 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
192d0 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
192e0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
192f0 34 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  48..SELECT DISTI
19300 4e 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a  NCT COUNT( * ) *
19310 20 2d 20 31 37 20 2a 20 2d 20 2d 20 43 4f 55 4e   - 17 * - - COUN
19320 54 28 20 2a 20 29 20 2d 20 2b 20 4d 49 4e 28 20  T( * ) - + MIN( 
19330 2d 20 2b 20 63 6f 6c 30 20 29 20 44 49 56 20 2b  - + col0 ) DIV +
19340 20 43 4f 55 4e 54 28 20 2a 20 29 20 63 6f 6c 30   COUNT( * ) col0
19350 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
19360 0d 0a 2d 31 32 38 0d 0a 0d 0a 73 6b 69 70 69 66  ..-128....skipif
19370 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
19380 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
19390 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
193a0 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
193b0 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
193c0 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
193d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
193e0 74 20 6c 61 62 65 6c 2d 35 34 38 0d 0a 53 45 4c  t label-548..SEL
193f0 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55  ECT DISTINCT COU
19400 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20 31 37 20  NT ( * ) * - 17 
19410 2a 20 2d 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  * - - COUNT ( * 
19420 29 20 2d 20 2b 20 4d 49 4e 20 28 20 2d 20 2b 20  ) - + MIN ( - + 
19430 63 6f 6c 30 20 29 20 2f 20 2b 20 43 4f 55 4e 54  col0 ) / + COUNT
19440 20 28 20 2a 20 29 20 63 6f 6c 30 20 46 52 4f 4d   ( * ) col0 FROM
19450 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32   tab2..----..-12
19460 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  8....onlyif mysq
19470 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
19480 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e  ntax: DIV for in
19490 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
194a0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
194b0 74 20 6c 61 62 65 6c 2d 35 34 39 0d 0a 53 45 4c  t label-549..SEL
194c0 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  ECT + COUNT( * )
194d0 20 44 49 56 20 2b 20 2b 20 34 20 2d 20 2b 20 2d   DIV + + 4 - + -
194e0 20 38 36 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d   86 FROM tab0..-
194f0 2d 2d 2d 0d 0a 38 36 0d 0a 0d 0a 73 6b 69 70 69  ---..86....skipi
19500 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
19510 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
19520 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
19530 35 34 39 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f  549..SELECT + CO
19540 55 4e 54 20 28 20 2a 20 29 20 2f 20 2b 20 2b 20  UNT ( * ) / + + 
19550 34 20 2d 20 2b 20 2d 20 38 36 20 46 52 4f 4d 20  4 - + - 86 FROM 
19560 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 38 36 0d 0a  tab0..----..86..
19570 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
19580 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30  t..SELECT - col0
19590 20 2a 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 63 6f   * - col1 * + co
195a0 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l0 AS col0 FROM 
195b0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
195c0 2d 2d 0d 0a 31 30 37 39 31 36 0d 0a 33 31 35 33  --..107916..3153
195d0 39 32 0d 0a 33 37 36 38 37 35 0d 0a 0d 0a 71 75  92..376875....qu
195e0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
195f0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
19600 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72   * FROM tab2 cor
19610 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 28 20  0 WHERE NOT + ( 
19620 2d 20 2d 20 63 6f 6c 30 20 29 20 42 45 54 57 45  - - col0 ) BETWE
19630 45 4e 20 2b 20 63 6f 6c 31 20 41 4e 44 20 63 6f  EN + col1 AND co
19640 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  l1..----..9 valu
19650 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35  es hashing to 75
19660 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63  c998aa53ac83218c
19670 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a  bf2feb962d0a49..
19680 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
19690 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
196a0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
196b0 73 6f 72 74 20 6c 61 62 65 6c 2d 35 35 32 0d 0a  sort label-552..
196c0 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28 20  SELECT + COUNT( 
196d0 2a 20 29 20 2a 20 34 32 20 2b 20 43 4f 55 4e 54  * ) * 42 + COUNT
196e0 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ( * ) AS col0 FR
196f0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
19700 0a 2d 2d 2d 2d 0d 0a 31 32 39 0d 0a 0d 0a 73 6b  .----..129....sk
19710 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
19720 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
19730 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
19740 65 6c 2d 35 35 32 0d 0a 53 45 4c 45 43 54 20 2b  el-552..SELECT +
19750 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 34   COUNT ( * ) * 4
19760 32 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  2 + COUNT ( * ) 
19770 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
19780 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
19790 0a 31 32 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .129....onlyif m
197a0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
197b0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
197c0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
197d0 2d 35 35 33 0d 0a 53 45 4c 45 43 54 20 43 4f 55  -553..SELECT COU
197e0 4e 54 28 20 2a 20 29 20 2a 20 2d 20 32 37 20 41  NT( * ) * - 27 A
197f0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
19800 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
19810 2d 38 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -81....skipif my
19820 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
19830 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
19840 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 35 33 0d  wsort label-553.
19850 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20  .SELECT COUNT ( 
19860 2a 20 29 20 2a 20 2d 20 32 37 20 41 53 20 63 6f  * ) * - 27 AS co
19870 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
19880 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 31 0d  cor0..----..-81.
19890 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
198a0 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
198b0 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
198c0 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
198d0 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
198e0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
198f0 45 43 54 20 44 49 53 54 49 4e 43 54 20 33 39 20  ECT DISTINCT 39 
19900 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
19910 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 39  S cor0..----..39
19920 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
19930 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
19940 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46  - col2 AS col1 F
19950 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
19960 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20   WHERE NOT col2 
19970 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
19980 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  -....query III r
19990 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
199a0 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
199b0 61 62 31 20 57 48 45 52 45 20 2d 20 2d 20 63 6f  ab1 WHERE - - co
199c0 6c 30 20 2f 20 2b 20 63 6f 6c 30 20 49 53 20 4e  l0 / + col0 IS N
199d0 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  OT NULL..----..9
199e0 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
199f0 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64  to c6c0a4111b36d
19a00 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34  04dbc811a11e4d54
19a10 63 61 64 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  cad....onlyif my
19a20 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
19a30 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
19a40 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
19a50 72 74 20 6c 61 62 65 6c 2d 35 35 37 0d 0a 53 45  rt label-557..SE
19a60 4c 45 43 54 20 2d 20 28 20 2d 20 2d 20 43 41 53  LECT - ( - - CAS
19a70 54 28 20 2b 20 63 6f 6c 30 20 41 53 20 53 49 47  T( + col0 AS SIG
19a80 4e 45 44 20 29 20 29 20 2a 20 2b 20 63 6f 6c 30  NED ) ) * + col0
19a90 2c 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  , col0 FROM tab1
19aa0 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 36 30 31 0d 0a 35  ..----..-2601..5
19ab0 31 0d 0a 2d 37 32 32 35 0d 0a 38 35 0d 0a 2d 38  1..-7225..85..-8
19ac0 32 38 31 0d 0a 39 31 0d 0a 0d 0a 73 6b 69 70 69  281..91....skipi
19ad0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
19ae0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
19af0 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
19b00 2d 35 35 37 0d 0a 53 45 4c 45 43 54 20 2d 20 28  -557..SELECT - (
19b10 20 2d 20 2d 20 43 41 53 54 20 28 20 2b 20 63 6f   - - CAST ( + co
19b20 6c 30 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  l0 AS INTEGER ) 
19b30 29 20 2a 20 2b 20 63 6f 6c 30 2c 20 63 6f 6c 30  ) * + col0, col0
19b40 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
19b50 0d 0a 2d 32 36 30 31 0d 0a 35 31 0d 0a 2d 37 32  ..-2601..51..-72
19b60 32 35 0d 0a 38 35 0d 0a 2d 38 32 38 31 0d 0a 39  25..85..-8281..9
19b70 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
19b80 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
19b90 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
19ba0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 35  rowsort label-55
19bb0 38 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20 4d 41  8..SELECT - ( MA
19bc0 58 28 20 44 49 53 54 49 4e 43 54 20 2b 20 37 35  X( DISTINCT + 75
19bd0 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a   ) ) FROM tab1..
19be0 2d 2d 2d 2d 0d 0a 2d 37 35 0d 0a 0d 0a 73 6b 69  ----..-75....ski
19bf0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
19c00 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
19c10 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
19c20 6c 2d 35 35 38 0d 0a 53 45 4c 45 43 54 20 2d 20  l-558..SELECT - 
19c30 28 20 4d 41 58 20 28 20 44 49 53 54 49 4e 43 54  ( MAX ( DISTINCT
19c40 20 2b 20 37 35 20 29 20 29 20 46 52 4f 4d 20 74   + 75 ) ) FROM t
19c50 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 35 0d 0a  ab1..----..-75..
19c60 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
19c70 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
19c80 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
19c90 73 6f 72 74 20 6c 61 62 65 6c 2d 35 35 39 0d 0a  sort label-559..
19ca0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
19cb0 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20 2b 20  MAX( DISTINCT + 
19cc0 63 6f 6c 32 20 29 20 2a 20 2b 20 43 4f 55 4e 54  col2 ) * + COUNT
19cd0 28 20 2a 20 29 20 2d 20 2d 20 39 32 20 2a 20 43  ( * ) - - 92 * C
19ce0 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c  OUNT( * ) AS col
19cf0 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
19d00 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 37 33 0d 0a  or0..----..573..
19d10 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
19d20 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
19d30 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
19d40 20 6c 61 62 65 6c 2d 35 35 39 0d 0a 53 45 4c 45   label-559..SELE
19d50 43 54 20 44 49 53 54 49 4e 43 54 20 4d 41 58 20  CT DISTINCT MAX 
19d60 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  ( DISTINCT + col
19d70 32 20 29 20 2a 20 2b 20 43 4f 55 4e 54 20 28 20  2 ) * + COUNT ( 
19d80 2a 20 29 20 2d 20 2d 20 39 32 20 2a 20 43 4f 55  * ) - - 92 * COU
19d90 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30  NT ( * ) AS col0
19da0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
19db0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 37 33 0d 0a 0d  r0..----..573...
19dc0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
19dd0 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 2c 20  t..SELECT col1, 
19de0 2b 20 63 6f 6c 31 20 2d 20 2b 20 2b 20 63 6f 6c  + col1 - + + col
19df0 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
19e00 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 30  or0..----..14..0
19e10 0d 0a 34 37 0d 0a 30 0d 0a 35 0d 0a 30 0d 0a 0d  ..47..0..5..0...
19e20 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
19e30 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
19e40 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
19e50 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
19e60 6c 2d 35 36 31 0d 0a 53 45 4c 45 43 54 20 41 4c  l-561..SELECT AL
19e70 4c 20 2d 20 63 6f 6c 30 20 44 49 56 20 63 6f 6c  L - col0 DIV col
19e80 30 20 2b 20 2d 20 31 32 20 41 53 20 63 6f 6c 31  0 + - 12 AS col1
19e90 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d   FROM tab2 cor0.
19ea0 0a 2d 2d 2d 2d 0d 0a 2d 31 33 0d 0a 2d 31 33 0d  .----..-13..-13.
19eb0 0a 2d 31 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-13....skipif m
19ec0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
19ed0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
19ee0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 36 31  owsort label-561
19ef0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63  ..SELECT ALL - c
19f00 6f 6c 30 20 2f 20 63 6f 6c 30 20 2b 20 2d 20 31  ol0 / col0 + - 1
19f10 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  2 AS col1 FROM t
19f20 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab2 cor0..----..
19f30 2d 31 33 0d 0a 2d 31 33 0d 0a 2d 31 33 0d 0a 0d  -13..-13..-13...
19f40 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
19f50 0d 0a 53 45 4c 45 43 54 20 28 20 2b 20 32 33 20  ..SELECT ( + 23 
19f60 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
19f70 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 32  or0..----..23..2
19f80 33 0d 0a 32 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  3..23....onlyif 
19f90 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
19fa0 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
19fb0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
19fc0 6f 72 74 20 6c 61 62 65 6c 2d 35 36 33 0d 0a 53  ort label-563..S
19fd0 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 41 53 54  ELECT ALL - CAST
19fe0 28 20 32 37 20 41 53 20 53 49 47 4e 45 44 20 29  ( 27 AS SIGNED )
19ff0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
1a000 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
1a010 0d 0a 2d 32 37 0d 0a 2d 32 37 0d 0a 2d 32 37 0d  ..-27..-27..-27.
1a020 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1a030 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1a040 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1a050 74 20 6c 61 62 65 6c 2d 35 36 33 0d 0a 53 45 4c  t label-563..SEL
1a060 45 43 54 20 41 4c 4c 20 2d 20 43 41 53 54 20 28  ECT ALL - CAST (
1a070 20 32 37 20 41 53 20 49 4e 54 45 47 45 52 20 29   27 AS INTEGER )
1a080 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
1a090 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
1a0a0 0d 0a 2d 32 37 0d 0a 2d 32 37 0d 0a 2d 32 37 0d  ..-27..-27..-27.
1a0b0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1a0c0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
1a0d0 4e 43 54 20 2b 20 33 20 46 52 4f 4d 20 74 61 62  NCT + 3 FROM tab
1a0e0 30 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  0 AS cor0 CROSS 
1a0f0 4a 4f 49 4e 20 74 61 62 31 20 41 53 20 63 6f 72  JOIN tab1 AS cor
1a100 31 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75  1..----..3....qu
1a110 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
1a120 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
1a130 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
1a140 57 48 45 52 45 20 36 37 20 49 53 20 4e 55 4c 4c  WHERE 67 IS NULL
1a150 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
1a160 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
1a170 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
1a180 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1a190 20 57 48 45 52 45 20 63 6f 6c 30 20 3e 20 2d 20   WHERE col0 > - 
1a1a0 2d 20 32 39 20 2b 20 2b 20 2d 20 63 6f 6c 31 0d  - 29 + + - col1.
1a1b0 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
1a1c0 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61  hashing to c6c0a
1a1d0 34 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31  4111b36d04dbc811
1a1e0 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71  a11e4d54cad....q
1a1f0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1a200 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 39 36 20  SELECT ALL + 96 
1a210 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46  + col0 AS col2 F
1a220 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
1a230 0d 0a 2d 2d 2d 2d 0d 0a 31 31 31 0d 0a 31 38 33  ..----..111..183
1a240 0d 0a 31 39 33 0d 0a 0d 0a 71 75 65 72 79 20 49  ..193....query I
1a250 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1a260 20 2b 20 31 34 20 2b 20 2d 20 2d 20 37 32 20 41   + 14 + - - 72 A
1a270 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
1a280 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1a290 38 36 0d 0a 38 36 0d 0a 38 36 0d 0a 0d 0a 71 75  86..86..86....qu
1a2a0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
1a2b0 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
1a2c0 61 62 30 20 63 6f 72 30 20 57 48 45 52 45 20 4e  ab0 cor0 WHERE N
1a2d0 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  ULL NOT BETWEEN 
1a2e0 4e 55 4c 4c 20 41 4e 44 20 2d 20 36 32 0d 0a 2d  NULL AND - 62..-
1a2f0 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
1a300 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
1a310 20 31 39 20 2b 20 2d 20 39 39 20 2b 20 2b 20 2d   19 + - 99 + + -
1a320 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
1a330 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 37  cor0..----..-127
1a340 0d 0a 2d 38 35 0d 0a 2d 39 34 0d 0a 0d 0a 6f 6e  ..-85..-94....on
1a350 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
1a360 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
1a370 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1a380 20 6c 61 62 65 6c 2d 35 37 31 0d 0a 53 45 4c 45   label-571..SELE
1a390 43 54 20 41 4c 4c 20 2d 20 32 37 20 2b 20 43 4f  CT ALL - 27 + CO
1a3a0 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30  UNT( * ) AS col0
1a3b0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
1a3c0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 34 0d 0a 0d  r0..----..-24...
1a3d0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1a3e0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1a3f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1a400 6c 61 62 65 6c 2d 35 37 31 0d 0a 53 45 4c 45 43  label-571..SELEC
1a410 54 20 41 4c 4c 20 2d 20 32 37 20 2b 20 43 4f 55  T ALL - 27 + COU
1a420 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30  NT ( * ) AS col0
1a430 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
1a440 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 34 0d 0a 0d  r0..----..-24...
1a450 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
1a460 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
1a470 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
1a480 48 45 52 45 20 2d 20 63 6f 6c 32 20 49 4e 20 28  HERE - col2 IN (
1a490 20 63 6f 6c 30 2c 20 2d 20 63 6f 6c 30 2c 20 2b   col0, - col0, +
1a4a0 20 34 30 2c 20 2d 20 63 6f 6c 30 20 2b 20 2d 20   40, - col0 + - 
1a4b0 34 31 20 2b 20 2d 20 2b 20 63 6f 6c 31 2c 20 28  41 + - + col1, (
1a4c0 20 2b 20 2d 20 63 6f 6c 31 20 29 20 29 0d 0a 2d   + - col1 ) )..-
1a4d0 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ---....query III
1a4e0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1a4f0 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
1a500 63 6f 72 30 20 57 48 45 52 45 20 35 31 20 2b 20  cor0 WHERE 51 + 
1a510 2d 20 63 6f 6c 31 20 4e 4f 54 20 42 45 54 57 45  - col1 NOT BETWE
1a520 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2d 20 63 6f  EN NULL AND - co
1a530 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  l1..----..9 valu
1a540 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35  es hashing to 75
1a550 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63  c998aa53ac83218c
1a560 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a  bf2feb962d0a49..
1a570 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1a580 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
1a590 2b 20 63 6f 6c 30 20 2a 20 2b 20 2d 20 63 6f 6c  + col0 * + - col
1a5a0 30 20 2b 20 2d 20 2d 20 37 31 20 41 53 20 63 6f  0 + - - 71 AS co
1a5b0 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
1a5c0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30 34  cor0..----..-204
1a5d0 35 0d 0a 2d 34 30 32 35 0d 0a 2d 35 35 35 34 0d  5..-4025..-5554.
1a5e0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1a5f0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
1a600 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
1a610 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1a620 62 65 6c 2d 35 37 35 0d 0a 53 45 4c 45 43 54 20  bel-575..SELECT 
1a630 44 49 53 54 49 4e 43 54 20 2b 20 32 20 2a 20 2d  DISTINCT + 2 * -
1a640 20 2b 20 43 41 53 54 28 20 63 6f 6c 32 20 41 53   + CAST( col2 AS
1a650 20 53 49 47 4e 45 44 20 29 20 2b 20 2d 20 2b 20   SIGNED ) + - + 
1a660 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 32 20 2b 20  col0 * - col2 + 
1a670 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
1a680 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30  S cor0..----..10
1a690 35 38 0d 0a 32 35 34 34 0d 0a 34 33 30 39 0d 0a  58..2544..4309..
1a6a0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1a6b0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1a6c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1a6d0 20 6c 61 62 65 6c 2d 35 37 35 0d 0a 53 45 4c 45   label-575..SELE
1a6e0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 32 20  CT DISTINCT + 2 
1a6f0 2a 20 2d 20 2b 20 43 41 53 54 20 28 20 63 6f 6c  * - + CAST ( col
1a700 32 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b  2 AS INTEGER ) +
1a710 20 2d 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 63 6f   - + col0 * - co
1a720 6c 32 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74  l2 + col0 FROM t
1a730 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
1a740 2d 0d 0a 31 30 35 38 0d 0a 32 35 34 34 0d 0a 34  -..1058..2544..4
1a750 33 30 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  309....onlyif my
1a760 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
1a770 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
1a780 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1a790 35 37 36 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f  576..SELECT - CO
1a7a0 55 4e 54 28 20 2a 20 29 20 2b 20 2d 20 2d 20 53  UNT( * ) + - - S
1a7b0 55 4d 28 20 44 49 53 54 49 4e 43 54 20 2d 20 2d  UM( DISTINCT - -
1a7c0 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 32 20   col0 ) AS col2 
1a7d0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
1a7e0 30 20 57 48 45 52 45 20 63 6f 6c 32 20 2b 20 2d  0 WHERE col2 + -
1a7f0 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 28 20 2b 20   + col2 * + ( + 
1a800 33 37 20 29 20 2a 20 2b 20 63 6f 6c 31 20 2b 20  37 ) * + col1 + 
1a810 2b 20 2d 20 63 6f 6c 32 20 49 4e 20 28 20 63 6f  + - col2 IN ( co
1a820 6c 32 20 2d 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d  l2 - col1 )..---
1a830 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  -..NULL....skipi
1a840 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1a850 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
1a860 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1a870 35 37 36 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f  576..SELECT - CO
1a880 55 4e 54 20 28 20 2a 20 29 20 2b 20 2d 20 2d 20  UNT ( * ) + - - 
1a890 53 55 4d 20 28 20 44 49 53 54 49 4e 43 54 20 2d  SUM ( DISTINCT -
1a8a0 20 2d 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c   - col0 ) AS col
1a8b0 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
1a8c0 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 32 20 2b  or0 WHERE col2 +
1a8d0 20 2d 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 28 20   - + col2 * + ( 
1a8e0 2b 20 33 37 20 29 20 2a 20 2b 20 63 6f 6c 31 20  + 37 ) * + col1 
1a8f0 2b 20 2b 20 2d 20 63 6f 6c 32 20 49 4e 20 28 20  + + - col2 IN ( 
1a900 63 6f 6c 32 20 2d 20 63 6f 6c 31 20 29 0d 0a 2d  col2 - col1 )..-
1a910 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65  ---..NULL....que
1a920 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
1a930 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1a940 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
1a950 45 20 4e 4f 54 20 4e 55 4c 4c 20 3c 20 34 38 0d  E NOT NULL < 48.
1a960 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
1a970 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
1a980 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
1a990 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
1a9a0 73 6f 72 74 20 6c 61 62 65 6c 2d 35 37 38 0d 0a  sort label-578..
1a9b0 53 45 4c 45 43 54 20 63 6f 6c 31 2c 20 2b 20 36  SELECT col1, + 6
1a9c0 33 20 44 49 56 20 2d 20 2d 20 63 6f 6c 31 20 63  3 DIV - - col1 c
1a9d0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
1a9e0 2d 2d 2d 0d 0a 35 31 0d 0a 31 0d 0a 36 37 0d 0a  ---..51..1..67..
1a9f0 30 0d 0a 37 37 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  0..77..0....skip
1aa00 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1aa10 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
1aa20 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
1aa30 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
1aa40 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
1aa50 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
1aa60 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ns..query II row
1aa70 73 6f 72 74 20 6c 61 62 65 6c 2d 35 37 38 0d 0a  sort label-578..
1aa80 53 45 4c 45 43 54 20 63 6f 6c 31 2c 20 2b 20 36  SELECT col1, + 6
1aa90 33 20 2f 20 2d 20 2d 20 63 6f 6c 31 20 63 6f 6c  3 / - - col1 col
1aaa0 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
1aab0 2d 0d 0a 35 31 0d 0a 31 0d 0a 36 37 0d 0a 30 0d  -..51..1..67..0.
1aac0 0a 37 37 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20  .77..0....query 
1aad0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1aae0 43 54 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c 30 20  CT col2, + col0 
1aaf0 2a 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  * col2 FROM tab2
1ab00 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 31 30 35 38  ..----..23..1058
1ab10 0d 0a 34 30 0d 0a 32 35 36 30 0d 0a 35 38 0d 0a  ..40..2560..58..
1ab20 34 33 35 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  4350....query I 
1ab30 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1ab40 2d 20 35 36 20 2d 20 2b 20 38 36 20 2a 20 37 38  - 56 - + 86 * 78
1ab50 20 2a 20 2d 20 37 20 41 53 20 63 6f 6c 31 20 46   * - 7 AS col1 F
1ab60 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
1ab70 0d 0a 2d 2d 2d 2d 0d 0a 34 36 39 30 30 0d 0a 34  ..----..46900..4
1ab80 36 39 30 30 0d 0a 34 36 39 30 30 0d 0a 0d 0a 71  6900..46900....q
1ab90 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1aba0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1abb0 2d 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 32 20  - col2 * - col2 
1abc0 2a 20 2b 20 35 36 20 41 53 20 63 6f 6c 32 20 46  * + 56 AS col2 F
1abd0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
1abe0 0d 0a 2d 2d 2d 2d 0d 0a 31 32 33 37 30 34 0d 0a  ..----..123704..
1abf0 35 34 38 38 35 36 0d 0a 35 36 30 30 0d 0a 0d 0a  548856..5600....
1ac00 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
1ac10 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
1ac20 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1ac30 72 74 20 6c 61 62 65 6c 2d 35 38 32 0d 0a 53 45  rt label-582..SE
1ac40 4c 45 43 54 20 41 4c 4c 20 2d 20 32 32 20 2a 20  LECT ALL - 22 * 
1ac50 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  - - COUNT( * ) F
1ac60 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1ac70 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 36 0d 0a 0d 0a 73  ..----..-66....s
1ac80 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1ac90 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1aca0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1acb0 62 65 6c 2d 35 38 32 0d 0a 53 45 4c 45 43 54 20  bel-582..SELECT 
1acc0 41 4c 4c 20 2d 20 32 32 20 2a 20 2d 20 2d 20 43  ALL - 22 * - - C
1acd0 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20  OUNT ( * ) FROM 
1ace0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
1acf0 2d 2d 0d 0a 2d 36 36 0d 0a 0d 0a 6f 6e 6c 79 69  --..-66....onlyi
1ad00 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
1ad10 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
1ad20 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
1ad30 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 38 33 0d  wsort label-583.
1ad40 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1ad50 20 2b 20 63 6f 6c 31 20 44 49 56 20 2d 20 2b 20   + col1 DIV - + 
1ad60 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 32 20 46 52  col2 + - col2 FR
1ad70 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d  OM tab0 cor0..--
1ad80 2d 2d 0d 0a 2d 31 32 0d 0a 2d 34 38 0d 0a 2d 39  --..-12..-48..-9
1ad90 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
1ada0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1adb0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1adc0 6f 72 74 20 6c 61 62 65 6c 2d 35 38 33 0d 0a 53  ort label-583..S
1add0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
1ade0 20 63 6f 6c 31 20 2f 20 2d 20 2b 20 63 6f 6c 32   col1 / - + col2
1adf0 20 2b 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74   + - col2 FROM t
1ae00 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab0 cor0..----..
1ae10 2d 31 32 0d 0a 2d 34 38 0d 0a 2d 39 39 0d 0a 0d  -12..-48..-99...
1ae20 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1ae30 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67  CAST syntax: agg
1ae40 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53  regate syntax: S
1ae50 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
1ae60 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
1ae70 61 62 65 6c 2d 35 38 34 0d 0a 53 45 4c 45 43 54  abel-584..SELECT
1ae80 20 44 49 53 54 49 4e 43 54 20 43 41 53 54 28 20   DISTINCT CAST( 
1ae90 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
1aea0 20 2a 20 33 30 2c 20 2d 20 4d 41 58 28 20 41 4c   * 30, - MAX( AL
1aeb0 4c 20 2d 20 2b 20 37 36 20 29 20 41 53 20 63 6f  L - + 76 ) AS co
1aec0 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l1 FROM tab0 cor
1aed0 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 37  0..----..NULL..7
1aee0 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  6....skipif mysq
1aef0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1af00 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
1af10 73 6f 72 74 20 6c 61 62 65 6c 2d 35 38 34 0d 0a  sort label-584..
1af20 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1af30 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
1af40 4e 54 45 47 45 52 20 29 20 2a 20 33 30 2c 20 2d  NTEGER ) * 30, -
1af50 20 4d 41 58 20 28 20 41 4c 4c 20 2d 20 2b 20 37   MAX ( ALL - + 7
1af60 36 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  6 ) AS col1 FROM
1af70 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab0 cor0..----
1af80 0d 0a 4e 55 4c 4c 0d 0a 37 36 0d 0a 0d 0a 6f 6e  ..NULL..76....on
1af90 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
1afa0 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
1afb0 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
1afc0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
1afd0 38 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  85..SELECT ALL -
1afe0 20 38 33 20 44 49 56 20 2b 20 2d 20 38 30 20 2b   83 DIV + - 80 +
1aff0 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   - col2 FROM tab
1b000 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
1b010 0a 2d 32 32 0d 0a 2d 33 39 0d 0a 2d 35 37 0d 0a  .-22..-39..-57..
1b020 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1b030 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1b040 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1b050 20 6c 61 62 65 6c 2d 35 38 35 0d 0a 53 45 4c 45   label-585..SELE
1b060 43 54 20 41 4c 4c 20 2d 20 38 33 20 2f 20 2b 20  CT ALL - 83 / + 
1b070 2d 20 38 30 20 2b 20 2d 20 63 6f 6c 32 20 46 52  - 80 + - col2 FR
1b080 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
1b090 0a 2d 2d 2d 2d 0d 0a 2d 32 32 0d 0a 2d 33 39 0d  .----..-22..-39.
1b0a0 0a 2d 35 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-57....query I 
1b0b0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1b0c0 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 41 53  DISTINCT col2 AS
1b0d0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
1b0e0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28  cor0 WHERE NOT (
1b0f0 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20 28 20 38   NULL NOT IN ( 8
1b100 35 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f  5 ) )..----....o
1b110 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
1b120 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
1b130 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1b140 74 20 6c 61 62 65 6c 2d 35 38 37 0d 0a 53 45 4c  t label-587..SEL
1b150 45 43 54 20 41 4c 4c 20 2d 20 53 55 4d 28 20 2b  ECT ALL - SUM( +
1b160 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62   col0 ) FROM tab
1b170 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
1b180 4e 4f 54 20 2d 20 63 6f 6c 31 20 2a 20 34 32 20  NOT - col1 * 42 
1b190 2a 20 2d 20 63 6f 6c 31 20 3e 20 4e 55 4c 4c 0d  * - col1 > NULL.
1b1a0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
1b1b0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1b1c0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1b1d0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1b1e0 62 65 6c 2d 35 38 37 0d 0a 53 45 4c 45 43 54 20  bel-587..SELECT 
1b1f0 41 4c 4c 20 2d 20 53 55 4d 20 28 20 2b 20 63 6f  ALL - SUM ( + co
1b200 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41  l0 ) FROM tab2 A
1b210 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
1b220 20 2d 20 63 6f 6c 31 20 2a 20 34 32 20 2a 20 2d   - col1 * 42 * -
1b230 20 63 6f 6c 31 20 3e 20 4e 55 4c 4c 0d 0a 2d 2d   col1 > NULL..--
1b240 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72  --..NULL....quer
1b250 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
1b260 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
1b270 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
1b280 4e 4f 54 20 28 20 4e 4f 54 20 2d 20 63 6f 6c 32  NOT ( NOT - col2
1b290 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 20 29 0d 0a   IS NOT NULL )..
1b2a0 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
1b2b0 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38  ashing to 75c998
1b2c0 61 61 35 33 61 63 38 33 32 31 38 63 62 66 32 66  aa53ac83218cbf2f
1b2d0 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 6f 6e  eb962d0a49....on
1b2e0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
1b2f0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
1b300 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1b310 20 6c 61 62 65 6c 2d 35 38 39 0d 0a 53 45 4c 45   label-589..SELE
1b320 43 54 20 2d 20 2b 20 28 20 2b 20 43 4f 55 4e 54  CT - + ( + COUNT
1b330 28 20 41 4c 4c 20 63 6f 6c 32 20 29 20 29 20 46  ( ALL col2 ) ) F
1b340 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
1b350 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b  ..----..-3....sk
1b360 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1b370 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1b380 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1b390 65 6c 2d 35 38 39 0d 0a 53 45 4c 45 43 54 20 2d  el-589..SELECT -
1b3a0 20 2b 20 28 20 2b 20 43 4f 55 4e 54 20 28 20 41   + ( + COUNT ( A
1b3b0 4c 4c 20 63 6f 6c 32 20 29 20 29 20 46 52 4f 4d  LL col2 ) ) FROM
1b3c0 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
1b3d0 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79  ---..-3....query
1b3e0 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
1b3f0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
1b400 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
1b410 4e 4f 54 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 2d  NOT + col2 + - -
1b420 20 31 36 20 3c 20 2b 20 63 6f 6c 30 20 2a 20 31   16 < + col0 * 1
1b430 34 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  4..----....query
1b440 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1b450 43 54 20 2b 20 28 20 2b 20 31 30 20 29 20 41 53  CT + ( + 10 ) AS
1b460 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
1b470 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 31 30 0d 0a 31  .----..10..10..1
1b480 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  0....query II ro
1b490 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
1b4a0 2d 20 63 6f 6c 32 20 2d 20 2d 20 2d 20 63 6f 6c  - col2 - - - col
1b4b0 30 20 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 30 20  0 AS col2, col0 
1b4c0 2a 20 2d 20 2b 20 32 32 20 46 52 4f 4d 20 74 61  * - + 22 FROM ta
1b4d0 62 31 20 57 48 45 52 45 20 4e 4f 54 20 33 37 20  b1 WHERE NOT 37 
1b4e0 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
1b4f0 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  -....query II ro
1b500 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
1b510 63 6f 6c 31 20 41 53 20 63 6f 6c 32 2c 20 36 38  col1 AS col2, 68
1b520 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
1b530 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 36 38 0d  b0..----..1..68.
1b540 0a 32 31 0d 0a 36 38 0d 0a 38 31 0d 0a 36 38 0d  .21..68..81..68.
1b550 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1b560 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
1b570 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
1b580 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3c  WHERE NOT NULL <
1b590 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
1b5a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1b5b0 53 45 4c 45 43 54 20 41 4c 4c 20 31 32 20 2a 20  SELECT ALL 12 * 
1b5c0 2d 20 34 39 20 46 52 4f 4d 20 74 61 62 31 0d 0a  - 49 FROM tab1..
1b5d0 2d 2d 2d 2d 0d 0a 2d 35 38 38 0d 0a 2d 35 38 38  ----..-588..-588
1b5e0 0d 0a 2d 35 38 38 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..-588....onlyif
1b5f0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
1b600 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66  te syntax: DIV f
1b610 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
1b620 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
1b630 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 39 36  owsort label-596
1b640 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54  ..SELECT - COUNT
1b650 28 20 2d 20 2b 20 34 33 20 29 20 44 49 56 20 43  ( - + 43 ) DIV C
1b660 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74  OUNT( * ) FROM t
1b670 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 0d  ab1..----..-1...
1b680 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1b690 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1b6a0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1b6b0 6c 61 62 65 6c 2d 35 39 36 0d 0a 53 45 4c 45 43  label-596..SELEC
1b6c0 54 20 2d 20 43 4f 55 4e 54 20 28 20 2d 20 2b 20  T - COUNT ( - + 
1b6d0 34 33 20 29 20 2f 20 43 4f 55 4e 54 20 28 20 2a  43 ) / COUNT ( *
1b6e0 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d   ) FROM tab1..--
1b6f0 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 71 75 65 72 79 20  --..-1....query 
1b700 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1b710 54 20 44 49 53 54 49 4e 43 54 20 33 30 20 2a 20  T DISTINCT 30 * 
1b720 2b 20 2b 20 36 20 46 52 4f 4d 20 74 61 62 30 0d  + + 6 FROM tab0.
1b730 0a 2d 2d 2d 2d 0d 0a 31 38 30 0d 0a 0d 0a 6f 6e  .----..180....on
1b740 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
1b750 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
1b760 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1b770 20 6c 61 62 65 6c 2d 35 39 38 0d 0a 53 45 4c 45   label-598..SELE
1b780 43 54 20 53 55 4d 28 20 41 4c 4c 20 2d 20 63 6f  CT SUM( ALL - co
1b790 6c 31 20 29 20 2a 20 2b 20 33 20 46 52 4f 4d 20  l1 ) * + 3 FROM 
1b7a0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 30 39  tab0..----..-309
1b7b0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1b7c0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1b7d0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
1b7e0 72 74 20 6c 61 62 65 6c 2d 35 39 38 0d 0a 53 45  rt label-598..SE
1b7f0 4c 45 43 54 20 53 55 4d 20 28 20 41 4c 4c 20 2d  LECT SUM ( ALL -
1b800 20 63 6f 6c 31 20 29 20 2a 20 2b 20 33 20 46 52   col1 ) * + 3 FR
1b810 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
1b820 33 30 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  309....onlyif my
1b830 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
1b840 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
1b850 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1b860 74 20 6c 61 62 65 6c 2d 35 39 39 0d 0a 53 45 4c  t label-599..SEL
1b870 45 43 54 20 43 41 53 54 28 20 2b 20 2b 20 32 31  ECT CAST( + + 21
1b880 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20   AS SIGNED ) AS 
1b890 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
1b8a0 2d 2d 2d 2d 0d 0a 32 31 0d 0a 32 31 0d 0a 32 31  ----..21..21..21
1b8b0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1b8c0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1b8d0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
1b8e0 72 74 20 6c 61 62 65 6c 2d 35 39 39 0d 0a 53 45  rt label-599..SE
1b8f0 4c 45 43 54 20 43 41 53 54 20 28 20 2b 20 2b 20  LECT CAST ( + + 
1b900 32 31 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  21 AS INTEGER ) 
1b910 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
1b920 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 0d 0a 32 31 0d  0..----..21..21.
1b930 0a 32 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .21....query I r
1b940 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
1b950 4c 4c 20 2d 20 63 6f 6c 30 20 2a 20 28 20 2d 20  LL - col0 * ( - 
1b960 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 30 20 46  col2 ) AS col0 F
1b970 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
1b980 0d 0a 2d 2d 2d 2d 0d 0a 31 30 35 38 0d 0a 32 35  ..----..1058..25
1b990 36 30 0d 0a 34 33 35 30 0d 0a 0d 0a 6f 6e 6c 79  60..4350....only
1b9a0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
1b9b0 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20  syntax: DECIMAL 
1b9c0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
1b9d0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1b9e0 36 30 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  601..SELECT DIST
1b9f0 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  INCT * FROM tab0
1ba00 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
1ba10 4f 54 20 2d 20 63 6f 6c 32 20 3c 3e 20 2d 20 43  OT - col2 <> - C
1ba20 41 53 54 28 20 2b 20 2b 20 30 20 41 53 20 44 45  AST( + + 0 AS DE
1ba30 43 49 4d 41 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d  CIMAL )..----...
1ba40 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1ba50 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1ba60 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
1ba70 74 20 6c 61 62 65 6c 2d 36 30 31 0d 0a 53 45 4c  t label-601..SEL
1ba80 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
1ba90 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
1baa0 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c   WHERE NOT - col
1bab0 32 20 3c 3e 20 2d 20 43 41 53 54 20 28 20 2b 20  2 <> - CAST ( + 
1bac0 2b 20 30 20 41 53 20 52 45 41 4c 20 29 0d 0a 2d  + 0 AS REAL )..-
1bad0 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
1bae0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
1baf0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
1bb00 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1bb10 74 20 6c 61 62 65 6c 2d 36 30 32 0d 0a 53 45 4c  t label-602..SEL
1bb20 45 43 54 20 2b 20 63 6f 6c 31 20 2a 20 43 41 53  ECT + col1 * CAS
1bb30 54 28 20 2b 20 31 20 41 53 20 53 49 47 4e 45 44  T( + 1 AS SIGNED
1bb40 20 29 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72   ) FROM tab0 cor
1bb50 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 32 31 0d 0a  0..----..1..21..
1bb60 38 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  81....skipif mys
1bb70 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1bb80 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1bb90 73 6f 72 74 20 6c 61 62 65 6c 2d 36 30 32 0d 0a  sort label-602..
1bba0 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2a 20  SELECT + col1 * 
1bbb0 43 41 53 54 20 28 20 2b 20 31 20 41 53 20 49 4e  CAST ( + 1 AS IN
1bbc0 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62  TEGER ) FROM tab
1bbd0 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d  0 cor0..----..1.
1bbe0 0a 32 31 0d 0a 38 31 0d 0a 0d 0a 71 75 65 72 79  .21..81....query
1bbf0 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
1bc00 45 43 54 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c  ECT col0 + - col
1bc10 32 20 41 53 20 63 6f 6c 30 2c 20 2b 20 34 37 20  2 AS col0, + 47 
1bc20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
1bc30 0a 31 37 0d 0a 34 37 0d 0a 32 33 0d 0a 34 37 0d  .17..47..23..47.
1bc40 0a 32 34 0d 0a 34 37 0d 0a 0d 0a 6f 6e 6c 79 69  .24..47....onlyi
1bc50 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
1bc60 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
1bc70 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1bc80 62 65 6c 2d 36 30 34 0d 0a 53 45 4c 45 43 54 20  bel-604..SELECT 
1bc90 2d 20 4d 41 58 28 20 41 4c 4c 20 2b 20 36 32 20  - MAX( ALL + 62 
1bca0 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
1bcb0 61 62 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53  ab2 AS cor0 CROS
1bcc0 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53 20 63  S JOIN tab2 AS c
1bcd0 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 32 0d 0a  or1..----..-62..
1bce0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1bcf0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1bd00 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1bd10 20 6c 61 62 65 6c 2d 36 30 34 0d 0a 53 45 4c 45   label-604..SELE
1bd20 43 54 20 2d 20 4d 41 58 20 28 20 41 4c 4c 20 2b  CT - MAX ( ALL +
1bd30 20 36 32 20 29 20 41 53 20 63 6f 6c 30 20 46 52   62 ) AS col0 FR
1bd40 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
1bd50 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20  CROSS JOIN tab2 
1bd60 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor1..----..-
1bd70 36 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  62....query I ro
1bd80 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
1bd90 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l2 AS col2 FROM 
1bda0 74 61 62 31 20 57 48 45 52 45 20 28 20 4e 4f 54  tab1 WHERE ( NOT
1bdb0 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 20 29 0d   col1 IS NULL ).
1bdc0 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 36 38 0d 0a 39  .----..59..68..9
1bdd0 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  6....query I row
1bde0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
1bdf0 20 2b 20 28 20 32 39 20 29 20 2a 20 2d 20 28 20   + ( 29 ) * - ( 
1be00 2b 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 31  + col2 ) AS col1
1be10 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
1be20 0d 0a 2d 31 31 36 30 0d 0a 2d 31 36 38 32 0d 0a  ..-1160..-1682..
1be30 2d 36 36 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49  -667....query II
1be40 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1be50 20 32 31 20 41 53 20 63 6f 6c 31 2c 20 2d 20 37   21 AS col1, - 7
1be60 33 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  3 FROM tab1 AS c
1be70 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 0d 0a 2d  or0..----..21..-
1be80 37 33 0d 0a 32 31 0d 0a 2d 37 33 0d 0a 32 31 0d  73..21..-73..21.
1be90 0a 2d 37 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-73....onlyif m
1bea0 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
1beb0 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
1bec0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1bed0 72 74 20 6c 61 62 65 6c 2d 36 30 38 0d 0a 53 45  rt label-608..SE
1bee0 4c 45 43 54 20 2d 20 63 6f 6c 32 20 44 49 56 20  LECT - col2 DIV 
1bef0 2b 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32  + - col1 AS col2
1bf00 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
1bf10 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31 31 0d  r0..----..1..11.
1bf20 0a 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .6....skipif mys
1bf30 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1bf40 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1bf50 73 6f 72 74 20 6c 61 62 65 6c 2d 36 30 38 0d 0a  sort label-608..
1bf60 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2f 20  SELECT - col2 / 
1bf70 2b 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32  + - col1 AS col2
1bf80 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
1bf90 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31 31 0d  r0..----..1..11.
1bfa0 0a 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  .6....query II r
1bfb0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
1bfc0 20 32 31 2c 20 2b 20 37 32 20 41 53 20 63 6f 6c   21, + 72 AS col
1bfd0 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
1bfe0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 0d 0a  or0..----..-21..
1bff0 37 32 0d 0a 2d 32 31 0d 0a 37 32 0d 0a 2d 32 31  72..-21..72..-21
1c000 0d 0a 37 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..72....query I 
1c010 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1c020 41 4c 4c 20 2b 20 63 6f 6c 32 20 2a 20 63 6f 6c  ALL + col2 * col
1c030 32 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 2b 20 63  2 + col1 + + + c
1c040 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol0 AS col2 FROM
1c050 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
1c060 2d 2d 2d 0d 0a 32 30 38 0d 0a 32 33 30 35 0d 0a  ---..208..2305..
1c070 39 38 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  9899....onlyif m
1c080 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
1c090 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
1c0a0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1c0b0 2d 36 31 31 0d 0a 53 45 4c 45 43 54 20 44 49 53  -611..SELECT DIS
1c0c0 54 49 4e 43 54 20 2d 20 35 35 20 2b 20 43 4f 55  TINCT - 55 + COU
1c0d0 4e 54 28 20 2a 20 29 20 63 6f 6c 31 20 46 52 4f  NT( * ) col1 FRO
1c0e0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
1c0f0 2d 2d 2d 2d 0d 0a 2d 35 32 0d 0a 0d 0a 73 6b 69  ----..-52....ski
1c100 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1c110 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70  compatible..skip
1c120 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
1c130 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
1c140 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
1c150 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
1c160 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
1c170 73 6f 72 74 20 6c 61 62 65 6c 2d 36 31 31 0d 0a  sort label-611..
1c180 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1c190 2d 20 35 35 20 2b 20 43 4f 55 4e 54 20 28 20 2a  - 55 + COUNT ( *
1c1a0 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   ) col1 FROM tab
1c1b0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
1c1c0 0a 2d 35 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .-52....query II
1c1d0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1c1e0 20 41 4c 4c 20 2d 20 2b 20 39 31 20 2d 20 63 6f   ALL - + 91 - co
1c1f0 6c 32 20 41 53 20 63 6f 6c 30 2c 20 34 38 20 46  l2 AS col0, 48 F
1c200 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
1c210 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 34 0d 0a 34 38  ..----..-114..48
1c220 0d 0a 2d 31 33 31 0d 0a 34 38 0d 0a 2d 31 34 39  ..-131..48..-149
1c230 0d 0a 34 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..48....query II
1c240 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1c250 20 2d 20 2d 20 63 6f 6c 32 2c 20 2d 20 35 30 20   - - col2, - 50 
1c260 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
1c270 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
1c280 0a 31 30 0d 0a 2d 35 30 0d 0a 34 37 0d 0a 2d 35  .10..-50..47..-5
1c290 30 0d 0a 39 39 0d 0a 2d 35 30 0d 0a 0d 0a 71 75  0..99..-50....qu
1c2a0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1c2b0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
1c2c0 20 63 6f 6c 30 20 2d 20 63 6f 6c 30 20 2d 20 2b   col0 - col0 - +
1c2d0 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   - col0 FROM tab
1c2e0 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 2d 38  1..----..-51..-8
1c2f0 35 0d 0a 2d 39 31 0d 0a 0d 0a 6f 6e 6c 79 69 66  5..-91....onlyif
1c300 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
1c310 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
1c320 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
1c330 73 6f 72 74 20 6c 61 62 65 6c 2d 36 31 35 0d 0a  sort label-615..
1c340 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1c350 63 6f 6c 30 20 2b 20 2b 20 2b 20 43 41 53 54 28  col0 + + + CAST(
1c360 20 2d 20 63 6f 6c 31 20 41 53 20 53 49 47 4e 45   - col1 AS SIGNE
1c370 44 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  D ) FROM tab2..-
1c380 2d 2d 2d 0d 0a 2d 31 33 0d 0a 2d 35 0d 0a 38 0d  ---..-13..-5..8.
1c390 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1c3a0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1c3b0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1c3c0 74 20 6c 61 62 65 6c 2d 36 31 35 0d 0a 53 45 4c  t label-615..SEL
1c3d0 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  ECT DISTINCT col
1c3e0 30 20 2b 20 2b 20 2b 20 43 41 53 54 20 28 20 2d  0 + + + CAST ( -
1c3f0 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45 52   col1 AS INTEGER
1c400 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d   ) FROM tab2..--
1c410 2d 2d 0d 0a 2d 31 33 0d 0a 2d 35 0d 0a 38 0d 0a  --..-13..-5..8..
1c420 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
1c430 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
1c440 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  INCT * FROM tab1
1c450 20 57 48 45 52 45 20 2b 20 34 30 20 49 53 20 4e   WHERE + 40 IS N
1c460 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  OT NULL..----..9
1c470 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
1c480 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64  to c6c0a4111b36d
1c490 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34  04dbc811a11e4d54
1c4a0 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  cad....query I r
1c4b0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
1c4c0 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 2d 20 2d  ISTINCT col1 - -
1c4d0 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20   + col2 AS col0 
1c4e0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
1c4f0 0a 31 30 30 0d 0a 31 32 38 0d 0a 33 31 0d 0a 0d  .100..128..31...
1c500 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1c510 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2b 20  ..SELECT col2 + 
1c520 2d 20 33 32 20 41 53 20 63 6f 6c 30 20 46 52 4f  - 32 AS col0 FRO
1c530 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  M tab0..----..-2
1c540 32 0d 0a 31 35 0d 0a 36 37 0d 0a 0d 0a 6f 6e 6c  2..15..67....onl
1c550 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
1c560 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
1c570 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
1c580 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 31  rowsort label-61
1c590 39 0d 0a 53 45 4c 45 43 54 20 2b 20 39 30 20 2a  9..SELECT + 90 *
1c5a0 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 43 41 53 54   - col2 + + CAST
1c5b0 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
1c5c0 20 29 20 2b 20 34 34 20 46 52 4f 4d 20 74 61 62   ) + 44 FROM tab
1c5d0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
1c5e0 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
1c5f0 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
1c600 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1c610 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1c620 6f 72 74 20 6c 61 62 65 6c 2d 36 31 39 0d 0a 53  ort label-619..S
1c630 45 4c 45 43 54 20 2b 20 39 30 20 2a 20 2d 20 63  ELECT + 90 * - c
1c640 6f 6c 32 20 2b 20 2b 20 43 41 53 54 20 28 20 4e  ol2 + + CAST ( N
1c650 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
1c660 20 2b 20 34 34 20 46 52 4f 4d 20 74 61 62 30 20   + 44 FROM tab0 
1c670 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
1c680 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
1c690 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1c6a0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
1c6b0 4e 43 54 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 63  NCT + col2 + - c
1c6c0 6f 6c 30 20 2b 20 36 35 20 41 53 20 63 6f 6c 32  ol0 + 65 AS col2
1c6d0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
1c6e0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 30 0d 0a 33  r0..----..110..3
1c6f0 39 0d 0a 34 32 0d 0a 0d 0a 71 75 65 72 79 20 49  9..42....query I
1c700 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1c710 20 41 4c 4c 20 63 6f 6c 32 20 2a 20 31 20 2b 20   ALL col2 * 1 + 
1c720 2d 20 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  - 0 AS col1 FROM
1c730 20 74 61 62 31 20 63 6f 72 30 20 57 48 45 52 45   tab1 cor0 WHERE
1c740 20 4e 4f 54 20 31 35 20 49 53 20 4e 55 4c 4c 0d   NOT 15 IS NULL.
1c750 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 36 38 0d 0a 39  .----..59..68..9
1c760 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
1c770 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
1c780 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
1c790 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32  rowsort label-62
1c7a0 32 0d 0a 53 45 4c 45 43 54 20 4d 41 58 28 20 2d  2..SELECT MAX( -
1c7b0 20 39 33 20 29 20 46 52 4f 4d 20 74 61 62 30 20   93 ) FROM tab0 
1c7c0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
1c7d0 39 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  93....skipif mys
1c7e0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1c7f0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1c800 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32 32 0d 0a  sort label-622..
1c810 53 45 4c 45 43 54 20 4d 41 58 20 28 20 2d 20 39  SELECT MAX ( - 9
1c820 33 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  3 ) FROM tab0 AS
1c830 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 33   cor0..----..-93
1c840 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1c850 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
1c860 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
1c870 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32 33  owsort label-623
1c880 0d 0a 53 45 4c 45 43 54 20 2b 20 34 20 2a 20 2b  ..SELECT + 4 * +
1c890 20 4d 49 4e 28 20 41 4c 4c 20 2d 20 63 6f 6c 30   MIN( ALL - col0
1c8a0 20 29 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72   ) FROM tab1 cor
1c8b0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 36 34 0d 0a 0d  0..----..-364...
1c8c0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1c8d0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1c8e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1c8f0 6c 61 62 65 6c 2d 36 32 33 0d 0a 53 45 4c 45 43  label-623..SELEC
1c900 54 20 2b 20 34 20 2a 20 2b 20 4d 49 4e 20 28 20  T + 4 * + MIN ( 
1c910 41 4c 4c 20 2d 20 63 6f 6c 30 20 29 20 46 52 4f  ALL - col0 ) FRO
1c920 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab1 cor0..---
1c930 2d 0d 0a 2d 33 36 34 0d 0a 0d 0a 6f 6e 6c 79 69  -..-364....onlyi
1c940 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
1c950 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
1c960 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72  on: ..query II r
1c970 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32 34  owsort label-624
1c980 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1c990 54 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 2c 20  T col1 AS col2, 
1c9a0 2d 20 63 6f 6c 32 20 44 49 56 20 2b 20 32 37 20  - col2 DIV + 27 
1c9b0 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30  + - col2 AS col0
1c9c0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
1c9d0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 2d 39  r0..----..14..-9
1c9e0 39 0d 0a 34 37 0d 0a 2d 37 30 0d 0a 35 0d 0a 2d  9..47..-70..5..-
1c9f0 36 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  61....skipif mys
1ca00 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1ca10 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
1ca20 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32 34 0d  wsort label-624.
1ca30 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1ca40 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 2c 20 2d   col1 AS col2, -
1ca50 20 63 6f 6c 32 20 2f 20 2b 20 32 37 20 2b 20 2d   col2 / + 27 + -
1ca60 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52   col2 AS col0 FR
1ca70 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
1ca80 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 2d 39 39 0d 0a  .----..14..-99..
1ca90 34 37 0d 0a 2d 37 30 0d 0a 35 0d 0a 2d 36 31 0d  47..-70..5..-61.
1caa0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1cab0 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 28  rt..SELECT - + (
1cac0 20 2d 20 2b 20 28 20 2b 20 63 6f 6c 30 20 29 20   - + ( + col0 ) 
1cad0 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
1cae0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 38  or0..----..51..8
1caf0 35 0d 0a 39 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  5..91....onlyif 
1cb00 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
1cb10 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
1cb20 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1cb30 6c 2d 36 32 36 0d 0a 53 45 4c 45 43 54 20 41 4c  l-626..SELECT AL
1cb40 4c 20 53 55 4d 28 20 31 38 20 29 20 63 6f 6c 31  L SUM( 18 ) col1
1cb50 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
1cb60 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 34 0d 0a 0d 0a  r0..----..54....
1cb70 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1cb80 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73  ot compatible..s
1cb90 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
1cba0 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
1cbb0 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
1cbc0 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
1cbd0 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
1cbe0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32  rowsort label-62
1cbf0 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 53 55  6..SELECT ALL SU
1cc00 4d 20 28 20 31 38 20 29 20 63 6f 6c 31 20 46 52  M ( 18 ) col1 FR
1cc10 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
1cc20 0a 2d 2d 2d 2d 0d 0a 35 34 0d 0a 0d 0a 71 75 65  .----..54....que
1cc30 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
1cc40 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 41 53 20  ELECT + col0 AS 
1cc50 63 6f 6c 30 2c 20 63 6f 6c 31 20 2b 20 2d 20 63  col0, col1 + - c
1cc60 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol1 AS col0 FROM
1cc70 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
1cc80 2d 2d 2d 0d 0a 35 31 0d 0a 30 0d 0a 38 35 0d 0a  ---..51..0..85..
1cc90 30 0d 0a 39 31 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79  0..91..0....only
1cca0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
1ccb0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
1ccc0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1ccd0 61 62 65 6c 2d 36 32 38 0d 0a 53 45 4c 45 43 54  abel-628..SELECT
1cce0 20 41 4c 4c 20 2b 20 4d 41 58 28 20 44 49 53 54   ALL + MAX( DIST
1ccf0 49 4e 43 54 20 2d 20 63 6f 6c 31 20 29 20 46 52  INCT - col1 ) FR
1cd00 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
1cd10 0a 2d 2d 2d 2d 0d 0a 2d 35 0d 0a 0d 0a 73 6b 69  .----..-5....ski
1cd20 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1cd30 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1cd40 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1cd50 6c 2d 36 32 38 0d 0a 53 45 4c 45 43 54 20 41 4c  l-628..SELECT AL
1cd60 4c 20 2b 20 4d 41 58 20 28 20 44 49 53 54 49 4e  L + MAX ( DISTIN
1cd70 43 54 20 2d 20 63 6f 6c 31 20 29 20 46 52 4f 4d  CT - col1 ) FROM
1cd80 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
1cd90 2d 2d 2d 0d 0a 2d 35 0d 0a 0d 0a 6f 6e 6c 79 69  ---..-5....onlyi
1cda0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
1cdb0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
1cdc0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1cdd0 62 65 6c 2d 36 32 39 0d 0a 53 45 4c 45 43 54 20  bel-629..SELECT 
1cde0 41 4c 4c 20 2d 20 53 55 4d 28 20 2b 20 2d 20 63  ALL - SUM( + - c
1cdf0 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ol2 ) FROM tab2 
1ce00 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
1ce10 32 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  21....skipif mys
1ce20 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1ce30 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1ce40 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32 39 0d 0a  sort label-629..
1ce50 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 53 55 4d  SELECT ALL - SUM
1ce60 20 28 20 2b 20 2d 20 63 6f 6c 32 20 29 20 46 52   ( + - col2 ) FR
1ce70 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
1ce80 0a 2d 2d 2d 2d 0d 0a 31 32 31 0d 0a 0d 0a 71 75  .----..121....qu
1ce90 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
1cea0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1ceb0 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
1cec0 52 45 20 4e 55 4c 4c 20 3c 3d 20 2b 20 28 20 2b  RE NULL <= + ( +
1ced0 20 2d 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d   - col1 )..----.
1cee0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1cef0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
1cf00 4e 43 54 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  NCT + col2 AS co
1cf10 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45  l0 FROM tab0 WHE
1cf20 52 45 20 28 20 4e 4f 54 20 2d 20 63 6f 6c 30 20  RE ( NOT - col0 
1cf30 2a 20 2d 20 33 34 20 49 53 20 4e 55 4c 4c 20 29  * - 34 IS NULL )
1cf40 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 34 37 0d 0a  ..----..10..47..
1cf50 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  99....onlyif mys
1cf60 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
1cf70 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69  yntax: DIV for i
1cf80 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
1cf90 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1cfa0 72 74 20 6c 61 62 65 6c 2d 36 33 32 0d 0a 53 45  rt label-632..SE
1cfb0 4c 45 43 54 20 28 20 2b 20 2b 20 4d 41 58 28 20  LECT ( + + MAX( 
1cfc0 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 29 20  DISTINCT col2 ) 
1cfd0 29 20 44 49 56 20 2d 20 31 30 20 46 52 4f 4d 20  ) DIV - 10 FROM 
1cfe0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 0d 0a  tab2..----..-5..
1cff0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1d000 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1d010 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1d020 20 6c 61 62 65 6c 2d 36 33 32 0d 0a 53 45 4c 45   label-632..SELE
1d030 43 54 20 28 20 2b 20 2b 20 4d 41 58 20 28 20 44  CT ( + + MAX ( D
1d040 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 29 20 29  ISTINCT col2 ) )
1d050 20 2f 20 2d 20 31 30 20 46 52 4f 4d 20 74 61 62   / - 10 FROM tab
1d060 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 0d 0a 0d 0a 71  2..----..-5....q
1d070 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1d080 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20  SELECT ALL col0 
1d090 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
1d0a0 31 20 57 48 45 52 45 20 2d 20 38 31 20 49 53 20  1 WHERE - 81 IS 
1d0b0 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
1d0c0 35 31 0d 0a 38 35 0d 0a 39 31 0d 0a 0d 0a 71 75  51..85..91....qu
1d0d0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
1d0e0 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
1d0f0 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 63 6f  ab2 WHERE NOT co
1d100 6c 32 20 2b 20 2d 20 32 34 20 2b 20 2d 20 63 6f  l2 + - 24 + - co
1d110 6c 32 20 2a 20 2d 20 63 6f 6c 31 20 42 45 54 57  l2 * - col1 BETW
1d120 45 45 4e 20 63 6f 6c 30 20 2a 20 36 34 20 41 4e  EEN col0 * 64 AN
1d130 44 20 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a  D + col2..----..
1d140 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
1d150 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63   to 75c998aa53ac
1d160 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64  83218cbf2feb962d
1d170 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20  0a49....query I 
1d180 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1d190 63 6f 6c 32 20 2b 20 2b 20 2d 20 63 6f 6c 30 20  col2 + + - col0 
1d1a0 2a 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  * col0 FROM tab0
1d1b0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37 38 0d 0a 2d 37  ..----..-178..-7
1d1c0 35 35 39 0d 0a 2d 39 33 31 30 0d 0a 0d 0a 6f 6e  559..-9310....on
1d1d0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
1d1e0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
1d1f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1d200 20 6c 61 62 65 6c 2d 36 33 36 0d 0a 53 45 4c 45   label-636..SELE
1d210 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20  CT - COUNT( * ) 
1d220 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
1d230 4e 4f 54 20 2b 20 32 36 20 49 53 20 4e 4f 54 20  NOT + 26 IS NOT 
1d240 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  NULL..----..0...
1d250 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1d260 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1d270 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1d280 6c 61 62 65 6c 2d 36 33 36 0d 0a 53 45 4c 45 43  label-636..SELEC
1d290 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  T - COUNT ( * ) 
1d2a0 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
1d2b0 4e 4f 54 20 2b 20 32 36 20 49 53 20 4e 4f 54 20  NOT + 26 IS NOT 
1d2c0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  NULL..----..0...
1d2d0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1d2e0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63  ..SELECT ALL - c
1d2f0 6f 6c 30 20 2a 20 34 32 20 46 52 4f 4d 20 74 61  ol0 * 42 FROM ta
1d300 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 34 32 0d  b1..----..-2142.
1d310 0a 2d 33 35 37 30 0d 0a 2d 33 38 32 32 0d 0a 0d  .-3570..-3822...
1d320 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1d330 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1d340 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1d350 6f 72 74 20 6c 61 62 65 6c 2d 36 33 38 0d 0a 53  ort label-638..S
1d360 45 4c 45 43 54 20 36 35 20 2b 20 2b 20 43 4f 55  ELECT 65 + + COU
1d370 4e 54 28 20 2b 20 2b 20 34 39 20 29 20 41 53 20  NT( + + 49 ) AS 
1d380 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col1 FROM tab1..
1d390 2d 2d 2d 2d 0d 0a 36 38 0d 0a 0d 0a 73 6b 69 70  ----..68....skip
1d3a0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1d3b0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1d3c0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1d3d0 2d 36 33 38 0d 0a 53 45 4c 45 43 54 20 36 35 20  -638..SELECT 65 
1d3e0 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2b 20 2b 20  + + COUNT ( + + 
1d3f0 34 39 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  49 ) AS col1 FRO
1d400 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 36 38  M tab1..----..68
1d410 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
1d420 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
1d430 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
1d440 62 30 20 57 48 45 52 45 20 28 20 28 20 4e 4f 54  b0 WHERE ( ( NOT
1d450 20 4e 55 4c 4c 20 3c 3e 20 4e 55 4c 4c 20 29 20   NULL <> NULL ) 
1d460 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  )..----....onlyi
1d470 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
1d480 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
1d490 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1d4a0 62 65 6c 2d 36 34 30 0d 0a 53 45 4c 45 43 54 20  bel-640..SELECT 
1d4b0 2b 20 4d 41 58 28 20 2d 20 31 38 20 29 20 46 52  + MAX( - 18 ) FR
1d4c0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
1d4d0 31 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  18....skipif mys
1d4e0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1d4f0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1d500 73 6f 72 74 20 6c 61 62 65 6c 2d 36 34 30 0d 0a  sort label-640..
1d510 53 45 4c 45 43 54 20 2b 20 4d 41 58 20 28 20 2d  SELECT + MAX ( -
1d520 20 31 38 20 29 20 46 52 4f 4d 20 74 61 62 30 0d   18 ) FROM tab0.
1d530 0a 2d 2d 2d 2d 0d 0a 2d 31 38 0d 0a 0d 0a 6f 6e  .----..-18....on
1d540 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
1d550 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
1d560 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1d570 20 6c 61 62 65 6c 2d 36 34 31 0d 0a 53 45 4c 45   label-641..SELE
1d580 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 53 55  CT DISTINCT - SU
1d590 4d 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30  M( DISTINCT col0
1d5a0 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
1d5b0 2d 2d 0d 0a 2d 31 39 39 0d 0a 0d 0a 73 6b 69 70  --..-199....skip
1d5c0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1d5d0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1d5e0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1d5f0 2d 36 34 31 0d 0a 53 45 4c 45 43 54 20 44 49 53  -641..SELECT DIS
1d600 54 49 4e 43 54 20 2d 20 53 55 4d 20 28 20 44 49  TINCT - SUM ( DI
1d610 53 54 49 4e 43 54 20 63 6f 6c 30 20 29 20 46 52  STINCT col0 ) FR
1d620 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
1d630 31 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  199....query I r
1d640 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
1d650 20 63 6f 6c 32 20 2a 20 2d 20 2b 20 31 35 20 2b   col2 * - + 15 +
1d660 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20   - col1 AS col0 
1d670 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
1d680 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 39 0d 0a 31 34  0..----..129..14
1d690 38 34 0d 0a 36 32 34 0d 0a 0d 0a 6f 6e 6c 79 69  84..624....onlyi
1d6a0 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
1d6b0 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
1d6c0 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
1d6d0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 34 33 0d  wsort label-643.
1d6e0 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54 28 20  .SELECT + CAST( 
1d6f0 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
1d700 20 2b 20 35 20 41 53 20 63 6f 6c 30 20 46 52 4f   + 5 AS col0 FRO
1d710 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
1d720 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
1d730 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
1d740 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1d750 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1d760 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1d770 34 33 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53  43..SELECT + CAS
1d780 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
1d790 47 45 52 20 29 20 2b 20 35 20 41 53 20 63 6f 6c  GER ) + 5 AS col
1d7a0 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
1d7b0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
1d7c0 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f  .NULL..NULL....o
1d7d0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
1d7e0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
1d7f0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1d800 74 20 6c 61 62 65 6c 2d 36 34 34 0d 0a 53 45 4c  t label-644..SEL
1d810 45 43 54 20 2d 20 2b 20 32 37 20 2b 20 2b 20 43  ECT - + 27 + + C
1d820 4f 55 4e 54 28 20 2a 20 29 20 2d 20 43 4f 55 4e  OUNT( * ) - COUN
1d830 54 28 20 41 4c 4c 20 2b 20 2b 20 38 34 20 29 20  T( ALL + + 84 ) 
1d840 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
1d850 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 37 0d 0a 0d 0a  0..----..-27....
1d860 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1d870 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1d880 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1d890 61 62 65 6c 2d 36 34 34 0d 0a 53 45 4c 45 43 54  abel-644..SELECT
1d8a0 20 2d 20 2b 20 32 37 20 2b 20 2b 20 43 4f 55 4e   - + 27 + + COUN
1d8b0 54 20 28 20 2a 20 29 20 2d 20 43 4f 55 4e 54 20  T ( * ) - COUNT 
1d8c0 28 20 41 4c 4c 20 2b 20 2b 20 38 34 20 29 20 46  ( ALL + + 84 ) F
1d8d0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1d8e0 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 37 0d 0a 0d 0a 71  ..----..-27....q
1d8f0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1d900 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1d910 2b 20 38 37 20 2b 20 2d 20 63 6f 6c 30 20 41 53  + 87 + - col0 AS
1d920 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
1d930 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d  cor0..----..-10.
1d940 0a 30 0d 0a 37 32 0d 0a 0d 0a 6f 6e 6c 79 69 66  .0..72....onlyif
1d950 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
1d960 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
1d970 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1d980 65 6c 2d 36 34 36 0d 0a 53 45 4c 45 43 54 20 41  el-646..SELECT A
1d990 4c 4c 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20  LL - - COUNT( * 
1d9a0 29 20 2b 20 2d 20 43 4f 55 4e 54 28 20 41 4c 4c  ) + - COUNT( ALL
1d9b0 20 2d 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c   - col0 ) AS col
1d9c0 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
1d9d0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  or0..----..0....
1d9e0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1d9f0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1da00 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1da10 61 62 65 6c 2d 36 34 36 0d 0a 53 45 4c 45 43 54  abel-646..SELECT
1da20 20 41 4c 4c 20 2d 20 2d 20 43 4f 55 4e 54 20 28   ALL - - COUNT (
1da30 20 2a 20 29 20 2b 20 2d 20 43 4f 55 4e 54 20 28   * ) + - COUNT (
1da40 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 29 20 41 53   ALL - col0 ) AS
1da50 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
1da60 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30  AS cor0..----..0
1da70 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
1da80 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
1da90 49 4e 43 54 20 2d 20 2d 20 32 30 20 2b 20 63 6f  INCT - - 20 + co
1daa0 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
1dab0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 35 0d  cor0..----..105.
1dac0 0a 31 31 31 0d 0a 37 31 0d 0a 0d 0a 71 75 65 72  .111..71....quer
1dad0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1dae0 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 2d  ECT ALL - col2 -
1daf0 20 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   2 AS col0 FROM 
1db00 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
1db10 2d 2d 0d 0a 2d 31 30 31 0d 0a 2d 31 32 0d 0a 2d  --..-101..-12..-
1db20 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  49....onlyif mys
1db30 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
1db40 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
1db50 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
1db60 74 20 6c 61 62 65 6c 2d 36 34 39 0d 0a 53 45 4c  t label-649..SEL
1db70 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 2b  ECT ALL + col1 +
1db80 20 2d 20 34 30 20 2d 20 2d 20 2d 20 37 36 20 2b   - 40 - - - 76 +
1db90 20 2b 20 43 41 53 54 28 20 2b 20 36 35 20 41 53   + CAST( + 65 AS
1dba0 20 53 49 47 4e 45 44 20 29 20 2a 20 2b 20 63 6f   SIGNED ) * + co
1dbb0 6c 32 20 2a 20 2b 20 2b 20 38 34 20 2a 20 63 6f  l2 * + + 84 * co
1dbc0 6c 31 20 2d 20 2b 20 28 20 28 20 2b 20 63 6f 6c  l1 - + ( ( + col
1dbd0 30 20 29 20 29 20 2b 20 2d 20 63 6f 6c 31 20 41  0 ) ) + - col1 A
1dbe0 53 20 63 6f 6c 32 2c 20 2d 20 63 6f 6c 30 20 2a  S col2, - col0 *
1dbf0 20 63 6f 6c 32 20 2a 20 63 6f 6c 31 20 46 52 4f   col2 * col1 FRO
1dc00 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 36  M tab2..----..16
1dc10 38 31 36 36 32 30 0d 0a 2d 31 39 37 31 32 30 0d  816620..-197120.
1dc20 0a 32 31 32 31 37 33 36 39 0d 0a 2d 32 39 31 34  .21217369..-2914
1dc30 35 30 0d 0a 36 34 30 34 34 31 38 0d 0a 2d 35 33  50..6404418..-53
1dc40 39 35 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  958....skipif my
1dc50 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1dc60 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72  ible..query II r
1dc70 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 34 39  owsort label-649
1dc80 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63  ..SELECT ALL + c
1dc90 6f 6c 31 20 2b 20 2d 20 34 30 20 2d 20 2d 20 2d  ol1 + - 40 - - -
1dca0 20 37 36 20 2b 20 2b 20 43 41 53 54 20 28 20 2b   76 + + CAST ( +
1dcb0 20 36 35 20 41 53 20 49 4e 54 45 47 45 52 20 29   65 AS INTEGER )
1dcc0 20 2a 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 2b 20   * + col2 * + + 
1dcd0 38 34 20 2a 20 63 6f 6c 31 20 2d 20 2b 20 28 20  84 * col1 - + ( 
1dce0 28 20 2b 20 63 6f 6c 30 20 29 20 29 20 2b 20 2d  ( + col0 ) ) + -
1dcf0 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 2c 20 2d   col1 AS col2, -
1dd00 20 63 6f 6c 30 20 2a 20 63 6f 6c 32 20 2a 20 63   col0 * col2 * c
1dd10 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
1dd20 2d 2d 2d 0d 0a 31 36 38 31 36 36 32 30 0d 0a 2d  ---..16816620..-
1dd30 31 39 37 31 32 30 0d 0a 32 31 32 31 37 33 36 39  197120..21217369
1dd40 0d 0a 2d 32 39 31 34 35 30 0d 0a 36 34 30 34 34  ..-291450..64044
1dd50 31 38 0d 0a 2d 35 33 39 35 38 0d 0a 0d 0a 73 6b  18..-53958....sk
1dd60 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
1dd70 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
1dd80 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
1dd90 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
1dda0 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
1ddb0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
1ddc0 4c 4c 20 2b 20 33 38 20 2a 20 63 6f 6c 32 20 2a  LL + 38 * col2 *
1ddd0 20 2d 20 63 6f 6c 30 20 63 6f 6c 30 20 46 52 4f   - col0 col0 FRO
1dde0 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab1..----..-1
1ddf0 38 36 30 34 38 0d 0a 2d 31 39 30 35 37 30 0d 0a  86048..-190570..
1de00 2d 32 33 35 31 34 34 0d 0a 0d 0a 6f 6e 6c 79 69  -235144....onlyi
1de10 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
1de20 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
1de30 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1de40 62 65 6c 2d 36 35 31 0d 0a 53 45 4c 45 43 54 20  bel-651..SELECT 
1de50 33 38 20 2a 20 2b 20 43 4f 55 4e 54 28 20 2a 20  38 * + COUNT( * 
1de60 29 20 2a 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a  ) * - - COUNT( *
1de70 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
1de80 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 34 32 0d  tab2..----..342.
1de90 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1dea0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1deb0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1dec0 74 20 6c 61 62 65 6c 2d 36 35 31 0d 0a 53 45 4c  t label-651..SEL
1ded0 45 43 54 20 33 38 20 2a 20 2b 20 43 4f 55 4e 54  ECT 38 * + COUNT
1dee0 20 28 20 2a 20 29 20 2a 20 2d 20 2d 20 43 4f 55   ( * ) * - - COU
1def0 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30  NT ( * ) AS col0
1df00 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
1df10 0d 0a 33 34 32 0d 0a 0d 0a 71 75 65 72 79 20 49  ..342....query I
1df20 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1df30 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 35 38 20 41   + col1 * + 58 A
1df40 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
1df50 0d 0a 2d 2d 2d 2d 0d 0a 32 39 35 38 0d 0a 33 38  ..----..2958..38
1df60 38 36 0d 0a 34 34 36 36 0d 0a 0d 0a 6f 6e 6c 79  86..4466....only
1df70 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
1df80 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
1df90 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1dfa0 61 62 65 6c 2d 36 35 33 0d 0a 53 45 4c 45 43 54  abel-653..SELECT
1dfb0 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20   COUNT( * ) * + 
1dfc0 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  - COUNT( * ) AS 
1dfd0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col1 FROM tab1..
1dfe0 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 73 6b 69 70  ----..-9....skip
1dff0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1e000 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1e010 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1e020 2d 36 35 33 0d 0a 53 45 4c 45 43 54 20 43 4f 55  -653..SELECT COU
1e030 4e 54 20 28 20 2a 20 29 20 2a 20 2b 20 2d 20 43  NT ( * ) * + - C
1e040 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
1e050 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
1e060 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 71 75 65 72 79 20  --..-9....query 
1e070 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
1e080 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ECT * FROM tab1 
1e090 57 48 45 52 45 20 2b 20 2d 20 63 6f 6c 32 20 2b  WHERE + - col2 +
1e0a0 20 63 6f 6c 30 20 2f 20 2d 20 2d 20 63 6f 6c 31   col0 / - - col1
1e0b0 20 2a 20 2b 20 2d 20 63 6f 6c 30 20 49 53 20 4e   * + - col0 IS N
1e0c0 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  OT NULL..----..9
1e0d0 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
1e0e0 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64  to c6c0a4111b36d
1e0f0 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34  04dbc811a11e4d54
1e100 63 61 64 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  cad....onlyif my
1e110 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
1e120 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
1e130 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
1e140 72 74 20 6c 61 62 65 6c 2d 36 35 35 0d 0a 53 45  rt label-655..SE
1e150 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 31 32  LECT DISTINCT 12
1e160 2c 20 63 6f 6c 30 20 44 49 56 20 2b 20 2d 20 63  , col0 DIV + - c
1e170 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol1 AS col0 FROM
1e180 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 0d   tab0..----..12.
1e190 0a 2d 34 0d 0a 31 32 0d 0a 2d 39 37 0d 0a 31 32  .-4..12..-97..12
1e1a0 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
1e1b0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1e1c0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72  ible..query II r
1e1d0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35 35  owsort label-655
1e1e0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1e1f0 54 20 31 32 2c 20 63 6f 6c 30 20 2f 20 2b 20 2d  T 12, col0 / + -
1e200 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52   col1 AS col0 FR
1e210 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
1e220 32 0d 0a 2d 34 0d 0a 31 32 0d 0a 2d 39 37 0d 0a  2..-4..12..-97..
1e230 31 32 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  12..0....onlyif 
1e240 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
1e250 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
1e260 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1e270 6c 2d 36 35 36 0d 0a 53 45 4c 45 43 54 20 41 4c  l-656..SELECT AL
1e280 4c 20 4d 49 4e 28 20 44 49 53 54 49 4e 43 54 20  L MIN( DISTINCT 
1e290 33 36 20 29 20 2d 20 38 32 20 2a 20 53 55 4d 28  36 ) - 82 * SUM(
1e2a0 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 63 6f   DISTINCT - - co
1e2b0 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a  l1 ) FROM tab0..
1e2c0 2d 2d 2d 2d 0d 0a 2d 38 34 31 30 0d 0a 0d 0a 73  ----..-8410....s
1e2d0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1e2e0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1e2f0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1e300 62 65 6c 2d 36 35 36 0d 0a 53 45 4c 45 43 54 20  bel-656..SELECT 
1e310 41 4c 4c 20 4d 49 4e 20 28 20 44 49 53 54 49 4e  ALL MIN ( DISTIN
1e320 43 54 20 33 36 20 29 20 2d 20 38 32 20 2a 20 53  CT 36 ) - 82 * S
1e330 55 4d 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20  UM ( DISTINCT - 
1e340 2d 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61  - col1 ) FROM ta
1e350 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 34 31 30 0d  b0..----..-8410.
1e360 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1e370 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
1e380 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
1e390 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35 37 0d  wsort label-657.
1e3a0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 53 55  .SELECT ALL - SU
1e3b0 4d 28 20 2d 20 2d 20 31 39 20 29 20 41 53 20 63  M( - - 19 ) AS c
1e3c0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
1e3d0 2d 2d 2d 0d 0a 2d 35 37 0d 0a 0d 0a 73 6b 69 70  ---..-57....skip
1e3e0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1e3f0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1e400 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1e410 2d 36 35 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -657..SELECT ALL
1e420 20 2d 20 53 55 4d 20 28 20 2d 20 2d 20 31 39 20   - SUM ( - - 19 
1e430 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
1e440 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 37 0d 0a  ab2..----..-57..
1e450 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1e460 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
1e470 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
1e480 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35 38 0d 0a  sort label-658..
1e490 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 28 20 2b  SELECT ALL + ( +
1e4a0 20 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 46 52   COUNT( * ) ) FR
1e4b0 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d  OM tab0 cor0..--
1e4c0 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..3....skipif 
1e4d0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1e4e0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1e4f0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35  rowsort label-65
1e500 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  8..SELECT ALL + 
1e510 28 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ( + COUNT ( * ) 
1e520 29 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  ) FROM tab0 cor0
1e530 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65  ..----..3....que
1e540 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1e550 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 35 38  LECT DISTINCT 58
1e560 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
1e570 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
1e580 20 4e 4f 54 20 2b 20 37 34 20 49 53 20 4e 55 4c   NOT + 74 IS NUL
1e590 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 38 0d 0a 0d 0a 71  L..----..58....q
1e5a0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
1e5b0 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
1e5c0 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
1e5d0 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 31 20 3c 3e  RE NOT - col1 <>
1e5e0 20 2d 20 28 20 2d 20 2d 20 63 6f 6c 31 20 29 0d   - ( - - col1 ).
1e5f0 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
1e600 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32  hashing to c4b42
1e610 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34  765dff94eaaa4604
1e620 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 73  0e537fb43b7....s
1e630 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
1e640 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
1e650 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
1e660 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
1e670 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49  olumns..query II
1e680 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1e690 20 41 4c 4c 20 2d 20 28 20 2d 20 63 6f 6c 32 20   ALL - ( - col2 
1e6a0 29 2c 20 63 6f 6c 31 20 63 6f 6c 32 20 46 52 4f  ), col1 col2 FRO
1e6b0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
1e6c0 2d 2d 2d 2d 0d 0a 35 39 0d 0a 35 0d 0a 36 38 0d  ----..59..5..68.
1e6d0 0a 34 37 0d 0a 39 36 0d 0a 31 34 0d 0a 0d 0a 71  .47..96..14....q
1e6e0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1e6f0 53 45 4c 45 43 54 20 2d 20 2b 20 39 36 20 2a 20  SELECT - + 96 * 
1e700 34 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  42 FROM tab1 WHE
1e710 52 45 20 4e 4f 54 20 2d 20 2b 20 63 6f 6c 31 20  RE NOT - + col1 
1e720 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d  IS NULL..----..-
1e730 34 30 33 32 0d 0a 2d 34 30 33 32 0d 0a 2d 34 30  4032..-4032..-40
1e740 33 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  32....query I ro
1e750 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
1e760 53 54 49 4e 43 54 20 2d 20 28 20 2b 20 35 37 20  STINCT - ( + 57 
1e770 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  ) FROM tab0 AS c
1e780 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 37 0d 0a  or0..----..-57..
1e790 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1e7a0 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
1e7b0 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
1e7c0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1e7d0 65 6c 2d 36 36 34 0d 0a 53 45 4c 45 43 54 20 41  el-664..SELECT A
1e7e0 4c 4c 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 31  LL col1 + + col1
1e7f0 20 2b 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20   + + CAST( NULL 
1e800 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d  AS SIGNED ) FROM
1e810 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
1e820 45 52 45 20 4e 4f 54 20 2b 20 28 20 63 6f 6c 30  ERE NOT + ( col0
1e830 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a   ) IS NOT NULL..
1e840 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ----....skipif m
1e850 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1e860 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1e870 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 36 34  owsort label-664
1e880 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c  ..SELECT ALL col
1e890 31 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 43  1 + + col1 + + C
1e8a0 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
1e8b0 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62  TEGER ) FROM tab
1e8c0 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
1e8d0 4e 4f 54 20 2b 20 28 20 63 6f 6c 30 20 29 20 49  NOT + ( col0 ) I
1e8e0 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
1e8f0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
1e900 6f 72 74 0d 0a 53 45 4c 45 43 54 20 34 38 20 41  ort..SELECT 48 A
1e910 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
1e920 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 38 0d   cor0..----..48.
1e930 0a 34 38 0d 0a 34 38 0d 0a 0d 0a 71 75 65 72 79  .48..48....query
1e940 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1e950 43 54 20 41 4c 4c 20 63 6f 6c 30 20 2a 20 2b 20  CT ALL col0 * + 
1e960 2d 20 33 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  - 3 AS col1 FROM
1e970 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33   tab2..----..-13
1e980 38 0d 0a 2d 31 39 32 0d 0a 2d 32 32 35 0d 0a 0d  8..-192..-225...
1e990 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1e9a0 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43  CAST syntax: DEC
1e9b0 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65  IMAL type: ..que
1e9c0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
1e9d0 62 65 6c 2d 36 36 37 0d 0a 53 45 4c 45 43 54 20  bel-667..SELECT 
1e9e0 2b 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 30 20  + col2 * + col0 
1e9f0 2a 20 2d 20 37 33 20 41 53 20 63 6f 6c 32 2c 20  * - 73 AS col2, 
1ea00 28 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  ( - CAST( NULL A
1ea10 53 20 44 45 43 49 4d 41 4c 20 29 20 29 20 63 6f  S DECIMAL ) ) co
1ea20 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l0 FROM tab2..--
1ea30 2d 2d 0d 0a 2d 31 38 36 38 38 30 0d 0a 4e 55 4c  --..-186880..NUL
1ea40 4c 0d 0a 2d 33 31 37 35 35 30 0d 0a 4e 55 4c 4c  L..-317550..NULL
1ea50 0d 0a 2d 37 37 32 33 34 0d 0a 4e 55 4c 4c 0d 0a  ..-77234..NULL..
1ea60 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1ea70 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1ea80 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
1ea90 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
1eaa0 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
1eab0 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
1eac0 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
1ead0 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
1eae0 2d 36 36 37 0d 0a 53 45 4c 45 43 54 20 2b 20 63  -667..SELECT + c
1eaf0 6f 6c 32 20 2a 20 2b 20 63 6f 6c 30 20 2a 20 2d  ol2 * + col0 * -
1eb00 20 37 33 20 41 53 20 63 6f 6c 32 2c 20 28 20 2d   73 AS col2, ( -
1eb10 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
1eb20 52 45 41 4c 20 29 20 29 20 63 6f 6c 30 20 46 52  REAL ) ) col0 FR
1eb30 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
1eb40 31 38 36 38 38 30 0d 0a 4e 55 4c 4c 0d 0a 2d 33  186880..NULL..-3
1eb50 31 37 35 35 30 0d 0a 4e 55 4c 4c 0d 0a 2d 37 37  17550..NULL..-77
1eb60 32 33 34 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c  234..NULL....onl
1eb70 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
1eb80 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
1eb90 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1eba0 6c 61 62 65 6c 2d 36 36 38 0d 0a 53 45 4c 45 43  label-668..SELEC
1ebb0 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 4f 55  T DISTINCT + COU
1ebc0 4e 54 28 20 2a 20 29 20 2a 20 2d 20 34 38 20 46  NT( * ) * - 48 F
1ebd0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
1ebe0 2d 31 34 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -144....skipif m
1ebf0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1ec00 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1ec10 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 36 38  owsort label-668
1ec20 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1ec30 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  T + COUNT ( * ) 
1ec40 2a 20 2d 20 34 38 20 46 52 4f 4d 20 74 61 62 32  * - 48 FROM tab2
1ec50 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 34 0d 0a 0d 0a  ..----..-144....
1ec60 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
1ec70 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
1ec80 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
1ec90 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1eca0 2d 36 36 39 0d 0a 53 45 4c 45 43 54 20 44 49 53  -669..SELECT DIS
1ecb0 54 49 4e 43 54 20 2d 20 63 6f 6c 31 20 44 49 56  TINCT - col1 DIV
1ecc0 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20   + col2 AS col0 
1ecd0 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
1ece0 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
1ecf0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1ed00 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1ed10 73 6f 72 74 20 6c 61 62 65 6c 2d 36 36 39 0d 0a  sort label-669..
1ed20 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1ed30 2d 20 63 6f 6c 31 20 2f 20 2b 20 63 6f 6c 32 20  - col1 / + col2 
1ed40 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
1ed50 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e  1..----..0....on
1ed60 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
1ed70 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
1ed80 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
1ed90 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1eda0 37 30 0d 0a 53 45 4c 45 43 54 20 37 36 20 44 49  70..SELECT 76 DI
1edb0 56 20 2b 20 34 20 46 52 4f 4d 20 74 61 62 31 0d  V + 4 FROM tab1.
1edc0 0a 2d 2d 2d 2d 0d 0a 31 39 0d 0a 31 39 0d 0a 31  .----..19..19..1
1edd0 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
1ede0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1edf0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1ee00 6f 72 74 20 6c 61 62 65 6c 2d 36 37 30 0d 0a 53  ort label-670..S
1ee10 45 4c 45 43 54 20 37 36 20 2f 20 2b 20 34 20 46  ELECT 76 / + 4 F
1ee20 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
1ee30 31 39 0d 0a 31 39 0d 0a 31 39 0d 0a 0d 0a 71 75  19..19..19....qu
1ee40 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1ee50 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2a 20 2d  ELECT + col1 * -
1ee60 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20   - col1 AS col0 
1ee70 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
1ee80 0a 32 36 30 31 0d 0a 34 34 38 39 0d 0a 35 39 32  .2601..4489..592
1ee90 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  9....onlyif mysq
1eea0 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
1eeb0 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
1eec0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
1eed0 20 6c 61 62 65 6c 2d 36 37 32 0d 0a 53 45 4c 45   label-672..SELE
1eee0 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 2c 20 2d  CT ALL - col2, -
1eef0 20 33 30 20 2b 20 2b 20 43 41 53 54 28 20 4e 55   30 + + CAST( NU
1ef00 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 41  LL AS SIGNED ) A
1ef10 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
1ef20 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a 4e 55 4c  ..----..-23..NUL
1ef30 4c 0d 0a 2d 34 30 0d 0a 4e 55 4c 4c 0d 0a 2d 35  L..-40..NULL..-5
1ef40 38 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  8..NULL....skipi
1ef50 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1ef60 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
1ef70 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
1ef80 2d 36 37 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -672..SELECT ALL
1ef90 20 2d 20 63 6f 6c 32 2c 20 2d 20 33 30 20 2b 20   - col2, - 30 + 
1efa0 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
1efb0 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f   INTEGER ) AS co
1efc0 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l0 FROM tab2..--
1efd0 2d 2d 0d 0a 2d 32 33 0d 0a 4e 55 4c 4c 0d 0a 2d  --..-23..NULL..-
1efe0 34 30 0d 0a 4e 55 4c 4c 0d 0a 2d 35 38 0d 0a 4e  40..NULL..-58..N
1eff0 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ULL....query III
1f000 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1f010 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
1f020 20 74 61 62 31 20 57 48 45 52 45 20 2b 20 63 6f   tab1 WHERE + co
1f030 6c 32 20 2a 20 2d 20 63 6f 6c 31 20 4e 4f 54 20  l2 * - col1 NOT 
1f040 42 45 54 57 45 45 4e 20 28 20 4e 55 4c 4c 20 29  BETWEEN ( NULL )
1f050 20 41 4e 44 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d   AND ( NULL )..-
1f060 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
1f070 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
1f080 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
1f090 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1f0a0 36 37 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  674..SELECT ALL 
1f0b0 4d 41 58 28 20 2d 20 28 20 2b 20 38 20 29 20 29  MAX( - ( + 8 ) )
1f0c0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
1f0d0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 0d 0a 0d 0a  r0..----..-8....
1f0e0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1f0f0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1f100 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1f110 61 62 65 6c 2d 36 37 34 0d 0a 53 45 4c 45 43 54  abel-674..SELECT
1f120 20 41 4c 4c 20 4d 41 58 20 28 20 2d 20 28 20 2b   ALL MAX ( - ( +
1f130 20 38 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31   8 ) ) FROM tab1
1f140 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1f150 2d 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  -8....onlyif mys
1f160 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
1f170 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
1f180 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
1f190 74 20 6c 61 62 65 6c 2d 36 37 35 0d 0a 53 45 4c  t label-675..SEL
1f1a0 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  ECT DISTINCT col
1f1b0 31 20 2a 20 28 20 2b 20 63 6f 6c 31 20 29 20 2b  1 * ( + col1 ) +
1f1c0 20 2d 20 2b 20 28 20 2d 20 28 20 2b 20 63 6f 6c   - + ( - ( + col
1f1d0 30 20 29 20 29 20 41 53 20 63 6f 6c 31 2c 20 2b  0 ) ) AS col1, +
1f1e0 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
1f1f0 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62  IGNED ) FROM tab
1f200 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
1f210 0a 31 31 30 0d 0a 4e 55 4c 4c 0d 0a 32 33 30 30  .110..NULL..2300
1f220 0d 0a 4e 55 4c 4c 0d 0a 32 34 37 0d 0a 4e 55 4c  ..NULL..247..NUL
1f230 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
1f240 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1f250 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
1f260 73 6f 72 74 20 6c 61 62 65 6c 2d 36 37 35 0d 0a  sort label-675..
1f270 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1f280 63 6f 6c 31 20 2a 20 28 20 2b 20 63 6f 6c 31 20  col1 * ( + col1 
1f290 29 20 2b 20 2d 20 2b 20 28 20 2d 20 28 20 2b 20  ) + - + ( - ( + 
1f2a0 63 6f 6c 30 20 29 20 29 20 41 53 20 63 6f 6c 31  col0 ) ) AS col1
1f2b0 2c 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  , + CAST ( NULL 
1f2c0 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f  AS INTEGER ) FRO
1f2d0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
1f2e0 2d 2d 2d 2d 0d 0a 31 31 30 0d 0a 4e 55 4c 4c 0d  ----..110..NULL.
1f2f0 0a 32 33 30 30 0d 0a 4e 55 4c 4c 0d 0a 32 34 37  .2300..NULL..247
1f300 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..NULL....onlyif
1f310 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
1f320 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
1f330 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1f340 65 6c 2d 36 37 36 0d 0a 53 45 4c 45 43 54 20 2d  el-676..SELECT -
1f350 20 28 20 43 4f 55 4e 54 28 20 2a 20 29 20 29 20   ( COUNT( * ) ) 
1f360 2b 20 2b 20 2b 20 4d 49 4e 28 20 63 6f 6c 30 20  + + + MIN( col0 
1f370 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
1f380 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
1f390 2d 0d 0a 31 32 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..12....skipif 
1f3a0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1f3b0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1f3c0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 37  rowsort label-67
1f3d0 36 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20 43 4f  6..SELECT - ( CO
1f3e0 55 4e 54 20 28 20 2a 20 29 20 29 20 2b 20 2b 20  UNT ( * ) ) + + 
1f3f0 2b 20 4d 49 4e 20 28 20 63 6f 6c 30 20 29 20 41  + MIN ( col0 ) A
1f400 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
1f410 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1f420 31 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  12....onlyif mys
1f430 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
1f440 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  : aggregate synt
1f450 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
1f460 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1f470 72 74 20 6c 61 62 65 6c 2d 36 37 37 0d 0a 53 45  rt label-677..SE
1f480 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20  LECT ALL COUNT( 
1f490 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  + CAST( NULL AS 
1f4a0 53 49 47 4e 45 44 20 29 20 29 20 2b 20 2d 20 2b  SIGNED ) ) + - +
1f4b0 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
1f4c0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol1 FROM tab1 AS
1f4d0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d   cor0..----..-3.
1f4e0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1f4f0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1f500 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1f510 74 20 6c 61 62 65 6c 2d 36 37 37 0d 0a 53 45 4c  t label-677..SEL
1f520 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20 28 20  ECT ALL COUNT ( 
1f530 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
1f540 20 49 4e 54 45 47 45 52 20 29 20 29 20 2b 20 2d   INTEGER ) ) + -
1f550 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41   + COUNT ( * ) A
1f560 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
1f570 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1f580 2d 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  -3....query I ro
1f590 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
1f5a0 53 54 49 4e 43 54 20 2b 20 2b 20 63 6f 6c 31 20  STINCT + + col1 
1f5b0 2b 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  + + + col2 AS co
1f5c0 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
1f5d0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 30 0d  cor0..----..110.
1f5e0 0a 31 31 35 0d 0a 36 34 0d 0a 0d 0a 71 75 65 72  .115..64....quer
1f5f0 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
1f600 4c 45 43 54 20 41 4c 4c 20 2b 20 31 35 20 2b 20  LECT ALL + 15 + 
1f610 36 33 20 41 53 20 63 6f 6c 30 2c 20 63 6f 6c 30  63 AS col0, col0
1f620 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
1f630 0d 0a 37 38 0d 0a 31 35 0d 0a 37 38 0d 0a 38 37  ..78..15..78..87
1f640 0d 0a 37 38 0d 0a 39 37 0d 0a 0d 0a 6f 6e 6c 79  ..78..97....only
1f650 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
1f660 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
1f670 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1f680 61 62 65 6c 2d 36 38 30 0d 0a 53 45 4c 45 43 54  abel-680..SELECT
1f690 20 41 4c 4c 20 2b 20 30 20 2b 20 2d 20 28 20 2d   ALL + 0 + - ( -
1f6a0 20 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 2d 20   COUNT( * ) ) - 
1f6b0 2b 20 2d 20 32 30 20 41 53 20 63 6f 6c 32 20 46  + - 20 AS col2 F
1f6c0 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 20 43 52  ROM tab1 cor0 CR
1f6d0 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53  OSS JOIN tab2 AS
1f6e0 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 32 39 0d   cor1..----..29.
1f6f0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1f700 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1f710 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1f720 74 20 6c 61 62 65 6c 2d 36 38 30 0d 0a 53 45 4c  t label-680..SEL
1f730 45 43 54 20 41 4c 4c 20 2b 20 30 20 2b 20 2d 20  ECT ALL + 0 + - 
1f740 28 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ( - COUNT ( * ) 
1f750 29 20 2d 20 2b 20 2d 20 32 30 20 41 53 20 63 6f  ) - + - 20 AS co
1f760 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  l2 FROM tab1 cor
1f770 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62  0 CROSS JOIN tab
1f780 32 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d  2 AS cor1..----.
1f790 0a 32 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  .29....query II 
1f7a0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1f7b0 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 63 6f 6c  DISTINCT + + col
1f7c0 30 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  0 + + col2 AS co
1f7d0 6c 30 2c 20 63 6f 6c 32 20 2b 20 63 6f 6c 30 20  l0, col2 + col0 
1f7e0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
1f7f0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
1f800 0a 31 34 34 0d 0a 31 34 34 0d 0a 31 34 37 0d 0a  .144..144..147..
1f810 31 34 37 0d 0a 31 35 39 0d 0a 31 35 39 0d 0a 0d  147..159..159...
1f820 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1f830 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1f840 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1f850 6f 72 74 20 6c 61 62 65 6c 2d 36 38 32 0d 0a 53  ort label-682..S
1f860 45 4c 45 43 54 20 2b 20 37 32 20 2a 20 2b 20 4d  ELECT + 72 * + M
1f870 41 58 28 20 41 4c 4c 20 2b 20 37 37 20 29 20 41  AX( ALL + 77 ) A
1f880 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
1f890 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1f8a0 35 35 34 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  5544....skipif m
1f8b0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1f8c0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1f8d0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38 32  owsort label-682
1f8e0 0d 0a 53 45 4c 45 43 54 20 2b 20 37 32 20 2a 20  ..SELECT + 72 * 
1f8f0 2b 20 4d 41 58 20 28 20 41 4c 4c 20 2b 20 37 37  + MAX ( ALL + 77
1f900 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
1f910 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
1f920 2d 2d 0d 0a 35 35 34 34 0d 0a 0d 0a 71 75 65 72  --..5544....quer
1f930 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1f940 45 43 54 20 41 4c 4c 20 2b 20 28 20 2b 20 34 30  ECT ALL + ( + 40
1f950 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
1f960 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 30 0d 0a  cor0..----..40..
1f970 34 30 0d 0a 34 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  40..40....onlyif
1f980 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
1f990 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
1f9a0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1f9b0 65 6c 2d 36 38 34 0d 0a 53 45 4c 45 43 54 20 44  el-684..SELECT D
1f9c0 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 28 20 2a  ISTINCT COUNT( *
1f9d0 20 29 20 2b 20 36 35 20 46 52 4f 4d 20 74 61 62   ) + 65 FROM tab
1f9e0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
1f9f0 0a 36 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .68....skipif my
1fa00 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1fa10 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1fa20 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38 34 0d  wsort label-684.
1fa30 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1fa40 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 36   COUNT ( * ) + 6
1fa50 35 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  5 FROM tab0 AS c
1fa60 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 38 0d 0a 0d  or0..----..68...
1fa70 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1fa80 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1fa90 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
1faa0 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38 35 0d 0a  sort label-685..
1fab0 53 45 4c 45 43 54 20 4d 41 58 28 20 2b 20 63 6f  SELECT MAX( + co
1fac0 6c 32 20 29 20 63 6f 6c 32 2c 20 2b 20 34 36 20  l2 ) col2, + 46 
1fad0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
1fae0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
1faf0 0a 39 36 0d 0a 34 36 0d 0a 0d 0a 73 6b 69 70 69  .96..46....skipi
1fb00 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1fb10 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66  mpatible..skipif
1fb20 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
1fb30 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
1fb40 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
1fb50 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
1fb60 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  s..query II rows
1fb70 6f 72 74 20 6c 61 62 65 6c 2d 36 38 35 0d 0a 53  ort label-685..S
1fb80 45 4c 45 43 54 20 4d 41 58 20 28 20 2b 20 63 6f  ELECT MAX ( + co
1fb90 6c 32 20 29 20 63 6f 6c 32 2c 20 2b 20 34 36 20  l2 ) col2, + 46 
1fba0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
1fbb0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
1fbc0 0a 39 36 0d 0a 34 36 0d 0a 0d 0a 71 75 65 72 79  .96..46....query
1fbd0 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
1fbe0 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  LECT * FROM tab1
1fbf0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b   AS cor0 WHERE +
1fc00 20 35 30 20 2a 20 2d 20 63 6f 6c 31 20 4e 4f 54   50 * - col1 NOT
1fc10 20 42 45 54 57 45 45 4e 20 2b 20 63 6f 6c 32 20   BETWEEN + col2 
1fc20 41 4e 44 20 2d 20 2b 20 63 6f 6c 32 0d 0a 2d 2d  AND - + col2..--
1fc30 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
1fc40 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31  hing to c6c0a411
1fc50 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31  1b36d04dbc811a11
1fc60 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72  e4d54cad....quer
1fc70 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1fc80 45 43 54 20 2b 20 28 20 63 6f 6c 31 20 29 20 2d  ECT + ( col1 ) -
1fc90 20 2b 20 2d 20 28 20 2b 20 2b 20 28 20 33 35 20   + - ( + + ( 35 
1fca0 29 20 29 20 2d 20 2b 20 63 6f 6c 32 20 46 52 4f  ) ) - + col2 FRO
1fcb0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
1fcc0 2d 2d 2d 2d 0d 0a 34 34 0d 0a 36 33 0d 0a 37 32  ----..44..63..72
1fcd0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
1fce0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20  ort..SELECT + + 
1fcf0 31 20 2a 20 2b 20 63 6f 6c 32 20 2a 20 63 6f 6c  1 * + col2 * col
1fd00 31 20 2b 20 2d 20 63 6f 6c 31 20 2d 20 2d 20 2d  1 + - col1 - - -
1fd10 20 31 33 20 2a 20 2d 20 63 6f 6c 31 20 41 53 20   13 * - col1 AS 
1fd20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
1fd30 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35  S cor0..----..15
1fd40 31 32 0d 0a 33 35 35 0d 0a 33 37 36 30 0d 0a 0d  12..355..3760...
1fd50 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1fd60 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1fd70 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1fd80 6f 72 74 20 6c 61 62 65 6c 2d 36 38 39 0d 0a 53  ort label-689..S
1fd90 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d 49 4e 28  ELECT ALL + MIN(
1fda0 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 29 20 2b 20   ALL + col0 ) + 
1fdb0 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  + + COUNT( * ) F
1fdc0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
1fdd0 0d 0a 2d 2d 2d 2d 0d 0a 34 39 0d 0a 0d 0a 73 6b  ..----..49....sk
1fde0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1fdf0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1fe00 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1fe10 65 6c 2d 36 38 39 0d 0a 53 45 4c 45 43 54 20 41  el-689..SELECT A
1fe20 4c 4c 20 2b 20 4d 49 4e 20 28 20 41 4c 4c 20 2b  LL + MIN ( ALL +
1fe30 20 63 6f 6c 30 20 29 20 2b 20 2b 20 2b 20 43 4f   col0 ) + + + CO
1fe40 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
1fe50 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
1fe60 2d 0d 0a 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -..49....onlyif 
1fe70 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
1fe80 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
1fe90 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
1fea0 65 6c 2d 36 39 30 0d 0a 53 45 4c 45 43 54 20 2d  el-690..SELECT -
1feb0 20 33 32 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29   32 - COUNT( * )
1fec0 20 41 53 20 63 6f 6c 32 2c 20 28 20 2d 20 2d 20   AS col2, ( - - 
1fed0 31 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  1 ) AS col0 FROM
1fee0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
1fef0 2d 2d 2d 0d 0a 2d 33 35 0d 0a 31 0d 0a 0d 0a 73  ---..-35..1....s
1ff00 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1ff10 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1ff20 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
1ff30 61 62 65 6c 2d 36 39 30 0d 0a 53 45 4c 45 43 54  abel-690..SELECT
1ff40 20 2d 20 33 32 20 2d 20 43 4f 55 4e 54 20 28 20   - 32 - COUNT ( 
1ff50 2a 20 29 20 41 53 20 63 6f 6c 32 2c 20 28 20 2d  * ) AS col2, ( -
1ff60 20 2d 20 31 20 29 20 41 53 20 63 6f 6c 30 20 46   - 1 ) AS col0 F
1ff70 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
1ff80 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 35 0d 0a 31 0d 0a  ..----..-35..1..
1ff90 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1ffa0 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2d  t..SELECT col1 -
1ffb0 20 2d 20 31 34 20 46 52 4f 4d 20 74 61 62 32 0d   - 14 FROM tab2.
1ffc0 0a 2d 2d 2d 2d 0d 0a 36 35 0d 0a 38 31 0d 0a 39  .----..65..81..9
1ffd0 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  1....query I row
1ffe0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
1fff0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
20000 57 48 45 52 45 20 28 20 4e 4f 54 20 4e 55 4c 4c  WHERE ( NOT NULL
20010 20 3d 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d   = NULL )..----.
20020 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
20030 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
20040 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
20050 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39 33 0d  wsort label-693.
20060 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28  .SELECT + COUNT(
20070 20 2a 20 29 20 2b 20 2b 20 43 4f 55 4e 54 28 20   * ) + + COUNT( 
20080 41 4c 4c 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20  ALL col2 ) FROM 
20090 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 36 0d 0a 0d  tab2..----..6...
200a0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
200b0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
200c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
200d0 6c 61 62 65 6c 2d 36 39 33 0d 0a 53 45 4c 45 43  label-693..SELEC
200e0 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  T + COUNT ( * ) 
200f0 2b 20 2b 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20  + + COUNT ( ALL 
20100 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 32  col2 ) FROM tab2
20110 0d 0a 2d 2d 2d 2d 0d 0a 36 0d 0a 0d 0a 6f 6e 6c  ..----..6....onl
20120 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
20130 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
20140 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49  sion: ..query II
20150 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
20160 39 34 0d 0a 53 45 4c 45 43 54 20 2b 20 38 37 2c  94..SELECT + 87,
20170 20 63 6f 6c 30 20 2b 20 63 6f 6c 30 20 2a 20 28   col0 + col0 * (
20180 20 2d 20 28 20 2d 20 63 6f 6c 30 20 29 20 29 20   - ( - col0 ) ) 
20190 2a 20 63 6f 6c 30 20 44 49 56 20 2d 20 2d 20 34  * col0 DIV - - 4
201a0 38 20 2b 20 2d 20 63 6f 6c 31 20 44 49 56 20 63  8 + - col1 DIV c
201b0 6f 6c 32 20 2d 20 36 38 20 63 6f 6c 30 20 46 52  ol2 - 68 col0 FR
201c0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 38  OM tab2..----..8
201d0 37 0d 0a 32 30 30 33 0d 0a 38 37 0d 0a 35 34 35  7..2003..87..545
201e0 36 0d 0a 38 37 0d 0a 38 37 39 35 0d 0a 0d 0a 73  6..87..8795....s
201f0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
20200 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
20210 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
20220 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
20230 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
20240 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
20250 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20  lumns..query II 
20260 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39  rowsort label-69
20270 34 0d 0a 53 45 4c 45 43 54 20 2b 20 38 37 2c 20  4..SELECT + 87, 
20280 63 6f 6c 30 20 2b 20 63 6f 6c 30 20 2a 20 28 20  col0 + col0 * ( 
20290 2d 20 28 20 2d 20 63 6f 6c 30 20 29 20 29 20 2a  - ( - col0 ) ) *
202a0 20 63 6f 6c 30 20 2f 20 2d 20 2d 20 34 38 20 2b   col0 / - - 48 +
202b0 20 2d 20 63 6f 6c 31 20 2f 20 63 6f 6c 32 20 2d   - col1 / col2 -
202c0 20 36 38 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   68 col0 FROM ta
202d0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 38 37 0d 0a 32 30  b2..----..87..20
202e0 30 33 0d 0a 38 37 0d 0a 35 34 35 36 0d 0a 38 37  03..87..5456..87
202f0 0d 0a 38 37 39 35 0d 0a 0d 0a 71 75 65 72 79 20  ..8795....query 
20300 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
20310 54 20 44 49 53 54 49 4e 43 54 20 28 20 2b 20 2d  T DISTINCT ( + -
20320 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 30 20   col1 ) AS col0 
20330 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a  FROM tab0 cor0..
20340 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 32 31 0d 0a 2d  ----..-1..-21..-
20350 38 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  81....query I ro
20360 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
20370 4c 20 2b 20 33 37 20 2a 20 2b 20 2d 20 28 20 2d  L + 37 * + - ( -
20380 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 31 20   col0 ) AS col1 
20390 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
203a0 30 0d 0a 2d 2d 2d 2d 0d 0a 31 38 38 37 0d 0a 33  0..----..1887..3
203b0 31 34 35 0d 0a 33 33 36 37 0d 0a 0d 0a 71 75 65  145..3367....que
203c0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
203d0 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30 2c 20  ELECT ALL col0, 
203e0 2d 20 37 31 20 46 52 4f 4d 20 74 61 62 30 20 63  - 71 FROM tab0 c
203f0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 2d  or0..----..15..-
20400 37 31 0d 0a 38 37 0d 0a 2d 37 31 0d 0a 39 37 0d  71..87..-71..97.
20410 0a 2d 37 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-71....onlyif m
20420 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
20430 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79  ax: aggregate sy
20440 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
20450 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  e: ..query II ro
20460 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39 38 0d  wsort label-698.
20470 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e  .SELECT ALL COUN
20480 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 2c 20  T( * ) AS col2, 
20490 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
204a0 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62 31  GNED ) FROM tab1
204b0 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 4e 55 4c 4c 0d  ..----..3..NULL.
204c0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
204d0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
204e0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
204f0 72 74 20 6c 61 62 65 6c 2d 36 39 38 0d 0a 53 45  rt label-698..SE
20500 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20 28  LECT ALL COUNT (
20510 20 2a 20 29 20 41 53 20 63 6f 6c 32 2c 20 43 41   * ) AS col2, CA
20520 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
20530 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 31  EGER ) FROM tab1
20540 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 4e 55 4c 4c 0d  ..----..3..NULL.
20550 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
20560 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61  # CAST syntax: a
20570 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
20580 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
20590 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
205a0 6c 61 62 65 6c 2d 36 39 39 0d 0a 53 45 4c 45 43  label-699..SELEC
205b0 54 20 2d 20 4d 41 58 28 20 2b 20 2d 20 28 20 2b  T - MAX( + - ( +
205c0 20 2d 20 43 41 53 54 28 20 2b 20 63 6f 6c 30 20   - CAST( + col0 
205d0 41 53 20 53 49 47 4e 45 44 20 29 20 29 20 29 20  AS SIGNED ) ) ) 
205e0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
205f0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 31 0d 0a 0d 0a  0..----..-91....
20600 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
20610 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
20620 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
20630 61 62 65 6c 2d 36 39 39 0d 0a 53 45 4c 45 43 54  abel-699..SELECT
20640 20 2d 20 4d 41 58 20 28 20 2b 20 2d 20 28 20 2b   - MAX ( + - ( +
20650 20 2d 20 43 41 53 54 20 28 20 2b 20 63 6f 6c 30   - CAST ( + col0
20660 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20   AS INTEGER ) ) 
20670 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
20680 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 31 0d 0a  or0..----..-91..
20690 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
206a0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
206b0 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 2c 20 2d   col1 AS col0, -
206c0 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52   col0 AS col0 FR
206d0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
206e0 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 39 37 0d 0a  .----..-1..-97..
206f0 2d 32 31 0d 0a 2d 38 37 0d 0a 2d 38 31 0d 0a 2d  -21..-87..-81..-
20700 31 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  15....onlyif mys
20710 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
20720 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
20730 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
20740 37 30 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  701..SELECT ALL 
20750 2b 20 34 36 2c 20 2d 20 35 33 20 2d 20 2d 20 2b  + 46, - 53 - - +
20760 20 43 4f 55 4e 54 28 20 2b 20 2d 20 63 6f 6c 32   COUNT( + - col2
20770 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
20780 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab2 cor0..----.
20790 0a 34 36 0d 0a 2d 35 30 0d 0a 0d 0a 73 6b 69 70  .46..-50....skip
207a0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
207b0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
207c0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
207d0 6c 2d 37 30 31 0d 0a 53 45 4c 45 43 54 20 41 4c  l-701..SELECT AL
207e0 4c 20 2b 20 34 36 2c 20 2d 20 35 33 20 2d 20 2d  L + 46, - 53 - -
207f0 20 2b 20 43 4f 55 4e 54 20 28 20 2b 20 2d 20 63   + COUNT ( + - c
20800 6f 6c 32 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ol2 ) AS col0 FR
20810 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d  OM tab2 cor0..--
20820 2d 2d 0d 0a 34 36 0d 0a 2d 35 30 0d 0a 0d 0a 6f  --..46..-50....o
20830 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
20840 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
20850 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
20860 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
20870 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
20880 6c 2d 37 30 32 0d 0a 53 45 4c 45 43 54 20 44 49  l-702..SELECT DI
20890 53 54 49 4e 43 54 20 2d 20 2b 20 43 41 53 54 28  STINCT - + CAST(
208a0 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 53   COUNT( * ) AS S
208b0 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 30 20  IGNED ) AS col0 
208c0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
208d0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73  0..----..-3....s
208e0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
208f0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
20900 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
20910 62 65 6c 2d 37 30 32 0d 0a 53 45 4c 45 43 54 20  bel-702..SELECT 
20920 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 43 41 53  DISTINCT - + CAS
20930 54 20 28 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  T ( COUNT ( * ) 
20940 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20  AS INTEGER ) AS 
20950 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
20960 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  S cor0..----..-3
20970 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
20980 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
20990 49 4e 43 54 20 2b 20 33 37 20 2a 20 2d 20 34 34  INCT + 37 * - 44
209a0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
209b0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 32 38 0d  r0..----..-1628.
209c0 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
209d0 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
209e0 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
209f0 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
20a00 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
20a10 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
20a20 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2b 20 2b  ECT ALL col1 + +
20a30 20 2d 20 63 6f 6c 31 20 63 6f 6c 30 20 46 52 4f   - col1 col0 FRO
20a40 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
20a50 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d  ----..0..0..0...
20a60 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
20a70 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
20a80 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
20a90 6f 72 74 20 6c 61 62 65 6c 2d 37 30 35 0d 0a 53  ort label-705..S
20aa0 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 43 4f  ELECT ALL + + CO
20ab0 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20 2d 20 4d  UNT( * ) * + - M
20ac0 41 58 28 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20  AX( col2 ) FROM 
20ad0 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
20ae0 2d 2d 0d 0a 2d 32 39 37 0d 0a 0d 0a 73 6b 69 70  --..-297....skip
20af0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
20b00 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
20b10 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
20b20 2d 37 30 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -705..SELECT ALL
20b30 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29   + + COUNT ( * )
20b40 20 2a 20 2b 20 2d 20 4d 41 58 20 28 20 63 6f 6c   * + - MAX ( col
20b50 32 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  2 ) FROM tab0 AS
20b60 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 39   cor0..----..-29
20b70 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  7....query I row
20b80 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
20b90 30 20 2b 20 2d 20 2b 20 32 39 20 46 52 4f 4d 20  0 + - + 29 FROM 
20ba0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 32 0d 0a  tab1..----..22..
20bb0 35 36 0d 0a 36 32 0d 0a 0d 0a 6f 6e 6c 79 69 66  56..62....onlyif
20bc0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
20bd0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
20be0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
20bf0 65 6c 2d 37 30 37 0d 0a 53 45 4c 45 43 54 20 41  el-707..SELECT A
20c00 4c 4c 20 4d 41 58 28 20 44 49 53 54 49 4e 43 54  LL MAX( DISTINCT
20c10 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c   + col0 ) AS col
20c20 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  2 FROM tab1..---
20c30 2d 0d 0a 39 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..91....skipif 
20c40 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
20c50 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
20c60 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 30  rowsort label-70
20c70 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 4d 41  7..SELECT ALL MA
20c80 58 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63  X ( DISTINCT + c
20c90 6f 6c 30 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ol0 ) AS col2 FR
20ca0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 39  OM tab1..----..9
20cb0 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  1....query I row
20cc0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 36  sort..SELECT + 6
20cd0 38 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  8 + col1 FROM ta
20ce0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 39 0d 0a 36  b0..----..149..6
20cf0 39 0d 0a 38 39 0d 0a 0d 0a 71 75 65 72 79 20 49  9..89....query I
20d00 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
20d10 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 30   - col2 * + col0
20d20 20 2b 20 2d 20 31 20 41 53 20 63 6f 6c 30 20 46   + - 1 AS col0 F
20d30 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
20d40 20 57 48 45 52 45 20 2d 20 36 30 20 3c 3d 20 2d   WHERE - 60 <= -
20d50 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 32 20 2b   col0 * + col2 +
20d60 20 2d 20 34 32 20 2a 20 39 30 0d 0a 2d 2d 2d 2d   - 42 * 90..----
20d70 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
20d80 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  ort..SELECT + co
20d90 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l1 AS col0 FROM 
20da0 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
20db0 52 45 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20  RE NULL BETWEEN 
20dc0 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d  NULL AND NULL..-
20dd0 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
20de0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
20df0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
20e00 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
20e10 37 31 31 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20  711..SELECT + - 
20e20 53 55 4d 28 20 2b 20 63 6f 6c 30 20 29 20 41 53  SUM( + col0 ) AS
20e30 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
20e40 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
20e50 31 38 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  185....skipif my
20e60 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
20e70 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
20e80 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 31 31 0d  wsort label-711.
20e90 0a 53 45 4c 45 43 54 20 2b 20 2d 20 53 55 4d 20  .SELECT + - SUM 
20ea0 28 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63 6f  ( + col0 ) AS co
20eb0 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
20ec0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38 35  cor0..----..-185
20ed0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
20ee0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
20ef0 20 2d 20 39 33 20 2b 20 2d 20 35 38 2c 20 63 6f   - 93 + - 58, co
20f00 6c 30 20 2b 20 2b 20 63 6f 6c 30 20 2b 20 2d 20  l0 + + col0 + - 
20f10 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f  col2 AS col2 FRO
20f20 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
20f30 2d 2d 2d 2d 0d 0a 2d 31 35 31 0d 0a 31 31 31 0d  ----..-151..111.
20f40 0a 2d 31 35 31 0d 0a 31 31 34 0d 0a 2d 31 35 31  .-151..114..-151
20f50 0d 0a 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..6....onlyif my
20f60 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
20f70 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e  x: aggregate syn
20f80 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
20f90 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
20fa0 73 6f 72 74 20 6c 61 62 65 6c 2d 37 31 33 0d 0a  sort label-713..
20fb0 53 45 4c 45 43 54 20 2d 20 43 41 53 54 28 20 2b  SELECT - CAST( +
20fc0 20 4d 41 58 28 20 2b 20 2d 20 63 6f 6c 30 20 29   MAX( + - col0 )
20fd0 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20   AS SIGNED ) AS 
20fe0 63 6f 6c 31 2c 20 33 37 20 46 52 4f 4d 20 74 61  col1, 37 FROM ta
20ff0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
21000 0d 0a 31 35 0d 0a 33 37 0d 0a 0d 0a 73 6b 69 70  ..15..37....skip
21010 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
21020 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
21030 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
21040 6c 2d 37 31 33 0d 0a 53 45 4c 45 43 54 20 2d 20  l-713..SELECT - 
21050 43 41 53 54 20 28 20 2b 20 4d 41 58 20 28 20 2b  CAST ( + MAX ( +
21060 20 2d 20 63 6f 6c 30 20 29 20 41 53 20 49 4e 54   - col0 ) AS INT
21070 45 47 45 52 20 29 20 41 53 20 63 6f 6c 31 2c 20  EGER ) AS col1, 
21080 33 37 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  37 FROM tab0 AS 
21090 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a  cor0..----..15..
210a0 33 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  37....query I ro
210b0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 28 20  wsort..SELECT ( 
210c0 2d 20 2b 20 37 36 20 29 20 2d 20 2d 20 2b 20 63  - + 76 ) - - + c
210d0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
210e0 2d 2d 2d 0d 0a 2d 32 39 0d 0a 2d 36 32 0d 0a 2d  ---..-29..-62..-
210f0 37 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  71....query II r
21100 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
21110 49 53 54 49 4e 43 54 20 36 31 2c 20 2b 20 38 32  ISTINCT 61, + 82
21120 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
21130 62 31 0d 0a 2d 2d 2d 2d 0d 0a 36 31 0d 0a 38 32  b1..----..61..82
21140 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
21150 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30  ort..SELECT col0
21160 20 2b 20 2b 20 2d 20 36 36 20 41 53 20 63 6f 6c   + + - 66 AS col
21170 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
21180 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a  or0..----..-51..
21190 32 31 0d 0a 33 31 0d 0a 0d 0a 6f 6e 6c 79 69 66  21..31....onlyif
211a0 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
211b0 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
211c0 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
211d0 73 6f 72 74 20 6c 61 62 65 6c 2d 37 31 37 0d 0a  sort label-717..
211e0 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 37  SELECT ALL + + 7
211f0 33 20 44 49 56 20 2b 20 2b 20 31 39 20 2b 20 2d  3 DIV + + 19 + -
21200 20 63 6f 6c 32 20 2b 20 2d 20 2d 20 37 33 20 46   col2 + - - 73 F
21210 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
21220 0d 0a 2d 2d 2d 2d 0d 0a 31 38 0d 0a 33 36 0d 0a  ..----..18..36..
21230 35 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  53....skipif mys
21240 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
21250 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
21260 73 6f 72 74 20 6c 61 62 65 6c 2d 37 31 37 0d 0a  sort label-717..
21270 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 37  SELECT ALL + + 7
21280 33 20 2f 20 2b 20 2b 20 31 39 20 2b 20 2d 20 63  3 / + + 19 + - c
21290 6f 6c 32 20 2b 20 2d 20 2d 20 37 33 20 46 52 4f  ol2 + - - 73 FRO
212a0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
212b0 2d 2d 2d 2d 0d 0a 31 38 0d 0a 33 36 0d 0a 35 33  ----..18..36..53
212c0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
212d0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
212e0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
212f0 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
21300 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
21310 20 6c 61 62 65 6c 2d 37 31 38 0d 0a 53 45 4c 45   label-718..SELE
21320 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 33 33  CT DISTINCT - 33
21330 20 2b 20 2b 20 4d 41 58 28 20 44 49 53 54 49 4e   + + MAX( DISTIN
21340 43 54 20 63 6f 6c 32 20 29 20 2b 20 2d 20 38 38  CT col2 ) + - 88
21350 20 2b 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20   + - CAST( NULL 
21360 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d  AS SIGNED ) FROM
21370 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
21380 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ---..NULL....ski
21390 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
213a0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
213b0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
213c0 6c 2d 37 31 38 0d 0a 53 45 4c 45 43 54 20 44 49  l-718..SELECT DI
213d0 53 54 49 4e 43 54 20 2d 20 33 33 20 2b 20 2b 20  STINCT - 33 + + 
213e0 4d 41 58 20 28 20 44 49 53 54 49 4e 43 54 20 63  MAX ( DISTINCT c
213f0 6f 6c 32 20 29 20 2b 20 2d 20 38 38 20 2b 20 2d  ol2 ) + - 88 + -
21400 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
21410 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74  INTEGER ) FROM t
21420 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
21430 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79  -..NULL....query
21440 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
21450 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 2a 20  CT ALL - col2 * 
21460 2d 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31  - - col2 AS col1
21470 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d   FROM tab2 cor0.
21480 0a 2d 2d 2d 2d 0d 0a 2d 31 36 30 30 0d 0a 2d 33  .----..-1600..-3
21490 33 36 34 0d 0a 2d 35 32 39 0d 0a 0d 0a 6f 6e 6c  364..-529....onl
214a0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
214b0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
214c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
214d0 6c 61 62 65 6c 2d 37 32 30 0d 0a 53 45 4c 45 43  label-720..SELEC
214e0 54 20 41 4c 4c 20 32 36 20 2b 20 43 4f 55 4e 54  T ALL 26 + COUNT
214f0 28 20 2a 20 29 20 2b 20 2d 20 2b 20 53 55 4d 28  ( * ) + - + SUM(
21500 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62   col0 ) FROM tab
21510 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
21520 0a 2d 31 39 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  .-198....skipif 
21530 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
21540 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
21550 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 32  rowsort label-72
21560 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 32 36  0..SELECT ALL 26
21570 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b   + COUNT ( * ) +
21580 20 2d 20 2b 20 53 55 4d 20 28 20 63 6f 6c 30 20   - + SUM ( col0 
21590 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
215a0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 38 0d  or0..----..-198.
215b0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
215c0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
215d0 4e 43 54 20 2b 20 39 20 2b 20 2b 20 63 6f 6c 30  NCT + 9 + + col0
215e0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
215f0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
21600 0d 0a 31 30 36 0d 0a 32 34 0d 0a 39 36 0d 0a 0d  ..106..24..96...
21610 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
21620 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
21630 54 20 63 6f 6c 31 20 2d 20 63 6f 6c 32 20 2a 20  T col1 - col2 * 
21640 2b 20 2d 20 38 39 20 41 53 20 63 6f 6c 30 20 46  + - 89 AS col0 F
21650 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
21660 35 32 35 36 0d 0a 36 30 39 39 0d 0a 38 35 35 38  5256..6099..8558
21670 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
21680 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
21690 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74  tax: DIV for int
216a0 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
216b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
216c0 20 6c 61 62 65 6c 2d 37 32 33 0d 0a 53 45 4c 45   label-723..SELE
216d0 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43 4f  CT DISTINCT - CO
216e0 55 4e 54 28 20 2a 20 29 20 2a 20 31 37 20 44 49  UNT( * ) * 17 DI
216f0 56 20 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20  V MAX( DISTINCT 
21700 2d 20 35 31 20 29 20 46 52 4f 4d 20 74 61 62 30  - 51 ) FROM tab0
21710 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 73 6b 69  ..----..1....ski
21720 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
21730 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
21740 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
21750 6c 2d 37 32 33 0d 0a 53 45 4c 45 43 54 20 44 49  l-723..SELECT DI
21760 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 20 28  STINCT - COUNT (
21770 20 2a 20 29 20 2a 20 31 37 20 2f 20 4d 41 58 20   * ) * 17 / MAX 
21780 28 20 44 49 53 54 49 4e 43 54 20 2d 20 35 31 20  ( DISTINCT - 51 
21790 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
217a0 2d 0d 0a 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -..1....onlyif m
217b0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
217c0 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65  ax: DECIMAL type
217d0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
217e0 6f 72 74 20 6c 61 62 65 6c 2d 37 32 34 0d 0a 53  ort label-724..S
217f0 45 4c 45 43 54 20 2b 20 43 41 53 54 28 20 4e 55  ELECT + CAST( NU
21800 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20  LL AS DECIMAL ) 
21810 2a 20 2b 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f  * + - col0 AS co
21820 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
21830 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
21840 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
21850 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
21860 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
21870 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 32 34  owsort label-724
21880 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54 20  ..SELECT + CAST 
21890 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29  ( NULL AS REAL )
218a0 20 2a 20 2b 20 2d 20 63 6f 6c 30 20 41 53 20 63   * + - col0 AS c
218b0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol0 FROM tab0..-
218c0 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
218d0 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
218e0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
218f0 20 44 49 53 54 49 4e 43 54 20 2d 20 31 37 20 2b   DISTINCT - 17 +
21900 20 2b 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 2b 20   + + col2 + + + 
21910 63 6f 6c 31 20 2a 20 2b 20 2b 20 63 6f 6c 31 20  col1 * + + col1 
21920 2a 20 2d 20 2d 20 34 30 20 46 52 4f 4d 20 74 61  * - - 40 FROM ta
21930 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
21940 20 4e 4f 54 20 28 20 4e 4f 54 20 28 20 4e 4f 54   NOT ( NOT ( NOT
21950 20 2d 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e   - col1 IS NOT N
21960 55 4c 4c 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d  ULL ) )..----...
21970 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
21980 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
21990 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
219a0 6f 72 74 20 6c 61 62 65 6c 2d 37 32 36 0d 0a 53  ort label-726..S
219b0 45 4c 45 43 54 20 2b 20 2d 20 4d 49 4e 28 20 44  ELECT + - MIN( D
219c0 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 29 20 2a  ISTINCT col2 ) *
219d0 20 33 39 20 2b 20 2b 20 39 37 20 41 53 20 63 6f   39 + + 97 AS co
219e0 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
219f0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28  cor0 WHERE NOT (
21a00 20 4e 4f 54 20 28 20 4e 4f 54 20 63 6f 6c 32 20   NOT ( NOT col2 
21a10 49 53 20 4e 55 4c 4c 20 29 20 29 0d 0a 2d 2d 2d  IS NULL ) )..---
21a20 2d 0d 0a 2d 32 39 33 0d 0a 0d 0a 73 6b 69 70 69  -..-293....skipi
21a30 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
21a40 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
21a50 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
21a60 37 32 36 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20  726..SELECT + - 
21a70 4d 49 4e 20 28 20 44 49 53 54 49 4e 43 54 20 63  MIN ( DISTINCT c
21a80 6f 6c 32 20 29 20 2a 20 33 39 20 2b 20 2b 20 39  ol2 ) * 39 + + 9
21a90 37 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  7 AS col2 FROM t
21aa0 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
21ab0 45 20 4e 4f 54 20 28 20 4e 4f 54 20 28 20 4e 4f  E NOT ( NOT ( NO
21ac0 54 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 20 29  T col2 IS NULL )
21ad0 20 29 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 39 33 0d 0a   )..----..-293..
21ae0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
21af0 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
21b00 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
21b10 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
21b20 65 6c 2d 37 32 37 0d 0a 53 45 4c 45 43 54 20 2d  el-727..SELECT -
21b30 20 63 6f 6c 31 20 44 49 56 20 2d 20 2b 20 63 6f   col1 DIV - + co
21b40 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
21b50 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31  cor0..----..1..1
21b60 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..1....skipif my
21b70 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
21b80 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
21b90 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 32 37 0d  wsort label-727.
21ba0 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2f  .SELECT - col1 /
21bb0 20 2d 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74   - + col1 FROM t
21bc0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
21bd0 2d 0d 0a 31 0d 0a 31 0d 0a 31 0d 0a 0d 0a 6f 6e  -..1..1..1....on
21be0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
21bf0 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
21c00 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
21c10 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
21c20 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
21c30 6c 2d 37 32 38 0d 0a 53 45 4c 45 43 54 20 44 49  l-728..SELECT DI
21c40 53 54 49 4e 43 54 20 43 41 53 54 28 20 4e 55 4c  STINCT CAST( NUL
21c50 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53  L AS SIGNED ) AS
21c60 20 63 6f 6c 32 2c 20 2b 20 4d 41 58 28 20 36 37   col2, + MAX( 67
21c70 20 29 20 2a 20 2b 20 53 55 4d 28 20 37 20 29 20   ) * + SUM( 7 ) 
21c80 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
21c90 0a 4e 55 4c 4c 0d 0a 31 34 30 37 0d 0a 0d 0a 73  .NULL..1407....s
21ca0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
21cb0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
21cc0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
21cd0 61 62 65 6c 2d 37 32 38 0d 0a 53 45 4c 45 43 54  abel-728..SELECT
21ce0 20 44 49 53 54 49 4e 43 54 20 43 41 53 54 20 28   DISTINCT CAST (
21cf0 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
21d00 20 29 20 41 53 20 63 6f 6c 32 2c 20 2b 20 4d 41   ) AS col2, + MA
21d10 58 20 28 20 36 37 20 29 20 2a 20 2b 20 53 55 4d  X ( 67 ) * + SUM
21d20 20 28 20 37 20 29 20 46 52 4f 4d 20 74 61 62 32   ( 7 ) FROM tab2
21d30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 31 34  ..----..NULL..14
21d40 30 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  07....query II r
21d50 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
21d60 49 53 54 49 4e 43 54 20 2b 20 31 35 20 41 53 20  ISTINCT + 15 AS 
21d70 63 6f 6c 31 2c 20 2b 20 63 6f 6c 30 20 41 53 20  col1, + col0 AS 
21d80 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 63  col2 FROM tab2 c
21d90 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 34  or0..----..15..4
21da0 36 0d 0a 31 35 0d 0a 36 34 0d 0a 31 35 0d 0a 37  6..15..64..15..7
21db0 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  5....onlyif mysq
21dc0 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
21dd0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
21de0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
21df0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
21e00 72 74 20 6c 61 62 65 6c 2d 37 33 30 0d 0a 53 45  rt label-730..SE
21e10 4c 45 43 54 20 41 4c 4c 20 43 41 53 54 28 20 4e  LECT ALL CAST( N
21e20 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
21e30 41 53 20 63 6f 6c 31 2c 20 43 4f 55 4e 54 28 20  AS col1, COUNT( 
21e40 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  * ) AS col0 FROM
21e50 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
21e60 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 33 0d 0a 0d 0a  ---..NULL..3....
21e70 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
21e80 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
21e90 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
21ea0 6c 61 62 65 6c 2d 37 33 30 0d 0a 53 45 4c 45 43  label-730..SELEC
21eb0 54 20 41 4c 4c 20 43 41 53 54 20 28 20 4e 55 4c  T ALL CAST ( NUL
21ec0 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41  L AS INTEGER ) A
21ed0 53 20 63 6f 6c 31 2c 20 43 4f 55 4e 54 20 28 20  S col1, COUNT ( 
21ee0 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  * ) AS col0 FROM
21ef0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
21f00 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 33 0d 0a 0d 0a  ---..NULL..3....
21f10 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
21f20 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
21f30 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
21f40 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62   III rowsort lab
21f50 65 6c 2d 37 33 31 0d 0a 53 45 4c 45 43 54 20 2a  el-731..SELECT *
21f60 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20   FROM tab2 cor0 
21f70 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c  WHERE NOT ( NULL
21f80 20 29 20 49 4e 20 28 20 63 6f 6c 32 2c 20 2b 20   ) IN ( col2, + 
21f90 63 6f 6c 30 2c 20 63 6f 6c 32 2c 20 2b 20 63 6f  col0, col2, + co
21fa0 6c 32 2c 20 2d 20 2b 20 43 41 53 54 28 20 4e 55  l2, - + CAST( NU
21fb0 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 29  LL AS SIGNED ) )
21fc0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
21fd0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
21fe0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
21ff0 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
22000 2d 37 33 31 0d 0a 53 45 4c 45 43 54 20 2a 20 46  -731..SELECT * F
22010 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48  ROM tab2 cor0 WH
22020 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29  ERE NOT ( NULL )
22030 20 49 4e 20 28 20 63 6f 6c 32 2c 20 2b 20 63 6f   IN ( col2, + co
22040 6c 30 2c 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c 32  l0, col2, + col2
22050 2c 20 2d 20 2b 20 43 41 53 54 20 28 20 4e 55 4c  , - + CAST ( NUL
22060 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29  L AS INTEGER ) )
22070 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
22080 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
22090 43 54 20 44 49 53 54 49 4e 43 54 20 36 30 20 41  CT DISTINCT 60 A
220a0 53 20 63 6f 6c 30 2c 20 2b 20 28 20 31 32 20 29  S col0, + ( 12 )
220b0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
220c0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
220d0 0d 0a 36 30 0d 0a 31 32 0d 0a 0d 0a 6f 6e 6c 79  ..60..12....only
220e0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
220f0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
22100 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
22110 61 62 65 6c 2d 37 33 33 0d 0a 53 45 4c 45 43 54  abel-733..SELECT
22120 20 2d 20 53 55 4d 28 20 44 49 53 54 49 4e 43 54   - SUM( DISTINCT
22130 20 2b 20 31 33 20 29 20 46 52 4f 4d 20 74 61 62   + 13 ) FROM tab
22140 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
22150 0a 2d 31 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-13....skipif m
22160 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
22170 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
22180 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 33 33  owsort label-733
22190 0d 0a 53 45 4c 45 43 54 20 2d 20 53 55 4d 20 28  ..SELECT - SUM (
221a0 20 44 49 53 54 49 4e 43 54 20 2b 20 31 33 20 29   DISTINCT + 13 )
221b0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
221c0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 0d 0a 0d  r0..----..-13...
221d0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
221e0 74 0d 0a 53 45 4c 45 43 54 20 39 36 20 41 53 20  t..SELECT 96 AS 
221f0 63 6f 6c 31 2c 20 2d 20 63 6f 6c 32 20 46 52 4f  col1, - col2 FRO
22200 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
22210 2d 2d 2d 2d 0d 0a 39 36 0d 0a 2d 31 30 0d 0a 39  ----..96..-10..9
22220 36 0d 0a 2d 34 37 0d 0a 39 36 0d 0a 2d 39 39 0d  6..-47..96..-99.
22230 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
22240 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
22250 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
22260 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
22270 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
22280 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
22290 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 63 6f  LECT ALL col0 co
222a0 6c 32 2c 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f  l2, + col1 AS co
222b0 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l0 FROM tab2 AS 
222c0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a  cor0..----..46..
222d0 35 31 0d 0a 36 34 0d 0a 37 37 0d 0a 37 35 0d 0a  51..64..77..75..
222e0 36 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  67....onlyif mys
222f0 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
22300 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
22310 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
22320 72 74 20 6c 61 62 65 6c 2d 37 33 36 0d 0a 53 45  rt label-736..SE
22330 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
22340 74 61 62 31 20 63 6f 72 30 20 57 48 45 52 45 20  tab1 cor0 WHERE 
22350 4e 4f 54 20 2d 20 34 32 20 2b 20 2d 20 43 41 53  NOT - 42 + - CAS
22360 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
22370 44 20 29 20 4e 4f 54 20 49 4e 20 28 20 63 6f 6c  D ) NOT IN ( col
22380 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  1 )..----....ski
22390 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
223a0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
223b0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
223c0 62 65 6c 2d 37 33 36 0d 0a 53 45 4c 45 43 54 20  bel-736..SELECT 
223d0 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ALL * FROM tab1 
223e0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d  cor0 WHERE NOT -
223f0 20 34 32 20 2b 20 2d 20 43 41 53 54 20 28 20 4e   42 + - CAST ( N
22400 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
22410 20 4e 4f 54 20 49 4e 20 28 20 63 6f 6c 31 20 29   NOT IN ( col1 )
22420 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
22430 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
22440 54 20 2b 20 2d 20 28 20 2b 20 33 31 20 29 20 46  T + - ( + 31 ) F
22450 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
22460 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 31 0d 0a 2d 33 31  ..----..-31..-31
22470 0d 0a 2d 33 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-31....onlyif 
22480 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
22490 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
224a0 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
224b0 65 6c 2d 37 33 38 0d 0a 53 45 4c 45 43 54 20 2b  el-738..SELECT +
224c0 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53   - COUNT( * ) AS
224d0 20 63 6f 6c 30 2c 20 2d 20 39 39 20 2d 20 2d 20   col0, - 99 - - 
224e0 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20  COUNT( * ) FROM 
224f0 74 61 62 32 20 57 48 45 52 45 20 2d 20 28 20 2d  tab2 WHERE - ( -
22500 20 63 6f 6c 32 20 29 20 2b 20 2b 20 34 38 20 49   col2 ) + + 48 I
22510 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
22520 0d 0a 2d 33 0d 0a 2d 39 36 0d 0a 0d 0a 73 6b 69  ..-3..-96....ski
22530 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
22540 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
22550 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
22560 65 6c 2d 37 33 38 0d 0a 53 45 4c 45 43 54 20 2b  el-738..SELECT +
22570 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41   - COUNT ( * ) A
22580 53 20 63 6f 6c 30 2c 20 2d 20 39 39 20 2d 20 2d  S col0, - 99 - -
22590 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f   COUNT ( * ) FRO
225a0 4d 20 74 61 62 32 20 57 48 45 52 45 20 2d 20 28  M tab2 WHERE - (
225b0 20 2d 20 63 6f 6c 32 20 29 20 2b 20 2b 20 34 38   - col2 ) + + 48
225c0 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
225d0 2d 2d 0d 0a 2d 33 0d 0a 2d 39 36 0d 0a 0d 0a 71  --..-3..-96....q
225e0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
225f0 0a 53 45 4c 45 43 54 20 2b 20 35 37 20 41 53 20  .SELECT + 57 AS 
22600 63 6f 6c 32 2c 20 2b 20 63 6f 6c 30 20 2a 20 2b  col2, + col0 * +
22610 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
22620 0a 2d 2d 2d 2d 0d 0a 35 37 0d 0a 32 32 35 0d 0a  .----..57..225..
22630 35 37 0d 0a 37 35 36 39 0d 0a 35 37 0d 0a 39 34  57..7569..57..94
22640 30 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  09....query I ro
22650 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
22660 4c 20 28 20 2d 20 2b 20 37 33 20 29 20 41 53 20  L ( - + 73 ) AS 
22670 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
22680 2d 2d 2d 2d 0d 0a 2d 37 33 0d 0a 2d 37 33 0d 0a  ----..-73..-73..
22690 2d 37 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  -73....query I r
226a0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
226b0 20 63 6f 6c 32 20 2a 20 2b 20 2b 20 63 6f 6c 30   col2 * + + col0
226c0 20 2a 20 33 39 20 46 52 4f 4d 20 74 61 62 32 0d   * 39 FROM tab2.
226d0 0a 2d 2d 2d 2d 0d 0a 31 36 39 36 35 30 0d 0a 34  .----..169650..4
226e0 31 32 36 32 0d 0a 39 39 38 34 30 0d 0a 0d 0a 6f  1262..99840....o
226f0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
22700 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
22710 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
22720 74 20 6c 61 62 65 6c 2d 37 34 32 0d 0a 53 45 4c  t label-742..SEL
22730 45 43 54 20 44 49 53 54 49 4e 43 54 20 4d 49 4e  ECT DISTINCT MIN
22740 28 20 44 49 53 54 49 4e 43 54 20 2d 20 34 37 20  ( DISTINCT - 47 
22750 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
22760 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 37 0d 0a  ab2..----..-47..
22770 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
22780 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
22790 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
227a0 20 6c 61 62 65 6c 2d 37 34 32 0d 0a 53 45 4c 45   label-742..SELE
227b0 43 54 20 44 49 53 54 49 4e 43 54 20 4d 49 4e 20  CT DISTINCT MIN 
227c0 28 20 44 49 53 54 49 4e 43 54 20 2d 20 34 37 20  ( DISTINCT - 47 
227d0 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
227e0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 37 0d 0a  ab2..----..-47..
227f0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
22800 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
22810 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
22820 73 6f 72 74 20 6c 61 62 65 6c 2d 37 34 33 0d 0a  sort label-743..
22830 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d 49 4e  SELECT ALL + MIN
22840 28 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 37  ( DISTINCT + - 7
22850 36 20 29 20 2a 20 2b 20 43 4f 55 4e 54 28 20 2a  6 ) * + COUNT( *
22860 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
22870 2d 2d 0d 0a 2d 32 32 38 0d 0a 0d 0a 73 6b 69 70  --..-228....skip
22880 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
22890 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
228a0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
228b0 2d 37 34 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -743..SELECT ALL
228c0 20 2b 20 4d 49 4e 20 28 20 44 49 53 54 49 4e 43   + MIN ( DISTINC
228d0 54 20 2b 20 2d 20 37 36 20 29 20 2a 20 2b 20 43  T + - 76 ) * + C
228e0 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20  OUNT ( * ) FROM 
228f0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32 38  tab0..----..-228
22900 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
22910 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
22920 49 4e 43 54 20 2d 20 63 6f 6c 30 20 2a 20 2d 20  INCT - col0 * - 
22930 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
22940 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c  S cor0 WHERE NUL
22950 4c 20 3c 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  L <= NULL..----.
22960 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
22970 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 63  rt..SELECT + + c
22980 6f 6c 30 20 2b 20 33 20 2a 20 63 6f 6c 31 20 41  ol0 + 3 * col1 A
22990 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
229a0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
229b0 31 30 30 0d 0a 31 35 30 0d 0a 32 35 38 0d 0a 0d  100..150..258...
229c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
229d0 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2b 20  ..SELECT col0 + 
229e0 2b 20 63 6f 6c 30 20 2a 20 63 6f 6c 30 20 46 52  + col0 * col0 FR
229f0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
22a00 0a 2d 2d 2d 2d 0d 0a 32 34 30 0d 0a 37 36 35 36  .----..240..7656
22a10 0d 0a 39 35 30 36 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..9506....onlyif
22a20 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
22a30 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
22a40 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
22a50 62 65 6c 2d 37 34 37 0d 0a 53 45 4c 45 43 54 20  bel-747..SELECT 
22a60 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54  DISTINCT - COUNT
22a70 28 20 2a 20 29 20 2a 20 2b 20 43 4f 55 4e 54 28  ( * ) * + COUNT(
22a80 20 2a 20 29 2c 20 2b 20 4d 41 58 28 20 2b 20 2b   * ), + MAX( + +
22a90 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 32 20   col2 ) AS col2 
22aa0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
22ab0 0a 2d 39 0d 0a 35 38 0d 0a 0d 0a 73 6b 69 70 69  .-9..58....skipi
22ac0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
22ad0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
22ae0 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
22af0 2d 37 34 37 0d 0a 53 45 4c 45 43 54 20 44 49 53  -747..SELECT DIS
22b00 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 20 28 20  TINCT - COUNT ( 
22b10 2a 20 29 20 2a 20 2b 20 43 4f 55 4e 54 20 28 20  * ) * + COUNT ( 
22b20 2a 20 29 2c 20 2b 20 4d 41 58 20 28 20 2b 20 2b  * ), + MAX ( + +
22b30 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 32 20   col2 ) AS col2 
22b40 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
22b50 0a 2d 39 0d 0a 35 38 0d 0a 0d 0a 71 75 65 72 79  .-9..58....query
22b60 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
22b70 43 54 20 2d 20 2b 20 63 6f 6c 31 20 2d 20 63 6f  CT - + col1 - co
22b80 6c 32 20 2a 20 2d 20 63 6f 6c 32 20 2b 20 32 39  l2 * - col2 + 29
22b90 20 2d 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c   - + col1 AS col
22ba0 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
22bb0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 30 37 36 0d  or0..----..2076.
22bc0 0a 38 37 0d 0a 39 38 32 38 0d 0a 0d 0a 71 75 65  .87..9828....que
22bd0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
22be0 4c 45 43 54 20 2d 20 31 33 20 2d 20 2b 20 63 6f  LECT - 13 - + co
22bf0 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l0 AS col1 FROM 
22c00 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab2 cor0..----.
22c10 0a 2d 35 39 0d 0a 2d 37 37 0d 0a 2d 38 38 0d 0a  .-59..-77..-88..
22c20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
22c30 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
22c40 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  INCT * FROM tab0
22c50 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
22c60 28 20 4e 4f 54 20 28 20 4e 4f 54 20 28 20 4e 4f  ( NOT ( NOT ( NO
22c70 54 20 2b 20 2d 20 37 36 20 49 53 20 4e 55 4c 4c  T + - 76 IS NULL
22c80 20 29 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a   ) ) )..----....
22c90 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
22ca0 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72  AST syntax: aggr
22cb0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49  egate syntax: SI
22cc0 47 4e 45 44 20 74 79 70 65 3a 20 44 49 56 20 66  GNED type: DIV f
22cd0 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
22ce0 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
22cf0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 35 31  owsort label-751
22d00 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
22d10 54 20 2b 20 2b 20 35 39 20 44 49 56 20 2d 20 43  T + + 59 DIV - C
22d20 41 53 54 28 20 4d 41 58 28 20 2b 20 2b 20 36 32  AST( MAX( + + 62
22d30 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a   ) AS SIGNED ) *
22d40 20 53 55 4d 28 20 44 49 53 54 49 4e 43 54 20 2d   SUM( DISTINCT -
22d50 20 63 6f 6c 30 20 29 20 2b 20 2b 20 2b 20 34 35   col0 ) + + + 45
22d60 20 2b 20 2d 20 37 39 20 46 52 4f 4d 20 74 61 62   + - 79 FROM tab
22d70 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
22d80 0a 2d 33 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-34....skipif m
22d90 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
22da0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
22db0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 35 31  owsort label-751
22dc0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
22dd0 54 20 2b 20 2b 20 35 39 20 2f 20 2d 20 43 41 53  T + + 59 / - CAS
22de0 54 20 28 20 4d 41 58 20 28 20 2b 20 2b 20 36 32  T ( MAX ( + + 62
22df0 20 29 20 41 53 20 49 4e 54 45 47 45 52 20 29 20   ) AS INTEGER ) 
22e00 2a 20 53 55 4d 20 28 20 44 49 53 54 49 4e 43 54  * SUM ( DISTINCT
22e10 20 2d 20 63 6f 6c 30 20 29 20 2b 20 2b 20 2b 20   - col0 ) + + + 
22e20 34 35 20 2b 20 2d 20 37 39 20 46 52 4f 4d 20 74  45 + - 79 FROM t
22e30 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
22e40 2d 0d 0a 2d 33 34 0d 0a 0d 0a 6f 6e 6c 79 69 66  -..-34....onlyif
22e50 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
22e60 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20  ntax: aggregate 
22e70 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
22e80 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
22e90 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 35 32  owsort label-752
22ea0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
22eb0 54 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  T - CAST( NULL A
22ec0 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2b 20 2d  S SIGNED ) * + -
22ed0 20 4d 41 58 28 20 41 4c 4c 20 63 6f 6c 30 20 29   MAX( ALL col0 )
22ee0 20 2a 20 34 35 20 46 52 4f 4d 20 74 61 62 30 20   * 45 FROM tab0 
22ef0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
22f00 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
22f10 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
22f20 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
22f30 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 35 32 0d  wsort label-752.
22f40 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
22f50 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   - CAST ( NULL A
22f60 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2b 20  S INTEGER ) * + 
22f70 2d 20 4d 41 58 20 28 20 41 4c 4c 20 63 6f 6c 30  - MAX ( ALL col0
22f80 20 29 20 2a 20 34 35 20 46 52 4f 4d 20 74 61 62   ) * 45 FROM tab
22f90 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
22fa0 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .NULL....onlyif 
22fb0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
22fc0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
22fd0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
22fe0 6c 2d 37 35 33 0d 0a 53 45 4c 45 43 54 20 44 49  l-753..SELECT DI
22ff0 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54 28 20  STINCT + COUNT( 
23000 2a 20 29 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a  * ) + + COUNT( *
23010 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   ) col1 FROM tab
23020 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
23030 0a 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .6....skipif mys
23040 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
23050 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  ble..skipif post
23060 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
23070 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
23080 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
23090 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
230a0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
230b0 62 65 6c 2d 37 35 33 0d 0a 53 45 4c 45 43 54 20  bel-753..SELECT 
230c0 44 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54  DISTINCT + COUNT
230d0 20 28 20 2a 20 29 20 2b 20 2b 20 43 4f 55 4e 54   ( * ) + + COUNT
230e0 20 28 20 2a 20 29 20 63 6f 6c 31 20 46 52 4f 4d   ( * ) col1 FROM
230f0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
23100 2d 2d 2d 0d 0a 36 0d 0a 0d 0a 71 75 65 72 79 20  ---..6....query 
23110 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
23120 54 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 28 20 2b  T + col0 * - ( +
23130 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 30 20   col2 ) AS col0 
23140 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
23150 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 30 35 0d 0a 2d  0..----..-705..-
23160 38 37 30 0d 0a 2d 39 36 30 33 0d 0a 0d 0a 6f 6e  870..-9603....on
23170 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
23180 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
23190 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
231a0 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
231b0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
231c0 2d 37 35 35 0d 0a 53 45 4c 45 43 54 20 2d 20 2b  -755..SELECT - +
231d0 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 43 4f   COUNT( * ) * CO
231e0 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20 2b 20 43  UNT( * ) * + + C
231f0 41 53 54 28 20 2b 20 2b 20 34 33 20 41 53 20 53  AST( + + 43 AS S
23200 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 30 20  IGNED ) AS col0 
23210 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
23220 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 38 37 0d 0a 0d  0..----..-387...
23230 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
23240 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
23250 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
23260 6c 61 62 65 6c 2d 37 35 35 0d 0a 53 45 4c 45 43  label-755..SELEC
23270 54 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  T - + COUNT ( * 
23280 29 20 2a 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ) * COUNT ( * ) 
23290 2a 20 2b 20 2b 20 43 41 53 54 20 28 20 2b 20 2b  * + + CAST ( + +
232a0 20 34 33 20 41 53 20 49 4e 54 45 47 45 52 20 29   43 AS INTEGER )
232b0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
232c0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
232d0 0d 0a 2d 33 38 37 0d 0a 0d 0a 71 75 65 72 79 20  ..-387....query 
232e0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
232f0 54 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 2d 20 63  T - col2 * - - c
23300 6f 6c 31 20 2b 20 2d 20 63 6f 6c 32 20 46 52 4f  ol1 + - col2 FRO
23310 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
23320 2d 2d 2d 2d 0d 0a 2d 31 39 38 0d 0a 2d 32 32 30  ----..-198..-220
23330 0d 0a 2d 33 38 35 34 0d 0a 0d 0a 6f 6e 6c 79 69  ..-3854....onlyi
23340 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
23350 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
23360 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
23370 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 35 37 0d  wsort label-757.
23380 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54 28 20  .SELECT + CAST( 
23390 2d 20 35 36 20 41 53 20 53 49 47 4e 45 44 20 29  - 56 AS SIGNED )
233a0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
233b0 0a 2d 2d 2d 2d 0d 0a 2d 35 36 0d 0a 2d 35 36 0d  .----..-56..-56.
233c0 0a 2d 35 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-56....skipif m
233d0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
233e0 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
233f0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
23400 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
23410 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
23420 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
23430 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
23440 6c 61 62 65 6c 2d 37 35 37 0d 0a 53 45 4c 45 43  label-757..SELEC
23450 54 20 2b 20 43 41 53 54 20 28 20 2d 20 35 36 20  T + CAST ( - 56 
23460 41 53 20 49 4e 54 45 47 45 52 20 29 20 63 6f 6c  AS INTEGER ) col
23470 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
23480 2d 0d 0a 2d 35 36 0d 0a 2d 35 36 0d 0a 2d 35 36  -..-56..-56..-56
23490 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
234a0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
234b0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
234c0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 35 38  owsort label-758
234d0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
234e0 54 20 31 38 20 2a 20 2b 20 2d 20 4d 41 58 28 20  T 18 * + - MAX( 
234f0 41 4c 4c 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20  ALL col2 ) FROM 
23500 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 34  tab2..----..-104
23510 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  4....skipif mysq
23520 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
23530 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
23540 6f 72 74 20 6c 61 62 65 6c 2d 37 35 38 0d 0a 53  ort label-758..S
23550 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 31  ELECT DISTINCT 1
23560 38 20 2a 20 2b 20 2d 20 4d 41 58 20 28 20 41 4c  8 * + - MAX ( AL
23570 4c 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61  L col2 ) FROM ta
23580 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 34 34 0d  b2..----..-1044.
23590 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
235a0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
235b0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
235c0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 35 39 0d  wsort label-759.
235d0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 53 55 4d 28  .SELECT ALL SUM(
235e0 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 63 6f   DISTINCT - + co
235f0 6c 31 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  l1 ) AS col2 FRO
23600 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab2..----..-1
23610 39 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  95....skipif mys
23620 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
23630 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
23640 73 6f 72 74 20 6c 61 62 65 6c 2d 37 35 39 0d 0a  sort label-759..
23650 53 45 4c 45 43 54 20 41 4c 4c 20 53 55 4d 20 28  SELECT ALL SUM (
23660 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 63 6f   DISTINCT - + co
23670 6c 31 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  l1 ) AS col2 FRO
23680 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab2..----..-1
23690 39 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  95....query III 
236a0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
236b0 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  * FROM tab1 WHER
236c0 45 20 4e 4f 54 20 28 20 2d 20 63 6f 6c 30 20 29  E NOT ( - col0 )
236d0 20 3d 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d   = + col1..----.
236e0 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
236f0 67 20 74 6f 20 63 36 63 30 61 34 31 31 31 62 33  g to c6c0a4111b3
23700 36 64 30 34 64 62 63 38 31 31 61 31 31 65 34 64  6d04dbc811a11e4d
23710 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20 49  54cad....query I
23720 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
23730 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
23740 62 32 20 57 48 45 52 45 20 2d 20 2d 20 37 20 4e  b2 WHERE - - 7 N
23750 4f 54 20 42 45 54 57 45 45 4e 20 2d 20 2d 20 63  OT BETWEEN - - c
23760 6f 6c 30 20 2d 20 2d 20 35 37 20 41 4e 44 20 4e  ol0 - - 57 AND N
23770 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  ULL..----..9 val
23780 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37  ues hashing to 7
23790 35 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38  5c998aa53ac83218
237a0 63 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d  cbf2feb962d0a49.
237b0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
237c0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
237d0 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
237e0 4f 54 20 4e 55 4c 4c 20 3c 3d 20 2b 20 2d 20 63  OT NULL <= + - c
237f0 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ol0..----....onl
23800 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
23810 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
23820 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
23830 6c 61 62 65 6c 2d 37 36 33 0d 0a 53 45 4c 45 43  label-763..SELEC
23840 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54  T DISTINCT COUNT
23850 28 20 2a 20 29 20 2a 20 36 34 20 41 53 20 63 6f  ( * ) * 64 AS co
23860 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
23870 2d 2d 0d 0a 31 39 32 0d 0a 0d 0a 73 6b 69 70 69  --..192....skipi
23880 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
23890 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
238a0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
238b0 37 36 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  763..SELECT DIST
238c0 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29  INCT COUNT ( * )
238d0 20 2a 20 36 34 20 41 53 20 63 6f 6c 30 20 46 52   * 64 AS col0 FR
238e0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
238f0 39 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  92....onlyif mys
23900 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
23910 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
23920 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
23930 36 34 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 4d  64..SELECT - - M
23940 41 58 28 20 44 49 53 54 49 4e 43 54 20 2d 20 2d  AX( DISTINCT - -
23950 20 63 6f 6c 32 20 29 20 2a 20 28 20 2b 20 43 4f   col2 ) * ( + CO
23960 55 4e 54 28 20 2a 20 29 20 29 20 63 6f 6c 31 20  UNT( * ) ) col1 
23970 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
23980 30 0d 0a 2d 2d 2d 2d 0d 0a 32 38 38 0d 0a 0d 0a  0..----..288....
23990 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
239a0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73  ot compatible..s
239b0 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
239c0 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
239d0 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
239e0 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
239f0 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
23a00 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 36  rowsort label-76
23a10 34 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 4d 41  4..SELECT - - MA
23a20 58 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 2d  X ( DISTINCT - -
23a30 20 63 6f 6c 32 20 29 20 2a 20 28 20 2b 20 43 4f   col2 ) * ( + CO
23a40 55 4e 54 20 28 20 2a 20 29 20 29 20 63 6f 6c 31  UNT ( * ) ) col1
23a50 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
23a60 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 38 38 0d 0a 0d  r0..----..288...
23a70 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
23a80 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
23a90 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
23aa0 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
23ab0 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
23ac0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
23ad0 43 54 20 63 6f 6c 32 20 63 6f 6c 30 2c 20 2b 20  CT col2 col0, + 
23ae0 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f  col0 AS col2 FRO
23af0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
23b00 2d 2d 2d 2d 0d 0a 35 39 0d 0a 38 35 0d 0a 36 38  ----..59..85..68
23b10 0d 0a 39 31 0d 0a 39 36 0d 0a 35 31 0d 0a 0d 0a  ..91..96..51....
23b20 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
23b30 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 41 53  ..SELECT col2 AS
23b40 20 63 6f 6c 32 2c 20 2b 20 38 33 20 41 53 20 63   col2, + 83 AS c
23b50 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
23b60 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d   cor0..----..59.
23b70 0a 38 33 0d 0a 36 38 0d 0a 38 33 0d 0a 39 36 0d  .83..68..83..96.
23b80 0a 38 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .83....onlyif my
23b90 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
23ba0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
23bb0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
23bc0 37 36 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  767..SELECT DIST
23bd0 49 4e 43 54 20 4d 49 4e 28 20 2d 20 2d 20 63 6f  INCT MIN( - - co
23be0 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 32 20 63  l2 ) FROM tab2 c
23bf0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 0d  or0..----..23...
23c00 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
23c10 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
23c20 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
23c30 6c 61 62 65 6c 2d 37 36 37 0d 0a 53 45 4c 45 43  label-767..SELEC
23c40 54 20 44 49 53 54 49 4e 43 54 20 4d 49 4e 20 28  T DISTINCT MIN (
23c50 20 2d 20 2d 20 63 6f 6c 32 20 29 20 46 52 4f 4d   - - col2 ) FROM
23c60 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
23c70 0d 0a 32 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..23....query I 
23c80 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
23c90 41 4c 4c 20 33 20 46 52 4f 4d 20 74 61 62 31 20  ALL 3 FROM tab1 
23ca0 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
23cb0 49 4e 20 74 61 62 31 20 41 53 20 63 6f 72 31 0d  IN tab1 AS cor1.
23cc0 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
23cd0 68 61 73 68 69 6e 67 20 74 6f 20 33 63 66 31 65  hashing to 3cf1e
23ce0 33 37 37 61 39 34 33 35 38 39 38 39 37 62 38 64  377a943589897b8d
23cf0 34 33 31 61 38 33 34 66 31 62 61 0d 0a 0d 0a 71  431a834f1ba....q
23d00 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
23d10 53 45 4c 45 43 54 20 2d 20 2b 20 32 38 20 41 53  SELECT - + 28 AS
23d20 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
23d30 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
23d40 49 4e 20 74 61 62 31 20 41 53 20 63 6f 72 31 0d  IN tab1 AS cor1.
23d50 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
23d60 68 61 73 68 69 6e 67 20 74 6f 20 63 33 65 37 66  hashing to c3e7f
23d70 61 33 64 30 35 39 66 63 37 30 38 66 30 33 63 36  a3d059fc708f03c6
23d80 30 65 39 63 65 66 30 63 31 31 35 0d 0a 0d 0a 71  0e9cef0c115....q
23d90 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
23da0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 33 36 20 2b  .SELECT ALL 36 +
23db0 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c 32 20 41 53   col2, + col2 AS
23dc0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
23dd0 0a 2d 2d 2d 2d 0d 0a 31 30 34 0d 0a 36 38 0d 0a  .----..104..68..
23de0 31 33 32 0d 0a 39 36 0d 0a 39 35 0d 0a 35 39 0d  132..96..95..59.
23df0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
23e00 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
23e10 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
23e20 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
23e30 61 62 65 6c 2d 37 37 31 0d 0a 53 45 4c 45 43 54  abel-771..SELECT
23e40 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 30 20 2a   col2 * - col0 *
23e50 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   + CAST( NULL AS
23e60 20 53 49 47 4e 45 44 20 29 20 2b 20 2d 20 63 6f   SIGNED ) + - co
23e70 6c 30 20 2d 20 2d 20 63 6f 6c 32 20 2b 20 34 32  l0 - - col2 + 42
23e80 20 2a 20 2d 20 2b 20 32 34 20 2b 20 2d 20 31 32   * - + 24 + - 12
23e90 20 2a 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c   * + col2 AS col
23ea0 32 2c 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74  2, - col2 FROM t
23eb0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
23ec0 2d 0d 0a 4e 55 4c 4c 0d 0a 2d 31 30 0d 0a 4e 55  -..NULL..-10..NU
23ed0 4c 4c 0d 0a 2d 34 37 0d 0a 4e 55 4c 4c 0d 0a 2d  LL..-47..NULL..-
23ee0 39 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  99....skipif mys
23ef0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
23f00 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
23f10 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 37 31 0d  wsort label-771.
23f20 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2a 20 2d  .SELECT col2 * -
23f30 20 63 6f 6c 30 20 2a 20 2b 20 43 41 53 54 20 28   col0 * + CAST (
23f40 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
23f50 20 29 20 2b 20 2d 20 63 6f 6c 30 20 2d 20 2d 20   ) + - col0 - - 
23f60 63 6f 6c 32 20 2b 20 34 32 20 2a 20 2d 20 2b 20  col2 + 42 * - + 
23f70 32 34 20 2b 20 2d 20 31 32 20 2a 20 2b 20 63 6f  24 + - 12 * + co
23f80 6c 32 20 41 53 20 63 6f 6c 32 2c 20 2d 20 63 6f  l2 AS col2, - co
23f90 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
23fa0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
23fb0 0d 0a 2d 31 30 0d 0a 4e 55 4c 4c 0d 0a 2d 34 37  ..-10..NULL..-47
23fc0 0d 0a 4e 55 4c 4c 0d 0a 2d 39 39 0d 0a 0d 0a 71  ..NULL..-99....q
23fd0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
23fe0 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 41 53  SELECT + col1 AS
23ff0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
24000 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55  AS cor0 WHERE NU
24010 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  LL IS NULL..----
24020 0d 0a 31 34 0d 0a 34 37 0d 0a 35 0d 0a 0d 0a 6f  ..14..47..5....o
24030 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
24040 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
24050 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
24060 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
24070 37 37 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  773..SELECT DIST
24080 49 4e 43 54 20 2b 20 63 6f 6c 31 20 44 49 56 20  INCT + col1 DIV 
24090 63 6f 6c 30 20 2b 20 2d 20 31 30 20 41 53 20 63  col0 + - 10 AS c
240a0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  ol0 FROM tab1 co
240b0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 0d  r0..----..-10...
240c0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
240d0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
240e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
240f0 6c 61 62 65 6c 2d 37 37 33 0d 0a 53 45 4c 45 43  label-773..SELEC
24100 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  T DISTINCT + col
24110 31 20 2f 20 63 6f 6c 30 20 2b 20 2d 20 31 30 20  1 / col0 + - 10 
24120 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
24130 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  1 cor0..----..-1
24140 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  0....skipif post
24150 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
24160 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
24170 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
24180 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
24190 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
241a0 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c  SELECT ALL - col
241b0 31 20 2b 20 2b 20 2d 20 63 6f 6c 31 20 41 53 20  1 + + - col1 AS 
241c0 63 6f 6c 31 2c 20 63 6f 6c 30 20 63 6f 6c 31 20  col1, col0 col1 
241d0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
241e0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 32 0d 0a 31  0..----..-162..1
241f0 35 0d 0a 2d 32 0d 0a 39 37 0d 0a 2d 34 32 0d 0a  5..-2..97..-42..
24200 38 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  87....query I ro
24210 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
24220 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 32 20 2a 20  col2 + - col2 * 
24230 2d 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  - + col0 FROM ta
24240 62 30 0d 0a 2d 2d 2d 2d 0d 0a 36 35 38 0d 0a 38  b0..----..658..8
24250 36 30 0d 0a 39 35 30 34 0d 0a 0d 0a 71 75 65 72  60..9504....quer
24260 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
24270 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a  ELECT DISTINCT *
24280 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
24290 20 4e 4f 54 20 63 6f 6c 32 20 3c 20 63 6f 6c 31   NOT col2 < col1
242a0 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
242b0 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30   hashing to c6c0
242c0 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38 31  a4111b36d04dbc81
242d0 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a  1a11e4d54cad....
242e0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
242f0 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
24300 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
24310 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
24320 2d 37 37 37 0d 0a 53 45 4c 45 43 54 20 2d 20 43  -777..SELECT - C
24330 41 53 54 28 20 2b 20 63 6f 6c 30 20 41 53 20 53  AST( + col0 AS S
24340 49 47 4e 45 44 20 29 20 2b 20 63 6f 6c 32 20 2d  IGNED ) + col2 -
24350 20 2b 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20   + - CAST( NULL 
24360 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2d 20  AS SIGNED ) * - 
24370 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f  col2 AS col1 FRO
24380 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab2..----..NU
24390 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
243a0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
243b0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
243c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
243d0 20 6c 61 62 65 6c 2d 37 37 37 0d 0a 53 45 4c 45   label-777..SELE
243e0 43 54 20 2d 20 43 41 53 54 20 28 20 2b 20 63 6f  CT - CAST ( + co
243f0 6c 30 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  l0 AS INTEGER ) 
24400 2b 20 63 6f 6c 32 20 2d 20 2b 20 2d 20 43 41 53  + col2 - + - CAS
24410 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
24420 47 45 52 20 29 20 2a 20 2d 20 63 6f 6c 32 20 41  GER ) * - col2 A
24430 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
24440 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
24450 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79  LL..NULL....only
24460 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
24470 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56  gate syntax: DIV
24480 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
24490 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
244a0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
244b0 37 38 0d 0a 53 45 4c 45 43 54 20 2d 20 4d 49 4e  78..SELECT - MIN
244c0 28 20 2b 20 2b 20 32 36 20 29 20 44 49 56 20 2b  ( + + 26 ) DIV +
244d0 20 2b 20 32 37 20 2a 20 2d 20 43 4f 55 4e 54 28   + 27 * - COUNT(
244e0 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f   * ) AS col0 FRO
244f0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab2..----..0.
24500 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
24510 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
24520 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
24530 74 20 6c 61 62 65 6c 2d 37 37 38 0d 0a 53 45 4c  t label-778..SEL
24540 45 43 54 20 2d 20 4d 49 4e 20 28 20 2b 20 2b 20  ECT - MIN ( + + 
24550 32 36 20 29 20 2f 20 2b 20 2b 20 32 37 20 2a 20  26 ) / + + 27 * 
24560 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53  - COUNT ( * ) AS
24570 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
24580 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72  .----..0....quer
24590 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
245a0 45 43 54 20 63 6f 6c 32 20 2a 20 63 6f 6c 32 20  ECT col2 * col2 
245b0 2a 20 2d 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  * - + col2 AS co
245c0 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
245d0 2d 2d 0d 0a 2d 31 30 30 30 0d 0a 2d 31 30 33 38  --..-1000..-1038
245e0 32 33 0d 0a 2d 39 37 30 32 39 39 0d 0a 0d 0a 6f  23..-970299....o
245f0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
24600 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
24610 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
24620 74 20 6c 61 62 65 6c 2d 37 38 30 0d 0a 53 45 4c  t label-780..SEL
24630 45 43 54 20 53 55 4d 28 20 2d 20 35 33 20 29 20  ECT SUM( - 53 ) 
24640 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
24650 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 39 0d 0a 0d  2..----..-159...
24660 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
24670 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
24680 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
24690 6c 61 62 65 6c 2d 37 38 30 0d 0a 53 45 4c 45 43  label-780..SELEC
246a0 54 20 53 55 4d 20 28 20 2d 20 35 33 20 29 20 41  T SUM ( - 53 ) A
246b0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
246c0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 39 0d 0a 0d 0a  ..----..-159....
246d0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
246e0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
246f0 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
24700 4e 4f 54 20 2b 20 2b 20 34 38 20 49 53 20 4e 55  NOT + + 48 IS NU
24710 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  LL..----..9 valu
24720 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36  es hashing to c6
24730 63 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63  c0a4111b36d04dbc
24740 38 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a  811a11e4d54cad..
24750 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
24760 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45   CAST syntax: DE
24770 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75  CIMAL type: ..qu
24780 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
24790 61 62 65 6c 2d 37 38 32 0d 0a 53 45 4c 45 43 54  abel-782..SELECT
247a0 20 41 4c 4c 20 2d 20 63 6f 6c 30 2c 20 38 35 20   ALL - col0, 85 
247b0 2a 20 2d 20 63 6f 6c 32 20 2a 20 63 6f 6c 31 20  * - col2 * col1 
247c0 2a 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  * - CAST( NULL A
247d0 53 20 44 45 43 49 4d 41 4c 20 29 20 41 53 20 63  S DECIMAL ) AS c
247e0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol0 FROM tab2..-
247f0 2d 2d 2d 0d 0a 2d 34 36 0d 0a 4e 55 4c 4c 0d 0a  ---..-46..NULL..
24800 2d 36 34 0d 0a 4e 55 4c 4c 0d 0a 2d 37 35 0d 0a  -64..NULL..-75..
24810 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
24820 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
24830 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
24840 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 38  rowsort label-78
24850 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  2..SELECT ALL - 
24860 63 6f 6c 30 2c 20 38 35 20 2a 20 2d 20 63 6f 6c  col0, 85 * - col
24870 32 20 2a 20 63 6f 6c 31 20 2a 20 2d 20 43 41 53  2 * col1 * - CAS
24880 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c  T ( NULL AS REAL
24890 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
248a0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d  tab2..----..-46.
248b0 0a 4e 55 4c 4c 0d 0a 2d 36 34 0d 0a 4e 55 4c 4c  .NULL..-64..NULL
248c0 0d 0a 2d 37 35 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  ..-75..NULL....q
248d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
248e0 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 28 20 2d  SELECT ALL + ( -
248f0 20 2d 20 63 6f 6c 32 20 29 20 2a 20 2d 20 2b 20   - col2 ) * - + 
24900 63 6f 6c 30 20 2b 20 63 6f 6c 31 20 2b 20 2d 20  col0 + col1 + - 
24910 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
24920 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36  S cor0..----..-6
24930 33 39 0d 0a 2d 39 33 36 0d 0a 2d 39 36 39 39 0d  39..-936..-9699.
24940 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
24950 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
24960 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
24970 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
24980 62 65 6c 2d 37 38 34 0d 0a 53 45 4c 45 43 54 20  bel-784..SELECT 
24990 41 4c 4c 20 36 35 20 2a 20 2d 20 43 41 53 54 28  ALL 65 * - CAST(
249a0 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
249b0 29 20 2a 20 2d 20 2b 20 28 20 2d 20 63 6f 6c 30  ) * - + ( - col0
249c0 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
249d0 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  cor0 WHERE NULL 
249e0 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e  IS NULL..----..N
249f0 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
24a00 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
24a10 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
24a20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
24a30 74 20 6c 61 62 65 6c 2d 37 38 34 0d 0a 53 45 4c  t label-784..SEL
24a40 45 43 54 20 41 4c 4c 20 36 35 20 2a 20 2d 20 43  ECT ALL 65 * - C
24a50 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
24a60 54 45 47 45 52 20 29 20 2a 20 2d 20 2b 20 28 20  TEGER ) * - + ( 
24a70 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61  - col0 ) FROM ta
24a80 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
24a90 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d   NULL IS NULL..-
24aa0 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
24ab0 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .NULL....onlyif 
24ac0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
24ad0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
24ae0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
24af0 6c 2d 37 38 35 0d 0a 53 45 4c 45 43 54 20 44 49  l-785..SELECT DI
24b00 53 54 49 4e 43 54 20 43 4f 55 4e 54 28 20 2a 20  STINCT COUNT( * 
24b10 29 20 2a 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b  ) * COUNT( * ) +
24b20 20 33 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   31 AS col2 FROM
24b30 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
24b40 2d 2d 2d 0d 0a 34 30 0d 0a 0d 0a 73 6b 69 70 69  ---..40....skipi
24b50 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
24b60 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
24b70 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
24b80 37 38 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  785..SELECT DIST
24b90 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29  INCT COUNT ( * )
24ba0 20 2a 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b   * COUNT ( * ) +
24bb0 20 33 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   31 AS col2 FROM
24bc0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
24bd0 2d 2d 2d 0d 0a 34 30 0d 0a 0d 0a 6f 6e 6c 79 69  ---..40....onlyi
24be0 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
24bf0 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
24c00 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
24c10 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 38 36 0d  wsort label-786.
24c20 0a 53 45 4c 45 43 54 20 2d 20 43 41 53 54 28 20  .SELECT - CAST( 
24c30 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
24c40 20 2b 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20   + + CAST( NULL 
24c50 41 53 20 53 49 47 4e 45 44 20 29 20 2d 20 43 41  AS SIGNED ) - CA
24c60 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
24c70 45 44 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  ED ) AS col0 FRO
24c80 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab2..----..NU
24c90 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
24ca0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
24cb0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
24cc0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
24cd0 20 6c 61 62 65 6c 2d 37 38 36 0d 0a 53 45 4c 45   label-786..SELE
24ce0 43 54 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c  CT - CAST ( NULL
24cf0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20   AS INTEGER ) + 
24d00 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
24d10 20 49 4e 54 45 47 45 52 20 29 20 2d 20 43 41 53   INTEGER ) - CAS
24d20 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
24d30 47 45 52 20 29 20 41 53 20 63 6f 6c 30 20 46 52  GER ) AS col0 FR
24d40 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab2..----..N
24d50 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
24d60 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
24d70 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
24d80 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
24d90 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 38 37 0d  wsort label-787.
24da0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e  .SELECT ALL COUN
24db0 54 28 20 2a 20 29 20 2b 20 2d 20 2d 20 43 4f 55  T( * ) + - - COU
24dc0 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20  NT( * ) AS col2 
24dd0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
24de0 0a 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .6....skipif mys
24df0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
24e00 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
24e10 73 6f 72 74 20 6c 61 62 65 6c 2d 37 38 37 0d 0a  sort label-787..
24e20 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54  SELECT ALL COUNT
24e30 20 28 20 2a 20 29 20 2b 20 2d 20 2d 20 43 4f 55   ( * ) + - - COU
24e40 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32  NT ( * ) AS col2
24e50 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
24e60 0d 0a 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ..6....query I r
24e70 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
24e80 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20 2d  ISTINCT + col0 -
24e90 20 2d 20 34 36 20 46 52 4f 4d 20 74 61 62 32 0d   - 46 FROM tab2.
24ea0 0a 2d 2d 2d 2d 0d 0a 31 31 30 0d 0a 31 32 31 0d  .----..110..121.
24eb0 0a 39 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .92....onlyif my
24ec0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
24ed0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
24ee0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
24ef0 37 38 39 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e  789..SELECT COUN
24f00 54 28 20 2a 20 29 20 2b 20 2b 20 2b 20 32 35 20  T( * ) + + + 25 
24f10 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
24f20 31 0d 0a 2d 2d 2d 2d 0d 0a 32 38 0d 0a 0d 0a 73  1..----..28....s
24f30 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
24f40 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
24f50 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
24f60 62 65 6c 2d 37 38 39 0d 0a 53 45 4c 45 43 54 20  bel-789..SELECT 
24f70 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2b 20  COUNT ( * ) + + 
24f80 2b 20 32 35 20 41 53 20 63 6f 6c 30 20 46 52 4f  + 25 AS col0 FRO
24f90 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 38  M tab1..----..28
24fa0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
24fb0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
24fc0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
24fd0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 39 30  owsort label-790
24fe0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 4d 49 4e  ..SELECT ALL MIN
24ff0 28 20 41 4c 4c 20 2b 20 2b 20 63 6f 6c 30 20 29  ( ALL + + col0 )
25000 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
25010 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 0d 0a  r0..----..46....
25020 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
25030 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
25040 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
25050 61 62 65 6c 2d 37 39 30 0d 0a 53 45 4c 45 43 54  abel-790..SELECT
25060 20 41 4c 4c 20 4d 49 4e 20 28 20 41 4c 4c 20 2b   ALL MIN ( ALL +
25070 20 2b 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74   + col0 ) FROM t
25080 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
25090 2d 0d 0a 34 36 0d 0a 0d 0a 71 75 65 72 79 20 49  -..46....query I
250a0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
250b0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41  CT * FROM tab0 A
250c0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
250d0 20 2d 20 39 31 20 2a 20 63 6f 6c 32 20 2a 20 2b   - 91 * col2 * +
250e0 20 34 32 20 2b 20 2d 20 2d 20 63 6f 6c 30 20 49   42 + - - col0 I
250f0 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20  S NULL..----..9 
25100 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
25110 6f 20 63 34 62 34 32 37 36 35 64 66 66 39 34 65  o c4b42765dff94e
25120 61 61 61 34 36 30 34 30 65 35 33 37 66 62 34 33  aaa46040e537fb43
25130 62 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  b7....onlyif mys
25140 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
25150 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  : aggregate synt
25160 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
25170 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
25180 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
25190 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
251a0 65 6c 2d 37 39 32 0d 0a 53 45 4c 45 43 54 20 44  el-792..SELECT D
251b0 49 53 54 49 4e 43 54 20 2d 20 2b 20 43 4f 55 4e  ISTINCT - + COUN
251c0 54 28 20 2a 20 29 20 44 49 56 20 33 20 2b 20 28  T( * ) DIV 3 + (
251d0 20 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 41 53   COUNT( * ) ) AS
251e0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
251f0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
25200 54 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20 2d  T NULL BETWEEN -
25210 20 39 37 20 2a 20 2d 20 43 41 53 54 28 20 2b 20   97 * - CAST( + 
25220 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  + CAST( NULL AS 
25230 53 49 47 4e 45 44 20 29 20 41 53 20 53 49 47 4e  SIGNED ) AS SIGN
25240 45 44 20 29 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d  ED ) AND NULL..-
25250 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  ---..0....skipif
25260 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
25270 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
25280 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
25290 39 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  92..SELECT DISTI
252a0 4e 43 54 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20  NCT - + COUNT ( 
252b0 2a 20 29 20 2f 20 33 20 2b 20 28 20 43 4f 55 4e  * ) / 3 + ( COUN
252c0 54 20 28 20 2a 20 29 20 29 20 41 53 20 63 6f 6c  T ( * ) ) AS col
252d0 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
252e0 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55  or0 WHERE NOT NU
252f0 4c 4c 20 42 45 54 57 45 45 4e 20 2d 20 39 37 20  LL BETWEEN - 97 
25300 2a 20 2d 20 43 41 53 54 20 28 20 2b 20 2b 20 43  * - CAST ( + + C
25310 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
25320 54 45 47 45 52 20 29 20 41 53 20 49 4e 54 45 47  TEGER ) AS INTEG
25330 45 52 20 29 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d  ER ) AND NULL..-
25340 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ---..0....onlyif
25350 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
25360 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
25370 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
25380 65 6c 2d 37 39 33 0d 0a 53 45 4c 45 43 54 20 44  el-793..SELECT D
25390 49 53 54 49 4e 43 54 20 2d 20 2b 20 43 4f 55 4e  ISTINCT - + COUN
253a0 54 28 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 29 20  T( ALL + col1 ) 
253b0 2a 20 38 31 20 46 52 4f 4d 20 74 61 62 31 20 41  * 81 FROM tab1 A
253c0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  S cor0..----..-2
253d0 34 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  43....skipif mys
253e0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
253f0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
25400 73 6f 72 74 20 6c 61 62 65 6c 2d 37 39 33 0d 0a  sort label-793..
25410 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
25420 2d 20 2b 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20  - + COUNT ( ALL 
25430 2b 20 63 6f 6c 31 20 29 20 2a 20 38 31 20 46 52  + col1 ) * 81 FR
25440 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
25450 0a 2d 2d 2d 2d 0d 0a 2d 32 34 33 0d 0a 0d 0a 6f  .----..-243....o
25460 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
25470 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
25480 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
25490 74 20 6c 61 62 65 6c 2d 37 39 34 0d 0a 53 45 4c  t label-794..SEL
254a0 45 43 54 20 41 4c 4c 20 2d 20 4d 49 4e 28 20 44  ECT ALL - MIN( D
254b0 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 29 20 41  ISTINCT col0 ) A
254c0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
254d0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
254e0 2d 35 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -51....skipif my
254f0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
25500 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
25510 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 39 34 0d  wsort label-794.
25520 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 4d 49  .SELECT ALL - MI
25530 4e 20 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  N ( DISTINCT col
25540 30 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  0 ) AS col2 FROM
25550 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
25560 2d 2d 2d 0d 0a 2d 35 31 0d 0a 0d 0a 6f 6e 6c 79  ---..-51....only
25570 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
25580 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
25590 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49  ype: ..query III
255a0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
255b0 39 35 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  95..SELECT * FRO
255c0 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54  M tab1 WHERE NOT
255d0 20 2d 20 63 6f 6c 31 20 42 45 54 57 45 45 4e 20   - col1 BETWEEN 
255e0 4e 55 4c 4c 20 41 4e 44 20 63 6f 6c 30 20 2a 20  NULL AND col0 * 
255f0 2d 20 31 20 2f 20 43 41 53 54 28 20 2b 20 63 6f  - 1 / CAST( + co
25600 6c 32 20 41 53 20 53 49 47 4e 45 44 20 29 20 2f  l2 AS SIGNED ) /
25610 20 2d 20 63 6f 6c 32 20 2d 20 2d 20 35 34 20 2a   - col2 - - 54 *
25620 20 33 34 20 2b 20 2d 20 28 20 63 6f 6c 30 20 29   34 + - ( col0 )
25630 20 2b 20 2b 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d   + + + col0..---
25640 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  -....skipif mysq
25650 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
25660 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  le..query III ro
25670 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 39 35 0d  wsort label-795.
25680 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
25690 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab1 WHERE NOT - 
256a0 63 6f 6c 31 20 42 45 54 57 45 45 4e 20 4e 55 4c  col1 BETWEEN NUL
256b0 4c 20 41 4e 44 20 63 6f 6c 30 20 2a 20 2d 20 31  L AND col0 * - 1
256c0 20 2f 20 43 41 53 54 20 28 20 2b 20 63 6f 6c 32   / CAST ( + col2
256d0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2f 20   AS INTEGER ) / 
256e0 2d 20 63 6f 6c 32 20 2d 20 2d 20 35 34 20 2a 20  - col2 - - 54 * 
256f0 33 34 20 2b 20 2d 20 28 20 63 6f 6c 30 20 29 20  34 + - ( col0 ) 
25700 2b 20 2b 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d  + + + col0..----
25710 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
25720 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
25730 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
25740 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
25750 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
25760 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
25770 45 4c 45 43 54 20 2d 20 30 20 2a 20 63 6f 6c 32  ELECT - 0 * col2
25780 20 41 53 20 63 6f 6c 32 2c 20 2d 20 63 6f 6c 30   AS col2, - col0
25790 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
257a0 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 2d 35 31 0d 0a 30  .----..0..-51..0
257b0 0d 0a 2d 38 35 0d 0a 30 0d 0a 2d 39 31 0d 0a 0d  ..-85..0..-91...
257c0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
257d0 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
257e0 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
257f0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
25800 6c 2d 37 39 37 0d 0a 53 45 4c 45 43 54 20 44 49  l-797..SELECT DI
25810 53 54 49 4e 43 54 20 63 6f 6c 32 20 44 49 56 20  STINCT col2 DIV 
25820 28 20 63 6f 6c 31 20 29 20 2a 20 2d 20 63 6f 6c  ( col1 ) * - col
25830 32 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  2 col1 FROM tab2
25840 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69  ..----..0....ski
25850 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
25860 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70  compatible..skip
25870 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
25880 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
25890 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
258a0 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
258b0 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
258c0 73 6f 72 74 20 6c 61 62 65 6c 2d 37 39 37 0d 0a  sort label-797..
258d0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
258e0 63 6f 6c 32 20 2f 20 28 20 63 6f 6c 31 20 29 20  col2 / ( col1 ) 
258f0 2a 20 2d 20 63 6f 6c 32 20 63 6f 6c 31 20 46 52  * - col2 col1 FR
25900 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30  OM tab2..----..0
25910 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
25920 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
25930 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
25940 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 39 38  owsort label-798
25950 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
25960 54 20 2b 20 39 38 20 2a 20 2b 20 2d 20 43 4f 55  T + 98 * + - COU
25970 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20  NT( * ) AS col0 
25980 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
25990 0a 2d 32 39 34 0d 0a 0d 0a 73 6b 69 70 69 66 20  .-294....skipif 
259a0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
259b0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
259c0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 39  rowsort label-79
259d0 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  8..SELECT DISTIN
259e0 43 54 20 2b 20 39 38 20 2a 20 2b 20 2d 20 43 4f  CT + 98 * + - CO
259f0 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c  UNT ( * ) AS col
25a00 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  0 FROM tab1..---
25a10 2d 0d 0a 2d 32 39 34 0d 0a 0d 0a 6f 6e 6c 79 69  -..-294....onlyi
25a20 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
25a30 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
25a40 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
25a50 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 39 39 0d  wsort label-799.
25a60 0a 53 45 4c 45 43 54 20 43 41 53 54 28 20 28 20  .SELECT CAST( ( 
25a70 2d 20 2d 20 38 20 29 20 41 53 20 53 49 47 4e 45  - - 8 ) AS SIGNE
25a80 44 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  D ) FROM tab0..-
25a90 2d 2d 2d 0d 0a 38 0d 0a 38 0d 0a 38 0d 0a 0d 0a  ---..8..8..8....
25aa0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
25ab0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
25ac0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
25ad0 61 62 65 6c 2d 37 39 39 0d 0a 53 45 4c 45 43 54  abel-799..SELECT
25ae0 20 43 41 53 54 20 28 20 28 20 2d 20 2d 20 38 20   CAST ( ( - - 8 
25af0 29 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 46  ) AS INTEGER ) F
25b00 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
25b10 38 0d 0a 38 0d 0a 38 0d 0a 0d 0a 6f 6e 6c 79 69  8..8..8....onlyi
25b20 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
25b30 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20  ate syntax: DIV 
25b40 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
25b50 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
25b60 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 30  rowsort label-80
25b70 30 0d 0a 53 45 4c 45 43 54 20 53 55 4d 28 20 44  0..SELECT SUM( D
25b80 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 29  ISTINCT + col1 )
25b90 20 44 49 56 20 2d 20 2b 20 39 30 20 46 52 4f 4d   DIV - + 90 FROM
25ba0 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab0 cor0..----
25bb0 0d 0a 2d 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..-1....skipif m
25bc0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
25bd0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
25be0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 30 30  owsort label-800
25bf0 0d 0a 53 45 4c 45 43 54 20 53 55 4d 20 28 20 44  ..SELECT SUM ( D
25c00 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 29  ISTINCT + col1 )
25c10 20 2f 20 2d 20 2b 20 39 30 20 46 52 4f 4d 20 74   / - + 90 FROM t
25c20 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab0 cor0..----..
25c30 2d 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  -1....onlyif mys
25c40 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
25c50 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
25c60 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
25c70 30 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43  01..SELECT ALL C
25c80 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2d 20 37 38  OUNT( * ) * - 78
25c90 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
25ca0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 34 0d 0a  b1..----..-234..
25cb0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
25cc0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
25cd0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
25ce0 20 6c 61 62 65 6c 2d 38 30 31 0d 0a 53 45 4c 45   label-801..SELE
25cf0 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20 28 20 2a  CT ALL COUNT ( *
25d00 20 29 20 2a 20 2d 20 37 38 20 41 53 20 63 6f 6c   ) * - 78 AS col
25d10 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
25d20 2d 0d 0a 2d 32 33 34 0d 0a 0d 0a 6f 6e 6c 79 69  -..-234....onlyi
25d30 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
25d40 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
25d50 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
25d60 62 65 6c 2d 38 30 32 0d 0a 53 45 4c 45 43 54 20  bel-802..SELECT 
25d70 28 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 29  ( + COUNT( * ) )
25d80 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
25d90 62 32 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  b2 cor0 CROSS JO
25da0 49 4e 20 74 61 62 32 20 41 53 20 63 6f 72 31 0d  IN tab2 AS cor1.
25db0 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 73 6b 69 70  .----..9....skip
25dc0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
25dd0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
25de0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
25df0 2d 38 30 32 0d 0a 53 45 4c 45 43 54 20 28 20 2b  -802..SELECT ( +
25e00 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29 20 41   COUNT ( * ) ) A
25e10 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
25e20 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
25e30 20 74 61 62 32 20 41 53 20 63 6f 72 31 0d 0a 2d   tab2 AS cor1..-
25e40 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 71 75 65 72 79 20  ---..9....query 
25e50 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
25e60 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
25e70 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
25e80 45 20 2d 20 37 20 49 53 20 4e 4f 54 20 4e 55 4c  E - 7 IS NOT NUL
25e90 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  L..----..9 value
25ea0 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63  s hashing to c6c
25eb0 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38  0a4111b36d04dbc8
25ec0 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d  11a11e4d54cad...
25ed0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
25ee0 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2f 20  ..SELECT col0 / 
25ef0 28 20 38 36 20 29 20 46 52 4f 4d 20 74 61 62 31  ( 86 ) FROM tab1
25f00 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 63   AS cor0 WHERE c
25f10 6f 6c 31 20 2b 20 2d 20 63 6f 6c 32 20 49 53 20  ol1 + - col2 IS 
25f20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
25f30 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
25f40 53 45 4c 45 43 54 20 63 6f 6c 30 20 41 53 20 63  SELECT col0 AS c
25f50 6f 6c 31 2c 20 2d 20 32 31 20 46 52 4f 4d 20 74  ol1, - 21 FROM t
25f60 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
25f70 2d 0d 0a 34 36 0d 0a 2d 32 31 0d 0a 36 34 0d 0a  -..46..-21..64..
25f80 2d 32 31 0d 0a 37 35 0d 0a 2d 32 31 0d 0a 0d 0a  -21..75..-21....
25f90 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
25fa0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f  .SELECT ALL - co
25fb0 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72  l2 FROM tab2 cor
25fc0 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20  0 WHERE NULL IS 
25fd0 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
25fe0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
25ff0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
26000 2a 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  * FROM tab1 cor0
26010 20 57 48 45 52 45 20 2b 20 63 6f 6c 30 20 2b 20   WHERE + col0 + 
26020 2b 20 2d 20 63 6f 6c 30 20 49 53 20 4e 4f 54 20  + - col0 IS NOT 
26030 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  NULL..----..9 va
26040 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
26050 63 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64  c6c0a4111b36d04d
26060 62 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64  bc811a11e4d54cad
26070 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
26080 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
26090 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
260a0 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
260b0 20 2d 20 34 34 20 49 53 20 4e 4f 54 20 4e 55 4c   - 44 IS NOT NUL
260c0 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  L..----..9 value
260d0 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63  s hashing to c6c
260e0 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38  0a4111b36d04dbc8
260f0 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d  11a11e4d54cad...
26100 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
26110 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
26120 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
26130 6f 72 74 20 6c 61 62 65 6c 2d 38 30 39 0d 0a 53  ort label-809..S
26140 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
26150 20 28 20 43 4f 55 4e 54 28 20 2d 20 63 6f 6c 31   ( COUNT( - col1
26160 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   ) ) AS col1 FRO
26170 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  M tab0..----..3.
26180 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
26190 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
261a0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
261b0 74 20 6c 61 62 65 6c 2d 38 30 39 0d 0a 53 45 4c  t label-809..SEL
261c0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 28  ECT DISTINCT + (
261d0 20 43 4f 55 4e 54 20 28 20 2d 20 63 6f 6c 31 20   COUNT ( - col1 
261e0 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ) ) AS col1 FROM
261f0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   tab0..----..3..
26200 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
26210 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
26220 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  - col2 FROM tab2
26230 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20   WHERE NOT col2 
26240 3c 3d 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 63 6f  <= + col1 * - co
26250 6c 31 20 2a 20 2b 20 39 34 0d 0a 2d 2d 2d 2d 0d  l1 * + 94..----.
26260 0a 2d 32 33 0d 0a 2d 34 30 0d 0a 2d 35 38 0d 0a  .-23..-40..-58..
26270 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
26280 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
26290 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 2b 20  OM tab0 WHERE + 
262a0 35 20 4e 4f 54 20 49 4e 20 28 20 2d 20 2d 20 63  5 NOT IN ( - - c
262b0 6f 6c 31 2c 20 63 6f 6c 30 20 2f 20 2d 20 63 6f  ol1, col0 / - co
262c0 6c 31 2c 20 2d 20 63 6f 6c 30 2c 20 35 30 2c 20  l1, - col0, 50, 
262d0 2d 20 2b 20 33 30 2c 20 2d 20 34 30 20 29 0d 0a  - + 30, - 40 )..
262e0 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
262f0 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37  ashing to c4b427
26300 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30  65dff94eaaa46040
26310 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75  e537fb43b7....qu
26320 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
26330 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
26340 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   * FROM tab2 WHE
26350 52 45 20 4e 4f 54 20 2d 20 2d 20 63 6f 6c 31 20  RE NOT - - col1 
26360 3c 3d 20 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d  <= - col0..----.
26370 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
26380 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61  g to 75c998aa53a
26390 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32  c83218cbf2feb962
263a0 64 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49  d0a49....query I
263b0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
263c0 20 2b 20 33 32 20 2b 20 63 6f 6c 31 20 46 52 4f   + 32 + col1 FRO
263d0 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
263e0 2d 0d 0a 31 31 33 0d 0a 33 33 0d 0a 35 33 0d 0a  -..113..33..53..
263f0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
26400 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 63 6f  t..SELECT + - co
26410 6c 31 20 2b 20 2b 20 2d 20 63 6f 6c 30 20 41 53  l1 + + - col0 AS
26420 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
26430 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
26440 31 33 38 0d 0a 2d 36 35 0d 0a 2d 39 30 0d 0a 0d  138..-65..-90...
26450 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
26460 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
26470 54 20 2b 20 39 37 20 2b 20 2d 20 63 6f 6c 31 20  T + 97 + - col1 
26480 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
26490 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 0d 0a 37 36 0d  0..----..16..76.
264a0 0a 39 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .96....query I r
264b0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
264c0 20 38 38 20 46 52 4f 4d 20 74 61 62 30 20 63 6f   88 FROM tab0 co
264d0 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
264e0 62 32 20 41 53 20 63 6f 72 31 20 57 48 45 52 45  b2 AS cor1 WHERE
264f0 20 28 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e   ( NULL IS NOT N
26500 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71  ULL )..----....q
26510 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
26520 53 45 4c 45 43 54 20 2d 20 28 20 2d 20 2d 20 39  SELECT - ( - - 9
26530 38 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  8 ) FROM tab0..-
26540 2d 2d 2d 0d 0a 2d 39 38 0d 0a 2d 39 38 0d 0a 2d  ---..-98..-98..-
26550 39 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  98....onlyif mys
26560 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
26570 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
26580 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
26590 20 6c 61 62 65 6c 2d 38 31 38 0d 0a 53 45 4c 45   label-818..SELE
265a0 43 54 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 63 6f  CT + col1 * - co
265b0 6c 31 20 44 49 56 20 2b 20 2d 20 63 6f 6c 31 20  l1 DIV + - col1 
265c0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
265d0 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 32 31 0d 0a  0..----..1..21..
265e0 38 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  81....skipif mys
265f0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
26600 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
26610 73 6f 72 74 20 6c 61 62 65 6c 2d 38 31 38 0d 0a  sort label-818..
26620 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2a 20  SELECT + col1 * 
26630 2d 20 63 6f 6c 31 20 2f 20 2b 20 2d 20 63 6f 6c  - col1 / + - col
26640 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
26650 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 32 31  or0..----..1..21
26660 0d 0a 38 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..81....query I 
26670 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
26680 2b 20 2b 20 34 32 20 2a 20 2d 20 63 6f 6c 30 20  + + 42 * - col0 
26690 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
266a0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 34 32 0d 0a  0..----..-2142..
266b0 2d 33 35 37 30 0d 0a 2d 33 38 32 32 0d 0a 0d 0a  -3570..-3822....
266c0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
266d0 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
266e0 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
266f0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
26700 2d 38 32 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -820..SELECT ALL
26710 20 2b 20 43 41 53 54 28 20 2b 20 28 20 63 6f 6c   + CAST( + ( col
26720 30 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20  0 ) AS SIGNED ) 
26730 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
26740 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 38 35 0d  0..----..51..85.
26750 0a 39 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .91....skipif my
26760 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
26770 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
26780 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 32 30 0d  wsort label-820.
26790 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 41  .SELECT ALL + CA
267a0 53 54 20 28 20 2b 20 28 20 63 6f 6c 30 20 29 20  ST ( + ( col0 ) 
267b0 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f  AS INTEGER ) FRO
267c0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
267d0 2d 2d 2d 2d 0d 0a 35 31 0d 0a 38 35 0d 0a 39 31  ----..51..85..91
267e0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
267f0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
26800 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a  DECIMAL type: ..
26810 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
26820 6c 61 62 65 6c 2d 38 32 31 0d 0a 53 45 4c 45 43  label-821..SELEC
26830 54 20 41 4c 4c 20 28 20 2d 20 63 6f 6c 30 20 29  T ALL ( - col0 )
26840 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
26850 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 43  r0 WHERE NOT - C
26860 41 53 54 28 20 63 6f 6c 32 20 41 53 20 44 45 43  AST( col2 AS DEC
26870 49 4d 41 4c 20 29 20 49 53 20 4e 4f 54 20 4e 55  IMAL ) IS NOT NU
26880 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70  LL..----....skip
26890 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
268a0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
268b0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
268c0 2d 38 32 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -821..SELECT ALL
268d0 20 28 20 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d   ( - col0 ) FROM
268e0 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
268f0 45 52 45 20 4e 4f 54 20 2d 20 43 41 53 54 20 28  ERE NOT - CAST (
26900 20 63 6f 6c 32 20 41 53 20 52 45 41 4c 20 29 20   col2 AS REAL ) 
26910 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
26920 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  -....query II ro
26930 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
26940 4c 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 2c 20  L col1 AS col2, 
26950 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f  col0 AS col2 FRO
26960 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
26970 2d 2d 2d 2d 0d 0a 31 34 0d 0a 35 31 0d 0a 34 37  ----..14..51..47
26980 0d 0a 39 31 0d 0a 35 0d 0a 38 35 0d 0a 0d 0a 6f  ..91..5..85....o
26990 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
269a0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
269b0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
269c0 72 74 20 6c 61 62 65 6c 2d 38 32 33 0d 0a 53 45  rt label-823..SE
269d0 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54  LECT ALL + COUNT
269e0 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 2c 20 2b  ( * ) AS col1, +
269f0 20 38 36 20 2d 20 2d 20 2d 20 36 33 20 46 52 4f   86 - - - 63 FRO
26a00 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  M tab1..----..3.
26a10 0a 32 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .23....skipif my
26a20 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
26a30 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72  ible..query II r
26a40 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 32 33  owsort label-823
26a50 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43  ..SELECT ALL + C
26a60 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
26a70 6c 31 2c 20 2b 20 38 36 20 2d 20 2d 20 2d 20 36  l1, + 86 - - - 6
26a80 33 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  3 FROM tab1..---
26a90 2d 0d 0a 33 0d 0a 32 33 0d 0a 0d 0a 71 75 65 72  -..3..23....quer
26aa0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
26ab0 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
26ac0 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 2b 20  0 WHERE NOT + + 
26ad0 63 6f 6c 32 20 2a 20 63 6f 6c 31 20 2a 20 2d 20  col2 * col1 * - 
26ae0 35 39 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  59 IS NOT NULL..
26af0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
26b00 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
26b10 33 30 20 2a 20 2b 20 63 6f 6c 31 20 41 53 20 63  30 * + col1 AS c
26b20 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol0 FROM tab0..-
26b30 2d 2d 2d 0d 0a 32 34 33 30 0d 0a 33 30 0d 0a 36  ---..2430..30..6
26b40 33 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  30....onlyif mys
26b50 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
26b60 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
26b70 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
26b80 38 32 36 0d 0a 53 45 4c 45 43 54 20 2d 20 32 31  826..SELECT - 21
26b90 20 41 53 20 63 6f 6c 30 2c 20 2d 20 43 4f 55 4e   AS col0, - COUN
26ba0 54 28 20 2b 20 2b 20 63 6f 6c 31 20 29 20 41 53  T( + + col1 ) AS
26bb0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
26bc0 0a 2d 2d 2d 2d 0d 0a 2d 32 31 0d 0a 2d 33 0d 0a  .----..-21..-3..
26bd0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
26be0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
26bf0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
26c00 74 20 6c 61 62 65 6c 2d 38 32 36 0d 0a 53 45 4c  t label-826..SEL
26c10 45 43 54 20 2d 20 32 31 20 41 53 20 63 6f 6c 30  ECT - 21 AS col0
26c20 2c 20 2d 20 43 4f 55 4e 54 20 28 20 2b 20 2b 20  , - COUNT ( + + 
26c30 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 30 20 46  col1 ) AS col0 F
26c40 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
26c50 2d 32 31 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79  -21..-3....query
26c60 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
26c70 45 43 54 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f  ECT + col1 AS co
26c80 6c 32 2c 20 2d 20 37 34 20 46 52 4f 4d 20 74 61  l2, - 74 FROM ta
26c90 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 2d 37  b1..----..14..-7
26ca0 34 0d 0a 34 37 0d 0a 2d 37 34 0d 0a 35 0d 0a 2d  4..47..-74..5..-
26cb0 37 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  74....skipif pos
26cc0 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
26cd0 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
26ce0 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
26cf0 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
26d00 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
26d10 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
26d20 2d 20 2b 20 28 20 2b 20 2d 20 63 6f 6c 31 20 29  - + ( + - col1 )
26d30 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
26d40 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35  AS cor0..----..5
26d50 31 0d 0a 36 37 0d 0a 37 37 0d 0a 0d 0a 71 75 65  1..67..77....que
26d60 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
26d70 4c 45 43 54 20 63 6f 6c 30 20 2b 20 2d 20 63 6f  LECT col0 + - co
26d80 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
26d90 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  cor0 WHERE NOT N
26da0 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  ULL NOT BETWEEN 
26db0 4e 55 4c 4c 20 41 4e 44 20 2b 20 63 6f 6c 32 20  NULL AND + col2 
26dc0 2a 20 2d 20 28 20 63 6f 6c 31 20 29 0d 0a 2d 2d  * - ( col1 )..--
26dd0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
26de0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
26df0 33 31 20 2a 20 2b 20 2d 20 28 20 63 6f 6c 30 20  31 * + - ( col0 
26e00 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
26e10 2d 0d 0a 2d 32 36 39 37 0d 0a 2d 33 30 30 37 0d  -..-2697..-3007.
26e20 0a 2d 34 36 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .-465....onlyif 
26e30 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
26e40 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70  tax: DECIMAL typ
26e50 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
26e60 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33 31 0d 0a  sort label-831..
26e70 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
26e80 2b 20 43 41 53 54 28 20 2b 20 63 6f 6c 30 20 41  + CAST( + col0 A
26e90 53 20 44 45 43 49 4d 41 4c 20 29 20 41 53 20 63  S DECIMAL ) AS c
26ea0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48  ol2 FROM tab1 WH
26eb0 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20  ERE NOT NULL IS 
26ec0 4e 55 4c 4c 20 4f 52 20 4e 4f 54 20 28 20 4e 55  NULL OR NOT ( NU
26ed0 4c 4c 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  LL ) IS NULL..--
26ee0 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
26ef0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
26f00 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
26f10 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33 31 0d 0a  sort label-831..
26f20 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
26f30 2b 20 43 41 53 54 20 28 20 2b 20 63 6f 6c 30 20  + CAST ( + col0 
26f40 41 53 20 52 45 41 4c 20 29 20 41 53 20 63 6f 6c  AS REAL ) AS col
26f50 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  2 FROM tab1 WHER
26f60 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55  E NOT NULL IS NU
26f70 4c 4c 20 4f 52 20 4e 4f 54 20 28 20 4e 55 4c 4c  LL OR NOT ( NULL
26f80 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d   ) IS NULL..----
26f90 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
26fa0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  ort..SELECT - co
26fb0 6c 32 20 2a 20 37 33 20 2a 20 2b 20 32 38 20 46  l2 * 73 * + 28 F
26fc0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
26fd0 2d 31 32 30 35 39 36 0d 0a 2d 31 33 38 39 39 32  -120596..-138992
26fe0 0d 0a 2d 31 39 36 32 32 34 0d 0a 0d 0a 71 75 65  ..-196224....que
26ff0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
27000 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
27010 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  * FROM tab0 AS c
27020 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 31 20 3e  or0 WHERE col1 >
27030 3d 20 2b 20 63 6f 6c 32 20 41 4e 44 20 4e 4f 54  = + col2 AND NOT
27040 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 2b 20 32 30   + col2 + + + 20
27050 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   <> NULL..----..
27060 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
27070 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
27080 43 54 20 35 35 20 2b 20 33 34 20 2a 20 2d 20 63  CT 55 + 34 * - c
27090 6f 6c 32 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20  ol2 + col0 FROM 
270a0 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
270b0 0a 2d 31 35 32 38 0d 0a 2d 31 39 38 0d 0a 2d 33  .-1528..-198..-3
270c0 32 31 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  214....onlyif my
270d0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
270e0 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20  syntax: DIV for 
270f0 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
27100 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
27110 6f 72 74 20 6c 61 62 65 6c 2d 38 33 35 0d 0a 53  ort label-835..S
27120 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 43 4f  ELECT ALL - - CO
27130 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20 28 20 43  UNT( * ) * + ( C
27140 4f 55 4e 54 28 20 2a 20 29 20 29 20 44 49 56 20  OUNT( * ) ) DIV 
27150 2b 20 28 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a  + ( - - COUNT( *
27160 20 29 20 29 20 2b 20 2d 20 34 20 2b 20 2d 20 33   ) ) + - 4 + - 3
27170 37 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  7 FROM tab0 AS c
27180 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 38 0d 0a  or0..----..-38..
27190 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
271a0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
271b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
271c0 20 6c 61 62 65 6c 2d 38 33 35 0d 0a 53 45 4c 45   label-835..SELE
271d0 43 54 20 41 4c 4c 20 2d 20 2d 20 43 4f 55 4e 54  CT ALL - - COUNT
271e0 20 28 20 2a 20 29 20 2a 20 2b 20 28 20 43 4f 55   ( * ) * + ( COU
271f0 4e 54 20 28 20 2a 20 29 20 29 20 2f 20 2b 20 28  NT ( * ) ) / + (
27200 20 2d 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29   - - COUNT ( * )
27210 20 29 20 2b 20 2d 20 34 20 2b 20 2d 20 33 37 20   ) + - 4 + - 37 
27220 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
27230 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 38 0d 0a 0d 0a  0..----..-38....
27240 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
27250 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
27260 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
27270 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
27280 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
27290 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
272a0 20 63 6f 6c 32 20 63 6f 6c 31 20 46 52 4f 4d 20   col2 col1 FROM 
272b0 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
272c0 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54 57  RE NULL NOT BETW
272d0 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c  EEN NULL AND NUL
272e0 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
272f0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
27300 43 54 20 2b 20 28 20 28 20 2b 20 2d 20 63 6f 6c  CT + ( ( + - col
27310 32 20 29 20 29 20 2a 20 2d 20 63 6f 6c 32 20 46  2 ) ) * - col2 F
27320 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
27330 31 30 30 0d 0a 32 32 30 39 0d 0a 39 38 30 31 0d  100..2209..9801.
27340 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
27350 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
27360 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
27370 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
27380 62 65 6c 2d 38 33 38 0d 0a 53 45 4c 45 43 54 20  bel-838..SELECT 
27390 41 4c 4c 20 2b 20 63 6f 6c 31 20 2d 20 2d 20 43  ALL + col1 - - C
273a0 41 53 54 28 20 2d 20 63 6f 6c 30 20 41 53 20 53  AST( - col0 AS S
273b0 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62  IGNED ) FROM tab
273c0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 36 0d 0a 2d 39  0..----..-66..-9
273d0 36 0d 0a 36 36 0d 0a 0d 0a 73 6b 69 70 69 66 20  6..66....skipif 
273e0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
273f0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
27400 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33  rowsort label-83
27410 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  8..SELECT ALL + 
27420 63 6f 6c 31 20 2d 20 2d 20 43 41 53 54 20 28 20  col1 - - CAST ( 
27430 2d 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45  - col0 AS INTEGE
27440 52 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  R ) FROM tab0..-
27450 2d 2d 2d 0d 0a 2d 36 36 0d 0a 2d 39 36 0d 0a 36  ---..-66..-96..6
27460 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  6....query II ro
27470 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
27480 4c 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 2c 20  L col0 AS col0, 
27490 34 33 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  43 AS col0 FROM 
274a0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a  tab2..----..46..
274b0 34 33 0d 0a 36 34 0d 0a 34 33 0d 0a 37 35 0d 0a  43..64..43..75..
274c0 34 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  43....onlyif mys
274d0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
274e0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
274f0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
27500 34 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  40..SELECT DISTI
27510 4e 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a  NCT COUNT( * ) *
27520 20 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d   2 FROM tab1..--
27530 2d 2d 0d 0a 36 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..6....skipif 
27540 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
27550 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
27560 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34  rowsort label-84
27570 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  0..SELECT DISTIN
27580 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a  CT COUNT ( * ) *
27590 20 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d   2 FROM tab1..--
275a0 2d 2d 0d 0a 36 0d 0a 0d 0a 71 75 65 72 79 20 49  --..6....query I
275b0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
275c0 20 33 37 20 2a 20 2d 20 2d 20 32 39 20 46 52 4f   37 * - - 29 FRO
275d0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30  M tab0..----..10
275e0 37 33 0d 0a 31 30 37 33 0d 0a 31 30 37 33 0d 0a  73..1073..1073..
275f0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
27600 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
27610 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  x: ..query II ro
27620 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34 32 0d  wsort label-842.
27630 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e  .SELECT ALL COUN
27640 54 28 20 2a 20 29 2c 20 2b 20 39 38 20 41 53 20  T( * ), + 98 AS 
27650 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col2 FROM tab1..
27660 2d 2d 2d 2d 0d 0a 33 0d 0a 39 38 0d 0a 0d 0a 73  ----..3..98....s
27670 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
27680 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
27690 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
276a0 61 62 65 6c 2d 38 34 32 0d 0a 53 45 4c 45 43 54  abel-842..SELECT
276b0 20 41 4c 4c 20 43 4f 55 4e 54 20 28 20 2a 20 29   ALL COUNT ( * )
276c0 2c 20 2b 20 39 38 20 41 53 20 63 6f 6c 32 20 46  , + 98 AS col2 F
276d0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
276e0 33 0d 0a 39 38 0d 0a 0d 0a 71 75 65 72 79 20 49  3..98....query I
276f0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
27700 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41  CT * FROM tab1 A
27710 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 63  S cor0 WHERE + c
27720 6f 6c 31 20 2a 20 2b 20 36 32 20 4e 4f 54 20 49  ol1 * + 62 NOT I
27730 4e 20 28 20 2d 20 2d 20 39 38 20 29 0d 0a 2d 2d  N ( - - 98 )..--
27740 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
27750 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31  hing to c6c0a411
27760 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31  1b36d04dbc811a11
27770 65 34 64 35 34 63 61 64 0d 0a 0d 0a 6f 6e 6c 79  e4d54cad....only
27780 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
27790 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
277a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
277b0 61 62 65 6c 2d 38 34 34 0d 0a 53 45 4c 45 43 54  abel-844..SELECT
277c0 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20   + + COUNT( * ) 
277d0 2d 20 2b 20 53 55 4d 28 20 44 49 53 54 49 4e 43  - + SUM( DISTINC
277e0 54 20 2d 20 37 36 20 29 20 46 52 4f 4d 20 74 61  T - 76 ) FROM ta
277f0 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37  b1 cor0..----..7
27800 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
27810 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
27820 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
27830 6f 72 74 20 6c 61 62 65 6c 2d 38 34 34 0d 0a 53  ort label-844..S
27840 45 4c 45 43 54 20 2b 20 2b 20 43 4f 55 4e 54 20  ELECT + + COUNT 
27850 28 20 2a 20 29 20 2d 20 2b 20 53 55 4d 20 28 20  ( * ) - + SUM ( 
27860 44 49 53 54 49 4e 43 54 20 2d 20 37 36 20 29 20  DISTINCT - 76 ) 
27870 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a  FROM tab1 cor0..
27880 2d 2d 2d 2d 0d 0a 37 39 0d 0a 0d 0a 71 75 65 72  ----..79....quer
27890 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
278a0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
278b0 36 20 41 53 20 63 6f 6c 30 2c 20 2d 20 63 6f 6c  6 AS col0, - col
278c0 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  2 AS col1 FROM t
278d0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
278e0 2d 0d 0a 2d 36 0d 0a 2d 32 33 0d 0a 2d 36 0d 0a  -..-6..-23..-6..
278f0 2d 34 30 0d 0a 2d 36 0d 0a 2d 35 38 0d 0a 0d 0a  -40..-6..-58....
27900 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
27910 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
27920 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20   tab2 WHERE NOT 
27930 63 6f 6c 30 20 2a 20 2d 20 32 38 20 4e 4f 54 20  col0 * - 28 NOT 
27940 42 45 54 57 45 45 4e 20 63 6f 6c 30 20 2b 20 37  BETWEEN col0 + 7
27950 31 20 41 4e 44 20 2b 20 63 6f 6c 31 0d 0a 2d 2d  1 AND + col1..--
27960 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  --....query III 
27970 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
27980 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ALL * FROM tab1 
27990 57 48 45 52 45 20 4e 4f 54 20 28 20 2d 20 63 6f  WHERE NOT ( - co
279a0 6c 31 20 2a 20 2b 20 63 6f 6c 31 20 29 20 42 45  l1 * + col1 ) BE
279b0 54 57 45 45 4e 20 63 6f 6c 31 20 41 4e 44 20 28  TWEEN col1 AND (
279c0 20 2b 20 38 36 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39   + 86 )..----..9
279d0 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
279e0 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64  to c6c0a4111b36d
279f0 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34  04dbc811a11e4d54
27a00 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  cad....query III
27a10 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
27a20 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
27a30 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20   tab0 WHERE NOT 
27a40 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20 28 20 2d 20  NULL NOT IN ( - 
27a50 36 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  60 )..----....qu
27a60 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
27a70 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
27a80 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 28 20  ab2 WHERE NOT ( 
27a90 4e 55 4c 4c 20 29 20 3c 20 2d 20 38 39 20 2a 20  NULL ) < - 89 * 
27aa0 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  col0..----....qu
27ab0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
27ac0 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
27ad0 61 62 32 20 57 48 45 52 45 20 2b 20 38 33 20 42  ab2 WHERE + 83 B
27ae0 45 54 57 45 45 4e 20 28 20 2b 20 31 38 20 29 20  ETWEEN ( + 18 ) 
27af0 41 4e 44 20 32 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  AND 20..----....
27b00 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
27b10 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
27b20 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
27b30 72 74 20 6c 61 62 65 6c 2d 38 35 31 0d 0a 53 45  rt label-851..SE
27b40 4c 45 43 54 20 43 4f 55 4e 54 28 20 44 49 53 54  LECT COUNT( DIST
27b50 49 4e 43 54 20 2b 20 35 35 20 29 20 46 52 4f 4d  INCT + 55 ) FROM
27b60 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a   tab2..----..1..
27b70 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
27b80 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
27b90 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
27ba0 20 6c 61 62 65 6c 2d 38 35 31 0d 0a 53 45 4c 45   label-851..SELE
27bb0 43 54 20 43 4f 55 4e 54 20 28 20 44 49 53 54 49  CT COUNT ( DISTI
27bc0 4e 43 54 20 2b 20 35 35 20 29 20 46 52 4f 4d 20  NCT + 55 ) FROM 
27bd0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d  tab2..----..1...
27be0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
27bf0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
27c00 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
27c10 6f 72 74 20 6c 61 62 65 6c 2d 38 35 32 0d 0a 53  ort label-852..S
27c20 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 53  ELECT DISTINCT S
27c30 55 4d 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63  UM( DISTINCT + c
27c40 6f 6c 30 20 29 20 2a 20 2b 20 32 37 20 46 52 4f  ol0 ) * + 27 FRO
27c50 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
27c60 20 28 20 63 6f 6c 32 20 2a 20 63 6f 6c 31 20 29   ( col2 * col1 )
27c70 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
27c80 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
27c90 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
27ca0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
27cb0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
27cc0 2d 38 35 32 0d 0a 53 45 4c 45 43 54 20 44 49 53  -852..SELECT DIS
27cd0 54 49 4e 43 54 20 53 55 4d 20 28 20 44 49 53 54  TINCT SUM ( DIST
27ce0 49 4e 43 54 20 2b 20 63 6f 6c 30 20 29 20 2a 20  INCT + col0 ) * 
27cf0 2b 20 32 37 20 46 52 4f 4d 20 74 61 62 32 20 57  + 27 FROM tab2 W
27d00 48 45 52 45 20 4e 4f 54 20 28 20 63 6f 6c 32 20  HERE NOT ( col2 
27d10 2a 20 63 6f 6c 31 20 29 20 49 53 20 4e 4f 54 20  * col1 ) IS NOT 
27d20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  NULL..----..NULL
27d30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
27d40 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
27d50 28 20 2d 20 36 38 20 29 20 46 52 4f 4d 20 74 61  ( - 68 ) FROM ta
27d60 62 31 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  b1 WHERE NOT NUL
27d70 4c 20 3c 20 28 20 2d 20 38 31 20 29 0d 0a 2d 2d  L < ( - 81 )..--
27d80 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
27d90 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
27da0 4c 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30  L - col2 AS col0
27db0 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
27dc0 20 4e 4f 54 20 2d 20 63 6f 6c 32 20 3e 20 63 6f   NOT - col2 > co
27dd0 6c 32 20 2b 20 38 39 0d 0a 2d 2d 2d 2d 0d 0a 2d  l2 + 89..----..-
27de0 35 39 0d 0a 2d 36 38 0d 0a 2d 39 36 0d 0a 0d 0a  59..-68..-96....
27df0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
27e00 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 41 53 20  .SELECT col0 AS 
27e10 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 57  col0 FROM tab1 W
27e20 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20 2a 20  HERE NOT col2 * 
27e30 38 35 20 2b 20 2b 20 38 32 20 49 53 20 4e 55 4c  85 + + 82 IS NUL
27e40 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 38 35 0d  L..----..51..85.
27e50 0a 39 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .91....query I r
27e60 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
27e70 6f 6c 30 20 2b 20 2b 20 28 20 63 6f 6c 32 20 29  ol0 + + ( col2 )
27e80 20 2a 20 34 32 20 46 52 4f 4d 20 74 61 62 31 20   * 42 FROM tab1 
27e90 57 48 45 52 45 20 63 6f 6c 32 20 49 53 20 4e 4f  WHERE col2 IS NO
27ea0 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 35  T NULL..----..25
27eb0 36 33 0d 0a 32 39 34 37 0d 0a 34 30 38 33 0d 0a  63..2947..4083..
27ec0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
27ed0 74 0d 0a 53 45 4c 45 43 54 20 2b 20 32 39 20 41  t..SELECT + 29 A
27ee0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
27ef0 20 57 48 45 52 45 20 63 6f 6c 32 20 2a 20 2d 20   WHERE col2 * - 
27f00 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 30 20 49 53  col2 + + col0 IS
27f10 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
27f20 0a 32 39 0d 0a 32 39 0d 0a 32 39 0d 0a 0d 0a 6f  .29..29..29....o
27f30 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
27f40 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
27f50 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
27f60 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
27f70 38 35 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  858..SELECT ALL 
27f80 63 6f 6c 32 20 2a 20 63 6f 6c 30 20 2d 20 43 41  col2 * col0 - CA
27f90 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
27fa0 45 44 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ED ) col2 FROM t
27fb0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab2..----..NULL.
27fc0 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .NULL..NULL....s
27fd0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
27fe0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
27ff0 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
28000 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
28010 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
28020 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
28030 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
28040 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 35 38  owsort label-858
28050 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c  ..SELECT ALL col
28060 32 20 2a 20 63 6f 6c 30 20 2d 20 43 41 53 54 20  2 * col0 - CAST 
28070 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
28080 52 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  R ) col2 FROM ta
28090 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b2..----..NULL..
280a0 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  NULL..NULL....qu
280b0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
280c0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
280d0 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 63 6f  OM tab0 WHERE co
280e0 6c 31 20 2a 20 2d 20 36 31 20 2b 20 2b 20 63 6f  l1 * - 61 + + co
280f0 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l1 IS NULL..----
28100 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
28110 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
28120 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
28130 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
28140 20 6c 61 62 65 6c 2d 38 36 30 0d 0a 53 45 4c 45   label-860..SELE
28150 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57  CT * FROM tab1 W
28160 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20 3c 20  HERE NOT col1 < 
28170 28 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  ( CAST( NULL AS 
28180 53 49 47 4e 45 44 20 29 20 29 0d 0a 2d 2d 2d 2d  SIGNED ) )..----
28190 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
281a0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
281b0 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  e..query III row
281c0 73 6f 72 74 20 6c 61 62 65 6c 2d 38 36 30 0d 0a  sort label-860..
281d0 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
281e0 62 31 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  b1 WHERE NOT col
281f0 31 20 3c 20 28 20 43 41 53 54 20 28 20 4e 55 4c  1 < ( CAST ( NUL
28200 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29  L AS INTEGER ) )
28210 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
28220 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
28230 54 20 41 4c 4c 20 63 6f 6c 30 20 2b 20 63 6f 6c  T ALL col0 + col
28240 31 20 2a 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20  1 * + col1 FROM 
28250 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 35 32 38 0d  tab0..----..528.
28260 0a 36 35 37 36 0d 0a 39 38 0d 0a 0d 0a 71 75 65  .6576..98....que
28270 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
28280 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
28290 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54  M tab1 WHERE NOT
282a0 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45   NULL NOT BETWEE
282b0 4e 20 28 20 63 6f 6c 32 20 29 20 41 4e 44 20 2d  N ( col2 ) AND -
282c0 20 31 39 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c   19..----....onl
282d0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
282e0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
282f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
28300 6c 61 62 65 6c 2d 38 36 33 0d 0a 53 45 4c 45 43  label-863..SELEC
28310 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41  T + COUNT( * ) A
28320 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
28330 20 57 48 45 52 45 20 28 20 63 6f 6c 32 20 2a 20   WHERE ( col2 * 
28340 38 39 20 29 20 3d 20 2b 20 33 32 0d 0a 2d 2d 2d  89 ) = + 32..---
28350 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..0....skipif m
28360 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
28370 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
28380 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 36 33  owsort label-863
28390 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54  ..SELECT + COUNT
283a0 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46   ( * ) AS col0 F
283b0 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 28  ROM tab1 WHERE (
283c0 20 63 6f 6c 32 20 2a 20 38 39 20 29 20 3d 20 2b   col2 * 89 ) = +
283d0 20 33 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a   32..----..0....
283e0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
283f0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
28400 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
28410 72 74 20 6c 61 62 65 6c 2d 38 36 34 0d 0a 53 45  rt label-864..SE
28420 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 34 33  LECT + COUNT( 43
28430 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
28440 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..3....skipif 
28450 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
28460 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
28470 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 36  rowsort label-86
28480 34 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e  4..SELECT + COUN
28490 54 20 28 20 34 33 20 29 20 46 52 4f 4d 20 74 61  T ( 43 ) FROM ta
284a0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71  b0..----..3....q
284b0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
284c0 53 45 4c 45 43 54 20 63 6f 6c 30 20 46 52 4f 4d  SELECT col0 FROM
284d0 20 74 61 62 31 20 57 48 45 52 45 20 63 6f 6c 31   tab1 WHERE col1
284e0 20 3c 20 28 20 39 31 20 29 0d 0a 2d 2d 2d 2d 0d   < ( 91 )..----.
284f0 0a 35 31 0d 0a 38 35 0d 0a 39 31 0d 0a 0d 0a 71  .51..85..91....q
28500 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
28510 53 45 4c 45 43 54 20 2b 20 34 37 20 46 52 4f 4d  SELECT + 47 FROM
28520 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
28530 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3c 20 4e  ERE NOT NULL < N
28540 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
28550 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
28560 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2a 20 39 36  LECT - col1 * 96
28570 20 2d 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74   - + col0 FROM t
28580 61 62 30 20 57 48 45 52 45 20 2b 20 39 35 20 2a  ab0 WHERE + 95 *
28590 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c   col2 IS NOT NUL
285a0 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 33 0d 0a 2d  L..----..-193..-
285b0 32 31 30 33 0d 0a 2d 37 37 39 31 0d 0a 0d 0a 6f  2103..-7791....o
285c0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
285d0 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
285e0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
285f0 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
28600 6c 2d 38 36 38 0d 0a 53 45 4c 45 43 54 20 2a 20  l-868..SELECT * 
28610 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
28620 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
28630 47 4e 45 44 20 29 20 3e 3d 20 28 20 2d 20 63 6f  GNED ) >= ( - co
28640 6c 31 20 2a 20 2d 20 37 34 20 29 0d 0a 2d 2d 2d  l1 * - 74 )..---
28650 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  -....skipif mysq
28660 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
28670 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  le..query III ro
28680 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 36 38 0d  wsort label-868.
28690 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
286a0 61 62 31 20 57 48 45 52 45 20 43 41 53 54 20 28  ab1 WHERE CAST (
286b0 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
286c0 20 29 20 3e 3d 20 28 20 2d 20 63 6f 6c 31 20 2a   ) >= ( - col1 *
286d0 20 2d 20 37 34 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   - 74 )..----...
286e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
286f0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
28700 54 20 63 6f 6c 32 20 2b 20 2d 20 31 30 20 2a 20  T col2 + - 10 * 
28710 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
28720 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
28730 30 33 0d 0a 2d 38 36 30 0d 0a 2d 38 37 31 0d 0a  03..-860..-871..
28740 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
28750 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
28760 43 54 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 33 31  CT + - col1 * 31
28770 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
28780 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
28790 0d 0a 2d 32 35 31 31 0d 0a 2d 33 31 0d 0a 2d 36  ..-2511..-31..-6
287a0 35 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  51....onlyif mys
287b0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
287c0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
287d0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
287e0 37 31 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55  71..SELECT - COU
287f0 4e 54 28 20 2d 20 37 34 20 29 20 46 52 4f 4d 20  NT( - 74 ) FROM 
28800 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
28810 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66  --..-3....skipif
28820 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
28830 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
28840 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
28850 37 31 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55  71..SELECT - COU
28860 4e 54 20 28 20 2d 20 37 34 20 29 20 46 52 4f 4d  NT ( - 74 ) FROM
28870 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
28880 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79  ---..-3....query
28890 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
288a0 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 2b 20  CT ALL - col2 + 
288b0 63 6f 6c 31 20 2a 20 2d 20 37 35 20 46 52 4f 4d  col1 * - 75 FROM
288c0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
288d0 2d 2d 2d 0d 0a 2d 33 38 34 38 0d 0a 2d 35 30 38  ---..-3848..-508
288e0 33 0d 0a 2d 35 38 31 35 0d 0a 0d 0a 71 75 65 72  3..-5815....quer
288f0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
28900 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  ECT DISTINCT col
28910 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  1 AS col0 FROM t
28920 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
28930 45 20 4e 55 4c 4c 20 3e 3d 20 63 6f 6c 31 20 2a  E NULL >= col1 *
28940 20 2b 20 32 39 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   + 29..----....q
28950 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
28960 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 41 53  SELECT + col1 AS
28970 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
28980 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20  AS cor0 WHERE ( 
28990 2b 20 28 20 63 6f 6c 30 20 29 20 29 20 42 45 54  + ( col0 ) ) BET
289a0 57 45 45 4e 20 28 20 2b 20 63 6f 6c 31 20 29 20  WEEN ( + col1 ) 
289b0 41 4e 44 20 2b 20 63 6f 6c 31 20 2a 20 63 6f 6c  AND + col1 * col
289c0 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 32 31 0d 0a  0..----..1..21..
289d0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
289e0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
289f0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
28a00 73 6f 72 74 20 6c 61 62 65 6c 2d 38 37 35 0d 0a  sort label-875..
28a10 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 34 37 20  SELECT ALL - 47 
28a20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  + + COUNT( * ) F
28a30 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
28a40 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 34 0d 0a 0d 0a 73  ..----..-44....s
28a50 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
28a60 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
28a70 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
28a80 62 65 6c 2d 38 37 35 0d 0a 53 45 4c 45 43 54 20  bel-875..SELECT 
28a90 41 4c 4c 20 2d 20 34 37 20 2b 20 2b 20 43 4f 55  ALL - 47 + + COU
28aa0 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  NT ( * ) FROM ta
28ab0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
28ac0 0d 0a 2d 34 34 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-44....skipif 
28ad0 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
28ae0 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
28af0 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
28b00 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
28b10 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
28b20 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
28b30 2b 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 30 20  + col0 * - col0 
28b40 2b 20 63 6f 6c 31 20 63 6f 6c 32 20 46 52 4f 4d  + col1 col2 FROM
28b50 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
28b60 2d 2d 2d 0d 0a 2d 32 30 36 35 0d 0a 2d 34 30 31  ---..-2065..-401
28b70 39 0d 0a 2d 35 35 35 38 0d 0a 0d 0a 6f 6e 6c 79  9..-5558....only
28b80 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
28b90 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74  syntax: aggregat
28ba0 65 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41  e syntax: DECIMA
28bb0 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  L type: ..query 
28bc0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
28bd0 38 37 37 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e  877..SELECT COUN
28be0 54 28 20 2a 20 29 20 2d 20 2b 20 43 41 53 54 28  T( * ) - + CAST(
28bf0 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c   NULL AS DECIMAL
28c00 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
28c10 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
28c20 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
28c30 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
28c40 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
28c50 72 74 20 6c 61 62 65 6c 2d 38 37 37 0d 0a 53 45  rt label-877..SE
28c60 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29  LECT COUNT ( * )
28c70 20 2d 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c   - + CAST ( NULL
28c80 20 41 53 20 52 45 41 4c 20 29 20 46 52 4f 4d 20   AS REAL ) FROM 
28c90 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
28ca0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72  --..NULL....quer
28cb0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
28cc0 45 43 54 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 34  ECT - col0 * + 4
28cd0 33 20 2d 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20  3 - + col1 FROM 
28ce0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
28cf0 2d 2d 0d 0a 2d 32 30 32 39 0d 0a 2d 32 38 32 39  --..-2029..-2829
28d00 0d 0a 2d 33 32 39 32 0d 0a 0d 0a 71 75 65 72 79  ..-3292....query
28d10 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
28d20 43 54 20 41 4c 4c 20 2d 20 35 33 20 2b 20 2d 20  CT ALL - 53 + - 
28d30 31 38 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  18 FROM tab0 AS 
28d40 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 31 0d  cor0..----..-71.
28d50 0a 2d 37 31 0d 0a 2d 37 31 0d 0a 0d 0a 6f 6e 6c  .-71..-71....onl
28d60 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
28d70 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
28d80 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
28d90 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 38  rowsort label-88
28da0 30 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 44  0..SELECT col0 D
28db0 49 56 20 63 6f 6c 32 20 2d 20 39 38 20 2a 20 2b  IV col2 - 98 * +
28dc0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
28dd0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
28de0 35 37 38 31 0d 0a 2d 36 36 36 33 0d 0a 2d 39 34  5781..-6663..-94
28df0 30 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  08....skipif mys
28e00 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
28e10 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
28e20 73 6f 72 74 20 6c 61 62 65 6c 2d 38 38 30 0d 0a  sort label-880..
28e30 53 45 4c 45 43 54 20 63 6f 6c 30 20 2f 20 63 6f  SELECT col0 / co
28e40 6c 32 20 2d 20 39 38 20 2a 20 2b 20 63 6f 6c 32  l2 - 98 * + col2
28e50 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
28e60 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 37 38 31 0d  r0..----..-5781.
28e70 0a 2d 36 36 36 33 0d 0a 2d 39 34 30 38 0d 0a 0d  .-6663..-9408...
28e80 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
28e90 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
28ea0 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
28eb0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
28ec0 6c 2d 38 38 31 0d 0a 53 45 4c 45 43 54 20 44 49  l-881..SELECT DI
28ed0 53 54 49 4e 43 54 20 63 6f 6c 31 20 44 49 56 20  STINCT col1 DIV 
28ee0 2b 20 63 6f 6c 31 20 2d 20 63 6f 6c 32 20 2a 20  + col1 - col2 * 
28ef0 34 39 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  49 AS col0 FROM 
28f00 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 30  tab0..----..-230
28f10 32 0d 0a 2d 34 38 35 30 0d 0a 2d 34 38 39 0d 0a  2..-4850..-489..
28f20 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
28f30 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
28f40 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
28f50 20 6c 61 62 65 6c 2d 38 38 31 0d 0a 53 45 4c 45   label-881..SELE
28f60 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31  CT DISTINCT col1
28f70 20 2f 20 2b 20 63 6f 6c 31 20 2d 20 63 6f 6c 32   / + col1 - col2
28f80 20 2a 20 34 39 20 41 53 20 63 6f 6c 30 20 46 52   * 49 AS col0 FR
28f90 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
28fa0 32 33 30 32 0d 0a 2d 34 38 35 30 0d 0a 2d 34 38  2302..-4850..-48
28fb0 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  9....onlyif mysq
28fc0 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
28fd0 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
28fe0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
28ff0 6c 61 62 65 6c 2d 38 38 32 0d 0a 53 45 4c 45 43  label-882..SELEC
29000 54 20 41 4c 4c 20 2d 20 43 41 53 54 28 20 2b 20  T ALL - CAST( + 
29010 2d 20 37 34 20 41 53 20 53 49 47 4e 45 44 20 29  - 74 AS SIGNED )
29020 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
29030 0d 0a 37 34 0d 0a 37 34 0d 0a 37 34 0d 0a 0d 0a  ..74..74..74....
29040 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
29050 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
29060 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
29070 61 62 65 6c 2d 38 38 32 0d 0a 53 45 4c 45 43 54  abel-882..SELECT
29080 20 41 4c 4c 20 2d 20 43 41 53 54 20 28 20 2b 20   ALL - CAST ( + 
29090 2d 20 37 34 20 41 53 20 49 4e 54 45 47 45 52 20  - 74 AS INTEGER 
290a0 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  ) FROM tab1..---
290b0 2d 0d 0a 37 34 0d 0a 37 34 0d 0a 37 34 0d 0a 0d  -..74..74..74...
290c0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
290d0 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
290e0 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
290f0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
29100 6c 2d 38 38 33 0d 0a 53 45 4c 45 43 54 20 41 4c  l-883..SELECT AL
29110 4c 20 2b 20 63 6f 6c 30 20 44 49 56 20 2d 20 32  L + col0 DIV - 2
29120 38 20 2d 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f  8 - - col2 AS co
29130 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l0 FROM tab2..--
29140 2d 2d 0d 0a 32 32 0d 0a 33 38 0d 0a 35 36 0d 0a  --..22..38..56..
29150 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
29160 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
29170 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
29180 20 6c 61 62 65 6c 2d 38 38 33 0d 0a 53 45 4c 45   label-883..SELE
29190 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 2f 20  CT ALL + col0 / 
291a0 2d 20 32 38 20 2d 20 2d 20 63 6f 6c 32 20 41 53  - 28 - - col2 AS
291b0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
291c0 0a 2d 2d 2d 2d 0d 0a 32 32 0d 0a 33 38 0d 0a 35  .----..22..38..5
291d0 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  6....query III r
291e0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
291f0 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57  LL * FROM tab1 W
29200 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 32 20  HERE NOT + col2 
29210 3c 20 28 20 2b 20 32 30 20 29 0d 0a 2d 2d 2d 2d  < ( + 20 )..----
29220 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
29230 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31 62  ng to c6c0a4111b
29240 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65 34  36d04dbc811a11e4
29250 64 35 34 63 61 64 0d 0a 0d 0a 6f 6e 6c 79 69 66  d54cad....onlyif
29260 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
29270 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
29280 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
29290 65 6c 2d 38 38 35 0d 0a 53 45 4c 45 43 54 20 41  el-885..SELECT A
292a0 4c 4c 20 32 35 20 2d 20 2b 20 2b 20 43 4f 55 4e  LL 25 - + + COUN
292b0 54 28 20 2a 20 29 20 63 6f 6c 32 20 46 52 4f 4d  T( * ) col2 FROM
292c0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 32 0d   tab1..----..22.
292d0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
292e0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
292f0 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
29300 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
29310 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
29320 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
29330 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
29340 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
29350 2d 38 38 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -885..SELECT ALL
29360 20 32 35 20 2d 20 2b 20 2b 20 43 4f 55 4e 54 20   25 - + + COUNT 
29370 28 20 2a 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20  ( * ) col2 FROM 
29380 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 32 0d 0a  tab1..----..22..
29390 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
293a0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
293b0 35 38 20 2b 20 63 6f 6c 32 20 2a 20 63 6f 6c 31  58 + col2 * col1
293c0 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
293d0 20 4e 4f 54 20 2b 20 36 38 20 2b 20 34 34 20 49   NOT + 68 + 44 I
293e0 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 35  S NULL..----..15
293f0 32 0d 0a 33 37 34 39 0d 0a 34 31 0d 0a 0d 0a 6f  2..3749..41....o
29400 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
29410 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
29420 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
29430 74 20 6c 61 62 65 6c 2d 38 38 37 0d 0a 53 45 4c  t label-887..SEL
29440 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  ECT + COUNT( * )
29450 20 2b 20 2b 20 35 34 20 63 6f 6c 31 20 46 52 4f   + + 54 col1 FRO
29460 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 37  M tab1..----..57
29470 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
29480 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
29490 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
294a0 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
294b0 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
294c0 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
294d0 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
294e0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
294f0 6c 2d 38 38 37 0d 0a 53 45 4c 45 43 54 20 2b 20  l-887..SELECT + 
29500 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2b 20  COUNT ( * ) + + 
29510 35 34 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  54 col1 FROM tab
29520 31 0d 0a 2d 2d 2d 2d 0d 0a 35 37 0d 0a 0d 0a 71  1..----..57....q
29530 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
29540 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
29550 63 6f 6c 30 20 2d 20 2d 20 2b 20 63 6f 6c 31 20  col0 - - + col1 
29560 2a 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  * col2 FROM tab0
29570 0d 0a 2d 2d 2d 2d 0d 0a 31 39 36 0d 0a 32 39 37  ..----..196..297
29580 0d 0a 33 38 32 32 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..3822....onlyif
29590 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
295a0 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
295b0 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
295c0 73 6f 72 74 20 6c 61 62 65 6c 2d 38 38 39 0d 0a  sort label-889..
295d0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
295e0 2b 20 63 6f 6c 32 20 2b 20 2b 20 33 20 2a 20 2b  + col2 + + 3 * +
295f0 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
29600 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62  IGNED ) FROM tab
29610 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  1..----..NULL...
29620 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
29630 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
29640 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
29650 6c 61 62 65 6c 2d 38 38 39 0d 0a 53 45 4c 45 43  label-889..SELEC
29660 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  T DISTINCT + col
29670 32 20 2b 20 2b 20 33 20 2a 20 2b 20 43 41 53 54  2 + + 3 * + CAST
29680 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
29690 45 52 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a  ER ) FROM tab1..
296a0 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  ----..NULL....qu
296b0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
296c0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 39  ELECT DISTINCT 9
296d0 34 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  4 FROM tab1 AS c
296e0 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55  or0 WHERE NOT NU
296f0 4c 4c 20 4e 4f 54 20 49 4e 20 28 20 2b 20 63 6f  LL NOT IN ( + co
29700 6c 31 20 2f 20 2d 20 28 20 2d 20 38 36 20 29 20  l1 / - ( - 86 ) 
29710 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  )..----....onlyi
29720 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
29730 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
29740 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
29750 62 65 6c 2d 38 39 31 0d 0a 53 45 4c 45 43 54 20  bel-891..SELECT 
29760 2b 20 36 34 20 2a 20 2d 20 2b 20 53 55 4d 28 20  + 64 * - + SUM( 
29770 44 49 53 54 49 4e 43 54 20 39 39 20 29 20 41 53  DISTINCT 99 ) AS
29780 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
29790 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 33 33  cor0..----..-633
297a0 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  6....skipif mysq
297b0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
297c0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
297d0 6f 72 74 20 6c 61 62 65 6c 2d 38 39 31 0d 0a 53  ort label-891..S
297e0 45 4c 45 43 54 20 2b 20 36 34 20 2a 20 2d 20 2b  ELECT + 64 * - +
297f0 20 53 55 4d 20 28 20 44 49 53 54 49 4e 43 54 20   SUM ( DISTINCT 
29800 39 39 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  99 ) AS col0 FRO
29810 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab2 cor0..---
29820 2d 0d 0a 2d 36 33 33 36 0d 0a 0d 0a 71 75 65 72  -..-6336....quer
29830 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
29840 45 43 54 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 2b  ECT + + col1 * +
29850 20 34 34 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   44 AS col2 FROM
29860 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
29870 2d 2d 2d 0d 0a 33 35 36 34 0d 0a 34 34 0d 0a 39  ---..3564..44..9
29880 32 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  24....onlyif mys
29890 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
298a0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
298b0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
298c0 39 33 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 28  93..SELECT - - (
298d0 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20   - - COUNT( * ) 
298e0 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
298f0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
29900 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..3....skipif m
29910 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
29920 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
29930 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 39 33  owsort label-893
29940 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 28 20 2d  ..SELECT - - ( -
29950 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29   - COUNT ( * ) )
29960 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
29970 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
29980 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ..3....query III
29990 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
299a0 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32   ALL * FROM tab2
299b0 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 39 36 20   WHERE NOT + 96 
299c0 2b 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c  + + col1 * - col
299d0 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  0 IS NOT NULL..-
299e0 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  ---....skipif po
299f0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
29a00 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
29a10 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
29a20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
29a30 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
29a40 0a 53 45 4c 45 43 54 20 41 4c 4c 20 39 35 20 2b  .SELECT ALL 95 +
29a50 20 63 6f 6c 31 20 63 6f 6c 31 20 46 52 4f 4d 20   col1 col1 FROM 
29a60 74 61 62 30 20 57 48 45 52 45 20 2d 20 33 38 20  tab0 WHERE - 38 
29a70 49 4e 20 28 20 63 6f 6c 30 20 2a 20 34 20 29 0d  IN ( col0 * 4 ).
29a80 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
29a90 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
29aa0 54 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32  T - col0 AS col2
29ab0 2c 20 63 6f 6c 32 20 2a 20 2b 20 2d 20 38 32 20  , col2 * + - 82 
29ac0 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a  FROM tab0 cor0..
29ad0 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 2d 33 38 35 34  ----..-15..-3854
29ae0 0d 0a 2d 38 37 0d 0a 2d 38 32 30 0d 0a 2d 39 37  ..-87..-820..-97
29af0 0d 0a 2d 38 31 31 38 0d 0a 0d 0a 71 75 65 72 79  ..-8118....query
29b00 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
29b10 45 43 54 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f  ECT + col1 AS co
29b20 6c 32 2c 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 2b  l2, + col0 * + +
29b30 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
29b40 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
29b50 34 0d 0a 32 36 30 31 0d 0a 34 37 0d 0a 38 32 38  4..2601..47..828
29b60 31 0d 0a 35 0d 0a 37 32 32 35 0d 0a 0d 0a 71 75  1..5..7225....qu
29b70 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
29b80 53 45 4c 45 43 54 20 37 39 20 41 53 20 63 6f 6c  SELECT 79 AS col
29b90 32 2c 20 39 39 20 46 52 4f 4d 20 74 61 62 32 20  2, 99 FROM tab2 
29ba0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37  AS cor0..----..7
29bb0 39 0d 0a 39 39 0d 0a 37 39 0d 0a 39 39 0d 0a 37  9..99..79..99..7
29bc0 39 0d 0a 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49  9..99....query I
29bd0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
29be0 54 20 41 4c 4c 20 63 6f 6c 30 20 41 53 20 63 6f  T ALL col0 AS co
29bf0 6c 30 2c 20 2b 20 34 37 20 41 53 20 63 6f 6c 32  l0, + 47 AS col2
29c00 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
29c10 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 34 37  r0..----..46..47
29c20 0d 0a 36 34 0d 0a 34 37 0d 0a 37 35 0d 0a 34 37  ..64..47..75..47
29c30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
29c40 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
29c50 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
29c60 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 30 30  owsort label-900
29c70 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
29c80 54 20 2b 20 2b 20 4d 41 58 28 20 2b 20 37 38 20  T + + MAX( + 78 
29c90 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
29ca0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
29cb0 2d 0d 0a 37 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..78....skipif 
29cc0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
29cd0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
29ce0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 30  rowsort label-90
29cf0 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  0..SELECT DISTIN
29d00 43 54 20 2b 20 2b 20 4d 41 58 20 28 20 2b 20 37  CT + + MAX ( + 7
29d10 38 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  8 ) AS col0 FROM
29d20 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
29d30 2d 2d 2d 0d 0a 37 38 0d 0a 0d 0a 71 75 65 72 79  ---..78....query
29d40 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
29d50 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20  CT DISTINCT + - 
29d60 31 35 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  15 AS col1 FROM 
29d70 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
29d80 2d 2d 0d 0a 2d 31 35 0d 0a 0d 0a 71 75 65 72 79  --..-15....query
29d90 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
29da0 43 54 20 2d 20 28 20 2d 20 2d 20 63 6f 6c 32 20  CT - ( - - col2 
29db0 29 20 2a 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f  ) * + col0 AS co
29dc0 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l0 FROM tab2 AS 
29dd0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 35  cor0..----..-105
29de0 38 0d 0a 2d 32 35 36 30 0d 0a 2d 34 33 35 30 0d  8..-2560..-4350.
29df0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
29e00 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20  rt..SELECT col1 
29e10 2a 20 2d 20 2b 20 36 33 20 2a 20 2d 20 63 6f 6c  * - + 63 * - col
29e20 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  1 AS col1 FROM t
29e30 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
29e40 2d 0d 0a 31 36 33 38 36 33 0d 0a 32 38 32 38 30  -..163863..28280
29e50 37 0d 0a 33 37 33 35 32 37 0d 0a 0d 0a 71 75 65  7..373527....que
29e60 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
29e70 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
29e80 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
29e90 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20 2a 20  HERE NOT col0 * 
29ea0 2b 20 2b 20 63 6f 6c 32 20 3c 3d 20 37 30 0d 0a  + + col2 <= 70..
29eb0 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
29ec0 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38  ashing to 75c998
29ed0 61 61 35 33 61 63 38 33 32 31 38 63 62 66 32 66  aa53ac83218cbf2f
29ee0 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 71 75  eb962d0a49....qu
29ef0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
29f00 45 4c 45 43 54 20 41 4c 4c 20 2d 20 28 20 28 20  ELECT ALL - ( ( 
29f10 31 32 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31  12 ) ) FROM tab1
29f20 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 0d 0a 2d 31 32  ..----..-12..-12
29f30 0d 0a 2d 31 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-12....onlyif 
29f40 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
29f50 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73  tax: aggregate s
29f60 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
29f70 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
29f80 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 30 36 0d  wsort label-906.
29f90 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a  .SELECT COUNT( *
29fa0 20 29 20 2a 20 38 20 2b 20 33 34 20 2b 20 2b 20   ) * 8 + 34 + + 
29fb0 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
29fc0 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62 31  GNED ) FROM tab1
29fd0 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
29fe0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
29ff0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2a000 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2a010 61 62 65 6c 2d 39 30 36 0d 0a 53 45 4c 45 43 54  abel-906..SELECT
2a020 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 38   COUNT ( * ) * 8
2a030 20 2b 20 33 34 20 2b 20 2b 20 43 41 53 54 20 28   + 34 + + CAST (
2a040 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
2a050 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d   ) FROM tab1..--
2a060 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72  --..NULL....quer
2a070 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2a080 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 28  ECT DISTINCT - (
2a090 20 28 20 63 6f 6c 31 20 29 20 29 20 46 52 4f 4d   ( col1 ) ) FROM
2a0a0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d   tab0..----..-1.
2a0b0 0a 2d 32 31 0d 0a 2d 38 31 0d 0a 0d 0a 6f 6e 6c  .-21..-81....onl
2a0c0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
2a0d0 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
2a0e0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
2a0f0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 30  rowsort label-90
2a100 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  8..SELECT DISTIN
2a110 43 54 20 2b 20 43 41 53 54 28 20 2b 20 32 20 41  CT + CAST( + 2 A
2a120 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20  S SIGNED ) FROM 
2a130 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 0d 0a 0d  tab2..----..2...
2a140 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2a150 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2a160 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2a170 6c 61 62 65 6c 2d 39 30 38 0d 0a 53 45 4c 45 43  label-908..SELEC
2a180 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 41 53  T DISTINCT + CAS
2a190 54 20 28 20 2b 20 32 20 41 53 20 49 4e 54 45 47  T ( + 2 AS INTEG
2a1a0 45 52 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a  ER ) FROM tab2..
2a1b0 2d 2d 2d 2d 0d 0a 32 0d 0a 0d 0a 71 75 65 72 79  ----..2....query
2a1c0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2a1d0 43 54 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74  CT - col2 FROM t
2a1e0 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  ab1 WHERE NOT + 
2a1f0 2d 20 63 6f 6c 31 20 3d 20 2d 20 2b 20 37 30 0d  - col1 = - + 70.
2a200 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a 2d 36 38 0d  .----..-59..-68.
2a210 0a 2d 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-96....onlyif m
2a220 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
2a230 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
2a240 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d   DECIMAL type: .
2a250 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
2a260 72 74 20 6c 61 62 65 6c 2d 39 31 30 0d 0a 53 45  rt label-910..SE
2a270 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  LECT * FROM tab1
2a280 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 43 41 53   WHERE NOT - CAS
2a290 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d  T( NULL AS DECIM
2a2a0 41 4c 20 29 20 2d 20 2b 20 63 6f 6c 32 20 2b 20  AL ) - + col2 + 
2a2b0 63 6f 6c 31 20 2a 20 2d 20 43 41 53 54 28 20 4e  col1 * - CAST( N
2a2c0 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
2a2d0 42 45 54 57 45 45 4e 20 28 20 63 6f 6c 31 20 2b  BETWEEN ( col1 +
2a2e0 20 32 37 20 29 20 41 4e 44 20 2b 20 38 37 20 2b   27 ) AND + 87 +
2a2f0 20 2b 20 32 34 20 2a 20 39 20 41 4e 44 20 4e 4f   + 24 * 9 AND NO
2a300 54 20 28 20 2b 20 33 20 29 20 49 53 20 4e 4f 54  T ( + 3 ) IS NOT
2a310 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73   NULL..----....s
2a320 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2a330 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2a340 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
2a350 6c 61 62 65 6c 2d 39 31 30 0d 0a 53 45 4c 45 43  label-910..SELEC
2a360 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48  T * FROM tab1 WH
2a370 45 52 45 20 4e 4f 54 20 2d 20 43 41 53 54 20 28  ERE NOT - CAST (
2a380 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20   NULL AS REAL ) 
2a390 2d 20 2b 20 63 6f 6c 32 20 2b 20 63 6f 6c 31 20  - + col2 + col1 
2a3a0 2a 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  * - CAST ( NULL 
2a3b0 41 53 20 49 4e 54 45 47 45 52 20 29 20 42 45 54  AS INTEGER ) BET
2a3c0 57 45 45 4e 20 28 20 63 6f 6c 31 20 2b 20 32 37  WEEN ( col1 + 27
2a3d0 20 29 20 41 4e 44 20 2b 20 38 37 20 2b 20 2b 20   ) AND + 87 + + 
2a3e0 32 34 20 2a 20 39 20 41 4e 44 20 4e 4f 54 20 28  24 * 9 AND NOT (
2a3f0 20 2b 20 33 20 29 20 49 53 20 4e 4f 54 20 4e 55   + 3 ) IS NOT NU
2a400 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
2a410 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
2a420 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
2a430 6c 30 20 2a 20 2d 20 2d 20 63 6f 6c 30 2c 20 2b  l0 * - - col0, +
2a440 20 35 30 20 2a 20 63 6f 6c 32 20 41 53 20 63 6f   50 * col2 AS co
2a450 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
2a460 2d 2d 0d 0a 32 31 31 36 0d 0a 31 31 35 30 0d 0a  --..2116..1150..
2a470 34 30 39 36 0d 0a 32 30 30 30 0d 0a 35 36 32 35  4096..2000..5625
2a480 0d 0a 32 39 30 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..2900....onlyif
2a490 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
2a4a0 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20  ntax: aggregate 
2a4b0 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20  syntax: DECIMAL 
2a4c0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
2a4d0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 31  rowsort label-91
2a4e0 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  2..SELECT DISTIN
2a4f0 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20  CT COUNT( * ) * 
2a500 2b 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  + + CAST( NULL A
2a510 53 20 44 45 43 49 4d 41 4c 20 29 20 41 53 20 63  S DECIMAL ) AS c
2a520 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol2 FROM tab1..-
2a530 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ---..NULL....ski
2a540 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2a550 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2a560 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2a570 6c 2d 39 31 32 0d 0a 53 45 4c 45 43 54 20 44 49  l-912..SELECT DI
2a580 53 54 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 2a  STINCT COUNT ( *
2a590 20 29 20 2a 20 2b 20 2b 20 43 41 53 54 20 28 20   ) * + + CAST ( 
2a5a0 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 41  NULL AS REAL ) A
2a5b0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
2a5c0 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
2a5d0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
2a5e0 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
2a5f0 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
2a600 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2a610 2d 39 31 33 0d 0a 53 45 4c 45 43 54 20 2b 20 38  -913..SELECT + 8
2a620 34 20 44 49 56 20 2b 20 2b 20 63 6f 6c 31 20 41  4 DIV + + col1 A
2a630 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
2a640 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31 0d 0a 31 0d  ..----..1..1..1.
2a650 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2a660 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2a670 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2a680 74 20 6c 61 62 65 6c 2d 39 31 33 0d 0a 53 45 4c  t label-913..SEL
2a690 45 43 54 20 2b 20 38 34 20 2f 20 2b 20 2b 20 63  ECT + 84 / + + c
2a6a0 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol1 AS col0 FROM
2a6b0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a   tab2..----..1..
2a6c0 31 0d 0a 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49  1..1....query II
2a6d0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2a6e0 20 33 38 20 2a 20 2b 20 2d 20 63 6f 6c 30 2c 20   38 * + - col0, 
2a6f0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
2a700 2d 2d 2d 2d 0d 0a 2d 33 33 30 36 0d 0a 31 30 0d  ----..-3306..10.
2a710 0a 2d 33 36 38 36 0d 0a 39 39 0d 0a 2d 35 37 30  .-3686..99..-570
2a720 0d 0a 34 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..47....query I 
2a730 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2a740 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46  + col2 AS col2 F
2a750 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e  ROM tab1 WHERE N
2a760 4f 54 20 2b 20 63 6f 6c 32 20 2b 20 33 39 20 2a  OT + col2 + 39 *
2a770 20 63 6f 6c 31 20 4e 4f 54 20 49 4e 20 28 20 2d   col1 NOT IN ( -
2a780 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   col2 )..----...
2a790 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
2a7a0 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
2a7b0 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
2a7c0 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
2a7d0 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
2a7e0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2a7f0 54 20 41 4c 4c 20 2b 20 32 30 20 63 6f 6c 31 20  T ALL + 20 col1 
2a800 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
2a810 30 0d 0a 2d 2d 2d 2d 0d 0a 32 30 0d 0a 32 30 0d  0..----..20..20.
2a820 0a 32 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .20....onlyif my
2a830 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
2a840 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
2a850 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2a860 39 31 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  917..SELECT DIST
2a870 49 4e 43 54 20 4d 41 58 28 20 2d 20 36 34 20 29  INCT MAX( - 64 )
2a880 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
2a890 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 34 0d 0a 0d  r0..----..-64...
2a8a0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2a8b0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2a8c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2a8d0 6c 61 62 65 6c 2d 39 31 37 0d 0a 53 45 4c 45 43  label-917..SELEC
2a8e0 54 20 44 49 53 54 49 4e 43 54 20 4d 41 58 20 28  T DISTINCT MAX (
2a8f0 20 2d 20 36 34 20 29 20 46 52 4f 4d 20 74 61 62   - 64 ) FROM tab
2a900 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
2a910 0a 2d 36 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .-64....query II
2a920 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2a930 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
2a940 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
2a950 48 45 52 45 20 4e 55 4c 4c 20 49 4e 20 28 20 39  HERE NULL IN ( 9
2a960 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  1 )..----....onl
2a970 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
2a980 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
2a990 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2a9a0 6c 61 62 65 6c 2d 39 31 39 0d 0a 53 45 4c 45 43  label-919..SELEC
2a9b0 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 28 20 2d  T ALL - COUNT( -
2a9c0 20 2d 20 34 35 20 29 20 2d 20 2d 20 28 20 2b 20   - 45 ) - - ( + 
2a9d0 2b 20 34 32 20 29 20 41 53 20 63 6f 6c 30 20 46  + 42 ) AS col0 F
2a9e0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
2a9f0 33 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  39....skipif mys
2aa00 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2aa10 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2aa20 73 6f 72 74 20 6c 61 62 65 6c 2d 39 31 39 0d 0a  sort label-919..
2aa30 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55  SELECT ALL - COU
2aa40 4e 54 20 28 20 2d 20 2d 20 34 35 20 29 20 2d 20  NT ( - - 45 ) - 
2aa50 2d 20 28 20 2b 20 2b 20 34 32 20 29 20 41 53 20  - ( + + 42 ) AS 
2aa60 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
2aa70 2d 2d 2d 2d 0d 0a 33 39 0d 0a 0d 0a 6f 6e 6c 79  ----..39....only
2aa80 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
2aa90 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
2aaa0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
2aab0 6c 61 62 65 6c 2d 39 32 30 0d 0a 53 45 4c 45 43  label-920..SELEC
2aac0 54 20 41 4c 4c 20 2b 20 37 35 20 63 6f 6c 30 2c  T ALL + 75 col0,
2aad0 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20   COUNT( * ) * + 
2aae0 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20  COUNT( * ) FROM 
2aaf0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
2ab00 2d 2d 0d 0a 37 35 0d 0a 39 0d 0a 0d 0a 73 6b 69  --..75..9....ski
2ab10 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2ab20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70  compatible..skip
2ab30 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
2ab40 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
2ab50 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
2ab60 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
2ab70 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  mns..query II ro
2ab80 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 32 30 0d  wsort label-920.
2ab90 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 37 35  .SELECT ALL + 75
2aba0 20 63 6f 6c 30 2c 20 43 4f 55 4e 54 20 28 20 2a   col0, COUNT ( *
2abb0 20 29 20 2a 20 2b 20 43 4f 55 4e 54 20 28 20 2a   ) * + COUNT ( *
2abc0 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
2abd0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 35 0d 0a  cor0..----..75..
2abe0 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  9....onlyif mysq
2abf0 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
2ac00 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
2ac10 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2ac20 6c 61 62 65 6c 2d 39 32 31 0d 0a 53 45 4c 45 43  label-921..SELEC
2ac30 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 2b 20 43  T ALL - col2 + C
2ac40 41 53 54 28 20 2d 20 63 6f 6c 31 20 41 53 20 53  AST( - col1 AS S
2ac50 49 47 4e 45 44 20 29 20 2a 20 2d 20 35 39 20 2b  IGNED ) * - 59 +
2ac60 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   + col1 FROM tab
2ac70 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
2ac80 0a 32 34 31 0d 0a 32 37 35 32 0d 0a 37 34 34 0d  .241..2752..744.
2ac90 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2aca0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2acb0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2acc0 74 20 6c 61 62 65 6c 2d 39 32 31 0d 0a 53 45 4c  t label-921..SEL
2acd0 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 2b  ECT ALL - col2 +
2ace0 20 43 41 53 54 20 28 20 2d 20 63 6f 6c 31 20 41   CAST ( - col1 A
2acf0 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2d 20  S INTEGER ) * - 
2ad00 35 39 20 2b 20 2b 20 63 6f 6c 31 20 46 52 4f 4d  59 + + col1 FROM
2ad10 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
2ad20 2d 2d 2d 0d 0a 32 34 31 0d 0a 32 37 35 32 0d 0a  ---..241..2752..
2ad30 37 34 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  744....onlyif my
2ad40 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
2ad50 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
2ad60 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2ad70 74 20 6c 61 62 65 6c 2d 39 32 32 0d 0a 53 45 4c  t label-922..SEL
2ad80 45 43 54 20 63 6f 6c 30 20 2b 20 63 6f 6c 31 20  ECT col0 + col1 
2ad90 2d 20 2b 20 43 41 53 54 28 20 2d 20 63 6f 6c 31  - + CAST( - col1
2ada0 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2b   AS SIGNED ) + +
2adb0 20 2b 20 43 41 53 54 28 20 63 6f 6c 30 20 41 53   + CAST( col0 AS
2adc0 20 53 49 47 4e 45 44 20 29 20 2b 20 2b 20 63 6f   SIGNED ) + + co
2add0 6c 32 20 2a 20 2b 20 63 6f 6c 31 20 63 6f 6c 30  l2 * + col1 col0
2ade0 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d   FROM tab2 cor0.
2adf0 0a 2d 2d 2d 2d 0d 0a 31 33 36 37 0d 0a 33 33 36  .----..1367..336
2ae00 32 0d 0a 34 31 37 30 0d 0a 0d 0a 73 6b 69 70 69  2..4170....skipi
2ae10 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2ae20 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66  mpatible..skipif
2ae30 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
2ae40 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
2ae50 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
2ae60 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
2ae70 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
2ae80 72 74 20 6c 61 62 65 6c 2d 39 32 32 0d 0a 53 45  rt label-922..SE
2ae90 4c 45 43 54 20 63 6f 6c 30 20 2b 20 63 6f 6c 31  LECT col0 + col1
2aea0 20 2d 20 2b 20 43 41 53 54 20 28 20 2d 20 63 6f   - + CAST ( - co
2aeb0 6c 31 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  l1 AS INTEGER ) 
2aec0 2b 20 2b 20 2b 20 43 41 53 54 20 28 20 63 6f 6c  + + + CAST ( col
2aed0 30 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b  0 AS INTEGER ) +
2aee0 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 31   + col2 * + col1
2aef0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
2af00 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 36 37  cor0..----..1367
2af10 0d 0a 33 33 36 32 0d 0a 34 31 37 30 0d 0a 0d 0a  ..3362..4170....
2af20 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
2af30 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
2af40 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
2af50 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2af60 2d 39 32 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -923..SELECT ALL
2af70 20 2d 20 43 41 53 54 28 20 2d 20 2b 20 63 6f 6c   - CAST( - + col
2af80 30 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20  0 AS SIGNED ) + 
2af90 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
2afa0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30  S cor0..----..10
2afb0 34 0d 0a 31 33 33 0d 0a 36 39 0d 0a 0d 0a 73 6b  4..133..69....sk
2afc0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2afd0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2afe0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2aff0 65 6c 2d 39 32 33 0d 0a 53 45 4c 45 43 54 20 41  el-923..SELECT A
2b000 4c 4c 20 2d 20 43 41 53 54 20 28 20 2d 20 2b 20  LL - CAST ( - + 
2b010 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45 52 20  col0 AS INTEGER 
2b020 29 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  ) + col2 FROM ta
2b030 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
2b040 0d 0a 31 30 34 0d 0a 31 33 33 0d 0a 36 39 0d 0a  ..104..133..69..
2b050 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2b060 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
2b070 43 54 20 2b 20 28 20 2b 20 63 6f 6c 30 20 29 20  CT + ( + col0 ) 
2b080 2d 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32  - + col1 AS col2
2b090 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
2b0a0 0d 0a 2d 36 36 0d 0a 36 36 0d 0a 39 36 0d 0a 0d  ..-66..66..96...
2b0b0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2b0c0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2b0d0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2b0e0 6f 72 74 20 6c 61 62 65 6c 2d 39 32 35 0d 0a 53  ort label-925..S
2b0f0 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 41 4c 4c  ELECT COUNT( ALL
2b100 20 2d 20 38 39 20 29 20 41 53 20 63 6f 6c 31 20   - 89 ) AS col1 
2b110 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
2b120 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .3....skipif mys
2b130 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2b140 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2b150 73 6f 72 74 20 6c 61 62 65 6c 2d 39 32 35 0d 0a  sort label-925..
2b160 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 41  SELECT COUNT ( A
2b170 4c 4c 20 2d 20 38 39 20 29 20 41 53 20 63 6f 6c  LL - 89 ) AS col
2b180 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
2b190 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49  -..3....query II
2b1a0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2b1b0 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
2b1c0 30 20 57 48 45 52 45 20 2d 20 2d 20 63 6f 6c 31  0 WHERE - - col1
2b1d0 20 3c 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   <= NULL..----..
2b1e0 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
2b1f0 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
2b200 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
2b210 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
2b220 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
2b230 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2b240 43 54 20 44 49 53 54 49 4e 43 54 20 28 20 2b 20  CT DISTINCT ( + 
2b250 2b 20 63 6f 6c 30 20 29 20 2b 20 63 6f 6c 30 20  + col0 ) + col0 
2b260 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
2b270 2d 2d 2d 2d 0d 0a 31 37 34 0d 0a 31 39 34 0d 0a  ----..174..194..
2b280 33 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  30....onlyif mys
2b290 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
2b2a0 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
2b2b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2b2c0 20 6c 61 62 65 6c 2d 39 32 38 0d 0a 53 45 4c 45   label-928..SELE
2b2d0 43 54 20 43 41 53 54 28 20 2d 20 63 6f 6c 32 20  CT CAST( - col2 
2b2e0 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2b 20  AS SIGNED ) + + 
2b2f0 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 32 20 41 53  col1 + - col2 AS
2b300 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
2b310 57 48 45 52 45 20 4e 55 4c 4c 20 3c 3d 20 28 20  WHERE NULL <= ( 
2b320 2b 20 2b 20 32 37 20 29 0d 0a 2d 2d 2d 2d 0d 0a  + + 27 )..----..
2b330 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2b340 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2b350 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2b360 20 6c 61 62 65 6c 2d 39 32 38 0d 0a 53 45 4c 45   label-928..SELE
2b370 43 54 20 43 41 53 54 20 28 20 2d 20 63 6f 6c 32  CT CAST ( - col2
2b380 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20   AS INTEGER ) + 
2b390 2b 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 32 20  + col1 + - col2 
2b3a0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2b3b0 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c 3d 20  1 WHERE NULL <= 
2b3c0 28 20 2b 20 2b 20 32 37 20 29 0d 0a 2d 2d 2d 2d  ( + + 27 )..----
2b3d0 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
2b3e0 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
2b3f0 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
2b400 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
2b410 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
2b420 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2b430 4c 45 43 54 20 41 4c 4c 20 2b 20 36 32 20 2a 20  LECT ALL + 62 * 
2b440 2b 20 35 35 20 63 6f 6c 31 20 46 52 4f 4d 20 74  + 55 col1 FROM t
2b450 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 34 31 30 0d  ab1..----..3410.
2b460 0a 33 34 31 30 0d 0a 33 34 31 30 0d 0a 0d 0a 71  .3410..3410....q
2b470 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2b480 53 45 4c 45 43 54 20 63 6f 6c 31 20 2a 20 2b 20  SELECT col1 * + 
2b490 63 6f 6c 32 20 2a 20 63 6f 6c 32 20 41 53 20 63  col2 * col2 AS c
2b4a0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
2b4b0 2d 2d 2d 0d 0a 31 37 38 39 32 39 0d 0a 32 31 30  ---..178929..210
2b4c0 30 0d 0a 39 38 30 31 0d 0a 0d 0a 71 75 65 72 79  0..9801....query
2b4d0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2b4e0 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 28 20  CT DISTINCT - ( 
2b4f0 2b 20 63 6f 6c 30 20 29 20 2d 20 63 6f 6c 31 20  + col0 ) - col1 
2b500 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
2b510 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 31 0d 0a 2d  2..----..-141..-
2b520 31 34 32 0d 0a 2d 39 37 0d 0a 0d 0a 71 75 65 72  142..-97....quer
2b530 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2b540 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 33  ECT DISTINCT + 3
2b550 34 20 2a 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 63  4 * + col0 * - c
2b560 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
2b570 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 32   cor0..----..-32
2b580 39 38 0d 0a 2d 34 31 33 31 30 0d 0a 2d 36 32 31  98..-41310..-621
2b590 31 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  18....query II r
2b5a0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
2b5b0 4c 4c 20 63 6f 6c 30 2c 20 2d 20 63 6f 6c 30 20  LL col0, - col0 
2b5c0 2a 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  * + col0 FROM ta
2b5d0 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35  b1 cor0..----..5
2b5e0 31 0d 0a 2d 32 36 30 31 0d 0a 38 35 0d 0a 2d 37  1..-2601..85..-7
2b5f0 32 32 35 0d 0a 39 31 0d 0a 2d 38 32 38 31 0d 0a  225..91..-8281..
2b600 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2b610 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 32 37  t..SELECT ALL 27
2b620 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
2b630 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
2b640 62 30 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d  b0 AS cor1..----
2b650 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
2b660 6e 67 20 74 6f 20 37 30 31 62 66 31 32 64 38 36  ng to 701bf12d86
2b670 33 39 32 63 62 31 35 38 35 64 39 65 34 66 33 63  392cb1585d9e4f3c
2b680 37 32 65 39 61 38 0d 0a 0d 0a 71 75 65 72 79 20  72e9a8....query 
2b690 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2b6a0 54 20 44 49 53 54 49 4e 43 54 20 2d 20 31 31 20  T DISTINCT - 11 
2b6b0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
2b6c0 30 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  0 AS cor0 CROSS 
2b6d0 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63 6f 72  JOIN tab0 AS cor
2b6e0 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 0d 0a 0d 0a  1..----..-11....
2b6f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2b700 0a 53 45 4c 45 43 54 20 2d 20 28 20 31 35 20 29  .SELECT - ( 15 )
2b710 20 2a 20 2b 20 2b 20 63 6f 6c 30 20 2a 20 63 6f   * + + col0 * co
2b720 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l0 AS col1 FROM 
2b730 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 31 37  tab2..----..-317
2b740 34 30 0d 0a 2d 36 31 34 34 30 0d 0a 2d 38 34 33  40..-61440..-843
2b750 37 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  75....query I ro
2b760 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
2b770 33 34 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  34 AS col1 FROM 
2b780 74 61 62 32 20 63 6f 72 30 20 57 48 45 52 45 20  tab2 cor0 WHERE 
2b790 4e 4f 54 20 28 20 2d 20 39 32 20 29 20 49 53 20  NOT ( - 92 ) IS 
2b7a0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 34 0d  NULL..----..-34.
2b7b0 0a 2d 33 34 0d 0a 2d 33 34 0d 0a 0d 0a 6f 6e 6c  .-34..-34....onl
2b7c0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
2b7d0 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
2b7e0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
2b7f0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33  rowsort label-93
2b800 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  8..SELECT DISTIN
2b810 43 54 20 63 6f 6c 31 20 2a 20 2d 20 28 20 2d 20  CT col1 * - ( - 
2b820 43 41 53 54 28 20 2b 20 43 41 53 54 28 20 4e 55  CAST( + CAST( NU
2b830 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 41  LL AS SIGNED ) A
2b840 53 20 53 49 47 4e 45 44 20 29 20 29 20 2b 20 2d  S SIGNED ) ) + -
2b850 20 33 36 20 46 52 4f 4d 20 74 61 62 30 20 63 6f   36 FROM tab0 co
2b860 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
2b870 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2b880 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2b890 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2b8a0 20 6c 61 62 65 6c 2d 39 33 38 0d 0a 53 45 4c 45   label-938..SELE
2b8b0 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31  CT DISTINCT col1
2b8c0 20 2a 20 2d 20 28 20 2d 20 43 41 53 54 20 28 20   * - ( - CAST ( 
2b8d0 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
2b8e0 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 49 4e   INTEGER ) AS IN
2b8f0 54 45 47 45 52 20 29 20 29 20 2b 20 2d 20 33 36  TEGER ) ) + - 36
2b900 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d   FROM tab0 cor0.
2b910 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  .----..NULL....q
2b920 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2b930 53 45 4c 45 43 54 20 2d 20 28 20 32 38 20 29 20  SELECT - ( 28 ) 
2b940 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
2b950 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  0 WHERE NOT NULL
2b960 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
2b970 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2b980 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
2b990 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
2b9a0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
2b9b0 62 65 6c 2d 39 34 30 0d 0a 53 45 4c 45 43 54 20  bel-940..SELECT 
2b9c0 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 33 20 2a  DISTINCT - - 3 *
2b9d0 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 2c 20 37   col0 AS col2, 7
2b9e0 38 20 44 49 56 20 2d 20 35 32 20 46 52 4f 4d 20  8 DIV - 52 FROM 
2b9f0 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
2ba00 0a 32 36 31 0d 0a 2d 31 0d 0a 32 39 31 0d 0a 2d  .261..-1..291..-
2ba10 31 0d 0a 34 35 0d 0a 2d 31 0d 0a 0d 0a 73 6b 69  1..45..-1....ski
2ba20 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2ba30 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2ba40 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
2ba50 65 6c 2d 39 34 30 0d 0a 53 45 4c 45 43 54 20 44  el-940..SELECT D
2ba60 49 53 54 49 4e 43 54 20 2d 20 2d 20 33 20 2a 20  ISTINCT - - 3 * 
2ba70 63 6f 6c 30 20 41 53 20 63 6f 6c 32 2c 20 37 38  col0 AS col2, 78
2ba80 20 2f 20 2d 20 35 32 20 46 52 4f 4d 20 74 61 62   / - 52 FROM tab
2ba90 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 36  0 cor0..----..26
2baa0 31 0d 0a 2d 31 0d 0a 32 39 31 0d 0a 2d 31 0d 0a  1..-1..291..-1..
2bab0 34 35 0d 0a 2d 31 0d 0a 0d 0a 71 75 65 72 79 20  45..-1....query 
2bac0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
2bad0 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
2bae0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
2baf0 54 20 35 35 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  T 55 IS NULL..--
2bb00 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
2bb10 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35  hing to c4b42765
2bb20 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35  dff94eaaa46040e5
2bb30 33 37 66 62 34 33 62 37 0d 0a 0d 0a 6f 6e 6c 79  37fb43b7....only
2bb40 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
2bb50 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56  gate syntax: DIV
2bb60 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
2bb70 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
2bb80 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2bb90 34 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  42..SELECT ALL +
2bba0 20 43 4f 55 4e 54 28 20 2a 20 29 20 44 49 56 20   COUNT( * ) DIV 
2bbb0 2d 20 28 20 2b 20 4d 49 4e 28 20 2d 20 63 6f 6c  - ( + MIN( - col
2bbc0 30 20 29 20 29 20 2b 20 33 31 20 41 53 20 63 6f  0 ) ) + 31 AS co
2bbd0 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l0 FROM tab2 AS 
2bbe0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 31 0d 0a  cor0..----..31..
2bbf0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2bc00 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2bc10 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2bc20 20 6c 61 62 65 6c 2d 39 34 32 0d 0a 53 45 4c 45   label-942..SELE
2bc30 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 20 28  CT ALL + COUNT (
2bc40 20 2a 20 29 20 2f 20 2d 20 28 20 2b 20 4d 49 4e   * ) / - ( + MIN
2bc50 20 28 20 2d 20 63 6f 6c 30 20 29 20 29 20 2b 20   ( - col0 ) ) + 
2bc60 33 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  31 AS col0 FROM 
2bc70 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
2bc80 2d 2d 0d 0a 33 31 0d 0a 0d 0a 6f 6e 6c 79 69 66  --..31....onlyif
2bc90 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
2bca0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
2bcb0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2bcc0 65 6c 2d 39 34 33 0d 0a 53 45 4c 45 43 54 20 2b  el-943..SELECT +
2bcd0 20 28 20 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20   ( - + COUNT( * 
2bce0 29 20 29 20 2a 20 32 30 20 41 53 20 63 6f 6c 31  ) ) * 20 AS col1
2bcf0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
2bd00 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 30 0d 0a 0d  r0..----..-60...
2bd10 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2bd20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2bd30 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2bd40 6c 61 62 65 6c 2d 39 34 33 0d 0a 53 45 4c 45 43  label-943..SELEC
2bd50 54 20 2b 20 28 20 2d 20 2b 20 43 4f 55 4e 54 20  T + ( - + COUNT 
2bd60 28 20 2a 20 29 20 29 20 2a 20 32 30 20 41 53 20  ( * ) ) * 20 AS 
2bd70 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
2bd80 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36  S cor0..----..-6
2bd90 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  0....query II ro
2bda0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
2bdb0 2d 20 63 6f 6c 31 20 2a 20 2b 20 33 36 20 41 53  - col1 * + 36 AS
2bdc0 20 63 6f 6c 32 2c 20 32 37 20 2b 20 2d 20 2b 20   col2, 27 + - + 
2bdd0 37 31 20 2a 20 2b 20 39 31 20 2a 20 2b 20 28 20  71 * + 91 * + ( 
2bde0 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 32  col1 ) FROM tab2
2bdf0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38   cor0..----..-18
2be00 33 36 0d 0a 2d 33 32 39 34 38 34 0d 0a 2d 32 34  36..-329484..-24
2be10 31 32 0d 0a 2d 34 33 32 38 36 30 0d 0a 2d 32 37  12..-432860..-27
2be20 37 32 0d 0a 2d 34 39 37 34 37 30 0d 0a 0d 0a 71  72..-497470....q
2be30 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
2be40 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
2be50 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
2be60 52 45 20 4e 4f 54 20 28 20 4e 4f 54 20 2d 20 37  RE NOT ( NOT - 7
2be70 38 20 3e 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d  8 > NULL )..----
2be80 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
2be90 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
2bea0 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
2beb0 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
2bec0 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
2bed0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
2bee0 45 4c 45 43 54 20 2d 20 2b 20 63 6f 6c 32 20 2a  ELECT - + col2 *
2bef0 20 63 6f 6c 31 20 63 6f 6c 32 2c 20 2d 20 63 6f   col1 col2, - co
2bf00 6c 31 20 2a 20 2d 20 63 6f 6c 32 20 2a 20 63 6f  l1 * - col2 * co
2bf10 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l0 AS col2 FROM 
2bf20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
2bf30 2d 2d 0d 0a 2d 32 31 30 0d 0a 31 38 32 37 30 0d  --..-210..18270.
2bf40 0a 2d 33 38 30 37 0d 0a 35 37 31 30 35 0d 0a 2d  .-3807..57105..-
2bf50 39 39 0d 0a 39 36 30 33 0d 0a 0d 0a 71 75 65 72  99..9603....quer
2bf60 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2bf70 45 43 54 20 41 4c 4c 20 2b 20 38 32 20 2b 20 28  ECT ALL + 82 + (
2bf80 20 2b 20 30 20 29 20 46 52 4f 4d 20 74 61 62 30   + 0 ) FROM tab0
2bf90 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
2bfa0 31 33 20 2f 20 2b 20 39 39 20 2a 20 2d 20 63 6f  13 / + 99 * - co
2bfb0 6c 32 20 4e 4f 54 20 49 4e 20 28 20 28 20 63 6f  l2 NOT IN ( ( co
2bfc0 6c 31 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  l1 ) )..----....
2bfd0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
2bfe0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2bff0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2c000 72 74 20 6c 61 62 65 6c 2d 39 34 38 0d 0a 53 45  rt label-948..SE
2c010 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
2c020 53 55 4d 28 20 2b 20 33 37 20 29 20 46 52 4f 4d  SUM( + 37 ) FROM
2c030 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 31 31   tab2..----..111
2c040 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2c050 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2c060 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
2c070 72 74 20 6c 61 62 65 6c 2d 39 34 38 0d 0a 53 45  rt label-948..SE
2c080 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
2c090 53 55 4d 20 28 20 2b 20 33 37 20 29 20 46 52 4f  SUM ( + 37 ) FRO
2c0a0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 31  M tab2..----..11
2c0b0 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  1....skipif post
2c0c0 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
2c0d0 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
2c0e0 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
2c0f0 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
2c100 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2c110 45 4c 45 43 54 20 41 4c 4c 20 2b 20 35 38 20 63  ELECT ALL + 58 c
2c120 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
2c130 2d 2d 2d 0d 0a 35 38 0d 0a 35 38 0d 0a 35 38 0d  ---..58..58..58.
2c140 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2c150 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c  rt..SELECT + col
2c160 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  2 FROM tab1 WHER
2c170 45 20 2d 20 2b 20 31 38 20 3c 20 2d 20 34 0d 0a  E - + 18 < - 4..
2c180 2d 2d 2d 2d 0d 0a 35 39 0d 0a 36 38 0d 0a 39 36  ----..59..68..96
2c190 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2c1a0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
2c1b0 32 34 20 2b 20 2b 20 2b 20 37 31 20 41 53 20 63  24 + + + 71 AS c
2c1c0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
2c1d0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 35 0d   cor0..----..95.
2c1e0 0a 39 35 0d 0a 39 35 0d 0a 0d 0a 71 75 65 72 79  .95..95....query
2c1f0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2c200 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20  CT DISTINCT + - 
2c210 37 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  7 + col1 FROM ta
2c220 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
2c230 0d 0a 2d 36 0d 0a 31 34 0d 0a 37 34 0d 0a 0d 0a  ..-6..14..74....
2c240 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2c250 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 33 31  .SELECT ALL - 31
2c260 20 2b 20 2d 20 2b 20 63 6f 6c 31 20 41 53 20 63   + - + col1 AS c
2c270 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
2c280 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31   cor0..----..-11
2c290 32 0d 0a 2d 33 32 0d 0a 2d 35 32 0d 0a 0d 0a 71  2..-32..-52....q
2c2a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2c2b0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2c2c0 2b 20 28 20 2d 20 2d 20 63 6f 6c 30 20 29 20 2b  + ( - - col0 ) +
2c2d0 20 2b 20 2b 20 39 30 20 2a 20 2b 20 39 33 20 2b   + + 90 * + 93 +
2c2e0 20 2b 20 2d 20 36 31 20 2b 20 2d 20 2d 20 63 6f   + - 61 + - - co
2c2f0 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
2c300 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 33 37 31  cor0..----..8371
2c310 0d 0a 38 34 30 36 0d 0a 38 35 30 35 0d 0a 0d 0a  ..8406..8505....
2c320 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2c330 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2c340 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 28 20 2d 20   + col2 + - ( - 
2c350 63 6f 6c 31 20 29 20 2a 20 2d 20 2b 20 63 6f 6c  col1 ) * - + col
2c360 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  0 AS col0 FROM t
2c370 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
2c380 2d 0d 0a 2d 32 33 32 33 0d 0a 2d 34 38 38 38 0d  -..-2323..-4888.
2c390 0a 2d 34 39 36 37 0d 0a 0d 0a 71 75 65 72 79 20  .-4967....query 
2c3a0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2c3b0 54 20 2d 20 2d 20 63 6f 6c 31 20 2b 20 63 6f 6c  T - - col1 + col
2c3c0 31 20 2a 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f  1 * - col0 AS co
2c3d0 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
2c3e0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 32 30  cor0..----..-420
2c3f0 0d 0a 2d 34 32 33 30 0d 0a 2d 37 30 30 0d 0a 0d  ..-4230..-700...
2c400 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
2c410 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
2c420 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  NCT * FROM tab0 
2c430 57 48 45 52 45 20 2b 20 63 6f 6c 32 20 3c 3e 20  WHERE + col2 <> 
2c440 35 33 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  53..----..9 valu
2c450 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34  es hashing to c4
2c460 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34  b42765dff94eaaa4
2c470 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a  6040e537fb43b7..
2c480 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2c490 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 37 39  t..SELECT ALL 79
2c4a0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
2c4b0 62 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53  b2 AS cor0 CROSS
2c4c0 20 4a 4f 49 4e 20 74 61 62 32 20 41 53 20 63 6f   JOIN tab2 AS co
2c4d0 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  r1..----..9 valu
2c4e0 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 34 30  es hashing to 40
2c4f0 61 32 32 36 31 63 61 61 32 63 35 63 64 62 66 64  a2261caa2c5cdbfd
2c500 38 30 39 36 35 64 37 64 66 31 32 33 31 66 0d 0a  80965d7df1231f..
2c510 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2c520 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2c530 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
2c540 73 6f 72 74 20 6c 61 62 65 6c 2d 39 35 39 0d 0a  sort label-959..
2c550 53 45 4c 45 43 54 20 2b 20 2d 20 28 20 2b 20 34  SELECT + - ( + 4
2c560 33 20 29 20 2a 20 2b 20 43 4f 55 4e 54 28 20 2a  3 ) * + COUNT( *
2c570 20 29 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72   ) FROM tab2 cor
2c580 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 39 0d 0a 0d  0..----..-129...
2c590 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2c5a0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2c5b0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2c5c0 6c 61 62 65 6c 2d 39 35 39 0d 0a 53 45 4c 45 43  label-959..SELEC
2c5d0 54 20 2b 20 2d 20 28 20 2b 20 34 33 20 29 20 2a  T + - ( + 43 ) *
2c5e0 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46   + COUNT ( * ) F
2c5f0 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d  ROM tab2 cor0..-
2c600 2d 2d 2d 0d 0a 2d 31 32 39 0d 0a 0d 0a 73 6b 69  ---..-129....ski
2c610 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
2c620 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
2c630 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
2c640 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
2c650 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
2c660 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
2c670 53 54 49 4e 43 54 20 63 6f 6c 30 20 2b 20 2d 20  STINCT col0 + - 
2c680 2d 20 63 6f 6c 30 20 63 6f 6c 30 20 46 52 4f 4d  - col0 col0 FROM
2c690 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
2c6a0 2d 2d 2d 0d 0a 31 30 32 0d 0a 31 37 30 0d 0a 31  ---..102..170..1
2c6b0 38 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  82....onlyif mys
2c6c0 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
2c6d0 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
2c6e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2c6f0 20 6c 61 62 65 6c 2d 39 36 31 0d 0a 53 45 4c 45   label-961..SELE
2c700 43 54 20 2b 20 2b 20 33 20 44 49 56 20 2b 20 2b  CT + + 3 DIV + +
2c710 20 63 6f 6c 31 20 2d 20 33 31 20 41 53 20 63 6f   col1 - 31 AS co
2c720 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l0 FROM tab2 AS 
2c730 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 31 0d  cor0..----..-31.
2c740 0a 2d 33 31 0d 0a 2d 33 31 0d 0a 0d 0a 73 6b 69  .-31..-31....ski
2c750 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2c760 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2c770 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2c780 6c 2d 39 36 31 0d 0a 53 45 4c 45 43 54 20 2b 20  l-961..SELECT + 
2c790 2b 20 33 20 2f 20 2b 20 2b 20 63 6f 6c 31 20 2d  + 3 / + + col1 -
2c7a0 20 33 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   31 AS col0 FROM
2c7b0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
2c7c0 2d 2d 2d 0d 0a 2d 33 31 0d 0a 2d 33 31 0d 0a 2d  ---..-31..-31..-
2c7d0 33 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  31....onlyif mys
2c7e0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
2c7f0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
2c800 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2c810 36 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  62..SELECT DISTI
2c820 4e 43 54 20 2b 20 2d 20 4d 49 4e 28 20 41 4c 4c  NCT + - MIN( ALL
2c830 20 63 6f 6c 30 20 29 20 2b 20 38 33 20 46 52 4f   col0 ) + 83 FRO
2c840 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
2c850 2d 2d 2d 2d 0d 0a 33 32 0d 0a 0d 0a 73 6b 69 70  ----..32....skip
2c860 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2c870 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2c880 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2c890 2d 39 36 32 0d 0a 53 45 4c 45 43 54 20 44 49 53  -962..SELECT DIS
2c8a0 54 49 4e 43 54 20 2b 20 2d 20 4d 49 4e 20 28 20  TINCT + - MIN ( 
2c8b0 41 4c 4c 20 63 6f 6c 30 20 29 20 2b 20 38 33 20  ALL col0 ) + 83 
2c8c0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
2c8d0 30 0d 0a 2d 2d 2d 2d 0d 0a 33 32 0d 0a 0d 0a 71  0..----..32....q
2c8e0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2c8f0 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 2d 20  SELECT + col0 - 
2c900 63 6f 6c 31 20 2a 20 39 37 20 41 53 20 63 6f 6c  col1 * 97 AS col
2c910 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
2c920 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 35 30  or0..----..-1950
2c930 0d 0a 2d 37 38 34 32 0d 0a 30 0d 0a 0d 0a 73 6b  ..-7842..0....sk
2c940 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
2c950 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
2c960 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
2c970 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
2c980 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
2c990 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
2c9a0 4c 4c 20 2b 20 31 33 20 2a 20 2b 20 38 31 20 2b  LL + 13 * + 81 +
2c9b0 20 2d 20 34 37 20 2b 20 36 32 20 2b 20 2b 20 63   - 47 + 62 + + c
2c9c0 6f 6c 30 20 2d 20 2b 20 63 6f 6c 31 20 63 6f 6c  ol0 - + col1 col
2c9d0 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
2c9e0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 30 32 0d  or0..----..1002.
2c9f0 0a 31 31 33 34 0d 0a 31 31 36 34 0d 0a 0d 0a 71  .1134..1164....q
2ca00 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
2ca10 0a 53 45 4c 45 43 54 20 2b 20 37 32 20 2a 20 2b  .SELECT + 72 * +
2ca20 20 28 20 2d 20 34 39 20 29 20 2d 20 63 6f 6c 32   ( - 49 ) - col2
2ca30 2c 20 34 39 20 41 53 20 63 6f 6c 30 20 46 52 4f  , 49 AS col0 FRO
2ca40 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
2ca50 2d 0d 0a 2d 33 35 33 38 0d 0a 34 39 0d 0a 2d 33  -..-3538..49..-3
2ca60 35 37 35 0d 0a 34 39 0d 0a 2d 33 36 32 37 0d 0a  575..49..-3627..
2ca70 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  49....onlyif mys
2ca80 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
2ca90 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
2caa0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
2cab0 74 20 6c 61 62 65 6c 2d 39 36 36 0d 0a 53 45 4c  t label-966..SEL
2cac0 45 43 54 20 2b 20 37 35 20 44 49 56 20 63 6f 6c  ECT + 75 DIV col
2cad0 31 20 2d 20 2b 20 2b 20 63 6f 6c 32 20 2b 20 2b  1 - + + col2 + +
2cae0 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 2c   - col1 AS col1,
2caf0 20 63 6f 6c 31 20 2a 20 2d 20 38 30 20 2a 20 2b   col1 * - 80 * +
2cb00 20 63 6f 6c 31 20 2d 20 2d 20 63 6f 6c 30 20 41   col1 - - col0 A
2cb10 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
2cb20 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31   cor0..----..-11
2cb30 37 0d 0a 2d 34 37 34 32 35 36 0d 0a 2d 31 32 34  7..-474256..-124
2cb40 0d 0a 2d 33 35 39 30 34 35 0d 0a 2d 37 33 0d 0a  ..-359045..-73..
2cb50 2d 32 30 38 30 33 34 0d 0a 0d 0a 73 6b 69 70 69  -208034....skipi
2cb60 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2cb70 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2cb80 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
2cb90 2d 39 36 36 0d 0a 53 45 4c 45 43 54 20 2b 20 37  -966..SELECT + 7
2cba0 35 20 2f 20 63 6f 6c 31 20 2d 20 2b 20 2b 20 63  5 / col1 - + + c
2cbb0 6f 6c 32 20 2b 20 2b 20 2d 20 63 6f 6c 31 20 41  ol2 + + - col1 A
2cbc0 53 20 63 6f 6c 31 2c 20 63 6f 6c 31 20 2a 20 2d  S col1, col1 * -
2cbd0 20 38 30 20 2a 20 2b 20 63 6f 6c 31 20 2d 20 2d   80 * + col1 - -
2cbe0 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52   col0 AS col2 FR
2cbf0 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d  OM tab2 cor0..--
2cc00 2d 2d 0d 0a 2d 31 31 37 0d 0a 2d 34 37 34 32 35  --..-117..-47425
2cc10 36 0d 0a 2d 31 32 34 0d 0a 2d 33 35 39 30 34 35  6..-124..-359045
2cc20 0d 0a 2d 37 33 0d 0a 2d 32 30 38 30 33 34 0d 0a  ..-73..-208034..
2cc30 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2cc40 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2cc50 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67  x: DIV for integ
2cc60 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
2cc70 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2cc80 61 62 65 6c 2d 39 36 37 0d 0a 53 45 4c 45 43 54  abel-967..SELECT
2cc90 20 41 4c 4c 20 2d 20 2d 20 28 20 2b 20 53 55 4d   ALL - - ( + SUM
2cca0 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20  ( DISTINCT col1 
2ccb0 29 20 29 20 2d 20 2d 20 2b 20 53 55 4d 28 20 63  ) ) - - + SUM( c
2ccc0 6f 6c 30 20 29 20 44 49 56 20 43 4f 55 4e 54 28  ol0 ) DIV COUNT(
2ccd0 20 2a 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74   * ) col2 FROM t
2cce0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
2ccf0 2d 0d 0a 32 35 36 0d 0a 0d 0a 73 6b 69 70 69 66  -..256....skipif
2cd00 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2cd10 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
2cd20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
2cd30 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
2cd40 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
2cd50 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
2cd60 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2cd70 74 20 6c 61 62 65 6c 2d 39 36 37 0d 0a 53 45 4c  t label-967..SEL
2cd80 45 43 54 20 41 4c 4c 20 2d 20 2d 20 28 20 2b 20  ECT ALL - - ( + 
2cd90 53 55 4d 20 28 20 44 49 53 54 49 4e 43 54 20 63  SUM ( DISTINCT c
2cda0 6f 6c 31 20 29 20 29 20 2d 20 2d 20 2b 20 53 55  ol1 ) ) - - + SU
2cdb0 4d 20 28 20 63 6f 6c 30 20 29 20 2f 20 43 4f 55  M ( col0 ) / COU
2cdc0 4e 54 20 28 20 2a 20 29 20 63 6f 6c 32 20 46 52  NT ( * ) col2 FR
2cdd0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
2cde0 0a 2d 2d 2d 2d 0d 0a 32 35 36 0d 0a 0d 0a 6f 6e  .----..256....on
2cdf0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
2ce00 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
2ce10 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2ce20 20 6c 61 62 65 6c 2d 39 36 38 0d 0a 53 45 4c 45   label-968..SELE
2ce30 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 28 20  CT ALL + COUNT( 
2ce40 2d 20 63 6f 6c 30 20 29 20 2d 20 2b 20 36 31 20  - col0 ) - + 61 
2ce50 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
2ce60 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
2ce70 0a 2d 35 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-58....skipif m
2ce80 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2ce90 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
2cea0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 36 38  owsort label-968
2ceb0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43  ..SELECT ALL + C
2cec0 4f 55 4e 54 20 28 20 2d 20 63 6f 6c 30 20 29 20  OUNT ( - col0 ) 
2ced0 2d 20 2b 20 36 31 20 41 53 20 63 6f 6c 30 20 46  - + 61 AS col0 F
2cee0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
2cef0 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 38 0d 0a 0d 0a 71  ..----..-58....q
2cf00 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2cf10 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2b 20  SELECT + col2 + 
2cf20 2d 20 33 34 20 2b 20 34 30 20 2d 20 63 6f 6c 31  - 34 + 40 - col1
2cf30 20 2a 20 2b 20 39 20 46 52 4f 4d 20 74 61 62 31   * + 9 FROM tab1
2cf40 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 34 0d 0a 2d 33 34  ..----..-24..-34
2cf50 39 0d 0a 32 30 0d 0a 0d 0a 71 75 65 72 79 20 49  9..20....query I
2cf60 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
2cf70 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
2cf80 62 32 20 57 48 45 52 45 20 2b 20 63 6f 6c 31 20  b2 WHERE + col1 
2cf90 4e 4f 54 20 49 4e 20 28 20 63 6f 6c 32 20 2b 20  NOT IN ( col2 + 
2cfa0 33 39 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  39 )..----..9 va
2cfb0 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
2cfc0 37 35 63 39 39 38 61 61 35 33 61 63 38 33 32 31  75c998aa53ac8321
2cfd0 38 63 62 66 32 66 65 62 39 36 32 64 30 61 34 39  8cbf2feb962d0a49
2cfe0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2cff0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20  ort..SELECT + - 
2d000 32 34 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45  24 FROM tab2 WHE
2d010 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20  RE NOT ( NULL ) 
2d020 4e 4f 54 20 42 45 54 57 45 45 4e 20 63 6f 6c 31  NOT BETWEEN col1
2d030 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   AND NULL..----.
2d040 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2d050 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
2d060 4e 43 54 20 63 6f 6c 30 20 2a 20 2b 20 2d 20 31  NCT col0 * + - 1
2d070 39 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  9 AS col0 FROM t
2d080 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 31 36  ab2..----..-1216
2d090 0d 0a 2d 31 34 32 35 0d 0a 2d 38 37 34 0d 0a 0d  ..-1425..-874...
2d0a0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2d0b0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2d0c0 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
2d0d0 73 6f 72 74 20 6c 61 62 65 6c 2d 39 37 33 0d 0a  sort label-973..
2d0e0 53 45 4c 45 43 54 20 35 35 2c 20 39 35 20 2a 20  SELECT 55, 95 * 
2d0f0 28 20 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  ( - + COUNT( * )
2d100 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
2d110 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
2d120 2d 2d 0d 0a 35 35 0d 0a 2d 32 38 35 0d 0a 0d 0a  --..55..-285....
2d130 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2d140 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2d150 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
2d160 6c 61 62 65 6c 2d 39 37 33 0d 0a 53 45 4c 45 43  label-973..SELEC
2d170 54 20 35 35 2c 20 39 35 20 2a 20 28 20 2d 20 2b  T 55, 95 * ( - +
2d180 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29 20 41   COUNT ( * ) ) A
2d190 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
2d1a0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2d1b0 35 35 0d 0a 2d 32 38 35 0d 0a 0d 0a 71 75 65 72  55..-285....quer
2d1c0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2d1d0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2d  ECT DISTINCT - -
2d1e0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
2d1f0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
2d200 54 20 2b 20 37 37 20 49 53 20 4e 55 4c 4c 0d 0a  T + 77 IS NULL..
2d210 2d 2d 2d 2d 0d 0a 32 33 0d 0a 34 30 0d 0a 35 38  ----..23..40..58
2d220 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2d230 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
2d240 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
2d250 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2d260 61 62 65 6c 2d 39 37 35 0d 0a 53 45 4c 45 43 54  abel-975..SELECT
2d270 20 41 4c 4c 20 2d 20 32 32 20 44 49 56 20 2b 20   ALL - 22 DIV + 
2d280 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col2 FROM tab1..
2d290 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d  ----..0..0..0...
2d2a0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2d2b0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2d2c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2d2d0 6c 61 62 65 6c 2d 39 37 35 0d 0a 53 45 4c 45 43  label-975..SELEC
2d2e0 54 20 41 4c 4c 20 2d 20 32 32 20 2f 20 2b 20 63  T ALL - 22 / + c
2d2f0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol2 FROM tab1..-
2d300 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a  ---..0..0..0....
2d310 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
2d320 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
2d330 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
2d340 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
2d350 6c 2d 39 37 36 0d 0a 53 45 4c 45 43 54 20 2b 20  l-976..SELECT + 
2d360 28 20 2b 20 63 6f 6c 31 20 29 20 41 53 20 63 6f  ( + col1 ) AS co
2d370 6c 32 2c 20 35 33 20 2a 20 2d 20 63 6f 6c 30 20  l2, 53 * - col0 
2d380 2a 20 2d 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c  * - - CAST( NULL
2d390 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f   AS SIGNED ) FRO
2d3a0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d  M tab0..----..1.
2d3b0 0a 4e 55 4c 4c 0d 0a 32 31 0d 0a 4e 55 4c 4c 0d  .NULL..21..NULL.
2d3c0 0a 38 31 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  .81..NULL....ski
2d3d0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2d3e0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2d3f0 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
2d400 65 6c 2d 39 37 36 0d 0a 53 45 4c 45 43 54 20 2b  el-976..SELECT +
2d410 20 28 20 2b 20 63 6f 6c 31 20 29 20 41 53 20 63   ( + col1 ) AS c
2d420 6f 6c 32 2c 20 35 33 20 2a 20 2d 20 63 6f 6c 30  ol2, 53 * - col0
2d430 20 2a 20 2d 20 2d 20 43 41 53 54 20 28 20 4e 55   * - - CAST ( NU
2d440 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
2d450 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
2d460 0a 31 0d 0a 4e 55 4c 4c 0d 0a 32 31 0d 0a 4e 55  .1..NULL..21..NU
2d470 4c 4c 0d 0a 38 31 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  LL..81..NULL....
2d480 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
2d490 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2d4a0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2d4b0 72 74 20 6c 61 62 65 6c 2d 39 37 37 0d 0a 53 45  rt label-977..SE
2d4c0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 28 20  LECT DISTINCT ( 
2d4d0 2b 20 43 4f 55 4e 54 28 20 41 4c 4c 20 2d 20 2d  + COUNT( ALL - -
2d4e0 20 63 6f 6c 30 20 29 20 29 20 46 52 4f 4d 20 74   col0 ) ) FROM t
2d4f0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
2d500 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..3....skipif m
2d510 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2d520 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
2d530 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 37 37  owsort label-977
2d540 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2d550 54 20 28 20 2b 20 43 4f 55 4e 54 20 28 20 41 4c  T ( + COUNT ( AL
2d560 4c 20 2d 20 2d 20 63 6f 6c 30 20 29 20 29 20 46  L - - col0 ) ) F
2d570 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
2d580 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c  ..----..3....onl
2d590 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
2d5a0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
2d5b0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2d5c0 6c 61 62 65 6c 2d 39 37 38 0d 0a 53 45 4c 45 43  label-978..SELEC
2d5d0 54 20 41 4c 4c 20 53 55 4d 28 20 34 31 20 29 20  T ALL SUM( 41 ) 
2d5e0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
2d5f0 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 33 0d 0a 0d 0a  0..----..123....
2d600 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2d610 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2d620 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2d630 61 62 65 6c 2d 39 37 38 0d 0a 53 45 4c 45 43 54  abel-978..SELECT
2d640 20 41 4c 4c 20 53 55 4d 20 28 20 34 31 20 29 20   ALL SUM ( 41 ) 
2d650 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
2d660 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 33 0d 0a 0d 0a  0..----..123....
2d670 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2d680 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20  .SELECT ALL - + 
2d690 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f  col1 AS col0 FRO
2d6a0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
2d6b0 48 45 52 45 20 2d 20 63 6f 6c 30 20 3d 20 2d 20  HERE - col0 = - 
2d6c0 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  col2..----....on
2d6d0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
2d6e0 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
2d6f0 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
2d700 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
2d710 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2d720 2d 39 38 30 0d 0a 53 45 4c 45 43 54 20 44 49 53  -980..SELECT DIS
2d730 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a  TINCT + COUNT( *
2d740 20 29 20 2b 20 2d 20 41 56 47 20 28 20 41 4c 4c   ) + - AVG ( ALL
2d750 20 2b 20 63 6f 6c 30 20 29 20 2b 20 2b 20 41 56   + col0 ) + + AV
2d760 47 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20 43  G ( DISTINCT + C
2d770 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
2d780 4e 45 44 20 29 20 29 20 46 52 4f 4d 20 74 61 62  NED ) ) FROM tab
2d790 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
2d7a0 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
2d7b0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2d7c0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2d7d0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 38  rowsort label-98
2d7e0 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  0..SELECT DISTIN
2d7f0 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29  CT + COUNT ( * )
2d800 20 2b 20 2d 20 41 56 47 20 28 20 41 4c 4c 20 2b   + - AVG ( ALL +
2d810 20 63 6f 6c 30 20 29 20 2b 20 2b 20 41 56 47 20   col0 ) + + AVG 
2d820 28 20 44 49 53 54 49 4e 43 54 20 2b 20 43 41 53  ( DISTINCT + CAS
2d830 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
2d840 47 45 52 20 29 20 29 20 46 52 4f 4d 20 74 61 62  GER ) ) FROM tab
2d850 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
2d860 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .NULL....onlyif 
2d870 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
2d880 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
2d890 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2d8a0 6f 72 74 20 6c 61 62 65 6c 2d 39 38 31 0d 0a 53  ort label-981..S
2d8b0 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 63 6f  ELECT ALL + + co
2d8c0 6c 31 20 2b 20 2d 20 32 31 20 2b 20 2d 20 43 41  l1 + - 21 + - CA
2d8d0 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
2d8e0 45 44 20 29 20 2a 20 2d 20 63 6f 6c 32 20 63 6f  ED ) * - col2 co
2d8f0 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
2d900 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
2d910 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
2d920 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2d930 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73  ot compatible..s
2d940 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
2d950 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
2d960 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
2d970 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
2d980 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
2d990 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 38  rowsort label-98
2d9a0 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  1..SELECT ALL + 
2d9b0 2b 20 63 6f 6c 31 20 2b 20 2d 20 32 31 20 2b 20  + col1 + - 21 + 
2d9c0 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
2d9d0 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2d 20 63   INTEGER ) * - c
2d9e0 6f 6c 32 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  ol2 col2 FROM ta
2d9f0 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
2da00 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
2da10 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  LL....query I ro
2da20 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
2da30 4c 20 28 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20  L ( col0 ) FROM 
2da40 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
2da50 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 32 20 49 53  RE NOT + col2 IS
2da60 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d   NULL..----..51.
2da70 0a 38 35 0d 0a 39 31 0d 0a 0d 0a 71 75 65 72 79  .85..91....query
2da80 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2da90 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32  CT DISTINCT col2
2daa0 20 2a 20 2d 20 2b 20 63 6f 6c 30 20 41 53 20 63   * - + col0 AS c
2dab0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  ol2 FROM tab1 co
2dac0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 38 39 36 0d  r0..----..-4896.
2dad0 0a 2d 35 30 31 35 0d 0a 2d 36 31 38 38 0d 0a 0d  .-5015..-6188...
2dae0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2daf0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2db00 54 20 36 38 20 46 52 4f 4d 20 74 61 62 30 20 57  T 68 FROM tab0 W
2db10 48 45 52 45 20 4e 4f 54 20 28 20 2d 20 63 6f 6c  HERE NOT ( - col
2db20 32 20 2a 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 2d  2 * + col0 + + -
2db30 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 30 20 29   col1 + + col0 )
2db40 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e   BETWEEN NULL AN
2db50 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  D NULL..----....
2db60 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2db70 0a 53 45 4c 45 43 54 20 41 4c 4c 20 39 31 20 2f  .SELECT ALL 91 /
2db80 20 28 20 2b 20 2d 20 36 30 20 29 20 2a 20 63 6f   ( + - 60 ) * co
2db90 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45  l1 FROM tab0 WHE
2dba0 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 49 53  RE NOT ( NULL IS
2dbb0 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   NULL )..----...
2dbc0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2dbd0 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 41 53  ..SELECT col1 AS
2dbe0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
2dbf0 57 48 45 52 45 20 4e 55 4c 4c 20 42 45 54 57 45  WHERE NULL BETWE
2dc00 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 33 39 0d 0a  EN NULL AND 39..
2dc10 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
2dc20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2dc30 41 4c 4c 20 39 31 20 2a 20 2b 20 63 6f 6c 31 20  ALL 91 * + col1 
2dc40 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
2dc50 0a 31 39 31 31 0d 0a 37 33 37 31 0d 0a 39 31 0d  .1911..7371..91.
2dc60 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2dc70 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
2dc80 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
2dc90 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 38 38 0d  wsort label-988.
2dca0 0a 53 45 4c 45 43 54 20 2b 20 4d 41 58 28 20 41  .SELECT + MAX( A
2dcb0 4c 4c 20 2b 20 63 6f 6c 31 20 29 20 41 53 20 63  LL + col1 ) AS c
2dcc0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol0 FROM tab2..-
2dcd0 2d 2d 2d 0d 0a 37 37 0d 0a 0d 0a 73 6b 69 70 69  ---..77....skipi
2dce0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2dcf0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2dd00 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2dd10 39 38 38 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 41  988..SELECT + MA
2dd20 58 20 28 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 29  X ( ALL + col1 )
2dd30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
2dd40 62 32 0d 0a 2d 2d 2d 2d 0d 0a 37 37 0d 0a 0d 0a  b2..----..77....
2dd50 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
2dd60 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2dd70 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
2dd80 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
2dd90 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2dda0 65 6c 2d 39 38 39 0d 0a 53 45 4c 45 43 54 20 44  el-989..SELECT D
2ddb0 49 53 54 49 4e 43 54 20 2d 20 4d 49 4e 28 20 63  ISTINCT - MIN( c
2ddc0 6f 6c 31 20 29 20 44 49 56 20 2d 20 2d 20 34 32  ol1 ) DIV - - 42
2ddd0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
2dde0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 0d 0a  b2..----..-1....
2ddf0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2de00 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2de10 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2de20 61 62 65 6c 2d 39 38 39 0d 0a 53 45 4c 45 43 54  abel-989..SELECT
2de30 20 44 49 53 54 49 4e 43 54 20 2d 20 4d 49 4e 20   DISTINCT - MIN 
2de40 28 20 63 6f 6c 31 20 29 20 2f 20 2d 20 2d 20 34  ( col1 ) / - - 4
2de50 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  2 AS col1 FROM t
2de60 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 0d  ab2..----..-1...
2de70 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2de80 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2de90 54 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c  T + col0 + - col
2dea0 30 20 2b 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20  0 + + col0 FROM 
2deb0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a  tab0..----..15..
2dec0 38 37 0d 0a 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  87..97....onlyif
2ded0 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
2dee0 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
2def0 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  n: ..query II ro
2df00 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 39 31 0d  wsort label-991.
2df10 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20  .SELECT ALL + + 
2df20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 30 20 44 49  col0 + + col0 DI
2df30 56 20 2d 20 63 6f 6c 32 2c 20 63 6f 6c 30 20 2a  V - col2, col0 *
2df40 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20   - col1 AS col2 
2df50 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
2df60 30 0d 0a 2d 2d 2d 2d 0d 0a 34 34 0d 0a 2d 32 33  0..----..44..-23
2df70 34 36 0d 0a 36 33 0d 0a 2d 34 39 32 38 0d 0a 37  46..63..-4928..7
2df80 34 0d 0a 2d 35 30 32 35 0d 0a 0d 0a 73 6b 69 70  4..-5025....skip
2df90 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2dfa0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2dfb0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
2dfc0 6c 2d 39 39 31 0d 0a 53 45 4c 45 43 54 20 41 4c  l-991..SELECT AL
2dfd0 4c 20 2b 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 63  L + + col0 + + c
2dfe0 6f 6c 30 20 2f 20 2d 20 63 6f 6c 32 2c 20 63 6f  ol0 / - col2, co
2dff0 6c 30 20 2a 20 2d 20 63 6f 6c 31 20 41 53 20 63  l0 * - col1 AS c
2e000 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
2e010 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 34 0d   cor0..----..44.
2e020 0a 2d 32 33 34 36 0d 0a 36 33 0d 0a 2d 34 39 32  .-2346..63..-492
2e030 38 0d 0a 37 34 0d 0a 2d 35 30 32 35 0d 0a 0d 0a  8..74..-5025....
2e040 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
2e050 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49  AST syntax: DECI
2e060 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  MAL type: ..quer
2e070 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
2e080 65 6c 2d 39 39 32 0d 0a 53 45 4c 45 43 54 20 44  el-992..SELECT D
2e090 49 53 54 49 4e 43 54 20 31 20 2a 20 2d 20 2b 20  ISTINCT 1 * - + 
2e0a0 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44 45  CAST( NULL AS DE
2e0b0 43 49 4d 41 4c 20 29 20 2b 20 2d 20 63 6f 6c 31  CIMAL ) + - col1
2e0c0 20 2f 20 2d 20 2d 20 28 20 2d 20 2b 20 63 6f 6c   / - - ( - + col
2e0d0 30 20 29 20 41 53 20 63 6f 6c 32 2c 20 2d 20 39  0 ) AS col2, - 9
2e0e0 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
2e0f0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
2e100 0a 2d 39 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-90....skipif m
2e110 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2e120 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
2e130 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 39  rowsort label-99
2e140 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  2..SELECT DISTIN
2e150 43 54 20 31 20 2a 20 2d 20 2b 20 43 41 53 54 20  CT 1 * - + CAST 
2e160 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29  ( NULL AS REAL )
2e170 20 2b 20 2d 20 63 6f 6c 31 20 2f 20 2d 20 2d 20   + - col1 / - - 
2e180 28 20 2d 20 2b 20 63 6f 6c 30 20 29 20 41 53 20  ( - + col0 ) AS 
2e190 63 6f 6c 32 2c 20 2d 20 39 30 20 46 52 4f 4d 20  col2, - 90 FROM 
2e1a0 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
2e1b0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 2d 39 30 0d 0a 0d  --..NULL..-90...
2e1c0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2e1d0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2e1e0 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
2e1f0 73 6f 72 74 20 6c 61 62 65 6c 2d 39 39 33 0d 0a  sort label-993..
2e200 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 53 55 4d  SELECT ALL - SUM
2e210 28 20 2d 20 63 6f 6c 31 20 29 20 2a 20 2b 20 43  ( - col1 ) * + C
2e220 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c  OUNT( * ) AS col
2e230 30 2c 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20  0, - COUNT( * ) 
2e240 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  + COUNT( * ) AS 
2e250 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col1 FROM tab1..
2e260 2d 2d 2d 2d 0d 0a 31 39 38 0d 0a 30 0d 0a 0d 0a  ----..198..0....
2e270 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2e280 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2e290 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
2e2a0 6c 61 62 65 6c 2d 39 39 33 0d 0a 53 45 4c 45 43  label-993..SELEC
2e2b0 54 20 41 4c 4c 20 2d 20 53 55 4d 20 28 20 2d 20  T ALL - SUM ( - 
2e2c0 63 6f 6c 31 20 29 20 2a 20 2b 20 43 4f 55 4e 54  col1 ) * + COUNT
2e2d0 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 2c 20   ( * ) AS col0, 
2e2e0 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20  - COUNT ( * ) + 
2e2f0 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63  COUNT ( * ) AS c
2e300 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
2e310 2d 2d 2d 0d 0a 31 39 38 0d 0a 30 0d 0a 0d 0a 73  ---..198..0....s
2e320 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
2e330 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
2e340 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
2e350 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
2e360 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
2e370 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2e380 44 49 53 54 49 4e 43 54 20 28 20 2b 20 2b 20 63  DISTINCT ( + + c
2e390 6f 6c 32 20 29 20 2b 20 2b 20 63 6f 6c 32 20 63  ol2 ) + + col2 c
2e3a0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
2e3b0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
2e3c0 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  NULL IS NOT NULL
2e3d0 0d 0a 2d 2d 2d 2d 0d 0a 31 31 38 0d 0a 31 33 36  ..----..118..136
2e3e0 0d 0a 31 39 32 0d 0a 0d 0a 71 75 65 72 79 20 49  ..192....query I
2e3f0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
2e400 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41  CT * FROM tab0 A
2e410 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
2e420 20 63 6f 6c 30 20 2b 20 2d 20 32 35 20 4e 4f 54   col0 + - 25 NOT
2e430 20 42 45 54 57 45 45 4e 20 37 36 20 2d 20 2d 20   BETWEEN 76 - - 
2e440 63 6f 6c 31 20 41 4e 44 20 2d 20 63 6f 6c 30 0d  col1 AND - col0.
2e450 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
2e460 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
2e470 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
2e480 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2e490 6f 72 74 20 6c 61 62 65 6c 2d 39 39 36 0d 0a 53  ort label-996..S
2e4a0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
2e4b0 6f 6c 32 20 2a 20 2b 20 2b 20 43 41 53 54 28 20  ol2 * + + CAST( 
2e4c0 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
2e4d0 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d   FROM tab1 cor0.
2e4e0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
2e4f0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2e500 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2e510 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2e520 62 65 6c 2d 39 39 36 0d 0a 53 45 4c 45 43 54 20  bel-996..SELECT 
2e530 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 2a 20  DISTINCT col2 * 
2e540 2b 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  + + CAST ( NULL 
2e550 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f  AS INTEGER ) FRO
2e560 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab1 cor0..---
2e570 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79  -..NULL....query
2e580 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
2e590 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
2e5a0 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 2d 20 28   WHERE NOT - - (
2e5b0 20 2d 20 2b 20 28 20 63 6f 6c 32 20 29 20 29 20   - + ( col2 ) ) 
2e5c0 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
2e5d0 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
2e5e0 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
2e5f0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2e600 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
2e610 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2e620 74 20 6c 61 62 65 6c 2d 39 39 38 0d 0a 53 45 4c  t label-998..SEL
2e630 45 43 54 20 2d 20 43 41 53 54 28 20 2d 20 2d 20  ECT - CAST( - - 
2e640 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20 2b 20  MAX( DISTINCT + 
2e650 33 38 20 29 20 41 53 20 53 49 47 4e 45 44 20 29  38 ) AS SIGNED )
2e660 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
2e670 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 38 0d 0a 0d  b2..----..-38...
2e680 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2e690 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2e6a0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2e6b0 6c 61 62 65 6c 2d 39 39 38 0d 0a 53 45 4c 45 43  label-998..SELEC
2e6c0 54 20 2d 20 43 41 53 54 20 28 20 2d 20 2d 20 4d  T - CAST ( - - M
2e6d0 41 58 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20  AX ( DISTINCT + 
2e6e0 33 38 20 29 20 41 53 20 49 4e 54 45 47 45 52 20  38 ) AS INTEGER 
2e6f0 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
2e700 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 38 0d 0a  ab2..----..-38..
2e710 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2e720 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
2e730 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 30 20 2a 20  col0 + - col0 * 
2e740 36 39 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  69 AS col2 FROM 
2e750 74 61 62 32 20 57 48 45 52 45 20 4e 55 4c 4c 20  tab2 WHERE NULL 
2e760 3e 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  >= NULL..----...
2e770 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
2e780 74 0d 0a 53 45 4c 45 43 54 20 35 38 20 2a 20 2d  t..SELECT 58 * -
2e790 20 2b 20 35 30 20 41 53 20 63 6f 6c 31 2c 20 63   + 50 AS col1, c
2e7a0 6f 6c 32 20 2a 20 2b 20 2b 20 32 34 20 2b 20 2d  ol2 * + + 24 + -
2e7b0 20 2b 20 38 39 20 2a 20 2b 20 28 20 2d 20 39 31   + 89 * + ( - 91
2e7c0 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
2e7d0 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  tab0 WHERE NOT N
2e7e0 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ULL IS NOT NULL.
2e7f0 0a 2d 2d 2d 2d 0d 0a 2d 32 39 30 30 0d 0a 31 30  .----..-2900..10
2e800 34 37 35 0d 0a 2d 32 39 30 30 0d 0a 38 33 33 39  475..-2900..8339
2e810 0d 0a 2d 32 39 30 30 0d 0a 39 32 32 37 0d 0a 0d  ..-2900..9227...
2e820 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2e830 0d 0a 53 45 4c 45 43 54 20 31 31 20 2a 20 63 6f  ..SELECT 11 * co
2e840 6c 31 20 2a 20 63 6f 6c 30 20 2a 20 2b 20 31 31  l1 * col0 * + 11
2e850 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
2e860 0d 0a 32 38 33 38 36 36 0d 0a 35 39 36 32 38 38  ..283866..596288
2e870 0d 0a 36 30 38 30 32 35 0d 0a 0d 0a 71 75 65 72  ..608025....quer
2e880 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2e890 45 43 54 20 2d 20 2b 20 37 36 20 41 53 20 63 6f  ECT - + 76 AS co
2e8a0 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
2e8b0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b  cor0 WHERE NOT +
2e8c0 20 63 6f 6c 32 20 2a 20 63 6f 6c 30 20 3c 20 4e   col2 * col0 < N
2e8d0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
2e8e0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2e8f0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
2e900 39 35 20 2a 20 2b 20 28 20 2d 20 2d 20 28 20 63  95 * + ( - - ( c
2e910 6f 6c 30 20 29 20 29 20 46 52 4f 4d 20 74 61 62  ol0 ) ) FROM tab
2e920 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 38 34 35 0d 0a  1..----..-4845..
2e930 2d 38 30 37 35 0d 0a 2d 38 36 34 35 0d 0a 0d 0a  -8075..-8645....
2e940 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
2e950 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72  AST syntax: aggr
2e960 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49  egate syntax: SI
2e970 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
2e980 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
2e990 62 65 6c 2d 31 30 30 34 0d 0a 53 45 4c 45 43 54  bel-1004..SELECT
2e9a0 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53   + COUNT( * ) AS
2e9b0 20 63 6f 6c 32 2c 20 43 41 53 54 28 20 2b 20 2d   col2, CAST( + -
2e9c0 20 4d 41 58 28 20 2d 20 36 33 20 29 20 41 53 20   MAX( - 63 ) AS 
2e9d0 53 49 47 4e 45 44 20 29 20 63 6f 6c 32 20 46 52  SIGNED ) col2 FR
2e9e0 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
2e9f0 54 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20 4e  T NULL BETWEEN N
2ea00 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d  ULL AND NULL..--
2ea10 2d 2d 0d 0a 30 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  --..0..NULL....s
2ea20 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2ea30 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
2ea40 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
2ea50 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
2ea60 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
2ea70 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
2ea80 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20  lumns..query II 
2ea90 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2eaa0 30 34 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55  04..SELECT + COU
2eab0 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32  NT ( * ) AS col2
2eac0 2c 20 43 41 53 54 20 28 20 2b 20 2d 20 4d 41 58  , CAST ( + - MAX
2ead0 20 28 20 2d 20 36 33 20 29 20 41 53 20 49 4e 54   ( - 63 ) AS INT
2eae0 45 47 45 52 20 29 20 63 6f 6c 32 20 46 52 4f 4d  EGER ) col2 FROM
2eaf0 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20   tab0 WHERE NOT 
2eb00 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20 4e 55 4c  NULL BETWEEN NUL
2eb10 4c 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  L AND NULL..----
2eb20 0d 0a 30 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c  ..0..NULL....onl
2eb30 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
2eb40 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
2eb50 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
2eb60 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2eb70 30 30 35 0d 0a 53 45 4c 45 43 54 20 2d 20 37 33  005..SELECT - 73
2eb80 20 41 53 20 63 6f 6c 30 2c 20 35 34 20 2f 20 2b   AS col0, 54 / +
2eb90 20 2b 20 41 56 47 20 28 20 41 4c 4c 20 2b 20 2d   + AVG ( ALL + -
2eba0 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
2ebb0 49 47 4e 45 44 20 29 20 29 20 63 6f 6c 30 20 46  IGNED ) ) col0 F
2ebc0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
2ebd0 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30   CROSS JOIN tab0
2ebe0 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
2ebf0 2d 37 33 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  -73..NULL....ski
2ec00 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2ec10 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70  compatible..skip
2ec20 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
2ec30 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
2ec40 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
2ec50 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
2ec60 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  mns..query II ro
2ec70 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 30 35  wsort label-1005
2ec80 0d 0a 53 45 4c 45 43 54 20 2d 20 37 33 20 41 53  ..SELECT - 73 AS
2ec90 20 63 6f 6c 30 2c 20 35 34 20 2f 20 2b 20 2b 20   col0, 54 / + + 
2eca0 41 56 47 20 28 20 41 4c 4c 20 2b 20 2d 20 43 41  AVG ( ALL + - CA
2ecb0 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
2ecc0 45 47 45 52 20 29 20 29 20 63 6f 6c 30 20 46 52  EGER ) ) col0 FR
2ecd0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
2ece0 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30 20  CROSS JOIN tab0 
2ecf0 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor1..----..-
2ed00 37 33 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79  73..NULL....only
2ed10 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
2ed20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74  syntax: aggregat
2ed30 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  e syntax: SIGNED
2ed40 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
2ed50 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2ed60 30 30 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  006..SELECT DIST
2ed70 49 4e 43 54 20 2d 20 43 41 53 54 28 20 2b 20 43  INCT - CAST( + C
2ed80 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 53 49 47  OUNT( * ) AS SIG
2ed90 4e 45 44 20 29 20 41 53 20 63 6f 6c 32 20 46 52  NED ) AS col2 FR
2eda0 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d  OM tab0 cor0..--
2edb0 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66  --..-3....skipif
2edc0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2edd0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2ede0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2edf0 30 30 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  006..SELECT DIST
2ee00 49 4e 43 54 20 2d 20 43 41 53 54 20 28 20 2b 20  INCT - CAST ( + 
2ee10 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 49  COUNT ( * ) AS I
2ee20 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 32  NTEGER ) AS col2
2ee30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d   FROM tab0 cor0.
2ee40 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 6f 6e 6c  .----..-3....onl
2ee50 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
2ee60 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
2ee70 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2ee80 6c 61 62 65 6c 2d 31 30 30 37 0d 0a 53 45 4c 45  label-1007..SELE
2ee90 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 32 36  CT DISTINCT + 26
2eea0 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53   + COUNT( * ) AS
2eeb0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
2eec0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  AS cor0..----..2
2eed0 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
2eee0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2eef0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2ef00 6f 72 74 20 6c 61 62 65 6c 2d 31 30 30 37 0d 0a  ort label-1007..
2ef10 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2ef20 2b 20 32 36 20 2b 20 43 4f 55 4e 54 20 28 20 2a  + 26 + COUNT ( *
2ef30 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
2ef40 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
2ef50 2d 2d 0d 0a 32 39 0d 0a 0d 0a 6f 6e 6c 79 69 66  --..29....onlyif
2ef60 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
2ef70 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20  ntax: aggregate 
2ef80 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
2ef90 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
2efa0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 30  owsort label-100
2efb0 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  8..SELECT DISTIN
2efc0 43 54 20 2d 20 4d 49 4e 28 20 41 4c 4c 20 2d 20  CT - MIN( ALL - 
2efd0 2b 20 31 34 20 29 20 2b 20 43 41 53 54 28 20 4e  + 14 ) + CAST( N
2efe0 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
2eff0 2a 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f  * COUNT( * ) FRO
2f000 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
2f010 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  ----..NULL....sk
2f020 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2f030 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2f040 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2f050 65 6c 2d 31 30 30 38 0d 0a 53 45 4c 45 43 54 20  el-1008..SELECT 
2f060 44 49 53 54 49 4e 43 54 20 2d 20 4d 49 4e 20 28  DISTINCT - MIN (
2f070 20 41 4c 4c 20 2d 20 2b 20 31 34 20 29 20 2b 20   ALL - + 14 ) + 
2f080 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
2f090 4e 54 45 47 45 52 20 29 20 2a 20 43 4f 55 4e 54  NTEGER ) * COUNT
2f0a0 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31   ( * ) FROM tab1
2f0b0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2f0c0 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20  NULL....query I 
2f0d0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2f0e0 2b 20 28 20 63 6f 6c 31 20 29 20 2a 20 34 31 20  + ( col1 ) * 41 
2f0f0 2a 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32  * - col2 AS col2
2f100 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
2f110 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 36 30 38  r0..----..-15608
2f120 37 0d 0a 2d 34 30 35 39 0d 0a 2d 38 36 31 30 0d  7..-4059..-8610.
2f130 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2f140 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
2f150 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
2f160 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31 30  wsort label-1010
2f170 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43  ..SELECT ALL - C
2f180 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2d 20 43 4f  OUNT( * ) * - CO
2f190 55 4e 54 28 20 2d 20 63 6f 6c 31 20 29 20 2b 20  UNT( - col1 ) + 
2f1a0 2b 20 32 38 20 41 53 20 63 6f 6c 30 20 46 52 4f  + 28 AS col0 FRO
2f1b0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
2f1c0 2d 2d 2d 2d 0d 0a 33 37 0d 0a 0d 0a 73 6b 69 70  ----..37....skip
2f1d0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2f1e0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2f1f0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2f200 2d 31 30 31 30 0d 0a 53 45 4c 45 43 54 20 41 4c  -1010..SELECT AL
2f210 4c 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  L - COUNT ( * ) 
2f220 2a 20 2d 20 43 4f 55 4e 54 20 28 20 2d 20 63 6f  * - COUNT ( - co
2f230 6c 31 20 29 20 2b 20 2b 20 32 38 20 41 53 20 63  l1 ) + + 28 AS c
2f240 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
2f250 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 37 0d   cor0..----..37.
2f260 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2f270 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
2f280 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72  ax: ..query II r
2f290 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31  owsort label-101
2f2a0 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  1..SELECT ALL + 
2f2b0 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2d 20 43  COUNT( * ) * - C
2f2c0 4f 55 4e 54 28 20 2a 20 29 2c 20 2d 20 35 38 20  OUNT( * ), - 58 
2f2d0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2f2e0 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 2d 35 38  2..----..-9..-58
2f2f0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2f300 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2f310 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
2f320 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31 31 0d 0a  ort label-1011..
2f330 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55  SELECT ALL + COU
2f340 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20 43 4f 55  NT ( * ) * - COU
2f350 4e 54 20 28 20 2a 20 29 2c 20 2d 20 35 38 20 41  NT ( * ), - 58 A
2f360 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
2f370 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 2d 35 38 0d  ..----..-9..-58.
2f380 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
2f390 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
2f3a0 49 4e 43 54 20 35 31 20 41 53 20 63 6f 6c 30 2c  INCT 51 AS col0,
2f3b0 20 38 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d   8 FROM tab1..--
2f3c0 2d 2d 0d 0a 35 31 0d 0a 38 0d 0a 0d 0a 71 75 65  --..51..8....que
2f3d0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2f3e0 4c 45 43 54 20 2b 20 31 38 20 2a 20 2d 20 28 20  LECT + 18 * - ( 
2f3f0 2b 20 2b 20 41 56 47 20 28 20 41 4c 4c 20 38 33  + + AVG ( ALL 83
2f400 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30 20 57   ) ) FROM tab0 W
2f410 48 45 52 45 20 63 6f 6c 31 20 2b 20 2b 20 38 39  HERE col1 + + 89
2f420 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
2f430 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20  NULL....query I 
2f440 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2f450 2d 20 63 6f 6c 32 20 2f 20 63 6f 6c 32 20 41 53  - col2 / col2 AS
2f460 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
2f470 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  cor0 WHERE NULL 
2f480 3e 20 2d 20 63 6f 6c 31 20 2b 20 34 35 20 2b 20  > - col1 + 45 + 
2f490 63 6f 6c 32 20 2b 20 2d 20 38 38 20 2b 20 34 33  col2 + - 88 + 43
2f4a0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
2f4b0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
2f4c0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
2f4d0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2f4e0 65 6c 2d 31 30 31 35 0d 0a 53 45 4c 45 43 54 20  el-1015..SELECT 
2f4f0 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54  DISTINCT - COUNT
2f500 28 20 2a 20 29 20 2b 20 43 4f 55 4e 54 28 20 2a  ( * ) + COUNT( *
2f510 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
2f520 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
2f530 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..0....skipif 
2f540 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2f550 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2f560 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2f570 31 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  15..SELECT DISTI
2f580 4e 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  NCT - COUNT ( * 
2f590 29 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ) + COUNT ( * ) 
2f5a0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
2f5b0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
2f5c0 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .0....query I ro
2f5d0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
2f5e0 4c 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 31 32 20  L - col1 * + 12 
2f5f0 2b 20 63 6f 6c 32 20 2a 20 2b 20 2d 20 30 20 2b  + col2 * + - 0 +
2f600 20 28 20 2b 20 63 6f 6c 31 20 29 20 2b 20 2b 20   ( + col1 ) + + 
2f610 35 33 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  53 AS col1 FROM 
2f620 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
2f630 2d 2d 0d 0a 2d 31 30 31 0d 0a 2d 32 0d 0a 2d 34  --..-101..-2..-4
2f640 36 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  64....query I ro
2f650 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
2f660 63 6f 6c 32 20 2b 20 63 6f 6c 31 20 2b 20 2b 20  col2 + col1 + + 
2f670 2b 20 31 37 20 41 53 20 63 6f 6c 32 20 46 52 4f  + 17 AS col2 FRO
2f680 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
2f690 2d 2d 2d 2d 0d 0a 31 32 37 0d 0a 31 33 32 0d 0a  ----..127..132..
2f6a0 38 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  81....query I ro
2f6b0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
2f6c0 63 6f 6c 32 20 2a 20 2b 20 2b 20 63 6f 6c 32 20  col2 * + + col2 
2f6d0 2a 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30  * + col1 AS col0
2f6e0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
2f6f0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37 38 39 32 39  r0..----..178929
2f700 0d 0a 32 31 30 30 0d 0a 39 38 30 31 0d 0a 0d 0a  ..2100..9801....
2f710 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
2f720 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49  AST syntax: DECI
2f730 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  MAL type: ..quer
2f740 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
2f750 65 6c 2d 31 30 31 39 0d 0a 53 45 4c 45 43 54 20  el-1019..SELECT 
2f760 44 49 53 54 49 4e 43 54 20 2d 20 43 41 53 54 28  DISTINCT - CAST(
2f770 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c   NULL AS DECIMAL
2f780 20 29 20 2a 20 2b 20 63 6f 6c 31 20 2d 20 2b 20   ) * + col1 - + 
2f790 2b 20 63 6f 6c 32 2c 20 63 6f 6c 32 20 63 6f 6c  + col2, col2 col
2f7a0 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
2f7b0 2d 0d 0a 4e 55 4c 4c 0d 0a 32 33 0d 0a 4e 55 4c  -..NULL..23..NUL
2f7c0 4c 0d 0a 34 30 0d 0a 4e 55 4c 4c 0d 0a 35 38 0d  L..40..NULL..58.
2f7d0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2f7e0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2f7f0 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
2f800 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
2f810 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
2f820 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
2f830 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
2f840 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
2f850 6c 2d 31 30 31 39 0d 0a 53 45 4c 45 43 54 20 44  l-1019..SELECT D
2f860 49 53 54 49 4e 43 54 20 2d 20 43 41 53 54 20 28  ISTINCT - CAST (
2f870 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20   NULL AS REAL ) 
2f880 2a 20 2b 20 63 6f 6c 31 20 2d 20 2b 20 2b 20 63  * + col1 - + + c
2f890 6f 6c 32 2c 20 63 6f 6c 32 20 63 6f 6c 30 20 46  ol2, col2 col0 F
2f8a0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
2f8b0 4e 55 4c 4c 0d 0a 32 33 0d 0a 4e 55 4c 4c 0d 0a  NULL..23..NULL..
2f8c0 34 30 0d 0a 4e 55 4c 4c 0d 0a 35 38 0d 0a 0d 0a  40..NULL..58....
2f8d0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
2f8e0 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
2f8f0 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
2f900 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2f910 2d 31 30 32 30 0d 0a 53 45 4c 45 43 54 20 44 49  -1020..SELECT DI
2f920 53 54 49 4e 43 54 20 2d 20 36 36 20 2d 20 2d 20  STINCT - 66 - - 
2f930 63 6f 6c 32 20 2b 20 2d 20 30 20 44 49 56 20 2d  col2 + - 0 DIV -
2f940 20 28 20 2b 20 2b 20 63 6f 6c 31 20 29 20 41 53   ( + + col1 ) AS
2f950 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
2f960 0a 2d 2d 2d 2d 0d 0a 2d 31 39 0d 0a 2d 35 36 0d  .----..-19..-56.
2f970 0a 33 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .33....skipif my
2f980 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2f990 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
2f9a0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 32 30  wsort label-1020
2f9b0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2f9c0 54 20 2d 20 36 36 20 2d 20 2d 20 63 6f 6c 32 20  T - 66 - - col2 
2f9d0 2b 20 2d 20 30 20 2f 20 2d 20 28 20 2b 20 2b 20  + - 0 / - ( + + 
2f9e0 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 30 20 46  col1 ) AS col0 F
2f9f0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
2fa00 2d 31 39 0d 0a 2d 35 36 0d 0a 33 33 0d 0a 0d 0a  -19..-56..33....
2fa10 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
2fa20 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
2fa30 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 20 57  FROM tab1 cor0 W
2fa40 48 45 52 45 20 4e 4f 54 20 2b 20 28 20 2b 20 63  HERE NOT + ( + c
2fa50 6f 6c 32 20 29 20 3c 3e 20 28 20 2b 20 63 6f 6c  ol2 ) <> ( + col
2fa60 30 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 63 6f 6c  0 + + col1 + col
2fa70 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  1 )..----....que
2fa80 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2fa90 4c 45 43 54 20 2d 20 2b 20 63 6f 6c 30 20 2a 20  LECT - + col0 * 
2faa0 2b 20 34 32 20 2a 20 2b 20 2b 20 36 34 20 46 52  + 42 * + + 64 FR
2fab0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
2fac0 0a 2d 2d 2d 2d 0d 0a 2d 31 33 37 30 38 38 0d 0a  .----..-137088..
2fad0 2d 32 32 38 34 38 30 0d 0a 2d 32 34 34 36 30 38  -228480..-244608
2fae0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2faf0 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
2fb00 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
2fb10 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2fb20 61 62 65 6c 2d 31 30 32 33 0d 0a 53 45 4c 45 43  abel-1023..SELEC
2fb30 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 44 49 56  T ALL - col0 DIV
2fb40 20 2b 20 2d 20 63 6f 6c 32 20 63 6f 6c 30 20 46   + - col2 col0 F
2fb50 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
2fb60 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31 0d 0a 32 0d  ..----..1..1..2.
2fb70 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2fb80 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2fb90 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
2fba0 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
2fbb0 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
2fbc0 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
2fbd0 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
2fbe0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2fbf0 2d 31 30 32 33 0d 0a 53 45 4c 45 43 54 20 41 4c  -1023..SELECT AL
2fc00 4c 20 2d 20 63 6f 6c 30 20 2f 20 2b 20 2d 20 63  L - col0 / + - c
2fc10 6f 6c 32 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  ol2 col0 FROM ta
2fc20 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
2fc30 0d 0a 31 0d 0a 31 0d 0a 32 0d 0a 0d 0a 6f 6e 6c  ..1..1..2....onl
2fc40 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
2fc50 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49  egate syntax: DI
2fc60 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
2fc70 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
2fc80 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2fc90 31 30 32 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1024..SELECT ALL
2fca0 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 44 49   + COUNT( * ) DI
2fcb0 56 20 2d 20 35 30 20 41 53 20 63 6f 6c 30 20 46  V - 50 AS col0 F
2fcc0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
2fcd0 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
2fce0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2fcf0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2fd00 6f 72 74 20 6c 61 62 65 6c 2d 31 30 32 34 0d 0a  ort label-1024..
2fd10 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55  SELECT ALL + COU
2fd20 4e 54 20 28 20 2a 20 29 20 2f 20 2d 20 35 30 20  NT ( * ) / - 50 
2fd30 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
2fd40 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e  2..----..0....on
2fd50 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
2fd60 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
2fd70 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
2fd80 74 20 6c 61 62 65 6c 2d 31 30 32 35 0d 0a 53 45  t label-1025..SE
2fd90 4c 45 43 54 20 41 4c 4c 20 2b 20 35 20 41 53 20  LECT ALL + 5 AS 
2fda0 63 6f 6c 30 2c 20 2b 20 43 4f 55 4e 54 28 20 2a  col0, + COUNT( *
2fdb0 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d   ) FROM tab1..--
2fdc0 2d 2d 0d 0a 35 0d 0a 33 0d 0a 0d 0a 73 6b 69 70  --..5..3....skip
2fdd0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2fde0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2fdf0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
2fe00 6c 2d 31 30 32 35 0d 0a 53 45 4c 45 43 54 20 41  l-1025..SELECT A
2fe10 4c 4c 20 2b 20 35 20 41 53 20 63 6f 6c 30 2c 20  LL + 5 AS col0, 
2fe20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52  + COUNT ( * ) FR
2fe30 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35  OM tab1..----..5
2fe40 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ..3....query I r
2fe50 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
2fe60 49 53 54 49 4e 43 54 20 2b 20 37 20 41 53 20 63  ISTINCT + 7 AS c
2fe70 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 2c 20 74  ol0 FROM tab2, t
2fe80 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
2fe90 2d 0d 0a 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49  -..7....query II
2fea0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2feb0 20 2d 20 31 35 2c 20 2b 20 63 6f 6c 31 20 41 53   - 15, + col1 AS
2fec0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
2fed0 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 35 31 0d 0a  .----..-15..51..
2fee0 2d 31 35 0d 0a 36 37 0d 0a 2d 31 35 0d 0a 37 37  -15..67..-15..77
2fef0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2ff00 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
2ff10 2b 20 28 20 2d 20 39 33 20 29 20 41 53 20 63 6f  + ( - 93 ) AS co
2ff20 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
2ff30 2d 2d 0d 0a 2d 39 33 0d 0a 2d 39 33 0d 0a 2d 39  --..-93..-93..-9
2ff40 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  3....skipif post
2ff50 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
2ff60 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
2ff70 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
2ff80 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
2ff90 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
2ffa0 53 45 4c 45 43 54 20 63 6f 6c 30 20 63 6f 6c 31  SELECT col0 col1
2ffb0 2c 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  , + col2 FROM ta
2ffc0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 39 36  b1..----..51..96
2ffd0 0d 0a 38 35 0d 0a 35 39 0d 0a 39 31 0d 0a 36 38  ..85..59..91..68
2ffe0 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
2fff0 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
30000 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
30010 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
30020 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
30030 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
30040 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 63 6f 6c  ELECT - col2 col
30050 30 2c 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 30  0, col1 * - col0
30060 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
30070 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a 2d  r0..----..-23..-
30080 32 33 34 36 0d 0a 2d 34 30 0d 0a 2d 34 39 32 38  2346..-40..-4928
30090 0d 0a 2d 35 38 0d 0a 2d 35 30 32 35 0d 0a 0d 0a  ..-58..-5025....
300a0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
300b0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
300c0 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
300d0 6f 72 74 20 6c 61 62 65 6c 2d 31 30 33 31 0d 0a  ort label-1031..
300e0 53 45 4c 45 43 54 20 36 32 20 41 53 20 63 6f 6c  SELECT 62 AS col
300f0 30 2c 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53  0, COUNT( * ) AS
30100 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
30110 57 48 45 52 45 20 4e 4f 54 20 2b 20 2b 20 63 6f  WHERE NOT + + co
30120 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  l0 IS NOT NULL..
30130 2d 2d 2d 2d 0d 0a 36 32 0d 0a 30 0d 0a 0d 0a 73  ----..62..0....s
30140 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
30150 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
30160 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
30170 61 62 65 6c 2d 31 30 33 31 0d 0a 53 45 4c 45 43  abel-1031..SELEC
30180 54 20 36 32 20 41 53 20 63 6f 6c 30 2c 20 43 4f  T 62 AS col0, CO
30190 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c  UNT ( * ) AS col
301a0 31 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  1 FROM tab0 WHER
301b0 45 20 4e 4f 54 20 2b 20 2b 20 63 6f 6c 30 20 49  E NOT + + col0 I
301c0 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
301d0 0d 0a 36 32 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79  ..62..0....query
301e0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
301f0 43 54 20 2d 20 63 6f 6c 32 20 2a 20 63 6f 6c 32  CT - col2 * col2
30200 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 30   + col1 + + col0
30210 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
30220 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
30230 0d 0a 2d 33 33 39 31 0d 0a 2d 34 34 38 36 0d 0a  ..-3391..-4486..
30240 2d 39 31 35 31 0d 0a 0d 0a 71 75 65 72 79 20 49  -9151....query I
30250 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
30260 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 30 20 2b   col2 + - col0 +
30270 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
30280 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
30290 30 0d 0a 34 37 0d 0a 39 39 0d 0a 0d 0a 73 6b 69  0..47..99....ski
302a0 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
302b0 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
302c0 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
302d0 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
302e0 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
302f0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
30300 53 54 49 4e 43 54 20 63 6f 6c 32 20 2a 20 63 6f  STINCT col2 * co
30310 6c 30 20 2b 20 2b 20 32 36 20 63 6f 6c 30 20 46  l0 + + 26 col0 F
30320 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
30330 0d 0a 2d 2d 2d 2d 0d 0a 37 33 31 0d 0a 38 39 36  ..----..731..896
30340 0d 0a 39 36 32 39 0d 0a 0d 0a 71 75 65 72 79 20  ..9629....query 
30350 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
30360 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
30370 61 62 32 20 63 6f 72 30 20 57 48 45 52 45 20 28  ab2 cor0 WHERE (
30380 20 35 35 20 3e 20 2b 20 32 39 20 2b 20 31 32 20   55 > + 29 + 12 
30390 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  )..----..9 value
303a0 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63  s hashing to 75c
303b0 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62  998aa53ac83218cb
303c0 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d  f2feb962d0a49...
303d0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
303e0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
303f0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
30400 6f 72 74 20 6c 61 62 65 6c 2d 31 30 33 36 0d 0a  ort label-1036..
30410 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
30420 2b 20 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20  + MAX( DISTINCT 
30430 63 6f 6c 30 20 29 20 2b 20 2b 20 2b 20 53 55 4d  col0 ) + + + SUM
30440 28 20 41 4c 4c 20 2d 20 28 20 2d 20 2b 20 63 6f  ( ALL - ( - + co
30450 6c 30 20 29 20 29 20 63 6f 6c 30 20 46 52 4f 4d  l0 ) ) col0 FROM
30460 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
30470 2d 2d 2d 0d 0a 33 31 38 0d 0a 0d 0a 73 6b 69 70  ---..318....skip
30480 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
30490 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
304a0 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
304b0 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
304c0 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
304d0 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
304e0 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
304f0 6f 72 74 20 6c 61 62 65 6c 2d 31 30 33 36 0d 0a  ort label-1036..
30500 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
30510 2b 20 4d 41 58 20 28 20 44 49 53 54 49 4e 43 54  + MAX ( DISTINCT
30520 20 63 6f 6c 30 20 29 20 2b 20 2b 20 2b 20 53 55   col0 ) + + + SU
30530 4d 20 28 20 41 4c 4c 20 2d 20 28 20 2d 20 2b 20  M ( ALL - ( - + 
30540 63 6f 6c 30 20 29 20 29 20 63 6f 6c 30 20 46 52  col0 ) ) col0 FR
30550 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
30560 0a 2d 2d 2d 2d 0d 0a 33 31 38 0d 0a 0d 0a 6f 6e  .----..318....on
30570 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
30580 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
30590 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
305a0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
305b0 30 33 37 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20  037..SELECT - - 
305c0 32 35 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  25 FROM tab1 AS 
305d0 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  cor0 WHERE NULL 
305e0 4e 4f 54 20 49 4e 20 28 20 2d 20 43 41 53 54 28  NOT IN ( - CAST(
305f0 20 2d 20 2d 20 63 6f 6c 31 20 41 53 20 53 49 47   - - col1 AS SIG
30600 4e 45 44 20 29 2c 20 2d 20 63 6f 6c 30 20 29 0d  NED ), - col0 ).
30610 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
30620 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
30630 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
30640 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
30650 33 37 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 32  37..SELECT - - 2
30660 35 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  5 FROM tab1 AS c
30670 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e  or0 WHERE NULL N
30680 4f 54 20 49 4e 20 28 20 2d 20 43 41 53 54 20 28  OT IN ( - CAST (
30690 20 2d 20 2d 20 63 6f 6c 31 20 41 53 20 49 4e 54   - - col1 AS INT
306a0 45 47 45 52 20 29 2c 20 2d 20 63 6f 6c 30 20 29  EGER ), - col0 )
306b0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
306c0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
306d0 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 2a 20 2d  T ALL - col0 * -
306e0 20 31 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53   10 FROM tab0 AS
306f0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
30700 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  NULL IS NULL..--
30710 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
30720 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
30730 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
30740 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
30750 30 33 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  039..SELECT DIST
30760 49 4e 43 54 20 37 30 20 2b 20 2b 20 2d 20 43 4f  INCT 70 + + - CO
30770 55 4e 54 28 20 2a 20 29 20 2a 20 2d 20 2b 20 37  UNT( * ) * - + 7
30780 37 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  7 FROM tab2..---
30790 2d 0d 0a 33 30 31 0d 0a 0d 0a 73 6b 69 70 69 66  -..301....skipif
307a0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
307b0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
307c0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
307d0 30 33 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  039..SELECT DIST
307e0 49 4e 43 54 20 37 30 20 2b 20 2b 20 2d 20 43 4f  INCT 70 + + - CO
307f0 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20 2b 20  UNT ( * ) * - + 
30800 37 37 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  77 FROM tab2..--
30810 2d 2d 0d 0a 33 30 31 0d 0a 0d 0a 71 75 65 72 79  --..301....query
30820 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
30830 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f  CT DISTINCT + co
30840 6c 30 20 2d 20 2b 20 2d 20 31 20 2b 20 63 6f 6c  l0 - + - 1 + col
30850 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  2 AS col0 FROM t
30860 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 30 35 0d 0a  ab2..----..105..
30870 31 33 34 0d 0a 37 30 0d 0a 0d 0a 6f 6e 6c 79 69  134..70....onlyi
30880 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
30890 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
308a0 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
308b0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 34 31  wsort label-1041
308c0 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 28 20 4e  ..SELECT CAST( N
308d0 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
308e0 2a 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 31 20  * col1 * - col1 
308f0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
30900 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  2..----..NULL..N
30910 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ULL..NULL....ski
30920 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
30930 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
30940 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
30950 6c 2d 31 30 34 31 0d 0a 53 45 4c 45 43 54 20 43  l-1041..SELECT C
30960 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
30970 54 45 47 45 52 20 29 20 2a 20 63 6f 6c 31 20 2a  TEGER ) * col1 *
30980 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20   - col1 AS col2 
30990 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
309a0 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
309b0 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  L....onlyif mysq
309c0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
309d0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
309e0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
309f0 34 32 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54  42..SELECT COUNT
30a00 28 20 37 36 20 29 20 46 52 4f 4d 20 74 61 62 30  ( 76 ) FROM tab0
30a10 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69  ..----..3....ski
30a20 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
30a30 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
30a40 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
30a50 6c 2d 31 30 34 32 0d 0a 53 45 4c 45 43 54 20 43  l-1042..SELECT C
30a60 4f 55 4e 54 20 28 20 37 36 20 29 20 46 52 4f 4d  OUNT ( 76 ) FROM
30a70 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   tab0..----..3..
30a80 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
30a90 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
30aa0 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67  x: DIV for integ
30ab0 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
30ac0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
30ad0 61 62 65 6c 2d 31 30 34 33 0d 0a 53 45 4c 45 43  abel-1043..SELEC
30ae0 54 20 2b 20 36 34 20 44 49 56 20 2b 20 43 4f 55  T + 64 DIV + COU
30af0 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  NT( * ) FROM tab
30b00 32 0d 0a 2d 2d 2d 2d 0d 0a 32 31 0d 0a 0d 0a 73  2..----..21....s
30b10 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
30b20 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
30b30 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
30b40 62 65 6c 2d 31 30 34 33 0d 0a 53 45 4c 45 43 54  bel-1043..SELECT
30b50 20 2b 20 36 34 20 2f 20 2b 20 43 4f 55 4e 54 20   + 64 / + COUNT 
30b60 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 0d  ( * ) FROM tab2.
30b70 0a 2d 2d 2d 2d 0d 0a 32 31 0d 0a 0d 0a 6f 6e 6c  .----..21....onl
30b80 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
30b90 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
30ba0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
30bb0 6c 61 62 65 6c 2d 31 30 34 34 0d 0a 53 45 4c 45  label-1044..SELE
30bc0 43 54 20 53 55 4d 28 20 44 49 53 54 49 4e 43 54  CT SUM( DISTINCT
30bd0 20 2d 20 36 39 20 29 20 46 52 4f 4d 20 74 61 62   - 69 ) FROM tab
30be0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 39 0d 0a 0d 0a  0..----..-69....
30bf0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
30c00 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
30c10 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
30c20 61 62 65 6c 2d 31 30 34 34 0d 0a 53 45 4c 45 43  abel-1044..SELEC
30c30 54 20 53 55 4d 20 28 20 44 49 53 54 49 4e 43 54  T SUM ( DISTINCT
30c40 20 2d 20 36 39 20 29 20 46 52 4f 4d 20 74 61 62   - 69 ) FROM tab
30c50 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 39 0d 0a 0d 0a  0..----..-69....
30c60 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
30c70 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
30c80 20 63 6f 6c 31 20 2b 20 63 6f 6c 31 20 2b 20 2b   col1 + col1 + +
30c90 20 2b 20 39 35 20 2a 20 2b 20 33 30 20 46 52 4f   + 95 * + 30 FRO
30ca0 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48 45 52  M tab2 cor0 WHER
30cb0 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 3c  E NOT ( NULL ) <
30cc0 3e 20 2b 20 2d 20 32 39 0d 0a 2d 2d 2d 2d 0d 0a  > + - 29..----..
30cd0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
30ce0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
30cf0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
30d00 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 34 36 0d  sort label-1046.
30d10 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 36 37  .SELECT ALL + 67
30d20 20 2b 20 2b 20 4d 49 4e 28 20 2b 20 63 6f 6c 30   + + MIN( + col0
30d30 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
30d40 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 33 0d  cor0..----..113.
30d50 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
30d60 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
30d70 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
30d80 74 20 6c 61 62 65 6c 2d 31 30 34 36 0d 0a 53 45  t label-1046..SE
30d90 4c 45 43 54 20 41 4c 4c 20 2b 20 36 37 20 2b 20  LECT ALL + 67 + 
30da0 2b 20 4d 49 4e 20 28 20 2b 20 63 6f 6c 30 20 29  + MIN ( + col0 )
30db0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
30dc0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 33 0d 0a 0d  r0..----..113...
30dd0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
30de0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
30df0 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  : DIV for intege
30e00 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
30e10 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
30e20 62 65 6c 2d 31 30 34 37 0d 0a 53 45 4c 45 43 54  bel-1047..SELECT
30e30 20 2b 20 32 33 20 2b 20 2d 20 35 39 20 44 49 56   + 23 + - 59 DIV
30e40 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53   - COUNT( * ) AS
30e50 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d   col2 FROM tab2.
30e60 0a 2d 2d 2d 2d 0d 0a 34 32 0d 0a 0d 0a 73 6b 69  .----..42....ski
30e70 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
30e80 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
30e90 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
30ea0 6c 2d 31 30 34 37 0d 0a 53 45 4c 45 43 54 20 2b  l-1047..SELECT +
30eb0 20 32 33 20 2b 20 2d 20 35 39 20 2f 20 2d 20 43   23 + - 59 / - C
30ec0 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
30ed0 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
30ee0 2d 2d 0d 0a 34 32 0d 0a 0d 0a 71 75 65 72 79 20  --..42....query 
30ef0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
30f00 54 20 63 6f 6c 31 20 2a 20 2d 20 33 32 20 2a 20  T col1 * - 32 * 
30f10 2b 20 2b 20 36 31 20 46 52 4f 4d 20 74 61 62 32  + + 61 FROM tab2
30f20 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 30 37 38 34 0d  ..----..-130784.
30f30 0a 2d 31 35 30 33 30 34 0d 0a 2d 39 39 35 35 32  .-150304..-99552
30f40 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
30f50 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
30f60 49 4e 43 54 20 2b 20 36 37 20 2a 20 2b 20 63 6f  INCT + 67 * + co
30f70 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l1 AS col1 FROM 
30f80 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 31 34 39  tab1..----..3149
30f90 0d 0a 33 33 35 0d 0a 39 33 38 0d 0a 0d 0a 71 75  ..335..938....qu
30fa0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
30fb0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
30fc0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
30fd0 57 48 45 52 45 20 4e 4f 54 20 39 38 20 3c 3e 20  WHERE NOT 98 <> 
30fe0 28 20 2b 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d  ( + col0 )..----
30ff0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
31000 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20  ort..SELECT + + 
31010 35 37 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  57 AS col0 FROM 
31020 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
31030 2d 2d 0d 0a 35 37 0d 0a 35 37 0d 0a 35 37 0d 0a  --..57..57..57..
31040 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
31050 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
31060 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
31070 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35 32 0d  sort label-1052.
31080 0a 53 45 4c 45 43 54 20 2b 20 53 55 4d 28 20 2d  .SELECT + SUM( -
31090 20 2d 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c   - col1 ) AS col
310a0 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
310b0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 36 0d 0a 0d  or0..----..66...
310c0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
310d0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
310e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
310f0 6c 61 62 65 6c 2d 31 30 35 32 0d 0a 53 45 4c 45  label-1052..SELE
31100 43 54 20 2b 20 53 55 4d 20 28 20 2d 20 2d 20 63  CT + SUM ( - - c
31110 6f 6c 31 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ol1 ) AS col1 FR
31120 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
31130 0a 2d 2d 2d 2d 0d 0a 36 36 0d 0a 0d 0a 71 75 65  .----..66....que
31140 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
31150 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
31160 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
31170 20 4e 4f 54 20 36 20 49 53 20 4e 55 4c 4c 0d 0a   NOT 6 IS NULL..
31180 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
31190 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34  ashing to c6c0a4
311a0 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61  111b36d04dbc811a
311b0 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 6f 6e  11e4d54cad....on
311c0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
311d0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
311e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
311f0 20 6c 61 62 65 6c 2d 31 30 35 34 0d 0a 53 45 4c   label-1054..SEL
31200 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55  ECT DISTINCT COU
31210 4e 54 28 20 44 49 53 54 49 4e 43 54 20 36 38 20  NT( DISTINCT 68 
31220 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
31230 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a  ab2..----..1....
31240 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
31250 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
31260 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
31270 61 62 65 6c 2d 31 30 35 34 0d 0a 53 45 4c 45 43  abel-1054..SELEC
31280 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54  T DISTINCT COUNT
31290 20 28 20 44 49 53 54 49 4e 43 54 20 36 38 20 29   ( DISTINCT 68 )
312a0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
312b0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 6f  b2..----..1....o
312c0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
312d0 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
312e0 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
312f0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
31300 31 30 35 35 0d 0a 53 45 4c 45 43 54 20 44 49 53  1055..SELECT DIS
31310 54 49 4e 43 54 20 2b 20 37 38 20 44 49 56 20 2d  TINCT + 78 DIV -
31320 20 2b 20 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a   + 2 FROM tab0..
31330 2d 2d 2d 2d 0d 0a 2d 33 39 0d 0a 0d 0a 73 6b 69  ----..-39....ski
31340 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
31350 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
31360 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
31370 6c 2d 31 30 35 35 0d 0a 53 45 4c 45 43 54 20 44  l-1055..SELECT D
31380 49 53 54 49 4e 43 54 20 2b 20 37 38 20 2f 20 2d  ISTINCT + 78 / -
31390 20 2b 20 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a   + 2 FROM tab0..
313a0 2d 2d 2d 2d 0d 0a 2d 33 39 0d 0a 0d 0a 71 75 65  ----..-39....que
313b0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
313c0 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
313d0 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
313e0 20 2b 20 31 36 20 2b 20 35 30 20 2a 20 2d 20 31   + 16 + 50 * - 1
313f0 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  1 IS NULL..----.
31400 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
31410 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61  g to 75c998aa53a
31420 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32  c83218cbf2feb962
31430 64 30 61 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  d0a49....onlyif 
31440 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
31450 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
31460 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
31470 6c 2d 31 30 35 37 0d 0a 53 45 4c 45 43 54 20 44  l-1057..SELECT D
31480 49 53 54 49 4e 43 54 20 2b 20 2b 20 53 55 4d 28  ISTINCT + + SUM(
31490 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 29 20 2b 20   ALL - col0 ) + 
314a0 31 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  1 + - COUNT( * )
314b0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
314c0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30 31  cor0..----..-201
314d0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
314e0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
314f0 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
31500 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
31510 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
31520 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
31530 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
31540 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
31550 6c 2d 31 30 35 37 0d 0a 53 45 4c 45 43 54 20 44  l-1057..SELECT D
31560 49 53 54 49 4e 43 54 20 2b 20 2b 20 53 55 4d 20  ISTINCT + + SUM 
31570 28 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 29 20 2b  ( ALL - col0 ) +
31580 20 31 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a   1 + - COUNT ( *
31590 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   ) col0 FROM tab
315a0 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  0 cor0..----..-2
315b0 30 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  01....onlyif mys
315c0 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
315d0 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
315e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
315f0 20 6c 61 62 65 6c 2d 31 30 35 38 0d 0a 53 45 4c   label-1058..SEL
31600 45 43 54 20 2b 20 43 41 53 54 28 20 28 20 2b 20  ECT + CAST( ( + 
31610 31 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20  1 ) AS SIGNED ) 
31620 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
31630 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
31640 0a 31 0d 0a 31 0d 0a 31 0d 0a 0d 0a 73 6b 69 70  .1..1..1....skip
31650 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
31660 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
31670 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
31680 2d 31 30 35 38 0d 0a 53 45 4c 45 43 54 20 2b 20  -1058..SELECT + 
31690 43 41 53 54 20 28 20 28 20 2b 20 31 20 29 20 41  CAST ( ( + 1 ) A
316a0 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 63  S INTEGER ) AS c
316b0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
316c0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a   cor0..----..1..
316d0 31 0d 0a 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20  1..1....query I 
316e0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
316f0 2d 20 2d 20 37 35 20 46 52 4f 4d 20 74 61 62 32  - - 75 FROM tab2
31700 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
31710 4f 54 20 2b 20 63 6f 6c 31 20 49 53 20 4e 4f 54  OT + col1 IS NOT
31720 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   NULL..----....o
31730 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
31740 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
31750 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
31760 74 20 6c 61 62 65 6c 2d 31 30 36 30 0d 0a 53 45  t label-1060..SE
31770 4c 45 43 54 20 2b 20 32 34 20 2b 20 2b 20 28 20  LECT + 24 + + ( 
31780 2d 20 2d 20 43 4f 55 4e 54 28 20 2b 20 2d 20 63  - - COUNT( + - c
31790 6f 6c 30 20 29 20 29 20 41 53 20 63 6f 6c 31 20  ol0 ) ) AS col1 
317a0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
317b0 30 0d 0a 2d 2d 2d 2d 0d 0a 32 37 0d 0a 0d 0a 73  0..----..27....s
317c0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
317d0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
317e0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
317f0 62 65 6c 2d 31 30 36 30 0d 0a 53 45 4c 45 43 54  bel-1060..SELECT
31800 20 2b 20 32 34 20 2b 20 2b 20 28 20 2d 20 2d 20   + 24 + + ( - - 
31810 43 4f 55 4e 54 20 28 20 2b 20 2d 20 63 6f 6c 30  COUNT ( + - col0
31820 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   ) ) AS col1 FRO
31830 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
31840 2d 2d 2d 2d 0d 0a 32 37 0d 0a 0d 0a 71 75 65 72  ----..27....quer
31850 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
31860 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 46  ECT ALL + col0 F
31870 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 2d  ROM tab0 WHERE -
31880 20 35 38 20 2a 20 63 6f 6c 30 20 2a 20 2b 20 2d   58 * col0 * + -
31890 20 38 33 20 49 4e 20 28 20 63 6f 6c 31 2c 20 34   83 IN ( col1, 4
318a0 35 20 2b 20 2b 20 63 6f 6c 30 20 29 0d 0a 2d 2d  5 + + col0 )..--
318b0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
318c0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
318d0 6c 30 20 2a 20 2d 20 63 6f 6c 32 20 2b 20 2d 20  l0 * - col2 + - 
318e0 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  + col1 FROM tab0
318f0 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 38 36 0d 0a 2d 38  ..----..-786..-8
31900 39 31 0d 0a 2d 39 36 30 34 0d 0a 0d 0a 6f 6e 6c  91..-9604....onl
31910 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
31920 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
31930 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
31940 6c 61 62 65 6c 2d 31 30 36 33 0d 0a 53 45 4c 45  label-1063..SELE
31950 43 54 20 33 31 20 2b 20 2b 20 43 4f 55 4e 54 28  CT 31 + + COUNT(
31960 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f   * ) AS col0 FRO
31970 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 34  M tab2..----..34
31980 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
31990 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
319a0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
319b0 72 74 20 6c 61 62 65 6c 2d 31 30 36 33 0d 0a 53  rt label-1063..S
319c0 45 4c 45 43 54 20 33 31 20 2b 20 2b 20 43 4f 55  ELECT 31 + + COU
319d0 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30  NT ( * ) AS col0
319e0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
319f0 0d 0a 33 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..34....onlyif m
31a00 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
31a10 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
31a20 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
31a30 2d 31 30 36 34 0d 0a 53 45 4c 45 43 54 20 41 4c  -1064..SELECT AL
31a40 4c 20 34 30 20 2b 20 2d 20 43 4f 55 4e 54 28 20  L 40 + - COUNT( 
31a50 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  * ) AS col0 FROM
31a60 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 37 0d   tab2..----..37.
31a70 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
31a80 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
31a90 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
31aa0 74 20 6c 61 62 65 6c 2d 31 30 36 34 0d 0a 53 45  t label-1064..SE
31ab0 4c 45 43 54 20 41 4c 4c 20 34 30 20 2b 20 2d 20  LECT ALL 40 + - 
31ac0 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63  COUNT ( * ) AS c
31ad0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol0 FROM tab2..-
31ae0 2d 2d 2d 0d 0a 33 37 0d 0a 0d 0a 71 75 65 72 79  ---..37....query
31af0 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
31b00 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 35  ECT DISTINCT - 5
31b10 37 2c 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  7, col0 FROM tab
31b20 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
31b30 0a 2d 35 37 0d 0a 34 36 0d 0a 2d 35 37 0d 0a 36  .-57..46..-57..6
31b40 34 0d 0a 2d 35 37 0d 0a 37 35 0d 0a 0d 0a 71 75  4..-57..75....qu
31b50 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
31b60 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
31b70 6f 6c 30 20 2b 20 2d 20 31 39 20 41 53 20 63 6f  ol0 + - 19 AS co
31b80 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
31b90 63 6f 72 30 20 57 48 45 52 45 20 2d 20 63 6f 6c  cor0 WHERE - col
31ba0 32 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  2 <> NULL..----.
31bb0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
31bc0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
31bd0 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
31be0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
31bf0 62 65 6c 2d 31 30 36 37 0d 0a 53 45 4c 45 43 54  bel-1067..SELECT
31c00 20 41 4c 4c 20 43 41 53 54 28 20 4e 55 4c 4c 20   ALL CAST( NULL 
31c10 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2b 20  AS SIGNED ) + + 
31c20 2b 20 63 6f 6c 30 20 2b 20 2b 20 31 35 20 46 52  + col0 + + 15 FR
31c30 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
31c40 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
31c50 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  L..NULL....skipi
31c60 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
31c70 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
31c80 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
31c90 31 30 36 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1067..SELECT ALL
31ca0 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
31cb0 49 4e 54 45 47 45 52 20 29 20 2b 20 2b 20 2b 20  INTEGER ) + + + 
31cc0 63 6f 6c 30 20 2b 20 2b 20 31 35 20 46 52 4f 4d  col0 + + 15 FROM
31cd0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
31ce0 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
31cf0 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
31d00 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
31d10 20 2d 20 2d 20 37 37 20 46 52 4f 4d 20 74 61 62   - - 77 FROM tab
31d20 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
31d30 28 20 4e 55 4c 4c 20 29 20 49 53 20 4e 55 4c 4c  ( NULL ) IS NULL
31d40 0d 0a 2d 2d 2d 2d 0d 0a 37 37 0d 0a 37 37 0d 0a  ..----..77..77..
31d50 37 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  77....onlyif mys
31d60 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
31d70 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
31d80 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
31d90 31 30 36 39 0d 0a 53 45 4c 45 43 54 20 2d 20 2d  1069..SELECT - -
31da0 20 37 32 20 63 6f 6c 32 2c 20 53 55 4d 28 20 63   72 col2, SUM( c
31db0 6f 6c 31 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ol1 ) AS col0 FR
31dc0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
31dd0 0a 2d 2d 2d 2d 0d 0a 37 32 0d 0a 36 36 0d 0a 0d  .----..72..66...
31de0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
31df0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
31e00 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
31e10 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
31e20 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
31e30 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
31e40 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
31e50 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
31e60 31 30 36 39 0d 0a 53 45 4c 45 43 54 20 2d 20 2d  1069..SELECT - -
31e70 20 37 32 20 63 6f 6c 32 2c 20 53 55 4d 20 28 20   72 col2, SUM ( 
31e80 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 30 20 46  col1 ) AS col0 F
31e90 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
31ea0 0d 0a 2d 2d 2d 2d 0d 0a 37 32 0d 0a 36 36 0d 0a  ..----..72..66..
31eb0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
31ec0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
31ed0 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  x: ..query II ro
31ee0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 37 30  wsort label-1070
31ef0 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54  ..SELECT - COUNT
31f00 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 2c 20 43  ( * ) AS col0, C
31f10 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c  OUNT( * ) AS col
31f20 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
31f30 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 33  or0..----..-3..3
31f40 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
31f50 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
31f60 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
31f70 6f 72 74 20 6c 61 62 65 6c 2d 31 30 37 30 0d 0a  ort label-1070..
31f80 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 20 28  SELECT - COUNT (
31f90 20 2a 20 29 20 41 53 20 63 6f 6c 30 2c 20 43 4f   * ) AS col0, CO
31fa0 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c  UNT ( * ) AS col
31fb0 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
31fc0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 33  or0..----..-3..3
31fd0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
31fe0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
31ff0 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
32000 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
32010 20 28 20 2b 20 2d 20 63 6f 6c 31 20 29 20 3d 20   ( + - col1 ) = 
32020 2d 20 33 35 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  - 35..----....on
32030 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
32040 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
32050 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
32060 20 6c 61 62 65 6c 2d 31 30 37 32 0d 0a 53 45 4c   label-1072..SEL
32070 45 43 54 20 2d 20 28 20 2d 20 39 20 29 20 2d 20  ECT - ( - 9 ) - 
32080 2b 20 43 4f 55 4e 54 28 20 2b 20 2b 20 32 20 29  + COUNT( + + 2 )
32090 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
320a0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 0d 0a 0d 0a 73  r0..----..6....s
320b0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
320c0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
320d0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
320e0 62 65 6c 2d 31 30 37 32 0d 0a 53 45 4c 45 43 54  bel-1072..SELECT
320f0 20 2d 20 28 20 2d 20 39 20 29 20 2d 20 2b 20 43   - ( - 9 ) - + C
32100 4f 55 4e 54 20 28 20 2b 20 2b 20 32 20 29 20 46  OUNT ( + + 2 ) F
32110 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
32120 0d 0a 2d 2d 2d 2d 0d 0a 36 0d 0a 0d 0a 71 75 65  ..----..6....que
32130 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
32140 4c 45 43 54 20 2b 20 36 30 20 2d 20 2b 20 28 20  LECT + 60 - + ( 
32150 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 32 20 46  col2 ) AS col2 F
32160 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
32170 2d 33 39 0d 0a 31 33 0d 0a 35 30 0d 0a 0d 0a 71  -39..13..50....q
32180 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
32190 0a 53 45 4c 45 43 54 20 31 35 20 2a 20 63 6f 6c  .SELECT 15 * col
321a0 32 20 2d 20 63 6f 6c 31 20 2a 20 63 6f 6c 30 2c  2 - col1 * col0,
321b0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
321c0 0a 2d 2d 2d 2d 0d 0a 2d 33 32 35 37 0d 0a 39 31  .----..-3257..91
321d0 0d 0a 34 36 30 0d 0a 38 35 0d 0a 37 32 36 0d 0a  ..460..85..726..
321e0 35 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  51....query I ro
321f0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
32200 2d 20 35 34 20 41 53 20 63 6f 6c 30 20 46 52 4f  - 54 AS col0 FRO
32210 4d 20 74 61 62 32 20 57 48 45 52 45 20 2d 20 63  M tab2 WHERE - c
32220 6f 6c 32 20 3c 3d 20 2d 20 2b 20 33 34 0d 0a 2d  ol2 <= - + 34..-
32230 2d 2d 2d 0d 0a 35 34 0d 0a 35 34 0d 0a 0d 0a 71  ---..54..54....q
32240 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
32250 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
32260 74 61 62 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  tab0 WHERE NULL 
32270 42 45 54 57 45 45 4e 20 35 31 20 41 4e 44 20 2b  BETWEEN 51 AND +
32280 20 33 32 20 2a 20 2d 20 28 20 2d 20 2d 20 36 31   32 * - ( - - 61
32290 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72   )..----....quer
322a0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
322b0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63  ECT DISTINCT - c
322c0 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol0 AS col0 FROM
322d0 20 74 61 62 30 20 57 48 45 52 45 20 2d 20 63 6f   tab0 WHERE - co
322e0 6c 30 20 2b 20 31 20 2a 20 2d 20 36 20 3e 3d 20  l0 + 1 * - 6 >= 
322f0 2d 20 2b 20 36 33 20 2b 20 2b 20 63 6f 6c 32 0d  - + 63 + + col2.
32300 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
32310 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
32320 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
32330 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
32340 6c 2d 31 30 37 38 0d 0a 53 45 4c 45 43 54 20 2d  l-1078..SELECT -
32350 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
32360 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 57 48  ol0 FROM tab1 WH
32370 45 52 45 20 28 20 4e 55 4c 4c 20 4e 4f 54 20 49  ERE ( NULL NOT I
32380 4e 20 28 20 2d 20 63 6f 6c 30 20 2a 20 63 6f 6c  N ( - col0 * col
32390 31 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a  1 ) )..----..0..
323a0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
323b0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
323c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
323d0 20 6c 61 62 65 6c 2d 31 30 37 38 0d 0a 53 45 4c   label-1078..SEL
323e0 45 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  ECT - COUNT ( * 
323f0 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
32400 61 62 31 20 57 48 45 52 45 20 28 20 4e 55 4c 4c  ab1 WHERE ( NULL
32410 20 4e 4f 54 20 49 4e 20 28 20 2d 20 63 6f 6c 30   NOT IN ( - col0
32420 20 2a 20 63 6f 6c 31 20 29 20 29 0d 0a 2d 2d 2d   * col1 ) )..---
32430 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -..0....query I 
32440 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
32450 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 28 20 2b  DISTINCT - + ( +
32460 20 63 6f 6c 32 20 29 20 2a 20 63 6f 6c 32 20 46   col2 ) * col2 F
32470 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d  ROM tab0 cor0..-
32480 2d 2d 2d 0d 0a 2d 31 30 30 0d 0a 2d 32 32 30 39  ---..-100..-2209
32490 0d 0a 2d 39 38 30 31 0d 0a 0d 0a 71 75 65 72 79  ..-9801....query
324a0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
324b0 43 54 20 2d 20 2d 20 32 33 20 2b 20 34 32 20 46  CT - - 23 + 42 F
324c0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
324d0 0d 0a 2d 2d 2d 2d 0d 0a 36 35 0d 0a 36 35 0d 0a  ..----..65..65..
324e0 36 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  65....query I ro
324f0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 28 20  wsort..SELECT ( 
32500 2b 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61  + col0 ) FROM ta
32510 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 2d  b2 WHERE NOT + -
32520 20 63 6f 6c 30 20 3d 20 2b 20 63 6f 6c 31 0d 0a   col0 = + col1..
32530 2d 2d 2d 2d 0d 0a 34 36 0d 0a 36 34 0d 0a 37 35  ----..46..64..75
32540 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
32550 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
32560 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
32570 62 31 20 57 48 45 52 45 20 2b 20 63 6f 6c 32 20  b1 WHERE + col2 
32580 4e 4f 54 20 49 4e 20 28 20 63 6f 6c 31 20 29 0d  NOT IN ( col1 ).
32590 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
325a0 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61  hashing to c6c0a
325b0 34 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31  4111b36d04dbc811
325c0 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71  a11e4d54cad....q
325d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
325e0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
325f0 2d 20 34 30 20 2a 20 36 34 20 46 52 4f 4d 20 74  - 40 * 64 FROM t
32600 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35 36 30  ab1..----..-2560
32610 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
32620 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
32630 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
32640 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
32650 61 62 65 6c 2d 31 30 38 34 0d 0a 53 45 4c 45 43  abel-1084..SELEC
32660 54 20 44 49 53 54 49 4e 43 54 20 2b 20 35 37 20  T DISTINCT + 57 
32670 44 49 56 20 63 6f 6c 31 20 63 6f 6c 32 20 46 52  DIV col1 col2 FR
32680 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30  OM tab2..----..0
32690 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..1....skipif my
326a0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
326b0 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
326c0 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
326d0 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
326e0 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
326f0 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
32700 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
32710 61 62 65 6c 2d 31 30 38 34 0d 0a 53 45 4c 45 43  abel-1084..SELEC
32720 54 20 44 49 53 54 49 4e 43 54 20 2b 20 35 37 20  T DISTINCT + 57 
32730 2f 20 63 6f 6c 31 20 63 6f 6c 32 20 46 52 4f 4d  / col1 col2 FROM
32740 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   tab2..----..0..
32750 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
32760 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
32770 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
32780 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
32790 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
327a0 74 20 6c 61 62 65 6c 2d 31 30 38 35 0d 0a 53 45  t label-1085..SE
327b0 4c 45 43 54 20 43 4f 55 4e 54 28 20 41 4c 4c 20  LECT COUNT( ALL 
327c0 2d 20 2b 20 43 41 53 54 28 20 2b 20 63 6f 6c 30  - + CAST( + col0
327d0 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20 46   AS SIGNED ) ) F
327e0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
327f0 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
32800 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
32810 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
32820 6f 72 74 20 6c 61 62 65 6c 2d 31 30 38 35 0d 0a  ort label-1085..
32830 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 41  SELECT COUNT ( A
32840 4c 4c 20 2d 20 2b 20 43 41 53 54 20 28 20 2b 20  LL - + CAST ( + 
32850 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45 52 20  col0 AS INTEGER 
32860 29 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ) ) FROM tab1..-
32870 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20  ---..3....query 
32880 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
32890 54 20 63 6f 6c 30 20 2d 20 2d 20 63 6f 6c 30 20  T col0 - - col0 
328a0 2b 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c  + + col1 + - col
328b0 30 20 2b 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20  0 + + col2 FROM 
328c0 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
328d0 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 4e 20 28  RE NOT NULL IN (
328e0 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   col0 )..----...
328f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
32900 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 37 36 20  ..SELECT ALL 76 
32910 2a 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31  * - col1 AS col1
32920 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
32930 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 36 34 0d  r0..----..-1064.
32940 0a 2d 33 35 37 32 0d 0a 2d 33 38 30 0d 0a 0d 0a  .-3572..-380....
32950 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
32960 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 37 38 2c  ..SELECT ALL 78,
32970 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 32   - col1 * - col2
32980 20 2b 20 2d 20 2b 20 63 6f 6c 31 20 2b 20 2d 20   + - + col1 + - 
32990 31 35 20 2a 20 2d 20 2d 20 33 20 2a 20 2b 20 36  15 * - - 3 * + 6
329a0 38 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  8 AS col2 FROM t
329b0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
329c0 2d 0d 0a 37 38 0d 0a 2d 31 39 33 38 0d 0a 37 38  -..78..-1938..78
329d0 0d 0a 2d 35 37 0d 0a 37 38 0d 0a 37 35 39 0d 0a  ..-57..78..759..
329e0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
329f0 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
32a00 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
32a10 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
32a20 62 65 6c 2d 31 30 38 39 0d 0a 53 45 4c 45 43 54  bel-1089..SELECT
32a30 20 2d 20 63 6f 6c 32 2c 20 63 6f 6c 31 20 44 49   - col2, col1 DI
32a40 56 20 35 33 20 41 53 20 63 6f 6c 31 20 46 52 4f  V 53 AS col1 FRO
32a50 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
32a60 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 30 0d 0a 2d 34  ----..-10..0..-4
32a70 37 0d 0a 31 0d 0a 2d 39 39 0d 0a 30 0d 0a 0d 0a  7..1..-99..0....
32a80 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
32a90 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
32aa0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
32ab0 6c 61 62 65 6c 2d 31 30 38 39 0d 0a 53 45 4c 45  label-1089..SELE
32ac0 43 54 20 2d 20 63 6f 6c 32 2c 20 63 6f 6c 31 20  CT - col2, col1 
32ad0 2f 20 35 33 20 41 53 20 63 6f 6c 31 20 46 52 4f  / 53 AS col1 FRO
32ae0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
32af0 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 30 0d 0a 2d 34  ----..-10..0..-4
32b00 37 0d 0a 31 0d 0a 2d 39 39 0d 0a 30 0d 0a 0d 0a  7..1..-99..0....
32b10 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
32b20 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
32b30 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
32b40 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
32b50 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
32b60 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
32b70 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 63 6f   DISTINCT + - co
32b80 6c 30 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  l0 col0 FROM tab
32b90 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
32ba0 4e 4f 54 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c  NOT col0 * - col
32bb0 31 20 3d 20 39 32 20 2a 20 63 6f 6c 30 0d 0a 2d  1 = 92 * col0..-
32bc0 2d 2d 2d 0d 0a 2d 34 36 0d 0a 2d 36 34 0d 0a 2d  ---..-46..-64..-
32bd0 37 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  75....query I ro
32be0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
32bf0 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20 46 52  STINCT + col0 FR
32c00 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
32c10 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20 3c  WHERE NOT col1 <
32c20 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d   col1..----..51.
32c30 0a 38 35 0d 0a 39 31 0d 0a 0d 0a 71 75 65 72 79  .85..91....query
32c40 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
32c50 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
32c60 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
32c70 2b 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c 20 4f  + col0 IS NULL O
32c80 52 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f  R NOT NULL IS NO
32c90 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20  T NULL..----..9 
32ca0 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
32cb0 6f 20 63 34 62 34 32 37 36 35 64 66 66 39 34 65  o c4b42765dff94e
32cc0 61 61 61 34 36 30 34 30 65 35 33 37 66 62 34 33  aaa46040e537fb43
32cd0 62 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  b7....query III 
32ce0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
32cf0 44 49 53 54 49 4e 43 54 20 33 30 2c 20 63 6f 6c  DISTINCT 30, col
32d00 32 2c 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74  2, + col2 FROM t
32d10 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  ab0..----..9 val
32d20 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 35  ues hashing to 5
32d30 65 62 34 64 39 65 66 35 33 63 65 38 62 32 30 62  eb4d9ef53ce8b20b
32d40 65 31 30 30 32 65 61 62 63 35 35 31 31 66 38 0d  e1002eabc5511f8.
32d50 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
32d60 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20  rt..SELECT col1 
32d70 2d 20 2b 20 36 36 20 46 52 4f 4d 20 74 61 62 31  - + 66 FROM tab1
32d80 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 2d 20 31   WHERE NOT - - 1
32d90 39 20 3c 3e 20 63 6f 6c 31 20 2b 20 2b 20 2b 20  9 <> col1 + + + 
32da0 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 30 0d 0a 2d  col1 + + col0..-
32db0 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  ---....skipif po
32dc0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
32dd0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
32de0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
32df0 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
32e00 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
32e10 0d 0a 53 45 4c 45 43 54 20 34 37 20 63 6f 6c 32  ..SELECT 47 col2
32e20 2c 20 28 20 2d 20 63 6f 6c 32 20 29 20 46 52 4f  , ( - col2 ) FRO
32e30 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
32e40 20 63 6f 6c 31 20 3d 20 4e 55 4c 4c 0d 0a 2d 2d   col1 = NULL..--
32e50 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
32e60 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
32e70 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
32e80 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
32e90 20 6c 61 62 65 6c 2d 31 30 39 36 0d 0a 53 45 4c   label-1096..SEL
32ea0 45 43 54 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c  ECT + CAST( NULL
32eb0 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2b   AS SIGNED ) + +
32ec0 20 2d 20 28 20 2d 20 35 30 20 29 20 2b 20 63 6f   - ( - 50 ) + co
32ed0 6c 32 20 2d 20 2b 20 63 6f 6c 32 20 46 52 4f 4d  l2 - + col2 FROM
32ee0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   tab2..----..NUL
32ef0 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
32f00 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
32f10 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
32f20 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
32f30 6c 61 62 65 6c 2d 31 30 39 36 0d 0a 53 45 4c 45  label-1096..SELE
32f40 43 54 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c  CT + CAST ( NULL
32f50 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20   AS INTEGER ) + 
32f60 2b 20 2d 20 28 20 2d 20 35 30 20 29 20 2b 20 63  + - ( - 50 ) + c
32f70 6f 6c 32 20 2d 20 2b 20 63 6f 6c 32 20 46 52 4f  ol2 - + col2 FRO
32f80 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab2..----..NU
32f90 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
32fa0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
32fb0 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
32fc0 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
32fd0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
32fe0 65 6c 2d 31 30 39 37 0d 0a 53 45 4c 45 43 54 20  el-1097..SELECT 
32ff0 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20  DISTINCT - col0 
33000 44 49 56 20 39 38 20 41 53 20 63 6f 6c 31 20 46  DIV 98 AS col1 F
33010 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
33020 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
33030 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
33040 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
33050 6f 72 74 20 6c 61 62 65 6c 2d 31 30 39 37 0d 0a  ort label-1097..
33060 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
33070 2d 20 63 6f 6c 30 20 2f 20 39 38 20 41 53 20 63  - col0 / 98 AS c
33080 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
33090 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ---..0....onlyif
330a0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
330b0 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
330c0 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  e: ..query II ro
330d0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 39 38  wsort label-1098
330e0 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 34 20 41  ..SELECT - - 4 A
330f0 53 20 63 6f 6c 30 2c 20 63 6f 6c 32 20 2d 20 28  S col0, col2 - (
33100 20 2d 20 2b 20 43 41 53 54 28 20 2b 20 63 6f 6c   - + CAST( + col
33110 31 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20  1 AS SIGNED ) ) 
33120 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  + col1 FROM tab1
33130 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
33140 34 0d 0a 31 32 34 0d 0a 34 0d 0a 31 36 32 0d 0a  4..124..4..162..
33150 34 0d 0a 36 39 0d 0a 0d 0a 73 6b 69 70 69 66 20  4..69....skipif 
33160 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
33170 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
33180 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
33190 30 39 38 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20  098..SELECT - - 
331a0 34 20 41 53 20 63 6f 6c 30 2c 20 63 6f 6c 32 20  4 AS col0, col2 
331b0 2d 20 28 20 2d 20 2b 20 43 41 53 54 20 28 20 2b  - ( - + CAST ( +
331c0 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45 52   col1 AS INTEGER
331d0 20 29 20 29 20 2b 20 63 6f 6c 31 20 46 52 4f 4d   ) ) + col1 FROM
331e0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
331f0 2d 2d 2d 0d 0a 34 0d 0a 31 32 34 0d 0a 34 0d 0a  ---..4..124..4..
33200 31 36 32 0d 0a 34 0d 0a 36 39 0d 0a 0d 0a 6f 6e  162..4..69....on
33210 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
33220 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44  regate syntax: D
33230 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
33240 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
33250 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
33260 2d 31 30 39 39 0d 0a 53 45 4c 45 43 54 20 41 4c  -1099..SELECT AL
33270 4c 20 2d 20 2b 20 31 32 20 44 49 56 20 2b 20 43  L - + 12 DIV + C
33280 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74  OUNT( * ) FROM t
33290 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
332a0 2d 0d 0a 2d 34 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..-4....skipif 
332b0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
332c0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
332d0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
332e0 39 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  99..SELECT ALL -
332f0 20 2b 20 31 32 20 2f 20 2b 20 43 4f 55 4e 54 20   + 12 / + COUNT 
33300 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ( * ) FROM tab2 
33310 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
33320 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  4....skipif post
33330 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
33340 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
33350 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
33360 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
33370 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
33380 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 30  ELECT ALL - col0
33390 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
333a0 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  cor0 WHERE NULL 
333b0 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
333c0 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  -....query III r
333d0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
333e0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
333f0 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  r0 WHERE NOT col
33400 32 20 2b 20 2b 20 2b 20 63 6f 6c 31 20 49 53 20  2 + + + col1 IS 
33410 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
33420 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
33430 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
33440 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
33450 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
33460 65 6c 2d 31 31 30 32 0d 0a 53 45 4c 45 43 54 20  el-1102..SELECT 
33470 44 49 53 54 49 4e 43 54 20 2b 20 43 41 53 54 28  DISTINCT + CAST(
33480 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
33490 29 20 2a 20 2d 20 63 6f 6c 31 20 2b 20 63 6f 6c  ) * - col1 + col
334a0 31 20 2b 20 2d 20 31 32 20 2a 20 2d 20 63 6f 6c  1 + - 12 * - col
334b0 32 20 2a 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 2b  2 * + col1 + + +
334c0 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52   col1 AS col2 FR
334d0 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d  OM tab0 cor0..--
334e0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
334f0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
33500 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
33510 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
33520 2d 31 31 30 32 0d 0a 53 45 4c 45 43 54 20 44 49  -1102..SELECT DI
33530 53 54 49 4e 43 54 20 2b 20 43 41 53 54 20 28 20  STINCT + CAST ( 
33540 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
33550 29 20 2a 20 2d 20 63 6f 6c 31 20 2b 20 63 6f 6c  ) * - col1 + col
33560 31 20 2b 20 2d 20 31 32 20 2a 20 2d 20 63 6f 6c  1 + - 12 * - col
33570 32 20 2a 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 2b  2 * + col1 + + +
33580 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52   col1 AS col2 FR
33590 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d  OM tab0 cor0..--
335a0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79  --..NULL....only
335b0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
335c0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
335d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
335e0 61 62 65 6c 2d 31 31 30 33 0d 0a 53 45 4c 45 43  abel-1103..SELEC
335f0 54 20 44 49 53 54 49 4e 43 54 20 53 55 4d 28 20  T DISTINCT SUM( 
33600 63 6f 6c 31 20 29 20 2b 20 2d 20 43 4f 55 4e 54  col1 ) + - COUNT
33610 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ( * ) AS col2 FR
33620 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 36  OM tab1..----..6
33630 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
33640 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
33650 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
33660 6f 72 74 20 6c 61 62 65 6c 2d 31 31 30 33 0d 0a  ort label-1103..
33670 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
33680 53 55 4d 20 28 20 63 6f 6c 31 20 29 20 2b 20 2d  SUM ( col1 ) + -
33690 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
336a0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col2 FROM tab1..
336b0 2d 2d 2d 2d 0d 0a 36 33 0d 0a 0d 0a 71 75 65 72  ----..63....quer
336c0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
336d0 45 43 54 20 41 4c 4c 20 2d 20 41 56 47 20 28 20  ECT ALL - AVG ( 
336e0 2d 20 2d 20 32 36 20 29 20 41 53 20 63 6f 6c 31  - - 26 ) AS col1
336f0 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
33700 20 4e 4f 54 20 2d 20 63 6f 6c 32 20 49 53 20 4e   NOT - col2 IS N
33710 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e  OT NULL..----..N
33720 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ULL....query I r
33730 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 30  owsort..SELECT 0
33740 20 2b 20 32 37 20 2a 20 2b 20 2d 20 28 20 2d 20   + 27 * + - ( - 
33750 2d 20 63 6f 6c 30 20 29 20 2a 20 2b 20 2d 20 63  - col0 ) * + - c
33760 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
33770 2d 2d 2d 0d 0a 31 33 33 30 35 36 0d 0a 31 33 35  ---..133056..135
33780 36 37 35 0d 0a 36 33 33 34 32 0d 0a 0d 0a 6f 6e  675..63342....on
33790 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
337a0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
337b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
337c0 20 6c 61 62 65 6c 2d 31 31 30 36 0d 0a 53 45 4c   label-1106..SEL
337d0 45 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a  ECT COUNT( * ) *
337e0 20 2d 20 38 20 2b 20 2d 20 43 4f 55 4e 54 28 20   - 8 + - COUNT( 
337f0 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  * ) AS col0 FROM
33800 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 37   tab1..----..-27
33810 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
33820 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
33830 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
33840 72 74 20 6c 61 62 65 6c 2d 31 31 30 36 0d 0a 53  rt label-1106..S
33850 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 2a 20  ELECT COUNT ( * 
33860 29 20 2a 20 2d 20 38 20 2b 20 2d 20 43 4f 55 4e  ) * - 8 + - COUN
33870 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20  T ( * ) AS col0 
33880 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
33890 0a 2d 32 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-27....query I 
338a0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
338b0 32 35 20 2b 20 2d 20 32 37 20 46 52 4f 4d 20 74  25 + - 27 FROM t
338c0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 2d  ab2..----..-2..-
338d0 32 0d 0a 2d 32 0d 0a 0d 0a 71 75 65 72 79 20 49  2..-2....query I
338e0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
338f0 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 2d 20 32 39   - col2 + + - 29
33900 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 37 31 20 2b   + col2 * + 71 +
33910 20 63 6f 6c 32 20 2b 20 2d 20 2b 20 63 6f 6c 30   col2 + - + col0
33920 20 2a 20 63 6f 6c 31 20 2a 20 2b 20 37 38 20 41   * col1 * + 78 A
33930 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
33940 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
33950 2d 32 38 39 39 30 0d 0a 2d 33 32 38 38 30 37 0d  -28990..-328807.
33960 0a 2d 34 38 39 30 35 0d 0a 0d 0a 6f 6e 6c 79 69  .-48905....onlyi
33970 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
33980 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
33990 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
339a0 62 65 6c 2d 31 31 30 39 0d 0a 53 45 4c 45 43 54  bel-1109..SELECT
339b0 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 43 4f   DISTINCT - + CO
339c0 55 4e 54 28 20 2d 20 63 6f 6c 32 20 29 20 2b 20  UNT( - col2 ) + 
339d0 31 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  11 FROM tab0 AS 
339e0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 0d 0a 0d  cor0..----..8...
339f0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
33a00 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
33a10 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
33a20 6c 61 62 65 6c 2d 31 31 30 39 0d 0a 53 45 4c 45  label-1109..SELE
33a30 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20  CT DISTINCT - + 
33a40 43 4f 55 4e 54 20 28 20 2d 20 63 6f 6c 32 20 29  COUNT ( - col2 )
33a50 20 2b 20 31 31 20 46 52 4f 4d 20 74 61 62 30 20   + 11 FROM tab0 
33a60 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38  AS cor0..----..8
33a70 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
33a80 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
33a90 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
33aa0 62 32 20 63 6f 72 30 20 57 48 45 52 45 20 28 20  b2 cor0 WHERE ( 
33ab0 2b 20 36 31 20 29 20 49 53 20 4e 4f 54 20 4e 55  + 61 ) IS NOT NU
33ac0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  LL..----..9 valu
33ad0 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35  es hashing to 75
33ae0 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63  c998aa53ac83218c
33af0 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a  bf2feb962d0a49..
33b00 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
33b10 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c  rt..SELECT + col
33b20 30 2c 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  0, col2 FROM tab
33b30 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
33b40 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  NULL IS NULL..--
33b50 2d 2d 0d 0a 35 31 0d 0a 39 36 0d 0a 38 35 0d 0a  --..51..96..85..
33b60 35 39 0d 0a 39 31 0d 0a 36 38 0d 0a 0d 0a 71 75  59..91..68....qu
33b70 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
33b80 45 4c 45 43 54 20 41 4c 4c 20 34 36 20 2f 20 2b  ELECT ALL 46 / +
33b90 20 63 6f 6c 32 20 2d 20 63 6f 6c 31 20 2a 20 2d   col2 - col1 * -
33ba0 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52   col1 AS col2 FR
33bb0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
33bc0 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 4f  WHERE NULL IS NO
33bd0 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  T NULL..----....
33be0 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
33bf0 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
33c00 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
33c10 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
33c20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
33c30 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
33c40 20 2b 20 2b 20 36 31 20 63 6f 6c 32 20 46 52 4f   + + 61 col2 FRO
33c50 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
33c60 2d 0d 0a 36 31 0d 0a 36 31 0d 0a 36 31 0d 0a 0d  -..61..61..61...
33c70 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
33c80 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
33c90 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  NCT * FROM tab2 
33ca0 57 48 45 52 45 20 2d 20 2b 20 63 6f 6c 30 20 3c  WHERE - + col0 <
33cb0 20 33 38 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c   38..----..9 val
33cc0 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37  ues hashing to 7
33cd0 35 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38  5c998aa53ac83218
33ce0 63 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d  cbf2feb962d0a49.
33cf0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
33d00 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
33d10 20 28 20 2b 20 2d 20 37 38 20 29 20 41 53 20 63   ( + - 78 ) AS c
33d20 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
33d30 2d 2d 2d 0d 0a 2d 37 38 0d 0a 2d 37 38 0d 0a 2d  ---..-78..-78..-
33d40 37 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  78....query I ro
33d50 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
33d60 53 54 49 4e 43 54 20 2d 20 2d 20 32 32 20 41 53  STINCT - - 22 AS
33d70 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
33d80 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  AS cor0..----..2
33d90 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  2....query III r
33da0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
33db0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
33dc0 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e  r0 WHERE NOT ( N
33dd0 4f 54 20 28 20 28 20 2d 20 2d 20 63 6f 6c 32 20  OT ( ( - - col2 
33de0 49 53 20 4e 4f 54 20 4e 55 4c 4c 20 29 20 29 20  IS NOT NULL ) ) 
33df0 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  )..----..9 value
33e00 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62  s hashing to c4b
33e10 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36  42765dff94eaaa46
33e20 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d  040e537fb43b7...
33e30 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
33e40 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 38  ..SELECT ALL + 8
33e50 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
33e60 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
33e70 61 62 30 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a  ab0 cor1..----..
33e80 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
33e90 20 74 6f 20 37 61 38 65 61 33 30 63 36 38 30 33   to 7a8ea30c6803
33ea0 61 65 64 64 63 35 66 63 61 35 62 35 38 32 31 64  aeddc5fca5b5821d
33eb0 38 32 36 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  8267....onlyif m
33ec0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
33ed0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
33ee0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
33ef0 2d 31 31 31 39 0d 0a 53 45 4c 45 43 54 20 41 4c  -1119..SELECT AL
33f00 4c 20 2d 20 53 55 4d 28 20 41 4c 4c 20 2d 20 38  L - SUM( ALL - 8
33f10 39 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  9 ) col0 FROM ta
33f20 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 36 37 0d 0a 0d  b0..----..267...
33f30 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
33f40 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
33f50 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
33f60 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
33f70 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
33f80 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
33f90 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
33fa0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
33fb0 31 31 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  119..SELECT ALL 
33fc0 2d 20 53 55 4d 20 28 20 41 4c 4c 20 2d 20 38 39  - SUM ( ALL - 89
33fd0 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   ) col0 FROM tab
33fe0 30 0d 0a 2d 2d 2d 2d 0d 0a 32 36 37 0d 0a 0d 0a  0..----..267....
33ff0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
34000 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
34010 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
34020 72 74 20 6c 61 62 65 6c 2d 31 31 32 30 0d 0a 53  rt label-1120..S
34030 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 2d 20 2b  ELECT COUNT( - +
34040 20 63 6f 6c 31 20 29 20 63 6f 6c 30 20 46 52 4f   col1 ) col0 FRO
34050 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  M tab1..----..3.
34060 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
34070 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
34080 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
34090 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
340a0 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
340b0 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
340c0 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
340d0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
340e0 2d 31 31 32 30 0d 0a 53 45 4c 45 43 54 20 43 4f  -1120..SELECT CO
340f0 55 4e 54 20 28 20 2d 20 2b 20 63 6f 6c 31 20 29  UNT ( - + col1 )
34100 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
34110 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79  .----..3....only
34120 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
34130 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
34140 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
34150 61 62 65 6c 2d 31 31 32 31 0d 0a 53 45 4c 45 43  abel-1121..SELEC
34160 54 20 43 4f 55 4e 54 28 20 2d 20 63 6f 6c 32 20  T COUNT( - col2 
34170 29 20 2a 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  ) * - COUNT( * )
34180 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
34190 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a  b1..----..-9....
341a0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
341b0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
341c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
341d0 61 62 65 6c 2d 31 31 32 31 0d 0a 53 45 4c 45 43  abel-1121..SELEC
341e0 54 20 43 4f 55 4e 54 20 28 20 2d 20 63 6f 6c 32  T COUNT ( - col2
341f0 20 29 20 2a 20 2d 20 43 4f 55 4e 54 20 28 20 2a   ) * - COUNT ( *
34200 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
34210 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a  tab1..----..-9..
34220 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
34230 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
34240 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
34250 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 32 32 0d  sort label-1122.
34260 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
34270 20 2b 20 30 20 2a 20 2b 20 2b 20 53 55 4d 28 20   + 0 * + + SUM( 
34280 2b 20 34 20 29 20 46 52 4f 4d 20 74 61 62 30 0d  + 4 ) FROM tab0.
34290 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .----..0....skip
342a0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
342b0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
342c0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
342d0 2d 31 31 32 32 0d 0a 53 45 4c 45 43 54 20 44 49  -1122..SELECT DI
342e0 53 54 49 4e 43 54 20 2b 20 30 20 2a 20 2b 20 2b  STINCT + 0 * + +
342f0 20 53 55 4d 20 28 20 2b 20 34 20 29 20 46 52 4f   SUM ( + 4 ) FRO
34300 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab0..----..0.
34310 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
34320 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44  # CAST syntax: D
34330 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 44 49 56  ECIMAL type: DIV
34340 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
34350 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
34360 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
34370 31 31 32 33 0d 0a 53 45 4c 45 43 54 20 2d 20 63  1123..SELECT - c
34380 6f 6c 30 20 2a 20 2d 20 2b 20 43 41 53 54 28 20  ol0 * - + CAST( 
34390 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20  NULL AS DECIMAL 
343a0 29 20 44 49 56 20 63 6f 6c 31 20 41 53 20 63 6f  ) DIV col1 AS co
343b0 6c 32 2c 20 2d 20 63 6f 6c 30 20 44 49 56 20 36  l2, - col0 DIV 6
343c0 35 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  5 AS col2 FROM t
343d0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab1..----..NULL.
343e0 0a 2d 31 0d 0a 4e 55 4c 4c 0d 0a 2d 31 0d 0a 4e  .-1..NULL..-1..N
343f0 55 4c 4c 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  ULL..0....skipif
34400 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
34410 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
34420 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
34430 31 31 32 33 0d 0a 53 45 4c 45 43 54 20 2d 20 63  1123..SELECT - c
34440 6f 6c 30 20 2a 20 2d 20 2b 20 43 41 53 54 20 28  ol0 * - + CAST (
34450 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20   NULL AS REAL ) 
34460 2f 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 2c 20  / col1 AS col2, 
34470 2d 20 63 6f 6c 30 20 2f 20 36 35 20 41 53 20 63  - col0 / 65 AS c
34480 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol2 FROM tab1..-
34490 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 2d 31 0d 0a 4e  ---..NULL..-1..N
344a0 55 4c 4c 0d 0a 2d 31 0d 0a 4e 55 4c 4c 0d 0a 30  ULL..-1..NULL..0
344b0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
344c0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
344d0 38 31 20 2a 20 2d 20 63 6f 6c 32 20 46 52 4f 4d  81 * - col2 FROM
344e0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 38   tab0..----..-38
344f0 30 37 0d 0a 2d 38 30 31 39 0d 0a 2d 38 31 30 0d  07..-8019..-810.
34500 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
34510 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
34520 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
34530 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
34540 62 65 6c 2d 31 31 32 35 0d 0a 53 45 4c 45 43 54  bel-1125..SELECT
34550 20 2d 20 43 41 53 54 28 20 2d 20 2b 20 63 6f 6c   - CAST( - + col
34560 31 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53  1 AS SIGNED ) AS
34570 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
34580 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49  WHERE NOT NULL I
34590 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
345a0 0d 0a 35 31 0d 0a 36 37 0d 0a 37 37 0d 0a 0d 0a  ..51..67..77....
345b0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
345c0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
345d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
345e0 61 62 65 6c 2d 31 31 32 35 0d 0a 53 45 4c 45 43  abel-1125..SELEC
345f0 54 20 2d 20 43 41 53 54 20 28 20 2d 20 2b 20 63  T - CAST ( - + c
34600 6f 6c 31 20 41 53 20 49 4e 54 45 47 45 52 20 29  ol1 AS INTEGER )
34610 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
34620 62 32 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  b2 WHERE NOT NUL
34630 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  L IS NOT NULL..-
34640 2d 2d 2d 0d 0a 35 31 0d 0a 36 37 0d 0a 37 37 0d  ---..51..67..77.
34650 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
34660 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
34670 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
34680 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
34690 62 65 6c 2d 31 31 32 36 0d 0a 53 45 4c 45 43 54  bel-1126..SELECT
346a0 20 28 20 2d 20 2d 20 63 6f 6c 30 20 29 20 2a 20   ( - - col0 ) * 
346b0 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  + CAST( NULL AS 
346c0 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61  SIGNED ) FROM ta
346d0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b2..----..NULL..
346e0 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  NULL..NULL....sk
346f0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
34700 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
34710 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
34720 65 6c 2d 31 31 32 36 0d 0a 53 45 4c 45 43 54 20  el-1126..SELECT 
34730 28 20 2d 20 2d 20 63 6f 6c 30 20 29 20 2a 20 2b  ( - - col0 ) * +
34740 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
34750 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74  INTEGER ) FROM t
34760 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab2..----..NULL.
34770 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  .NULL..NULL....q
34780 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
34790 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2a 20  SELECT + col2 * 
347a0 36 36 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  66 AS col2 FROM 
347b0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 38 39 34  tab1..----..3894
347c0 0d 0a 34 34 38 38 0d 0a 36 33 33 36 0d 0a 0d 0a  ..4488..6336....
347d0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
347e0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
347f0 20 35 34 20 2a 20 33 33 20 2b 20 2b 20 63 6f 6c   54 * 33 + + col
34800 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  2 AS col2 FROM t
34810 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37 39 32 0d  ab0..----..1792.
34820 0a 31 38 32 39 0d 0a 31 38 38 31 0d 0a 0d 0a 6f  .1829..1881....o
34830 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
34840 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
34850 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
34860 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
34870 31 31 32 39 0d 0a 53 45 4c 45 43 54 20 2b 20 28  1129..SELECT + (
34880 20 2d 20 31 39 20 29 20 2b 20 36 30 20 44 49 56   - 19 ) + 60 DIV
34890 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20   + col2 AS col0 
348a0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
348b0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 0d 0a 2d 31  0..----..-13..-1
348c0 38 0d 0a 2d 31 39 0d 0a 0d 0a 73 6b 69 70 69 66  8..-19....skipif
348d0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
348e0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
348f0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
34900 31 32 39 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20  129..SELECT + ( 
34910 2d 20 31 39 20 29 20 2b 20 36 30 20 2f 20 2b 20  - 19 ) + 60 / + 
34920 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f  col2 AS col0 FRO
34930 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
34940 2d 2d 2d 2d 0d 0a 2d 31 33 0d 0a 2d 31 38 0d 0a  ----..-13..-18..
34950 2d 31 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -19....onlyif my
34960 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
34970 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
34980 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
34990 31 31 33 30 0d 0a 53 45 4c 45 43 54 20 43 4f 55  1130..SELECT COU
349a0 4e 54 28 20 2a 20 29 20 2b 20 2d 20 38 34 20 2b  NT( * ) + - 84 +
349b0 20 2b 20 2b 20 4d 41 58 28 20 2d 20 2d 20 35 38   + + MAX( - - 58
349c0 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
349d0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d  tab0..----..-23.
349e0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
349f0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
34a00 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
34a10 74 20 6c 61 62 65 6c 2d 31 31 33 30 0d 0a 53 45  t label-1130..SE
34a20 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29  LECT COUNT ( * )
34a30 20 2b 20 2d 20 38 34 20 2b 20 2b 20 2b 20 4d 41   + - 84 + + + MA
34a40 58 20 28 20 2d 20 2d 20 35 38 20 29 20 41 53 20  X ( - - 58 ) AS 
34a50 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
34a60 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a 0d 0a 73 6b 69  ----..-23....ski
34a70 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
34a80 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
34a90 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
34aa0 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
34ab0 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
34ac0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
34ad0 53 54 49 4e 43 54 20 32 20 63 6f 6c 31 20 46 52  STINCT 2 col1 FR
34ae0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32  OM tab0..----..2
34af0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
34b00 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
34b10 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
34b20 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
34b30 61 62 65 6c 2d 31 31 33 32 0d 0a 53 45 4c 45 43  abel-1132..SELEC
34b40 54 20 2b 20 2d 20 33 32 20 44 49 56 20 2d 20 2d  T + - 32 DIV - -
34b50 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52   col2 AS col1 FR
34b60 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
34b70 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 30 0d 0a 30 0d  .----..-1..0..0.
34b80 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
34b90 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
34ba0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
34bb0 74 20 6c 61 62 65 6c 2d 31 31 33 32 0d 0a 53 45  t label-1132..SE
34bc0 4c 45 43 54 20 2b 20 2d 20 33 32 20 2f 20 2d 20  LECT + - 32 / - 
34bd0 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46  - col2 AS col1 F
34be0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
34bf0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 30 0d 0a 30  ..----..-1..0..0
34c00 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
34c10 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
34c20 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
34c30 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33  owsort label-113
34c40 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f  3..SELECT ALL CO
34c50 55 4e 54 28 20 2a 20 29 20 2a 20 38 34 20 41 53  UNT( * ) * 84 AS
34c60 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
34c70 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 35 32 0d  cor0..----..252.
34c80 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
34c90 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
34ca0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
34cb0 74 20 6c 61 62 65 6c 2d 31 31 33 33 0d 0a 53 45  t label-1133..SE
34cc0 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20 28  LECT ALL COUNT (
34cd0 20 2a 20 29 20 2a 20 38 34 20 41 53 20 63 6f 6c   * ) * 84 AS col
34ce0 31 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  1 FROM tab1 cor0
34cf0 0d 0a 2d 2d 2d 2d 0d 0a 32 35 32 0d 0a 0d 0a 6f  ..----..252....o
34d00 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
34d10 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
34d20 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
34d30 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
34d40 31 31 33 34 0d 0a 53 45 4c 45 43 54 20 44 49 53  1134..SELECT DIS
34d50 54 49 4e 43 54 20 2b 20 31 33 20 2b 20 63 6f 6c  TINCT + 13 + col
34d60 31 20 2b 20 2d 20 2b 20 63 6f 6c 32 20 2b 20 2d  1 + - + col2 + -
34d70 20 63 6f 6c 31 20 2d 20 2d 20 63 6f 6c 30 20 2b   col1 - - col0 +
34d80 20 2d 20 43 41 53 54 28 20 2d 20 2b 20 63 6f 6c   - CAST( - + col
34d90 30 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53  0 AS SIGNED ) AS
34da0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
34db0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
34dc0 34 0d 0a 31 30 38 0d 0a 31 37 37 0d 0a 0d 0a 73  4..108..177....s
34dd0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
34de0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
34df0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
34e00 62 65 6c 2d 31 31 33 34 0d 0a 53 45 4c 45 43 54  bel-1134..SELECT
34e10 20 44 49 53 54 49 4e 43 54 20 2b 20 31 33 20 2b   DISTINCT + 13 +
34e20 20 63 6f 6c 31 20 2b 20 2d 20 2b 20 63 6f 6c 32   col1 + - + col2
34e30 20 2b 20 2d 20 63 6f 6c 31 20 2d 20 2d 20 63 6f   + - col1 - - co
34e40 6c 30 20 2b 20 2d 20 43 41 53 54 20 28 20 2d 20  l0 + - CAST ( - 
34e50 2b 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45  + col0 AS INTEGE
34e60 52 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  R ) AS col0 FROM
34e70 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
34e80 2d 2d 2d 0d 0a 2d 34 0d 0a 31 30 38 0d 0a 31 37  ---..-4..108..17
34e90 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  7....onlyif mysq
34ea0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
34eb0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
34ec0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
34ed0 33 35 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55  35..SELECT - COU
34ee0 4e 54 28 20 41 4c 4c 20 2d 20 2b 20 63 6f 6c 32  NT( ALL - + col2
34ef0 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   ) col2 FROM tab
34f00 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
34f10 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .-3....skipif my
34f20 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
34f30 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
34f40 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
34f50 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
34f60 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
34f70 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
34f80 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
34f90 61 62 65 6c 2d 31 31 33 35 0d 0a 53 45 4c 45 43  abel-1135..SELEC
34fa0 54 20 2d 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20  T - COUNT ( ALL 
34fb0 2d 20 2b 20 63 6f 6c 32 20 29 20 63 6f 6c 32 20  - + col2 ) col2 
34fc0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
34fd0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 71  0..----..-3....q
34fe0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
34ff0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
35000 20 2b 20 2d 20 34 31 20 41 53 20 63 6f 6c 30 2c   + - 41 AS col0,
35010 20 28 20 2b 20 63 6f 6c 31 20 29 20 41 53 20 63   ( + col1 ) AS c
35020 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
35030 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 32   cor0 WHERE col2
35040 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 49 53 20 4e   * - - col0 IS N
35050 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
35060 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
35070 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 35 33 20  LECT ALL + - 53 
35080 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
35090 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
350a0 0a 2d 35 33 0d 0a 2d 35 33 0d 0a 2d 35 33 0d 0a  .-53..-53..-53..
350b0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
350c0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
350d0 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  INCT * FROM tab2
350e0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
350f0 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  ULL NOT BETWEEN 
35100 4e 55 4c 4c 20 41 4e 44 20 35 37 20 2b 20 2d 20  NULL AND 57 + - 
35110 63 6f 6c 30 20 2a 20 2b 20 2b 20 63 6f 6c 32 0d  col0 * + + col2.
35120 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
35130 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
35140 20 2b 20 63 6f 6c 32 20 2d 20 2d 20 2d 20 63 6f   + col2 - - - co
35150 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
35160 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30  cor0..----..0..0
35170 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ..0....query I r
35180 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
35190 4c 4c 20 63 6f 6c 31 20 2b 20 28 20 2b 20 2d 20  LL col1 + ( + - 
351a0 39 39 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41  99 ) FROM tab2 A
351b0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  S cor0..----..-2
351c0 32 0d 0a 2d 33 32 0d 0a 2d 34 38 0d 0a 0d 0a 73  2..-32..-48....s
351d0 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
351e0 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
351f0 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
35200 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
35210 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
35220 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
35230 2b 20 2b 20 63 6f 6c 32 20 2d 20 2d 20 2b 20 35  + + col2 - - + 5
35240 36 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  6 col2 FROM tab2
35250 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
35260 31 31 34 0d 0a 37 39 0d 0a 39 36 0d 0a 0d 0a 71  114..79..96....q
35270 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
35280 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
35290 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  T * FROM tab1 co
352a0 72 30 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20  r0 WHERE ( NULL 
352b0 49 53 20 4e 4f 54 20 4e 55 4c 4c 20 29 0d 0a 2d  IS NOT NULL )..-
352c0 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
352d0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
352e0 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 2b 20 2d  ISTINCT col0 + -
352f0 20 34 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d   41 FROM tab1..-
35300 2d 2d 2d 0d 0a 31 30 0d 0a 34 34 0d 0a 35 30 0d  ---..10..44..50.
35310 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
35320 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
35330 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
35340 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 34 34  wsort label-1144
35350 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54  ..SELECT + COUNT
35360 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ( * ) FROM tab2 
35370 57 48 45 52 45 20 38 36 20 49 53 20 4e 4f 54 20  WHERE 86 IS NOT 
35380 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d  NULL..----..3...
35390 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
353a0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
353b0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
353c0 6c 61 62 65 6c 2d 31 31 34 34 0d 0a 53 45 4c 45  label-1144..SELE
353d0 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29  CT + COUNT ( * )
353e0 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
353f0 20 38 36 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d   86 IS NOT NULL.
35400 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72  .----..3....quer
35410 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
35420 45 43 54 20 2b 20 2d 20 36 37 20 2a 20 63 6f 6c  ECT + - 67 * col
35430 30 20 2a 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f  0 * - col1 AS co
35440 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
35450 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b  cor0 WHERE NOT +
35460 20 63 6f 6c 30 20 2b 20 2b 20 39 38 20 49 53 20   col0 + + 98 IS 
35470 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
35480 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
35490 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
354a0 2b 20 39 35 20 41 53 20 63 6f 6c 32 20 46 52 4f  + 95 AS col2 FRO
354b0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
354c0 2d 2d 2d 2d 0d 0a 39 35 0d 0a 39 35 0d 0a 39 35  ----..95..95..95
354d0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
354e0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
354f0 49 4e 43 54 20 2d 20 31 38 20 46 52 4f 4d 20 74  INCT - 18 FROM t
35500 61 62 32 20 63 6f 72 30 20 57 48 45 52 45 20 4e  ab2 cor0 WHERE N
35510 55 4c 4c 20 3e 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d  ULL > col1..----
35520 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
35530 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
35540 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
35550 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
35560 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
35570 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
35580 4c 45 43 54 20 2b 20 28 20 2b 20 2d 20 35 31 20  LECT + ( + - 51 
35590 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  ) col2 FROM tab1
355a0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
355b0 2d 35 31 0d 0a 2d 35 31 0d 0a 2d 35 31 0d 0a 0d  -51..-51..-51...
355c0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
355d0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
355e0 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  NCT * FROM tab2 
355f0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
35600 54 20 2b 20 63 6f 6c 32 20 4e 4f 54 20 42 45 54  T + col2 NOT BET
35610 57 45 45 4e 20 2b 20 63 6f 6c 31 20 41 4e 44 20  WEEN + col1 AND 
35620 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
35630 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
35640 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
35650 20 35 37 20 2a 20 2b 20 63 6f 6c 32 20 41 53 20   57 * + col2 AS 
35660 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col1 FROM tab1..
35670 2d 2d 2d 2d 0d 0a 33 33 36 33 0d 0a 33 38 37 36  ----..3363..3876
35680 0d 0a 35 34 37 32 0d 0a 0d 0a 71 75 65 72 79 20  ..5472....query 
35690 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
356a0 54 20 2d 20 34 35 20 2a 20 2d 20 34 36 20 41 53  T - 45 * - 46 AS
356b0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
356c0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  AS cor0..----..2
356d0 30 37 30 0d 0a 32 30 37 30 0d 0a 32 30 37 30 0d  070..2070..2070.
356e0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
356f0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
35700 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
35710 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
35720 61 62 65 6c 2d 31 31 35 32 0d 0a 53 45 4c 45 43  abel-1152..SELEC
35730 54 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 2c 20  T col2 AS col2, 
35740 2b 20 63 6f 6c 31 20 2f 20 2d 20 2b 20 38 36 20  + col1 / - + 86 
35750 2a 20 2d 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 43  * - - col2 * - C
35760 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
35770 4e 45 44 20 29 20 41 53 20 63 6f 6c 31 20 46 52  NED ) AS col1 FR
35780 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
35790 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 4e 55 4c 4c 0d  .----..23..NULL.
357a0 0a 34 30 0d 0a 4e 55 4c 4c 0d 0a 35 38 0d 0a 4e  .40..NULL..58..N
357b0 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
357c0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
357d0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72  ible..query II r
357e0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 35  owsort label-115
357f0 32 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 41  2..SELECT col2 A
35800 53 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c 31 20 2f  S col2, + col1 /
35810 20 2d 20 2b 20 38 36 20 2a 20 2d 20 2d 20 63 6f   - + 86 * - - co
35820 6c 32 20 2a 20 2d 20 43 41 53 54 20 28 20 4e 55  l2 * - CAST ( NU
35830 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
35840 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
35850 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
35860 0a 32 33 0d 0a 4e 55 4c 4c 0d 0a 34 30 0d 0a 4e  .23..NULL..40..N
35870 55 4c 4c 0d 0a 35 38 0d 0a 4e 55 4c 4c 0d 0a 0d  ULL..58..NULL...
35880 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
35890 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
358a0 54 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 34 38 20  T + col1 * - 48 
358b0 2a 20 2b 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 63  * + - col1 + + c
358c0 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol2 AS col2 FROM
358d0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
358e0 2d 2d 2d 0d 0a 31 32 34 38 37 31 0d 0a 32 31 35  ---..124871..215
358f0 35 33 30 0d 0a 32 38 34 36 33 32 0d 0a 0d 0a 71  530..284632....q
35900 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
35910 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 36  SELECT ALL + - 6
35920 39 20 2b 20 2d 20 2d 20 63 6f 6c 30 20 41 53 20  9 + - - col0 AS 
35930 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
35940 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
35950 38 0d 0a 31 36 0d 0a 32 32 0d 0a 0d 0a 6f 6e 6c  8..16..22....onl
35960 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
35970 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
35980 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
35990 6c 61 62 65 6c 2d 31 31 35 35 0d 0a 53 45 4c 45  label-1155..SELE
359a0 43 54 20 4d 49 4e 28 20 44 49 53 54 49 4e 43 54  CT MIN( DISTINCT
359b0 20 63 6f 6c 30 20 29 20 63 6f 6c 31 20 46 52 4f   col0 ) col1 FRO
359c0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
359d0 2d 2d 2d 2d 0d 0a 34 36 0d 0a 0d 0a 73 6b 69 70  ----..46....skip
359e0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
359f0 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
35a00 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
35a10 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
35a20 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
35a30 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
35a40 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
35a50 6f 72 74 20 6c 61 62 65 6c 2d 31 31 35 35 0d 0a  ort label-1155..
35a60 53 45 4c 45 43 54 20 4d 49 4e 20 28 20 44 49 53  SELECT MIN ( DIS
35a70 54 49 4e 43 54 20 63 6f 6c 30 20 29 20 63 6f 6c  TINCT col0 ) col
35a80 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
35a90 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 0d  or0..----..46...
35aa0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
35ab0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b  ..SELECT ALL + +
35ac0 20 33 33 20 2a 20 2b 20 63 6f 6c 31 20 2b 20 2d   33 * + col1 + -
35ad0 20 63 6f 6c 30 20 2b 20 63 6f 6c 32 20 46 52 4f   col0 + col2 FRO
35ae0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
35af0 2d 2d 2d 2d 0d 0a 31 33 39 0d 0a 31 35 32 38 0d  ----..139..1528.
35b00 0a 35 30 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .507....onlyif m
35b10 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
35b20 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
35b30 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
35b40 2d 31 31 35 37 0d 0a 53 45 4c 45 43 54 20 41 4c  -1157..SELECT AL
35b50 4c 20 2d 20 4d 49 4e 28 20 63 6f 6c 31 20 29 20  L - MIN( col1 ) 
35b60 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
35b70 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
35b80 0a 2d 35 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-51....skipif m
35b90 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
35ba0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
35bb0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 35  owsort label-115
35bc0 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  7..SELECT ALL - 
35bd0 4d 49 4e 20 28 20 63 6f 6c 31 20 29 20 41 53 20  MIN ( col1 ) AS 
35be0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
35bf0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  S cor0..----..-5
35c00 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
35c10 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
35c20 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
35c30 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
35c40 35 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  58..SELECT ALL -
35c50 20 4d 49 4e 28 20 2b 20 31 37 20 29 20 46 52 4f   MIN( + 17 ) FRO
35c60 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab2..----..-1
35c70 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  7....skipif mysq
35c80 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
35c90 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
35ca0 6f 72 74 20 6c 61 62 65 6c 2d 31 31 35 38 0d 0a  ort label-1158..
35cb0 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 4d 49 4e  SELECT ALL - MIN
35cc0 20 28 20 2b 20 31 37 20 29 20 46 52 4f 4d 20 74   ( + 17 ) FROM t
35cd0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37 0d 0a  ab2..----..-17..
35ce0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
35cf0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 31 31  t..SELECT ALL 11
35d00 20 2a 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c   * - col2 AS col
35d10 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
35d20 2d 0d 0a 2d 31 30 35 36 0d 0a 2d 36 34 39 0d 0a  -..-1056..-649..
35d30 2d 37 34 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -748....onlyif m
35d40 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
35d50 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
35d60 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
35d70 2d 31 31 36 30 0d 0a 53 45 4c 45 43 54 20 43 4f  -1160..SELECT CO
35d80 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20 43 4f 55  UNT( * ) * + COU
35d90 4e 54 28 20 2a 20 29 20 2b 20 2d 20 2b 20 43 4f  NT( * ) + - + CO
35da0 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
35db0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 36 0d 0a 0d 0a 73  b2..----..6....s
35dc0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
35dd0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
35de0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
35df0 62 65 6c 2d 31 31 36 30 0d 0a 53 45 4c 45 43 54  bel-1160..SELECT
35e00 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2b   COUNT ( * ) * +
35e10 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2d   COUNT ( * ) + -
35e20 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46   + COUNT ( * ) F
35e30 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
35e40 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  6....query I row
35e50 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
35e60 31 20 2a 20 32 20 46 52 4f 4d 20 74 61 62 32 0d  1 * 2 FROM tab2.
35e70 0a 2d 2d 2d 2d 0d 0a 31 30 32 0d 0a 31 33 34 0d  .----..102..134.
35e80 0a 31 35 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .154....query I 
35e90 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
35ea0 2d 20 63 6f 6c 32 20 2a 20 63 6f 6c 32 20 41 53  - col2 * col2 AS
35eb0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
35ec0 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 4f  WHERE NULL IS NO
35ed0 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  T NULL..----....
35ee0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
35ef0 0a 53 45 4c 45 43 54 20 2d 20 36 31 20 41 53 20  .SELECT - 61 AS 
35f00 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 57  col1 FROM tab2 W
35f10 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 3e 20  HERE ( NULL ) > 
35f20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
35f30 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
35f40 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
35f50 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
35f60 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
35f70 31 36 34 0d 0a 53 45 4c 45 43 54 20 39 35 20 44  164..SELECT 95 D
35f80 49 56 20 36 38 20 41 53 20 63 6f 6c 32 20 46 52  IV 68 AS col2 FR
35f90 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab1..----..1
35fa0 0d 0a 31 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66  ..1..1....skipif
35fb0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
35fc0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
35fd0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
35fe0 31 36 34 0d 0a 53 45 4c 45 43 54 20 39 35 20 2f  164..SELECT 95 /
35ff0 20 36 38 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   68 AS col2 FROM
36000 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a   tab1..----..1..
36010 31 0d 0a 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  1..1....onlyif m
36020 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
36030 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
36040 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
36050 2d 31 31 36 35 0d 0a 53 45 4c 45 43 54 20 2b 20  -1165..SELECT + 
36060 2d 20 4d 41 58 28 20 41 4c 4c 20 2b 20 63 6f 6c  - MAX( ALL + col
36070 31 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  1 ) AS col2 FROM
36080 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
36090 2d 2d 2d 0d 0a 2d 38 31 0d 0a 0d 0a 73 6b 69 70  ---..-81....skip
360a0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
360b0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
360c0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
360d0 2d 31 31 36 35 0d 0a 53 45 4c 45 43 54 20 2b 20  -1165..SELECT + 
360e0 2d 20 4d 41 58 20 28 20 41 4c 4c 20 2b 20 63 6f  - MAX ( ALL + co
360f0 6c 31 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  l1 ) AS col2 FRO
36100 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
36110 2d 2d 2d 2d 0d 0a 2d 38 31 0d 0a 0d 0a 73 6b 69  ----..-81....ski
36120 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
36130 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
36140 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
36150 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
36160 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72  umns..query II r
36170 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
36180 49 53 54 49 4e 43 54 20 36 31 20 2b 20 2d 20 63  ISTINCT 61 + - c
36190 6f 6c 32 20 41 53 20 63 6f 6c 31 2c 20 2d 20 63  ol2 AS col1, - c
361a0 6f 6c 32 20 2b 20 63 6f 6c 30 20 63 6f 6c 32 20  ol2 + col0 col2 
361b0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
361c0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 38 0d 0a 2d 32  0..----..-38..-2
361d0 0d 0a 31 34 0d 0a 2d 33 32 0d 0a 35 31 0d 0a 37  ..14..-32..51..7
361e0 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  7....onlyif mysq
361f0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
36200 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
36210 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
36220 36 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  67..SELECT DISTI
36230 4e 43 54 20 2d 20 4d 41 58 28 20 41 4c 4c 20 2b  NCT - MAX( ALL +
36240 20 2b 20 37 38 20 29 20 2b 20 32 38 20 46 52 4f   + 78 ) + 28 FRO
36250 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
36260 2d 2d 2d 2d 0d 0a 2d 35 30 0d 0a 0d 0a 73 6b 69  ----..-50....ski
36270 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
36280 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
36290 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
362a0 6c 2d 31 31 36 37 0d 0a 53 45 4c 45 43 54 20 44  l-1167..SELECT D
362b0 49 53 54 49 4e 43 54 20 2d 20 4d 41 58 20 28 20  ISTINCT - MAX ( 
362c0 41 4c 4c 20 2b 20 2b 20 37 38 20 29 20 2b 20 32  ALL + + 78 ) + 2
362d0 38 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  8 FROM tab1 AS c
362e0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 30 0d 0a  or0..----..-50..
362f0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
36300 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
36310 43 54 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  CT col0 FROM tab
36320 30 20 57 48 45 52 45 20 2d 20 63 6f 6c 31 20 4e  0 WHERE - col1 N
36330 4f 54 20 42 45 54 57 45 45 4e 20 2d 20 2b 20 63  OT BETWEEN - + c
36340 6f 6c 32 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d  ol2 AND NULL..--
36350 2d 2d 0d 0a 31 35 0d 0a 38 37 0d 0a 0d 0a 71 75  --..15..87....qu
36360 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
36370 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2d 20 2b  ELECT - col0 - +
36380 20 37 32 20 2b 20 2d 20 2b 20 31 38 20 2a 20 2b   72 + - + 18 * +
36390 20 34 38 20 2b 20 2b 20 63 6f 6c 31 20 41 53 20   48 + + col1 AS 
363a0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
363b0 2d 2d 2d 2d 0d 0a 2d 31 30 30 32 0d 0a 2d 31 30  ----..-1002..-10
363c0 33 32 0d 0a 2d 38 37 30 0d 0a 0d 0a 71 75 65 72  32..-870....quer
363d0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
363e0 45 43 54 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  ECT col1 FROM ta
363f0 62 31 20 57 48 45 52 45 20 28 20 2d 20 2d 20 63  b1 WHERE ( - - c
36400 6f 6c 30 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d  ol0 ) IS NULL..-
36410 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
36420 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
36430 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
36440 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
36450 31 31 37 31 0d 0a 53 45 4c 45 43 54 20 44 49 53  1171..SELECT DIS
36460 54 49 4e 43 54 20 4d 41 58 28 20 41 4c 4c 20 2d  TINCT MAX( ALL -
36470 20 32 33 20 29 20 46 52 4f 4d 20 74 61 62 30 0d   23 ) FROM tab0.
36480 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a 0d 0a 73 6b  .----..-23....sk
36490 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
364a0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
364b0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
364c0 65 6c 2d 31 31 37 31 0d 0a 53 45 4c 45 43 54 20  el-1171..SELECT 
364d0 44 49 53 54 49 4e 43 54 20 4d 41 58 20 28 20 41  DISTINCT MAX ( A
364e0 4c 4c 20 2d 20 32 33 20 29 20 46 52 4f 4d 20 74  LL - 23 ) FROM t
364f0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a  ab0..----..-23..
36500 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
36510 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
36520 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  INCT * FROM tab2
36530 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
36540 4f 54 20 4e 55 4c 4c 20 3d 20 63 6f 6c 32 20 2a  OT NULL = col2 *
36550 20 31 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c   11..----....onl
36560 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
36570 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
36580 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
36590 6c 61 62 65 6c 2d 31 31 37 33 0d 0a 53 45 4c 45  label-1173..SELE
365a0 43 54 20 41 4c 4c 20 2b 20 39 35 20 2a 20 2d 20  CT ALL + 95 * - 
365b0 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20  COUNT( * ) FROM 
365c0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
365d0 2d 2d 0d 0a 2d 32 38 35 0d 0a 0d 0a 73 6b 69 70  --..-285....skip
365e0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
365f0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
36600 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
36610 2d 31 31 37 33 0d 0a 53 45 4c 45 43 54 20 41 4c  -1173..SELECT AL
36620 4c 20 2b 20 39 35 20 2a 20 2d 20 43 4f 55 4e 54  L + 95 * - COUNT
36630 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32   ( * ) FROM tab2
36640 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
36650 2d 32 38 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -285....onlyif m
36660 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
36670 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
36680 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
36690 2d 31 31 37 34 0d 0a 53 45 4c 45 43 54 20 41 4c  -1174..SELECT AL
366a0 4c 20 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  L - + COUNT( * )
366b0 20 2b 20 2b 20 37 30 20 2b 20 2d 20 2d 20 36 32   + + 70 + - - 62
366c0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
366d0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 39 0d 0a 0d  r0..----..129...
366e0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
366f0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
36700 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
36710 6c 61 62 65 6c 2d 31 31 37 34 0d 0a 53 45 4c 45  label-1174..SELE
36720 43 54 20 41 4c 4c 20 2d 20 2b 20 43 4f 55 4e 54  CT ALL - + COUNT
36730 20 28 20 2a 20 29 20 2b 20 2b 20 37 30 20 2b 20   ( * ) + + 70 + 
36740 2d 20 2d 20 36 32 20 46 52 4f 4d 20 74 61 62 31  - - 62 FROM tab1
36750 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
36760 31 32 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  129....query I r
36770 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
36780 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 2a  ISTINCT - col2 *
36790 20 2d 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c   - + col1 AS col
367a0 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
367b0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 34 34 0d  or0..----..1344.
367c0 0a 32 39 35 0d 0a 33 31 39 36 0d 0a 0d 0a 6f 6e  .295..3196....on
367d0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
367e0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
367f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
36800 20 6c 61 62 65 6c 2d 31 31 37 36 0d 0a 53 45 4c   label-1176..SEL
36810 45 43 54 20 41 4c 4c 20 2b 20 2b 20 38 35 20 2a  ECT ALL + + 85 *
36820 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53   - COUNT( * ) AS
36830 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
36840 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35 35  cor0..----..-255
36850 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
36860 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
36870 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
36880 72 74 20 6c 61 62 65 6c 2d 31 31 37 36 0d 0a 53  rt label-1176..S
36890 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 38 35  ELECT ALL + + 85
368a0 20 2a 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29   * - COUNT ( * )
368b0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
368c0 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b0 cor0..----..-
368d0 32 35 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  255....onlyif my
368e0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
368f0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
36900 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
36910 74 20 6c 61 62 65 6c 2d 31 31 37 37 0d 0a 53 45  t label-1177..SE
36920 4c 45 43 54 20 41 4c 4c 20 2b 20 43 41 53 54 28  LECT ALL + CAST(
36930 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
36940 29 20 2d 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f  ) - - col2 AS co
36950 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l0 FROM tab2 AS 
36960 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
36970 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
36980 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
36990 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
369a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
369b0 61 62 65 6c 2d 31 31 37 37 0d 0a 53 45 4c 45 43  abel-1177..SELEC
369c0 54 20 41 4c 4c 20 2b 20 43 41 53 54 20 28 20 4e  T ALL + CAST ( N
369d0 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
369e0 20 2d 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c   - - col2 AS col
369f0 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
36a00 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
36a10 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  .NULL..NULL....q
36a20 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
36a30 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
36a40 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
36a50 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 42 45 54 57  RE NOT NULL BETW
36a60 45 45 4e 20 28 20 2b 20 2b 20 63 6f 6c 30 20 29  EEN ( + + col0 )
36a70 20 41 4e 44 20 2b 20 28 20 33 38 20 29 0d 0a 2d   AND + ( 38 )..-
36a80 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
36a90 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 33  owsort..SELECT 3
36aa0 37 20 2a 20 2b 20 31 32 20 46 52 4f 4d 20 74 61  7 * + 12 FROM ta
36ab0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 34 34 34 0d 0a 34  b0..----..444..4
36ac0 34 34 0d 0a 34 34 34 0d 0a 0d 0a 6f 6e 6c 79 69  44..444....onlyi
36ad0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
36ae0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
36af0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
36b00 62 65 6c 2d 31 31 38 30 0d 0a 53 45 4c 45 43 54  bel-1180..SELECT
36b10 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2d 20   COUNT( * ) * - 
36b20 41 56 47 20 28 20 2d 20 2b 20 31 31 20 29 20 2a  AVG ( - + 11 ) *
36b30 20 2d 20 28 20 43 4f 55 4e 54 28 20 2a 20 29 20   - ( COUNT( * ) 
36b40 29 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  ) FROM tab1 WHER
36b50 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55  E NOT NULL IS NU
36b60 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  LL..----..NULL..
36b70 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
36b80 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
36b90 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
36ba0 20 6c 61 62 65 6c 2d 31 31 38 30 0d 0a 53 45 4c   label-1180..SEL
36bb0 45 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ECT COUNT ( * ) 
36bc0 2a 20 2d 20 41 56 47 20 28 20 2d 20 2b 20 31 31  * - AVG ( - + 11
36bd0 20 29 20 2a 20 2d 20 28 20 43 4f 55 4e 54 20 28   ) * - ( COUNT (
36be0 20 2a 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31   * ) ) FROM tab1
36bf0 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
36c00 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e  IS NULL..----..N
36c10 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ULL....onlyif my
36c20 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
36c30 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
36c40 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
36c50 31 31 38 31 0d 0a 53 45 4c 45 43 54 20 2d 20 53  1181..SELECT - S
36c60 55 4d 28 20 41 4c 4c 20 2d 20 2d 20 37 34 20 29  UM( ALL - - 74 )
36c70 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
36c80 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32 32 0d 0a  b1..----..-222..
36c90 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
36ca0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
36cb0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
36cc0 20 6c 61 62 65 6c 2d 31 31 38 31 0d 0a 53 45 4c   label-1181..SEL
36cd0 45 43 54 20 2d 20 53 55 4d 20 28 20 41 4c 4c 20  ECT - SUM ( ALL 
36ce0 2d 20 2d 20 37 34 20 29 20 41 53 20 63 6f 6c 31  - - 74 ) AS col1
36cf0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
36d00 0d 0a 2d 32 32 32 0d 0a 0d 0a 71 75 65 72 79 20  ..-222....query 
36d10 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
36d20 43 54 20 63 6f 6c 32 2c 20 63 6f 6c 30 20 2b 20  CT col2, col0 + 
36d30 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col0 FROM tab1..
36d40 2d 2d 2d 2d 0d 0a 35 39 0d 0a 31 37 30 0d 0a 36  ----..59..170..6
36d50 38 0d 0a 31 38 32 0d 0a 39 36 0d 0a 31 30 32 0d  8..182..96..102.
36d60 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
36d70 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
36d80 49 4e 43 54 20 33 39 2c 20 35 34 20 41 53 20 63  INCT 39, 54 AS c
36d90 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
36da0 2d 2d 2d 0d 0a 33 39 0d 0a 35 34 0d 0a 0d 0a 71  ---..39..54....q
36db0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
36dc0 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c  SELECT ALL + col
36dd0 31 20 2a 20 2b 20 39 20 41 53 20 63 6f 6c 31 20  1 * + 9 AS col1 
36de0 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
36df0 0a 31 32 36 0d 0a 34 32 33 0d 0a 34 35 0d 0a 0d  .126..423..45...
36e00 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
36e10 74 0d 0a 53 45 4c 45 43 54 20 2b 20 32 33 20 41  t..SELECT + 23 A
36e20 53 20 63 6f 6c 32 2c 20 28 20 63 6f 6c 32 20 29  S col2, ( col2 )
36e30 20 2b 20 2b 20 38 30 20 2b 20 2b 20 63 6f 6c 31   + + 80 + + col1
36e40 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
36e50 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
36e60 0d 0a 32 33 0d 0a 31 31 31 0d 0a 32 33 0d 0a 31  ..23..111..23..1
36e70 38 30 0d 0a 32 33 0d 0a 32 30 38 0d 0a 0d 0a 6f  80..23..208....o
36e80 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
36e90 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
36ea0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
36eb0 74 20 6c 61 62 65 6c 2d 31 31 38 36 0d 0a 53 45  t label-1186..SE
36ec0 4c 45 43 54 20 2b 20 53 55 4d 28 20 44 49 53 54  LECT + SUM( DIST
36ed0 49 4e 43 54 20 2d 20 2b 20 33 32 20 29 20 63 6f  INCT - + 32 ) co
36ee0 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  l2 FROM tab1 cor
36ef0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 32 0d 0a 0d 0a  0..----..-32....
36f00 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
36f10 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73  ot compatible..s
36f20 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
36f30 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
36f40 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
36f50 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
36f60 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
36f70 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
36f80 38 36 0d 0a 53 45 4c 45 43 54 20 2b 20 53 55 4d  86..SELECT + SUM
36f90 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20   ( DISTINCT - + 
36fa0 33 32 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74  32 ) col2 FROM t
36fb0 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab1 cor0..----..
36fc0 2d 33 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -32....onlyif my
36fd0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
36fe0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
36ff0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
37000 31 31 38 37 0d 0a 53 45 4c 45 43 54 20 44 49 53  1187..SELECT DIS
37010 54 49 4e 43 54 20 2d 20 28 20 2d 20 43 4f 55 4e  TINCT - ( - COUN
37020 54 28 20 2a 20 29 20 29 20 2b 20 2d 20 31 36 20  T( * ) ) + - 16 
37030 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
37040 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
37050 0a 2d 31 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-13....skipif m
37060 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
37070 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
37080 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 38  owsort label-118
37090 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  7..SELECT DISTIN
370a0 43 54 20 2d 20 28 20 2d 20 43 4f 55 4e 54 20 28  CT - ( - COUNT (
370b0 20 2a 20 29 20 29 20 2b 20 2d 20 31 36 20 41 53   * ) ) + - 16 AS
370c0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
370d0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
370e0 31 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  13....query I ro
370f0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
37100 53 54 49 4e 43 54 20 63 6f 6c 31 20 2a 20 63 6f  STINCT col1 * co
37110 6c 30 20 2b 20 2b 20 63 6f 6c 30 20 2b 20 2d 20  l0 + + col0 + - 
37120 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
37130 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33  S cor0..----..23
37140 34 31 0d 0a 34 39 31 35 0d 0a 35 30 33 33 0d 0a  41..4915..5033..
37150 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
37160 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
37170 43 54 20 2b 20 63 6f 6c 31 20 2b 20 32 37 20 2b  CT + col1 + 27 +
37180 20 2b 20 2b 20 63 6f 6c 31 20 2d 20 2b 20 2d 20   + + col1 - + - 
37190 38 37 20 2a 20 2d 20 38 30 20 41 53 20 63 6f 6c  87 * - 80 AS col
371a0 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
371b0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 37 37 39  or0..----..-6779
371c0 0d 0a 2d 36 37 39 39 0d 0a 2d 36 38 33 31 0d 0a  ..-6799..-6831..
371d0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
371e0 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 36 32 20  rt..SELECT - 62 
371f0 41 53 20 63 6f 6c 32 2c 20 2d 20 63 6f 6c 30 20  AS col2, - col0 
37200 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
37210 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 32 0d 0a 2d 31  0..----..-62..-1
37220 35 0d 0a 2d 36 32 0d 0a 2d 38 37 0d 0a 2d 36 32  5..-62..-87..-62
37230 0d 0a 2d 39 37 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-97....query I
37240 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
37250 20 41 4c 4c 20 2d 20 37 34 20 41 53 20 63 6f 6c   ALL - 74 AS col
37260 32 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  2 FROM tab2 WHER
37270 45 20 4e 4f 54 20 2b 20 32 31 20 42 45 54 57 45  E NOT + 21 BETWE
37280 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2d 20 63 6f  EN NULL AND - co
37290 6c 31 20 2a 20 2d 20 33 38 0d 0a 2d 2d 2d 2d 0d  l1 * - 38..----.
372a0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
372b0 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c  rt..SELECT + col
372c0 31 20 2a 20 63 6f 6c 31 20 2a 20 2d 20 31 36 20  1 * col1 * - 16 
372d0 2b 20 2b 20 2d 20 28 20 2b 20 2d 20 63 6f 6c 32  + + - ( + - col2
372e0 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d   ) FROM tab1..--
372f0 2d 2d 0d 0a 2d 33 30 34 30 0d 0a 2d 33 34 31 0d  --..-3040..-341.
37300 0a 2d 33 35 32 37 36 0d 0a 0d 0a 73 6b 69 70 69  .-35276....skipi
37310 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
37320 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
37330 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
37340 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
37350 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ns..query II row
37360 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
37370 20 2d 20 2b 20 36 32 20 41 53 20 63 6f 6c 31 2c   - + 62 AS col1,
37380 20 39 36 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   96 col0 FROM ta
37390 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b2 cor0..----..-
373a0 36 32 0d 0a 39 36 0d 0a 2d 36 32 0d 0a 39 36 0d  62..96..-62..96.
373b0 0a 2d 36 32 0d 0a 39 36 0d 0a 0d 0a 71 75 65 72  .-62..96....quer
373c0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
373d0 45 43 54 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 63  ECT + col2 + - c
373e0 6f 6c 31 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f  ol1 - col2 AS co
373f0 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
37400 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a  cor0..----..-1..
37410 2d 32 31 0d 0a 2d 38 31 0d 0a 0d 0a 6f 6e 6c 79  -21..-81....only
37420 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
37430 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
37440 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
37450 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 39  owsort label-119
37460 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  5..SELECT DISTIN
37470 43 54 20 43 41 53 54 28 20 2b 20 63 6f 6c 30 20  CT CAST( + col0 
37480 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2b 20  AS SIGNED ) * + 
37490 37 36 20 2a 20 2d 20 32 36 20 2b 20 2d 20 2b 20  76 * - 26 + - + 
374a0 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f  col2 AS col1 FRO
374b0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
374c0 2d 2d 2d 2d 0d 0a 2d 31 32 36 35 30 34 0d 0a 2d  ----..-126504..-
374d0 31 34 38 32 35 38 0d 0a 2d 39 30 39 31 39 0d 0a  148258..-90919..
374e0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
374f0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
37500 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
37510 20 6c 61 62 65 6c 2d 31 31 39 35 0d 0a 53 45 4c   label-1195..SEL
37520 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 41 53  ECT DISTINCT CAS
37530 54 20 28 20 2b 20 63 6f 6c 30 20 41 53 20 49 4e  T ( + col0 AS IN
37540 54 45 47 45 52 20 29 20 2a 20 2b 20 37 36 20 2a  TEGER ) * + 76 *
37550 20 2d 20 32 36 20 2b 20 2d 20 2b 20 63 6f 6c 32   - 26 + - + col2
37560 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
37570 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
37580 0d 0a 2d 31 32 36 35 30 34 0d 0a 2d 31 34 38 32  ..-126504..-1482
37590 35 38 0d 0a 2d 39 30 39 31 39 0d 0a 0d 0a 71 75  58..-90919....qu
375a0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
375b0 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
375c0 61 62 31 20 57 48 45 52 45 20 2d 20 38 20 2b 20  ab1 WHERE - 8 + 
375d0 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col2 IS NOT NULL
375e0 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
375f0 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30   hashing to c6c0
37600 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38 31  a4111b36d04dbc81
37610 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a  1a11e4d54cad....
37620 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
37630 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
37640 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
37650 72 74 20 6c 61 62 65 6c 2d 31 31 39 37 0d 0a 53  rt label-1197..S
37660 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e  ELECT ALL + COUN
37670 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46  T( * ) AS col1 F
37680 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 20 43 52  ROM tab1 cor0 CR
37690 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53  OSS JOIN tab2 AS
376a0 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a   cor1..----..9..
376b0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
376c0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
376d0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
376e0 20 6c 61 62 65 6c 2d 31 31 39 37 0d 0a 53 45 4c   label-1197..SEL
376f0 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 20  ECT ALL + COUNT 
37700 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ( * ) AS col1 FR
37710 4f 4d 20 74 61 62 31 20 63 6f 72 30 20 43 52 4f  OM tab1 cor0 CRO
37720 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53 20  SS JOIN tab2 AS 
37730 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d  cor1..----..9...
37740 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
37750 0d 0a 53 45 4c 45 43 54 20 2d 20 39 35 20 2d 20  ..SELECT - 95 - 
37760 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f  col2 AS col2 FRO
37770 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab1..----..-1
37780 35 34 0d 0a 2d 31 36 33 0d 0a 2d 31 39 31 0d 0a  54..-163..-191..
37790 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
377a0 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20  rt..SELECT col0 
377b0 2d 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30  - - col0 AS col0
377c0 2c 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  , col2 FROM tab0
377d0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
377e0 31 37 34 0d 0a 31 30 0d 0a 31 39 34 0d 0a 39 39  174..10..194..99
377f0 0d 0a 33 30 0d 0a 34 37 0d 0a 0d 0a 71 75 65 72  ..30..47....quer
37800 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
37810 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
37820 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
37830 2b 20 63 6f 6c 32 20 4e 4f 54 20 42 45 54 57 45  + col2 NOT BETWE
37840 45 4e 20 2b 20 35 20 41 4e 44 20 4e 55 4c 4c 0d  EN + 5 AND NULL.
37850 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
37860 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
37870 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
37880 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
37890 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
378a0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
378b0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
378c0 43 54 20 63 6f 6c 31 20 2a 20 2d 20 36 30 20 63  CT col1 * - 60 c
378d0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
378e0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32   cor0..----..-12
378f0 36 30 0d 0a 2d 34 38 36 30 0d 0a 2d 36 30 0d 0a  60..-4860..-60..
37900 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
37910 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
37920 43 54 20 28 20 63 6f 6c 30 20 29 20 2b 20 2d 20  CT ( col0 ) + - 
37930 2b 20 35 38 20 2d 20 2d 20 63 6f 6c 31 20 2a 20  + 58 - - col1 * 
37940 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  - col2 FROM tab2
37950 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
37960 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ULL IS NOT NULL.
37970 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
37980 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
37990 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30   DISTINCT - col0
379a0 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20   FROM tab0 cor0 
379b0 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c  WHERE NOT ( NULL
379c0 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d   ) IS NULL..----
379d0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
379e0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20  ort..SELECT - + 
379f0 32 34 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  24 AS col2 FROM 
37a00 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
37a10 2d 2d 0d 0a 2d 32 34 0d 0a 2d 32 34 0d 0a 2d 32  --..-24..-24..-2
37a20 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  4....query I row
37a30 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b  sort..SELECT + +
37a40 20 32 35 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   25 AS col1 FROM
37a50 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
37a60 0d 0a 32 35 0d 0a 32 35 0d 0a 32 35 0d 0a 0d 0a  ..25..25..25....
37a70 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
37a80 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
37a90 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
37aa0 72 74 20 6c 61 62 65 6c 2d 31 32 30 36 0d 0a 53  rt label-1206..S
37ab0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
37ac0 20 2b 20 31 31 20 2a 20 2d 20 4d 49 4e 28 20 2d   + 11 * - MIN( -
37ad0 20 28 20 2b 20 2d 20 31 37 20 29 20 29 20 46 52   ( + - 17 ) ) FR
37ae0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
37af0 0a 2d 2d 2d 2d 0d 0a 2d 31 38 37 0d 0a 0d 0a 73  .----..-187....s
37b00 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
37b10 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
37b20 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
37b30 62 65 6c 2d 31 32 30 36 0d 0a 53 45 4c 45 43 54  bel-1206..SELECT
37b40 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 31 31   DISTINCT + + 11
37b50 20 2a 20 2d 20 4d 49 4e 20 28 20 2d 20 28 20 2b   * - MIN ( - ( +
37b60 20 2d 20 31 37 20 29 20 29 20 46 52 4f 4d 20 74   - 17 ) ) FROM t
37b70 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
37b80 2d 0d 0a 2d 31 38 37 0d 0a 0d 0a 6f 6e 6c 79 69  -..-187....onlyi
37b90 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
37ba0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
37bb0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
37bc0 62 65 6c 2d 31 32 30 37 0d 0a 53 45 4c 45 43 54  bel-1207..SELECT
37bd0 20 44 49 53 54 49 4e 43 54 20 2b 20 53 55 4d 28   DISTINCT + SUM(
37be0 20 39 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41   9 ) FROM tab0 A
37bf0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 37  S cor0..----..27
37c00 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
37c10 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
37c20 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
37c30 72 74 20 6c 61 62 65 6c 2d 31 32 30 37 0d 0a 53  rt label-1207..S
37c40 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
37c50 20 53 55 4d 20 28 20 39 20 29 20 46 52 4f 4d 20   SUM ( 9 ) FROM 
37c60 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
37c70 2d 2d 0d 0a 32 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  --..27....onlyif
37c80 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
37c90 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
37ca0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
37cb0 65 6c 2d 31 32 30 38 0d 0a 53 45 4c 45 43 54 20  el-1208..SELECT 
37cc0 41 4c 4c 20 4d 49 4e 28 20 2b 20 63 6f 6c 30 20  ALL MIN( + col0 
37cd0 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  ) col1 FROM tab2
37ce0 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 0d 0a 73 6b  ..----..46....sk
37cf0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
37d00 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69   compatible..ski
37d10 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
37d20 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
37d30 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
37d40 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
37d50 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
37d60 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 30 38  wsort label-1208
37d70 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 4d 49 4e  ..SELECT ALL MIN
37d80 20 28 20 2b 20 63 6f 6c 30 20 29 20 63 6f 6c 31   ( + col0 ) col1
37d90 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
37da0 0d 0a 34 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..46....query II
37db0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
37dc0 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
37dd0 4d 20 74 61 62 30 20 57 48 45 52 45 20 28 20 2d  M tab0 WHERE ( -
37de0 20 2b 20 63 6f 6c 32 20 29 20 49 53 20 4e 4f 54   + col2 ) IS NOT
37df0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   NULL..----..9 v
37e00 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
37e10 20 63 34 62 34 32 37 36 35 64 66 66 39 34 65 61   c4b42765dff94ea
37e20 61 61 34 36 30 34 30 65 35 33 37 66 62 34 33 62  aa46040e537fb43b
37e30 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  7....query I row
37e40 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
37e50 20 63 6f 6c 30 20 2a 20 2d 20 2d 20 35 34 20 46   col0 * - - 54 F
37e60 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
37e70 32 34 38 34 0d 0a 33 34 35 36 0d 0a 34 30 35 30  2484..3456..4050
37e80 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
37e90 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
37ea0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
37eb0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 31  owsort label-121
37ec0 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  1..SELECT DISTIN
37ed0 43 54 20 2d 20 2b 20 4d 49 4e 28 20 2d 20 63 6f  CT - + MIN( - co
37ee0 6c 30 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  l0 ) AS col2 FRO
37ef0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
37f00 2d 2d 2d 2d 0d 0a 39 37 0d 0a 0d 0a 73 6b 69 70  ----..97....skip
37f10 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
37f20 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
37f30 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
37f40 2d 31 32 31 31 0d 0a 53 45 4c 45 43 54 20 44 49  -1211..SELECT DI
37f50 53 54 49 4e 43 54 20 2d 20 2b 20 4d 49 4e 20 28  STINCT - + MIN (
37f60 20 2d 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c   - col0 ) AS col
37f70 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
37f80 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 37 0d 0a 0d  or0..----..97...
37f90 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
37fa0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
37fb0 54 20 2d 20 28 20 2b 20 31 31 20 29 20 41 53 20  T - ( + 11 ) AS 
37fc0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
37fd0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
37fe0 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  1....skipif post
37ff0 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
38000 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
38010 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
38020 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
38030 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
38040 45 4c 45 43 54 20 2d 20 37 37 20 63 6f 6c 31 20  ELECT - 77 col1 
38050 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
38060 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62  0 CROSS JOIN tab
38070 31 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d  1 AS cor1..----.
38080 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
38090 67 20 74 6f 20 33 61 32 34 31 35 35 63 62 39 31  g to 3a24155cb91
380a0 63 65 66 66 31 65 36 37 62 62 35 31 63 30 37 62  ceff1e67bb51c07b
380b0 37 32 31 30 37 0d 0a 0d 0a 71 75 65 72 79 20 49  72107....query I
380c0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
380d0 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 33 34   DISTINCT - + 34
380e0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
380f0 62 31 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  b1 cor0 CROSS JO
38100 49 4e 20 74 61 62 31 20 41 53 20 63 6f 72 31 0d  IN tab1 AS cor1.
38110 0a 2d 2d 2d 2d 0d 0a 2d 33 34 0d 0a 0d 0a 71 75  .----..-34....qu
38120 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
38130 45 4c 45 43 54 20 41 4c 4c 20 2b 20 33 36 20 41  ELECT ALL + 36 A
38140 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
38150 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a   AS cor0 CROSS J
38160 4f 49 4e 20 74 61 62 31 20 41 53 20 63 6f 72 31  OIN tab1 AS cor1
38170 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
38180 20 68 61 73 68 69 6e 67 20 74 6f 20 65 65 65 39   hashing to eee9
38190 36 61 38 35 35 31 39 66 39 32 38 35 36 61 37 35  6a85519f92856a75
381a0 30 30 64 63 38 62 36 63 66 37 35 32 0d 0a 0d 0a  00dc8b6cf752....
381b0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
381c0 0a 53 45 4c 45 43 54 20 2d 20 31 37 20 46 52 4f  .SELECT - 17 FRO
381d0 4d 20 28 20 74 61 62 31 20 41 53 20 63 6f 72 30  M ( tab1 AS cor0
381e0 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30   CROSS JOIN tab0
381f0 20 41 53 20 63 6f 72 31 20 29 0d 0a 2d 2d 2d 2d   AS cor1 )..----
38200 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
38210 6e 67 20 74 6f 20 34 39 30 64 30 30 38 66 33 66  ng to 490d008f3f
38220 62 35 62 37 30 64 33 39 37 31 63 66 63 36 64 38  b5b70d3971cfc6d8
38230 34 35 30 33 66 34 0d 0a 0d 0a 6f 6e 6c 79 69 66  4503f4....onlyif
38240 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
38250 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
38260 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
38270 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 31 37 0d  sort label-1217.
38280 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2b  .SELECT + col2 +
38290 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
382a0 49 47 4e 45 44 20 29 20 2b 20 2b 20 36 30 20 46  IGNED ) + + 60 F
382b0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
382c0 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
382d0 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  LL..NULL....skip
382e0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
382f0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
38300 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
38310 2d 31 32 31 37 0d 0a 53 45 4c 45 43 54 20 2b 20  -1217..SELECT + 
38320 63 6f 6c 32 20 2b 20 43 41 53 54 20 28 20 4e 55  col2 + CAST ( NU
38330 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
38340 2b 20 2b 20 36 30 20 46 52 4f 4d 20 74 61 62 31  + + 60 FROM tab1
38350 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
38360 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
38370 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
38380 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
38390 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
383a0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 31  owsort label-121
383b0 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  8..SELECT ALL - 
383c0 53 55 4d 28 20 2d 20 2d 20 38 32 20 29 20 2b 20  SUM( - - 82 ) + 
383d0 2d 20 2d 20 32 31 20 46 52 4f 4d 20 74 61 62 31  - - 21 FROM tab1
383e0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
383f0 2d 32 32 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -225....skipif m
38400 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
38410 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
38420 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 31  owsort label-121
38430 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  8..SELECT ALL - 
38440 53 55 4d 20 28 20 2d 20 2d 20 38 32 20 29 20 2b  SUM ( - - 82 ) +
38450 20 2d 20 2d 20 32 31 20 46 52 4f 4d 20 74 61 62   - - 21 FROM tab
38460 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
38470 0a 2d 32 32 35 0d 0a 0d 0a 71 75 65 72 79 20 49  .-225....query I
38480 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
38490 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
384a0 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
384b0 20 2d 20 38 32 20 49 53 20 4e 4f 54 20 4e 55 4c   - 82 IS NOT NUL
384c0 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  L..----..9 value
384d0 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62  s hashing to c4b
384e0 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36  42765dff94eaaa46
384f0 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d  040e537fb43b7...
38500 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
38510 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 46 52  ..SELECT col2 FR
38520 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 2b 20  OM tab0 WHERE + 
38530 2b 20 36 38 20 3c 20 2b 20 2b 20 63 6f 6c 30 0d  + 68 < + + col0.
38540 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 39 39 0d 0a 0d  .----..10..99...
38550 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
38560 0d 0a 53 45 4c 45 43 54 20 2d 20 30 20 2a 20 2b  ..SELECT - 0 * +
38570 20 31 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d   12 FROM tab1..-
38580 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a  ---..0..0..0....
38590 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
385a0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
385b0 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
385c0 6f 72 74 20 6c 61 62 65 6c 2d 31 32 32 32 0d 0a  ort label-1222..
385d0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
385e0 2b 20 4d 49 4e 28 20 44 49 53 54 49 4e 43 54 20  + MIN( DISTINCT 
385f0 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 31 2c 20  col1 ) AS col1, 
38600 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f  COUNT( * ) AS co
38610 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l0 FROM tab2..--
38620 2d 2d 0d 0a 35 31 0d 0a 33 0d 0a 0d 0a 73 6b 69  --..51..3....ski
38630 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
38640 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
38650 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
38660 65 6c 2d 31 32 32 32 0d 0a 53 45 4c 45 43 54 20  el-1222..SELECT 
38670 44 49 53 54 49 4e 43 54 20 2b 20 4d 49 4e 20 28  DISTINCT + MIN (
38680 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 29   DISTINCT col1 )
38690 20 41 53 20 63 6f 6c 31 2c 20 43 4f 55 4e 54 20   AS col1, COUNT 
386a0 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ( * ) AS col0 FR
386b0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35  OM tab2..----..5
386c0 31 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  1..3....onlyif m
386d0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
386e0 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
386f0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
38700 72 74 20 6c 61 62 65 6c 2d 31 32 32 33 0d 0a 53  rt label-1223..S
38710 45 4c 45 43 54 20 41 4c 4c 20 2d 20 32 36 20 41  ELECT ALL - 26 A
38720 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
38730 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
38740 4f 54 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20  OT - CAST( NULL 
38750 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 63 6f  AS SIGNED ) + co
38760 6c 31 20 2a 20 2b 20 63 6f 6c 31 20 4e 4f 54 20  l1 * + col1 NOT 
38770 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44  BETWEEN NULL AND
38780 20 2d 20 2b 20 36 37 20 2a 20 2d 20 2b 20 28 20   - + 67 * - + ( 
38790 2b 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a  + col0 )..----..
387a0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
387b0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
387c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
387d0 20 6c 61 62 65 6c 2d 31 32 32 33 0d 0a 53 45 4c   label-1223..SEL
387e0 45 43 54 20 41 4c 4c 20 2d 20 32 36 20 41 53 20  ECT ALL - 26 AS 
387f0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
38800 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
38810 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   - CAST ( NULL A
38820 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20 63 6f  S INTEGER ) + co
38830 6c 31 20 2a 20 2b 20 63 6f 6c 31 20 4e 4f 54 20  l1 * + col1 NOT 
38840 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44  BETWEEN NULL AND
38850 20 2d 20 2b 20 36 37 20 2a 20 2d 20 2b 20 28 20   - + 67 * - + ( 
38860 2b 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a  + col0 )..----..
38870 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
38880 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
38890 28 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63 6f  ( + col0 ) AS co
388a0 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72  l0 FROM tab2 cor
388b0 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 36 34 0d  0..----..46..64.
388c0 0a 37 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .75....query I r
388d0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
388e0 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 2a  ISTINCT + col1 *
388f0 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 37 38 20 2a   - col2 * + 78 *
38900 20 2d 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c   - + col2 AS col
38910 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
38920 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 30 36 33  or0..----..10063
38930 38 37 32 0d 0a 31 33 35 37 35 39 30 0d 0a 31 36  872..1357590..16
38940 39 35 31 35 38 34 0d 0a 0d 0a 71 75 65 72 79 20  951584....query 
38950 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
38960 54 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 2a 20 39  T ALL + col2 * 9
38970 31 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  1 + col0 FROM ta
38980 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
38990 0d 0a 32 31 33 39 0d 0a 33 37 30 34 0d 0a 35 33  ..2139..3704..53
389a0 35 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  53....query II r
389b0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
389c0 6f 6c 31 2c 20 2b 20 63 6f 6c 31 20 2d 20 2b 20  ol1, + col1 - + 
389d0 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46  + col2 AS col2 F
389e0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
389f0 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 2d 38 32 0d  ..----..14..-82.
38a00 0a 34 37 0d 0a 2d 32 31 0d 0a 35 0d 0a 2d 35 34  .47..-21..5..-54
38a10 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
38a20 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
38a30 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
38a40 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
38a50 61 62 65 6c 2d 31 32 32 38 0d 0a 53 45 4c 45 43  abel-1228..SELEC
38a60 54 20 41 4c 4c 20 63 6f 6c 32 20 2a 20 2b 20 63  T ALL col2 * + c
38a70 6f 6c 32 20 2b 20 2d 20 2d 20 39 39 20 41 53 20  ol2 + - - 99 AS 
38a80 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
38a90 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
38aa0 20 2d 20 63 6f 6c 30 20 2b 20 63 6f 6c 30 20 2a   - col0 + col0 *
38ab0 20 2b 20 37 33 20 4e 4f 54 20 42 45 54 57 45 45   + 73 NOT BETWEE
38ac0 4e 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  N + CAST( NULL A
38ad0 53 20 53 49 47 4e 45 44 20 29 20 41 4e 44 20 2b  S SIGNED ) AND +
38ae0 20 2b 20 34 33 20 2b 20 36 30 0d 0a 2d 2d 2d 2d   + 43 + 60..----
38af0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
38b00 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
38b10 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
38b20 72 74 20 6c 61 62 65 6c 2d 31 32 32 38 0d 0a 53  rt label-1228..S
38b30 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20 2a  ELECT ALL col2 *
38b40 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 2d 20 39 39   + col2 + - - 99
38b50 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
38b60 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
38b70 20 4e 4f 54 20 2d 20 63 6f 6c 30 20 2b 20 63 6f   NOT - col0 + co
38b80 6c 30 20 2a 20 2b 20 37 33 20 4e 4f 54 20 42 45  l0 * + 73 NOT BE
38b90 54 57 45 45 4e 20 2b 20 43 41 53 54 20 28 20 4e  TWEEN + CAST ( N
38ba0 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
38bb0 20 41 4e 44 20 2b 20 2b 20 34 33 20 2b 20 36 30   AND + + 43 + 60
38bc0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
38bd0 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
38be0 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
38bf0 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
38c00 73 6f 72 74 20 6c 61 62 65 6c 2d