sqllogictest
Hex Artifact Content
Not logged in

Artifact 8fbc34670839bab8e74f01dfff6c7773e9869c50:


0000: 68 61 73 68 2d 74 68 72 65 73 68 6f 6c 64 20 38  hash-threshold 8
0010: 0d 0a 0d 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b  ....statement ok
0020: 0d 0a 43 52 45 41 54 45 20 54 41 42 4c 45 20 74  ..CREATE TABLE t
0030: 61 62 30 28 63 6f 6c 30 20 49 4e 54 45 47 45 52  ab0(col0 INTEGER
0040: 2c 20 63 6f 6c 31 20 49 4e 54 45 47 45 52 2c 20  , col1 INTEGER, 
0050: 63 6f 6c 32 20 49 4e 54 45 47 45 52 29 0d 0a 0d  col2 INTEGER)...
0060: 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 43  .statement ok..C
0070: 52 45 41 54 45 20 54 41 42 4c 45 20 74 61 62 31  REATE TABLE tab1
0080: 28 63 6f 6c 30 20 49 4e 54 45 47 45 52 2c 20 63  (col0 INTEGER, c
0090: 6f 6c 31 20 49 4e 54 45 47 45 52 2c 20 63 6f 6c  ol1 INTEGER, col
00a0: 32 20 49 4e 54 45 47 45 52 29 0d 0a 0d 0a 73 74  2 INTEGER)....st
00b0: 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 43 52 45 41  atement ok..CREA
00c0: 54 45 20 54 41 42 4c 45 20 74 61 62 32 28 63 6f  TE TABLE tab2(co
00d0: 6c 30 20 49 4e 54 45 47 45 52 2c 20 63 6f 6c 31  l0 INTEGER, col1
00e0: 20 49 4e 54 45 47 45 52 2c 20 63 6f 6c 32 20 49   INTEGER, col2 I
00f0: 4e 54 45 47 45 52 29 0d 0a 0d 0a 73 74 61 74 65  NTEGER)....state
0100: 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45 52 54 20  ment ok..INSERT 
0110: 49 4e 54 4f 20 74 61 62 30 20 56 41 4c 55 45 53  INTO tab0 VALUES
0120: 28 39 37 2c 31 2c 39 39 29 0d 0a 0d 0a 73 74 61  (97,1,99)....sta
0130: 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45 52  tement ok..INSER
0140: 54 20 49 4e 54 4f 20 74 61 62 30 20 56 41 4c 55  T INTO tab0 VALU
0150: 45 53 28 31 35 2c 38 31 2c 34 37 29 0d 0a 0d 0a  ES(15,81,47)....
0160: 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49 4e  statement ok..IN
0170: 53 45 52 54 20 49 4e 54 4f 20 74 61 62 30 20 56  SERT INTO tab0 V
0180: 41 4c 55 45 53 28 38 37 2c 32 31 2c 31 30 29 0d  ALUES(87,21,10).
0190: 0a 0d 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d  ...statement ok.
01a0: 0a 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 61 62  .INSERT INTO tab
01b0: 31 20 56 41 4c 55 45 53 28 35 31 2c 31 34 2c 39  1 VALUES(51,14,9
01c0: 36 29 0d 0a 0d 0a 73 74 61 74 65 6d 65 6e 74 20  6)....statement 
01d0: 6f 6b 0d 0a 49 4e 53 45 52 54 20 49 4e 54 4f 20  ok..INSERT INTO 
01e0: 74 61 62 31 20 56 41 4c 55 45 53 28 38 35 2c 35  tab1 VALUES(85,5
01f0: 2c 35 39 29 0d 0a 0d 0a 73 74 61 74 65 6d 65 6e  ,59)....statemen
0200: 74 20 6f 6b 0d 0a 49 4e 53 45 52 54 20 49 4e 54  t ok..INSERT INT
0210: 4f 20 74 61 62 31 20 56 41 4c 55 45 53 28 39 31  O tab1 VALUES(91
0220: 2c 34 37 2c 36 38 29 0d 0a 0d 0a 73 74 61 74 65  ,47,68)....state
0230: 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45 52 54 20  ment ok..INSERT 
0240: 49 4e 54 4f 20 74 61 62 32 20 56 41 4c 55 45 53  INTO tab2 VALUES
0250: 28 36 34 2c 37 37 2c 34 30 29 0d 0a 0d 0a 73 74  (64,77,40)....st
0260: 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45  atement ok..INSE
0270: 52 54 20 49 4e 54 4f 20 74 61 62 32 20 56 41 4c  RT INTO tab2 VAL
0280: 55 45 53 28 37 35 2c 36 37 2c 35 38 29 0d 0a 0d  UES(75,67,58)...
0290: 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49  .statement ok..I
02a0: 4e 53 45 52 54 20 49 4e 54 4f 20 74 61 62 32 20  NSERT INTO tab2 
02b0: 56 41 4c 55 45 53 28 34 36 2c 35 31 2c 32 33 29  VALUES(46,51,23)
02c0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
02d0: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
02e0: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
02f0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 30 0d 0a  owsort label-0..
0300: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55  SELECT ALL + COU
0310: 4e 54 28 20 41 4c 4c 20 2d 20 2b 20 34 33 20 29  NT( ALL - + 43 )
0320: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
0330: 72 30 20 57 48 45 52 45 20 2b 20 63 6f 6c 31 20  r0 WHERE + col1 
0340: 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30  IS NULL..----..0
0350: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
0360: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
0370: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
0380: 72 74 20 6c 61 62 65 6c 2d 30 0d 0a 53 45 4c 45  rt label-0..SELE
0390: 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 20 28  CT ALL + COUNT (
03a0: 20 41 4c 4c 20 2d 20 2b 20 34 33 20 29 20 46 52   ALL - + 43 ) FR
03b0: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
03c0: 57 48 45 52 45 20 2b 20 63 6f 6c 31 20 49 53 20  WHERE + col1 IS 
03d0: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  NULL..----..0...
03e0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
03f0: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 34  ..SELECT ALL - 4
0400: 36 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  6 FROM tab0 AS c
0410: 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
0420: 61 62 32 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d  ab2 AS cor1..---
0430: 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
0440: 69 6e 67 20 74 6f 20 34 39 31 61 64 31 66 62 37  ing to 491ad1fb7
0450: 39 66 65 63 30 62 35 37 31 35 65 61 35 34 39 34  9fec0b5715ea5494
0460: 39 64 31 61 61 32 64 0d 0a 0d 0a 71 75 65 72 79  9d1aa2d....query
0470: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
0480: 43 54 20 32 30 20 41 53 20 63 6f 6c 32 20 46 52  CT 20 AS col2 FR
0490: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
04a0: 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20  CROSS JOIN tab1 
04b0: 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39  AS cor1..----..9
04c0: 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
04d0: 74 6f 20 32 66 64 64 39 34 32 66 65 30 33 30 37  to 2fdd942fe0307
04e0: 61 36 66 66 36 36 62 36 33 30 30 34 65 66 31 30  a6ff66b63004ef10
04f0: 32 63 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  2c4....query I r
0500: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
0510: 20 34 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   4 FROM tab0 WHE
0520: 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3e 20 4e 55  RE NOT NULL > NU
0530: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  LL..----....only
0540: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
0550: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
0560: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49  ype: ..query III
0570: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
0580: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
0590: 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53  T * FROM tab2 AS
05a0: 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 43 41   cor0 WHERE + CA
05b0: 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
05c0: 45 44 20 29 20 3d 20 2b 20 63 6f 6c 32 20 2a 20  ED ) = + col2 * 
05d0: 2b 20 63 6f 6c 32 20 2a 20 63 6f 6c 31 20 2b 20  + col2 * col1 + 
05e0: 2d 20 38 39 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b  - 89..----....sk
05f0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
0600: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
0610: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
0620: 61 62 65 6c 2d 34 0d 0a 53 45 4c 45 43 54 20 44  abel-4..SELECT D
0630: 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
0640: 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
0650: 45 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  E + CAST ( NULL 
0660: 41 53 20 49 4e 54 45 47 45 52 20 29 20 3d 20 2b  AS INTEGER ) = +
0670: 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 32 20 2a   col2 * + col2 *
0680: 20 63 6f 6c 31 20 2b 20 2d 20 38 39 0d 0a 2d 2d   col1 + - 89..--
0690: 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  --....query III 
06a0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
06b0: 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ALL * FROM tab2 
06c0: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20  AS cor0 WHERE ( 
06d0: 34 33 20 2a 20 2b 20 2d 20 63 6f 6c 30 20 2d 20  43 * + - col0 - 
06e0: 2d 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 34 20 2b  - - col0 * + 4 +
06f0: 20 63 6f 6c 32 20 29 20 49 53 20 4e 4f 54 20 4e   col2 ) IS NOT N
0700: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  ULL..----..9 val
0710: 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37  ues hashing to 7
0720: 35 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38  5c998aa53ac83218
0730: 63 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d  cbf2feb962d0a49.
0740: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
0750: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
0760: 49 47 4e 45 44 20 74 79 70 65 3a 20 44 49 56 20  IGNED type: DIV 
0770: 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
0780: 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
0790: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 0d  rowsort label-6.
07a0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
07b0: 20 2d 20 63 6f 6c 32 20 44 49 56 20 43 41 53 54   - col2 DIV CAST
07c0: 28 20 2d 20 2d 20 31 20 41 53 20 53 49 47 4e 45  ( - - 1 AS SIGNE
07d0: 44 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  D ) AS col1 FROM
07e0: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
07f0: 2d 2d 2d 0d 0a 2d 35 39 0d 0a 2d 36 38 0d 0a 2d  ---..-59..-68..-
0800: 39 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  96....skipif mys
0810: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
0820: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
0830: 73 6f 72 74 20 6c 61 62 65 6c 2d 36 0d 0a 53 45  sort label-6..SE
0840: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
0850: 63 6f 6c 32 20 2f 20 43 41 53 54 20 28 20 2d 20  col2 / CAST ( - 
0860: 2d 20 31 20 41 53 20 49 4e 54 45 47 45 52 20 29  - 1 AS INTEGER )
0870: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
0880: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
0890: 0d 0a 2d 35 39 0d 0a 2d 36 38 0d 0a 2d 39 36 0d  ..-59..-68..-96.
08a0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
08b0: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
08c0: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
08d0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 0d 0a 53  wsort label-7..S
08e0: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
08f0: 20 43 4f 55 4e 54 28 20 2b 20 63 6f 6c 31 20 29   COUNT( + col1 )
0900: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
0910: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
0920: 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..-3....skipif m
0930: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
0940: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
0950: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 0d 0a  owsort label-7..
0960: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
0970: 2d 20 43 4f 55 4e 54 20 28 20 2b 20 63 6f 6c 31  - COUNT ( + col1
0980: 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
0990: 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
09a0: 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 6f 6e 6c 79 69 66  --..-3....onlyif
09b0: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
09c0: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
09d0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
09e0: 65 6c 2d 38 0d 0a 53 45 4c 45 43 54 20 2d 20 2d  el-8..SELECT - -
09f0: 20 4d 49 4e 28 20 2d 20 2d 20 63 6f 6c 31 20 29   MIN( - - col1 )
0a00: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
0a10: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
0a20: 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..1....skipif my
0a30: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
0a40: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
0a50: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 0d 0a 53  wsort label-8..S
0a60: 45 4c 45 43 54 20 2d 20 2d 20 4d 49 4e 20 28 20  ELECT - - MIN ( 
0a70: 2d 20 2d 20 63 6f 6c 31 20 29 20 41 53 20 63 6f  - - col1 ) AS co
0a80: 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
0a90: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d  cor0..----..1...
0aa0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
0ab0: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
0ac0: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
0ad0: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
0ae0: 62 65 6c 2d 39 0d 0a 53 45 4c 45 43 54 20 44 49  bel-9..SELECT DI
0af0: 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
0b00: 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 43  b0 WHERE NOT - C
0b10: 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
0b20: 4e 45 44 20 29 20 2a 20 2d 20 63 6f 6c 30 20 2d  NED ) * - col0 -
0b30: 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   - CAST( NULL AS
0b40: 20 53 49 47 4e 45 44 20 29 20 49 53 20 4e 55 4c   SIGNED ) IS NUL
0b50: 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  L..----....skipi
0b60: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
0b70: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
0b80: 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
0b90: 6c 2d 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  l-9..SELECT DIST
0ba0: 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  INCT * FROM tab0
0bb0: 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 43 41 53   WHERE NOT - CAS
0bc0: 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
0bd0: 47 45 52 20 29 20 2a 20 2d 20 63 6f 6c 30 20 2d  GER ) * - col0 -
0be0: 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   - CAST ( NULL A
0bf0: 53 20 49 4e 54 45 47 45 52 20 29 20 49 53 20 4e  S INTEGER ) IS N
0c00: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  ULL..----....ski
0c10: 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
0c20: 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
0c30: 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
0c40: 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
0c50: 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
0c60: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
0c70: 4c 20 2b 20 31 30 20 63 6f 6c 31 20 46 52 4f 4d  L + 10 col1 FROM
0c80: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d   tab1..----..10.
0c90: 0a 31 30 0d 0a 31 30 0d 0a 0d 0a 71 75 65 72 79  .10..10....query
0ca0: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
0cb0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  LECT * FROM tab2
0cc0: 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 2b 20 63   WHERE NOT - + c
0cd0: 6f 6c 30 20 42 45 54 57 45 45 4e 20 2b 20 63 6f  ol0 BETWEEN + co
0ce0: 6c 30 20 2b 20 2b 20 2b 20 63 6f 6c 30 20 41 4e  l0 + + + col0 AN
0cf0: 44 20 2b 20 38 34 0d 0a 2d 2d 2d 2d 0d 0a 39 20  D + 84..----..9 
0d00: 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
0d10: 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38 33  o 75c998aa53ac83
0d20: 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30 61  218cbf2feb962d0a
0d30: 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  49....query I ro
0d40: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
0d50: 53 54 49 4e 43 54 20 63 6f 6c 32 20 2f 20 63 6f  STINCT col2 / co
0d60: 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l1 AS col2 FROM 
0d70: 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2d  tab1 WHERE NOT -
0d80: 20 36 37 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d   67 IS NOT NULL.
0d90: 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
0da0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
0db0: 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 34 39   DISTINCT - - 49
0dc0: 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d   FROM tab0 cor0.
0dd0: 0a 2d 2d 2d 2d 0d 0a 34 39 0d 0a 0d 0a 71 75 65  .----..49....que
0de0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
0df0: 4c 45 43 54 20 2b 20 2d 20 35 37 20 2a 20 2b 20  LECT + - 57 * + 
0e00: 2b 20 33 39 20 2b 20 2d 20 63 6f 6c 30 20 2b 20  + 39 + - col0 + 
0e10: 2b 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  + + col0 FROM ta
0e20: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
0e30: 0d 0a 2d 32 32 32 33 0d 0a 2d 32 32 32 33 0d 0a  ..-2223..-2223..
0e40: 2d 32 32 32 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -2223....onlyif 
0e50: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
0e60: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
0e70: 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
0e80: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 35 0d 0a 53  sort label-15..S
0e90: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
0ea0: 20 33 30 20 2a 20 2d 20 43 41 53 54 28 20 4e 55   30 * - CAST( NU
0eb0: 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b  LL AS SIGNED ) +
0ec0: 20 2d 20 36 39 20 2b 20 63 6f 6c 31 20 41 53 20   - 69 + col1 AS 
0ed0: 63 6f 6c 32 2c 20 63 6f 6c 32 20 41 53 20 63 6f  col2, col2 AS co
0ee0: 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l0 FROM tab1..--
0ef0: 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 35 39 0d 0a 4e 55  --..NULL..59..NU
0f00: 4c 4c 0d 0a 36 38 0d 0a 4e 55 4c 4c 0d 0a 39 36  LL..68..NULL..96
0f10: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
0f20: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
0f30: 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
0f40: 6f 72 74 20 6c 61 62 65 6c 2d 31 35 0d 0a 53 45  ort label-15..SE
0f50: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
0f60: 33 30 20 2a 20 2d 20 43 41 53 54 20 28 20 4e 55  30 * - CAST ( NU
0f70: 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
0f80: 2b 20 2d 20 36 39 20 2b 20 63 6f 6c 31 20 41 53  + - 69 + col1 AS
0f90: 20 63 6f 6c 32 2c 20 63 6f 6c 32 20 41 53 20 63   col2, col2 AS c
0fa0: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
0fb0: 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 35 39 0d 0a 4e  ---..NULL..59..N
0fc0: 55 4c 4c 0d 0a 36 38 0d 0a 4e 55 4c 4c 0d 0a 39  ULL..68..NULL..9
0fd0: 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
0fe0: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
0ff0: 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d   DECIMAL type: .
1000: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
1010: 72 74 20 6c 61 62 65 6c 2d 31 36 0d 0a 53 45 4c  rt label-16..SEL
1020: 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ECT * FROM tab1 
1030: 63 6f 72 30 20 57 48 45 52 45 20 2b 20 43 41 53  cor0 WHERE + CAS
1040: 54 28 20 2b 20 63 6f 6c 31 20 41 53 20 44 45 43  T( + col1 AS DEC
1050: 49 4d 41 4c 20 29 20 2a 20 2b 20 35 33 20 2a 20  IMAL ) * + 53 * 
1060: 2d 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 32 37 20  - + col0 * - 27 
1070: 2a 20 2b 20 2b 20 32 34 20 42 45 54 57 45 45 4e  * + + 24 BETWEEN
1080: 20 38 36 20 41 4e 44 20 2d 20 2d 20 31 20 2f 20   86 AND - - 1 / 
1090: 2b 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a  + + col1..----..
10a0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
10b0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
10c0: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
10d0: 72 74 20 6c 61 62 65 6c 2d 31 36 0d 0a 53 45 4c  rt label-16..SEL
10e0: 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ECT * FROM tab1 
10f0: 63 6f 72 30 20 57 48 45 52 45 20 2b 20 43 41 53  cor0 WHERE + CAS
1100: 54 20 28 20 2b 20 63 6f 6c 31 20 41 53 20 52 45  T ( + col1 AS RE
1110: 41 4c 20 29 20 2a 20 2b 20 35 33 20 2a 20 2d 20  AL ) * + 53 * - 
1120: 2b 20 63 6f 6c 30 20 2a 20 2d 20 32 37 20 2a 20  + col0 * - 27 * 
1130: 2b 20 2b 20 32 34 20 42 45 54 57 45 45 4e 20 38  + + 24 BETWEEN 8
1140: 36 20 41 4e 44 20 2d 20 2d 20 31 20 2f 20 2b 20  6 AND - - 1 / + 
1150: 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  + col1..----....
1160: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
1170: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d  ..SELECT ALL + -
1180: 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 2c 20 2b   col0 AS col1, +
1190: 20 63 6f 6c 30 20 2b 20 2b 20 36 36 20 46 52 4f   col0 + + 66 FRO
11a0: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
11b0: 48 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 42 45  HERE NULL NOT BE
11c0: 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 28  TWEEN NULL AND (
11d0: 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   NULL )..----...
11e0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
11f0: 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
1200: 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
1210: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1220: 6c 2d 31 38 0d 0a 53 45 4c 45 43 54 20 2d 20 31  l-18..SELECT - 1
1230: 38 20 44 49 56 20 2b 20 31 36 20 41 53 20 63 6f  8 DIV + 16 AS co
1240: 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
1250: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a  cor0..----..-1..
1260: 2d 31 0d 0a 2d 31 0d 0a 0d 0a 73 6b 69 70 69 66  -1..-1....skipif
1270: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1280: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1290: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
12a0: 38 0d 0a 53 45 4c 45 43 54 20 2d 20 31 38 20 2f  8..SELECT - 18 /
12b0: 20 2b 20 31 36 20 41 53 20 63 6f 6c 30 20 46 52   + 16 AS col0 FR
12c0: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
12d0: 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 31 0d 0a 2d  .----..-1..-1..-
12e0: 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
12f0: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
1300: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
1310: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 39  rowsort label-19
1320: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 53  ..SELECT ALL + S
1330: 55 4d 28 20 41 4c 4c 20 2d 20 2d 20 32 32 20 29  UM( ALL - - 22 )
1340: 20 2a 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52   * COUNT( * ) FR
1350: 4f 4d 20 74 61 62 31 2c 20 74 61 62 32 20 41 53  OM tab1, tab2 AS
1360: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37 38   cor0..----..178
1370: 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  2....skipif mysq
1380: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1390: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
13a0: 6f 72 74 20 6c 61 62 65 6c 2d 31 39 0d 0a 53 45  ort label-19..SE
13b0: 4c 45 43 54 20 41 4c 4c 20 2b 20 53 55 4d 20 28  LECT ALL + SUM (
13c0: 20 41 4c 4c 20 2d 20 2d 20 32 32 20 29 20 2a 20   ALL - - 22 ) * 
13d0: 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d  COUNT ( * ) FROM
13e0: 20 74 61 62 31 2c 20 74 61 62 32 20 41 53 20 63   tab1, tab2 AS c
13f0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37 38 32 0d  or0..----..1782.
1400: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1410: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
1420: 4e 43 54 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 28  NCT + col2 + - (
1430: 20 2d 20 2d 20 63 6f 6c 31 20 29 20 2d 20 63 6f   - - col1 ) - co
1440: 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l2 AS col2 FROM 
1450: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d  tab2..----..-51.
1460: 0a 2d 36 37 0d 0a 2d 37 37 0d 0a 0d 0a 6f 6e 6c  .-67..-77....onl
1470: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
1480: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
1490: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
14a0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 31  rowsort label-21
14b0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
14c0: 54 20 2b 20 39 32 20 2b 20 2b 20 43 41 53 54 28  T + 92 + + CAST(
14d0: 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
14e0: 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
14f0: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab1..----..NULL.
1500: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1510: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1520: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1530: 74 20 6c 61 62 65 6c 2d 32 31 0d 0a 53 45 4c 45  t label-21..SELE
1540: 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 39 32  CT DISTINCT + 92
1550: 20 2b 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c   + + CAST ( NULL
1560: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53   AS INTEGER ) AS
1570: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
1580: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f  .----..NULL....o
1590: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
15a0: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
15b0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
15c0: 74 20 6c 61 62 65 6c 2d 32 32 0d 0a 53 45 4c 45  t label-22..SELE
15d0: 43 54 20 31 36 20 2d 20 2b 20 2b 20 53 55 4d 28  CT 16 - + + SUM(
15e0: 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 29   DISTINCT col2 )
15f0: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
1600: 0d 0a 2d 31 30 35 0d 0a 0d 0a 73 6b 69 70 69 66  ..-105....skipif
1610: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1620: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1630: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
1640: 32 0d 0a 53 45 4c 45 43 54 20 31 36 20 2d 20 2b  2..SELECT 16 - +
1650: 20 2b 20 53 55 4d 20 28 20 44 49 53 54 49 4e 43   + SUM ( DISTINC
1660: 54 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61  T col2 ) FROM ta
1670: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 35 0d 0a  b2..----..-105..
1680: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1690: 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
16a0: 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
16b0: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
16c0: 61 62 65 6c 2d 32 33 0d 0a 53 45 4c 45 43 54 20  abel-23..SELECT 
16d0: 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  * FROM tab1 WHER
16e0: 45 20 2d 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 43  E - + col0 + - C
16f0: 41 53 54 28 20 2b 20 2b 20 35 39 20 41 53 20 53  AST( + + 59 AS S
1700: 49 47 4e 45 44 20 29 20 42 45 54 57 45 45 4e 20  IGNED ) BETWEEN 
1710: 2d 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c  - - col0 * + col
1720: 30 20 2b 20 2b 20 2b 20 63 6f 6c 32 20 41 4e 44  0 + + + col2 AND
1730: 20 28 20 2b 20 28 20 2b 20 2b 20 63 6f 6c 32 20   ( + ( + + col2 
1740: 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  ) )..----....ski
1750: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1760: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1770: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
1780: 62 65 6c 2d 32 33 0d 0a 53 45 4c 45 43 54 20 2a  bel-23..SELECT *
1790: 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
17a0: 20 2d 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 43 41   - + col0 + - CA
17b0: 53 54 20 28 20 2b 20 2b 20 35 39 20 41 53 20 49  ST ( + + 59 AS I
17c0: 4e 54 45 47 45 52 20 29 20 42 45 54 57 45 45 4e  NTEGER ) BETWEEN
17d0: 20 2d 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 63 6f   - - col0 * + co
17e0: 6c 30 20 2b 20 2b 20 2b 20 63 6f 6c 32 20 41 4e  l0 + + + col2 AN
17f0: 44 20 28 20 2b 20 28 20 2b 20 2b 20 63 6f 6c 32  D ( + ( + + col2
1800: 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75   ) )..----....qu
1810: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1820: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
1830: 6f 6c 30 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f  ol0 + - col0 FRO
1840: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
1850: 48 45 52 45 20 63 6f 6c 30 20 2b 20 2b 20 63 6f  HERE col0 + + co
1860: 6c 31 20 2a 20 2b 20 28 20 2b 20 2b 20 36 20 29  l1 * + ( + + 6 )
1870: 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
1880: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1890: 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
18a0: 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
18b0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
18c0: 65 6c 2d 32 35 0d 0a 53 45 4c 45 43 54 20 28 20  el-25..SELECT ( 
18d0: 34 32 20 29 20 2b 20 2d 20 63 6f 6c 32 20 2a 20  42 ) + - col2 * 
18e0: 2b 20 2d 20 43 41 53 54 28 20 63 6f 6c 30 20 41  + - CAST( col0 A
18f0: 53 20 53 49 47 4e 45 44 20 29 20 2a 20 33 39 20  S SIGNED ) * 39 
1900: 2b 20 43 41 53 54 28 20 2d 20 63 6f 6c 30 20 41  + CAST( - col0 A
1910: 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f  S SIGNED ) AS co
1920: 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
1930: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 37 35 32  cor0..----..2752
1940: 32 0d 0a 33 33 38 38 35 0d 0a 33 37 34 34 36 32  2..33885..374462
1950: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1960: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1970: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
1980: 72 74 20 6c 61 62 65 6c 2d 32 35 0d 0a 53 45 4c  rt label-25..SEL
1990: 45 43 54 20 28 20 34 32 20 29 20 2b 20 2d 20 63  ECT ( 42 ) + - c
19a0: 6f 6c 32 20 2a 20 2b 20 2d 20 43 41 53 54 20 28  ol2 * + - CAST (
19b0: 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45 52   col0 AS INTEGER
19c0: 20 29 20 2a 20 33 39 20 2b 20 43 41 53 54 20 28   ) * 39 + CAST (
19d0: 20 2d 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47   - col0 AS INTEG
19e0: 45 52 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  ER ) AS col1 FRO
19f0: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
1a00: 2d 2d 2d 2d 0d 0a 32 37 35 32 32 0d 0a 33 33 38  ----..27522..338
1a10: 38 35 0d 0a 33 37 34 34 36 32 0d 0a 0d 0a 6f 6e  85..374462....on
1a20: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
1a30: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
1a40: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1a50: 20 6c 61 62 65 6c 2d 32 36 0d 0a 53 45 4c 45 43   label-26..SELEC
1a60: 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b  T - COUNT( * ) +
1a70: 20 2d 20 28 20 2b 20 33 32 20 29 20 46 52 4f 4d   - ( + 32 ) FROM
1a80: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
1a90: 2d 2d 2d 0d 0a 2d 33 35 0d 0a 0d 0a 73 6b 69 70  ---..-35....skip
1aa0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1ab0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1ac0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1ad0: 2d 32 36 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f  -26..SELECT - CO
1ae0: 55 4e 54 20 28 20 2a 20 29 20 2b 20 2d 20 28 20  UNT ( * ) + - ( 
1af0: 2b 20 33 32 20 29 20 46 52 4f 4d 20 74 61 62 32  + 32 ) FROM tab2
1b00: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1b10: 2d 33 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -35....onlyif my
1b20: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
1b30: 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a  x: DECIMAL type:
1b40: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1b50: 72 74 20 6c 61 62 65 6c 2d 32 37 0d 0a 53 45 4c  rt label-27..SEL
1b60: 45 43 54 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c  ECT + CAST( NULL
1b70: 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20 2a 20   AS DECIMAL ) * 
1b80: 2d 20 2d 20 36 39 20 2b 20 2d 20 63 6f 6c 31 20  - - 69 + - col1 
1b90: 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a  FROM tab0 cor0..
1ba0: 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
1bb0: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
1bc0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1bd0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1be0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
1bf0: 37 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54  7..SELECT + CAST
1c00: 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20   ( NULL AS REAL 
1c10: 29 20 2a 20 2d 20 2d 20 36 39 20 2b 20 2d 20 63  ) * - - 69 + - c
1c20: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  ol1 FROM tab0 co
1c30: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
1c40: 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  NULL..NULL....qu
1c50: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1c60: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
1c70: 20 35 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   5 AS col2 FROM 
1c80: 74 61 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f  tab1 AS cor0 CRO
1c90: 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53 20  SS JOIN tab2 AS 
1ca0: 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 0d 0a  cor1..----..-5..
1cb0: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
1cc0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
1cd0: 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
1ce0: 54 20 4e 55 4c 4c 20 3c 3d 20 2b 20 2b 20 37 38  T NULL <= + + 78
1cf0: 20 2a 20 63 6f 6c 30 20 2d 20 2d 20 2b 20 37 34   * col0 - - + 74
1d00: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
1d10: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
1d20: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
1d30: 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
1d40: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 30 0d 0a 53  sort label-30..S
1d50: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
1d60: 20 63 6f 6c 32 20 2a 20 2d 20 2d 20 43 41 53 54   col2 * - - CAST
1d70: 28 20 31 36 20 41 53 20 53 49 47 4e 45 44 20 29  ( 16 AS SIGNED )
1d80: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
1d90: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 38 38 0d  b1..----..-1088.
1da0: 0a 2d 31 35 33 36 0d 0a 2d 39 34 34 0d 0a 0d 0a  .-1536..-944....
1db0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1dc0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1dd0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1de0: 61 62 65 6c 2d 33 30 0d 0a 53 45 4c 45 43 54 20  abel-30..SELECT 
1df0: 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20  DISTINCT - col2 
1e00: 2a 20 2d 20 2d 20 43 41 53 54 20 28 20 31 36 20  * - - CAST ( 16 
1e10: 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20  AS INTEGER ) AS 
1e20: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col2 FROM tab1..
1e30: 2d 2d 2d 2d 0d 0a 2d 31 30 38 38 0d 0a 2d 31 35  ----..-1088..-15
1e40: 33 36 0d 0a 2d 39 34 34 0d 0a 0d 0a 71 75 65 72  36..-944....quer
1e50: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
1e60: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
1e70: 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  0 WHERE NOT NULL
1e80: 20 42 45 54 57 45 45 4e 20 2b 20 2d 20 39 36 20   BETWEEN + - 96 
1e90: 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  AND NULL..----..
1ea0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1eb0: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
1ec0: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
1ed0: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 32 0d 0a 53  sort label-32..S
1ee0: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
1ef0: 20 2b 20 43 4f 55 4e 54 28 20 2d 20 2b 20 31 36   + COUNT( - + 16
1f00: 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
1f10: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d  cor0..----..3...
1f20: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1f30: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1f40: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1f50: 6c 61 62 65 6c 2d 33 32 0d 0a 53 45 4c 45 43 54  label-32..SELECT
1f60: 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 43 4f   DISTINCT + + CO
1f70: 55 4e 54 20 28 20 2d 20 2b 20 31 36 20 29 20 46  UNT ( - + 16 ) F
1f80: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1f90: 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c  ..----..3....onl
1fa0: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
1fb0: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
1fc0: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
1fd0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 33  rowsort label-33
1fe0: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41 53  ..SELECT ALL CAS
1ff0: 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
2000: 44 20 29 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 63  D ) + col0 + + c
2010: 6f 6c 30 20 2b 20 2d 20 2d 20 43 41 53 54 28 20  ol0 + - - CAST( 
2020: 2d 20 32 32 20 41 53 20 53 49 47 4e 45 44 20 29  - 22 AS SIGNED )
2030: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
2040: 62 30 20 63 6f 72 30 20 57 48 45 52 45 20 28 20  b0 cor0 WHERE ( 
2050: 63 6f 6c 31 20 2a 20 2d 20 28 20 2d 20 63 6f 6c  col1 * - ( - col
2060: 31 20 29 20 2b 20 2d 20 37 34 20 29 20 4e 4f 54  1 ) + - 74 ) NOT
2070: 20 42 45 54 57 45 45 4e 20 28 20 63 6f 6c 31 20   BETWEEN ( col1 
2080: 29 20 41 4e 44 20 43 41 53 54 28 20 2b 20 2d 20  ) AND CAST( + - 
2090: 32 37 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a  27 AS SIGNED ) *
20a0: 20 2d 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d   - - col1..----.
20b0: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
20c0: 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
20d0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
20e0: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
20f0: 6f 72 74 20 6c 61 62 65 6c 2d 33 33 0d 0a 53 45  ort label-33..SE
2100: 4c 45 43 54 20 41 4c 4c 20 43 41 53 54 20 28 20  LECT ALL CAST ( 
2110: 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
2120: 29 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c  ) + col0 + + col
2130: 30 20 2b 20 2d 20 2d 20 43 41 53 54 20 28 20 2d  0 + - - CAST ( -
2140: 20 32 32 20 41 53 20 49 4e 54 45 47 45 52 20 29   22 AS INTEGER )
2150: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
2160: 62 30 20 63 6f 72 30 20 57 48 45 52 45 20 28 20  b0 cor0 WHERE ( 
2170: 63 6f 6c 31 20 2a 20 2d 20 28 20 2d 20 63 6f 6c  col1 * - ( - col
2180: 31 20 29 20 2b 20 2d 20 37 34 20 29 20 4e 4f 54  1 ) + - 74 ) NOT
2190: 20 42 45 54 57 45 45 4e 20 28 20 63 6f 6c 31 20   BETWEEN ( col1 
21a0: 29 20 41 4e 44 20 43 41 53 54 20 28 20 2b 20 2d  ) AND CAST ( + -
21b0: 20 32 37 20 41 53 20 49 4e 54 45 47 45 52 20 29   27 AS INTEGER )
21c0: 20 2a 20 2d 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d   * - - col1..---
21d0: 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
21e0: 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ULL....onlyif my
21f0: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
2200: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
2210: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2220: 33 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  34..SELECT ALL +
2230: 20 2b 20 37 36 20 2a 20 53 55 4d 28 20 41 4c 4c   + 76 * SUM( ALL
2240: 20 2d 20 28 20 2d 20 63 6f 6c 30 20 29 20 29 20   - ( - col0 ) ) 
2250: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
2260: 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37 32 35 32 0d 0a  0..----..17252..
2270: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2280: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2290: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
22a0: 20 6c 61 62 65 6c 2d 33 34 0d 0a 53 45 4c 45 43   label-34..SELEC
22b0: 54 20 41 4c 4c 20 2b 20 2b 20 37 36 20 2a 20 53  T ALL + + 76 * S
22c0: 55 4d 20 28 20 41 4c 4c 20 2d 20 28 20 2d 20 63  UM ( ALL - ( - c
22d0: 6f 6c 30 20 29 20 29 20 46 52 4f 4d 20 74 61 62  ol0 ) ) FROM tab
22e0: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
22f0: 0a 31 37 32 35 32 0d 0a 0d 0a 73 6b 69 70 69 66  .17252....skipif
2300: 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
2310: 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
2320: 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
2330: 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
2340: 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
2350: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
2360: 20 2b 20 39 35 20 63 6f 6c 32 20 46 52 4f 4d 20   + 95 col2 FROM 
2370: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
2380: 2d 2d 0d 0a 2d 39 35 0d 0a 2d 39 35 0d 0a 2d 39  --..-95..-95..-9
2390: 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  5....query I row
23a0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63  sort..SELECT + c
23b0: 6f 6c 32 20 2a 20 2d 20 34 30 20 46 52 4f 4d 20  ol2 * - 40 FROM 
23c0: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38 38  tab0..----..-188
23d0: 30 0d 0a 2d 33 39 36 30 0d 0a 2d 34 30 30 0d 0a  0..-3960..-400..
23e0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
23f0: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
2400: 39 37 20 2a 20 2d 20 2b 20 63 6f 6c 32 20 41 53  97 * - + col2 AS
2410: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d   col2 FROM tab2.
2420: 0a 2d 2d 2d 2d 0d 0a 32 32 33 31 0d 0a 33 38 38  .----..2231..388
2430: 30 0d 0a 35 36 32 36 0d 0a 0d 0a 6f 6e 6c 79 69  0..5626....onlyi
2440: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
2450: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
2460: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2470: 62 65 6c 2d 33 38 0d 0a 53 45 4c 45 43 54 20 2d  bel-38..SELECT -
2480: 20 36 39 20 2a 20 2b 20 43 4f 55 4e 54 28 20 44   69 * + COUNT( D
2490: 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20 29  ISTINCT + col0 )
24a0: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
24b0: 0d 0a 2d 32 30 37 0d 0a 0d 0a 73 6b 69 70 69 66  ..-207....skipif
24c0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
24d0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
24e0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
24f0: 38 0d 0a 53 45 4c 45 43 54 20 2d 20 36 39 20 2a  8..SELECT - 69 *
2500: 20 2b 20 43 4f 55 4e 54 20 28 20 44 49 53 54 49   + COUNT ( DISTI
2510: 4e 43 54 20 2b 20 63 6f 6c 30 20 29 20 46 52 4f  NCT + col0 ) FRO
2520: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  M tab0..----..-2
2530: 30 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  07....onlyif mys
2540: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
2550: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
2560: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
2570: 39 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28  9..SELECT COUNT(
2580: 20 41 4c 4c 20 2b 20 2b 20 63 6f 6c 31 20 29 20   ALL + + col1 ) 
2590: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
25a0: 31 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b  1..----..3....sk
25b0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
25c0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
25d0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
25e0: 65 6c 2d 33 39 0d 0a 53 45 4c 45 43 54 20 43 4f  el-39..SELECT CO
25f0: 55 4e 54 20 28 20 41 4c 4c 20 2b 20 2b 20 63 6f  UNT ( ALL + + co
2600: 6c 31 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  l1 ) AS col2 FRO
2610: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  M tab1..----..3.
2620: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2630: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
2640: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
2650: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 30 0d 0a  wsort label-40..
2660: 53 45 4c 45 43 54 20 2d 20 33 36 20 2a 20 43 4f  SELECT - 36 * CO
2670: 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30  UNT( * ) AS col0
2680: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
2690: 0d 0a 2d 31 30 38 0d 0a 0d 0a 73 6b 69 70 69 66  ..-108....skipif
26a0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
26b0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
26c0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
26d0: 30 0d 0a 53 45 4c 45 43 54 20 2d 20 33 36 20 2a  0..SELECT - 36 *
26e0: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
26f0: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col0 FROM tab1..
2700: 2d 2d 2d 2d 0d 0a 2d 31 30 38 0d 0a 0d 0a 71 75  ----..-108....qu
2710: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
2720: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c  SELECT ALL + col
2730: 31 20 41 53 20 63 6f 6c 32 2c 20 28 20 2d 20 32  1 AS col2, ( - 2
2740: 39 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  9 ) AS col0 FROM
2750: 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a   tab0..----..1..
2760: 2d 32 39 0d 0a 32 31 0d 0a 2d 32 39 0d 0a 38 31  -29..21..-29..81
2770: 0d 0a 2d 32 39 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-29....query I
2780: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
2790: 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
27a0: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
27b0: 57 48 45 52 45 20 4e 4f 54 20 28 20 2b 20 63 6f  WHERE NOT ( + co
27c0: 6c 31 20 2b 20 63 6f 6c 30 20 29 20 3c 20 28 20  l1 + col0 ) < ( 
27d0: 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  NULL )..----....
27e0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
27f0: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2800: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2810: 72 74 20 6c 61 62 65 6c 2d 34 33 0d 0a 53 45 4c  rt label-43..SEL
2820: 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20 2a  ECT ALL COUNT( *
2830: 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
2840: 74 61 62 32 20 63 6f 72 30 20 43 52 4f 53 53 20  tab2 cor0 CROSS 
2850: 4a 4f 49 4e 20 74 61 62 31 20 41 53 20 63 6f 72  JOIN tab1 AS cor
2860: 31 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29  1 WHERE ( NULL )
2870: 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
2880: 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..0....skipif 
2890: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
28a0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
28b0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 33  rowsort label-43
28c0: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55  ..SELECT ALL COU
28d0: 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30  NT ( * ) AS col0
28e0: 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20   FROM tab2 cor0 
28f0: 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20  CROSS JOIN tab1 
2900: 41 53 20 63 6f 72 31 20 57 48 45 52 45 20 28 20  AS cor1 WHERE ( 
2910: 4e 55 4c 4c 20 29 20 49 53 20 4e 4f 54 20 4e 55  NULL ) IS NOT NU
2920: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f  LL..----..0....o
2930: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
2940: 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
2950: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
2960: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
2970: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2980: 6c 2d 34 34 0d 0a 53 45 4c 45 43 54 20 44 49 53  l-44..SELECT DIS
2990: 54 49 4e 43 54 20 43 41 53 54 28 20 4e 55 4c 4c  TINCT CAST( NULL
29a0: 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2d   AS SIGNED ) * -
29b0: 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20   + COUNT( * ) + 
29c0: 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 63 6f 6c  - COUNT( * ) col
29d0: 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
29e0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
29f0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2a00: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2a10: 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
2a20: 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
2a30: 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
2a40: 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
2a50: 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
2a60: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2a70: 2d 34 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  -44..SELECT DIST
2a80: 49 4e 43 54 20 43 41 53 54 20 28 20 4e 55 4c 4c  INCT CAST ( NULL
2a90: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20   AS INTEGER ) * 
2aa0: 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  - + COUNT ( * ) 
2ab0: 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  + - COUNT ( * ) 
2ac0: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
2ad0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
2ae0: 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  LL....query I ro
2af0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
2b00: 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20 46 52  STINCT + col0 FR
2b10: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
2b20: 57 48 45 52 45 20 63 6f 6c 30 20 2b 20 2d 20 28  WHERE col0 + - (
2b30: 20 2b 20 2d 20 63 6f 6c 32 20 29 20 49 53 20 4e   + - col2 ) IS N
2b40: 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 34  OT NULL..----..4
2b50: 36 0d 0a 36 34 0d 0a 37 35 0d 0a 0d 0a 6f 6e 6c  6..64..75....onl
2b60: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
2b70: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
2b80: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2b90: 6c 61 62 65 6c 2d 34 36 0d 0a 53 45 4c 45 43 54  label-46..SELECT
2ba0: 20 41 4c 4c 20 2b 20 33 33 20 2a 20 43 4f 55 4e   ALL + 33 * COUN
2bb0: 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32  T( * ) FROM tab2
2bc0: 0d 0a 2d 2d 2d 2d 0d 0a 39 39 0d 0a 0d 0a 73 6b  ..----..99....sk
2bd0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2be0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2bf0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2c00: 65 6c 2d 34 36 0d 0a 53 45 4c 45 43 54 20 41 4c  el-46..SELECT AL
2c10: 4c 20 2b 20 33 33 20 2a 20 43 4f 55 4e 54 20 28  L + 33 * COUNT (
2c20: 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a   * ) FROM tab2..
2c30: 2d 2d 2d 2d 0d 0a 39 39 0d 0a 0d 0a 71 75 65 72  ----..99....quer
2c40: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2c50: 45 43 54 20 2b 20 36 20 2b 20 2b 20 2d 20 63 6f  ECT + 6 + + - co
2c60: 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l0 FROM tab1..--
2c70: 2d 2d 0d 0a 2d 34 35 0d 0a 2d 37 39 0d 0a 2d 38  --..-45..-79..-8
2c80: 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  5....query I row
2c90: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 28 20 2d  sort..SELECT ( -
2ca0: 20 63 6f 6c 30 20 29 20 2b 20 2d 20 2d 20 63 6f   col0 ) + - - co
2cb0: 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l0 AS col0 FROM 
2cc0: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30  tab0..----..0..0
2cd0: 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ..0....query I r
2ce0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 38  owsort..SELECT 8
2cf0: 38 20 2b 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20  8 + - col2 FROM 
2d00: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 30 0d 0a  tab2..----..30..
2d10: 34 38 0d 0a 36 35 0d 0a 0d 0a 71 75 65 72 79 20  48..65....query 
2d20: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
2d30: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
2d40: 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
2d50: 4f 54 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 63 6f  OT + col2 + - co
2d60: 6c 31 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l1 <> NULL..----
2d70: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
2d80: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63  sort..SELECT + c
2d90: 6f 6c 32 2c 20 33 37 20 2b 20 2d 20 63 6f 6c 30  ol2, 37 + - col0
2da0: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
2db0: 0d 0a 35 39 0d 0a 2d 34 38 0d 0a 36 38 0d 0a 2d  ..59..-48..68..-
2dc0: 35 34 0d 0a 39 36 0d 0a 2d 31 34 0d 0a 0d 0a 6f  54..96..-14....o
2dd0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
2de0: 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
2df0: 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
2e00: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2e10: 35 32 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c  52..SELECT + col
2e20: 30 20 44 49 56 20 2d 20 2b 20 37 31 20 41 53 20  0 DIV - + 71 AS 
2e30: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col2 FROM tab2..
2e40: 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 30 0d 0a 30 0d 0a  ----..-1..0..0..
2e50: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2e60: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2e70: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2e80: 20 6c 61 62 65 6c 2d 35 32 0d 0a 53 45 4c 45 43   label-52..SELEC
2e90: 54 20 2b 20 63 6f 6c 30 20 2f 20 2d 20 2b 20 37  T + col0 / - + 7
2ea0: 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  1 AS col2 FROM t
2eb0: 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 30  ab2..----..-1..0
2ec0: 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ..0....query I r
2ed0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
2ee0: 4c 4c 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 2b 20  LL + col2 * + + 
2ef0: 35 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  52 AS col1 FROM 
2f00: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 34 34 34  tab0..----..2444
2f10: 0d 0a 35 31 34 38 0d 0a 35 32 30 0d 0a 0d 0a 6f  ..5148..520....o
2f20: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
2f30: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
2f40: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2f50: 74 20 6c 61 62 65 6c 2d 35 34 0d 0a 53 45 4c 45  t label-54..SELE
2f60: 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 33 38  CT DISTINCT + 38
2f70: 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20   + + COUNT( * ) 
2f80: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
2f90: 32 0d 0a 2d 2d 2d 2d 0d 0a 34 31 0d 0a 0d 0a 73  2..----..41....s
2fa0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2fb0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2fc0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2fd0: 62 65 6c 2d 35 34 0d 0a 53 45 4c 45 43 54 20 44  bel-54..SELECT D
2fe0: 49 53 54 49 4e 43 54 20 2b 20 33 38 20 2b 20 2b  ISTINCT + 38 + +
2ff0: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
3000: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
3010: 2d 2d 2d 2d 0d 0a 34 31 0d 0a 0d 0a 71 75 65 72  ----..41....quer
3020: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
3030: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 33  ECT DISTINCT + 3
3040: 32 20 2d 20 2d 20 28 20 2b 20 63 6f 6c 30 20 29  2 - - ( + col0 )
3050: 20 2a 20 35 39 20 2b 20 2b 20 2b 20 37 33 20 41   * 59 + + + 73 A
3060: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
3070: 0d 0a 2d 2d 2d 2d 0d 0a 33 31 31 34 0d 0a 35 31  ..----..3114..51
3080: 32 30 0d 0a 35 34 37 34 0d 0a 0d 0a 71 75 65 72  20..5474....quer
3090: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
30a0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
30b0: 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
30c0: 4e 55 4c 4c 20 3c 3e 20 37 0d 0a 2d 2d 2d 2d 0d  NULL <> 7..----.
30d0: 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
30e0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
30f0: 49 4e 43 54 20 2d 20 32 20 2a 20 2d 20 2b 20 63  INCT - 2 * - + c
3100: 6f 6c 32 20 2a 20 2d 20 63 6f 6c 32 2c 20 63 6f  ol2 * - col2, co
3110: 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l0 AS col1 FROM 
3120: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
3130: 2d 2d 0d 0a 2d 31 38 34 33 32 0d 0a 35 31 0d 0a  --..-18432..51..
3140: 2d 36 39 36 32 0d 0a 38 35 0d 0a 2d 39 32 34 38  -6962..85..-9248
3150: 0d 0a 39 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..91....onlyif m
3160: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
3170: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
3180: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
3190: 2d 35 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  -58..SELECT DIST
31a0: 49 4e 43 54 20 2d 20 4d 49 4e 28 20 2d 20 63 6f  INCT - MIN( - co
31b0: 6c 32 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  l2 ) AS col2 FRO
31c0: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 39 36  M tab1..----..96
31d0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
31e0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
31f0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
3200: 72 74 20 6c 61 62 65 6c 2d 35 38 0d 0a 53 45 4c  rt label-58..SEL
3210: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 4d  ECT DISTINCT - M
3220: 49 4e 20 28 20 2d 20 63 6f 6c 32 20 29 20 41 53  IN ( - col2 ) AS
3230: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
3240: 0a 2d 2d 2d 2d 0d 0a 39 36 0d 0a 0d 0a 71 75 65  .----..96....que
3250: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
3260: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
3270: 37 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  7 FROM tab1 AS c
3280: 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
3290: 61 62 30 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d  ab0 AS cor1..---
32a0: 2d 0d 0a 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -..7....onlyif m
32b0: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
32c0: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
32d0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
32e0: 2d 36 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  -60..SELECT DIST
32f0: 49 4e 43 54 20 2d 20 2b 20 32 20 2a 20 43 4f 55  INCT - + 2 * COU
3300: 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20  NT( * ) AS col0 
3310: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
3320: 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62  0 CROSS JOIN tab
3330: 30 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d  0 AS cor1..----.
3340: 0a 2d 31 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-18....skipif m
3350: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
3360: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
3370: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 30 0d  owsort label-60.
3380: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
3390: 20 2d 20 2b 20 32 20 2a 20 43 4f 55 4e 54 20 28   - + 2 * COUNT (
33a0: 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f   * ) AS col0 FRO
33b0: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 43  M tab0 AS cor0 C
33c0: 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 41  ROSS JOIN tab0 A
33d0: 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor1..----..-1
33e0: 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  8....query I row
33f0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 36  sort..SELECT + 6
3400: 36 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  6 FROM tab1 cor0
3410: 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
3420: 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
3430: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
3440: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
3450: 4e 45 44 20 74 79 70 65 3a 20 44 49 56 20 66 6f  NED type: DIV fo
3460: 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
3470: 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
3480: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32 0d 0a  wsort label-62..
3490: 53 45 4c 45 43 54 20 2d 20 2d 20 63 6f 6c 30 20  SELECT - - col0 
34a0: 44 49 56 20 2d 20 2b 20 43 41 53 54 28 20 2d 20  DIV - + CAST( - 
34b0: 2b 20 36 38 20 41 53 20 53 49 47 4e 45 44 20 29  + 68 AS SIGNED )
34c0: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
34d0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a  r0..----..0..0..
34e0: 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
34f0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
3500: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
3510: 6f 72 74 20 6c 61 62 65 6c 2d 36 32 0d 0a 53 45  ort label-62..SE
3520: 4c 45 43 54 20 2d 20 2d 20 63 6f 6c 30 20 2f 20  LECT - - col0 / 
3530: 2d 20 2b 20 43 41 53 54 20 28 20 2d 20 2b 20 36  - + CAST ( - + 6
3540: 38 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 46  8 AS INTEGER ) F
3550: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
3560: 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 31 0d  ..----..0..0..1.
3570: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
3580: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
3590: 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
35a0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
35b0: 62 65 6c 2d 36 33 0d 0a 53 45 4c 45 43 54 20 41  bel-63..SELECT A
35c0: 4c 4c 20 2d 20 63 6f 6c 30 20 2a 20 33 31 20 2d  LL - col0 * 31 -
35d0: 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   - CAST( NULL AS
35e0: 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c   SIGNED ) AS col
35f0: 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
3600: 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  or0 WHERE NOT + 
3610: 38 31 20 2f 20 2d 20 2d 20 63 6f 6c 31 20 2a 20  81 / - - col1 * 
3620: 2b 20 38 35 20 4e 4f 54 20 49 4e 20 28 20 2d 20  + 85 NOT IN ( - 
3630: 2d 20 63 6f 6c 32 2c 20 32 20 2a 20 2b 20 63 6f  - col2, 2 * + co
3640: 6c 32 2c 20 28 20 2b 20 63 6f 6c 32 20 29 20 29  l2, ( + col2 ) )
3650: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
3660: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
3670: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
3680: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
3690: 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  3..SELECT ALL - 
36a0: 63 6f 6c 30 20 2a 20 33 31 20 2d 20 2d 20 43 41  col0 * 31 - - CA
36b0: 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
36c0: 45 47 45 52 20 29 20 41 53 20 63 6f 6c 30 20 46  EGER ) AS col0 F
36d0: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
36e0: 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 38 31 20   WHERE NOT + 81 
36f0: 2f 20 2d 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 38  / - - col1 * + 8
3700: 35 20 4e 4f 54 20 49 4e 20 28 20 2d 20 2d 20 63  5 NOT IN ( - - c
3710: 6f 6c 32 2c 20 32 20 2a 20 2b 20 63 6f 6c 32 2c  ol2, 2 * + col2,
3720: 20 28 20 2b 20 63 6f 6c 32 20 29 20 29 0d 0a 2d   ( + col2 ) )..-
3730: 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
3740: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
3750: 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a  x: DECIMAL type:
3760: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
3770: 72 74 20 6c 61 62 65 6c 2d 36 34 0d 0a 53 45 4c  rt label-64..SEL
3780: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63  ECT DISTINCT + c
3790: 6f 6c 30 20 2a 20 2d 20 63 6f 6c 30 20 2a 20 2d  ol0 * - col0 * -
37a0: 20 63 6f 6c 31 20 2f 20 63 6f 6c 31 20 2f 20 31   col1 / col1 / 1
37b0: 34 20 2d 20 2b 20 2b 20 37 38 20 2a 20 2b 20 2b  4 - + + 78 * + +
37c0: 20 28 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20   ( + CAST( NULL 
37d0: 41 53 20 44 45 43 49 4d 41 4c 20 29 20 29 20 41  AS DECIMAL ) ) A
37e0: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
37f0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
3800: 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
3810: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
3820: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
3830: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 34 0d  owsort label-64.
3840: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
3850: 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 30   + col0 * - col0
3860: 20 2a 20 2d 20 63 6f 6c 31 20 2f 20 63 6f 6c 31   * - col1 / col1
3870: 20 2f 20 31 34 20 2d 20 2b 20 2b 20 37 38 20 2a   / 14 - + + 78 *
3880: 20 2b 20 2b 20 28 20 2b 20 43 41 53 54 20 28 20   + + ( + CAST ( 
3890: 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 29  NULL AS REAL ) )
38a0: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
38b0: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
38c0: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20  ..NULL....query 
38d0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
38e0: 54 20 41 4c 4c 20 63 6f 6c 30 20 2a 20 63 6f 6c  T ALL col0 * col
38f0: 32 20 2d 20 2b 20 2d 20 63 6f 6c 31 20 2b 20 2b  2 - + - col1 + +
3900: 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 28 20 2d 20   + col2 * - ( - 
3910: 2b 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61  + col1 ) FROM ta
3920: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
3930: 0d 0a 31 31 30 31 0d 0a 34 35 39 33 0d 0a 39 37  ..1101..4593..97
3940: 30 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  03....onlyif mys
3950: 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
3960: 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
3970: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
3980: 74 20 6c 61 62 65 6c 2d 36 36 0d 0a 53 45 4c 45  t label-66..SELE
3990: 43 54 20 63 6f 6c 30 2c 20 43 41 53 54 28 20 4e  CT col0, CAST( N
39a0: 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
39b0: 2f 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  / col0 FROM tab2
39c0: 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 4e 55 4c 4c  ..----..46..NULL
39d0: 0d 0a 36 34 0d 0a 4e 55 4c 4c 0d 0a 37 35 0d 0a  ..64..NULL..75..
39e0: 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
39f0: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
3a00: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
3a10: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 36  rowsort label-66
3a20: 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 2c 20 43  ..SELECT col0, C
3a30: 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
3a40: 54 45 47 45 52 20 29 20 2f 20 63 6f 6c 30 20 46  TEGER ) / col0 F
3a50: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
3a60: 34 36 0d 0a 4e 55 4c 4c 0d 0a 36 34 0d 0a 4e 55  46..NULL..64..NU
3a70: 4c 4c 0d 0a 37 35 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  LL..75..NULL....
3a80: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
3a90: 0a 53 45 4c 45 43 54 20 28 20 32 20 29 20 41 53  .SELECT ( 2 ) AS
3aa0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
3ab0: 0a 2d 2d 2d 2d 0d 0a 32 0d 0a 32 0d 0a 32 0d 0a  .----..2..2..2..
3ac0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
3ad0: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
3ae0: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
3af0: 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38 0d 0a 53  sort label-68..S
3b00: 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a 20 29  ELECT COUNT( * )
3b10: 20 2a 20 38 30 20 41 53 20 63 6f 6c 30 20 46 52   * 80 AS col0 FR
3b20: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32  OM tab0..----..2
3b30: 34 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  40....skipif mys
3b40: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
3b50: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
3b60: 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38 0d 0a 53  sort label-68..S
3b70: 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 2a 20  ELECT COUNT ( * 
3b80: 29 20 2a 20 38 30 20 41 53 20 63 6f 6c 30 20 46  ) * 80 AS col0 F
3b90: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
3ba0: 32 34 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  240....query I r
3bb0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
3bc0: 20 38 32 20 2b 20 2d 20 2d 20 63 6f 6c 30 20 46   82 + - - col0 F
3bd0: 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
3be0: 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e  OT NULL IS NOT N
3bf0: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 32 38 0d 0a  ULL..----..128..
3c00: 31 34 36 0d 0a 31 35 37 0d 0a 0d 0a 6f 6e 6c 79  146..157....only
3c10: 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
3c20: 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
3c30: 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
3c40: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 30 0d  owsort label-70.
3c50: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
3c60: 20 37 38 20 44 49 56 20 2d 20 2d 20 63 6f 6c 31   78 DIV - - col1
3c70: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
3c80: 0d 0a 30 0d 0a 33 0d 0a 37 38 0d 0a 0d 0a 73 6b  ..0..3..78....sk
3c90: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
3ca0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
3cb0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
3cc0: 65 6c 2d 37 30 0d 0a 53 45 4c 45 43 54 20 44 49  el-70..SELECT DI
3cd0: 53 54 49 4e 43 54 20 37 38 20 2f 20 2d 20 2d 20  STINCT 78 / - - 
3ce0: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
3cf0: 2d 2d 2d 2d 0d 0a 30 0d 0a 33 0d 0a 37 38 0d 0a  ----..0..3..78..
3d00: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
3d10: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
3d20: 4e 43 54 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31  NCT col0 AS col1
3d30: 2c 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30  , + col1 AS col0
3d40: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
3d50: 0d 0a 35 31 0d 0a 31 34 0d 0a 38 35 0d 0a 35 0d  ..51..14..85..5.
3d60: 0a 39 31 0d 0a 34 37 0d 0a 0d 0a 71 75 65 72 79  .91..47....query
3d70: 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
3d80: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63  ECT DISTINCT + c
3d90: 6f 6c 31 2c 20 2b 20 39 35 20 2a 20 2b 20 63 6f  ol1, + 95 * + co
3da0: 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
3db0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a  cor0..----..51..
3dc0: 32 31 38 35 0d 0a 36 37 0d 0a 35 35 31 30 0d 0a  2185..67..5510..
3dd0: 37 37 0d 0a 33 38 30 30 0d 0a 0d 0a 6f 6e 6c 79  77..3800....only
3de0: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
3df0: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
3e00: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
3e10: 61 62 65 6c 2d 37 33 0d 0a 53 45 4c 45 43 54 20  abel-73..SELECT 
3e20: 41 4c 4c 20 2b 20 2b 20 4d 49 4e 28 20 41 4c 4c  ALL + + MIN( ALL
3e30: 20 28 20 2b 20 28 20 2d 20 63 6f 6c 31 20 29 20   ( + ( - col1 ) 
3e40: 29 20 29 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ) ) FROM tab2 co
3e50: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 37 0d 0a 0d  r0..----..-77...
3e60: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
3e70: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
3e80: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
3e90: 6c 61 62 65 6c 2d 37 33 0d 0a 53 45 4c 45 43 54  label-73..SELECT
3ea0: 20 41 4c 4c 20 2b 20 2b 20 4d 49 4e 20 28 20 41   ALL + + MIN ( A
3eb0: 4c 4c 20 28 20 2b 20 28 20 2d 20 63 6f 6c 31 20  LL ( + ( - col1 
3ec0: 29 20 29 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ) ) ) FROM tab2 
3ed0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 37 0d  cor0..----..-77.
3ee0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
3ef0: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
3f00: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
3f10: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 34 0d 0a  wsort label-74..
3f20: 53 45 4c 45 43 54 20 2d 20 2d 20 38 37 20 2a 20  SELECT - - 87 * 
3f30: 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f  COUNT( * ) AS co
3f40: 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
3f50: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 36 31 0d  cor0..----..261.
3f60: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
3f70: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
3f80: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
3f90: 74 20 6c 61 62 65 6c 2d 37 34 0d 0a 53 45 4c 45  t label-74..SELE
3fa0: 43 54 20 2d 20 2d 20 38 37 20 2a 20 43 4f 55 4e  CT - - 87 * COUN
3fb0: 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20  T ( * ) AS col1 
3fc0: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
3fd0: 30 0d 0a 2d 2d 2d 2d 0d 0a 32 36 31 0d 0a 0d 0a  0..----..261....
3fe0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
3ff0: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
4000: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
4010: 72 74 20 6c 61 62 65 6c 2d 37 35 0d 0a 53 45 4c  rt label-75..SEL
4020: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43  ECT DISTINCT + C
4030: 4f 55 4e 54 28 20 2a 20 29 20 2a 20 33 38 20 46  OUNT( * ) * 38 F
4040: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
4050: 0d 0a 2d 2d 2d 2d 0d 0a 31 31 34 0d 0a 0d 0a 73  ..----..114....s
4060: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
4070: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
4080: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
4090: 62 65 6c 2d 37 35 0d 0a 53 45 4c 45 43 54 20 44  bel-75..SELECT D
40a0: 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54 20  ISTINCT + COUNT 
40b0: 28 20 2a 20 29 20 2a 20 33 38 20 46 52 4f 4d 20  ( * ) * 38 FROM 
40c0: 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
40d0: 2d 2d 0d 0a 31 31 34 0d 0a 0d 0a 71 75 65 72 79  --..114....query
40e0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
40f0: 43 54 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74  CT - col2 FROM t
4100: 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
4110: 45 20 2d 20 63 6f 6c 30 20 4e 4f 54 20 42 45 54  E - col0 NOT BET
4120: 57 45 45 4e 20 63 6f 6c 30 20 41 4e 44 20 2d 20  WEEN col0 AND - 
4130: 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d  col1..----..-59.
4140: 0a 2d 36 38 0d 0a 2d 39 36 0d 0a 0d 0a 6f 6e 6c  .-68..-96....onl
4150: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
4160: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
4170: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
4180: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 37  rowsort label-77
4190: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 39 36 20  ..SELECT ALL 96 
41a0: 2a 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  * + CAST( NULL A
41b0: 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2b 20 63  S SIGNED ) + + c
41c0: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
41d0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
41e0: 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
41f0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
4200: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
4210: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
4220: 6c 61 62 65 6c 2d 37 37 0d 0a 53 45 4c 45 43 54  label-77..SELECT
4230: 20 41 4c 4c 20 39 36 20 2a 20 2b 20 43 41 53 54   ALL 96 * + CAST
4240: 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
4250: 45 52 20 29 20 2b 20 2b 20 63 6f 6c 30 20 46 52  ER ) + + col0 FR
4260: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
4270: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
4280: 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  L..NULL....skipi
4290: 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
42a0: 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
42b0: 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
42c0: 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
42d0: 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
42e0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20  ort..SELECT + + 
42f0: 31 38 20 2a 20 2b 20 33 37 20 63 6f 6c 32 20 46  18 * + 37 col2 F
4300: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
4310: 0d 0a 2d 2d 2d 2d 0d 0a 36 36 36 0d 0a 36 36 36  ..----..666..666
4320: 0d 0a 36 36 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..666....onlyif 
4330: 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
4340: 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
4350: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
4360: 6f 72 74 20 6c 61 62 65 6c 2d 37 39 0d 0a 53 45  ort label-79..SE
4370: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
4380: 63 6f 6c 30 20 44 49 56 20 2b 20 2d 20 38 35 20  col0 DIV + - 85 
4390: 2b 20 34 36 20 2b 20 2b 20 2b 20 63 6f 6c 32 20  + 46 + + + col2 
43a0: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
43b0: 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 34 0d 0a 35 35  0..----..144..55
43c0: 0d 0a 39 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..93....skipif m
43d0: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
43e0: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
43f0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 39 0d  owsort label-79.
4400: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
4410: 20 2b 20 63 6f 6c 30 20 2f 20 2b 20 2d 20 38 35   + col0 / + - 85
4420: 20 2b 20 34 36 20 2b 20 2b 20 2b 20 63 6f 6c 32   + 46 + + + col2
4430: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
4440: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 34 0d 0a 35  r0..----..144..5
4450: 35 0d 0a 39 33 0d 0a 0d 0a 71 75 65 72 79 20 49  5..93....query I
4460: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
4470: 20 41 4c 4c 20 2d 20 28 20 2b 20 63 6f 6c 31 20   ALL - ( + col1 
4480: 29 20 2b 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f  ) + - col0 AS co
4490: 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
44a0: 2d 2d 0d 0a 2d 31 30 38 0d 0a 2d 39 36 0d 0a 2d  --..-108..-96..-
44b0: 39 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  98....query I ro
44c0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
44d0: 63 6f 6c 32 20 2b 20 2d 20 28 20 2d 20 32 30 20  col2 + - ( - 20 
44e0: 29 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32  ) + col0 AS col2
44f0: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
4500: 0d 0a 2d 32 35 0d 0a 34 33 0d 0a 34 36 0d 0a 0d  ..-25..43..46...
4510: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
4520: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
4530: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
4540: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
4550: 6c 2d 38 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  l-82..SELECT ALL
4560: 20 2b 20 63 6f 6c 32 20 2d 20 2b 20 43 41 53 54   + col2 - + CAST
4570: 28 20 63 6f 6c 30 20 41 53 20 53 49 47 4e 45 44  ( col0 AS SIGNED
4580: 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
4590: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
45a0: 2d 2d 0d 0a 2d 32 33 0d 0a 2d 32 36 0d 0a 34 35  --..-23..-26..45
45b0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
45c0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
45d0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
45e0: 72 74 20 6c 61 62 65 6c 2d 38 32 0d 0a 53 45 4c  rt label-82..SEL
45f0: 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 2d  ECT ALL + col2 -
4600: 20 2b 20 43 41 53 54 20 28 20 63 6f 6c 30 20 41   + CAST ( col0 A
4610: 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 63  S INTEGER ) AS c
4620: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
4630: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33   cor0..----..-23
4640: 0d 0a 2d 32 36 0d 0a 34 35 0d 0a 0d 0a 6f 6e 6c  ..-26..45....onl
4650: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
4660: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
4670: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
4680: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33  rowsort label-83
4690: 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 2b 20 2d  ..SELECT + ( + -
46a0: 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
46b0: 49 47 4e 45 44 20 29 20 29 20 63 6f 6c 31 20 46  IGNED ) ) col1 F
46c0: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
46d0: 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
46e0: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  LL..NULL....skip
46f0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
4700: 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
4710: 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
4720: 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
4730: 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
4740: 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
4750: 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
4760: 6f 72 74 20 6c 61 62 65 6c 2d 38 33 0d 0a 53 45  ort label-83..SE
4770: 4c 45 43 54 20 2b 20 28 20 2b 20 2d 20 43 41 53  LECT + ( + - CAS
4780: 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
4790: 47 45 52 20 29 20 29 20 63 6f 6c 31 20 46 52 4f  GER ) ) col1 FRO
47a0: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
47b0: 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
47c0: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20  ..NULL....query 
47d0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
47e0: 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20  T DISTINCT col1 
47f0: 2b 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 39 30 20  + - col1 + - 90 
4800: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
4810: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 30 0d 0a 0d 0a  0..----..-90....
4820: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
4830: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
4840: 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
4850: 6f 72 74 20 6c 61 62 65 6c 2d 38 35 0d 0a 53 45  ort label-85..SE
4860: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
4870: 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  - COUNT( * ) AS 
4880: 63 6f 6c 30 2c 20 28 20 43 4f 55 4e 54 28 20 2a  col0, ( COUNT( *
4890: 20 29 20 29 20 2b 20 2b 20 39 35 20 41 53 20 63   ) ) + + 95 AS c
48a0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
48b0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d   cor0..----..-3.
48c0: 0a 39 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .98....skipif my
48d0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
48e0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72  ible..query II r
48f0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 35 0d  owsort label-85.
4900: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
4910: 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29   + - COUNT ( * )
4920: 20 41 53 20 63 6f 6c 30 2c 20 28 20 43 4f 55 4e   AS col0, ( COUN
4930: 54 20 28 20 2a 20 29 20 29 20 2b 20 2b 20 39 35  T ( * ) ) + + 95
4940: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
4950: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
4960: 0d 0a 2d 33 0d 0a 39 38 0d 0a 0d 0a 73 6b 69 70  ..-3..98....skip
4970: 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
4980: 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
4990: 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
49a0: 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
49b0: 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
49c0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 32 35 20  sort..SELECT 25 
49d0: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 63  col0 FROM tab1 c
49e0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 35 0d 0a 32  or0..----..25..2
49f0: 35 0d 0a 32 35 0d 0a 0d 0a 71 75 65 72 79 20 49  5..25....query I
4a00: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
4a10: 20 41 4c 4c 20 2d 20 2d 20 34 39 20 2b 20 2d 20   ALL - - 49 + - 
4a20: 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f  col2 AS col1 FRO
4a30: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
4a40: 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 2d 31 39 0d 0a  ----..-10..-19..
4a50: 2d 34 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  -47....skipif po
4a60: 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
4a70: 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
4a80: 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
4a90: 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
4aa0: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
4ab0: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b  ..SELECT ALL + +
4ac0: 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 2c 20 63   col2 AS col0, c
4ad0: 6f 6c 31 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  ol1 col2 FROM ta
4ae0: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
4af0: 0d 0a 32 33 0d 0a 35 31 0d 0a 34 30 0d 0a 37 37  ..23..51..40..77
4b00: 0d 0a 35 38 0d 0a 36 37 0d 0a 0d 0a 6f 6e 6c 79  ..58..67....only
4b10: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
4b20: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
4b30: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49  ype: ..query III
4b40: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
4b50: 39 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  9..SELECT * FROM
4b60: 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
4b70: 45 52 45 20 4e 55 4c 4c 20 49 4e 20 28 20 35 30  ERE NULL IN ( 50
4b80: 20 2b 20 2d 20 32 31 2c 20 2b 20 39 37 20 2a 20   + - 21, + 97 * 
4b90: 63 6f 6c 32 20 2a 20 2b 20 2b 20 43 41 53 54 28  col2 * + + CAST(
4ba0: 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
4bb0: 29 20 2f 20 2b 20 63 6f 6c 32 20 2a 20 63 6f 6c  ) / + col2 * col
4bc0: 31 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 29 0d 0a  1 * + - col2 )..
4bd0: 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ----....skipif m
4be0: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
4bf0: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49  tible..query III
4c00: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
4c10: 39 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  9..SELECT * FROM
4c20: 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
4c30: 45 52 45 20 4e 55 4c 4c 20 49 4e 20 28 20 35 30  ERE NULL IN ( 50
4c40: 20 2b 20 2d 20 32 31 2c 20 2b 20 39 37 20 2a 20   + - 21, + 97 * 
4c50: 63 6f 6c 32 20 2a 20 2b 20 2b 20 43 41 53 54 20  col2 * + + CAST 
4c60: 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
4c70: 52 20 29 20 2f 20 2b 20 63 6f 6c 32 20 2a 20 63  R ) / + col2 * c
4c80: 6f 6c 31 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 29  ol1 * + - col2 )
4c90: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
4ca0: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
4cb0: 43 54 20 63 6f 6c 31 2c 20 39 34 20 46 52 4f 4d  CT col1, 94 FROM
4cc0: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
4cd0: 2d 2d 2d 0d 0a 35 31 0d 0a 39 34 0d 0a 36 37 0d  ---..51..94..67.
4ce0: 0a 39 34 0d 0a 37 37 0d 0a 39 34 0d 0a 0d 0a 71  .94..77..94....q
4cf0: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
4d00: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
4d10: 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 2c   - col1 AS col2,
4d20: 20 2b 20 63 6f 6c 30 20 2b 20 63 6f 6c 32 20 46   + col0 + col2 F
4d30: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
4d40: 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 36 39 0d  ..----..-51..69.
4d50: 0a 2d 36 37 0d 0a 31 33 33 0d 0a 2d 37 37 0d 0a  .-67..133..-77..
4d60: 31 30 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  104....onlyif my
4d70: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
4d80: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
4d90: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
4da0: 39 32 0d 0a 53 45 4c 45 43 54 20 4d 49 4e 28 20  92..SELECT MIN( 
4db0: 2b 20 2b 20 34 32 20 29 20 63 6f 6c 30 20 46 52  + + 42 ) col0 FR
4dc0: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
4dd0: 0a 2d 2d 2d 2d 0d 0a 34 32 0d 0a 0d 0a 73 6b 69  .----..42....ski
4de0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
4df0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70  compatible..skip
4e00: 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
4e10: 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
4e20: 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
4e30: 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
4e40: 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
4e50: 73 6f 72 74 20 6c 61 62 65 6c 2d 39 32 0d 0a 53  sort label-92..S
4e60: 45 4c 45 43 54 20 4d 49 4e 20 28 20 2b 20 2b 20  ELECT MIN ( + + 
4e70: 34 32 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74  42 ) col0 FROM t
4e80: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
4e90: 2d 0d 0a 34 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -..42....onlyif 
4ea0: 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
4eb0: 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
4ec0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
4ed0: 6f 72 74 20 6c 61 62 65 6c 2d 39 33 0d 0a 53 45  ort label-93..SE
4ee0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
4ef0: 28 20 2b 20 2d 20 63 6f 6c 31 20 29 20 2a 20 2d  ( + - col1 ) * -
4f00: 20 63 6f 6c 30 20 2d 20 63 6f 6c 30 20 44 49 56   col0 - col0 DIV
4f10: 20 31 37 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   17 AS col1 FROM
4f20: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
4f30: 2d 2d 2d 0d 0a 2d 32 33 34 38 0d 0a 2d 34 39 33  ---..-2348..-493
4f40: 31 0d 0a 2d 35 30 32 39 0d 0a 0d 0a 73 6b 69 70  1..-5029....skip
4f50: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
4f60: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
4f70: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
4f80: 2d 39 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  -93..SELECT DIST
4f90: 49 4e 43 54 20 2d 20 28 20 2b 20 2d 20 63 6f 6c  INCT - ( + - col
4fa0: 31 20 29 20 2a 20 2d 20 63 6f 6c 30 20 2d 20 63  1 ) * - col0 - c
4fb0: 6f 6c 30 20 2f 20 31 37 20 41 53 20 63 6f 6c 31  ol0 / 17 AS col1
4fc0: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
4fd0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 34 38 0d  r0..----..-2348.
4fe0: 0a 2d 34 39 33 31 0d 0a 2d 35 30 32 39 0d 0a 0d  .-4931..-5029...
4ff0: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
5000: 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
5010: 4d 20 74 61 62 31 20 63 6f 72 30 20 57 48 45 52  M tab1 cor0 WHER
5020: 45 20 2b 20 33 34 20 2a 20 2d 20 2d 20 63 6f 6c  E + 34 * - - col
5030: 31 20 2b 20 2d 20 63 6f 6c 30 20 49 53 20 4e 4f  1 + - col0 IS NO
5040: 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20  T NULL..----..9 
5050: 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
5060: 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64 30  o c6c0a4111b36d0
5070: 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34 63  4dbc811a11e4d54c
5080: 61 64 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  ad....query I ro
5090: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
50a0: 63 6f 6c 30 20 2d 20 2b 20 28 20 2b 20 28 20 2b  col0 - + ( + ( +
50b0: 20 33 38 20 29 20 29 20 41 53 20 63 6f 6c 32 20   38 ) ) AS col2 
50c0: 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
50d0: 0a 32 36 0d 0a 33 37 0d 0a 38 0d 0a 0d 0a 71 75  .26..37..8....qu
50e0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
50f0: 45 4c 45 43 54 20 2b 20 2b 20 63 6f 6c 32 20 2f  ELECT + + col2 /
5100: 20 2b 20 37 30 20 41 53 20 63 6f 6c 30 20 46 52   + 70 AS col0 FR
5110: 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 2d 20  OM tab2 WHERE - 
5120: 28 20 63 6f 6c 31 20 29 20 4e 4f 54 20 42 45 54  ( col1 ) NOT BET
5130: 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e 55  WEEN NULL AND NU
5140: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
5150: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
5160: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 36  ECT DISTINCT - 6
5170: 36 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  6 FROM tab2 WHER
5180: 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f  E NOT NULL IS NO
5190: 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 36  T NULL..----..-6
51a0: 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  6....query I row
51b0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
51c0: 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 2d 20 28 20   + col1 + - - ( 
51d0: 2d 20 63 6f 6c 31 20 29 20 2f 20 2b 20 35 20 46  - col1 ) / + 5 F
51e0: 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
51f0: 4f 54 20 2b 20 31 31 20 49 53 20 4e 4f 54 20 4e  OT + 11 IS NOT N
5200: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ULL..----....onl
5210: 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
5220: 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
5230: 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
5240: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 39  rowsort label-99
5250: 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 44 49  ..SELECT col2 DI
5260: 56 20 2b 20 37 31 20 2d 20 2d 20 2d 20 35 35 20  V + 71 - - - 55 
5270: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
5280: 0a 2d 35 34 0d 0a 2d 35 35 0d 0a 2d 35 35 0d 0a  .-54..-55..-55..
5290: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
52a0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
52b0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
52c0: 20 6c 61 62 65 6c 2d 39 39 0d 0a 53 45 4c 45 43   label-99..SELEC
52d0: 54 20 63 6f 6c 32 20 2f 20 2b 20 37 31 20 2d 20  T col2 / + 71 - 
52e0: 2d 20 2d 20 35 35 20 46 52 4f 4d 20 74 61 62 30  - - 55 FROM tab0
52f0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 34 0d 0a 2d 35 35  ..----..-54..-55
5300: 0d 0a 2d 35 35 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-55....query I
5310: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
5320: 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
5330: 62 32 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  b2 WHERE NOT col
5340: 32 20 2a 20 2d 20 38 37 20 49 53 20 4e 4f 54 20  2 * - 87 IS NOT 
5350: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
5360: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
5370: 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2a 20 2b  ELECT - col1 * +
5380: 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 2b 20 63 6f   - col2 + + + co
5390: 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l0 FROM tab1..--
53a0: 2d 2d 0d 0a 31 33 39 35 0d 0a 33 32 38 37 0d 0a  --..1395..3287..
53b0: 33 38 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  380....query III
53c0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
53d0: 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30   ALL * FROM tab0
53e0: 20 63 6f 72 30 20 57 48 45 52 45 20 38 20 49 53   cor0 WHERE 8 IS
53f0: 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
5400: 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
5410: 67 20 74 6f 20 63 34 62 34 32 37 36 35 64 66 66  g to c4b42765dff
5420: 39 34 65 61 61 61 34 36 30 34 30 65 35 33 37 66  94eaaa46040e537f
5430: 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72 79 20 49  b43b7....query I
5440: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
5450: 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 2c  T DISTINCT col2,
5460: 20 35 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d   5 FROM tab1..--
5470: 2d 2d 0d 0a 35 39 0d 0a 35 0d 0a 36 38 0d 0a 35  --..59..5..68..5
5480: 0d 0a 39 36 0d 0a 35 0d 0a 0d 0a 6f 6e 6c 79 69  ..96..5....onlyi
5490: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
54a0: 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
54b0: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
54c0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 34 0d  wsort label-104.
54d0: 0a 53 45 4c 45 43 54 20 43 41 53 54 28 20 4e 55  .SELECT CAST( NU
54e0: 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 63  LL AS SIGNED ) c
54f0: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 2c 20 74  ol1 FROM tab0, t
5500: 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab0 cor0..----..
5510: 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
5520: 20 74 6f 20 63 64 37 61 37 39 30 31 65 34 37 63   to cd7a7901e47c
5530: 31 35 31 35 35 34 30 34 61 66 66 30 64 32 31 36  15155404aff0d216
5540: 66 65 30 62 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  fe0b....skipif m
5550: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
5560: 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
5570: 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
5580: 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
5590: 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
55a0: 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
55b0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
55c0: 6c 61 62 65 6c 2d 31 30 34 0d 0a 53 45 4c 45 43  label-104..SELEC
55d0: 54 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  T CAST ( NULL AS
55e0: 20 49 4e 54 45 47 45 52 20 29 20 63 6f 6c 31 20   INTEGER ) col1 
55f0: 46 52 4f 4d 20 74 61 62 30 2c 20 74 61 62 30 20  FROM tab0, tab0 
5600: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  cor0..----..9 va
5610: 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
5620: 63 64 37 61 37 39 30 31 65 34 37 63 31 35 31 35  cd7a7901e47c1515
5630: 35 34 30 34 61 66 66 30 64 32 31 36 66 65 30 62  5404aff0d216fe0b
5640: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
5650: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
5660: 49 4e 43 54 20 2d 20 32 31 20 41 53 20 63 6f 6c  INCT - 21 AS col
5670: 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
5680: 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
5690: 61 62 30 20 41 53 20 63 6f 72 31 20 57 48 45 52  ab0 AS cor1 WHER
56a0: 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f  E NOT NULL IS NO
56b0: 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  T NULL..----..-2
56c0: 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  1....query I row
56d0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
56e0: 31 20 2a 20 2b 20 2b 20 63 6f 6c 31 20 41 53 20  1 * + + col1 AS 
56f0: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
5700: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39  S cor0..----..19
5710: 36 0d 0a 32 32 30 39 0d 0a 32 35 0d 0a 0d 0a 71  6..2209..25....q
5720: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
5730: 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 39  SELECT ALL - + 9
5740: 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 2a 20 2d 20   * + - col2 * - 
5750: 63 6f 6c 31 20 2b 20 63 6f 6c 32 20 46 52 4f 4d  col1 + col2 FROM
5760: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
5770: 2d 2d 2d 0d 0a 2d 31 38 38 30 0d 0a 2d 33 34 32  ---..-1880..-342
5780: 31 36 0d 0a 2d 37 39 32 0d 0a 0d 0a 6f 6e 6c 79  16..-792....only
5790: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
57a0: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
57b0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
57c0: 61 62 65 6c 2d 31 30 38 0d 0a 53 45 4c 45 43 54  abel-108..SELECT
57d0: 20 43 4f 55 4e 54 28 20 44 49 53 54 49 4e 43 54   COUNT( DISTINCT
57e0: 20 2d 20 36 34 20 29 20 46 52 4f 4d 20 74 61 62   - 64 ) FROM tab
57f0: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
5800: 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .1....skipif mys
5810: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
5820: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
5830: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 38 0d 0a  sort label-108..
5840: 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 44  SELECT COUNT ( D
5850: 49 53 54 49 4e 43 54 20 2d 20 36 34 20 29 20 46  ISTINCT - 64 ) F
5860: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
5870: 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 71 75 65  ..----..1....que
5880: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
5890: 4c 45 43 54 20 34 33 20 2a 20 2b 20 63 6f 6c 32  LECT 43 * + col2
58a0: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
58b0: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
58c0: 0d 0a 31 37 32 30 0d 0a 32 34 39 34 0d 0a 39 38  ..1720..2494..98
58d0: 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  9....query III r
58e0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
58f0: 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
5900: 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
5910: 45 20 4e 55 4c 4c 20 3e 20 63 6f 6c 30 20 2a 20  E NULL > col0 * 
5920: 2b 20 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a  + - col2..----..
5930: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
5940: 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
5950: 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
5960: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
5970: 65 6c 2d 31 31 31 0d 0a 53 45 4c 45 43 54 20 44  el-111..SELECT D
5980: 49 53 54 49 4e 43 54 20 2d 20 2b 20 43 41 53 54  ISTINCT - + CAST
5990: 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
59a0: 20 29 20 2a 20 2b 20 2b 20 63 6f 6c 30 20 2b 20   ) * + + col0 + 
59b0: 2d 20 2d 20 63 6f 6c 30 20 2b 20 63 6f 6c 31 20  - - col0 + col1 
59c0: 2a 20 43 41 53 54 28 20 63 6f 6c 32 20 41 53 20  * CAST( col2 AS 
59d0: 53 49 47 4e 45 44 20 29 20 2a 20 2d 20 63 6f 6c  SIGNED ) * - col
59e0: 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  2 AS col0 FROM t
59f0: 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab2 cor0..----..
5a00: 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
5a10: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
5a20: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
5a30: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31  owsort label-111
5a40: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
5a50: 54 20 2d 20 2b 20 43 41 53 54 20 28 20 4e 55 4c  T - + CAST ( NUL
5a60: 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a  L AS INTEGER ) *
5a70: 20 2b 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 2d 20   + + col0 + - - 
5a80: 63 6f 6c 30 20 2b 20 63 6f 6c 31 20 2a 20 43 41  col0 + col1 * CA
5a90: 53 54 20 28 20 63 6f 6c 32 20 41 53 20 49 4e 54  ST ( col2 AS INT
5aa0: 45 47 45 52 20 29 20 2a 20 2d 20 63 6f 6c 32 20  EGER ) * - col2 
5ab0: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
5ac0: 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  2 cor0..----..NU
5ad0: 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  LL....query I ro
5ae0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
5af0: 4c 20 2b 20 2d 20 28 20 37 32 20 29 20 2a 20 2d  L + - ( 72 ) * -
5b00: 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52   col1 AS col0 FR
5b10: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
5b20: 0a 2d 2d 2d 2d 0d 0a 31 30 30 38 0d 0a 33 33 38  .----..1008..338
5b30: 34 0d 0a 33 36 30 0d 0a 0d 0a 71 75 65 72 79 20  4..360....query 
5b40: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
5b50: 54 20 41 4c 4c 20 32 36 20 2a 20 2b 20 2d 20 35  T ALL 26 * + - 5
5b60: 31 20 2a 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  1 * col0 FROM ta
5b70: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
5b80: 0d 0a 2d 31 31 32 37 31 30 0d 0a 2d 31 32 30 36  ..-112710..-1206
5b90: 36 36 0d 0a 2d 36 37 36 32 36 0d 0a 0d 0a 71 75  66..-67626....qu
5ba0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
5bb0: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
5bc0: 20 63 6f 6c 30 20 2a 20 2b 20 2d 20 31 34 20 2a   col0 * + - 14 *
5bd0: 20 2d 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 35 32   - - col1 * + 52
5be0: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
5bf0: 0d 0a 31 33 33 30 30 35 36 0d 0a 37 30 36 31 36  ..1330056..70616
5c00: 0d 0a 38 38 34 35 32 30 0d 0a 0d 0a 6f 6e 6c 79  ..884520....only
5c10: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
5c20: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
5c30: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
5c40: 61 62 65 6c 2d 31 31 35 0d 0a 53 45 4c 45 43 54  abel-115..SELECT
5c50: 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 28 20 2a 20   ALL + COUNT( * 
5c60: 29 20 2d 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a  ) - - - COUNT( *
5c70: 20 29 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20   ) - - COUNT( * 
5c80: 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
5c90: 61 62 32 20 57 48 45 52 45 20 4e 55 4c 4c 20 49  ab2 WHERE NULL I
5ca0: 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
5cb0: 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
5cc0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
5cd0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
5ce0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 35 0d  wsort label-115.
5cf0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f  .SELECT ALL + CO
5d00: 55 4e 54 20 28 20 2a 20 29 20 2d 20 2d 20 2d 20  UNT ( * ) - - - 
5d10: 43 4f 55 4e 54 20 28 20 2a 20 29 20 2d 20 2d 20  COUNT ( * ) - - 
5d20: 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63  COUNT ( * ) AS c
5d30: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 57 48  ol2 FROM tab2 WH
5d40: 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20  ERE NULL IS NOT 
5d50: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  NULL..----..0...
5d60: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
5d70: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
5d80: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
5d90: 6f 72 74 20 6c 61 62 65 6c 2d 31 31 36 0d 0a 53  ort label-116..S
5da0: 45 4c 45 43 54 20 41 4c 4c 20 2d 20 4d 41 58 28  ELECT ALL - MAX(
5db0: 20 41 4c 4c 20 2b 20 2d 20 63 6f 6c 32 20 29 20   ALL + - col2 ) 
5dc0: 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
5dd0: 0a 32 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .23....skipif my
5de0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
5df0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
5e00: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 36 0d  wsort label-116.
5e10: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 4d 41  .SELECT ALL - MA
5e20: 58 20 28 20 41 4c 4c 20 2b 20 2d 20 63 6f 6c 32  X ( ALL + - col2
5e30: 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d   ) FROM tab2..--
5e40: 2d 2d 0d 0a 32 33 0d 0a 0d 0a 71 75 65 72 79 20  --..23....query 
5e50: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
5e60: 54 20 63 6f 6c 31 20 2a 20 2d 20 2d 20 63 6f 6c  T col1 * - - col
5e70: 30 20 2b 20 2b 20 33 35 20 2b 20 63 6f 6c 30 20  0 + + 35 + col0 
5e80: 2b 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 36 38 20  + - col0 * + 68 
5e90: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
5ea0: 0a 2d 33 39 36 37 0d 0a 2d 36 33 36 37 0d 0a 32  .-3967..-6367..2
5eb0: 34 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  45....query II r
5ec0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
5ed0: 6f 6c 32 20 2b 20 2d 20 2b 20 63 6f 6c 30 20 41  ol2 + - + col0 A
5ee0: 53 20 63 6f 6c 32 2c 20 63 6f 6c 31 20 46 52 4f  S col2, col1 FRO
5ef0: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  M tab1..----..-2
5f00: 33 0d 0a 34 37 0d 0a 2d 32 36 0d 0a 35 0d 0a 34  3..47..-26..5..4
5f10: 35 0d 0a 31 34 0d 0a 0d 0a 71 75 65 72 79 20 49  5..14....query I
5f20: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
5f30: 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 2a 20 2d 20   ALL - col2 * - 
5f40: 2b 20 28 20 2d 20 63 6f 6c 30 20 29 20 41 53 20  + ( - col0 ) AS 
5f50: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col1 FROM tab2..
5f60: 2d 2d 2d 2d 0d 0a 2d 31 30 35 38 0d 0a 2d 32 35  ----..-1058..-25
5f70: 36 30 0d 0a 2d 34 33 35 30 0d 0a 0d 0a 6f 6e 6c  60..-4350....onl
5f80: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
5f90: 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61   syntax: aggrega
5fa0: 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  te syntax: SIGNE
5fb0: 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
5fc0: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
5fd0: 2d 31 32 30 0d 0a 53 45 4c 45 43 54 20 2b 20 2b  -120..SELECT + +
5fe0: 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2d 20   COUNT( * ) + - 
5ff0: 28 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  ( + CAST( NULL A
6000: 53 20 53 49 47 4e 45 44 20 29 20 29 20 2b 20 2b  S SIGNED ) ) + +
6010: 20 43 4f 55 4e 54 28 20 2a 20 29 20 63 6f 6c 32   COUNT( * ) col2
6020: 2c 20 2d 20 28 20 43 4f 55 4e 54 28 20 2a 20 29  , - ( COUNT( * )
6030: 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
6040: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
6050: 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..-3....skipif m
6060: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
6070: 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
6080: 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
6090: 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
60a0: 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
60b0: 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
60c0: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
60d0: 20 6c 61 62 65 6c 2d 31 32 30 0d 0a 53 45 4c 45   label-120..SELE
60e0: 43 54 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a  CT + + COUNT ( *
60f0: 20 29 20 2b 20 2d 20 28 20 2b 20 43 41 53 54 20   ) + - ( + CAST 
6100: 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
6110: 52 20 29 20 29 20 2b 20 2b 20 43 4f 55 4e 54 20  R ) ) + + COUNT 
6120: 28 20 2a 20 29 20 63 6f 6c 32 2c 20 2d 20 28 20  ( * ) col2, - ( 
6130: 43 4f 55 4e 54 20 28 20 2a 20 29 20 29 20 46 52  COUNT ( * ) ) FR
6140: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
6150: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 2d 33 0d  .----..NULL..-3.
6160: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
6170: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44  # CAST syntax: D
6180: 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71  ECIMAL type: ..q
6190: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
61a0: 20 6c 61 62 65 6c 2d 31 32 31 0d 0a 53 45 4c 45   label-121..SELE
61b0: 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
61c0: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
61d0: 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20 49  WHERE NOT col0 I
61e0: 4e 20 28 20 2d 20 38 34 2c 20 2b 20 43 41 53 54  N ( - 84, + CAST
61f0: 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41  ( NULL AS DECIMA
6200: 4c 20 29 20 2b 20 63 6f 6c 31 2c 20 63 6f 6c 31  L ) + col1, col1
6210: 20 2b 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d   + + col1 )..---
6220: 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  -....skipif mysq
6230: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
6240: 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  le..query III ro
6250: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 31 0d  wsort label-121.
6260: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
6270: 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   * FROM tab1 AS 
6280: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63  cor0 WHERE NOT c
6290: 6f 6c 30 20 49 4e 20 28 20 2d 20 38 34 2c 20 2b  ol0 IN ( - 84, +
62a0: 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
62b0: 52 45 41 4c 20 29 20 2b 20 63 6f 6c 31 2c 20 63  REAL ) + col1, c
62c0: 6f 6c 31 20 2b 20 2b 20 63 6f 6c 31 20 29 0d 0a  ol1 + + col1 )..
62d0: 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
62e0: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
62f0: 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79  ax: aggregate sy
6300: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
6310: 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
6320: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 32 0d 0a  sort label-122..
6330: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 31 39 20  SELECT ALL + 19 
6340: 2b 20 2d 20 43 4f 55 4e 54 28 20 44 49 53 54 49  + - COUNT( DISTI
6350: 4e 43 54 20 2d 20 2d 20 43 41 53 54 28 20 4e 55  NCT - - CAST( NU
6360: 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 29  LL AS SIGNED ) )
6370: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
6380: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
6390: 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
63a0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
63b0: 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
63c0: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
63d0: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
63e0: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
63f0: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
6400: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
6410: 65 6c 2d 31 32 32 0d 0a 53 45 4c 45 43 54 20 41  el-122..SELECT A
6420: 4c 4c 20 2b 20 31 39 20 2b 20 2d 20 43 4f 55 4e  LL + 19 + - COUN
6430: 54 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 2d  T ( DISTINCT - -
6440: 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
6450: 49 4e 54 45 47 45 52 20 29 20 29 20 63 6f 6c 31  INTEGER ) ) col1
6460: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
6470: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 0d 0a 0d 0a  r0..----..19....
6480: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
6490: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
64a0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
64b0: 72 74 20 6c 61 62 65 6c 2d 31 32 33 0d 0a 53 45  rt label-123..SE
64c0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 53 55  LECT DISTINCT SU
64d0: 4d 28 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 29 20  M( ALL + col2 ) 
64e0: 2a 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  * + COUNT( * ) F
64f0: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
6500: 0d 0a 2d 2d 2d 2d 0d 0a 34 36 38 0d 0a 0d 0a 73  ..----..468....s
6510: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
6520: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
6530: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
6540: 62 65 6c 2d 31 32 33 0d 0a 53 45 4c 45 43 54 20  bel-123..SELECT 
6550: 44 49 53 54 49 4e 43 54 20 53 55 4d 20 28 20 41  DISTINCT SUM ( A
6560: 4c 4c 20 2b 20 63 6f 6c 32 20 29 20 2a 20 2b 20  LL + col2 ) * + 
6570: 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d  COUNT ( * ) FROM
6580: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
6590: 2d 2d 2d 0d 0a 34 36 38 0d 0a 0d 0a 6f 6e 6c 79  ---..468....only
65a0: 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
65b0: 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
65c0: 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  ion: ..query II 
65d0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
65e0: 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  4..SELECT ALL + 
65f0: 35 30 20 44 49 56 20 2d 20 63 6f 6c 30 2c 20 2d  50 DIV - col0, -
6600: 20 63 6f 6c 30 20 2b 20 2b 20 39 33 20 2a 20 2b   col0 + + 93 * +
6610: 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20   - col0 AS col0 
6620: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
6630: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 34 33  0..----..-1..-43
6640: 32 34 0d 0a 30 0d 0a 2d 36 30 31 36 0d 0a 30 0d  24..0..-6016..0.
6650: 0a 2d 37 30 35 30 0d 0a 0d 0a 73 6b 69 70 69 66  .-7050....skipif
6660: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
6670: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
6680: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
6690: 31 32 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  124..SELECT ALL 
66a0: 2b 20 35 30 20 2f 20 2d 20 63 6f 6c 30 2c 20 2d  + 50 / - col0, -
66b0: 20 63 6f 6c 30 20 2b 20 2b 20 39 33 20 2a 20 2b   col0 + + 93 * +
66c0: 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20   - col0 AS col0 
66d0: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
66e0: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 34 33  0..----..-1..-43
66f0: 32 34 0d 0a 30 0d 0a 2d 36 30 31 36 0d 0a 30 0d  24..0..-6016..0.
6700: 0a 2d 37 30 35 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  .-7050....onlyif
6710: 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
6720: 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
6730: 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
6740: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 35 0d 0a  sort label-125..
6750: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
6760: 2d 20 2b 20 38 30 20 44 49 56 20 2d 20 2d 20 63  - + 80 DIV - - c
6770: 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol1 AS col0 FROM
6780: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
6790: 2d 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 73 6b 69 70 69  ---..-1....skipi
67a0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
67b0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
67c0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
67d0: 31 32 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  125..SELECT DIST
67e0: 49 4e 43 54 20 2d 20 2b 20 38 30 20 2f 20 2d 20  INCT - + 80 / - 
67f0: 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46  - col1 AS col0 F
6800: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
6810: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 6f 6e  ..----..-1....on
6820: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
6830: 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
6840: 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
6850: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
6860: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
6870: 2d 31 32 36 0d 0a 53 45 4c 45 43 54 20 2b 20 2b  -126..SELECT + +
6880: 20 43 4f 55 4e 54 28 20 2a 20 29 20 2f 20 2d 20   COUNT( * ) / - 
6890: 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
68a0: 47 4e 45 44 20 29 20 2b 20 2d 20 43 4f 55 4e 54  GNED ) + - COUNT
68b0: 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ( * ) AS col1 FR
68c0: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
68d0: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
68e0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
68f0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
6900: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
6910: 62 65 6c 2d 31 32 36 0d 0a 53 45 4c 45 43 54 20  bel-126..SELECT 
6920: 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  + + COUNT ( * ) 
6930: 2f 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  / - CAST ( NULL 
6940: 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20 2d  AS INTEGER ) + -
6950: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
6960: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
6970: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
6980: 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  LL....onlyif mys
6990: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
69a0: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
69b0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
69c0: 32 37 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 43  27..SELECT - - C
69d0: 4f 55 4e 54 28 20 44 49 53 54 49 4e 43 54 20 2d  OUNT( DISTINCT -
69e0: 20 2d 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74   - col2 ) FROM t
69f0: 61 62 31 20 57 48 45 52 45 20 2b 20 28 20 2b 20  ab1 WHERE + ( + 
6a00: 36 39 20 29 20 2a 20 2b 20 63 6f 6c 30 20 49 53  69 ) * + col0 IS
6a10: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   NULL..----..0..
6a20: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
6a30: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
6a40: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
6a50: 20 6c 61 62 65 6c 2d 31 32 37 0d 0a 53 45 4c 45   label-127..SELE
6a60: 43 54 20 2d 20 2d 20 43 4f 55 4e 54 20 28 20 44  CT - - COUNT ( D
6a70: 49 53 54 49 4e 43 54 20 2d 20 2d 20 63 6f 6c 32  ISTINCT - - col2
6a80: 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45   ) FROM tab1 WHE
6a90: 52 45 20 2b 20 28 20 2b 20 36 39 20 29 20 2a 20  RE + ( + 69 ) * 
6aa0: 2b 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a  + col0 IS NULL..
6ab0: 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69  ----..0....onlyi
6ac0: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
6ad0: 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65  yntax: aggregate
6ae0: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
6af0: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
6b00: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
6b10: 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  8..SELECT DISTIN
6b20: 43 54 20 33 33 20 2b 20 2b 20 2b 20 31 32 20 2b  CT 33 + + + 12 +
6b30: 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20   - - COUNT( * ) 
6b40: 2a 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  * CAST( NULL AS 
6b50: 53 49 47 4e 45 44 20 29 20 2a 20 2b 20 2d 20 36  SIGNED ) * + - 6
6b60: 36 20 2a 20 41 56 47 20 28 20 2b 20 28 20 28 20  6 * AVG ( + ( ( 
6b70: 63 6f 6c 31 20 29 20 29 20 29 20 41 53 20 63 6f  col1 ) ) ) AS co
6b80: 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
6b90: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
6ba0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
6bb0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
6bc0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
6bd0: 72 74 20 6c 61 62 65 6c 2d 31 32 38 0d 0a 53 45  rt label-128..SE
6be0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 33 33  LECT DISTINCT 33
6bf0: 20 2b 20 2b 20 2b 20 31 32 20 2b 20 2d 20 2d 20   + + + 12 + - - 
6c00: 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 43 41  COUNT ( * ) * CA
6c10: 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
6c20: 45 47 45 52 20 29 20 2a 20 2b 20 2d 20 36 36 20  EGER ) * + - 66 
6c30: 2a 20 41 56 47 20 28 20 2b 20 28 20 28 20 63 6f  * AVG ( + ( ( co
6c40: 6c 31 20 29 20 29 20 29 20 41 53 20 63 6f 6c 31  l1 ) ) ) AS col1
6c50: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
6c60: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
6c70: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
6c80: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
6c90: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
6ca0: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 39 0d 0a  sort label-129..
6cb0: 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28 20  SELECT + COUNT( 
6cc0: 2a 20 29 20 2b 20 28 20 43 4f 55 4e 54 28 20 2a  * ) + ( COUNT( *
6cd0: 20 29 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74   ) ) col1 FROM t
6ce0: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
6cf0: 2d 0d 0a 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..6....skipif m
6d00: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
6d10: 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
6d20: 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
6d30: 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
6d40: 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
6d50: 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
6d60: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
6d70: 6c 61 62 65 6c 2d 31 32 39 0d 0a 53 45 4c 45 43  label-129..SELEC
6d80: 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  T + COUNT ( * ) 
6d90: 2b 20 28 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  + ( COUNT ( * ) 
6da0: 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  ) col1 FROM tab2
6db0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
6dc0: 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  6....query I row
6dd0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63  sort..SELECT + c
6de0: 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol2 AS col2 FROM
6df0: 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
6e00: 45 52 45 20 2d 20 35 30 20 49 53 20 4e 55 4c 4c  ERE - 50 IS NULL
6e10: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
6e20: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
6e30: 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 63  T DISTINCT + - c
6e40: 6f 6c 30 20 2a 20 2d 20 36 38 20 2d 20 63 6f 6c  ol0 * - 68 - col
6e50: 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  0 AS col2 FROM t
6e60: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
6e70: 2d 0d 0a 31 30 30 35 0d 0a 35 38 32 39 0d 0a 36  -..1005..5829..6
6e80: 34 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  499....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 2d 20 2d 20 28 20 2d 20  ISTINCT - - ( - 
6eb0: 32 33 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  23 ) AS col0 FRO
6ec0: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
6ed0: 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a 0d 0a 73 6b 69  ----..-23....ski
6ee0: 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
6ef0: 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
6f00: 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
6f10: 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
6f20: 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72  umns..query II r
6f30: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
6f40: 20 63 6f 6c 31 20 63 6f 6c 31 2c 20 2d 20 63 6f   col1 col1, - co
6f50: 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l2 AS col0 FROM 
6f60: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d  tab2..----..-51.
6f70: 0a 2d 32 33 0d 0a 2d 36 37 0d 0a 2d 35 38 0d 0a  .-23..-67..-58..
6f80: 2d 37 37 0d 0a 2d 34 30 0d 0a 0d 0a 71 75 65 72  -77..-40....quer
6f90: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
6fa0: 45 43 54 20 2b 20 32 36 20 2a 20 63 6f 6c 30 20  ECT + 26 * col0 
6fb0: 2a 20 2d 20 2d 20 38 37 20 2a 20 63 6f 6c 31 20  * - - 87 * col1 
6fc0: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
6fd0: 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 39 34 31 34 0d  0..----..219414.
6fe0: 0a 32 37 34 38 33 33 30 0d 0a 34 31 33 32 36 37  .2748330..413267
6ff0: 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  4....onlyif mysq
7000: 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
7010: 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
7020: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
7030: 6c 61 62 65 6c 2d 31 33 35 0d 0a 53 45 4c 45 43  label-135..SELEC
7040: 54 20 39 36 20 44 49 56 20 2d 20 2d 20 63 6f 6c  T 96 DIV - - col
7050: 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  2 AS col2 FROM t
7060: 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 32 0d  ab2..----..1..2.
7070: 0a 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .4....skipif mys
7080: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
7090: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
70a0: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 33 35 0d 0a  sort label-135..
70b0: 53 45 4c 45 43 54 20 39 36 20 2f 20 2d 20 2d 20  SELECT 96 / - - 
70c0: 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f  col2 AS col2 FRO
70d0: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 0d  M tab2..----..1.
70e0: 0a 32 0d 0a 34 0d 0a 0d 0a 71 75 65 72 79 20 49  .2..4....query I
70f0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
7100: 20 44 49 53 54 49 4e 43 54 20 2b 20 28 20 2b 20   DISTINCT + ( + 
7110: 63 6f 6c 30 20 29 20 2b 20 63 6f 6c 31 20 41 53  col0 ) + col1 AS
7120: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
7130: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55  AS cor0 WHERE NU
7140: 4c 4c 20 3d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d  LL = col0..----.
7150: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
7160: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
7170: 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
7180: 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
7190: 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 42 45 54  NOT ( NULL ) BET
71a0: 57 45 45 4e 20 28 20 28 20 2b 20 2d 20 63 6f 6c  WEEN ( ( + - col
71b0: 31 20 29 20 2f 20 63 6f 6c 31 20 29 20 41 4e 44  1 ) / col1 ) AND
71c0: 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d   ( NULL )..----.
71d0: 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
71e0: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
71f0: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
7200: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
7210: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
7220: 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
7230: 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 28 20 2d  LECT ALL - + ( -
7240: 20 63 6f 6c 30 20 29 2c 20 2d 20 32 35 20 63 6f   col0 ), - 25 co
7250: 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
7260: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a  cor0..----..15..
7270: 2d 32 35 0d 0a 38 37 0d 0a 2d 32 35 0d 0a 39 37  -25..87..-25..97
7280: 0d 0a 2d 32 35 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-25....query I
7290: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
72a0: 54 20 41 4c 4c 20 2d 20 2d 20 36 33 20 41 53 20  T ALL - - 63 AS 
72b0: 63 6f 6c 31 2c 20 34 36 20 46 52 4f 4d 20 74 61  col1, 46 FROM ta
72c0: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
72d0: 0d 0a 36 33 0d 0a 34 36 0d 0a 36 33 0d 0a 34 36  ..63..46..63..46
72e0: 0d 0a 36 33 0d 0a 34 36 0d 0a 0d 0a 6f 6e 6c 79  ..63..46....only
72f0: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
7300: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
7310: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  ype: ..query II 
7320: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 34  rowsort label-14
7330: 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  0..SELECT DISTIN
7340: 43 54 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20  CT - CAST( NULL 
7350: 41 53 20 53 49 47 4e 45 44 20 29 2c 20 2b 20 63  AS SIGNED ), + c
7360: 6f 6c 30 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20  ol0 + + col2 AS 
7370: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41  col2 FROM tab1 A
7380: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
7390: 4c 4c 0d 0a 31 34 34 0d 0a 4e 55 4c 4c 0d 0a 31  LL..144..NULL..1
73a0: 34 37 0d 0a 4e 55 4c 4c 0d 0a 31 35 39 0d 0a 0d  47..NULL..159...
73b0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
73c0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
73d0: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
73e0: 20 6c 61 62 65 6c 2d 31 34 30 0d 0a 53 45 4c 45   label-140..SELE
73f0: 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43 41  CT DISTINCT - CA
7400: 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
7410: 45 47 45 52 20 29 2c 20 2b 20 63 6f 6c 30 20 2b  EGER ), + col0 +
7420: 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20   + col2 AS col2 
7430: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
7440: 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 31  0..----..NULL..1
7450: 34 34 0d 0a 4e 55 4c 4c 0d 0a 31 34 37 0d 0a 4e  44..NULL..147..N
7460: 55 4c 4c 0d 0a 31 35 39 0d 0a 0d 0a 71 75 65 72  ULL..159....quer
7470: 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
7480: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
7490: 39 2c 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74  9, + col0 FROM t
74a0: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
74b0: 2d 0d 0a 39 0d 0a 31 35 0d 0a 39 0d 0a 38 37 0d  -..9..15..9..87.
74c0: 0a 39 0d 0a 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  .9..97....onlyif
74d0: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
74e0: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
74f0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
7500: 65 6c 2d 31 34 32 0d 0a 53 45 4c 45 43 54 20 2b  el-142..SELECT +
7510: 20 53 55 4d 28 20 2d 20 28 20 2d 20 36 35 20 29   SUM( - ( - 65 )
7520: 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d   ) FROM tab2..--
7530: 2d 2d 0d 0a 31 39 35 0d 0a 0d 0a 73 6b 69 70 69  --..195....skipi
7540: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
7550: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
7560: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
7570: 31 34 32 0d 0a 53 45 4c 45 43 54 20 2b 20 53 55  142..SELECT + SU
7580: 4d 20 28 20 2d 20 28 20 2d 20 36 35 20 29 20 29  M ( - ( - 65 ) )
7590: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
75a0: 0d 0a 31 39 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..195....onlyif 
75b0: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
75c0: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
75d0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
75e0: 6f 72 74 20 6c 61 62 65 6c 2d 31 34 33 0d 0a 53  ort label-143..S
75f0: 45 4c 45 43 54 20 2b 20 41 56 47 20 28 20 2d 20  ELECT + AVG ( - 
7600: 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  + CAST( NULL AS 
7610: 53 49 47 4e 45 44 20 29 20 29 20 41 53 20 63 6f  SIGNED ) ) AS co
7620: 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
7630: 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
7640: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
7650: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
7660: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
7670: 2d 31 34 33 0d 0a 53 45 4c 45 43 54 20 2b 20 41  -143..SELECT + A
7680: 56 47 20 28 20 2d 20 2b 20 43 41 53 54 20 28 20  VG ( - + CAST ( 
7690: 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
76a0: 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ) ) AS col1 FROM
76b0: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   tab1..----..NUL
76c0: 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  L....query I row
76d0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
76e0: 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 2b 20 63 6f   - col1 * + + co
76f0: 6c 31 20 2b 20 2b 20 63 6f 6c 32 20 46 52 4f 4d  l1 + + col2 FROM
7700: 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
7710: 45 52 45 20 4e 4f 54 20 28 20 4e 4f 54 20 4e 55  ERE NOT ( NOT NU
7720: 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 20 29  LL IS NOT NULL )
7730: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
7740: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
7750: 54 20 41 4c 4c 20 2d 20 34 36 20 2a 20 2d 20 63  T ALL - 46 * - c
7760: 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol2 AS col2 FROM
7770: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
7780: 2d 2d 2d 0d 0a 31 30 35 38 0d 0a 31 38 34 30 0d  ---..1058..1840.
7790: 0a 32 36 36 38 0d 0a 0d 0a 71 75 65 72 79 20 49  .2668....query I
77a0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
77b0: 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52   col0 AS col1 FR
77c0: 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45  OM tab0 cor0 WHE
77d0: 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20  RE NOT ( NULL ) 
77e0: 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44  BETWEEN NULL AND
77f0: 20 2d 20 35 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e   - 5..----....on
7800: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
7810: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
7820: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
7830: 20 6c 61 62 65 6c 2d 31 34 37 0d 0a 53 45 4c 45   label-147..SELE
7840: 43 54 20 28 20 2b 20 36 20 29 20 2b 20 2d 20 2b  CT ( + 6 ) + - +
7850: 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d   COUNT( * ) FROM
7860: 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
7870: 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..3....skipif my
7880: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
7890: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
78a0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 34 37 0d  wsort label-147.
78b0: 0a 53 45 4c 45 43 54 20 28 20 2b 20 36 20 29 20  .SELECT ( + 6 ) 
78c0: 2b 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  + - + COUNT ( * 
78d0: 29 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  ) FROM tab2 cor0
78e0: 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65  ..----..3....que
78f0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
7900: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
7910: 32 36 20 2a 20 2d 20 63 6f 6c 30 20 2a 20 2d 20  26 * - col0 * - 
7920: 63 6f 6c 30 20 2a 20 63 6f 6c 32 20 46 52 4f 4d  col0 * col2 FROM
7930: 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
7940: 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20 49 53 20  ERE NOT col2 IS 
7950: 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
7960: 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
7970: 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
7980: 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
7990: 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
79a0: 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
79b0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
79c0: 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 35 37  CT DISTINCT + 57
79d0: 20 2a 20 63 6f 6c 32 20 63 6f 6c 32 20 46 52 4f   * col2 col2 FRO
79e0: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
79f0: 2d 2d 2d 2d 0d 0a 33 33 36 33 0d 0a 33 38 37 36  ----..3363..3876
7a00: 0d 0a 35 34 37 32 0d 0a 0d 0a 71 75 65 72 79 20  ..5472....query 
7a10: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
7a20: 54 20 36 36 20 2a 20 2b 20 33 39 20 41 53 20 63  T 66 * + 39 AS c
7a30: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
7a40: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 35 37   cor0..----..257
7a50: 34 0d 0a 32 35 37 34 0d 0a 32 35 37 34 0d 0a 0d  4..2574..2574...
7a60: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
7a70: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
7a80: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
7a90: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
7aa0: 6c 2d 31 35 31 0d 0a 53 45 4c 45 43 54 20 44 49  l-151..SELECT DI
7ab0: 53 54 49 4e 43 54 20 39 36 20 2a 20 2d 20 2b 20  STINCT 96 * - + 
7ac0: 63 6f 6c 31 20 2b 20 2b 20 43 41 53 54 28 20 4e  col1 + + CAST( N
7ad0: 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
7ae0: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
7af0: 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
7b00: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
7b10: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
7b20: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 35  rowsort label-15
7b30: 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  1..SELECT DISTIN
7b40: 43 54 20 39 36 20 2a 20 2d 20 2b 20 63 6f 6c 31  CT 96 * - + col1
7b50: 20 2b 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c   + + CAST ( NULL
7b60: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52   AS INTEGER ) FR
7b70: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab0..----..N
7b80: 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ULL....query I r
7b90: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 28  owsort..SELECT (
7ba0: 20 2b 20 39 35 20 29 20 41 53 20 63 6f 6c 31 20   + 95 ) AS col1 
7bb0: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
7bc0: 0a 39 35 0d 0a 39 35 0d 0a 39 35 0d 0a 0d 0a 73  .95..95..95....s
7bd0: 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
7be0: 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
7bf0: 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
7c00: 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
7c10: 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
7c20: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
7c30: 41 4c 4c 20 2b 20 2d 20 38 37 20 2b 20 2d 20 33  ALL + - 87 + - 3
7c40: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
7c50: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 30 0d  cor0..----..-90.
7c60: 0a 2d 39 30 0d 0a 2d 39 30 0d 0a 0d 0a 6f 6e 6c  .-90..-90....onl
7c70: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
7c80: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
7c90: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
7ca0: 6c 61 62 65 6c 2d 31 35 34 0d 0a 53 45 4c 45 43  label-154..SELEC
7cb0: 54 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  T + - COUNT( * )
7cc0: 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20   + + COUNT( * ) 
7cd0: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
7ce0: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
7cf0: 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
7d00: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
7d10: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
7d20: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 35 34 0d 0a  sort label-154..
7d30: 53 45 4c 45 43 54 20 2b 20 2d 20 43 4f 55 4e 54  SELECT + - COUNT
7d40: 20 28 20 2a 20 29 20 2b 20 2b 20 43 4f 55 4e 54   ( * ) + + COUNT
7d50: 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46   ( * ) AS col0 F
7d60: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
7d70: 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65  ..----..0....que
7d80: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
7d90: 4c 45 43 54 20 2b 20 2d 20 63 6f 6c 31 20 41 53  LECT + - col1 AS
7da0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
7db0: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 36 30  AS cor0 WHERE 60
7dc0: 20 3d 20 2b 20 2d 20 63 6f 6c 30 20 2b 20 2d 20   = + - col0 + - 
7dd0: 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  - col0..----....
7de0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
7df0: 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
7e00: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
7e10: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
7e20: 2d 31 35 36 0d 0a 53 45 4c 45 43 54 20 2d 20 2d  -156..SELECT - -
7e30: 20 63 6f 6c 30 20 2a 20 2b 20 28 20 2d 20 2b 20   col0 * + ( - + 
7e40: 28 20 2b 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c  ( + + CAST( NULL
7e50: 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20 29   AS SIGNED ) ) )
7e60: 20 2b 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20 63   + + + col2 AS c
7e70: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
7e80: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
7e90: 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
7ea0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
7eb0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
7ec0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
7ed0: 6c 61 62 65 6c 2d 31 35 36 0d 0a 53 45 4c 45 43  label-156..SELEC
7ee0: 54 20 2d 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 28  T - - col0 * + (
7ef0: 20 2d 20 2b 20 28 20 2b 20 2b 20 43 41 53 54 20   - + ( + + CAST 
7f00: 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
7f10: 52 20 29 20 29 20 29 20 2b 20 2b 20 2b 20 63 6f  R ) ) ) + + + co
7f20: 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l2 AS col0 FROM 
7f30: 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
7f40: 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
7f50: 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20  NULL....query I 
7f60: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
7f70: 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 34 39 20  DISTINCT + - 49 
7f80: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
7f90: 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62  0 CROSS JOIN tab
7fa0: 32 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d  2 AS cor1..----.
7fb0: 0a 2d 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-49....query I 
7fc0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
7fd0: 35 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  50 AS col0 FROM 
7fe0: 74 61 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f  tab1 AS cor0 CRO
7ff0: 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20  SS JOIN tab0 AS 
8000: 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  cor1..----..9 va
8010: 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
8020: 64 65 61 32 64 31 62 37 34 65 30 63 64 66 36 37  dea2d1b74e0cdf67
8030: 38 30 36 61 66 38 63 34 31 37 33 32 34 66 35 32  806af8c417324f52
8040: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
8050: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
8060: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
8070: 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
8080: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
8090: 20 6c 61 62 65 6c 2d 31 35 39 0d 0a 53 45 4c 45   label-159..SELE
80a0: 43 54 20 2d 20 2d 20 36 20 2f 20 2d 20 2b 20 4d  CT - - 6 / - + M
80b0: 49 4e 28 20 28 20 2b 20 2d 20 38 36 20 29 20 29  IN( ( + - 86 ) )
80c0: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
80d0: 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
80e0: 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20 28 20   NULL BETWEEN ( 
80f0: 4e 55 4c 4c 20 29 20 41 4e 44 20 2b 20 63 6f 6c  NULL ) AND + col
8100: 30 20 2b 20 2d 20 63 6f 6c 32 20 2f 20 2d 20 2b  0 + - col2 / - +
8110: 20 63 6f 6c 30 20 2f 20 2b 20 43 41 53 54 28 20   col0 / + CAST( 
8120: 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
8130: 20 2b 20 2b 20 31 32 20 2a 20 63 6f 6c 30 20 2b   + + 12 * col0 +
8140: 20 31 36 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d   16..----..NULL.
8150: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
8160: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
8170: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
8180: 74 20 6c 61 62 65 6c 2d 31 35 39 0d 0a 53 45 4c  t label-159..SEL
8190: 45 43 54 20 2d 20 2d 20 36 20 2f 20 2d 20 2b 20  ECT - - 6 / - + 
81a0: 4d 49 4e 20 28 20 28 20 2b 20 2d 20 38 36 20 29  MIN ( ( + - 86 )
81b0: 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
81c0: 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
81d0: 52 45 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20  RE NULL BETWEEN 
81e0: 28 20 4e 55 4c 4c 20 29 20 41 4e 44 20 2b 20 63  ( NULL ) AND + c
81f0: 6f 6c 30 20 2b 20 2d 20 63 6f 6c 32 20 2f 20 2d  ol0 + - col2 / -
8200: 20 2b 20 63 6f 6c 30 20 2f 20 2b 20 43 41 53 54   + col0 / + CAST
8210: 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
8220: 45 52 20 29 20 2b 20 2b 20 31 32 20 2a 20 63 6f  ER ) + + 12 * co
8230: 6c 30 20 2b 20 31 36 0d 0a 2d 2d 2d 2d 0d 0a 4e  l0 + 16..----..N
8240: 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  ULL....skipif po
8250: 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
8260: 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
8270: 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
8280: 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
8290: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
82a0: 0a 53 45 4c 45 43 54 20 2b 20 2d 20 38 35 20 63  .SELECT + - 85 c
82b0: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol1 FROM tab1 AS
82c0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 35   cor0..----..-85
82d0: 0d 0a 2d 38 35 0d 0a 2d 38 35 0d 0a 0d 0a 71 75  ..-85..-85....qu
82e0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
82f0: 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 32  ELECT ALL + col2
8300: 20 2a 20 63 6f 6c 30 20 2a 20 2b 20 28 20 2d 20   * col0 * + ( - 
8310: 34 31 20 29 20 2f 20 2d 20 37 31 20 2a 20 31 33  41 ) / - 71 * 13
8320: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
8330: 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
8340: 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 32   + col1 * + col2
8350: 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
8360: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
8370: 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
8380: 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
8390: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
83a0: 65 6c 2d 31 36 32 0d 0a 53 45 4c 45 43 54 20 44  el-162..SELECT D
83b0: 49 53 54 49 4e 43 54 20 2b 20 2d 20 63 6f 6c 30  ISTINCT + - col0
83c0: 20 2f 20 2d 20 2b 20 43 41 53 54 28 20 4e 55 4c   / - + CAST( NUL
83d0: 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20  L AS SIGNED ) + 
83e0: 2b 20 63 6f 6c 32 20 2a 20 35 20 41 53 20 63 6f  + col2 * 5 AS co
83f0: 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
8400: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
8410: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
8420: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
8430: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
8440: 72 74 20 6c 61 62 65 6c 2d 31 36 32 0d 0a 53 45  rt label-162..SE
8450: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
8460: 2d 20 63 6f 6c 30 20 2f 20 2d 20 2b 20 43 41 53  - col0 / - + CAS
8470: 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
8480: 47 45 52 20 29 20 2b 20 2b 20 63 6f 6c 32 20 2a  GER ) + + col2 *
8490: 20 35 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   5 AS col1 FROM 
84a0: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
84b0: 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72  --..NULL....quer
84c0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
84d0: 45 43 54 20 2d 20 63 6f 6c 32 20 2d 20 2d 20 2d  ECT - col2 - - -
84e0: 20 28 20 2d 20 37 36 20 29 20 41 53 20 63 6f 6c   ( - 76 ) AS col
84f0: 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
8500: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 38 0d 0a 33  or0..----..18..3
8510: 36 0d 0a 35 33 0d 0a 0d 0a 71 75 65 72 79 20 49  6..53....query I
8520: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
8530: 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
8540: 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45  OM tab0 cor0 WHE
8550: 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20  RE NOT ( NULL ) 
8560: 3c 3d 20 2b 20 28 20 2b 20 63 6f 6c 30 20 29 0d  <= + ( + col0 ).
8570: 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
8580: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
8590: 20 2d 20 2d 20 28 20 37 31 20 29 20 46 52 4f 4d   - - ( 71 ) FROM
85a0: 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
85b0: 0d 0a 37 31 0d 0a 37 31 0d 0a 37 31 0d 0a 0d 0a  ..71..71..71....
85c0: 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
85d0: 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
85e0: 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
85f0: 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
8600: 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
8610: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
8620: 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  T DISTINCT - col
8630: 32 20 63 6f 6c 30 2c 20 2b 20 36 39 20 46 52 4f  2 col0, + 69 FRO
8640: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  M tab1..----..-5
8650: 39 0d 0a 36 39 0d 0a 2d 36 38 0d 0a 36 39 0d 0a  9..69..-68..69..
8660: 2d 39 36 0d 0a 36 39 0d 0a 0d 0a 6f 6e 6c 79 69  -96..69....onlyi
8670: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
8680: 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
8690: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
86a0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 36 37 0d  wsort label-167.
86b0: 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 2a  .SELECT + col0 *
86c0: 20 2d 20 43 41 53 54 28 20 2b 20 32 36 20 41 53   - CAST( + 26 AS
86d0: 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c   SIGNED ) AS col
86e0: 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
86f0: 2d 0d 0a 2d 32 32 36 32 0d 0a 2d 32 35 32 32 0d  -..-2262..-2522.
8700: 0a 2d 33 39 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  .-390....skipif 
8710: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
8720: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
8730: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 36  rowsort label-16
8740: 37 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30  7..SELECT + col0
8750: 20 2a 20 2d 20 43 41 53 54 20 28 20 2b 20 32 36   * - CAST ( + 26
8760: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53   AS INTEGER ) AS
8770: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d   col1 FROM tab0.
8780: 0a 2d 2d 2d 2d 0d 0a 2d 32 32 36 32 0d 0a 2d 32  .----..-2262..-2
8790: 35 32 32 0d 0a 2d 33 39 30 0d 0a 0d 0a 71 75 65  522..-390....que
87a0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
87b0: 4c 45 43 54 20 41 4c 4c 20 38 39 20 2a 20 2b 20  LECT ALL 89 * + 
87c0: 35 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  50 FROM tab0..--
87d0: 2d 2d 0d 0a 34 34 35 30 0d 0a 34 34 35 30 0d 0a  --..4450..4450..
87e0: 34 34 35 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  4450....query I 
87f0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
8800: 2b 20 63 6f 6c 31 20 2a 20 28 20 63 6f 6c 31 20  + col1 * ( col1 
8810: 29 20 2a 20 2d 20 35 37 20 46 52 4f 4d 20 74 61  ) * - 57 FROM ta
8820: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 31 37 32  b1..----..-11172
8830: 0d 0a 2d 31 32 35 39 31 33 0d 0a 2d 31 34 32 35  ..-125913..-1425
8840: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
8850: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 37 36  ort..SELECT + 76
8860: 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20   - col0 AS col2 
8870: 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
8880: 4e 4f 54 20 2b 20 2d 20 33 38 20 49 53 20 4e 55  NOT + - 38 IS NU
8890: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 0d 0a 2d  LL..----..-11..-
88a0: 32 31 0d 0a 36 31 0d 0a 0d 0a 71 75 65 72 79 20  21..61....query 
88b0: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
88c0: 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20  CT DISTINCT + + 
88d0: 34 37 2c 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31  47, col2 AS col1
88e0: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
88f0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 37 0d 0a 31 30  r0..----..47..10
8900: 0d 0a 34 37 0d 0a 34 37 0d 0a 34 37 0d 0a 39 39  ..47..47..47..99
8910: 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
8920: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
8930: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
8940: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
8950: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
8960: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
8970: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
8980: 2b 20 34 32 20 63 6f 6c 32 20 46 52 4f 4d 20 74  + 42 col2 FROM t
8990: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
89a0: 2d 0d 0a 2d 34 32 0d 0a 0d 0a 71 75 65 72 79 20  -..-42....query 
89b0: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
89c0: 43 54 20 41 4c 4c 20 38 36 2c 20 2d 20 63 6f 6c  CT ALL 86, - col
89d0: 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  0 AS col2 FROM t
89e0: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
89f0: 2d 0d 0a 38 36 0d 0a 2d 35 31 0d 0a 38 36 0d 0a  -..86..-51..86..
8a00: 2d 38 35 0d 0a 38 36 0d 0a 2d 39 31 0d 0a 0d 0a  -85..86..-91....
8a10: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
8a20: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
8a30: 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
8a40: 6f 72 74 20 6c 61 62 65 6c 2d 31 37 34 0d 0a 53  ort label-174..S
8a50: 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28  ELECT ALL COUNT(
8a60: 20 2a 20 29 20 41 53 20 63 6f 6c 30 2c 20 38 38   * ) AS col0, 88
8a70: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
8a80: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
8a90: 0d 0a 33 0d 0a 38 38 0d 0a 0d 0a 73 6b 69 70 69  ..3..88....skipi
8aa0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
8ab0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
8ac0: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
8ad0: 2d 31 37 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -174..SELECT ALL
8ae0: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
8af0: 63 6f 6c 30 2c 20 38 38 20 41 53 20 63 6f 6c 30  col0, 88 AS col0
8b00: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
8b10: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 38 38 0d  r0..----..3..88.
8b20: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
8b30: 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 33 34 20  rt..SELECT - 34 
8b40: 2b 20 34 35 20 41 53 20 63 6f 6c 31 20 46 52 4f  + 45 AS col1 FRO
8b50: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 31  M tab2..----..11
8b60: 0d 0a 31 31 0d 0a 31 31 0d 0a 0d 0a 71 75 65 72  ..11..11....quer
8b70: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
8b80: 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2b 20 2d  ECT ALL col1 + -
8b90: 20 63 6f 6c 32 20 2b 20 2d 20 2b 20 31 33 20 46   col2 + - + 13 F
8ba0: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
8bb0: 2d 31 31 31 0d 0a 2d 32 0d 0a 32 31 0d 0a 0d 0a  -111..-2..21....
8bc0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
8bd0: 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2b  .SELECT - col2 +
8be0: 20 2d 20 33 39 20 46 52 4f 4d 20 74 61 62 31 0d   - 39 FROM tab1.
8bf0: 0a 2d 2d 2d 2d 0d 0a 2d 31 30 37 0d 0a 2d 31 33  .----..-107..-13
8c00: 35 0d 0a 2d 39 38 0d 0a 0d 0a 6f 6e 6c 79 69 66  5..-98....onlyif
8c10: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
8c20: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
8c30: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
8c40: 65 6c 2d 31 37 38 0d 0a 53 45 4c 45 43 54 20 43  el-178..SELECT C
8c50: 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2b 20 2d 20  OUNT( * ) + + - 
8c60: 53 55 4d 28 20 44 49 53 54 49 4e 43 54 20 2b 20  SUM( DISTINCT + 
8c70: 37 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  7 ) FROM tab2..-
8c80: 2d 2d 2d 0d 0a 2d 34 0d 0a 0d 0a 73 6b 69 70 69  ---..-4....skipi
8c90: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
8ca0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
8cb0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
8cc0: 31 37 38 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e  178..SELECT COUN
8cd0: 54 20 28 20 2a 20 29 20 2b 20 2b 20 2d 20 53 55  T ( * ) + + - SU
8ce0: 4d 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20 37  M ( DISTINCT + 7
8cf0: 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d   ) FROM tab2..--
8d00: 2d 2d 0d 0a 2d 34 0d 0a 0d 0a 6f 6e 6c 79 69 66  --..-4....onlyif
8d10: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
8d20: 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79  ntax: DECIMAL ty
8d30: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72  pe: ..query II r
8d40: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37 39  owsort label-179
8d50: 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2b 20  ..SELECT col0 + 
8d60: 2b 20 39 39 20 41 53 20 63 6f 6c 31 2c 20 43 41  + 99 AS col1, CA
8d70: 53 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49  ST( NULL AS DECI
8d80: 4d 41 4c 20 29 20 2a 20 2b 20 34 34 20 46 52 4f  MAL ) * + 44 FRO
8d90: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 34  M tab2..----..14
8da0: 35 0d 0a 4e 55 4c 4c 0d 0a 31 36 33 0d 0a 4e 55  5..NULL..163..NU
8db0: 4c 4c 0d 0a 31 37 34 0d 0a 4e 55 4c 4c 0d 0a 0d  LL..174..NULL...
8dc0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
8dd0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
8de0: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
8df0: 20 6c 61 62 65 6c 2d 31 37 39 0d 0a 53 45 4c 45   label-179..SELE
8e00: 43 54 20 63 6f 6c 30 20 2b 20 2b 20 39 39 20 41  CT col0 + + 99 A
8e10: 53 20 63 6f 6c 31 2c 20 43 41 53 54 20 28 20 4e  S col1, CAST ( N
8e20: 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 2a 20  ULL AS REAL ) * 
8e30: 2b 20 34 34 20 46 52 4f 4d 20 74 61 62 32 0d 0a  + 44 FROM tab2..
8e40: 2d 2d 2d 2d 0d 0a 31 34 35 0d 0a 4e 55 4c 4c 0d  ----..145..NULL.
8e50: 0a 31 36 33 0d 0a 4e 55 4c 4c 0d 0a 31 37 34 0d  .163..NULL..174.
8e60: 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
8e70: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
8e80: 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
8e90: 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 28 20  OM tab2 WHERE ( 
8ea0: 4e 4f 54 20 28 20 28 20 4e 4f 54 20 63 6f 6c 30  NOT ( ( NOT col0
8eb0: 20 49 53 20 4e 55 4c 4c 20 29 20 29 20 29 0d 0a   IS NULL ) ) )..
8ec0: 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
8ed0: 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
8ee0: 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
8ef0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
8f00: 72 74 20 6c 61 62 65 6c 2d 31 38 31 0d 0a 53 45  rt label-181..SE
8f10: 4c 45 43 54 20 2d 20 28 20 2b 20 2b 20 63 6f 6c  LECT - ( + + col
8f20: 32 20 29 20 2b 20 63 6f 6c 31 20 44 49 56 20 2b  2 ) + col1 DIV +
8f30: 20 28 20 2d 20 39 20 29 20 41 53 20 63 6f 6c 32   ( - 9 ) AS col2
8f40: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
8f50: 0d 0a 2d 32 38 0d 0a 2d 34 38 0d 0a 2d 36 35 0d  ..-28..-48..-65.
8f60: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
8f70: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
8f80: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
8f90: 74 20 6c 61 62 65 6c 2d 31 38 31 0d 0a 53 45 4c  t label-181..SEL
8fa0: 45 43 54 20 2d 20 28 20 2b 20 2b 20 63 6f 6c 32  ECT - ( + + col2
8fb0: 20 29 20 2b 20 63 6f 6c 31 20 2f 20 2b 20 28 20   ) + col1 / + ( 
8fc0: 2d 20 39 20 29 20 41 53 20 63 6f 6c 32 20 46 52  - 9 ) AS col2 FR
8fd0: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
8fe0: 32 38 0d 0a 2d 34 38 0d 0a 2d 36 35 0d 0a 0d 0a  28..-48..-65....
8ff0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
9000: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
9010: 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
9020: 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
9030: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
9040: 65 6c 2d 31 38 32 0d 0a 53 45 4c 45 43 54 20 44  el-182..SELECT D
9050: 49 53 54 49 4e 43 54 20 2d 20 28 20 2b 20 35 35  ISTINCT - ( + 55
9060: 20 29 20 44 49 56 20 43 4f 55 4e 54 28 20 2a 20   ) DIV COUNT( * 
9070: 29 20 2b 20 2d 20 2b 20 34 32 20 46 52 4f 4d 20  ) + - + 42 FROM 
9080: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 30 0d  tab2..----..-60.
9090: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
90a0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
90b0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
90c0: 74 20 6c 61 62 65 6c 2d 31 38 32 0d 0a 53 45 4c  t label-182..SEL
90d0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 28  ECT DISTINCT - (
90e0: 20 2b 20 35 35 20 29 20 2f 20 43 4f 55 4e 54 20   + 55 ) / COUNT 
90f0: 28 20 2a 20 29 20 2b 20 2d 20 2b 20 34 32 20 46  ( * ) + - + 42 F
9100: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
9110: 2d 36 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  -60....query I r
9120: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
9130: 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20 2b  ISTINCT + col2 +
9140: 20 31 31 20 2a 20 2b 20 37 35 20 41 53 20 63 6f   11 * + 75 AS co
9150: 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
9160: 2d 2d 0d 0a 38 38 34 0d 0a 38 39 33 0d 0a 39 32  --..884..893..92
9170: 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
9180: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
9190: 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
91a0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
91b0: 6c 61 62 65 6c 2d 31 38 34 0d 0a 53 45 4c 45 43  label-184..SELEC
91c0: 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  T DISTINCT - col
91d0: 31 20 2d 20 2b 20 2b 20 43 41 53 54 28 20 4e 55  1 - + + CAST( NU
91e0: 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 63  LL AS SIGNED ) c
91f0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
9200: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
9210: 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
9220: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
9230: 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
9240: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
9250: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
9260: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
9270: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
9280: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
9290: 65 6c 2d 31 38 34 0d 0a 53 45 4c 45 43 54 20 44  el-184..SELECT D
92a0: 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31 20 2d  ISTINCT - col1 -
92b0: 20 2b 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c   + + CAST ( NULL
92c0: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 63 6f   AS INTEGER ) co
92d0: 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
92e0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
92f0: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
9300: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
9310: 49 4e 43 54 20 28 20 38 38 20 29 20 41 53 20 63  INCT ( 88 ) AS c
9320: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
9330: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 38 0d   cor0..----..88.
9340: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
9350: 72 74 0d 0a 53 45 4c 45 43 54 20 31 37 20 2d 20  rt..SELECT 17 - 
9360: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
9370: 2d 2d 2d 2d 0d 0a 2d 37 30 0d 0a 2d 38 30 0d 0a  ----..-70..-80..
9380: 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 49 49  2....query IIIII
9390: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
93a0: 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
93b0: 30 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  0 cor0 CROSS JOI
93c0: 4e 20 74 61 62 32 20 41 53 20 63 6f 72 31 20 57  N tab2 AS cor1 W
93d0: 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 49 53  HERE ( NULL ) IS
93e0: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 34 20   NULL..----..54 
93f0: 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
9400: 6f 20 65 61 61 33 39 34 66 31 36 32 37 63 38 64  o eaa394f1627c8d
9410: 35 65 35 33 34 30 36 64 39 63 61 33 62 30 39 34  5e53406d9ca3b094
9420: 36 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  69....query I ro
9430: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 34 33  wsort..SELECT 43
9440: 20 2d 20 2b 20 2b 20 63 6f 6c 30 20 46 52 4f 4d   - + + col0 FROM
9450: 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 34   tab0..----..-44
9460: 0d 0a 2d 35 34 0d 0a 32 38 0d 0a 0d 0a 6f 6e 6c  ..-54..28....onl
9470: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
9480: 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61   syntax: aggrega
9490: 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  te syntax: SIGNE
94a0: 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
94b0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
94c0: 31 38 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  189..SELECT DIST
94d0: 49 4e 43 54 20 43 41 53 54 28 20 4e 55 4c 4c 20  INCT CAST( NULL 
94e0: 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2d 20  AS SIGNED ) + - 
94f0: 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2b  + COUNT( * ) * +
9500: 20 39 31 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   91 col0 FROM ta
9510: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
9520: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
9530: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
9540: 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
9550: 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
9560: 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
9570: 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
9580: 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
9590: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
95a0: 74 20 6c 61 62 65 6c 2d 31 38 39 0d 0a 53 45 4c  t label-189..SEL
95b0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 41 53  ECT DISTINCT CAS
95c0: 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
95d0: 47 45 52 20 29 20 2b 20 2d 20 2b 20 43 4f 55 4e  GER ) + - + COUN
95e0: 54 20 28 20 2a 20 29 20 2a 20 2b 20 39 31 20 63  T ( * ) * + 91 c
95f0: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
9600: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
9610: 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  L....onlyif mysq
9620: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
9630: 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
9640: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
9650: 6c 61 62 65 6c 2d 31 39 30 0d 0a 53 45 4c 45 43  label-190..SELEC
9660: 54 20 41 4c 4c 20 43 41 53 54 28 20 2d 20 32 37  T ALL CAST( - 27
9670: 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f   AS SIGNED ) FRO
9680: 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
9690: 2d 0d 0a 2d 32 37 0d 0a 2d 32 37 0d 0a 2d 32 37  -..-27..-27..-27
96a0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
96b0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
96c0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
96d0: 72 74 20 6c 61 62 65 6c 2d 31 39 30 0d 0a 53 45  rt label-190..SE
96e0: 4c 45 43 54 20 41 4c 4c 20 43 41 53 54 20 28 20  LECT ALL CAST ( 
96f0: 2d 20 32 37 20 41 53 20 49 4e 54 45 47 45 52 20  - 27 AS INTEGER 
9700: 29 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  ) FROM tab0 cor0
9710: 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 37 0d 0a 2d 32 37  ..----..-27..-27
9720: 0d 0a 2d 32 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-27....onlyif 
9730: 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
9740: 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
9750: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
9760: 6f 72 74 20 6c 61 62 65 6c 2d 31 39 31 0d 0a 53  ort label-191..S
9770: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
9780: 6f 6c 31 20 44 49 56 20 36 36 20 44 49 56 20 2d  ol1 DIV 66 DIV -
9790: 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52   col0 AS col0 FR
97a0: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30  OM tab0..----..0
97b0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
97c0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
97d0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
97e0: 72 74 20 6c 61 62 65 6c 2d 31 39 31 0d 0a 53 45  rt label-191..SE
97f0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
9800: 6c 31 20 2f 20 36 36 20 2f 20 2d 20 63 6f 6c 30  l1 / 66 / - col0
9810: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
9820: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71  b0..----..0....q
9830: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
9840: 53 45 4c 45 43 54 20 41 4c 4c 20 28 20 31 31 20  SELECT ALL ( 11 
9850: 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  ) FROM tab1..---
9860: 2d 0d 0a 31 31 0d 0a 31 31 0d 0a 31 31 0d 0a 0d  -..11..11..11...
9870: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
9880: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67  CAST syntax: agg
9890: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53  regate syntax: S
98a0: 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
98b0: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
98c0: 61 62 65 6c 2d 31 39 33 0d 0a 53 45 4c 45 43 54  abel-193..SELECT
98d0: 20 28 20 2d 20 35 36 20 29 2c 20 2b 20 43 41 53   ( - 56 ), + CAS
98e0: 54 28 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20  T( - COUNT( * ) 
98f0: 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63  AS SIGNED ) AS c
9900: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol2 FROM tab1..-
9910: 2d 2d 2d 0d 0a 2d 35 36 0d 0a 2d 33 0d 0a 0d 0a  ---..-56..-3....
9920: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
9930: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
9940: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
9950: 6c 61 62 65 6c 2d 31 39 33 0d 0a 53 45 4c 45 43  label-193..SELEC
9960: 54 20 28 20 2d 20 35 36 20 29 2c 20 2b 20 43 41  T ( - 56 ), + CA
9970: 53 54 20 28 20 2d 20 43 4f 55 4e 54 20 28 20 2a  ST ( - COUNT ( *
9980: 20 29 20 41 53 20 49 4e 54 45 47 45 52 20 29 20   ) AS INTEGER ) 
9990: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
99a0: 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 36 0d 0a 2d 33  1..----..-56..-3
99b0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
99c0: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
99d0: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
99e0: 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
99f0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
9a00: 20 6c 61 62 65 6c 2d 31 39 34 0d 0a 53 45 4c 45   label-194..SELE
9a10: 43 54 20 43 4f 55 4e 54 28 20 43 41 53 54 28 20  CT COUNT( CAST( 
9a20: 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
9a30: 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
9a40: 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..0....skipif 
9a50: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
9a60: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
9a70: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 39  rowsort label-19
9a80: 34 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20  4..SELECT COUNT 
9a90: 28 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  ( CAST ( NULL AS
9aa0: 20 49 4e 54 45 47 45 52 20 29 20 29 20 46 52 4f   INTEGER ) ) FRO
9ab0: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab0..----..0.
9ac0: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
9ad0: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 35  rt..SELECT ALL 5
9ae0: 33 20 2a 20 2d 20 2d 20 63 6f 6c 31 20 46 52 4f  3 * - - col1 FRO
9af0: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 37  M tab2..----..27
9b00: 30 33 0d 0a 33 35 35 31 0d 0a 34 30 38 31 0d 0a  03..3551..4081..
9b10: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
9b20: 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32  t..SELECT + col2
9b30: 20 2a 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74   * - col2 FROM t
9b40: 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55  ab0 WHERE NOT NU
9b50: 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  LL IS NULL..----
9b60: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
9b70: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
9b80: 49 4e 43 54 20 63 6f 6c 30 20 2a 20 35 31 20 46  INCT col0 * 51 F
9b90: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
9ba0: 32 33 34 36 0d 0a 33 32 36 34 0d 0a 33 38 32 35  2346..3264..3825
9bb0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
9bc0: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
9bd0: 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
9be0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
9bf0: 61 62 65 6c 2d 31 39 38 0d 0a 53 45 4c 45 43 54  abel-198..SELECT
9c00: 20 41 4c 4c 20 2d 20 43 41 53 54 28 20 2d 20 2d   ALL - CAST( - -
9c10: 20 30 20 41 53 20 53 49 47 4e 45 44 20 29 20 41   0 AS SIGNED ) A
9c20: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
9c30: 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d  ..----..0..0..0.
9c40: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
9c50: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
9c60: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
9c70: 74 20 6c 61 62 65 6c 2d 31 39 38 0d 0a 53 45 4c  t label-198..SEL
9c80: 45 43 54 20 41 4c 4c 20 2d 20 43 41 53 54 20 28  ECT ALL - CAST (
9c90: 20 2d 20 2d 20 30 20 41 53 20 49 4e 54 45 47 45   - - 0 AS INTEGE
9ca0: 52 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  R ) AS col2 FROM
9cb0: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   tab1..----..0..
9cc0: 30 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  0..0....query I 
9cd0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
9ce0: 2d 20 2b 20 63 6f 6c 30 20 2a 20 63 6f 6c 31 20  - + col0 * col1 
9cf0: 2b 20 2b 20 2b 20 36 37 20 46 52 4f 4d 20 74 61  + + + 67 FROM ta
9d00: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
9d10: 0d 0a 2d 32 32 37 39 0d 0a 2d 34 38 36 31 0d 0a  ..-2279..-4861..
9d20: 2d 34 39 35 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -4958....onlyif 
9d30: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
9d40: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
9d50: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
9d60: 6f 72 74 20 6c 61 62 65 6c 2d 32 30 30 0d 0a 53  ort label-200..S
9d70: 45 4c 45 43 54 20 43 41 53 54 28 20 2b 20 2d 20  ELECT CAST( + - 
9d80: 63 6f 6c 31 20 41 53 20 53 49 47 4e 45 44 20 29  col1 AS SIGNED )
9d90: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
9da0: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
9db0: 0d 0a 2d 31 0d 0a 2d 32 31 0d 0a 2d 38 31 0d 0a  ..-1..-21..-81..
9dc0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
9dd0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
9de0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
9df0: 20 6c 61 62 65 6c 2d 32 30 30 0d 0a 53 45 4c 45   label-200..SELE
9e00: 43 54 20 43 41 53 54 20 28 20 2b 20 2d 20 63 6f  CT CAST ( + - co
9e10: 6c 31 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  l1 AS INTEGER ) 
9e20: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
9e30: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
9e40: 0a 2d 31 0d 0a 2d 32 31 0d 0a 2d 38 31 0d 0a 0d  .-1..-21..-81...
9e50: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
9e60: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
9e70: 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
9e80: 20 2b 20 2d 20 35 20 49 53 20 4e 55 4c 4c 0d 0a   + - 5 IS NULL..
9e90: 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
9ea0: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
9eb0: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
9ec0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
9ed0: 2d 32 30 32 0d 0a 53 45 4c 45 43 54 20 44 49 53  -202..SELECT DIS
9ee0: 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54 28 20 41  TINCT + COUNT( A
9ef0: 4c 4c 20 2b 20 32 34 20 29 20 41 53 20 63 6f 6c  LL + 24 ) AS col
9f00: 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
9f10: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a  or0..----..3....
9f20: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
9f30: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
9f40: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
9f50: 61 62 65 6c 2d 32 30 32 0d 0a 53 45 4c 45 43 54  abel-202..SELECT
9f60: 20 44 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e   DISTINCT + COUN
9f70: 54 20 28 20 41 4c 4c 20 2b 20 32 34 20 29 20 41  T ( ALL + 24 ) A
9f80: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
9f90: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
9fa0: 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  3....query I row
9fb0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
9fc0: 20 2d 20 2b 20 63 6f 6c 30 20 2b 20 37 31 20 41   - + col0 + 71 A
9fd0: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
9fe0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
9ff0: 2d 31 34 0d 0a 2d 32 30 0d 0a 32 30 0d 0a 0d 0a  -14..-20..20....
a000: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
a010: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 39 33 20 2a  .SELECT ALL 93 *
a020: 20 2d 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74   - - col2 FROM t
a030: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
a040: 2d 0d 0a 34 33 37 31 0d 0a 39 32 30 37 0d 0a 39  -..4371..9207..9
a050: 33 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  30....query I ro
a060: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
a070: 2d 20 63 6f 6c 30 20 2a 20 2b 20 2b 20 31 32 20  - col0 * + + 12 
a080: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
a090: 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 34 34 0d 0a 31  0..----..1044..1
a0a0: 31 36 34 0d 0a 31 38 30 0d 0a 0d 0a 71 75 65 72  164..180....quer
a0b0: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
a0c0: 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
a0d0: 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
a0e0: 45 52 45 20 4e 4f 54 20 28 20 2b 20 31 20 29 20  ERE NOT ( + 1 ) 
a0f0: 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  IS NULL..----..9
a100: 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
a110: 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64  to c6c0a4111b36d
a120: 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34  04dbc811a11e4d54
a130: 63 61 64 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  cad....onlyif my
a140: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
a150: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
a160: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
a170: 32 30 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  207..SELECT ALL 
a180: 2d 20 43 4f 55 4e 54 28 20 44 49 53 54 49 4e 43  - COUNT( DISTINC
a190: 54 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30  T col0 ) AS col0
a1a0: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
a1b0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a  r0..----..-3....
a1c0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
a1d0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
a1e0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
a1f0: 61 62 65 6c 2d 32 30 37 0d 0a 53 45 4c 45 43 54  abel-207..SELECT
a200: 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 20 28 20 44   ALL - COUNT ( D
a210: 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 29 20 41  ISTINCT col0 ) A
a220: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
a230: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
a240: 2d 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  -3....query I ro
a250: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
a260: 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 31 20 2a 20  col2 * - col1 * 
a270: 2d 20 38 33 20 46 52 4f 4d 20 74 61 62 31 0d 0a  - 83 FROM tab1..
a280: 2d 2d 2d 2d 0d 0a 2d 31 31 31 35 35 32 0d 0a 2d  ----..-111552..-
a290: 32 34 34 38 35 0d 0a 2d 32 36 35 32 36 38 0d 0a  24485..-265268..
a2a0: 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
a2b0: 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
a2c0: 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
a2d0: 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
a2e0: 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
a2f0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
a300: 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 2a 20  CT ALL - col1 * 
a310: 2b 20 2b 20 31 39 20 63 6f 6c 30 20 46 52 4f 4d  + + 19 col0 FROM
a320: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32   tab2..----..-12
a330: 37 33 0d 0a 2d 31 34 36 33 0d 0a 2d 39 36 39 0d  73..-1463..-969.
a340: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
a350: 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 39 32 20  rt..SELECT - 92 
a360: 2a 20 2b 20 31 39 20 41 53 20 63 6f 6c 32 20 46  * + 19 AS col2 F
a370: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
a380: 2d 31 37 34 38 0d 0a 2d 31 37 34 38 0d 0a 2d 31  -1748..-1748..-1
a390: 37 34 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  748....onlyif my
a3a0: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
a3b0: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
a3c0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
a3d0: 32 31 31 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e  211..SELECT COUN
a3e0: 54 28 20 44 49 53 54 49 4e 43 54 20 2d 20 31 32  T( DISTINCT - 12
a3f0: 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d   ) FROM tab1..--
a400: 2d 2d 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..1....skipif 
a410: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
a420: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
a430: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 31  rowsort label-21
a440: 31 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20  1..SELECT COUNT 
a450: 28 20 44 49 53 54 49 4e 43 54 20 2d 20 31 32 20  ( DISTINCT - 12 
a460: 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  ) FROM tab1..---
a470: 2d 0d 0a 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -..1....query I 
a480: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
a490: 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 2b 20  DISTINCT col1 + 
a4a0: 35 37 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  57 AS col0 FROM 
a4b0: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 38 0d  tab0..----..138.
a4c0: 0a 35 38 0d 0a 37 38 0d 0a 0d 0a 71 75 65 72 79  .58..78....query
a4d0: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
a4e0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  LECT * FROM tab1
a4f0: 20 57 48 45 52 45 20 2d 20 28 20 31 20 29 20 49   WHERE - ( 1 ) I
a500: 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
a510: 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
a520: 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31 62  ng to c6c0a4111b
a530: 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65 34  36d04dbc811a11e4
a540: 64 35 34 63 61 64 0d 0a 0d 0a 6f 6e 6c 79 69 66  d54cad....onlyif
a550: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
a560: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
a570: 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
a580: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 31 34 0d 0a  sort label-214..
a590: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 41 53  SELECT ALL + CAS
a5a0: 54 28 20 2d 20 31 31 20 41 53 20 53 49 47 4e 45  T( - 11 AS SIGNE
a5b0: 44 20 29 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20  D ) + col1 FROM 
a5c0: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d  tab0..----..-10.
a5d0: 0a 31 30 0d 0a 37 30 0d 0a 0d 0a 73 6b 69 70 69  .10..70....skipi
a5e0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
a5f0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
a600: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
a610: 32 31 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  214..SELECT ALL 
a620: 2b 20 43 41 53 54 20 28 20 2d 20 31 31 20 41 53  + CAST ( - 11 AS
a630: 20 49 4e 54 45 47 45 52 20 29 20 2b 20 63 6f 6c   INTEGER ) + col
a640: 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
a650: 2d 0d 0a 2d 31 30 0d 0a 31 30 0d 0a 37 30 0d 0a  -..-10..10..70..
a660: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
a670: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
a680: 43 54 20 2b 20 2b 20 63 6f 6c 31 20 2f 20 2d 20  CT + + col1 / - 
a690: 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  + col2 FROM tab2
a6a0: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c   cor0 WHERE NULL
a6b0: 20 3c 3e 20 2b 20 63 6f 6c 30 20 2f 20 2d 20 63   <> + col0 / - c
a6c0: 6f 6c 31 20 2f 20 2d 20 34 38 20 2a 20 2b 20 2d  ol1 / - 48 * + -
a6d0: 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   col2..----....o
a6e0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
a6f0: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
a700: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
a710: 72 74 20 6c 61 62 65 6c 2d 32 31 36 0d 0a 53 45  rt label-216..SE
a720: 4c 45 43 54 20 4d 41 58 28 20 41 4c 4c 20 2d 20  LECT MAX( ALL - 
a730: 2d 20 63 6f 6c 31 20 29 20 2b 20 2b 20 34 36 20  - col1 ) + + 46 
a740: 2a 20 2b 20 37 30 20 2a 20 2d 20 2b 20 34 30 2c  * + 70 * - + 40,
a750: 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53   - COUNT( * ) AS
a760: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d   col2 FROM tab2.
a770: 0a 2d 2d 2d 2d 0d 0a 2d 31 32 38 37 32 33 0d 0a  .----..-128723..
a780: 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  -3....skipif mys
a790: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
a7a0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
a7b0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 31 36 0d  wsort label-216.
a7c0: 0a 53 45 4c 45 43 54 20 4d 41 58 20 28 20 41 4c  .SELECT MAX ( AL
a7d0: 4c 20 2d 20 2d 20 63 6f 6c 31 20 29 20 2b 20 2b  L - - col1 ) + +
a7e0: 20 34 36 20 2a 20 2b 20 37 30 20 2a 20 2d 20 2b   46 * + 70 * - +
a7f0: 20 34 30 2c 20 2d 20 43 4f 55 4e 54 20 28 20 2a   40, - COUNT ( *
a800: 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
a810: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 38  tab2..----..-128
a820: 37 32 33 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79  723..-3....query
a830: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
a840: 43 54 20 41 4c 4c 20 2b 20 37 34 20 41 53 20 63  CT ALL + 74 AS c
a850: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
a860: 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
a870: 20 74 61 62 32 20 41 53 20 63 6f 72 31 0d 0a 2d   tab2 AS cor1..-
a880: 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
a890: 73 68 69 6e 67 20 74 6f 20 32 63 63 66 38 65 66  shing to 2ccf8ef
a8a0: 33 66 34 37 37 65 31 61 31 61 33 65 33 30 63 38  3f477e1a1a3e30c8
a8b0: 62 38 31 35 34 66 66 33 31 0d 0a 0d 0a 71 75 65  b8154ff31....que
a8c0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
a8d0: 4c 45 43 54 20 41 4c 4c 20 37 37 20 2a 20 35 38  LECT ALL 77 * 58
a8e0: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
a8f0: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 34 34 36 36 0d 0a  b0..----..4466..
a900: 34 34 36 36 0d 0a 34 34 36 36 0d 0a 0d 0a 71 75  4466..4466....qu
a910: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
a920: 45 4c 45 43 54 20 2d 20 2b 20 63 6f 6c 30 20 41  ELECT - + col0 A
a930: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
a940: 20 57 48 45 52 45 20 2b 20 38 35 20 49 53 20 4e   WHERE + 85 IS N
a950: 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d  OT NULL..----..-
a960: 34 36 0d 0a 2d 36 34 0d 0a 2d 37 35 0d 0a 0d 0a  46..-64..-75....
a970: 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
a980: 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
a990: 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
a9a0: 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
a9b0: 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
a9c0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
a9d0: 54 20 63 6f 6c 30 20 2a 20 2b 20 37 35 20 41 53  T col0 * + 75 AS
a9e0: 20 63 6f 6c 30 2c 20 38 20 63 6f 6c 32 20 46 52   col0, 8 col2 FR
a9f0: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
aa00: 31 32 35 0d 0a 38 0d 0a 36 35 32 35 0d 0a 38 0d  125..8..6525..8.
aa10: 0a 37 32 37 35 0d 0a 38 0d 0a 0d 0a 71 75 65 72  .7275..8....quer
aa20: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
aa30: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
aa40: 31 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 31 39  1 WHERE NOT + 19
aa50: 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
aa60: 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
aa70: 20 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36   to c6c0a4111b36
aa80: 64 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35  d04dbc811a11e4d5
aa90: 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20 49 49  4cad....query II
aaa0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
aab0: 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53  T * FROM tab0 AS
aac0: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
aad0: 32 31 20 2b 20 2b 20 39 39 20 2b 20 2d 20 2d 20  21 + + 99 + - - 
aae0: 37 35 20 3c 3d 20 2b 20 2d 20 31 37 0d 0a 2d 2d  75 <= + - 17..--
aaf0: 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
ab00: 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35  hing to c4b42765
ab10: 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35  dff94eaaa46040e5
ab20: 33 37 66 62 34 33 62 37 0d 0a 0d 0a 6f 6e 6c 79  37fb43b7....only
ab30: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
ab40: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
ab50: 79 70 65 3a 20 44 49 56 20 66 6f 72 20 69 6e 74  ype: DIV for int
ab60: 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
ab70: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
ab80: 20 6c 61 62 65 6c 2d 32 32 33 0d 0a 53 45 4c 45   label-223..SELE
ab90: 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 2a 20  CT ALL + col0 * 
aba0: 63 6f 6c 31 20 2b 20 43 41 53 54 28 20 35 39 20  col1 + CAST( 59 
abb0: 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 63 6f  AS SIGNED ) + co
abc0: 6c 32 20 44 49 56 20 2d 20 2d 20 63 6f 6c 30 20  l2 DIV - - col0 
abd0: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
abe0: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
abf0: 0a 31 32 37 37 0d 0a 31 35 37 0d 0a 31 38 38 36  .1277..157..1886
ac00: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
ac10: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
ac20: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
ac30: 72 74 20 6c 61 62 65 6c 2d 32 32 33 0d 0a 53 45  rt label-223..SE
ac40: 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 30 20  LECT ALL + col0 
ac50: 2a 20 63 6f 6c 31 20 2b 20 43 41 53 54 20 28 20  * col1 + CAST ( 
ac60: 35 39 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  59 AS INTEGER ) 
ac70: 2b 20 63 6f 6c 32 20 2f 20 2d 20 2d 20 63 6f 6c  + col2 / - - col
ac80: 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  0 AS col1 FROM t
ac90: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
aca0: 2d 0d 0a 31 32 37 37 0d 0a 31 35 37 0d 0a 31 38  -..1277..157..18
acb0: 38 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  86....query III 
acc0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
acd0: 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ALL * FROM tab0 
ace0: 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  cor0 WHERE NULL 
acf0: 4e 4f 54 20 42 45 54 57 45 45 4e 20 33 39 20 2a  NOT BETWEEN 39 *
ad00: 20 2d 20 63 6f 6c 32 20 41 4e 44 20 63 6f 6c 31   - col2 AND col1
ad10: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
ad20: 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
ad30: 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
ad40: 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  n: ..query II ro
ad50: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 32 35 0d  wsort label-225.
ad60: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
ad70: 20 2b 20 31 36 20 44 49 56 20 63 6f 6c 31 2c 20   + 16 DIV col1, 
ad80: 39 39 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  99 col0 FROM tab
ad90: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
ada0: 0a 30 0d 0a 39 39 0d 0a 0d 0a 73 6b 69 70 69 66  .0..99....skipif
adb0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
adc0: 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
add0: 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
ade0: 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
adf0: 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
ae00: 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
ae10: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
ae20: 72 74 20 6c 61 62 65 6c 2d 32 32 35 0d 0a 53 45  rt label-225..SE
ae30: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
ae40: 31 36 20 2f 20 63 6f 6c 31 2c 20 39 39 20 63 6f  16 / col1, 99 co
ae50: 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l0 FROM tab2 AS 
ae60: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 39  cor0..----..0..9
ae70: 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  9....query I row
ae80: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
ae90: 54 49 4e 43 54 20 2b 20 2d 20 63 6f 6c 32 20 2b  TINCT + - col2 +
aea0: 20 2d 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 2b 20   - - col2 * + + 
aeb0: 39 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  9 FROM tab2 WHER
aec0: 45 20 2b 20 37 34 20 42 45 54 57 45 45 4e 20 4e  E + 74 BETWEEN N
aed0: 55 4c 4c 20 41 4e 44 20 2b 20 2b 20 37 35 0d 0a  ULL AND + + 75..
aee0: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
aef0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
af00: 2d 20 38 33 20 41 53 20 63 6f 6c 32 20 46 52 4f  - 83 AS col2 FRO
af10: 4d 20 74 61 62 31 2c 20 74 61 62 32 20 41 53 20  M tab1, tab2 AS 
af20: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  cor0..----..9 va
af30: 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
af40: 64 35 35 37 34 38 66 33 39 66 34 30 33 65 63 32  d55748f39f403ec2
af50: 37 33 30 39 39 63 30 64 38 37 62 30 62 66 62 62  73099c0d87b0bfbb
af60: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
af70: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
af80: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
af90: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 32 38  owsort label-228
afa0: 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54  ..SELECT + COUNT
afb0: 28 20 2a 20 29 20 2a 20 43 4f 55 4e 54 28 20 2a  ( * ) * COUNT( *
afc0: 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
afd0: 74 61 62 30 2c 20 74 61 62 30 20 41 53 20 63 6f  tab0, tab0 AS co
afe0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 31 0d 0a 0d 0a  r0..----..81....
aff0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
b000: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
b010: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
b020: 61 62 65 6c 2d 32 32 38 0d 0a 53 45 4c 45 43 54  abel-228..SELECT
b030: 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a   + COUNT ( * ) *
b040: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
b050: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 2c 20  col0 FROM tab0, 
b060: 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
b070: 2d 2d 0d 0a 38 31 0d 0a 0d 0a 6f 6e 6c 79 69 66  --..81....onlyif
b080: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
b090: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
b0a0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
b0b0: 65 6c 2d 32 32 39 0d 0a 53 45 4c 45 43 54 20 43  el-229..SELECT C
b0c0: 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20 4d 41  OUNT( * ) * + MA
b0d0: 58 28 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74  X( col0 ) FROM t
b0e0: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 39 31 0d 0a  ab0..----..291..
b0f0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
b100: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
b110: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
b120: 20 6c 61 62 65 6c 2d 32 32 39 0d 0a 53 45 4c 45   label-229..SELE
b130: 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a  CT COUNT ( * ) *
b140: 20 2b 20 4d 41 58 20 28 20 63 6f 6c 30 20 29 20   + MAX ( col0 ) 
b150: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
b160: 0a 32 39 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .291....query II
b170: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
b180: 20 41 4c 4c 20 2b 20 63 6f 6c 31 2c 20 2b 20 37   ALL + col1, + 7
b190: 33 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  3 FROM tab0 AS c
b1a0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 37 33  or0..----..1..73
b1b0: 0d 0a 32 31 0d 0a 37 33 0d 0a 38 31 0d 0a 37 33  ..21..73..81..73
b1c0: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
b1d0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
b1e0: 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
b1f0: 28 20 63 6f 6c 32 20 2a 20 2b 20 37 35 20 29 20  ( col2 * + 75 ) 
b200: 3c 3d 20 63 6f 6c 32 20 2f 20 2d 20 34 0d 0a 2d  <= col2 / - 4..-
b210: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
b220: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
b230: 6f 6c 32 20 2f 20 63 6f 6c 32 20 41 53 20 63 6f  ol2 / col2 AS co
b240: 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45  l2 FROM tab2 WHE
b250: 52 45 20 4e 4f 54 20 63 6f 6c 30 20 3d 20 4e 55  RE NOT col0 = NU
b260: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
b270: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
b280: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 31  ECT DISTINCT + 1
b290: 31 20 2a 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32  1 * col1 AS col2
b2a0: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
b2b0: 0d 0a 35 36 31 0d 0a 37 33 37 0d 0a 38 34 37 0d  ..561..737..847.
b2c0: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
b2d0: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
b2e0: 4e 43 54 20 63 6f 6c 30 20 2a 20 2d 20 35 34 20  NCT col0 * - 54 
b2f0: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
b300: 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 34 38 34 0d 0a  2..----..-2484..
b310: 2d 33 34 35 36 0d 0a 2d 34 30 35 30 0d 0a 0d 0a  -3456..-4050....
b320: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
b330: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
b340: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
b350: 72 74 20 6c 61 62 65 6c 2d 32 33 35 0d 0a 53 45  rt label-235..SE
b360: 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20  LECT - COUNT( * 
b370: 29 20 2d 20 2d 20 28 20 43 4f 55 4e 54 28 20 2a  ) - - ( COUNT( *
b380: 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   ) ) AS col1 FRO
b390: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab0..----..0.
b3a0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
b3b0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
b3c0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
b3d0: 74 20 6c 61 62 65 6c 2d 32 33 35 0d 0a 53 45 4c  t label-235..SEL
b3e0: 45 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  ECT - COUNT ( * 
b3f0: 29 20 2d 20 2d 20 28 20 43 4f 55 4e 54 20 28 20  ) - - ( COUNT ( 
b400: 2a 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52  * ) ) AS col1 FR
b410: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30  OM tab0..----..0
b420: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
b430: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
b440: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
b450: 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
b460: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
b470: 20 6c 61 62 65 6c 2d 32 33 36 0d 0a 53 45 4c 45   label-236..SELE
b480: 43 54 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53  CT CAST( NULL AS
b490: 20 53 49 47 4e 45 44 20 29 20 2d 20 2d 20 43 4f   SIGNED ) - - CO
b4a0: 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
b4b0: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b2..----..NULL..
b4c0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
b4d0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
b4e0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
b4f0: 20 6c 61 62 65 6c 2d 32 33 36 0d 0a 53 45 4c 45   label-236..SELE
b500: 43 54 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41  CT CAST ( NULL A
b510: 53 20 49 4e 54 45 47 45 52 20 29 20 2d 20 2d 20  S INTEGER ) - - 
b520: 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d  COUNT ( * ) FROM
b530: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   tab2..----..NUL
b540: 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  L....query I row
b550: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
b560: 20 34 39 20 46 52 4f 4d 20 74 61 62 31 20 57 48   49 FROM tab1 WH
b570: 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54  ERE NOT NULL NOT
b580: 20 42 45 54 57 45 45 4e 20 2d 20 63 6f 6c 30 20   BETWEEN - col0 
b590: 2a 20 33 38 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d  * 38 AND NULL..-
b5a0: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
b5b0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
b5c0: 20 31 34 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20   14 - col2 FROM 
b5d0: 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 63  tab0 WHERE NOT c
b5e0: 6f 6c 32 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  ol2 NOT BETWEEN 
b5f0: 28 20 4e 55 4c 4c 20 29 20 41 4e 44 20 39 30 0d  ( NULL ) AND 90.
b600: 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
b610: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
b620: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
b630: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
b640: 6f 72 74 20 6c 61 62 65 6c 2d 32 33 39 0d 0a 53  ort label-239..S
b650: 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 46 52 4f  ELECT - col2 FRO
b660: 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54  M tab1 WHERE NOT
b670: 20 28 20 28 20 2b 20 63 6f 6c 32 20 29 20 2b 20   ( ( + col2 ) + 
b680: 2b 20 34 20 29 20 4e 4f 54 20 42 45 54 57 45 45  + 4 ) NOT BETWEE
b690: 4e 20 28 20 43 41 53 54 28 20 63 6f 6c 30 20 41  N ( CAST( col0 A
b6a0: 53 20 53 49 47 4e 45 44 20 29 20 29 20 41 4e 44  S SIGNED ) ) AND
b6b0: 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 30   - col0 * + col0
b6c0: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
b6d0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
b6e0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
b6f0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
b700: 33 39 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  39..SELECT - col
b710: 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  2 FROM tab1 WHER
b720: 45 20 4e 4f 54 20 28 20 28 20 2b 20 63 6f 6c 32  E NOT ( ( + col2
b730: 20 29 20 2b 20 2b 20 34 20 29 20 4e 4f 54 20 42   ) + + 4 ) NOT B
b740: 45 54 57 45 45 4e 20 28 20 43 41 53 54 20 28 20  ETWEEN ( CAST ( 
b750: 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45 52 20  col0 AS INTEGER 
b760: 29 20 29 20 41 4e 44 20 2d 20 63 6f 6c 30 20 2a  ) ) AND - col0 *
b770: 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d   + col0..----...
b780: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
b790: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
b7a0: 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
b7b0: 20 4e 4f 54 20 34 32 20 2a 20 2b 20 37 39 20 42   NOT 42 * + 79 B
b7c0: 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20  ETWEEN NULL AND 
b7d0: 2b 20 28 20 2b 20 63 6f 6c 30 20 29 0d 0a 2d 2d  + ( + col0 )..--
b7e0: 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
b7f0: 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61  hing to 75c998aa
b800: 35 33 61 63 38 33 32 31 38 63 62 66 32 66 65 62  53ac83218cbf2feb
b810: 39 36 32 64 30 61 34 39 0d 0a 0d 0a 6f 6e 6c 79  962d0a49....only
b820: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
b830: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
b840: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
b850: 61 62 65 6c 2d 32 34 31 0d 0a 53 45 4c 45 43 54  abel-241..SELECT
b860: 20 4d 49 4e 28 20 41 4c 4c 20 36 20 29 20 46 52   MIN( ALL 6 ) FR
b870: 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 36  OM tab1..----..6
b880: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
b890: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
b8a0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
b8b0: 72 74 20 6c 61 62 65 6c 2d 32 34 31 0d 0a 53 45  rt label-241..SE
b8c0: 4c 45 43 54 20 4d 49 4e 20 28 20 41 4c 4c 20 36  LECT MIN ( ALL 6
b8d0: 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d   ) FROM tab1..--
b8e0: 2d 2d 0d 0a 36 0d 0a 0d 0a 71 75 65 72 79 20 49  --..6....query I
b8f0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
b900: 20 41 4c 4c 20 2d 20 34 36 20 41 53 20 63 6f 6c   ALL - 46 AS col
b910: 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  2 FROM tab1 WHER
b920: 45 20 4e 4f 54 20 2d 20 34 31 20 2f 20 63 6f 6c  E NOT - 41 / col
b930: 30 20 3c 3d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d  0 <= col1..----.
b940: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
b950: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
b960: 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 33  ROM tab1 WHERE 3
b970: 34 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  4 IS NULL..----.
b980: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
b990: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63  rt..SELECT ALL c
b9a0: 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol0 AS col2 FROM
b9b0: 20 74 61 62 30 20 57 48 45 52 45 20 4e 55 4c 4c   tab0 WHERE NULL
b9c0: 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
b9d0: 31 35 0d 0a 38 37 0d 0a 39 37 0d 0a 0d 0a 6f 6e  15..87..97....on
b9e0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
b9f0: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
ba00: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
ba10: 20 6c 61 62 65 6c 2d 32 34 35 0d 0a 53 45 4c 45   label-245..SELE
ba20: 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53  CT COUNT( * ) AS
ba30: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
ba40: 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20 4e  WHERE NOT col2 N
ba50: 4f 54 20 49 4e 20 28 20 2d 20 63 6f 6c 32 20 2b  OT IN ( - col2 +
ba60: 20 2d 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d   - col0 )..----.
ba70: 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
ba80: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
ba90: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
baa0: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 34 35 0d 0a  sort label-245..
bab0: 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 2a  SELECT COUNT ( *
bac0: 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
bad0: 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 63  tab1 WHERE NOT c
bae0: 6f 6c 32 20 4e 4f 54 20 49 4e 20 28 20 2d 20 63  ol2 NOT IN ( - c
baf0: 6f 6c 32 20 2b 20 2d 20 63 6f 6c 30 20 29 0d 0a  ol2 + - col0 )..
bb00: 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69  ----..0....onlyi
bb10: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
bb20: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
bb30: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
bb40: 62 65 6c 2d 32 34 36 0d 0a 53 45 4c 45 43 54 20  bel-246..SELECT 
bb50: 31 39 20 2a 20 4d 49 4e 28 20 44 49 53 54 49 4e  19 * MIN( DISTIN
bb60: 43 54 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63  CT + col0 ) AS c
bb70: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
bb80: 2d 2d 2d 0d 0a 38 37 34 0d 0a 0d 0a 73 6b 69 70  ---..874....skip
bb90: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
bba0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
bbb0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
bbc0: 2d 32 34 36 0d 0a 53 45 4c 45 43 54 20 31 39 20  -246..SELECT 19 
bbd0: 2a 20 4d 49 4e 20 28 20 44 49 53 54 49 4e 43 54  * MIN ( DISTINCT
bbe0: 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c   + col0 ) AS col
bbf0: 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  2 FROM tab2..---
bc00: 2d 0d 0a 38 37 34 0d 0a 0d 0a 6f 6e 6c 79 69 66  -..874....onlyif
bc10: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
bc20: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
bc30: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
bc40: 65 6c 2d 32 34 37 0d 0a 53 45 4c 45 43 54 20 2d  el-247..SELECT -
bc50: 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 4d 41   COUNT( * ) + MA
bc60: 58 28 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74  X( col1 ) FROM t
bc70: 61 62 32 20 57 48 45 52 45 20 4e 55 4c 4c 20 49  ab2 WHERE NULL I
bc80: 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 37 34  S NULL..----..74
bc90: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
bca0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
bcb0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
bcc0: 72 74 20 6c 61 62 65 6c 2d 32 34 37 0d 0a 53 45  rt label-247..SE
bcd0: 4c 45 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a  LECT - COUNT ( *
bce0: 20 29 20 2b 20 4d 41 58 20 28 20 63 6f 6c 31 20   ) + MAX ( col1 
bcf0: 29 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  ) FROM tab2 WHER
bd00: 45 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a  E NULL IS NULL..
bd10: 2d 2d 2d 2d 0d 0a 37 34 0d 0a 0d 0a 6f 6e 6c 79  ----..74....only
bd20: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
bd30: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
bd40: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
bd50: 61 62 65 6c 2d 32 34 38 0d 0a 53 45 4c 45 43 54  abel-248..SELECT
bd60: 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 28   DISTINCT COUNT(
bd70: 20 2a 20 29 20 2a 20 43 4f 55 4e 54 28 20 2a 20   * ) * COUNT( * 
bd80: 29 20 2b 20 34 33 20 46 52 4f 4d 20 74 61 62 32  ) + 43 FROM tab2
bd90: 0d 0a 2d 2d 2d 2d 0d 0a 35 32 0d 0a 0d 0a 73 6b  ..----..52....sk
bda0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
bdb0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
bdc0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
bdd0: 65 6c 2d 32 34 38 0d 0a 53 45 4c 45 43 54 20 44  el-248..SELECT D
bde0: 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 20 28 20  ISTINCT COUNT ( 
bdf0: 2a 20 29 20 2a 20 43 4f 55 4e 54 20 28 20 2a 20  * ) * COUNT ( * 
be00: 29 20 2b 20 34 33 20 46 52 4f 4d 20 74 61 62 32  ) + 43 FROM tab2
be10: 0d 0a 2d 2d 2d 2d 0d 0a 35 32 0d 0a 0d 0a 71 75  ..----..52....qu
be20: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
be30: 45 4c 45 43 54 20 33 30 20 2a 20 2d 20 63 6f 6c  ELECT 30 * - col
be40: 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  0 AS col0 FROM t
be50: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 33 30  ab1..----..-1530
be60: 0d 0a 2d 32 35 35 30 0d 0a 2d 32 37 33 30 0d 0a  ..-2550..-2730..
be70: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
be80: 74 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20 63 6f  t..SELECT - ( co
be90: 6c 31 20 29 20 2d 20 2b 20 63 6f 6c 30 20 46 52  l1 ) - + col0 FR
bea0: 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f  OM tab1 WHERE NO
beb0: 54 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 30 20  T col1 * - col0 
bec0: 3e 3d 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 37 31  >= + col2 * + 71
bed0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 38 0d 0a 2d 36  ..----..-138..-6
bee0: 35 0d 0a 2d 39 30 0d 0a 0d 0a 71 75 65 72 79 20  5..-90....query 
bef0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
bf00: 54 20 2b 20 38 34 20 2a 20 2d 20 63 6f 6c 30 20  T + 84 * - col0 
bf10: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
bf20: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 36 30 0d 0a  0..----..-1260..
bf30: 2d 37 33 30 38 0d 0a 2d 38 31 34 38 0d 0a 0d 0a  -7308..-8148....
bf40: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
bf50: 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72  AST syntax: aggr
bf60: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49  egate syntax: SI
bf70: 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
bf80: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
bf90: 65 6c 2d 32 35 32 0d 0a 53 45 4c 45 43 54 20 44  el-252..SELECT D
bfa0: 49 53 54 49 4e 43 54 20 43 41 53 54 28 20 2b 20  ISTINCT CAST( + 
bfb0: 39 39 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b  99 AS SIGNED ) +
bfc0: 20 43 4f 55 4e 54 28 20 41 4c 4c 20 2d 20 35 31   COUNT( ALL - 51
bfd0: 20 2b 20 2d 20 35 38 20 29 20 46 52 4f 4d 20 74   + - 58 ) FROM t
bfe0: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 32 0d 0a  ab0..----..102..
bff0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
c000: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
c010: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
c020: 20 6c 61 62 65 6c 2d 32 35 32 0d 0a 53 45 4c 45   label-252..SELE
c030: 43 54 20 44 49 53 54 49 4e 43 54 20 43 41 53 54  CT DISTINCT CAST
c040: 20 28 20 2b 20 39 39 20 41 53 20 49 4e 54 45 47   ( + 99 AS INTEG
c050: 45 52 20 29 20 2b 20 43 4f 55 4e 54 20 28 20 41  ER ) + COUNT ( A
c060: 4c 4c 20 2d 20 35 31 20 2b 20 2d 20 35 38 20 29  LL - 51 + - 58 )
c070: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
c080: 0d 0a 31 30 32 0d 0a 0d 0a 71 75 65 72 79 20 49  ..102....query I
c090: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
c0a0: 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32   DISTINCT - col2
c0b0: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
c0c0: 62 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  b0 WHERE NOT NUL
c0d0: 4c 20 3e 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a  L > col2..----..
c0e0: 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
c0f0: 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
c100: 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
c110: 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
c120: 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
c130: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
c140: 43 54 20 41 4c 4c 20 2b 20 28 20 2b 20 63 6f 6c  CT ALL + ( + col
c150: 31 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  1 ) col1 FROM ta
c160: 62 32 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  b2 WHERE NOT NUL
c170: 4c 20 3e 20 28 20 2d 20 63 6f 6c 31 20 29 0d 0a  L > ( - col1 )..
c180: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
c190: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
c1a0: 2d 20 37 33 20 2a 20 28 20 2b 20 32 32 20 2a 20  - 73 * ( + 22 * 
c1b0: 37 31 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a  71 ) FROM tab2..
c1c0: 2d 2d 2d 2d 0d 0a 2d 31 31 34 30 32 36 0d 0a 2d  ----..-114026..-
c1d0: 31 31 34 30 32 36 0d 0a 2d 31 31 34 30 32 36 0d  114026..-114026.
c1e0: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
c1f0: 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 36 37 20  rt..SELECT + 67 
c200: 2a 20 33 31 20 2b 20 2b 20 35 37 20 2a 20 2d 20  * 31 + + 57 * - 
c210: 28 20 2b 20 63 6f 6c 32 20 29 20 41 53 20 63 6f  ( + col2 ) AS co
c220: 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l1 FROM tab0..--
c230: 2d 2d 0d 0a 2d 33 35 36 36 0d 0a 2d 36 30 32 0d  --..-3566..-602.
c240: 0a 31 35 30 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .1507....onlyif 
c250: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
c260: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
c270: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
c280: 6c 2d 32 35 37 0d 0a 53 45 4c 45 43 54 20 44 49  l-257..SELECT DI
c290: 53 54 49 4e 43 54 20 2b 20 4d 41 58 28 20 41 4c  STINCT + MAX( AL
c2a0: 4c 20 36 34 20 29 20 2a 20 2d 20 36 31 20 41 53  L 64 ) * - 61 AS
c2b0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
c2c0: 0a 2d 2d 2d 2d 0d 0a 2d 33 39 30 34 0d 0a 0d 0a  .----..-3904....
c2d0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
c2e0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
c2f0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
c300: 61 62 65 6c 2d 32 35 37 0d 0a 53 45 4c 45 43 54  abel-257..SELECT
c310: 20 44 49 53 54 49 4e 43 54 20 2b 20 4d 41 58 20   DISTINCT + MAX 
c320: 28 20 41 4c 4c 20 36 34 20 29 20 2a 20 2d 20 36  ( ALL 64 ) * - 6
c330: 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  1 AS col2 FROM t
c340: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 39 30 34  ab1..----..-3904
c350: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
c360: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
c370: 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
c380: 4e 4f 54 20 63 6f 6c 31 20 42 45 54 57 45 45 4e  NOT col1 BETWEEN
c390: 20 35 38 20 41 4e 44 20 28 20 4e 55 4c 4c 20 29   58 AND ( NULL )
c3a0: 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 35 31 0d 0a  ..----..46..51..
c3b0: 32 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  23....query III 
c3c0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
c3d0: 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ALL * FROM tab0 
c3e0: 63 6f 72 30 20 57 48 45 52 45 20 2b 20 37 34 20  cor0 WHERE + 74 
c3f0: 4e 4f 54 20 49 4e 20 28 20 2b 20 63 6f 6c 31 20  NOT IN ( + col1 
c400: 2a 20 2b 20 28 20 63 6f 6c 31 20 29 20 29 0d 0a  * + ( col1 ) )..
c410: 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
c420: 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37  ashing to c4b427
c430: 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30  65dff94eaaa46040
c440: 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75  e537fb43b7....qu
c450: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
c460: 45 4c 45 43 54 20 41 4c 4c 20 38 37 20 2d 20 63  ELECT ALL 87 - c
c470: 6f 6c 32 20 2a 20 2d 20 39 30 20 41 53 20 63 6f  ol2 * - 90 AS co
c480: 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
c490: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 33 39 37  cor0..----..5397
c4a0: 0d 0a 36 32 30 37 0d 0a 38 37 32 37 0d 0a 0d 0a  ..6207..8727....
c4b0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
c4c0: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
c4d0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
c4e0: 72 74 20 6c 61 62 65 6c 2d 32 36 31 0d 0a 53 45  rt label-261..SE
c4f0: 4c 45 43 54 20 37 36 20 2d 20 2d 20 4d 41 58 28  LECT 76 - - MAX(
c500: 20 44 49 53 54 49 4e 43 54 20 2d 20 37 31 20 29   DISTINCT - 71 )
c510: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
c520: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
c530: 0d 0a 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..5....skipif my
c540: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
c550: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
c560: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 36 31 0d  wsort label-261.
c570: 0a 53 45 4c 45 43 54 20 37 36 20 2d 20 2d 20 4d  .SELECT 76 - - M
c580: 41 58 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20  AX ( DISTINCT - 
c590: 37 31 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  71 ) AS col2 FRO
c5a0: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
c5b0: 2d 2d 2d 2d 0d 0a 35 0d 0a 0d 0a 71 75 65 72 79  ----..5....query
c5c0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
c5d0: 43 54 20 63 6f 6c 32 20 2a 20 37 38 20 2d 20 63  CT col2 * 78 - c
c5e0: 6f 6c 31 20 2a 20 31 37 20 41 53 20 63 6f 6c 31  ol1 * 17 AS col1
c5f0: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
c600: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 35 30 35 0d 0a  r0..----..4505..
c610: 34 35 31 37 0d 0a 37 32 35 30 0d 0a 0d 0a 71 75  4517..7250....qu
c620: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
c630: 45 4c 45 43 54 20 35 34 20 41 53 20 63 6f 6c 32  ELECT 54 AS col2
c640: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
c650: 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
c660: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  b2..----..9 valu
c670: 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 64 32  es hashing to d2
c680: 33 36 34 63 34 66 66 63 30 39 61 63 32 63 66 31  364c4ffc09ac2cf1
c690: 66 36 66 61 34 64 37 36 37 64 38 62 30 39 0d 0a  f6fa4d767d8b09..
c6a0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
c6b0: 74 0d 0a 53 45 4c 45 43 54 20 2d 20 37 34 20 2a  t..SELECT - 74 *
c6c0: 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   - col1 FROM tab
c6d0: 32 0d 0a 2d 2d 2d 2d 0d 0a 33 37 37 34 0d 0a 34  2..----..3774..4
c6e0: 39 35 38 0d 0a 35 36 39 38 0d 0a 0d 0a 71 75 65  958..5698....que
c6f0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
c700: 4c 45 43 54 20 2d 20 33 32 20 2b 20 63 6f 6c 32  LECT - 32 + col2
c710: 20 2a 20 35 33 20 41 53 20 63 6f 6c 31 20 46 52   * 53 AS col1 FR
c720: 4f 4d 20 74 61 62 31 20 63 6f 72 30 20 57 48 45  OM tab1 cor0 WHE
c730: 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3c 20 4e 55  RE NOT NULL < NU
c740: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  LL..----....only
c750: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
c760: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
c770: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
c780: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 36 36  owsort label-266
c790: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
c7a0: 54 20 2d 20 43 41 53 54 28 20 2d 20 28 20 39 33  T - CAST( - ( 93
c7b0: 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 41   ) AS SIGNED ) A
c7c0: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
c7d0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
c7e0: 39 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  93....skipif mys
c7f0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
c800: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
c810: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 36 36 0d 0a  sort label-266..
c820: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
c830: 2d 20 43 41 53 54 20 28 20 2d 20 28 20 39 33 20  - CAST ( - ( 93 
c840: 29 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41  ) AS INTEGER ) A
c850: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
c860: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
c870: 39 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  93....query III 
c880: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
c890: 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ALL * FROM tab0 
c8a0: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
c8b0: 54 20 28 20 2d 20 32 35 20 29 20 3d 20 63 6f 6c  T ( - 25 ) = col
c8c0: 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  1..----..9 value
c8d0: 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62  s hashing to c4b
c8e0: 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36  42765dff94eaaa46
c8f0: 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d  040e537fb43b7...
c900: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
c910: 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
c920: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
c930: 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 42 45  HERE NOT NULL BE
c940: 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 63  TWEEN NULL AND c
c950: 6f 6c 30 20 2a 20 2b 20 63 6f 6c 32 20 2b 20 63  ol0 * + col2 + c
c960: 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ol1..----....que
c970: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
c980: 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 2a 20  LECT ALL col0 * 
c990: 35 33 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  53 AS col1 FROM 
c9a0: 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
c9b0: 2d 2d 0d 0a 34 36 31 31 0d 0a 35 31 34 31 0d 0a  --..4611..5141..
c9c0: 37 39 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  795....query I r
c9d0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
c9e0: 4c 4c 20 63 6f 6c 30 20 2d 20 2b 20 63 6f 6c 30  LL col0 - + col0
c9f0: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
ca00: 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
ca10: 20 2b 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d   + col2 IS NULL.
ca20: 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
ca30: 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
ca40: 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
ca50: 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
ca60: 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
ca70: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
ca80: 74 0d 0a 53 45 4c 45 43 54 20 35 36 20 63 6f 6c  t..SELECT 56 col
ca90: 32 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  2 FROM tab1 cor0
caa0: 0d 0a 2d 2d 2d 2d 0d 0a 35 36 0d 0a 35 36 0d 0a  ..----..56..56..
cab0: 35 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  56....query I ro
cac0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
cad0: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63  col1 FROM tab0 c
cae0: 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55  or0 WHERE NOT NU
caf0: 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  LL IS NOT NULL..
cb00: 2d 2d 2d 2d 0d 0a 31 0d 0a 32 31 0d 0a 38 31 0d  ----..1..21..81.
cb10: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
cb20: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
cb30: 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
cb40: 32 20 57 48 45 52 45 20 63 6f 6c 31 20 2d 20 2d  2 WHERE col1 - -
cb50: 20 31 39 20 42 45 54 57 45 45 4e 20 2b 20 36 36   19 BETWEEN + 66
cb60: 20 2f 20 63 6f 6c 32 20 41 4e 44 20 28 20 63 6f   / col2 AND ( co
cb70: 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  l1 )..----....on
cb80: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
cb90: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
cba0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
cbb0: 20 6c 61 62 65 6c 2d 32 37 34 0d 0a 53 45 4c 45   label-274..SELE
cbc0: 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 4d 49  CT DISTINCT + MI
cbd0: 4e 28 20 2d 20 2d 20 34 34 20 29 20 41 53 20 63  N( - - 44 ) AS c
cbe0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
cbf0: 2d 2d 2d 0d 0a 34 34 0d 0a 0d 0a 73 6b 69 70 69  ---..44....skipi
cc00: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
cc10: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
cc20: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
cc30: 32 37 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  274..SELECT DIST
cc40: 49 4e 43 54 20 2b 20 4d 49 4e 20 28 20 2d 20 2d  INCT + MIN ( - -
cc50: 20 34 34 20 29 20 41 53 20 63 6f 6c 32 20 46 52   44 ) AS col2 FR
cc60: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34  OM tab2..----..4
cc70: 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  4....query I row
cc80: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
cc90: 54 49 4e 43 54 20 63 6f 6c 31 20 2b 20 2d 20 2b  TINCT col1 + - +
cca0: 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 32 20 41   col1 * + col2 A
ccb0: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
ccc0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 33 30 0d 0a 2d  ..----..-1330..-
ccd0: 32 39 30 0d 0a 2d 33 31 34 39 0d 0a 0d 0a 71 75  290..-3149....qu
cce0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
ccf0: 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 2d 20 63  ELECT + col0 - c
cd00: 6f 6c 30 20 2a 20 39 34 20 41 53 20 63 6f 6c 31  ol0 * 94 AS col1
cd10: 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
cd20: 20 4e 4f 54 20 2d 20 33 30 20 2d 20 63 6f 6c 32   NOT - 30 - col2
cd30: 20 3c 3e 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d   <> ( NULL )..--
cd40: 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
cd50: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
cd60: 53 54 49 4e 43 54 20 63 6f 6c 31 20 46 52 4f 4d  STINCT col1 FROM
cd70: 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20   tab2 WHERE NOT 
cd80: 4e 55 4c 4c 20 3d 20 2d 20 31 33 0d 0a 2d 2d 2d  NULL = - 13..---
cd90: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
cda0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 37 35 20  sort..SELECT 75 
cdb0: 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
cdc0: 4e 4f 54 20 4e 55 4c 4c 20 3e 3d 20 32 32 0d 0a  NOT NULL >= 22..
cdd0: 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  ----....skipif p
cde0: 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
cdf0: 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
ce00: 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
ce10: 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
ce20: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
ce30: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
ce40: 54 20 33 38 20 2a 20 63 6f 6c 31 20 2b 20 2b 20  T 38 * col1 + + 
ce50: 63 6f 6c 30 20 63 6f 6c 32 20 46 52 4f 4d 20 74  col0 col2 FROM t
ce60: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 35 0d 0a  ab0..----..135..
ce70: 33 30 39 33 0d 0a 38 38 35 0d 0a 0d 0a 6f 6e 6c  3093..885....onl
ce80: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
ce90: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
cea0: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
ceb0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38  rowsort label-28
cec0: 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  0..SELECT ALL - 
ced0: 43 41 53 54 28 20 63 6f 6c 32 20 41 53 20 53 49  CAST( col2 AS SI
cee0: 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 30 20 46  GNED ) AS col0 F
cef0: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
cf00: 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a 2d 34 30  ..----..-23..-40
cf10: 0d 0a 2d 35 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-58....skipif 
cf20: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
cf30: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
cf40: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38  rowsort label-28
cf50: 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  0..SELECT ALL - 
cf60: 43 41 53 54 20 28 20 63 6f 6c 32 20 41 53 20 49  CAST ( col2 AS I
cf70: 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 30  NTEGER ) AS col0
cf80: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
cf90: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a 2d  r0..----..-23..-
cfa0: 34 30 0d 0a 2d 35 38 0d 0a 0d 0a 6f 6e 6c 79 69  40..-58....onlyi
cfb0: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
cfc0: 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
cfd0: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20  pe: ..query III 
cfe0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38  rowsort label-28
cff0: 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  1..SELECT ALL * 
d000: 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57  FROM tab2 cor0 W
d010: 48 45 52 45 20 2d 20 32 39 20 4e 4f 54 20 42 45  HERE - 29 NOT BE
d020: 54 57 45 45 4e 20 43 41 53 54 28 20 2b 20 63 6f  TWEEN CAST( + co
d030: 6c 30 20 41 53 20 53 49 47 4e 45 44 20 29 20 2f  l0 AS SIGNED ) /
d040: 20 63 6f 6c 31 20 41 4e 44 20 4e 55 4c 4c 0d 0a   col1 AND NULL..
d050: 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
d060: 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38  ashing to 75c998
d070: 61 61 35 33 61 63 38 33 32 31 38 63 62 66 32 66  aa53ac83218cbf2f
d080: 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 73 6b  eb962d0a49....sk
d090: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
d0a0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
d0b0: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
d0c0: 61 62 65 6c 2d 32 38 31 0d 0a 53 45 4c 45 43 54  abel-281..SELECT
d0d0: 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32   ALL * FROM tab2
d0e0: 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20 32 39   cor0 WHERE - 29
d0f0: 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 43 41 53   NOT BETWEEN CAS
d100: 54 20 28 20 2b 20 63 6f 6c 30 20 41 53 20 49 4e  T ( + col0 AS IN
d110: 54 45 47 45 52 20 29 20 2f 20 63 6f 6c 31 20 41  TEGER ) / col1 A
d120: 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  ND NULL..----..9
d130: 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
d140: 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38  to 75c998aa53ac8
d150: 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30  3218cbf2feb962d0
d160: 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  a49....query I r
d170: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
d180: 49 53 54 49 4e 43 54 20 28 20 35 34 20 29 20 41  ISTINCT ( 54 ) A
d190: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
d1a0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
d1b0: 35 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  54....query I ro
d1c0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
d1d0: 2d 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 32 20  - col0 * + col2 
d1e0: 2b 20 34 38 20 41 53 20 63 6f 6c 31 20 46 52 4f  + 48 AS col1 FRO
d1f0: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
d200: 2d 2d 2d 2d 0d 0a 2d 34 38 34 38 0d 0a 2d 34 39  ----..-4848..-49
d210: 36 37 0d 0a 2d 36 31 34 30 0d 0a 0d 0a 71 75 65  67..-6140....que
d220: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
d230: 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
d240: 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
d250: 20 28 20 4e 4f 54 20 4e 55 4c 4c 20 3d 20 4e 55   ( NOT NULL = NU
d260: 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b  LL )..----....sk
d270: 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
d280: 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
d290: 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
d2a0: 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
d2b0: 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
d2c0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
d2d0: 20 38 37 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   87 col2 FROM ta
d2e0: 62 30 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53  b0 AS cor0 CROSS
d2f0: 20 4a 4f 49 4e 20 74 61 62 31 20 41 53 20 63 6f   JOIN tab1 AS co
d300: 72 31 20 57 48 45 52 45 20 28 20 33 35 20 29 20  r1 WHERE ( 35 ) 
d310: 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
d320: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
d330: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
d340: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
d350: 6f 72 74 20 6c 61 62 65 6c 2d 32 38 36 0d 0a 53  ort label-286..S
d360: 45 4c 45 43 54 20 41 4c 4c 20 4d 41 58 28 20 2d  ELECT ALL MAX( -
d370: 20 2b 20 63 6f 6c 30 20 29 20 2b 20 2b 20 2d 20   + col0 ) + + - 
d380: 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f  COUNT( * ) AS co
d390: 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l2 FROM tab0..--
d3a0: 2d 2d 0d 0a 2d 31 38 0d 0a 0d 0a 73 6b 69 70 69  --..-18....skipi
d3b0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
d3c0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
d3d0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
d3e0: 32 38 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  286..SELECT ALL 
d3f0: 4d 41 58 20 28 20 2d 20 2b 20 63 6f 6c 30 20 29  MAX ( - + col0 )
d400: 20 2b 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a   + + - COUNT ( *
d410: 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
d420: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38 0d  tab0..----..-18.
d430: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
d440: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
d450: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
d460: 20 57 48 45 52 45 20 28 20 2b 20 37 38 20 2a 20   WHERE ( + 78 * 
d470: 63 6f 6c 30 20 2b 20 28 20 2d 20 63 6f 6c 32 20  col0 + ( - col2 
d480: 29 20 2a 20 2b 20 63 6f 6c 30 20 29 20 4e 4f 54  ) * + col0 ) NOT
d490: 20 42 45 54 57 45 45 4e 20 28 20 4e 55 4c 4c 20   BETWEEN ( NULL 
d4a0: 29 20 41 4e 44 20 63 6f 6c 30 20 2b 20 63 6f 6c  ) AND col0 + col
d4b0: 32 20 2a 20 2b 20 33 34 0d 0a 2d 2d 2d 2d 0d 0a  2 * + 34..----..
d4c0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
d4d0: 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2a  t..SELECT col0 *
d4e0: 20 2b 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 63 6f   + - col0 + + co
d4f0: 6c 32 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74  l2 - col0 FROM t
d500: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
d510: 2d 0d 0a 2d 32 35 35 36 0d 0a 2d 37 32 35 31 0d  -..-2556..-7251.
d520: 0a 2d 38 33 30 34 0d 0a 0d 0a 71 75 65 72 79 20  .-8304....query 
d530: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
d540: 54 20 44 49 53 54 49 4e 43 54 20 2d 20 37 35 20  T DISTINCT - 75 
d550: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
d560: 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f  0 WHERE NOT + co
d570: 6c 31 20 2b 20 63 6f 6c 31 20 3c 3d 20 2b 20 63  l1 + col1 <= + c
d580: 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 35 0d 0a  ol0..----..-75..
d590: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
d5a0: 74 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 35 30  t..SELECT + ( 50
d5b0: 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
d5c0: 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  cor0 WHERE NULL 
d5d0: 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44  BETWEEN NULL AND
d5e0: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
d5f0: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
d600: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
d610: 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48  ROM tab2 cor0 WH
d620: 45 52 45 20 28 20 2b 20 63 6f 6c 32 20 2a 20 2d  ERE ( + col2 * -
d630: 20 2d 20 37 36 20 29 20 42 45 54 57 45 45 4e 20   - 76 ) BETWEEN 
d640: 28 20 2d 20 34 37 20 29 20 2d 20 63 6f 6c 32 20  ( - 47 ) - col2 
d650: 41 4e 44 20 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d  AND - col0..----
d660: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
d670: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
d680: 2d 20 39 34 20 2b 20 2d 20 2b 20 63 6f 6c 31 20  - 94 + - + col1 
d690: 2b 20 2b 20 36 32 20 2a 20 63 6f 6c 31 20 46 52  + + 62 * col1 FR
d6a0: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
d6b0: 0a 2d 2d 2d 2d 0d 0a 33 30 31 37 0d 0a 33 39 39  .----..3017..399
d6c0: 33 0d 0a 34 36 30 33 0d 0a 0d 0a 6f 6e 6c 79 69  3..4603....onlyi
d6d0: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
d6e0: 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
d6f0: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
d700: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 39 33 0d  wsort label-293.
d710: 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2a 20 43  .SELECT col2 * C
d720: 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
d730: 4e 45 44 20 29 20 2a 20 2d 20 63 6f 6c 31 20 46  NED ) * - col1 F
d740: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
d750: 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
d760: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  LL..NULL....skip
d770: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
d780: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
d790: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
d7a0: 2d 32 39 33 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  -293..SELECT col
d7b0: 32 20 2a 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  2 * CAST ( NULL 
d7c0: 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2d  AS INTEGER ) * -
d7d0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
d7e0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
d7f0: 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
d800: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
d810: 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c  rt..SELECT + col
d820: 31 20 2a 20 2d 20 33 33 20 2a 20 2b 20 2d 20 63  1 * - 33 * + - c
d830: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  ol2 FROM tab1 co
d840: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 35 34 36 38  r0..----..105468
d850: 0d 0a 34 34 33 35 32 0d 0a 39 37 33 35 0d 0a 0d  ..44352..9735...
d860: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
d870: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
d880: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
d890: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
d8a0: 6c 2d 32 39 35 0d 0a 53 45 4c 45 43 54 20 44 49  l-295..SELECT DI
d8b0: 53 54 49 4e 43 54 20 63 6f 6c 30 20 41 53 20 63  STINCT col0 AS c
d8c0: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol0 FROM tab2 co
d8d0: 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 32  r0 WHERE NOT - 2
d8e0: 20 42 45 54 57 45 45 4e 20 28 20 28 20 2d 20 63   BETWEEN ( ( - c
d8f0: 6f 6c 31 20 29 20 29 20 41 4e 44 20 43 41 53 54  ol1 ) ) AND CAST
d900: 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
d910: 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70   )..----....skip
d920: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
d930: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
d940: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
d950: 2d 32 39 35 0d 0a 53 45 4c 45 43 54 20 44 49 53  -295..SELECT DIS
d960: 54 49 4e 43 54 20 63 6f 6c 30 20 41 53 20 63 6f  TINCT col0 AS co
d970: 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72  l0 FROM tab2 cor
d980: 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 32 20  0 WHERE NOT - 2 
d990: 42 45 54 57 45 45 4e 20 28 20 28 20 2d 20 63 6f  BETWEEN ( ( - co
d9a0: 6c 31 20 29 20 29 20 41 4e 44 20 43 41 53 54 20  l1 ) ) AND CAST 
d9b0: 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
d9c0: 52 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  R )..----....que
d9d0: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
d9e0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
d9f0: 62 30 20 57 48 45 52 45 20 2d 20 39 34 20 49 53  b0 WHERE - 94 IS
da00: 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
da10: 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
da20: 67 20 74 6f 20 63 34 62 34 32 37 36 35 64 66 66  g to c4b42765dff
da30: 39 34 65 61 61 61 34 36 30 34 30 65 35 33 37 66  94eaaa46040e537f
da40: 62 34 33 62 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  b43b7....onlyif 
da50: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
da60: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
da70: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
da80: 6c 2d 32 39 37 0d 0a 53 45 4c 45 43 54 20 41 4c  l-297..SELECT AL
da90: 4c 20 2b 20 2b 20 53 55 4d 28 20 63 6f 6c 32 20  L + + SUM( col2 
daa0: 29 20 2a 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  ) * COUNT( * ) F
dab0: 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
dac0: 4f 54 20 63 6f 6c 31 20 3e 3d 20 4e 55 4c 4c 0d  OT col1 >= NULL.
dad0: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
dae0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
daf0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
db00: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
db10: 62 65 6c 2d 32 39 37 0d 0a 53 45 4c 45 43 54 20  bel-297..SELECT 
db20: 41 4c 4c 20 2b 20 2b 20 53 55 4d 20 28 20 63 6f  ALL + + SUM ( co
db30: 6c 32 20 29 20 2a 20 43 4f 55 4e 54 20 28 20 2a  l2 ) * COUNT ( *
db40: 20 29 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   ) FROM tab0 WHE
db50: 52 45 20 4e 4f 54 20 63 6f 6c 31 20 3e 3d 20 4e  RE NOT col1 >= N
db60: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ULL..----..NULL.
db70: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
db80: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
db90: 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 2b  ROM tab1 WHERE +
dba0: 20 63 6f 6c 32 20 3c 3d 20 37 32 0d 0a 2d 2d 2d   col2 <= 72..---
dbb0: 2d 0d 0a 38 35 0d 0a 35 0d 0a 35 39 0d 0a 39 31  -..85..5..59..91
dbc0: 0d 0a 34 37 0d 0a 36 38 0d 0a 0d 0a 71 75 65 72  ..47..68....quer
dbd0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
dbe0: 45 43 54 20 31 30 20 2b 20 2b 20 63 6f 6c 30 20  ECT 10 + + col0 
dbf0: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
dc00: 31 0d 0a 2d 2d 2d 2d 0d 0a 31 30 31 0d 0a 36 31  1..----..101..61
dc10: 0d 0a 39 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  ..95....skipif p
dc20: 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
dc30: 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
dc40: 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
dc50: 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
dc60: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
dc70: 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 63 6f  ..SELECT col2 co
dc80: 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  l2 FROM tab1 WHE
dc90: 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54 57  RE NULL NOT BETW
dca0: 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 31 20 2b  EEN NULL AND 1 +
dcb0: 20 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d   - col2..----...
dcc0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
dcd0: 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 63 6f 6c  ..SELECT + - col
dce0: 30 20 2a 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 2d  0 * + col1 + + -
dcf0: 20 63 6f 6c 31 20 2b 20 2b 20 2b 20 28 20 2b 20   col1 + + + ( + 
dd00: 38 37 20 29 20 2a 20 33 37 20 41 53 20 63 6f 6c  87 ) * 37 AS col
dd10: 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
dd20: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 30 35  or0..----..-1105
dd30: 0d 0a 32 34 39 31 0d 0a 32 37 38 39 0d 0a 0d 0a  ..2491..2789....
dd40: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
dd50: 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
dd60: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
dd70: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
dd80: 2d 33 30 32 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  -302..SELECT col
dd90: 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
dda0: 6f 72 30 20 57 48 45 52 45 20 2b 20 43 41 53 54  or0 WHERE + CAST
ddb0: 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
ddc0: 20 29 20 3e 3d 20 28 20 2b 20 63 6f 6c 32 20 2a   ) >= ( + col2 *
ddd0: 20 63 6f 6c 32 20 2b 20 32 32 20 29 0d 0a 2d 2d   col2 + 22 )..--
dde0: 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
ddf0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
de00: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
de10: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 30 32 0d 0a  sort label-302..
de20: 53 45 4c 45 43 54 20 63 6f 6c 30 20 46 52 4f 4d  SELECT col0 FROM
de30: 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
de40: 45 52 45 20 2b 20 43 41 53 54 20 28 20 4e 55 4c  ERE + CAST ( NUL
de50: 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 3e  L AS INTEGER ) >
de60: 3d 20 28 20 2b 20 63 6f 6c 32 20 2a 20 63 6f 6c  = ( + col2 * col
de70: 32 20 2b 20 32 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a  2 + 22 )..----..
de80: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
de90: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
dea0: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
deb0: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 30 33 0d 0a  sort label-303..
dec0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
ded0: 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20  COUNT( * ) FROM 
dee0: 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
def0: 52 45 20 4e 4f 54 20 28 20 63 6f 6c 31 20 2a 20  RE NOT ( col1 * 
df00: 2b 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c  + - col2 * + col
df10: 30 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  0 ) IS NOT NULL.
df20: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .----..0....skip
df30: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
df40: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
df50: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
df60: 2d 33 30 33 0d 0a 53 45 4c 45 43 54 20 44 49 53  -303..SELECT DIS
df70: 54 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 2a 20  TINCT COUNT ( * 
df80: 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
df90: 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20  or0 WHERE NOT ( 
dfa0: 63 6f 6c 31 20 2a 20 2b 20 2d 20 63 6f 6c 32 20  col1 * + - col2 
dfb0: 2a 20 2b 20 63 6f 6c 30 20 29 20 49 53 20 4e 4f  * + col0 ) IS NO
dfc0: 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  T NULL..----..0.
dfd0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
dfe0: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
dff0: 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
e000: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
e010: 61 62 65 6c 2d 33 30 34 0d 0a 53 45 4c 45 43 54  abel-304..SELECT
e020: 20 44 49 53 54 49 4e 43 54 20 43 41 53 54 28 20   DISTINCT CAST( 
e030: 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
e040: 20 41 53 20 63 6f 6c 30 2c 20 2b 20 63 6f 6c 32   AS col0, + col2
e050: 20 2b 20 2d 20 2b 20 63 6f 6c 31 20 2b 20 2b 20   + - + col1 + + 
e060: 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
e070: 47 4e 45 44 20 29 20 2b 20 2b 20 63 6f 6c 30 20  GNED ) + + col0 
e080: 2a 20 37 39 20 63 6f 6c 32 20 46 52 4f 4d 20 74  * 79 col2 FROM t
e090: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab1..----..NULL.
e0a0: 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
e0b0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
e0c0: 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70  atible..skipif p
e0d0: 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
e0e0: 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
e0f0: 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
e100: 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
e110: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
e120: 74 20 6c 61 62 65 6c 2d 33 30 34 0d 0a 53 45 4c  t label-304..SEL
e130: 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 41 53  ECT DISTINCT CAS
e140: 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
e150: 47 45 52 20 29 20 41 53 20 63 6f 6c 30 2c 20 2b  GER ) AS col0, +
e160: 20 63 6f 6c 32 20 2b 20 2d 20 2b 20 63 6f 6c 31   col2 + - + col1
e170: 20 2b 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c   + + CAST ( NULL
e180: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20   AS INTEGER ) + 
e190: 2b 20 63 6f 6c 30 20 2a 20 37 39 20 63 6f 6c 32  + col0 * 79 col2
e1a0: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
e1b0: 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
e1c0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
e1d0: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
e1e0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
e1f0: 72 74 20 6c 61 62 65 6c 2d 33 30 35 0d 0a 53 45  rt label-305..SE
e200: 4c 45 43 54 20 2b 20 2b 20 4d 49 4e 28 20 41 4c  LECT + + MIN( AL
e210: 4c 20 63 6f 6c 32 20 29 20 2a 20 2b 20 33 20 41  L col2 ) * + 3 A
e220: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
e230: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
e240: 31 37 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  177....skipif my
e250: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
e260: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
e270: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 30 35 0d  wsort label-305.
e280: 0a 53 45 4c 45 43 54 20 2b 20 2b 20 4d 49 4e 20  .SELECT + + MIN 
e290: 28 20 41 4c 4c 20 63 6f 6c 32 20 29 20 2a 20 2b  ( ALL col2 ) * +
e2a0: 20 33 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   3 AS col2 FROM 
e2b0: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
e2c0: 2d 2d 0d 0a 31 37 37 0d 0a 0d 0a 71 75 65 72 79  --..177....query
e2d0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
e2e0: 43 54 20 41 4c 4c 20 2d 20 34 33 20 41 53 20 63  CT ALL - 43 AS c
e2f0: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
e300: 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20 32 39   cor0 WHERE - 29
e310: 20 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d   = NULL..----...
e320: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
e330: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
e340: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
e350: 6f 72 74 20 6c 61 62 65 6c 2d 33 30 37 0d 0a 53  ort label-307..S
e360: 45 4c 45 43 54 20 41 4c 4c 20 2b 20 36 30 20 2a  ELECT ALL + 60 *
e370: 20 2b 20 4d 41 58 28 20 44 49 53 54 49 4e 43 54   + MAX( DISTINCT
e380: 20 2b 20 2b 20 32 37 20 29 20 2a 20 2b 20 4d 41   + + 27 ) * + MA
e390: 58 28 20 63 6f 6c 30 20 29 20 2b 20 43 4f 55 4e  X( col0 ) + COUN
e3a0: 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46  T( * ) AS col1 F
e3b0: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
e3c0: 0d 0a 2d 2d 2d 2d 0d 0a 31 34 37 34 32 33 0d 0a  ..----..147423..
e3d0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
e3e0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
e3f0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
e400: 20 6c 61 62 65 6c 2d 33 30 37 0d 0a 53 45 4c 45   label-307..SELE
e410: 43 54 20 41 4c 4c 20 2b 20 36 30 20 2a 20 2b 20  CT ALL + 60 * + 
e420: 4d 41 58 20 28 20 44 49 53 54 49 4e 43 54 20 2b  MAX ( DISTINCT +
e430: 20 2b 20 32 37 20 29 20 2a 20 2b 20 4d 41 58 20   + 27 ) * + MAX 
e440: 28 20 63 6f 6c 30 20 29 20 2b 20 43 4f 55 4e 54  ( col0 ) + COUNT
e450: 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46   ( * ) AS col1 F
e460: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
e470: 0d 0a 2d 2d 2d 2d 0d 0a 31 34 37 34 32 33 0d 0a  ..----..147423..
e480: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
e490: 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 28 20  t..SELECT - - ( 
e4a0: 2b 20 2b 20 31 38 20 29 20 46 52 4f 4d 20 74 61  + + 18 ) FROM ta
e4b0: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
e4c0: 0d 0a 31 38 0d 0a 31 38 0d 0a 31 38 0d 0a 0d 0a  ..18..18..18....
e4d0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
e4e0: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
e4f0: 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
e500: 6f 72 74 20 6c 61 62 65 6c 2d 33 30 39 0d 0a 53  ort label-309..S
e510: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
e520: 20 4d 49 4e 28 20 41 4c 4c 20 28 20 2d 20 63 6f   MIN( ALL ( - co
e530: 6c 31 20 29 20 29 20 41 53 20 63 6f 6c 32 2c 20  l1 ) ) AS col2, 
e540: 2b 20 36 32 20 2b 20 35 35 20 46 52 4f 4d 20 74  + 62 + 55 FROM t
e550: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
e560: 2d 0d 0a 37 37 0d 0a 31 31 37 0d 0a 0d 0a 73 6b  -..77..117....sk
e570: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
e580: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
e590: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
e5a0: 62 65 6c 2d 33 30 39 0d 0a 53 45 4c 45 43 54 20  bel-309..SELECT 
e5b0: 44 49 53 54 49 4e 43 54 20 2d 20 4d 49 4e 20 28  DISTINCT - MIN (
e5c0: 20 41 4c 4c 20 28 20 2d 20 63 6f 6c 31 20 29 20   ALL ( - col1 ) 
e5d0: 29 20 41 53 20 63 6f 6c 32 2c 20 2b 20 36 32 20  ) AS col2, + 62 
e5e0: 2b 20 35 35 20 46 52 4f 4d 20 74 61 62 32 20 41  + 55 FROM tab2 A
e5f0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 37  S cor0..----..77
e600: 0d 0a 31 31 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..117....onlyif 
e610: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
e620: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
e630: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
e640: 6f 72 74 20 6c 61 62 65 6c 2d 33 31 30 0d 0a 53  ort label-310..S
e650: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
e660: 20 39 33 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   93 AS col0 FROM
e670: 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
e680: 45 52 45 20 39 37 20 2b 20 2b 20 2b 20 28 20 63  ERE 97 + + + ( c
e690: 6f 6c 31 20 29 20 2f 20 2d 20 63 6f 6c 30 20 2b  ol1 ) / - col0 +
e6a0: 20 2d 20 63 6f 6c 31 20 2a 20 43 41 53 54 28 20   - col1 * CAST( 
e6b0: 63 6f 6c 31 20 41 53 20 53 49 47 4e 45 44 20 29  col1 AS SIGNED )
e6c0: 20 4e 4f 54 20 49 4e 20 28 20 2d 20 63 6f 6c 32   NOT IN ( - col2
e6d0: 20 2a 20 63 6f 6c 32 20 2d 20 2b 20 39 30 20 2a   * col2 - + 90 *
e6e0: 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39   col1 )..----..9
e6f0: 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
e700: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
e710: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
e720: 6f 72 74 20 6c 61 62 65 6c 2d 33 31 30 0d 0a 53  ort label-310..S
e730: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
e740: 20 39 33 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   93 AS col0 FROM
e750: 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
e760: 45 52 45 20 39 37 20 2b 20 2b 20 2b 20 28 20 63  ERE 97 + + + ( c
e770: 6f 6c 31 20 29 20 2f 20 2d 20 63 6f 6c 30 20 2b  ol1 ) / - col0 +
e780: 20 2d 20 63 6f 6c 31 20 2a 20 43 41 53 54 20 28   - col1 * CAST (
e790: 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45 52   col1 AS INTEGER
e7a0: 20 29 20 4e 4f 54 20 49 4e 20 28 20 2d 20 63 6f   ) NOT IN ( - co
e7b0: 6c 32 20 2a 20 63 6f 6c 32 20 2d 20 2b 20 39 30  l2 * col2 - + 90
e7c0: 20 2a 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d   * col1 )..----.
e7d0: 0a 39 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .93....onlyif my
e7e0: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
e7f0: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
e800: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
e810: 74 20 6c 61 62 65 6c 2d 33 31 31 0d 0a 53 45 4c  t label-311..SEL
e820: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63  ECT DISTINCT + c
e830: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
e840: 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20 63 6f   cor0 WHERE - co
e850: 6c 30 20 2a 20 2d 20 43 41 53 54 28 20 2d 20 39  l0 * - CAST( - 9
e860: 38 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20  8 AS SIGNED ) + 
e870: 2d 20 63 6f 6c 31 20 2a 20 2b 20 36 32 20 49 53  - col1 * + 62 IS
e880: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73   NULL..----....s
e890: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
e8a0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
e8b0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
e8c0: 62 65 6c 2d 33 31 31 0d 0a 53 45 4c 45 43 54 20  bel-311..SELECT 
e8d0: 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20  DISTINCT + col0 
e8e0: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
e8f0: 30 20 57 48 45 52 45 20 2d 20 63 6f 6c 30 20 2a  0 WHERE - col0 *
e900: 20 2d 20 43 41 53 54 20 28 20 2d 20 39 38 20 41   - CAST ( - 98 A
e910: 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20 2d 20  S INTEGER ) + - 
e920: 63 6f 6c 31 20 2a 20 2b 20 36 32 20 49 53 20 4e  col1 * + 62 IS N
e930: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
e940: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
e950: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
e960: 62 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2b  b0 WHERE NOT ( +
e970: 20 63 6f 6c 31 20 29 20 3c 3d 20 4e 55 4c 4c 0d   col1 ) <= NULL.
e980: 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
e990: 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
e9a0: 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
e9b0: 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
e9c0: 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
e9d0: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
e9e0: 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 35 30 2c  rt..SELECT + 50,
e9f0: 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 30 20 63   col0 + + col0 c
ea00: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol2 FROM tab1..-
ea10: 2d 2d 2d 0d 0a 35 30 0d 0a 31 30 32 0d 0a 35 30  ---..50..102..50
ea20: 0d 0a 31 37 30 0d 0a 35 30 0d 0a 31 38 32 0d 0a  ..170..50..182..
ea30: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
ea40: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
ea50: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
ea60: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 31 34 0d 0a  sort label-314..
ea70: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 53 55 4d  SELECT ALL + SUM
ea80: 28 20 2d 20 63 6f 6c 32 20 29 20 41 53 20 63 6f  ( - col2 ) AS co
ea90: 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l2 FROM tab0..--
eaa0: 2d 2d 0d 0a 2d 31 35 36 0d 0a 0d 0a 73 6b 69 70  --..-156....skip
eab0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
eac0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
ead0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
eae0: 2d 33 31 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -314..SELECT ALL
eaf0: 20 2b 20 53 55 4d 20 28 20 2d 20 63 6f 6c 32 20   + SUM ( - col2 
eb00: 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
eb10: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 36 0d  ab0..----..-156.
eb20: 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
eb30: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
eb40: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
eb50: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
eb60: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
eb70: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
eb80: 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2a 20 33  ECT ALL col1 * 3
eb90: 32 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  2 col0 FROM tab2
eba0: 0d 0a 2d 2d 2d 2d 0d 0a 31 36 33 32 0d 0a 32 31  ..----..1632..21
ebb0: 34 34 0d 0a 32 34 36 34 0d 0a 0d 0a 71 75 65 72  44..2464....quer
ebc0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
ebd0: 45 43 54 20 2d 20 63 6f 6c 32 20 2b 20 63 6f 6c  ECT - col2 + col
ebe0: 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  1 AS col1 FROM t
ebf0: 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  ab0 WHERE NOT + 
ec00: 63 6f 6c 31 20 42 45 54 57 45 45 4e 20 2d 20 2d  col1 BETWEEN - -
ec10: 20 63 6f 6c 31 20 41 4e 44 20 2d 20 36 39 20 2b   col1 AND - 69 +
ec20: 20 2d 20 37 36 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 38   - 76..----..-98
ec30: 0d 0a 31 31 0d 0a 33 34 0d 0a 0d 0a 71 75 65 72  ..11..34....quer
ec40: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
ec50: 45 43 54 20 2d 20 32 35 20 2a 20 2d 20 33 39 20  ECT - 25 * - 39 
ec60: 2b 20 34 33 20 46 52 4f 4d 20 74 61 62 30 0d 0a  + 43 FROM tab0..
ec70: 2d 2d 2d 2d 0d 0a 31 30 31 38 0d 0a 31 30 31 38  ----..1018..1018
ec80: 0d 0a 31 30 31 38 0d 0a 0d 0a 71 75 65 72 79 20  ..1018....query 
ec90: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
eca0: 54 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 28 20 2d  T - col0 + + ( -
ecb0: 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62   col1 ) FROM tab
ecc0: 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 38 0d 0a 2d  1..----..-138..-
ecd0: 36 35 0d 0a 2d 39 30 0d 0a 0d 0a 71 75 65 72 79  65..-90....query
ece0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
ecf0: 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32  CT DISTINCT col2
ed00: 20 2b 20 2d 20 28 20 2d 20 33 33 20 29 20 41 53   + - ( - 33 ) AS
ed10: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
ed20: 0a 2d 2d 2d 2d 0d 0a 31 30 31 0d 0a 31 32 39 0d  .----..101..129.
ed30: 0a 39 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  .92....skipif po
ed40: 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
ed50: 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
ed60: 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
ed70: 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
ed80: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
ed90: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
eda0: 20 2b 20 63 6f 6c 30 20 63 6f 6c 30 20 46 52 4f   + col0 col0 FRO
edb0: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
edc0: 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20 42 45  HERE NOT col2 BE
edd0: 54 57 45 45 4e 20 28 20 2b 20 2d 20 63 6f 6c 32  TWEEN ( + - col2
ede0: 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 37 38 20 29   - col0 + - 78 )
edf0: 20 41 4e 44 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d   AND ( NULL )..-
ee00: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
ee10: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
ee20: 49 53 54 49 4e 43 54 20 2d 20 35 36 20 2a 20 2d  ISTINCT - 56 * -
ee30: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
ee40: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 38 38  cor0..----..1288
ee50: 0d 0a 32 32 34 30 0d 0a 33 32 34 38 0d 0a 0d 0a  ..2240..3248....
ee60: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
ee70: 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
ee80: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
ee90: 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62   III rowsort lab
eea0: 65 6c 2d 33 32 32 0d 0a 53 45 4c 45 43 54 20 41  el-322..SELECT A
eeb0: 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41  LL * FROM tab0 A
eec0: 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
eed0: 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 32   + col2 + - col2
eee0: 20 3c 3e 20 28 20 2d 20 2b 20 63 6f 6c 32 20 2b   <> ( - + col2 +
eef0: 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   + CAST( NULL AS
ef00: 20 53 49 47 4e 45 44 20 29 20 2b 20 2b 20 63 6f   SIGNED ) + + co
ef10: 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b  l1 )..----....sk
ef20: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
ef30: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
ef40: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
ef50: 61 62 65 6c 2d 33 32 32 0d 0a 53 45 4c 45 43 54  abel-322..SELECT
ef60: 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30   ALL * FROM tab0
ef70: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
ef80: 4f 54 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 63 6f  OT + col2 + - co
ef90: 6c 32 20 3c 3e 20 28 20 2d 20 2b 20 63 6f 6c 32  l2 <> ( - + col2
efa0: 20 2b 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c   + + CAST ( NULL
efb0: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20   AS INTEGER ) + 
efc0: 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a  + col1 )..----..
efd0: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
efe0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
eff0: 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48 45  OM tab2 cor0 WHE
f000: 52 45 20 28 20 2d 20 63 6f 6c 31 20 29 20 49 53  RE ( - col1 ) IS
f010: 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
f020: 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
f030: 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61  g to 75c998aa53a
f040: 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32  c83218cbf2feb962
f050: 64 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49  d0a49....query I
f060: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
f070: 20 44 49 53 54 49 4e 43 54 20 2d 20 38 34 20 2b   DISTINCT - 84 +
f080: 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20   - col0 AS col2 
f090: 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
f0a0: 0a 2d 31 33 30 0d 0a 2d 31 34 38 0d 0a 2d 31 35  .-130..-148..-15
f0b0: 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  9....query I row
f0c0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 28  sort..SELECT + (
f0d0: 20 63 6f 6c 30 20 29 20 2d 20 2d 20 39 31 20 41   col0 ) - - 91 A
f0e0: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
f0f0: 0d 0a 2d 2d 2d 2d 0d 0a 31 34 32 0d 0a 31 37 36  ..----..142..176
f100: 0d 0a 31 38 32 0d 0a 0d 0a 71 75 65 72 79 20 49  ..182....query I
f110: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
f120: 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20  T DISTINCT col2 
f130: 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 2c 20  + col1 AS col1, 
f140: 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 30 20 46 52  col2 + + col0 FR
f150: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab2..----..1
f160: 31 37 0d 0a 31 30 34 0d 0a 31 32 35 0d 0a 31 33  17..104..125..13
f170: 33 0d 0a 37 34 0d 0a 36 39 0d 0a 0d 0a 6f 6e 6c  3..74..69....onl
f180: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
f190: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
f1a0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
f1b0: 6c 61 62 65 6c 2d 33 32 37 0d 0a 53 45 4c 45 43  label-327..SELEC
f1c0: 54 20 44 49 53 54 49 4e 43 54 20 2d 20 53 55 4d  T DISTINCT - SUM
f1d0: 28 20 2b 20 32 36 20 29 20 2a 20 31 31 20 46 52  ( + 26 ) * 11 FR
f1e0: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
f1f0: 57 48 45 52 45 20 4e 4f 54 20 28 20 39 31 20 2a  WHERE NOT ( 91 *
f200: 20 2d 20 32 33 20 29 20 49 53 20 4e 4f 54 20 4e   - 23 ) IS NOT N
f210: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ULL..----..NULL.
f220: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
f230: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
f240: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
f250: 74 20 6c 61 62 65 6c 2d 33 32 37 0d 0a 53 45 4c  t label-327..SEL
f260: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 53  ECT DISTINCT - S
f270: 55 4d 20 28 20 2b 20 32 36 20 29 20 2a 20 31 31  UM ( + 26 ) * 11
f280: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
f290: 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 39  r0 WHERE NOT ( 9
f2a0: 31 20 2a 20 2d 20 32 33 20 29 20 49 53 20 4e 4f  1 * - 23 ) IS NO
f2b0: 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  T NULL..----..NU
f2c0: 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  LL....query II r
f2d0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
f2e0: 20 2b 20 31 20 2b 20 2b 20 31 38 20 41 53 20 63   + 1 + + 18 AS c
f2f0: 6f 6c 30 2c 20 32 39 20 2a 20 2d 20 2d 20 63 6f  ol0, 29 * - - co
f300: 6c 32 20 2b 20 2d 20 63 6f 6c 32 20 2a 20 2b 20  l2 + - col2 * + 
f310: 34 39 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  49 FROM tab2 AS 
f320: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 0d 0a  cor0..----..19..
f330: 2d 31 31 36 30 0d 0a 31 39 0d 0a 2d 34 36 30 0d  -1160..19..-460.
f340: 0a 31 39 0d 0a 2d 38 30 30 0d 0a 0d 0a 71 75 65  .19..-800....que
f350: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
f360: 4c 45 43 54 20 33 33 20 2b 20 63 6f 6c 30 20 46  LECT 33 + col0 F
f370: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
f380: 0d 0a 2d 2d 2d 2d 0d 0a 31 32 30 0d 0a 31 33 30  ..----..120..130
f390: 0d 0a 34 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..48....query II
f3a0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
f3b0: 20 41 4c 4c 20 2b 20 63 6f 6c 32 2c 20 2d 20 63   ALL + col2, - c
f3c0: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
f3d0: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
f3e0: 28 20 4e 55 4c 4c 20 29 20 49 53 20 4e 4f 54 20  ( NULL ) IS NOT 
f3f0: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a  NULL..----..23..
f400: 2d 34 36 0d 0a 34 30 0d 0a 2d 36 34 0d 0a 35 38  -46..40..-64..58
f410: 0d 0a 2d 37 35 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-75....query I
f420: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
f430: 20 41 4c 4c 20 2b 20 2d 20 36 35 20 2b 20 2d 20   ALL + - 65 + - 
f440: 33 30 20 2b 20 2d 20 63 6f 6c 31 20 41 53 20 63  30 + - col1 AS c
f450: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  ol0 FROM tab0 co
f460: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 36 0d 0a  r0..----..-116..
f470: 2d 31 37 36 0d 0a 2d 39 36 0d 0a 0d 0a 6f 6e 6c  -176..-96....onl
f480: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
f490: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
f4a0: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
f4b0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 33  rowsort label-33
f4c0: 32 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31  2..SELECT - col1
f4d0: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
f4e0: 72 30 20 57 48 45 52 45 20 43 41 53 54 28 20 4e  r0 WHERE CAST( N
f4f0: 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
f500: 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d  IS NULL..----..-
f510: 31 34 0d 0a 2d 34 37 0d 0a 2d 35 0d 0a 0d 0a 73  14..-47..-5....s
f520: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
f530: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
f540: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
f550: 62 65 6c 2d 33 33 32 0d 0a 53 45 4c 45 43 54 20  bel-332..SELECT 
f560: 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  - col1 FROM tab1
f570: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 43   AS cor0 WHERE C
f580: 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
f590: 54 45 47 45 52 20 29 20 49 53 20 4e 55 4c 4c 0d  TEGER ) IS NULL.
f5a0: 0a 2d 2d 2d 2d 0d 0a 2d 31 34 0d 0a 2d 34 37 0d  .----..-14..-47.
f5b0: 0a 2d 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .-5....onlyif my
f5c0: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
f5d0: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
f5e0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
f5f0: 33 33 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  333..SELECT ALL 
f600: 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20  COUNT( * ) FROM 
f610: 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
f620: 52 45 20 28 20 2b 20 63 6f 6c 31 20 29 20 49 53  RE ( + col1 ) IS
f630: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   NULL..----..0..
f640: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
f650: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
f660: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
f670: 20 6c 61 62 65 6c 2d 33 33 33 0d 0a 53 45 4c 45   label-333..SELE
f680: 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20 28 20 2a  CT ALL COUNT ( *
f690: 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
f6a0: 63 6f 72 30 20 57 48 45 52 45 20 28 20 2b 20 63  cor0 WHERE ( + c
f6b0: 6f 6c 31 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d  ol1 ) IS NULL..-
f6c0: 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20  ---..0....query 
f6d0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
f6e0: 54 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 32 20  T col0 + + col2 
f6f0: 2a 20 2b 20 28 20 63 6f 6c 30 20 29 20 46 52 4f  * + ( col0 ) FRO
f700: 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
f710: 2d 0d 0a 37 32 30 0d 0a 39 35 37 0d 0a 39 37 30  -..720..957..970
f720: 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
f730: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
f740: 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
f750: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
f760: 6c 61 62 65 6c 2d 33 33 35 0d 0a 53 45 4c 45 43  label-335..SELEC
f770: 54 20 41 4c 4c 20 63 6f 6c 30 20 46 52 4f 4d 20  T ALL col0 FROM 
f780: 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2d  tab0 WHERE NOT -
f790: 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   + CAST( NULL AS
f7a0: 20 53 49 47 4e 45 44 20 29 20 2d 20 33 20 3e 20   SIGNED ) - 3 > 
f7b0: 2b 20 28 20 2d 20 63 6f 6c 31 20 29 0d 0a 2d 2d  + ( - col1 )..--
f7c0: 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
f7d0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
f7e0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
f7f0: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 33 35 0d 0a  sort label-335..
f800: 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20  SELECT ALL col0 
f810: 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
f820: 4e 4f 54 20 2d 20 2b 20 43 41 53 54 20 28 20 4e  NOT - + CAST ( N
f830: 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
f840: 20 2d 20 33 20 3e 20 2b 20 28 20 2d 20 63 6f 6c   - 3 > + ( - col
f850: 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  1 )..----....que
f860: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
f870: 4c 45 43 54 20 41 4c 4c 20 2b 20 36 32 20 2d 20  LECT ALL + 62 - 
f880: 2d 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30  - - col2 AS col0
f890: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
f8a0: 0d 0a 2d 33 37 0d 0a 31 35 0d 0a 35 32 0d 0a 0d  ..-37..15..52...
f8b0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
f8c0: 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2a 20  ..SELECT col1 * 
f8d0: 2b 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32  + + col2 AS col2
f8e0: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
f8f0: 0d 0a 32 31 30 0d 0a 33 38 30 37 0d 0a 39 39 0d  ..210..3807..99.
f900: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
f910: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
f920: 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 2d  ROM tab1 WHERE -
f930: 20 63 6f 6c 32 20 3c 3e 20 2d 20 2b 20 63 6f 6c   col2 <> - + col
f940: 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  2..----....query
f950: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
f960: 43 54 20 63 6f 6c 32 20 2a 20 2b 20 37 32 20 41  CT col2 * + 72 A
f970: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
f980: 0d 0a 2d 2d 2d 2d 0d 0a 31 36 35 36 0d 0a 32 38  ..----..1656..28
f990: 38 30 0d 0a 34 31 37 36 0d 0a 0d 0a 73 6b 69 70  80..4176....skip
f9a0: 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
f9b0: 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
f9c0: 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
f9d0: 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
f9e0: 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
f9f0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 37 39 20  sort..SELECT 79 
fa00: 2a 20 2b 20 34 30 20 63 6f 6c 31 20 46 52 4f 4d  * + 40 col1 FROM
fa10: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 31 36   tab2..----..316
fa20: 30 0d 0a 33 31 36 30 0d 0a 33 31 36 30 0d 0a 0d  0..3160..3160...
fa30: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
fa40: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
fa50: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
fa60: 6f 72 74 20 6c 61 62 65 6c 2d 33 34 31 0d 0a 53  ort label-341..S
fa70: 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a 20 29  ELECT COUNT( * )
fa80: 20 2a 20 2d 20 43 4f 55 4e 54 28 20 31 34 20 29   * - COUNT( 14 )
fa90: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
faa0: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a  b1..----..-9....
fab0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
fac0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
fad0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
fae0: 61 62 65 6c 2d 33 34 31 0d 0a 53 45 4c 45 43 54  abel-341..SELECT
faf0: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d   COUNT ( * ) * -
fb00: 20 43 4f 55 4e 54 20 28 20 31 34 20 29 20 41 53   COUNT ( 14 ) AS
fb10: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
fb20: 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 6f 6e 6c  .----..-9....onl
fb30: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
fb40: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
fb50: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
fb60: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 34  rowsort label-34
fb70: 32 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2a  2..SELECT col1 *
fb80: 20 2b 20 43 41 53 54 28 20 2b 20 2b 20 38 33 20   + CAST( + + 83 
fb90: 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2b 20  AS SIGNED ) * + 
fba0: 39 38 20 2a 20 63 6f 6c 32 20 46 52 4f 4d 20 74  98 * col2 FROM t
fbb0: 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 35 30 35 32  ab2..----..25052
fbc0: 37 32 30 0d 0a 33 31 36 30 38 37 32 34 0d 0a 39  720..31608724..9
fbd0: 35 34 31 31 38 32 0d 0a 0d 0a 73 6b 69 70 69 66  541182....skipif
fbe0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
fbf0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
fc00: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
fc10: 34 32 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20  42..SELECT col1 
fc20: 2a 20 2b 20 43 41 53 54 20 28 20 2b 20 2b 20 38  * + CAST ( + + 8
fc30: 33 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a  3 AS INTEGER ) *
fc40: 20 2b 20 39 38 20 2a 20 63 6f 6c 32 20 46 52 4f   + 98 * col2 FRO
fc50: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 35  M tab2..----..25
fc60: 30 35 32 37 32 30 0d 0a 33 31 36 30 38 37 32 34  052720..31608724
fc70: 0d 0a 39 35 34 31 31 38 32 0d 0a 0d 0a 71 75 65  ..9541182....que
fc80: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
fc90: 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 20  LECT ALL + col1 
fca0: 2b 20 63 6f 6c 31 20 2a 20 2b 20 2b 20 34 32 20  + col1 * + + 42 
fcb0: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
fcc0: 30 0d 0a 2d 2d 2d 2d 0d 0a 33 34 38 33 0d 0a 34  0..----..3483..4
fcd0: 33 0d 0a 39 30 33 0d 0a 0d 0a 71 75 65 72 79 20  3..903....query 
fce0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
fcf0: 54 20 44 49 53 54 49 4e 43 54 20 36 31 20 2a 20  T DISTINCT 61 * 
fd00: 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46  + col2 AS col0 F
fd10: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
fd20: 33 35 39 39 0d 0a 34 31 34 38 0d 0a 35 38 35 36  3599..4148..5856
fd30: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
fd40: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
fd50: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
fd60: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 34 35  owsort label-345
fd70: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55  ..SELECT ALL COU
fd80: 4e 54 28 20 41 4c 4c 20 2b 20 2b 20 63 6f 6c 30  NT( ALL + + col0
fd90: 20 29 20 2a 20 2d 20 28 20 2b 20 2d 20 34 32 20   ) * - ( + - 42 
fda0: 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  ) col1 FROM tab0
fdb0: 0d 0a 2d 2d 2d 2d 0d 0a 31 32 36 0d 0a 0d 0a 73  ..----..126....s
fdc0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
fdd0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
fde0: 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
fdf0: 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
fe00: 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
fe10: 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
fe20: 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
fe30: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 34 35  owsort label-345
fe40: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55  ..SELECT ALL COU
fe50: 4e 54 20 28 20 41 4c 4c 20 2b 20 2b 20 63 6f 6c  NT ( ALL + + col
fe60: 30 20 29 20 2a 20 2d 20 28 20 2b 20 2d 20 34 32  0 ) * - ( + - 42
fe70: 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   ) col1 FROM tab
fe80: 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 36 0d 0a 0d 0a  0..----..126....
fe90: 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
fea0: 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
feb0: 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
fec0: 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
fed0: 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
fee0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
fef0: 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 31 37 20 63   + col1 * - 17 c
ff00: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
ff10: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
ff20: 28 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c  ( - col2 * + col
ff30: 30 20 29 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  0 ) NOT BETWEEN 
ff40: 33 39 20 2a 20 2d 20 2b 20 63 6f 6c 31 20 41 4e  39 * - + col1 AN
ff50: 44 20 28 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d  D ( + col1 )..--
ff60: 2d 2d 0d 0a 2d 31 33 37 37 0d 0a 0d 0a 71 75 65  --..-1377....que
ff70: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
ff80: 4c 45 43 54 20 28 20 33 36 20 29 20 46 52 4f 4d  LECT ( 36 ) FROM
ff90: 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
ffa0: 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20  ERE NOT NULL IS 
ffb0: 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
ffc0: 33 36 0d 0a 33 36 0d 0a 33 36 0d 0a 0d 0a 6f 6e  36..36..36....on
ffd0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
ffe0: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
fff0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
10000 20 6c 61 62 65 6c 2d 33 34 38 0d 0a 53 45 4c 45   label-348..SELE
10010 43 54 20 44 49 53 54 49 4e 43 54 20 4d 41 58 28  CT DISTINCT MAX(
10020 20 37 33 20 29 20 41 53 20 63 6f 6c 32 20 46 52   73 ) AS col2 FR
10030 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
10040 0a 2d 2d 2d 2d 0d 0a 37 33 0d 0a 0d 0a 73 6b 69  .----..73....ski
10050 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
10060 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
10070 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
10080 6c 2d 33 34 38 0d 0a 53 45 4c 45 43 54 20 44 49  l-348..SELECT DI
10090 53 54 49 4e 43 54 20 4d 41 58 20 28 20 37 33 20  STINCT MAX ( 73 
100a0 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
100b0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
100c0 2d 0d 0a 37 33 0d 0a 0d 0a 71 75 65 72 79 20 49  -..73....query I
100d0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
100e0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  CT * FROM tab2 W
100f0 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20 2b 20  HERE NOT col2 + 
10100 63 6f 6c 31 20 3d 20 63 6f 6c 32 20 2a 20 2b 20  col1 = col2 * + 
10110 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20  - col1..----..9 
10120 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
10130 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38 33  o 75c998aa53ac83
10140 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30 61  218cbf2feb962d0a
10150 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  49....query III 
10160 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
10170 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
10180 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2b  tab1 WHERE NOT +
10190 20 32 33 20 49 4e 20 28 20 2d 20 63 6f 6c 32 20   23 IN ( - col2 
101a0 2b 20 2b 20 2d 20 63 6f 6c 32 20 2a 20 32 39 20  + + - col2 * 29 
101b0 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  )..----..9 value
101c0 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63  s hashing to c6c
101d0 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38  0a4111b36d04dbc8
101e0 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d  11a11e4d54cad...
101f0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
10200 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
10210 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
10220 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
10230 6c 2d 33 35 31 0d 0a 53 45 4c 45 43 54 20 63 6f  l-351..SELECT co
10240 6c 32 20 2a 20 38 20 44 49 56 20 63 6f 6c 31 20  l2 * 8 DIV col1 
10250 2a 20 2b 20 2b 20 34 37 20 41 53 20 63 6f 6c 30  * + + 47 AS col0
10260 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
10270 0d 0a 31 34 31 0d 0a 31 38 38 0d 0a 33 37 32 32  ..141..188..3722
10280 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  4....skipif mysq
10290 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
102a0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
102b0 6f 72 74 20 6c 61 62 65 6c 2d 33 35 31 0d 0a 53  ort label-351..S
102c0 45 4c 45 43 54 20 63 6f 6c 32 20 2a 20 38 20 2f  ELECT col2 * 8 /
102d0 20 63 6f 6c 31 20 2a 20 2b 20 2b 20 34 37 20 41   col1 * + + 47 A
102e0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
102f0 0d 0a 2d 2d 2d 2d 0d 0a 31 34 31 0d 0a 31 38 38  ..----..141..188
10300 0d 0a 33 37 32 32 34 0d 0a 0d 0a 6f 6e 6c 79 69  ..37224....onlyi
10310 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
10320 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
10330 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
10340 61 62 65 6c 2d 33 35 32 0d 0a 53 45 4c 45 43 54  abel-352..SELECT
10350 20 41 4c 4c 20 2b 20 2b 20 43 4f 55 4e 54 28 20   ALL + + COUNT( 
10360 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31 20  DISTINCT - col1 
10370 29 20 41 53 20 63 6f 6c 32 2c 20 2d 20 43 4f 55  ) AS col2, - COU
10380 4e 54 28 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 29  NT( ALL + col2 )
10390 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
103a0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
103b0 0d 0a 33 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69  ..3..-3....skipi
103c0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
103d0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
103e0 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
103f0 2d 33 35 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -352..SELECT ALL
10400 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20 44 49 53   + + COUNT ( DIS
10410 54 49 4e 43 54 20 2d 20 63 6f 6c 31 20 29 20 41  TINCT - col1 ) A
10420 53 20 63 6f 6c 32 2c 20 2d 20 43 4f 55 4e 54 20  S col2, - COUNT 
10430 28 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 29 20 41  ( ALL + col2 ) A
10440 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
10450 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
10460 33 0d 0a 2d 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  3..-3....onlyif 
10470 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
10480 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73  tax: aggregate s
10490 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
104a0 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
104b0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 35 33 0d  wsort label-353.
104c0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
104d0 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   + CAST( NULL AS
104e0 20 53 49 47 4e 45 44 20 29 20 2f 20 43 4f 55 4e   SIGNED ) / COUN
104f0 54 28 20 2a 20 29 20 2f 20 2d 20 41 56 47 20 28  T( * ) / - AVG (
10500 20 41 4c 4c 20 2b 20 2b 20 63 6f 6c 31 20 29 20   ALL + + col1 ) 
10510 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
10520 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
10530 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  NULL IS NULL..--
10540 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
10550 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
10560 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
10570 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
10580 2d 33 35 33 0d 0a 53 45 4c 45 43 54 20 44 49 53  -353..SELECT DIS
10590 54 49 4e 43 54 20 2b 20 43 41 53 54 20 28 20 4e  TINCT + CAST ( N
105a0 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
105b0 20 2f 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2f   / COUNT ( * ) /
105c0 20 2d 20 41 56 47 20 28 20 41 4c 4c 20 2b 20 2b   - AVG ( ALL + +
105d0 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 30 20   col1 ) AS col0 
105e0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
105f0 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20  0 WHERE NULL IS 
10600 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  NULL..----..NULL
10610 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
10620 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30  ort..SELECT col0
10630 20 2a 20 2d 20 2d 20 28 20 2d 20 2b 20 31 33 20   * - - ( - + 13 
10640 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  ) FROM tab2 AS c
10650 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39 38 0d  or0..----..-598.
10660 0a 2d 38 33 32 0d 0a 2d 39 37 35 0d 0a 0d 0a 71  .-832..-975....q
10670 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
10680 53 45 4c 45 43 54 20 2b 20 2b 20 28 20 2d 20 2b  SELECT + + ( - +
10690 20 28 20 2b 20 63 6f 6c 30 20 29 20 29 20 41 53   ( + col0 ) ) AS
106a0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
106b0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
106c0 35 31 0d 0a 2d 38 35 0d 0a 2d 39 31 0d 0a 0d 0a  51..-85..-91....
106d0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
106e0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
106f0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
10700 72 74 20 6c 61 62 65 6c 2d 33 35 36 0d 0a 53 45  rt label-356..SE
10710 4c 45 43 54 20 4d 41 58 28 20 44 49 53 54 49 4e  LECT MAX( DISTIN
10720 43 54 20 2b 20 34 36 20 29 20 46 52 4f 4d 20 74  CT + 46 ) FROM t
10730 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
10740 2d 0d 0a 34 36 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..46....skipif 
10750 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
10760 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
10770 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 35  rowsort label-35
10780 36 0d 0a 53 45 4c 45 43 54 20 4d 41 58 20 28 20  6..SELECT MAX ( 
10790 44 49 53 54 49 4e 43 54 20 2b 20 34 36 20 29 20  DISTINCT + 46 ) 
107a0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
107b0 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 0d 0a 6f  0..----..46....o
107c0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
107d0 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
107e0 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
107f0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
10800 33 35 37 0d 0a 53 45 4c 45 43 54 20 2b 20 38 38  357..SELECT + 88
10810 20 44 49 56 20 2b 20 2b 20 63 6f 6c 32 20 2b 20   DIV + + col2 + 
10820 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  + col1 FROM tab2
10830 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 34 0d   cor0..----..54.
10840 0a 36 38 0d 0a 37 39 0d 0a 0d 0a 73 6b 69 70 69  .68..79....skipi
10850 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
10860 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
10870 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
10880 33 35 37 0d 0a 53 45 4c 45 43 54 20 2b 20 38 38  357..SELECT + 88
10890 20 2f 20 2b 20 2b 20 63 6f 6c 32 20 2b 20 2b 20   / + + col2 + + 
108a0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 63  col1 FROM tab2 c
108b0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 34 0d 0a 36  or0..----..54..6
108c0 38 0d 0a 37 39 0d 0a 0d 0a 71 75 65 72 79 20 49  8..79....query I
108d0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
108e0 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
108f0 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 2b 20  OM tab2 WHERE + 
10900 2d 20 36 39 20 49 4e 20 28 20 39 30 20 29 0d 0a  - 69 IN ( 90 )..
10910 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
10920 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
10930 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
10940 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77   ..query III row
10950 73 6f 72 74 20 6c 61 62 65 6c 2d 33 35 39 0d 0a  sort label-359..
10960 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
10970 62 31 20 57 48 45 52 45 20 4e 4f 54 20 43 41 53  b1 WHERE NOT CAS
10980 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
10990 44 20 29 20 2f 20 2b 20 63 6f 6c 32 20 3c 3d 20  D ) / + col2 <= 
109a0 2d 20 28 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d  - ( + col1 )..--
109b0 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
109c0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
109d0 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72  ble..query III r
109e0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 35 39  owsort label-359
109f0 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
10a00 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 43  tab1 WHERE NOT C
10a10 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
10a20 54 45 47 45 52 20 29 20 2f 20 2b 20 63 6f 6c 32  TEGER ) / + col2
10a30 20 3c 3d 20 2d 20 28 20 2b 20 63 6f 6c 31 20 29   <= - ( + col1 )
10a40 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
10a50 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
10a60 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
10a70 61 62 30 20 57 48 45 52 45 20 2b 20 2b 20 63 6f  ab0 WHERE + + co
10a80 6c 32 20 3e 3d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d  l2 >= col0..----
10a90 0d 0a 31 35 0d 0a 38 31 0d 0a 34 37 0d 0a 39 37  ..15..81..47..97
10aa0 0d 0a 31 0d 0a 39 39 0d 0a 0d 0a 71 75 65 72 79  ..1..99....query
10ab0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
10ac0 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 2b 20  CT ALL + col0 + 
10ad0 32 37 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  27 AS col0 FROM 
10ae0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 31 32 0d  tab1..----..112.
10af0 0a 31 31 38 0d 0a 37 38 0d 0a 0d 0a 6f 6e 6c 79  .118..78....only
10b00 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
10b10 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
10b20 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  ype: ..query II 
10b30 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 36  rowsort label-36
10b40 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  2..SELECT DISTIN
10b50 43 54 20 35 32 20 2b 20 2d 20 63 6f 6c 31 20 2a  CT 52 + - col1 *
10b60 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 2c   - col1 AS col2,
10b70 20 43 41 53 54 28 20 2d 20 63 6f 6c 30 20 41 53   CAST( - col0 AS
10b80 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c   SIGNED ) AS col
10b90 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
10ba0 2d 0d 0a 34 39 33 0d 0a 2d 38 37 0d 0a 35 33 0d  -..493..-87..53.
10bb0 0a 2d 39 37 0d 0a 36 36 31 33 0d 0a 2d 31 35 0d  .-97..6613..-15.
10bc0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
10bd0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
10be0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
10bf0 72 74 20 6c 61 62 65 6c 2d 33 36 32 0d 0a 53 45  rt label-362..SE
10c00 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 35 32  LECT DISTINCT 52
10c10 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 63 6f   + - col1 * - co
10c20 6c 31 20 41 53 20 63 6f 6c 32 2c 20 43 41 53 54  l1 AS col2, CAST
10c30 20 28 20 2d 20 63 6f 6c 30 20 41 53 20 49 4e 54   ( - col0 AS INT
10c40 45 47 45 52 20 29 20 41 53 20 63 6f 6c 31 20 46  EGER ) AS col1 F
10c50 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
10c60 34 39 33 0d 0a 2d 38 37 0d 0a 35 33 0d 0a 2d 39  493..-87..53..-9
10c70 37 0d 0a 36 36 31 33 0d 0a 2d 31 35 0d 0a 0d 0a  7..6613..-15....
10c80 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
10c90 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2a  .SELECT - col1 *
10ca0 20 2d 20 34 33 20 2a 20 37 38 20 46 52 4f 4d 20   - 43 * 78 FROM 
10cb0 74 61 62 31 20 57 48 45 52 45 20 28 20 2b 20 2b  tab1 WHERE ( + +
10cc0 20 28 20 2b 20 2d 20 33 35 20 29 20 29 20 49 53   ( + - 35 ) ) IS
10cd0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
10ce0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
10cf0 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c  SELECT ALL + col
10d00 30 20 2b 20 2d 20 2b 20 34 30 20 2a 20 28 20 2d  0 + - + 40 * ( -
10d10 20 39 33 20 29 20 2b 20 2d 20 36 32 20 2a 20 2b   93 ) + - 62 * +
10d20 20 2d 20 32 36 20 46 52 4f 4d 20 74 61 62 32 0d   - 26 FROM tab2.
10d30 0a 2d 2d 2d 2d 0d 0a 35 33 37 38 0d 0a 35 33 39  .----..5378..539
10d40 36 0d 0a 35 34 30 37 0d 0a 0d 0a 73 6b 69 70 69  6..5407....skipi
10d50 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
10d60 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
10d70 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
10d80 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
10d90 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
10da0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
10db0 49 4e 43 54 20 2b 20 63 6f 6c 30 20 63 6f 6c 32  INCT + col0 col2
10dc0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
10dd0 72 30 20 57 48 45 52 45 20 4e 4f 54 20 35 30 20  r0 WHERE NOT 50 
10de0 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
10df0 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
10e00 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
10e10 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
10e20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 36  rowsort label-36
10e30 36 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 35 33  6..SELECT + - 53
10e40 20 2a 20 2b 20 53 55 4d 28 20 41 4c 4c 20 2b 20   * + SUM( ALL + 
10e50 28 20 2d 20 2b 20 63 6f 6c 32 20 29 20 29 20 46  ( - + col2 ) ) F
10e60 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
10e70 0d 0a 2d 2d 2d 2d 0d 0a 31 31 38 31 39 0d 0a 0d  ..----..11819...
10e80 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
10e90 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
10ea0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
10eb0 6c 61 62 65 6c 2d 33 36 36 0d 0a 53 45 4c 45 43  label-366..SELEC
10ec0 54 20 2b 20 2d 20 35 33 20 2a 20 2b 20 53 55 4d  T + - 53 * + SUM
10ed0 20 28 20 41 4c 4c 20 2b 20 28 20 2d 20 2b 20 63   ( ALL + ( - + c
10ee0 6f 6c 32 20 29 20 29 20 46 52 4f 4d 20 74 61 62  ol2 ) ) FROM tab
10ef0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
10f00 0a 31 31 38 31 39 0d 0a 0d 0a 6f 6e 6c 79 69 66  .11819....onlyif
10f10 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
10f20 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
10f30 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
10f40 73 6f 72 74 20 6c 61 62 65 6c 2d 33 36 37 0d 0a  sort label-367..
10f50 53 45 4c 45 43 54 20 33 39 20 2a 20 63 6f 6c 31  SELECT 39 * col1
10f60 20 44 49 56 20 2b 20 2b 20 38 37 20 2b 20 2d 20   DIV + + 87 + - 
10f70 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
10f80 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  S cor0..----..-2
10f90 39 0d 0a 2d 33 37 0d 0a 2d 34 33 0d 0a 0d 0a 73  9..-37..-43....s
10fa0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
10fb0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
10fc0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
10fd0 62 65 6c 2d 33 36 37 0d 0a 53 45 4c 45 43 54 20  bel-367..SELECT 
10fe0 33 39 20 2a 20 63 6f 6c 31 20 2f 20 2b 20 2b 20  39 * col1 / + + 
10ff0 38 37 20 2b 20 2d 20 63 6f 6c 31 20 46 52 4f 4d  87 + - col1 FROM
11000 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
11010 2d 2d 2d 0d 0a 2d 32 39 0d 0a 2d 33 37 0d 0a 2d  ---..-29..-37..-
11020 34 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  43....onlyif mys
11030 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
11040 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
11050 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
11060 36 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  68..SELECT ALL +
11070 20 43 4f 55 4e 54 28 20 41 4c 4c 20 63 6f 6c 30   COUNT( ALL col0
11080 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
11090 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
110a0 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..3....skipif 
110b0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
110c0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
110d0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 36  rowsort label-36
110e0 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  8..SELECT ALL + 
110f0 43 4f 55 4e 54 20 28 20 41 4c 4c 20 63 6f 6c 30  COUNT ( ALL col0
11100 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
11110 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
11120 2d 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  --..3....onlyif 
11130 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
11140 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
11150 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
11160 6c 2d 33 36 39 0d 0a 53 45 4c 45 43 54 20 2d 20  l-369..SELECT - 
11170 2d 20 39 39 20 2b 20 4d 41 58 28 20 2b 20 2d 20  - 99 + MAX( + - 
11180 39 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  9 ) AS col2 FROM
11190 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
111a0 2d 2d 2d 0d 0a 39 30 0d 0a 0d 0a 73 6b 69 70 69  ---..90....skipi
111b0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
111c0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
111d0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
111e0 33 36 39 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20  369..SELECT - - 
111f0 39 39 20 2b 20 4d 41 58 20 28 20 2b 20 2d 20 39  99 + MAX ( + - 9
11200 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
11210 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
11220 2d 2d 0d 0a 39 30 0d 0a 0d 0a 71 75 65 72 79 20  --..90....query 
11230 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
11240 43 54 20 41 4c 4c 20 2b 20 35 34 2c 20 63 6f 6c  CT ALL + 54, col
11250 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  0 AS col0 FROM t
11260 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
11270 2d 0d 0a 35 34 0d 0a 34 36 0d 0a 35 34 0d 0a 36  -..54..46..54..6
11280 34 0d 0a 35 34 0d 0a 37 35 0d 0a 0d 0a 73 6b 69  4..54..75....ski
11290 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
112a0 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
112b0 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
112c0 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
112d0 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72  umns..query II r
112e0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
112f0 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 30 20 2a   col0 + + col0 *
11300 20 2d 20 35 30 20 2b 20 2d 20 63 6f 6c 31 2c 20   - 50 + - col1, 
11310 34 39 20 2b 20 2b 20 2b 20 63 6f 6c 32 20 2d 20  49 + + + col2 - 
11320 2d 20 35 35 20 2a 20 2b 20 63 6f 6c 31 20 2a 20  - 55 * + col1 * 
11330 39 38 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  98 col0 FROM tab
11340 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35 31 33 0d 0a  1..----..-2513..
11350 37 35 36 30 35 0d 0a 2d 34 31 37 30 0d 0a 32 37  75605..-4170..27
11360 30 35 38 0d 0a 2d 34 35 30 36 0d 0a 32 35 33 34  058..-4506..2534
11370 34 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  47....query I ro
11380 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
11390 4c 20 2d 20 35 36 20 2a 20 2b 20 2b 20 36 32 20  L - 56 * + + 62 
113a0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
113b0 0a 2d 33 34 37 32 0d 0a 2d 33 34 37 32 0d 0a 2d  .-3472..-3472..-
113c0 33 34 37 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20  3472....query I 
113d0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
113e0 2d 20 2d 20 32 34 20 41 53 20 63 6f 6c 31 20 46  - - 24 AS col1 F
113f0 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 43 52  ROM tab0 cor0 CR
11400 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20 63 6f  OSS JOIN tab1 co
11410 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  r1..----..9 valu
11420 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 62 30  es hashing to b0
11430 64 38 33 34 65 66 39 65 34 33 34 36 38 30 31 62  d834ef9e4346801b
11440 36 61 61 61 30 65 37 34 62 32 63 38 65 66 0d 0a  6aaa0e74b2c8ef..
11450 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
11460 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
11470 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
11480 73 6f 72 74 20 6c 61 62 65 6c 2d 33 37 34 0d 0a  sort label-374..
11490 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
114a0 38 36 20 2b 20 2b 20 4d 41 58 28 20 41 4c 4c 20  86 + + MAX( ALL 
114b0 2d 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 31  - col0 ) AS col1
114c0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
114d0 0d 0a 34 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..40....skipif m
114e0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
114f0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
11500 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 37 34  owsort label-374
11510 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
11520 54 20 38 36 20 2b 20 2b 20 4d 41 58 20 28 20 41  T 86 + + MAX ( A
11530 4c 4c 20 2d 20 63 6f 6c 30 20 29 20 41 53 20 63  LL - col0 ) AS c
11540 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
11550 2d 2d 2d 0d 0a 34 30 0d 0a 0d 0a 6f 6e 6c 79 69  ---..40....onlyi
11560 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
11570 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
11580 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
11590 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 37 35 0d  wsort label-375.
115a0 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54 28 20  .SELECT + CAST( 
115b0 2b 20 63 6f 6c 31 20 41 53 20 53 49 47 4e 45 44  + col1 AS SIGNED
115c0 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
115d0 63 6f 72 30 20 57 48 45 52 45 20 2b 20 63 6f 6c  cor0 WHERE + col
115e0 32 20 2b 20 35 30 20 49 53 20 4e 55 4c 4c 0d 0a  2 + 50 IS NULL..
115f0 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ----....skipif m
11600 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
11610 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
11620 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 37 35  owsort label-375
11630 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54 20  ..SELECT + CAST 
11640 28 20 2b 20 63 6f 6c 31 20 41 53 20 49 4e 54 45  ( + col1 AS INTE
11650 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 32 20  GER ) FROM tab2 
11660 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20  AS cor0 WHERE + 
11670 63 6f 6c 32 20 2b 20 35 30 20 49 53 20 4e 55 4c  col2 + 50 IS NUL
11680 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
11690 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
116a0 43 54 20 41 4c 4c 20 63 6f 6c 32 20 2d 20 63 6f  CT ALL col2 - co
116b0 6c 32 20 2a 20 2d 20 36 20 46 52 4f 4d 20 74 61  l2 * - 6 FROM ta
116c0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
116d0 0d 0a 34 31 33 0d 0a 34 37 36 0d 0a 36 37 32 0d  ..413..476..672.
116e0 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
116f0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20  ort..SELECT - + 
11700 63 6f 6c 32 2c 20 2d 20 28 20 2b 20 63 6f 6c 30  col2, - ( + col0
11710 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
11720 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
11730 2d 2d 0d 0a 2d 31 30 0d 0a 2d 38 37 0d 0a 2d 34  --..-10..-87..-4
11740 37 0d 0a 2d 31 35 0d 0a 2d 39 39 0d 0a 2d 39 37  7..-15..-99..-97
11750 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
11760 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
11770 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
11780 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
11790 61 62 65 6c 2d 33 37 38 0d 0a 53 45 4c 45 43 54  abel-378..SELECT
117a0 20 63 6f 6c 32 20 44 49 56 20 2b 20 34 39 20 41   col2 DIV + 49 A
117b0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
117c0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28   AS cor0 WHERE (
117d0 20 2d 20 63 6f 6c 32 20 29 20 3e 20 2b 20 28 20   - col2 ) > + ( 
117e0 2d 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a  - col1 )..----..
117f0 30 0d 0a 30 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69  0..0..1....skipi
11800 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
11810 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
11820 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
11830 33 37 38 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32  378..SELECT col2
11840 20 2f 20 2b 20 34 39 20 41 53 20 63 6f 6c 30 20   / + 49 AS col0 
11850 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
11860 30 20 57 48 45 52 45 20 28 20 2d 20 63 6f 6c 32  0 WHERE ( - col2
11870 20 29 20 3e 20 2b 20 28 20 2d 20 63 6f 6c 31 20   ) > + ( - col1 
11880 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 31  )..----..0..0..1
11890 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
118a0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
118b0 2d 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 39 39 20  - + col2 + - 99 
118c0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
118d0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
118e0 0a 2d 31 35 38 0d 0a 2d 31 36 37 0d 0a 2d 31 39  .-158..-167..-19
118f0 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  5....onlyif mysq
11900 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
11910 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
11920 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 38  rowsort label-38
11930 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  0..SELECT ALL + 
11940 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20 32  COUNT( * ) * + 2
11950 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
11960 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 33 0d 0a 0d  or0..----..63...
11970 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
11980 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
11990 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
119a0 6c 61 62 65 6c 2d 33 38 30 0d 0a 53 45 4c 45 43  label-380..SELEC
119b0 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 20 28 20  T ALL + COUNT ( 
119c0 2a 20 29 20 2a 20 2b 20 32 31 20 46 52 4f 4d 20  * ) * + 21 FROM 
119d0 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
119e0 2d 2d 0d 0a 36 33 0d 0a 0d 0a 6f 6e 6c 79 69 66  --..63....onlyif
119f0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
11a00 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
11a10 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
11a20 65 6c 2d 33 38 31 0d 0a 53 45 4c 45 43 54 20 2b  el-381..SELECT +
11a30 20 35 35 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a   55 - - COUNT( *
11a40 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
11a50 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 38 0d 0a  cor0..----..58..
11a60 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
11a70 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
11a80 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
11a90 20 6c 61 62 65 6c 2d 33 38 31 0d 0a 53 45 4c 45   label-381..SELE
11aa0 43 54 20 2b 20 35 35 20 2d 20 2d 20 43 4f 55 4e  CT + 55 - - COUN
11ab0 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  T ( * ) FROM tab
11ac0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
11ad0 0a 35 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  .58....query II 
11ae0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
11af0 63 6f 6c 32 20 2d 20 2d 20 63 6f 6c 32 20 2a 20  col2 - - col2 * 
11b00 2b 20 39 32 20 2b 20 2b 20 35 31 2c 20 37 20 2b  + 92 + + 51, 7 +
11b10 20 2d 20 63 6f 6c 32 20 2d 20 63 6f 6c 31 20 2a   - col2 - col1 *
11b20 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c   + - col2 AS col
11b30 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
11b40 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 39 30 0d  or0..----..2190.
11b50 0a 31 31 35 37 0d 0a 33 37 37 31 0d 0a 33 30 34  .1157..3771..304
11b60 37 0d 0a 35 34 34 35 0d 0a 33 38 33 35 0d 0a 0d  7..5445..3835...
11b70 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
11b80 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
11b90 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
11ba0 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
11bb0 65 6c 2d 33 38 33 0d 0a 53 45 4c 45 43 54 20 2d  el-383..SELECT -
11bc0 20 36 38 20 41 53 20 63 6f 6c 31 2c 20 2b 20 43   68 AS col1, + C
11bd0 41 53 54 28 20 63 6f 6c 30 20 41 53 20 53 49 47  AST( col0 AS SIG
11be0 4e 45 44 20 29 20 2a 20 63 6f 6c 31 20 2a 20 2d  NED ) * col1 * -
11bf0 20 63 6f 6c 32 20 2b 20 63 6f 6c 30 20 46 52 4f   col2 + col0 FRO
11c00 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
11c10 20 28 20 4e 4f 54 20 63 6f 6c 31 20 3c 3d 20 4e   ( NOT col1 <= N
11c20 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73  ULL )..----....s
11c30 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
11c40 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
11c50 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
11c60 61 62 65 6c 2d 33 38 33 0d 0a 53 45 4c 45 43 54  abel-383..SELECT
11c70 20 2d 20 36 38 20 41 53 20 63 6f 6c 31 2c 20 2b   - 68 AS col1, +
11c80 20 43 41 53 54 20 28 20 63 6f 6c 30 20 41 53 20   CAST ( col0 AS 
11c90 49 4e 54 45 47 45 52 20 29 20 2a 20 63 6f 6c 31  INTEGER ) * col1
11ca0 20 2a 20 2d 20 63 6f 6c 32 20 2b 20 63 6f 6c 30   * - col2 + col0
11cb0 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
11cc0 20 4e 4f 54 20 28 20 4e 4f 54 20 63 6f 6c 31 20   NOT ( NOT col1 
11cd0 3c 3d 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d  <= NULL )..----.
11ce0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
11cf0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
11d00 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
11d10 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 38 34 0d  wsort label-384.
11d20 0a 53 45 4c 45 43 54 20 2b 20 31 33 20 2a 20 2b  .SELECT + 13 * +
11d30 20 2d 20 4d 41 58 28 20 2b 20 2b 20 35 33 20 29   - MAX( + + 53 )
11d40 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
11d50 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 38 39 0d 0a  b0..----..-689..
11d60 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
11d70 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
11d80 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
11d90 20 6c 61 62 65 6c 2d 33 38 34 0d 0a 53 45 4c 45   label-384..SELE
11da0 43 54 20 2b 20 31 33 20 2a 20 2b 20 2d 20 4d 41  CT + 13 * + - MA
11db0 58 20 28 20 2b 20 2b 20 35 33 20 29 20 41 53 20  X ( + + 53 ) AS 
11dc0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
11dd0 2d 2d 2d 2d 0d 0a 2d 36 38 39 0d 0a 0d 0a 6f 6e  ----..-689....on
11de0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
11df0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
11e00 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
11e10 74 20 6c 61 62 65 6c 2d 33 38 35 0d 0a 53 45 4c  t label-385..SEL
11e20 45 43 54 20 2d 20 4d 41 58 28 20 44 49 53 54 49  ECT - MAX( DISTI
11e30 4e 43 54 20 2b 20 33 36 20 29 20 41 53 20 63 6f  NCT + 36 ) AS co
11e40 6c 31 2c 20 28 20 2d 20 35 34 20 29 20 41 53 20  l1, ( - 54 ) AS 
11e50 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
11e60 2d 2d 2d 2d 0d 0a 2d 33 36 0d 0a 2d 35 34 0d 0a  ----..-36..-54..
11e70 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
11e80 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
11e90 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
11ea0 74 20 6c 61 62 65 6c 2d 33 38 35 0d 0a 53 45 4c  t label-385..SEL
11eb0 45 43 54 20 2d 20 4d 41 58 20 28 20 44 49 53 54  ECT - MAX ( DIST
11ec0 49 4e 43 54 20 2b 20 33 36 20 29 20 41 53 20 63  INCT + 36 ) AS c
11ed0 6f 6c 31 2c 20 28 20 2d 20 35 34 20 29 20 41 53  ol1, ( - 54 ) AS
11ee0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d   col1 FROM tab0.
11ef0 0a 2d 2d 2d 2d 0d 0a 2d 33 36 0d 0a 2d 35 34 0d  .----..-36..-54.
11f00 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
11f10 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 32  rt..SELECT + - 2
11f20 38 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  8 AS col0 FROM t
11f30 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab2 cor0..----..
11f40 2d 32 38 0d 0a 2d 32 38 0d 0a 2d 32 38 0d 0a 0d  -28..-28..-28...
11f50 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
11f60 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
11f70 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
11f80 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
11f90 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
11fa0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
11fb0 54 20 44 49 53 54 49 4e 43 54 20 2d 20 33 32 20  T DISTINCT - 32 
11fc0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
11fd0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  S cor0..----..-3
11fe0 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  2....query III r
11ff0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
12000 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57  LL * FROM tab0 W
12010 48 45 52 45 20 2b 20 63 6f 6c 31 20 3e 20 2b 20  HERE + col1 > + 
12020 37 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 38 31 0d  7..----..15..81.
12030 0a 34 37 0d 0a 38 37 0d 0a 32 31 0d 0a 31 30 0d  .47..87..21..10.
12040 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
12050 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
12060 49 4e 43 54 20 2d 20 33 35 2c 20 63 6f 6c 32 20  INCT - 35, col2 
12070 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
12080 0a 2d 33 35 0d 0a 31 30 0d 0a 2d 33 35 0d 0a 34  .-35..10..-35..4
12090 37 0d 0a 2d 33 35 0d 0a 39 39 0d 0a 0d 0a 73 6b  7..-35..99....sk
120a0 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
120b0 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
120c0 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
120d0 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
120e0 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
120f0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
12100 20 39 31 20 2a 20 2d 20 33 39 20 63 6f 6c 30 20   91 * - 39 col0 
12110 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
12120 30 0d 0a 2d 2d 2d 2d 0d 0a 33 35 34 39 0d 0a 33  0..----..3549..3
12130 35 34 39 0d 0a 33 35 34 39 0d 0a 0d 0a 71 75 65  549..3549....que
12140 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
12150 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
12160 28 20 2d 20 2b 20 63 6f 6c 32 20 29 20 41 53 20  ( - + col2 ) AS 
12170 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41  col2 FROM tab1 A
12180 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  S cor0..----..-5
12190 39 0d 0a 2d 36 38 0d 0a 2d 39 36 0d 0a 0d 0a 71  9..-68..-96....q
121a0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
121b0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32  .SELECT ALL col2
121c0 2c 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  , col0 FROM tab1
121d0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
121e0 35 39 0d 0a 38 35 0d 0a 36 38 0d 0a 39 31 0d 0a  59..85..68..91..
121f0 39 36 0d 0a 35 31 0d 0a 0d 0a 71 75 65 72 79 20  96..51....query 
12200 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
12210 54 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46  T col2 AS col1 F
12220 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
12230 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 4f 54   WHERE NOT ( NOT
12240 20 2d 20 2d 20 63 6f 6c 32 20 4e 4f 54 20 42 45   - - col2 NOT BE
12250 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2b  TWEEN NULL AND +
12260 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 2d 20 63 6f   + col2 + + - co
12270 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a  l0 )..----..23..
12280 34 30 0d 0a 35 38 0d 0a 0d 0a 6f 6e 6c 79 69 66  40..58....onlyif
12290 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
122a0 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
122b0 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
122c0 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39 34 0d 0a  sort label-394..
122d0 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 43  SELECT ALL - - C
122e0 41 53 54 28 20 2b 20 36 34 20 41 53 20 53 49 47  AST( + 64 AS SIG
122f0 4e 45 44 20 29 20 41 53 20 63 6f 6c 31 20 46 52  NED ) AS col1 FR
12300 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
12310 0a 2d 2d 2d 2d 0d 0a 36 34 0d 0a 36 34 0d 0a 36  .----..64..64..6
12320 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  4....skipif mysq
12330 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
12340 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
12350 6f 72 74 20 6c 61 62 65 6c 2d 33 39 34 0d 0a 53  ort label-394..S
12360 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 43 41  ELECT ALL - - CA
12370 53 54 20 28 20 2b 20 36 34 20 41 53 20 49 4e 54  ST ( + 64 AS INT
12380 45 47 45 52 20 29 20 41 53 20 63 6f 6c 31 20 46  EGER ) AS col1 F
12390 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
123a0 0d 0a 2d 2d 2d 2d 0d 0a 36 34 0d 0a 36 34 0d 0a  ..----..64..64..
123b0 36 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  64....onlyif mys
123c0 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
123d0 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
123e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
123f0 20 6c 61 62 65 6c 2d 33 39 35 0d 0a 53 45 4c 45   label-395..SELE
12400 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 41 53  CT ALL + col2 AS
12410 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
12420 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
12430 54 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  T + CAST( NULL A
12440 53 20 53 49 47 4e 45 44 20 29 20 2f 20 2b 20 63  S SIGNED ) / + c
12450 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ol2 IS NOT NULL.
12460 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 34 30 0d 0a 35  .----..23..40..5
12470 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  8....skipif mysq
12480 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
12490 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
124a0 6f 72 74 20 6c 61 62 65 6c 2d 33 39 35 0d 0a 53  ort label-395..S
124b0 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 32  ELECT ALL + col2
124c0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
124d0 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
124e0 20 4e 4f 54 20 2b 20 43 41 53 54 20 28 20 4e 55   NOT + CAST ( NU
124f0 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
12500 2f 20 2b 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20  / + col2 IS NOT 
12510 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a  NULL..----..23..
12520 34 30 0d 0a 35 38 0d 0a 0d 0a 71 75 65 72 79 20  40..58....query 
12530 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
12540 54 20 63 6f 6c 32 20 2d 20 2d 20 2d 20 63 6f 6c  T col2 - - - col
12550 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
12560 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f  or0 WHERE NOT co
12570 6c 31 20 4e 4f 54 20 49 4e 20 28 20 2b 20 36 33  l1 NOT IN ( + 63
12580 20 2a 20 2d 20 63 6f 6c 30 2c 20 2b 20 63 6f 6c   * - col0, + col
12590 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 32 31 0d 0a 35  1 )..----..21..5
125a0 34 0d 0a 38 32 0d 0a 0d 0a 71 75 65 72 79 20 49  4..82....query I
125b0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
125c0 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 2b 20 39 38   ALL + col1 + 98
125d0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
125e0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 39 0d 0a 31  b0..----..119..1
125f0 37 39 0d 0a 39 39 0d 0a 0d 0a 71 75 65 72 79 20  79..99....query 
12600 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
12610 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  T DISTINCT + col
12620 32 20 2a 20 2d 20 2d 20 63 6f 6c 31 20 2b 20 63  2 * - - col1 + c
12630 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol0 AS col1 FROM
12640 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 32 31   tab2..----..121
12650 39 0d 0a 33 31 34 34 0d 0a 33 39 36 31 0d 0a 0d  9..3144..3961...
12660 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
12670 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
12680 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
12690 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
126a0 6c 2d 33 39 39 0d 0a 53 45 4c 45 43 54 20 2d 20  l-399..SELECT - 
126b0 28 20 2d 20 43 41 53 54 28 20 2d 20 2d 20 63 6f  ( - CAST( - - co
126c0 6c 32 20 41 53 20 53 49 47 4e 45 44 20 29 20 29  l2 AS SIGNED ) )
126d0 20 2b 20 2d 20 63 6f 6c 32 20 2b 20 63 6f 6c 32   + - col2 + col2
126e0 20 2b 20 2d 20 2d 20 35 30 20 2a 20 2b 20 28 20   + - - 50 * + ( 
126f0 2d 20 2d 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20  - - col1 ) FROM 
12700 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 34 31 38  tab1..----..2418
12710 0d 0a 33 30 39 0d 0a 37 39 36 0d 0a 0d 0a 73 6b  ..309..796....sk
12720 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
12730 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
12740 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
12750 65 6c 2d 33 39 39 0d 0a 53 45 4c 45 43 54 20 2d  el-399..SELECT -
12760 20 28 20 2d 20 43 41 53 54 20 28 20 2d 20 2d 20   ( - CAST ( - - 
12770 63 6f 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20  col2 AS INTEGER 
12780 29 20 29 20 2b 20 2d 20 63 6f 6c 32 20 2b 20 63  ) ) + - col2 + c
12790 6f 6c 32 20 2b 20 2d 20 2d 20 35 30 20 2a 20 2b  ol2 + - - 50 * +
127a0 20 28 20 2d 20 2d 20 63 6f 6c 31 20 29 20 46 52   ( - - col1 ) FR
127b0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32  OM tab1..----..2
127c0 34 31 38 0d 0a 33 30 39 0d 0a 37 39 36 0d 0a 0d  418..309..796...
127d0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
127e0 0d 0a 53 45 4c 45 43 54 20 31 33 20 2b 20 63 6f  ..SELECT 13 + co
127f0 6c 31 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74  l1 + col1 FROM t
12800 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 31 35 0d 0a  ab2..----..115..
12810 31 34 37 0d 0a 31 36 37 0d 0a 0d 0a 71 75 65 72  147..167....quer
12820 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
12830 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63  ECT DISTINCT + c
12840 6f 6c 31 20 2b 20 34 33 20 41 53 20 63 6f 6c 31  ol1 + 43 AS col1
12850 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
12860 0d 0a 31 31 30 0d 0a 31 32 30 0d 0a 39 34 0d 0a  ..110..120..94..
12870 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
12880 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2a  t..SELECT col2 *
12890 20 2d 20 63 6f 6c 31 20 2b 20 63 6f 6c 30 20 41   - col1 + col0 A
128a0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
128b0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 39 33 0d 0a 2d  ..----..-1293..-
128c0 32 31 30 0d 0a 2d 33 31 30 35 0d 0a 0d 0a 71 75  210..-3105....qu
128d0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
128e0 45 4c 45 43 54 20 63 6f 6c 32 20 2d 20 2b 20 38  ELECT col2 - + 8
128f0 32 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  2 FROM tab2 WHER
12900 45 20 2d 20 39 35 20 49 53 20 4e 4f 54 20 4e 55  E - 95 IS NOT NU
12910 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 34 0d 0a 2d  LL..----..-24..-
12920 34 32 0d 0a 2d 35 39 0d 0a 0d 0a 71 75 65 72 79  42..-59....query
12930 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
12940 43 54 20 2d 20 2b 20 32 33 20 2b 20 41 56 47 20  CT - + 23 + AVG 
12950 28 20 2b 20 63 6f 6c 31 20 29 20 41 53 20 63 6f  ( + col1 ) AS co
12960 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  l1 FROM tab1 WHE
12970 52 45 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d  RE col1 IS NULL.
12980 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f  .----..NULL....o
12990 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
129a0 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
129b0 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
129c0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
129d0 34 30 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  405..SELECT ALL 
129e0 2d 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 32 20  - col2 + - col2 
129f0 44 49 56 20 2b 20 63 6f 6c 32 20 2b 20 63 6f 6c  DIV + col2 + col
12a00 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
12a10 2d 0d 0a 2d 33 0d 0a 2d 33 33 0d 0a 37 36 0d 0a  -..-3..-33..76..
12a20 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
12a30 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
12a40 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
12a50 20 6c 61 62 65 6c 2d 34 30 35 0d 0a 53 45 4c 45   label-405..SELE
12a60 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 2b 20  CT ALL - col2 + 
12a70 2d 20 63 6f 6c 32 20 2f 20 2b 20 63 6f 6c 32 20  - col2 / + col2 
12a80 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  + col0 FROM tab0
12a90 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 2d 33 33 0d  ..----..-3..-33.
12aa0 0a 37 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .76....query I r
12ab0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
12ac0 20 33 31 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 2b   31 + col2 * + +
12ad0 20 39 37 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d   97 FROM tab2..-
12ae0 2d 2d 2d 0d 0a 32 32 36 32 0d 0a 33 39 31 31 0d  ---..2262..3911.
12af0 0a 35 36 35 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .5657....onlyif 
12b00 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
12b10 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
12b20 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
12b30 6c 2d 34 30 37 0d 0a 53 45 4c 45 43 54 20 44 49  l-407..SELECT DI
12b40 53 54 49 4e 43 54 20 2b 20 2b 20 28 20 4d 49 4e  STINCT + + ( MIN
12b50 28 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 29 20 29  ( ALL + col0 ) )
12b60 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52   + COUNT( * ) FR
12b70 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
12b80 54 20 2b 20 36 33 20 2a 20 63 6f 6c 31 20 2b 20  T + 63 * col1 + 
12b90 2d 20 2b 20 28 20 63 6f 6c 30 20 29 20 42 45 54  - + ( col0 ) BET
12ba0 57 45 45 4e 20 2b 20 63 6f 6c 32 20 41 4e 44 20  WEEN + col2 AND 
12bb0 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 31 38  + col1..----..18
12bc0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
12bd0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
12be0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
12bf0 72 74 20 6c 61 62 65 6c 2d 34 30 37 0d 0a 53 45  rt label-407..SE
12c00 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
12c10 2b 20 28 20 4d 49 4e 20 28 20 41 4c 4c 20 2b 20  + ( MIN ( ALL + 
12c20 63 6f 6c 30 20 29 20 29 20 2b 20 43 4f 55 4e 54  col0 ) ) + COUNT
12c30 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30   ( * ) FROM tab0
12c40 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 36 33 20   WHERE NOT + 63 
12c50 2a 20 63 6f 6c 31 20 2b 20 2d 20 2b 20 28 20 63  * col1 + - + ( c
12c60 6f 6c 30 20 29 20 42 45 54 57 45 45 4e 20 2b 20  ol0 ) BETWEEN + 
12c70 63 6f 6c 32 20 41 4e 44 20 2b 20 63 6f 6c 31 0d  col2 AND + col1.
12c80 0a 2d 2d 2d 2d 0d 0a 31 38 0d 0a 0d 0a 71 75 65  .----..18....que
12c90 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
12ca0 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 31 20  LECT ALL - col1 
12cb0 2b 20 2d 20 2d 20 28 20 33 33 20 29 20 46 52 4f  + - - ( 33 ) FRO
12cc0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34  M tab0..----..-4
12cd0 38 0d 0a 31 32 0d 0a 33 32 0d 0a 0d 0a 71 75 65  8..12..32....que
12ce0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
12cf0 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2d 20 63 6f  LECT + col1 - co
12d00 6c 31 20 2b 20 2d 20 39 39 20 46 52 4f 4d 20 74  l1 + - 99 FROM t
12d10 61 62 31 20 57 48 45 52 45 20 2b 20 2d 20 34 33  ab1 WHERE + - 43
12d20 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
12d30 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
12d40 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
12d50 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
12d60 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
12d70 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
12d80 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
12d90 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f  CT DISTINCT - co
12da0 6c 30 20 2b 20 39 38 20 63 6f 6c 30 20 46 52 4f  l0 + 98 col0 FRO
12db0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
12dc0 2d 2d 2d 2d 0d 0a 32 33 0d 0a 33 34 0d 0a 35 32  ----..23..34..52
12dd0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
12de0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
12df0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
12e00 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 31 31  owsort label-411
12e10 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
12e20 54 20 2b 20 2d 20 35 31 20 2b 20 2b 20 43 4f 55  T + - 51 + + COU
12e30 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  NT( * ) FROM tab
12e40 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34  2 cor0..----..-4
12e50 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  8....skipif mysq
12e60 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
12e70 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
12e80 6f 72 74 20 6c 61 62 65 6c 2d 34 31 31 0d 0a 53  ort label-411..S
12e90 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
12ea0 20 2d 20 35 31 20 2b 20 2b 20 43 4f 55 4e 54 20   - 51 + + COUNT 
12eb0 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ( * ) FROM tab2 
12ec0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 38 0d  cor0..----..-48.
12ed0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
12ee0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
12ef0 4e 43 54 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 2b  NCT + - col0 * +
12f00 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   - col0 FROM tab
12f10 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
12f20 0a 32 36 30 31 0d 0a 37 32 32 35 0d 0a 38 32 38  .2601..7225..828
12f30 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  1....query I row
12f40 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
12f50 20 2d 20 2b 20 32 32 20 2b 20 2d 20 32 20 46 52   - + 22 + - 2 FR
12f60 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d  OM tab1 cor0..--
12f70 2d 2d 0d 0a 2d 32 34 0d 0a 2d 32 34 0d 0a 2d 32  --..-24..-24..-2
12f80 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  4....query I row
12f90 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
12fa0 54 49 4e 43 54 20 2b 20 35 37 20 2b 20 63 6f 6c  TINCT + 57 + col
12fb0 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
12fc0 2d 0d 0a 31 30 34 0d 0a 31 35 36 0d 0a 36 37 0d  -..104..156..67.
12fd0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
12fe0 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20  rt..SELECT col1 
12ff0 2a 20 2d 20 63 6f 6c 32 20 2d 20 2b 20 37 36 20  * - col2 - + 76 
13000 2b 20 2b 20 33 31 20 46 52 4f 4d 20 74 61 62 32  + + 31 FROM tab2
13010 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 31 38 0d 0a 2d  ..----..-1218..-
13020 33 31 32 35 0d 0a 2d 33 39 33 31 0d 0a 0d 0a 6f  3125..-3931....o
13030 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
13040 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
13050 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
13060 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
13070 2d 34 31 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -416..SELECT ALL
13080 20 2b 20 43 41 53 54 28 20 63 6f 6c 31 20 41 53   + CAST( col1 AS
13090 20 53 49 47 4e 45 44 20 29 20 2d 20 31 37 20 2b   SIGNED ) - 17 +
130a0 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 31 36 20 41   + col0 * - 16 A
130b0 53 20 63 6f 6c 30 2c 20 37 35 20 2b 20 2d 20 2d  S col0, 75 + - -
130c0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
130d0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
130e0 31 33 38 38 0d 0a 38 35 0d 0a 2d 31 35 36 38 0d  1388..85..-1568.
130f0 0a 31 37 34 0d 0a 2d 31 37 36 0d 0a 31 32 32 0d  .174..-176..122.
13100 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
13110 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
13120 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
13130 72 74 20 6c 61 62 65 6c 2d 34 31 36 0d 0a 53 45  rt label-416..SE
13140 4c 45 43 54 20 41 4c 4c 20 2b 20 43 41 53 54 20  LECT ALL + CAST 
13150 28 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45  ( col1 AS INTEGE
13160 52 20 29 20 2d 20 31 37 20 2b 20 2b 20 63 6f 6c  R ) - 17 + + col
13170 30 20 2a 20 2d 20 31 36 20 41 53 20 63 6f 6c 30  0 * - 16 AS col0
13180 2c 20 37 35 20 2b 20 2d 20 2d 20 63 6f 6c 32 20  , 75 + - - col2 
13190 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
131a0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 38 38 0d 0a  0..----..-1388..
131b0 38 35 0d 0a 2d 31 35 36 38 0d 0a 31 37 34 0d 0a  85..-1568..174..
131c0 2d 31 37 36 0d 0a 31 32 32 0d 0a 0d 0a 71 75 65  -176..122....que
131d0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
131e0 4c 45 43 54 20 2b 20 28 20 63 6f 6c 31 20 29 20  LECT + ( col1 ) 
131f0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
13200 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
13210 4e 55 4c 4c 20 3c 20 28 20 2d 20 35 31 20 2a 20  NULL < ( - 51 * 
13220 2b 20 63 6f 6c 32 20 2a 20 2d 20 37 30 20 2b 20  + col2 * - 70 + 
13230 2d 20 28 20 2b 20 63 6f 6c 30 20 29 20 29 0d 0a  - ( + col0 ) )..
13240 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
13250 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
13260 41 4c 4c 20 2b 20 37 20 2b 20 2d 20 31 32 20 46  ALL + 7 + - 12 F
13270 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
13280 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 0d 0a 2d 35 0d 0a  ..----..-5..-5..
13290 2d 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  -5....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 31 20 63 6f 72 30  * FROM tab1 cor0
132c0 20 57 48 45 52 45 20 2b 20 63 6f 6c 30 20 42 45   WHERE + col0 BE
132d0 54 57 45 45 4e 20 63 6f 6c 31 20 41 4e 44 20 2d  TWEEN col1 AND -
132e0 20 63 6f 6c 31 20 2a 20 2d 20 28 20 31 31 20 29   col1 * - ( 11 )
132f0 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 31 34 0d 0a  ..----..51..14..
13300 39 36 0d 0a 39 31 0d 0a 34 37 0d 0a 36 38 0d 0a  96..91..47..68..
13310 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
13320 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 34 34  t..SELECT ALL 44
13330 20 2d 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74   - + col1 FROM t
13340 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
13350 2d 0d 0a 2d 33 0d 0a 33 30 0d 0a 33 39 0d 0a 0d  -..-3..30..39...
13360 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
13370 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
13380 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
13390 6f 72 74 20 6c 61 62 65 6c 2d 34 32 31 0d 0a 53  ort label-421..S
133a0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
133b0 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 43 4f   COUNT( * ) * CO
133c0 55 4e 54 28 20 2d 20 33 32 20 29 20 46 52 4f 4d  UNT( - 32 ) FROM
133d0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
133e0 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 73 6b 69 70 69 66  ---..9....skipif
133f0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
13400 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
13410 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
13420 32 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  21..SELECT DISTI
13430 4e 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  NCT + COUNT ( * 
13440 29 20 2a 20 43 4f 55 4e 54 20 28 20 2d 20 33 32  ) * COUNT ( - 32
13450 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
13460 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d  cor0..----..9...
13470 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
13480 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 39  ..SELECT ALL - 9
13490 38 20 2a 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32  8 * col1 AS col2
134a0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
134b0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 37 32 0d  r0..----..-1372.
134c0 0a 2d 34 36 30 36 0d 0a 2d 34 39 30 0d 0a 0d 0a  .-4606..-490....
134d0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
134e0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
134f0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
13500 72 74 20 6c 61 62 65 6c 2d 34 32 33 0d 0a 53 45  rt label-423..SE
13510 4c 45 43 54 20 2d 20 2d 20 34 39 20 2a 20 2d 20  LECT - - 49 * - 
13520 28 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 29  ( - COUNT( * ) )
13530 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d   FROM tab1 cor0.
13540 0a 2d 2d 2d 2d 0d 0a 31 34 37 0d 0a 0d 0a 73 6b  .----..147....sk
13550 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
13560 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
13570 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
13580 65 6c 2d 34 32 33 0d 0a 53 45 4c 45 43 54 20 2d  el-423..SELECT -
13590 20 2d 20 34 39 20 2a 20 2d 20 28 20 2d 20 43 4f   - 49 * - ( - CO
135a0 55 4e 54 20 28 20 2a 20 29 20 29 20 46 52 4f 4d  UNT ( * ) ) FROM
135b0 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
135c0 0d 0a 31 34 37 0d 0a 0d 0a 71 75 65 72 79 20 49  ..147....query I
135d0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
135e0 20 44 49 53 54 49 4e 43 54 20 2d 20 28 20 2b 20   DISTINCT - ( + 
135f0 34 39 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  49 ) AS col0 FRO
13600 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
13610 2d 2d 2d 2d 0d 0a 2d 34 39 0d 0a 0d 0a 71 75 65  ----..-49....que
13620 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
13630 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
13640 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
13650 48 45 52 45 20 35 31 20 2a 20 2d 20 2b 20 63 6f  HERE 51 * - + co
13660 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l0 IS NULL..----
13670 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
13680 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
13690 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
136a0 4e 4f 54 20 2b 20 2b 20 33 33 20 3c 3e 20 2b 20  NOT + + 33 <> + 
136b0 2d 20 63 6f 6c 30 20 2f 20 2d 20 31 39 0d 0a 2d  - col0 / - 19..-
136c0 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  ---....query II 
136d0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
136e0 41 4c 4c 20 63 6f 6c 30 2c 20 63 6f 6c 30 20 2a  ALL col0, col0 *
136f0 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20   - col1 AS col2 
13700 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
13710 0a 34 36 0d 0a 2d 32 33 34 36 0d 0a 36 34 0d 0a  .46..-2346..64..
13720 2d 34 39 32 38 0d 0a 37 35 0d 0a 2d 35 30 32 35  -4928..75..-5025
13730 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
13740 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
13750 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  tax: ..query II 
13760 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 32  rowsort label-42
13770 38 0d 0a 53 45 4c 45 43 54 20 32 37 2c 20 43 4f  8..SELECT 27, CO
13780 55 4e 54 28 20 2a 20 29 20 2b 20 2b 20 2d 20 43  UNT( * ) + + - C
13790 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c  OUNT( * ) AS col
137a0 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
137b0 2d 0d 0a 32 37 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  -..27..0....skip
137c0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
137d0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
137e0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
137f0 6c 2d 34 32 38 0d 0a 53 45 4c 45 43 54 20 32 37  l-428..SELECT 27
13800 2c 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20  , COUNT ( * ) + 
13810 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  + - COUNT ( * ) 
13820 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
13830 32 0d 0a 2d 2d 2d 2d 0d 0a 32 37 0d 0a 30 0d 0a  2..----..27..0..
13840 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
13850 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
13860 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
13870 54 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20 2d  T NULL BETWEEN -
13880 20 36 35 20 2f 20 2b 20 63 6f 6c 31 20 2b 20 63   65 / + col1 + c
13890 6f 6c 30 20 2b 20 63 6f 6c 30 20 41 4e 44 20 28  ol0 + col0 AND (
138a0 20 32 38 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   28 )..----....o
138b0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
138c0 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
138d0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
138e0 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
138f0 2d 34 33 30 0d 0a 53 45 4c 45 43 54 20 2b 20 43  -430..SELECT + C
13900 41 53 54 28 20 35 36 20 41 53 20 53 49 47 4e 45  AST( 56 AS SIGNE
13910 44 20 29 20 41 53 20 63 6f 6c 31 2c 20 2d 20 37  D ) AS col1, - 7
13920 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
13930 2d 0d 0a 35 36 0d 0a 2d 37 30 0d 0a 35 36 0d 0a  -..56..-70..56..
13940 2d 37 30 0d 0a 35 36 0d 0a 2d 37 30 0d 0a 0d 0a  -70..56..-70....
13950 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
13960 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
13970 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
13980 6c 61 62 65 6c 2d 34 33 30 0d 0a 53 45 4c 45 43  label-430..SELEC
13990 54 20 2b 20 43 41 53 54 20 28 20 35 36 20 41 53  T + CAST ( 56 AS
139a0 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f   INTEGER ) AS co
139b0 6c 31 2c 20 2d 20 37 30 20 46 52 4f 4d 20 74 61  l1, - 70 FROM ta
139c0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 36 0d 0a 2d 37  b2..----..56..-7
139d0 30 0d 0a 35 36 0d 0a 2d 37 30 0d 0a 35 36 0d 0a  0..56..-70..56..
139e0 2d 37 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -70....onlyif my
139f0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
13a00 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
13a10 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
13a20 74 20 6c 61 62 65 6c 2d 34 33 31 0d 0a 53 45 4c  t label-431..SEL
13a30 45 43 54 20 41 4c 4c 20 2d 20 33 39 20 2d 20 2d  ECT ALL - 39 - -
13a40 20 43 41 53 54 28 20 2b 20 63 6f 6c 31 20 41 53   CAST( + col1 AS
13a50 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c   SIGNED ) AS col
13a60 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  2 FROM tab1 WHER
13a70 45 20 4e 4f 54 20 2d 20 63 6f 6c 31 20 2a 20 2d  E NOT - col1 * -
13a80 20 63 6f 6c 30 20 4e 4f 54 20 42 45 54 57 45 45   col0 NOT BETWEE
13a90 4e 20 4e 55 4c 4c 20 41 4e 44 20 2b 20 38 32 0d  N NULL AND + 82.
13aa0 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
13ab0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
13ac0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
13ad0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 33  rowsort label-43
13ae0 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  1..SELECT ALL - 
13af0 33 39 20 2d 20 2d 20 43 41 53 54 20 28 20 2b 20  39 - - CAST ( + 
13b00 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45 52 20  col1 AS INTEGER 
13b10 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
13b20 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab1 WHERE NOT - 
13b30 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 30 20 4e 4f  col1 * - col0 NO
13b40 54 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41  T BETWEEN NULL A
13b50 4e 44 20 2b 20 38 32 0d 0a 2d 2d 2d 2d 0d 0a 0d  ND + 82..----...
13b60 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
13b70 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
13b80 43 54 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 31  CT col1 * + col1
13b90 2c 20 37 39 20 2b 20 2d 20 2d 20 30 20 41 53 20  , 79 + - - 0 AS 
13ba0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col0 FROM tab1..
13bb0 2d 2d 2d 2d 0d 0a 31 39 36 0d 0a 37 39 0d 0a 32  ----..196..79..2
13bc0 32 30 39 0d 0a 37 39 0d 0a 32 35 0d 0a 37 39 0d  209..79..25..79.
13bd0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
13be0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
13bf0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
13c00 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 33 33 0d  wsort label-433.
13c10 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
13c20 20 2d 20 4d 41 58 28 20 44 49 53 54 49 4e 43 54   - MAX( DISTINCT
13c30 20 32 34 20 29 20 41 53 20 63 6f 6c 32 20 46 52   24 ) AS col2 FR
13c40 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
13c50 32 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  24....skipif mys
13c60 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
13c70 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
13c80 73 6f 72 74 20 6c 61 62 65 6c 2d 34 33 33 0d 0a  sort label-433..
13c90 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
13ca0 2d 20 4d 41 58 20 28 20 44 49 53 54 49 4e 43 54  - MAX ( DISTINCT
13cb0 20 32 34 20 29 20 41 53 20 63 6f 6c 32 20 46 52   24 ) AS col2 FR
13cc0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
13cd0 32 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  24....query II r
13ce0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
13cf0 20 63 6f 6c 30 20 2a 20 2d 20 2b 20 63 6f 6c 32   col0 * - + col2
13d00 2c 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46  , col0 AS col2 F
13d10 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
13d20 2d 31 30 35 38 0d 0a 34 36 0d 0a 2d 32 35 36 30  -1058..46..-2560
13d30 0d 0a 36 34 0d 0a 2d 34 33 35 30 0d 0a 37 35 0d  ..64..-4350..75.
13d40 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
13d50 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44  # CAST syntax: D
13d60 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71  ECIMAL type: ..q
13d70 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
13d80 61 62 65 6c 2d 34 33 35 0d 0a 53 45 4c 45 43 54  abel-435..SELECT
13d90 20 63 6f 6c 31 20 2d 20 2d 20 63 6f 6c 32 20 2d   col1 - - col2 -
13da0 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   - col1 FROM tab
13db0 31 20 57 48 45 52 45 20 63 6f 6c 30 20 2f 20 2d  1 WHERE col0 / -
13dc0 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44   CAST( NULL AS D
13dd0 45 43 49 4d 41 4c 20 29 20 2f 20 2b 20 35 20 2b  ECIMAL ) / + 5 +
13de0 20 2d 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 2b 20   - + col0 * - + 
13df0 63 6f 6c 30 20 2a 20 2b 20 2b 20 31 34 20 49 53  col0 * + + 14 IS
13e00 20 4e 4f 54 20 4e 55 4c 4c 20 41 4e 44 20 28 20   NOT NULL AND ( 
13e10 4e 55 4c 4c 20 29 20 3c 20 2b 20 2d 20 63 6f 6c  NULL ) < + - col
13e20 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  0..----....skipi
13e30 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
13e40 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
13e50 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
13e60 34 33 35 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31  435..SELECT col1
13e70 20 2d 20 2d 20 63 6f 6c 32 20 2d 20 2d 20 63 6f   - - col2 - - co
13e80 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  l1 FROM tab1 WHE
13e90 52 45 20 63 6f 6c 30 20 2f 20 2d 20 43 41 53 54  RE col0 / - CAST
13ea0 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20   ( NULL AS REAL 
13eb0 29 20 2f 20 2b 20 35 20 2b 20 2d 20 2b 20 63 6f  ) / + 5 + - + co
13ec0 6c 30 20 2a 20 2d 20 2b 20 63 6f 6c 30 20 2a 20  l0 * - + col0 * 
13ed0 2b 20 2b 20 31 34 20 49 53 20 4e 4f 54 20 4e 55  + + 14 IS NOT NU
13ee0 4c 4c 20 41 4e 44 20 28 20 4e 55 4c 4c 20 29 20  LL AND ( NULL ) 
13ef0 3c 20 2b 20 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d  < + - col0..----
13f00 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
13f10 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
13f20 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
13f30 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 33 36  owsort label-436
13f40 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43  ..SELECT ALL - C
13f50 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c  OUNT( * ) AS col
13f60 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
13f70 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c  or0 WHERE NULL <
13f80 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   NULL..----..0..
13f90 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
13fa0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
13fb0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
13fc0 20 6c 61 62 65 6c 2d 34 33 36 0d 0a 53 45 4c 45   label-436..SELE
13fd0 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 20 28  CT ALL - COUNT (
13fe0 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f   * ) AS col0 FRO
13ff0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
14000 48 45 52 45 20 4e 55 4c 4c 20 3c 20 4e 55 4c 4c  HERE NULL < NULL
14010 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c  ..----..0....onl
14020 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
14030 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
14040 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
14050 6c 61 62 65 6c 2d 34 33 37 0d 0a 53 45 4c 45 43  label-437..SELEC
14060 54 20 53 55 4d 28 20 41 4c 4c 20 2b 20 2d 20 63  T SUM( ALL + - c
14070 6f 6c 31 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ol1 ) AS col2 FR
14080 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
14090 0a 2d 2d 2d 2d 0d 0a 2d 31 30 33 0d 0a 0d 0a 73  .----..-103....s
140a0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
140b0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
140c0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
140d0 62 65 6c 2d 34 33 37 0d 0a 53 45 4c 45 43 54 20  bel-437..SELECT 
140e0 53 55 4d 20 28 20 41 4c 4c 20 2b 20 2d 20 63 6f  SUM ( ALL + - co
140f0 6c 31 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  l1 ) AS col2 FRO
14100 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
14110 2d 2d 2d 2d 0d 0a 2d 31 30 33 0d 0a 0d 0a 71 75  ----..-103....qu
14120 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
14130 53 45 4c 45 43 54 20 63 6f 6c 31 2c 20 2b 20 63  SELECT col1, + c
14140 6f 6c 30 20 2b 20 2d 20 2b 20 63 6f 6c 32 20 41  ol0 + - + col2 A
14150 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
14160 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a   cor0..----..1..
14170 2d 32 0d 0a 32 31 0d 0a 37 37 0d 0a 38 31 0d 0a  -2..21..77..81..
14180 2d 33 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  -32....query II 
14190 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
141a0 41 4c 4c 20 2d 20 2b 20 63 6f 6c 31 2c 20 63 6f  ALL - + col1, co
141b0 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l1 AS col2 FROM 
141c0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
141d0 2d 2d 0d 0a 2d 31 34 0d 0a 31 34 0d 0a 2d 34 37  --..-14..14..-47
141e0 0d 0a 34 37 0d 0a 2d 35 0d 0a 35 0d 0a 0d 0a 6f  ..47..-5..5....o
141f0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
14200 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
14210 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
14220 74 20 6c 61 62 65 6c 2d 34 34 30 0d 0a 53 45 4c  t label-440..SEL
14230 45 43 54 20 2b 20 4d 41 58 28 20 28 20 2d 20 63  ECT + MAX( ( - c
14240 6f 6c 30 20 29 20 29 20 41 53 20 63 6f 6c 32 20  ol0 ) ) AS col2 
14250 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
14260 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 0d 0a  0..----..-51....
14270 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
14280 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
14290 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
142a0 61 62 65 6c 2d 34 34 30 0d 0a 53 45 4c 45 43 54  abel-440..SELECT
142b0 20 2b 20 4d 41 58 20 28 20 28 20 2d 20 63 6f 6c   + MAX ( ( - col
142c0 30 20 29 20 29 20 41 53 20 63 6f 6c 32 20 46 52  0 ) ) AS col2 FR
142d0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
142e0 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 0d 0a 6f 6e  .----..-51....on
142f0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
14300 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
14310 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
14320 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
14330 34 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  41..SELECT ALL +
14340 20 63 6f 6c 31 20 44 49 56 20 2d 20 2d 20 32 34   col1 DIV - - 24
14350 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
14360 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
14370 0d 0a 30 0d 0a 30 0d 0a 31 0d 0a 0d 0a 73 6b 69  ..0..0..1....ski
14380 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
14390 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
143a0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
143b0 6c 2d 34 34 31 0d 0a 53 45 4c 45 43 54 20 41 4c  l-441..SELECT AL
143c0 4c 20 2b 20 63 6f 6c 31 20 2f 20 2d 20 2d 20 32  L + col1 / - - 2
143d0 34 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  4 AS col1 FROM t
143e0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
143f0 2d 0d 0a 30 0d 0a 30 0d 0a 31 0d 0a 0d 0a 73 6b  -..0..0..1....sk
14400 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
14410 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
14420 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
14430 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
14440 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20  lumns..query II 
14450 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
14460 2d 20 32 36 2c 20 63 6f 6c 32 20 2b 20 2d 20 32  - 26, col2 + - 2
14470 31 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  1 col2 FROM tab1
14480 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
14490 2d 32 36 0d 0a 33 38 0d 0a 2d 32 36 0d 0a 34 37  -26..38..-26..47
144a0 0d 0a 2d 32 36 0d 0a 37 35 0d 0a 0d 0a 6f 6e 6c  ..-26..75....onl
144b0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
144c0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49  egate syntax: DI
144d0 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
144e0 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
144f0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
14500 34 34 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  443..SELECT DIST
14510 49 4e 43 54 20 2b 20 33 30 20 44 49 56 20 2b 20  INCT + 30 DIV + 
14520 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20  COUNT( * ) FROM 
14530 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a  tab0..----..10..
14540 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
14550 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
14560 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
14570 20 6c 61 62 65 6c 2d 34 34 33 0d 0a 53 45 4c 45   label-443..SELE
14580 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 33 30  CT DISTINCT + 30
14590 20 2f 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29   / + COUNT ( * )
145a0 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
145b0 0d 0a 31 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..10....query II
145c0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
145d0 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53  T * FROM tab0 AS
145e0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
145f0 2d 20 63 6f 6c 31 20 4e 4f 54 20 42 45 54 57 45  - col1 NOT BETWE
14600 45 4e 20 34 35 20 41 4e 44 20 28 20 2b 20 36 35  EN 45 AND ( + 65
14610 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72   )..----....quer
14620 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
14630 45 43 54 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 2b  ECT + + col1 * +
14640 20 37 34 20 46 52 4f 4d 20 74 61 62 32 20 63 6f   74 FROM tab2 co
14650 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 37 37 34 0d 0a  r0..----..3774..
14660 34 39 35 38 0d 0a 35 36 39 38 0d 0a 0d 0a 71 75  4958..5698....qu
14670 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
14680 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
14690 63 6f 6c 32 2c 20 2d 20 63 6f 6c 32 20 41 53 20  col2, - col2 AS 
146a0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
146b0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
146c0 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c   NULL IS NOT NUL
146d0 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 2d 31 30  L..----..10..-10
146e0 0d 0a 34 37 0d 0a 2d 34 37 0d 0a 39 39 0d 0a 2d  ..47..-47..99..-
146f0 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  99....onlyif mys
14700 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
14710 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
14720 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
14730 20 6c 61 62 65 6c 2d 34 34 37 0d 0a 53 45 4c 45   label-447..SELE
14740 43 54 20 41 4c 4c 20 2b 20 34 30 20 2a 20 28 20  CT ALL + 40 * ( 
14750 2d 20 2d 20 43 41 53 54 28 20 2b 20 2d 20 63 6f  - - CAST( + - co
14760 6c 30 20 41 53 20 53 49 47 4e 45 44 20 29 20 29  l0 AS SIGNED ) )
14770 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
14780 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
14790 0d 0a 2d 33 34 38 30 0d 0a 2d 33 38 38 30 0d 0a  ..-3480..-3880..
147a0 2d 36 30 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -600....skipif m
147b0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
147c0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
147d0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 34 37  owsort label-447
147e0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 34  ..SELECT ALL + 4
147f0 30 20 2a 20 28 20 2d 20 2d 20 43 41 53 54 20 28  0 * ( - - CAST (
14800 20 2b 20 2d 20 63 6f 6c 30 20 41 53 20 49 4e 54   + - col0 AS INT
14810 45 47 45 52 20 29 20 29 20 41 53 20 63 6f 6c 30  EGER ) ) AS col0
14820 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
14830 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 34 38 30 0d  r0..----..-3480.
14840 0a 2d 33 38 38 30 0d 0a 2d 36 30 30 0d 0a 0d 0a  .-3880..-600....
14850 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
14860 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
14870 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
14880 72 74 20 6c 61 62 65 6c 2d 34 34 38 0d 0a 53 45  rt label-448..SE
14890 4c 45 43 54 20 2b 20 2d 20 43 4f 55 4e 54 28 20  LECT + - COUNT( 
148a0 41 4c 4c 20 2d 20 33 20 29 20 41 53 20 63 6f 6c  ALL - 3 ) AS col
148b0 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
148c0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d  or0..----..-3...
148d0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
148e0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
148f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
14900 6c 61 62 65 6c 2d 34 34 38 0d 0a 53 45 4c 45 43  label-448..SELEC
14910 54 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 41 4c  T + - COUNT ( AL
14920 4c 20 2d 20 33 20 29 20 41 53 20 63 6f 6c 31 20  L - 3 ) AS col1 
14930 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
14940 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 71  0..----..-3....q
14950 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
14960 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
14970 74 61 62 31 20 57 48 45 52 45 20 28 20 4e 4f 54  tab1 WHERE ( NOT
14980 20 63 6f 6c 31 20 2b 20 2d 20 2d 20 28 20 2b 20   col1 + - - ( + 
14990 2b 20 63 6f 6c 30 20 29 20 2b 20 2b 20 63 6f 6c  + col0 ) + + col
149a0 31 20 49 53 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d  1 IS NULL )..---
149b0 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
149c0 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31  ing to c6c0a4111
149d0 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65  b36d04dbc811a11e
149e0 34 64 35 34 63 61 64 0d 0a 0d 0a 6f 6e 6c 79 69  4d54cad....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 44 49 56 20  ate syntax: DIV 
14a10 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
14a20 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
14a30 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 35  rowsort label-45
14a40 30 0d 0a 53 45 4c 45 43 54 20 2b 20 34 31 20 44  0..SELECT + 41 D
14a50 49 56 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52  IV COUNT( * ) FR
14a60 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab2..----..1
14a70 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....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 35 30 0d 0a 53  ort label-450..S
14ab0 45 4c 45 43 54 20 2b 20 34 31 20 2f 20 43 4f 55  ELECT + 41 / COU
14ac0 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  NT ( * ) FROM ta
14ad0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 33 0d 0a 0d 0a  b2..----..13....
14ae0 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
14af0 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
14b00 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
14b10 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
14b20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
14b30 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
14b40 54 20 2b 20 31 39 20 41 53 20 63 6f 6c 31 2c 20  T + 19 AS col1, 
14b50 2b 20 33 33 20 63 6f 6c 32 20 46 52 4f 4d 20 74  + 33 col2 FROM t
14b60 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 39 0d 0a 33  ab2..----..19..3
14b70 33 0d 0a 31 39 0d 0a 33 33 0d 0a 31 39 0d 0a 33  3..19..33..19..3
14b80 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  3....query I row
14b90 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 33  sort..SELECT - 3
14ba0 30 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  0 FROM tab2 WHER
14bb0 45 20 2b 20 32 31 20 2a 20 2d 20 2b 20 63 6f 6c  E + 21 * - + col
14bc0 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  2 IS NOT NULL..-
14bd0 2d 2d 2d 0d 0a 2d 33 30 0d 0a 2d 33 30 0d 0a 2d  ---..-30..-30..-
14be0 33 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  30....query I ro
14bf0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
14c00 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20 2b 20  STINCT + col2 + 
14c10 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 31 20 41 53  col2 + - col1 AS
14c20 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
14c30 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 31 33 0d 0a 31  .----..-1..13..1
14c40 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  97....onlyif mys
14c50 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
14c60 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
14c70 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
14c80 35 34 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 41 58  54..SELECT + MAX
14c90 28 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 29 20 2b  ( ALL + col2 ) +
14ca0 20 2b 20 36 31 20 41 53 20 63 6f 6c 30 20 46 52   + 61 AS col0 FR
14cb0 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 55  OM tab2 WHERE NU
14cc0 4c 4c 20 3c 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  LL <= NULL..----
14cd0 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
14ce0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
14cf0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
14d00 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
14d10 35 34 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 41 58  54..SELECT + MAX
14d20 20 28 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 29 20   ( ALL + col2 ) 
14d30 2b 20 2b 20 36 31 20 41 53 20 63 6f 6c 30 20 46  + + 61 AS col0 F
14d40 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
14d50 55 4c 4c 20 3c 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ULL <= NULL..---
14d60 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69  -..NULL....onlyi
14d70 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
14d80 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
14d90 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
14da0 62 65 6c 2d 34 35 35 0d 0a 53 45 4c 45 43 54 20  bel-455..SELECT 
14db0 2d 20 37 35 20 2b 20 4d 49 4e 28 20 63 6f 6c 32  - 75 + MIN( col2
14dc0 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
14dd0 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
14de0 2d 2d 0d 0a 2d 36 35 0d 0a 0d 0a 73 6b 69 70 69  --..-65....skipi
14df0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
14e00 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
14e10 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
14e20 34 35 35 0d 0a 53 45 4c 45 43 54 20 2d 20 37 35  455..SELECT - 75
14e30 20 2b 20 4d 49 4e 20 28 20 63 6f 6c 32 20 29 20   + MIN ( col2 ) 
14e40 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
14e50 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
14e60 0a 2d 36 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-65....query I 
14e70 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
14e80 44 49 53 54 49 4e 43 54 20 2d 20 28 20 2b 20 63  DISTINCT - ( + c
14e90 6f 6c 30 20 29 20 2d 20 2b 20 33 32 20 41 53 20  ol0 ) - + 32 AS 
14ea0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
14eb0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
14ec0 31 39 0d 0a 2d 31 32 39 0d 0a 2d 34 37 0d 0a 0d  19..-129..-47...
14ed0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
14ee0 0d 0a 53 45 4c 45 43 54 20 36 36 20 2b 20 2b 20  ..SELECT 66 + + 
14ef0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
14f00 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
14f10 20 4e 55 4c 4c 20 3e 20 4e 55 4c 4c 0d 0a 2d 2d   NULL > NULL..--
14f20 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  --....query III 
14f30 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
14f40 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  * FROM tab2 AS c
14f50 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  or0 WHERE NOT - 
14f60 63 6f 6c 30 20 2a 20 2b 20 2b 20 63 6f 6c 32 20  col0 * + + col2 
14f70 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  IS NULL..----..9
14f80 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
14f90 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38  to 75c998aa53ac8
14fa0 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30  3218cbf2feb962d0
14fb0 61 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  a49....onlyif my
14fc0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
14fd0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
14fe0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
14ff0 74 20 6c 61 62 65 6c 2d 34 35 39 0d 0a 53 45 4c  t label-459..SEL
15000 45 43 54 20 28 20 2d 20 2b 20 43 41 53 54 28 20  ECT ( - + CAST( 
15010 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  - CAST( NULL AS 
15020 53 49 47 4e 45 44 20 29 20 41 53 20 53 49 47 4e  SIGNED ) AS SIGN
15030 45 44 20 29 20 29 20 63 6f 6c 32 20 46 52 4f 4d  ED ) ) col2 FROM
15040 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
15050 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
15060 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
15070 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
15080 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70  atible..skipif p
15090 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
150a0 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
150b0 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
150c0 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
150d0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
150e0 20 6c 61 62 65 6c 2d 34 35 39 0d 0a 53 45 4c 45   label-459..SELE
150f0 43 54 20 28 20 2d 20 2b 20 43 41 53 54 20 28 20  CT ( - + CAST ( 
15100 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
15110 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 49 4e   INTEGER ) AS IN
15120 54 45 47 45 52 20 29 20 29 20 63 6f 6c 32 20 46  TEGER ) ) col2 F
15130 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
15140 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
15150 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79  LL..NULL....only
15160 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
15170 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
15180 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49  ype: ..query III
15190 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
151a0 36 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  60..SELECT ALL *
151b0 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
151c0 20 2b 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20   + - CAST( NULL 
151d0 41 53 20 53 49 47 4e 45 44 20 29 20 49 53 20 4e  AS SIGNED ) IS N
151e0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  ULL..----..9 val
151f0 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
15200 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61  4b42765dff94eaaa
15210 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d  46040e537fb43b7.
15220 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
15230 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
15240 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
15250 6f 72 74 20 6c 61 62 65 6c 2d 34 36 30 0d 0a 53  ort label-460..S
15260 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
15270 20 74 61 62 30 20 57 48 45 52 45 20 2b 20 2d 20   tab0 WHERE + - 
15280 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
15290 4e 54 45 47 45 52 20 29 20 49 53 20 4e 55 4c 4c  NTEGER ) IS NULL
152a0 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
152b0 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34   hashing to c4b4
152c0 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30  2765dff94eaaa460
152d0 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a  40e537fb43b7....
152e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
152f0 0a 53 45 4c 45 43 54 20 31 35 20 2a 20 2d 20 63  .SELECT 15 * - c
15300 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
15310 2d 2d 2d 0d 0a 2d 31 34 38 35 0d 0a 2d 31 35 30  ---..-1485..-150
15320 0d 0a 2d 37 30 35 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..-705....onlyif
15330 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
15340 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
15350 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
15360 73 6f 72 74 20 6c 61 62 65 6c 2d 34 36 32 0d 0a  sort label-462..
15370 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c  SELECT ALL - col
15380 30 20 2a 20 63 6f 6c 32 20 44 49 56 20 2b 20 63  0 * col2 DIV + c
15390 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
153a0 2d 2d 2d 0d 0a 2d 31 35 0d 0a 2d 38 37 0d 0a 2d  ---..-15..-87..-
153b0 39 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  97....skipif mys
153c0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
153d0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
153e0 73 6f 72 74 20 6c 61 62 65 6c 2d 34 36 32 0d 0a  sort label-462..
153f0 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c  SELECT ALL - col
15400 30 20 2a 20 63 6f 6c 32 20 2f 20 2b 20 63 6f 6c  0 * col2 / + col
15410 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
15420 2d 0d 0a 2d 31 35 0d 0a 2d 38 37 0d 0a 2d 39 37  -..-15..-87..-97
15430 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
15440 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
15450 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
15460 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 36 33  owsort label-463
15470 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 4d  ..SELECT ALL - M
15480 49 4e 28 20 44 49 53 54 49 4e 43 54 20 2b 20 34  IN( DISTINCT + 4
15490 30 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  0 ) FROM tab1..-
154a0 2d 2d 2d 0d 0a 2d 34 30 0d 0a 0d 0a 73 6b 69 70  ---..-40....skip
154b0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
154c0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
154d0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
154e0 2d 34 36 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -463..SELECT ALL
154f0 20 2d 20 4d 49 4e 20 28 20 44 49 53 54 49 4e 43   - MIN ( DISTINC
15500 54 20 2b 20 34 30 20 29 20 46 52 4f 4d 20 74 61  T + 40 ) FROM ta
15510 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 30 0d 0a 0d  b1..----..-40...
15520 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
15530 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
15540 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
15550 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
15560 6c 2d 34 36 34 0d 0a 53 45 4c 45 43 54 20 2d 20  l-464..SELECT - 
15570 39 38 20 44 49 56 20 2d 20 31 31 20 46 52 4f 4d  98 DIV - 11 FROM
15580 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 38 0d 0a   tab0..----..8..
15590 38 0d 0a 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  8..8....skipif m
155a0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
155b0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
155c0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 36 34  owsort label-464
155d0 0d 0a 53 45 4c 45 43 54 20 2d 20 39 38 20 2f 20  ..SELECT - 98 / 
155e0 2d 20 31 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  - 11 FROM tab0..
155f0 2d 2d 2d 2d 0d 0a 38 0d 0a 38 0d 0a 38 0d 0a 0d  ----..8..8..8...
15600 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
15610 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
15620 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
15630 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
15640 62 65 6c 2d 34 36 35 0d 0a 53 45 4c 45 43 54 20  bel-465..SELECT 
15650 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  * FROM tab1 WHER
15660 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 42  E NOT NULL NOT B
15670 45 54 57 45 45 4e 20 63 6f 6c 31 20 2b 20 34 34  ETWEEN col1 + 44
15680 20 2b 20 2b 20 2b 20 43 41 53 54 28 20 63 6f 6c   + + + CAST( col
15690 32 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 4e  2 AS SIGNED ) AN
156a0 44 20 2d 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c  D - - CAST( NULL
156b0 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2b   AS SIGNED ) + +
156c0 20 63 6f 6c 31 20 2b 20 2d 20 39 37 0d 0a 2d 2d   col1 + - 97..--
156d0 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
156e0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
156f0 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72  ble..query III r
15700 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 36 35  owsort label-465
15710 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
15720 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 4e  tab1 WHERE NOT N
15730 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  ULL NOT BETWEEN 
15740 63 6f 6c 31 20 2b 20 34 34 20 2b 20 2b 20 2b 20  col1 + 44 + + + 
15750 43 41 53 54 20 28 20 63 6f 6c 32 20 41 53 20 49  CAST ( col2 AS I
15760 4e 54 45 47 45 52 20 29 20 41 4e 44 20 2d 20 2d  NTEGER ) AND - -
15770 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
15780 49 4e 54 45 47 45 52 20 29 20 2b 20 2b 20 63 6f  INTEGER ) + + co
15790 6c 31 20 2b 20 2d 20 39 37 0d 0a 2d 2d 2d 2d 0d  l1 + - 97..----.
157a0 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
157b0 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
157c0 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
157d0 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
157e0 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
157f0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
15800 45 43 54 20 41 4c 4c 20 33 39 20 63 6f 6c 32 20  ECT ALL 39 col2 
15810 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
15820 30 0d 0a 2d 2d 2d 2d 0d 0a 33 39 0d 0a 33 39 0d  0..----..39..39.
15830 0a 33 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .39....onlyif my
15840 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
15850 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
15860 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
15870 34 36 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  467..SELECT DIST
15880 49 4e 43 54 20 2d 20 2b 20 43 4f 55 4e 54 28 20  INCT - + COUNT( 
15890 2a 20 29 20 2b 20 2d 20 37 37 20 46 52 4f 4d 20  * ) + - 77 FROM 
158a0 74 61 62 30 20 41 53 20 63 6f 72 30 20 43 52 4f  tab0 AS cor0 CRO
158b0 53 53 20 4a 4f 49 4e 20 74 61 62 31 20 41 53 20  SS JOIN tab1 AS 
158c0 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 36 0d  cor1..----..-86.
158d0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
158e0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
158f0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
15900 74 20 6c 61 62 65 6c 2d 34 36 37 0d 0a 53 45 4c  t label-467..SEL
15910 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2b  ECT DISTINCT - +
15920 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2d   COUNT ( * ) + -
15930 20 37 37 20 46 52 4f 4d 20 74 61 62 30 20 41 53   77 FROM tab0 AS
15940 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
15950 20 74 61 62 31 20 41 53 20 63 6f 72 31 0d 0a 2d   tab1 AS cor1..-
15960 2d 2d 2d 0d 0a 2d 38 36 0d 0a 0d 0a 6f 6e 6c 79  ---..-86....only
15970 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
15980 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
15990 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
159a0 6c 61 62 65 6c 2d 34 36 38 0d 0a 53 45 4c 45 43  label-468..SELEC
159b0 54 20 43 4f 55 4e 54 28 20 2a 20 29 2c 20 2d 20  T COUNT( * ), - 
159c0 43 4f 55 4e 54 28 20 2a 20 29 20 63 6f 6c 30 20  COUNT( * ) col0 
159d0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
159e0 0a 33 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66  .3..-3....skipif
159f0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
15a00 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
15a10 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
15a20 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
15a30 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
15a40 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
15a50 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
15a60 72 74 20 6c 61 62 65 6c 2d 34 36 38 0d 0a 53 45  rt label-468..SE
15a70 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29  LECT COUNT ( * )
15a80 2c 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  , - COUNT ( * ) 
15a90 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
15aa0 2d 2d 2d 2d 0d 0a 33 0d 0a 2d 33 0d 0a 0d 0a 71  ----..3..-3....q
15ab0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
15ac0 53 45 4c 45 43 54 20 2b 20 37 38 20 46 52 4f 4d  SELECT + 78 FROM
15ad0 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
15ae0 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20  ERE NULL IS NOT 
15af0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
15b00 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
15b10 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
15b20 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
15b30 20 6c 61 62 65 6c 2d 34 37 30 0d 0a 53 45 4c 45   label-470..SELE
15b40 43 54 20 41 4c 4c 20 2b 20 37 32 20 2a 20 2d 20  CT ALL + 72 * - 
15b50 43 4f 55 4e 54 28 20 2a 20 29 20 63 6f 6c 30 20  COUNT( * ) col0 
15b60 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
15b70 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 36 0d 0a 0d  0..----..-216...
15b80 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
15b90 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
15ba0 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
15bb0 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
15bc0 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
15bd0 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
15be0 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
15bf0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
15c00 37 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  70..SELECT ALL +
15c10 20 37 32 20 2a 20 2d 20 43 4f 55 4e 54 20 28 20   72 * - COUNT ( 
15c20 2a 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  * ) col0 FROM ta
15c30 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
15c40 0d 0a 2d 32 31 36 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..-216....onlyif
15c50 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
15c60 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
15c70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
15c80 73 6f 72 74 20 6c 61 62 65 6c 2d 34 37 31 0d 0a  sort label-471..
15c90 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c  SELECT ALL + col
15ca0 32 20 2d 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 63  2 - + col0 + + c
15cb0 6f 6c 30 20 2a 20 2b 20 2d 20 63 6f 6c 30 20 2b  ol0 * + - col0 +
15cc0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
15cd0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20  AS cor0 WHERE - 
15ce0 32 35 20 2d 20 2d 20 63 6f 6c 31 20 2b 20 2b 20  25 - - col1 + + 
15cf0 2b 20 32 34 20 2a 20 2b 20 43 41 53 54 28 20 4e  + 24 * + CAST( N
15d00 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
15d10 2a 20 2d 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 43  * - + col0 + + C
15d20 41 53 54 28 20 2d 20 2d 20 63 6f 6c 31 20 41 53  AST( - - col1 AS
15d30 20 53 49 47 4e 45 44 20 29 20 42 45 54 57 45 45   SIGNED ) BETWEE
15d40 4e 20 2b 20 63 6f 6c 30 20 41 4e 44 20 2b 20 63  N + col0 AND + c
15d50 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  ol1..----....ski
15d60 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
15d70 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
15d80 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
15d90 6c 2d 34 37 31 0d 0a 53 45 4c 45 43 54 20 41 4c  l-471..SELECT AL
15da0 4c 20 2b 20 63 6f 6c 32 20 2d 20 2b 20 63 6f 6c  L + col2 - + col
15db0 30 20 2b 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 2d  0 + + col0 * + -
15dc0 20 63 6f 6c 30 20 2b 20 63 6f 6c 31 20 46 52 4f   col0 + col1 FRO
15dd0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
15de0 48 45 52 45 20 2d 20 32 35 20 2d 20 2d 20 63 6f  HERE - 25 - - co
15df0 6c 31 20 2b 20 2b 20 2b 20 32 34 20 2a 20 2b 20  l1 + + + 24 * + 
15e00 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
15e10 4e 54 45 47 45 52 20 29 20 2a 20 2d 20 2b 20 63  NTEGER ) * - + c
15e20 6f 6c 30 20 2b 20 2b 20 43 41 53 54 20 28 20 2d  ol0 + + CAST ( -
15e30 20 2d 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47   - col1 AS INTEG
15e40 45 52 20 29 20 42 45 54 57 45 45 4e 20 2b 20 63  ER ) BETWEEN + c
15e50 6f 6c 30 20 41 4e 44 20 2b 20 63 6f 6c 31 0d 0a  ol0 AND + col1..
15e60 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
15e70 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
15e80 41 4c 4c 20 63 6f 6c 30 20 2a 20 2b 20 28 20 2d  ALL col0 * + ( -
15e90 20 2b 20 35 32 20 29 20 2a 20 2d 20 63 6f 6c 31   + 52 ) * - col1
15ea0 20 2b 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 63 6f   + - col1 + + co
15eb0 6c 30 20 2a 20 2d 20 63 6f 6c 31 20 2b 20 35 31  l0 * - col1 + 51
15ec0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
15ed0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
15ee0 0d 0a 32 31 37 32 31 0d 0a 32 31 38 31 33 31 0d  ..21721..218131.
15ef0 0a 33 36 34 35 31 0d 0a 0d 0a 6f 6e 6c 79 69 66  .36451....onlyif
15f00 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
15f10 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
15f20 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
15f30 62 65 6c 2d 34 37 33 0d 0a 53 45 4c 45 43 54 20  bel-473..SELECT 
15f40 44 49 53 54 49 4e 43 54 20 2d 20 34 34 2c 20 2d  DISTINCT - 44, -
15f50 20 4d 41 58 28 20 2d 20 33 36 20 29 20 63 6f 6c   MAX( - 36 ) col
15f60 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
15f70 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 34 0d 0a  or0..----..-44..
15f80 33 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  36....skipif mys
15f90 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
15fa0 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  ble..skipif post
15fb0 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
15fc0 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
15fd0 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
15fe0 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
15ff0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
16000 61 62 65 6c 2d 34 37 33 0d 0a 53 45 4c 45 43 54  abel-473..SELECT
16010 20 44 49 53 54 49 4e 43 54 20 2d 20 34 34 2c 20   DISTINCT - 44, 
16020 2d 20 4d 41 58 20 28 20 2d 20 33 36 20 29 20 63  - MAX ( - 36 ) c
16030 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
16040 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 34   cor0..----..-44
16050 0d 0a 33 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  ..36....skipif p
16060 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
16070 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
16080 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
16090 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
160a0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
160b0 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20  rt..SELECT col0 
160c0 63 6f 6c 31 2c 20 63 6f 6c 30 20 2d 20 63 6f 6c  col1, col0 - col
160d0 30 20 2a 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f  0 * - col2 AS co
160e0 6c 30 2c 20 2b 20 2d 20 38 20 41 53 20 63 6f 6c  l0, + - 8 AS col
160f0 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
16100 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 30 20 2a  or0 WHERE col0 *
16110 20 2b 20 2b 20 38 20 4e 4f 54 20 49 4e 20 28 20   + + 8 NOT IN ( 
16120 2b 20 32 31 2c 20 2b 20 63 6f 6c 32 20 29 0d 0a  + 21, + col2 )..
16130 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
16140 61 73 68 69 6e 67 20 74 6f 20 65 63 34 66 34 32  ashing to ec4f42
16150 64 34 33 35 64 61 37 39 36 39 38 32 61 63 32 37  d435da796982ac27
16160 65 38 35 30 37 39 33 63 61 32 0d 0a 0d 0a 71 75  e850793ca2....qu
16170 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
16180 45 4c 45 43 54 20 63 6f 6c 31 20 2a 20 2d 20 63  ELECT col1 * - c
16190 6f 6c 31 20 2d 20 2b 20 32 20 46 52 4f 4d 20 74  ol1 - + 2 FROM t
161a0 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
161b0 45 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55  E NULL IS NOT NU
161c0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
161d0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
161e0 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 2b  ECT ALL + col0 +
161f0 20 2d 20 2b 20 32 30 20 46 52 4f 4d 20 74 61 62   - + 20 FROM tab
16200 32 0d 0a 2d 2d 2d 2d 0d 0a 32 36 0d 0a 34 34 0d  2..----..26..44.
16210 0a 35 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  .55....query III
16220 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
16230 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32   ALL * FROM tab2
16240 20 57 48 45 52 45 20 63 6f 6c 30 20 42 45 54 57   WHERE col0 BETW
16250 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c  EEN NULL AND NUL
16260 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  L..----....onlyi
16270 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
16280 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
16290 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
162a0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 37 38 0d  wsort label-478.
162b0 0a 53 45 4c 45 43 54 20 34 36 20 44 49 56 20 2b  .SELECT 46 DIV +
162c0 20 37 33 20 2b 20 2d 20 2b 20 39 35 20 2a 20 63   73 + - + 95 * c
162d0 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol1 AS col1 FROM
162e0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 38   tab2..----..-48
162f0 34 35 0d 0a 2d 36 33 36 35 0d 0a 2d 37 33 31 35  45..-6365..-7315
16300 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
16310 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
16320 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
16330 72 74 20 6c 61 62 65 6c 2d 34 37 38 0d 0a 53 45  rt label-478..SE
16340 4c 45 43 54 20 34 36 20 2f 20 2b 20 37 33 20 2b  LECT 46 / + 73 +
16350 20 2d 20 2b 20 39 35 20 2a 20 63 6f 6c 31 20 41   - + 95 * col1 A
16360 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
16370 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 38 34 35 0d 0a 2d  ..----..-4845..-
16380 36 33 36 35 0d 0a 2d 37 33 31 35 0d 0a 0d 0a 71  6365..-7315....q
16390 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
163a0 53 45 4c 45 43 54 20 63 6f 6c 32 20 2b 20 2d 20  SELECT col2 + - 
163b0 63 6f 6c 32 20 2b 20 2d 20 2d 20 63 6f 6c 31 20  col2 + - - col1 
163c0 2a 20 2d 20 2b 20 28 20 2d 20 63 6f 6c 31 20 29  * - + ( - col1 )
163d0 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
163e0 0d 0a 31 0d 0a 34 34 31 0d 0a 36 35 36 31 0d 0a  ..1..441..6561..
163f0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
16400 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67   CAST syntax: ag
16410 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
16420 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
16430 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
16440 61 62 65 6c 2d 34 38 30 0d 0a 53 45 4c 45 43 54  abel-480..SELECT
16450 20 4d 41 58 28 20 2d 20 63 6f 6c 31 20 29 20 2a   MAX( - col1 ) *
16460 20 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20   - + COUNT( * ) 
16470 2b 20 2d 20 2b 20 4d 41 58 28 20 41 4c 4c 20 2d  + - + MAX( ALL -
16480 20 2d 20 43 41 53 54 28 20 2b 20 39 20 41 53 20   - CAST( + 9 AS 
16490 53 49 47 4e 45 44 20 29 20 29 20 46 52 4f 4d 20  SIGNED ) ) FROM 
164a0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 0d 0a  tab0..----..-6..
164b0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
164c0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
164d0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
164e0 20 6c 61 62 65 6c 2d 34 38 30 0d 0a 53 45 4c 45   label-480..SELE
164f0 43 54 20 4d 41 58 20 28 20 2d 20 63 6f 6c 31 20  CT MAX ( - col1 
16500 29 20 2a 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20  ) * - + COUNT ( 
16510 2a 20 29 20 2b 20 2d 20 2b 20 4d 41 58 20 28 20  * ) + - + MAX ( 
16520 41 4c 4c 20 2d 20 2d 20 43 41 53 54 20 28 20 2b  ALL - - CAST ( +
16530 20 39 20 41 53 20 49 4e 54 45 47 45 52 20 29 20   9 AS INTEGER ) 
16540 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
16550 2d 0d 0a 2d 36 0d 0a 0d 0a 71 75 65 72 79 20 49  -..-6....query I
16560 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
16570 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
16580 62 30 20 57 48 45 52 45 20 2d 20 63 6f 6c 31 20  b0 WHERE - col1 
16590 2f 20 2d 20 2b 20 36 31 20 49 53 20 4e 55 4c 4c  / - + 61 IS NULL
165a0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
165b0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
165c0 54 20 63 6f 6c 31 20 2a 20 63 6f 6c 32 20 2d 20  T col1 * col2 - 
165d0 2b 20 34 38 20 41 53 20 63 6f 6c 32 20 46 52 4f  + 48 AS col2 FRO
165e0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
165f0 2d 2d 2d 2d 0d 0a 31 36 32 0d 0a 33 37 35 39 0d  ----..162..3759.
16600 0a 35 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .51....onlyif my
16610 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
16620 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e  x: aggregate syn
16630 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
16640 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
16650 6f 72 74 20 6c 61 62 65 6c 2d 34 38 33 0d 0a 53  ort label-483..S
16660 45 4c 45 43 54 20 2d 20 2b 20 43 41 53 54 28 20  ELECT - + CAST( 
16670 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  - COUNT( * ) AS 
16680 53 49 47 4e 45 44 20 29 20 2d 20 2b 20 28 20 2d  SIGNED ) - + ( -
16690 20 35 32 20 29 20 41 53 20 63 6f 6c 32 20 46 52   52 ) AS col2 FR
166a0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
166b0 0a 2d 2d 2d 2d 0d 0a 35 35 0d 0a 0d 0a 73 6b 69  .----..55....ski
166c0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
166d0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
166e0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
166f0 6c 2d 34 38 33 0d 0a 53 45 4c 45 43 54 20 2d 20  l-483..SELECT - 
16700 2b 20 43 41 53 54 20 28 20 2d 20 43 4f 55 4e 54  + CAST ( - COUNT
16710 20 28 20 2a 20 29 20 41 53 20 49 4e 54 45 47 45   ( * ) AS INTEGE
16720 52 20 29 20 2d 20 2b 20 28 20 2d 20 35 32 20 29  R ) - + ( - 52 )
16730 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
16740 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
16750 0d 0a 35 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..55....query I 
16760 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
16770 2b 20 63 6f 6c 30 20 2b 20 2b 20 36 39 20 46 52  + col0 + + 69 FR
16780 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
16790 35 36 0d 0a 31 36 36 0d 0a 38 34 0d 0a 0d 0a 71  56..166..84....q
167a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
167b0 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2a 20  SELECT - col2 * 
167c0 2b 20 63 6f 6c 31 20 2a 20 2d 20 38 32 20 2a 20  + col1 * - 82 * 
167d0 2d 20 63 6f 6c 31 20 2b 20 63 6f 6c 32 20 46 52  - col1 + col2 FR
167e0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
167f0 31 39 34 34 37 30 38 30 0d 0a 2d 32 31 33 34 39  19447080..-21349
16800 36 32 36 0d 0a 2d 34 39 30 35 34 36 33 0d 0a 0d  626..-4905463...
16810 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
16820 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 31 34 20  ..SELECT + - 14 
16830 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 28 20 74  AS col2 FROM ( t
16840 61 62 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53  ab2 AS cor0 CROS
16850 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53 20 63  S JOIN tab2 AS c
16860 6f 72 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76  or1 )..----..9 v
16870 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
16880 20 64 33 32 31 34 36 31 39 39 34 62 61 34 39 63   d321461994ba49c
16890 33 61 37 30 66 61 36 33 37 33 30 33 32 66 63 39  3a70fa6373032fc9
168a0 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  4....query III r
168b0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
168c0 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41  LL * FROM tab2 A
168d0 53 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c  S cor0 WHERE col
168e0 32 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2b 20  2 NOT BETWEEN + 
168f0 2d 20 63 6f 6c 30 20 41 4e 44 20 4e 55 4c 4c 0d  - col0 AND NULL.
16900 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
16910 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
16920 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
16930 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
16940 6f 72 74 20 6c 61 62 65 6c 2d 34 38 38 0d 0a 53  ort label-488..S
16950 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 44 49 56  ELECT + col1 DIV
16960 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 30   + col2 + + col0
16970 20 2b 20 2b 20 37 38 20 46 52 4f 4d 20 74 61 62   + + 78 FROM tab
16980 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
16990 4e 4f 54 20 2b 20 63 6f 6c 30 20 49 53 20 4e 55  NOT + col0 IS NU
169a0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 36 37 0d 0a 31  LL..----..167..1
169b0 37 35 0d 0a 39 34 0d 0a 0d 0a 73 6b 69 70 69 66  75..94....skipif
169c0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
169d0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
169e0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
169f0 38 38 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c  88..SELECT + col
16a00 31 20 2f 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 63  1 / + col2 + + c
16a10 6f 6c 30 20 2b 20 2b 20 37 38 20 46 52 4f 4d 20  ol0 + + 78 FROM 
16a20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
16a30 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 30 20 49 53  RE NOT + col0 IS
16a40 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 36 37   NULL..----..167
16a50 0d 0a 31 37 35 0d 0a 39 34 0d 0a 0d 0a 71 75 65  ..175..94....que
16a60 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
16a70 4c 45 43 54 20 2b 20 2d 20 28 20 31 38 20 29 20  LECT + - ( 18 ) 
16a80 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
16a90 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38 0d 0a 2d 31  0..----..-18..-1
16aa0 38 0d 0a 2d 31 38 0d 0a 0d 0a 6f 6e 6c 79 69 66  8..-18....onlyif
16ab0 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
16ac0 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
16ad0 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
16ae0 73 6f 72 74 20 6c 61 62 65 6c 2d 34 39 30 0d 0a  sort label-490..
16af0 53 45 4c 45 43 54 20 28 20 2b 20 63 6f 6c 30 20  SELECT ( + col0 
16b00 29 20 2a 20 63 6f 6c 30 20 44 49 56 20 2b 20 37  ) * col0 DIV + 7
16b10 30 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  0 col2 FROM tab0
16b20 0d 0a 2d 2d 2d 2d 0d 0a 31 30 38 0d 0a 31 33 34  ..----..108..134
16b30 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..3....skipif my
16b40 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
16b50 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
16b60 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
16b70 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
16b80 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
16b90 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
16ba0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
16bb0 61 62 65 6c 2d 34 39 30 0d 0a 53 45 4c 45 43 54  abel-490..SELECT
16bc0 20 28 20 2b 20 63 6f 6c 30 20 29 20 2a 20 63 6f   ( + col0 ) * co
16bd0 6c 30 20 2f 20 2b 20 37 30 20 63 6f 6c 32 20 46  l0 / + 70 col2 F
16be0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
16bf0 31 30 38 0d 0a 31 33 34 0d 0a 33 0d 0a 0d 0a 6f  108..134..3....o
16c00 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
16c10 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
16c20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
16c30 72 74 20 6c 61 62 65 6c 2d 34 39 31 0d 0a 53 45  rt label-491..SE
16c40 4c 45 43 54 20 4d 41 58 28 20 2b 20 63 6f 6c 30  LECT MAX( + col0
16c50 20 29 2c 20 32 34 20 41 53 20 63 6f 6c 31 20 46   ), 24 AS col1 F
16c60 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
16c70 37 35 0d 0a 32 34 0d 0a 0d 0a 73 6b 69 70 69 66  75..24....skipif
16c80 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
16c90 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
16ca0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
16cb0 34 39 31 0d 0a 53 45 4c 45 43 54 20 4d 41 58 20  491..SELECT MAX 
16cc0 28 20 2b 20 63 6f 6c 30 20 29 2c 20 32 34 20 41  ( + col0 ), 24 A
16cd0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
16ce0 0d 0a 2d 2d 2d 2d 0d 0a 37 35 0d 0a 32 34 0d 0a  ..----..75..24..
16cf0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
16d00 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
16d10 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 30 20 2a 20  col1 * + col0 * 
16d20 2b 20 38 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  + 81 FROM tab0..
16d30 2d 2d 2d 2d 0d 0a 2d 31 34 37 39 38 37 0d 0a 2d  ----..-147987..-
16d40 37 38 35 37 0d 0a 2d 39 38 34 31 35 0d 0a 0d 0a  7857..-98415....
16d50 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
16d60 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
16d70 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
16d80 4e 4f 54 20 2b 20 63 6f 6c 32 20 2d 20 2d 20 2d  NOT + col2 - - -
16d90 20 32 33 20 4e 4f 54 20 42 45 54 57 45 45 4e 20   23 NOT BETWEEN 
16da0 37 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  7 AND NULL..----
16db0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
16dc0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
16dd0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
16de0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 39 34  owsort label-494
16df0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
16e00 54 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  T - - COUNT( * )
16e10 20 2a 20 2d 20 2b 20 43 4f 55 4e 54 28 20 2b 20   * - + COUNT( + 
16e20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 30  col2 ) FROM tab0
16e30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
16e40 2d 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  -9....skipif mys
16e50 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
16e60 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
16e70 73 6f 72 74 20 6c 61 62 65 6c 2d 34 39 34 0d 0a  sort label-494..
16e80 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
16e90 2d 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  - - COUNT ( * ) 
16ea0 2a 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2b 20  * - + COUNT ( + 
16eb0 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 30  col2 ) FROM tab0
16ec0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
16ed0 2d 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  -9....onlyif mys
16ee0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
16ef0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
16f00 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
16f10 39 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  95..SELECT ALL -
16f20 20 2b 20 28 20 2b 20 53 55 4d 28 20 63 6f 6c 32   + ( + SUM( col2
16f30 20 29 20 29 20 2b 20 2b 20 43 4f 55 4e 54 28 20   ) ) + + COUNT( 
16f40 2a 20 29 20 2d 20 33 31 20 46 52 4f 4d 20 74 61  * ) - 31 FROM ta
16f50 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
16f60 0d 0a 2d 31 34 39 0d 0a 0d 0a 73 6b 69 70 69 66  ..-149....skipif
16f70 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
16f80 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
16f90 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
16fa0 39 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  95..SELECT ALL -
16fb0 20 2b 20 28 20 2b 20 53 55 4d 20 28 20 63 6f 6c   + ( + SUM ( col
16fc0 32 20 29 20 29 20 2b 20 2b 20 43 4f 55 4e 54 20  2 ) ) + + COUNT 
16fd0 28 20 2a 20 29 20 2d 20 33 31 20 46 52 4f 4d 20  ( * ) - 31 FROM 
16fe0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
16ff0 2d 2d 0d 0a 2d 31 34 39 0d 0a 0d 0a 6f 6e 6c 79  --..-149....only
17000 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
17010 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20  syntax: DECIMAL 
17020 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
17030 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 39  rowsort label-49
17040 36 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 2d 20  6..SELECT + ( - 
17050 63 6f 6c 32 20 29 20 2a 20 2d 20 39 31 20 2b 20  col2 ) * - 91 + 
17060 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  + CAST( NULL AS 
17070 44 45 43 49 4d 41 4c 20 29 20 46 52 4f 4d 20 74  DECIMAL ) FROM t
17080 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab1..----..NULL.
17090 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .NULL..NULL....s
170a0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
170b0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
170c0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
170d0 62 65 6c 2d 34 39 36 0d 0a 53 45 4c 45 43 54 20  bel-496..SELECT 
170e0 2b 20 28 20 2d 20 63 6f 6c 32 20 29 20 2a 20 2d  + ( - col2 ) * -
170f0 20 39 31 20 2b 20 2b 20 43 41 53 54 20 28 20 4e   91 + + CAST ( N
17100 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 46 52  ULL AS REAL ) FR
17110 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab1..----..N
17120 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
17130 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
17140 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63  rt..SELECT ALL c
17150 6f 6c 32 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 2d  ol2 + + col1 * -
17160 20 31 20 2a 20 63 6f 6c 31 20 41 53 20 63 6f 6c   1 * col1 AS col
17170 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  2 FROM tab1..---
17180 2d 0d 0a 2d 31 30 30 0d 0a 2d 32 31 34 31 0d 0a  -..-100..-2141..
17190 33 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  34....query III 
171a0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
171b0 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  * FROM tab2 WHER
171c0 45 20 2d 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 63  E - + col1 * + c
171d0 6f 6c 30 20 2d 20 2d 20 28 20 2d 20 35 39 20 29  ol0 - - ( - 59 )
171e0 20 2a 20 2b 20 2b 20 63 6f 6c 32 20 3e 3d 20 2b   * + + col2 >= +
171f0 20 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d   + col2..----...
17200 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
17210 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
17220 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
17230 6f 72 74 20 6c 61 62 65 6c 2d 34 39 39 0d 0a 53  ort label-499..S
17240 45 4c 45 43 54 20 2d 20 35 32 20 2a 20 2d 20 43  ELECT - 52 * - C
17250 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74  OUNT( * ) FROM t
17260 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
17270 45 20 36 38 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  E 68 IS NOT NULL
17280 0d 0a 2d 2d 2d 2d 0d 0a 31 35 36 0d 0a 0d 0a 73  ..----..156....s
17290 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
172a0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
172b0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
172c0 62 65 6c 2d 34 39 39 0d 0a 53 45 4c 45 43 54 20  bel-499..SELECT 
172d0 2d 20 35 32 20 2a 20 2d 20 43 4f 55 4e 54 20 28  - 52 * - COUNT (
172e0 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41   * ) FROM tab1 A
172f0 53 20 63 6f 72 30 20 57 48 45 52 45 20 36 38 20  S cor0 WHERE 68 
17300 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
17310 2d 0d 0a 31 35 36 0d 0a 0d 0a 71 75 65 72 79 20  -..156....query 
17320 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
17330 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
17340 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
17350 45 20 28 20 4e 4f 54 20 2d 20 2b 20 63 6f 6c 32  E ( NOT - + col2
17360 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 20 29 0d 0a   IS NOT NULL )..
17370 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
17380 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
17390 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79  ax: aggregate sy
173a0 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
173b0 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  e: ..query II ro
173c0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 30 31 0d  wsort label-501.
173d0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20  .SELECT ALL + + 
173e0 43 4f 55 4e 54 28 20 2a 20 29 2c 20 43 41 53 54  COUNT( * ), CAST
173f0 28 20 2b 20 2d 20 28 20 2b 20 35 20 29 20 41 53  ( + - ( + 5 ) AS
17400 20 53 49 47 4e 45 44 20 29 20 2a 20 2b 20 2d 20   SIGNED ) * + - 
17410 53 55 4d 28 20 2d 20 2b 20 63 6f 6c 32 20 29 20  SUM( - + col2 ) 
17420 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
17430 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  0 cor0..----..3.
17440 0a 2d 37 38 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  .-780....skipif 
17450 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
17460 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
17470 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
17480 30 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  01..SELECT ALL +
17490 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 2c 20   + COUNT ( * ), 
174a0 43 41 53 54 20 28 20 2b 20 2d 20 28 20 2b 20 35  CAST ( + - ( + 5
174b0 20 29 20 41 53 20 49 4e 54 45 47 45 52 20 29 20   ) AS INTEGER ) 
174c0 2a 20 2b 20 2d 20 53 55 4d 20 28 20 2d 20 2b 20  * + - SUM ( - + 
174d0 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 30 20 46  col2 ) AS col0 F
174e0 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d  ROM tab0 cor0..-
174f0 2d 2d 2d 0d 0a 33 0d 0a 2d 37 38 30 0d 0a 0d 0a  ---..3..-780....
17500 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
17510 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
17520 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
17530 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
17540 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
17550 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
17560 54 20 2d 20 2b 20 34 39 20 41 53 20 63 6f 6c 31  T - + 49 AS col1
17570 2c 20 34 30 20 2a 20 63 6f 6c 30 20 2a 20 63 6f  , 40 * col0 * co
17580 6c 30 20 2a 20 2d 20 2b 20 33 20 63 6f 6c 32 20  l0 * - + 3 col2 
17590 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
175a0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 39 0d 0a 2d 31  0..----..-49..-1
175b0 31 32 39 30 38 30 0d 0a 2d 34 39 0d 0a 2d 32 37  129080..-49..-27
175c0 30 30 30 0d 0a 2d 34 39 0d 0a 2d 39 30 38 32 38  000..-49..-90828
175d0 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  0....skipif post
175e0 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
175f0 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
17600 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
17610 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
17620 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
17630 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
17640 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 2b 20 63 6f   + col2 + - + co
17650 6c 31 20 2a 20 32 20 2a 20 2b 20 63 6f 6c 31 20  l1 * 2 * + col1 
17660 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
17670 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
17680 20 2b 20 28 20 2d 20 63 6f 6c 32 20 29 20 4e 4f   + ( - col2 ) NO
17690 54 20 49 4e 20 28 20 37 39 2c 20 2d 20 35 33 20  T IN ( 79, - 53 
176a0 2a 20 2b 20 2b 20 36 33 2c 20 2b 20 63 6f 6c 32  * + + 63, + col2
176b0 20 2b 20 63 6f 6c 31 20 2a 20 63 6f 6c 30 20 29   + col1 * col0 )
176c0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
176d0 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
176e0 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
176f0 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
17700 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
17710 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
17720 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
17730 4e 43 54 20 63 6f 6c 31 20 63 6f 6c 30 20 46 52  NCT col1 col0 FR
17740 4f 4d 20 74 61 62 31 20 63 6f 72 30 20 57 48 45  OM tab1 cor0 WHE
17750 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 31 20 2f 20  RE NOT + col1 / 
17760 63 6f 6c 31 20 3e 20 2d 20 37 35 0d 0a 2d 2d 2d  col1 > - 75..---
17770 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
17780 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
17790 54 49 4e 43 54 20 2b 20 35 30 20 2b 20 63 6f 6c  TINCT + 50 + col
177a0 30 20 2a 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30  0 * col1 AS col0
177b0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
177c0 0d 0a 34 33 32 37 0d 0a 34 37 35 0d 0a 37 36 34  ..4327..475..764
177d0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
177e0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
177f0 49 4e 43 54 20 2b 20 2d 20 63 6f 6c 31 20 46 52  INCT + - col1 FR
17800 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
17810 54 20 4e 55 4c 4c 20 3e 20 2b 20 2d 20 63 6f 6c  T NULL > + - col
17820 30 20 2b 20 2d 20 37 34 0d 0a 2d 2d 2d 2d 0d 0a  0 + - 74..----..
17830 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
17840 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
17850 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
17860 73 6f 72 74 20 6c 61 62 65 6c 2d 35 30 37 0d 0a  sort label-507..
17870 53 45 4c 45 43 54 20 53 55 4d 28 20 41 4c 4c 20  SELECT SUM( ALL 
17880 2b 20 34 33 20 29 20 2b 20 2d 20 43 4f 55 4e 54  + 43 ) + - COUNT
17890 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 0d  ( * ) FROM tab2.
178a0 0a 2d 2d 2d 2d 0d 0a 31 32 36 0d 0a 0d 0a 73 6b  .----..126....sk
178b0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
178c0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
178d0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
178e0 65 6c 2d 35 30 37 0d 0a 53 45 4c 45 43 54 20 53  el-507..SELECT S
178f0 55 4d 20 28 20 41 4c 4c 20 2b 20 34 33 20 29 20  UM ( ALL + 43 ) 
17900 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  + - COUNT ( * ) 
17910 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
17920 0a 31 32 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .126....query I 
17930 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
17940 41 4c 4c 20 31 37 20 2a 20 2b 20 63 6f 6c 30 20  ALL 17 * + col0 
17950 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
17960 31 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 28 20  1 WHERE NOT + ( 
17970 2b 20 63 6f 6c 31 20 29 20 2a 20 2b 20 31 34 20  + col1 ) * + 14 
17980 3d 20 2d 20 38 32 0d 0a 2d 2d 2d 2d 0d 0a 31 34  = - 82..----..14
17990 34 35 0d 0a 31 35 34 37 0d 0a 38 36 37 0d 0a 0d  45..1547..867...
179a0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
179b0 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
179c0 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
179d0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
179e0 6c 2d 35 30 39 0d 0a 53 45 4c 45 43 54 20 2d 20  l-509..SELECT - 
179f0 63 6f 6c 30 20 44 49 56 20 2b 20 28 20 2b 20 63  col0 DIV + ( + c
17a00 6f 6c 32 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ol2 ) AS col0 FR
17a10 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
17a20 57 48 45 52 45 20 2d 20 35 34 20 4e 4f 54 20 49  WHERE - 54 NOT I
17a30 4e 20 28 20 2d 20 63 6f 6c 30 2c 20 2d 20 63 6f  N ( - col0, - co
17a40 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 0d 0a  l0 )..----..-8..
17a50 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  0..0....skipif m
17a60 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
17a70 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
17a80 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 30 39  owsort label-509
17a90 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20  ..SELECT - col0 
17aa0 2f 20 2b 20 28 20 2b 20 63 6f 6c 32 20 29 20 41  / + ( + col2 ) A
17ab0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
17ac0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d   AS cor0 WHERE -
17ad0 20 35 34 20 4e 4f 54 20 49 4e 20 28 20 2d 20 63   54 NOT IN ( - c
17ae0 6f 6c 30 2c 20 2d 20 63 6f 6c 30 20 29 0d 0a 2d  ol0, - col0 )..-
17af0 2d 2d 2d 0d 0a 2d 38 0d 0a 30 0d 0a 30 0d 0a 0d  ---..-8..0..0...
17b00 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
17b10 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
17b20 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
17b30 48 45 52 45 20 4e 55 4c 4c 20 49 4e 20 28 20 34  HERE NULL IN ( 4
17b40 36 20 2a 20 63 6f 6c 30 2c 20 63 6f 6c 31 20 2a  6 * col0, col1 *
17b50 20 2b 20 38 37 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   + 87 )..----...
17b60 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
17b70 0d 0a 53 45 4c 45 43 54 20 2b 20 35 34 20 2b 20  ..SELECT + 54 + 
17b80 2d 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c  - + col2 + + col
17b90 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
17ba0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 31 0d 0a  or0..----..131..
17bb0 32 32 0d 0a 35 32 0d 0a 0d 0a 73 6b 69 70 69 66  22..52....skipif
17bc0 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
17bd0 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
17be0 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
17bf0 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
17c00 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
17c10 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
17c20 20 2b 20 63 6f 6c 31 20 2d 20 2b 20 33 36 20 63   + col1 - + 36 c
17c30 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
17c40 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31   cor0..----..-11
17c50 37 0d 0a 2d 33 37 0d 0a 2d 35 37 0d 0a 0d 0a 71  7..-37..-57....q
17c60 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
17c70 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
17c80 63 6f 6c 32 20 2a 20 2d 20 2d 20 38 39 20 2b 20  col2 * - - 89 + 
17c90 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  + col0 FROM tab2
17ca0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
17cb0 32 30 39 33 0d 0a 33 36 32 34 0d 0a 35 32 33 37  2093..3624..5237
17cc0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
17cd0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
17ce0 49 4e 43 54 20 37 39 20 41 53 20 63 6f 6c 31 20  INCT 79 AS col1 
17cf0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
17d00 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62  0 CROSS JOIN tab
17d10 30 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d  0 AS cor1..----.
17d20 0a 37 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .79....onlyif my
17d30 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
17d40 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20  syntax: DIV for 
17d50 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
17d60 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
17d70 6f 72 74 20 6c 61 62 65 6c 2d 35 31 35 0d 0a 53  ort label-515..S
17d80 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e  ELECT ALL - COUN
17d90 54 28 20 2a 20 29 20 44 49 56 20 2b 20 28 20 34  T( * ) DIV + ( 4
17da0 35 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  5 ) AS col2 FROM
17db0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
17dc0 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  ---..0....skipif
17dd0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
17de0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
17df0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
17e00 31 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  15..SELECT ALL -
17e10 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2f 20 2b   COUNT ( * ) / +
17e20 20 28 20 34 35 20 29 20 41 53 20 63 6f 6c 32 20   ( 45 ) AS col2 
17e30 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
17e40 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e  0..----..0....on
17e50 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
17e60 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
17e70 20 74 79 70 65 3a 20 44 49 56 20 66 6f 72 20 69   type: DIV for i
17e80 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
17e90 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
17ea0 72 74 20 6c 61 62 65 6c 2d 35 31 36 0d 0a 53 45  rt label-516..SE
17eb0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
17ec0 6c 32 20 44 49 56 20 2b 20 2d 20 63 6f 6c 31 20  l2 DIV + - col1 
17ed0 2d 20 2b 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f  - + - col0 AS co
17ee0 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l0 FROM tab0 cor
17ef0 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 43 41  0 WHERE NOT - CA
17f00 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
17f10 45 44 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  ED ) IS NOT NULL
17f20 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 31 35 0d 0a  ..----..-2..15..
17f30 38 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  87....skipif mys
17f40 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
17f50 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
17f60 73 6f 72 74 20 6c 61 62 65 6c 2d 35 31 36 0d 0a  sort label-516..
17f70 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
17f80 63 6f 6c 32 20 2f 20 2b 20 2d 20 63 6f 6c 31 20  col2 / + - col1 
17f90 2d 20 2b 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f  - + - col0 AS co
17fa0 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l0 FROM tab0 cor
17fb0 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 43 41  0 WHERE NOT - CA
17fc0 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
17fd0 45 47 45 52 20 29 20 49 53 20 4e 4f 54 20 4e 55  EGER ) IS NOT NU
17fe0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 31 35  LL..----..-2..15
17ff0 0d 0a 38 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..87....onlyif m
18000 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
18010 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
18020 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77   ..query III row
18030 73 6f 72 74 20 6c 61 62 65 6c 2d 35 31 37 0d 0a  sort label-517..
18040 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
18050 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  * FROM tab0 AS c
18060 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20  or0 WHERE NOT ( 
18070 4e 55 4c 4c 20 29 20 4e 4f 54 20 49 4e 20 28 20  NULL ) NOT IN ( 
18080 63 6f 6c 31 20 2b 20 2b 20 2b 20 43 41 53 54 28  col1 + + + CAST(
18090 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
180a0 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  ) )..----....ski
180b0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
180c0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
180d0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
180e0 62 65 6c 2d 35 31 37 0d 0a 53 45 4c 45 43 54 20  bel-517..SELECT 
180f0 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
18100 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
18110 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20  RE NOT ( NULL ) 
18120 4e 4f 54 20 49 4e 20 28 20 63 6f 6c 31 20 2b 20  NOT IN ( col1 + 
18130 2b 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  + + CAST ( NULL 
18140 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 0d 0a  AS INTEGER ) )..
18150 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
18160 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
18170 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
18180 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
18190 6c 2d 35 31 38 0d 0a 53 45 4c 45 43 54 20 44 49  l-518..SELECT DI
181a0 53 54 49 4e 43 54 20 43 4f 55 4e 54 28 20 2d 20  STINCT COUNT( - 
181b0 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 30 2c 20  col2 ) AS col0, 
181c0 39 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  9 AS col2 FROM t
181d0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
181e0 2d 0d 0a 33 0d 0a 39 0d 0a 0d 0a 73 6b 69 70 69  -..3..9....skipi
181f0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
18200 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
18210 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
18220 2d 35 31 38 0d 0a 53 45 4c 45 43 54 20 44 49 53  -518..SELECT DIS
18230 54 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 2d 20  TINCT COUNT ( - 
18240 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 30 2c 20  col2 ) AS col0, 
18250 39 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  9 AS col2 FROM t
18260 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
18270 2d 0d 0a 33 0d 0a 39 0d 0a 0d 0a 6f 6e 6c 79 69  -..3..9....onlyi
18280 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
18290 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
182a0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
182b0 61 62 65 6c 2d 35 31 39 0d 0a 53 45 4c 45 43 54  abel-519..SELECT
182c0 20 44 49 53 54 49 4e 43 54 20 2b 20 4d 49 4e 28   DISTINCT + MIN(
182d0 20 2b 20 2d 20 63 6f 6c 31 20 29 2c 20 35 20 41   + - col1 ), 5 A
182e0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
182f0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
18300 2d 37 37 0d 0a 35 0d 0a 0d 0a 73 6b 69 70 69 66  -77..5....skipif
18310 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
18320 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
18330 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
18340 35 31 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  519..SELECT DIST
18350 49 4e 43 54 20 2b 20 4d 49 4e 20 28 20 2b 20 2d  INCT + MIN ( + -
18360 20 63 6f 6c 31 20 29 2c 20 35 20 41 53 20 63 6f   col1 ), 5 AS co
18370 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
18380 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 37 0d  cor0..----..-77.
18390 0a 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .5....query I ro
183a0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
183b0 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 41 53  STINCT - col2 AS
183c0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
183d0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20  AS cor0 WHERE - 
183e0 63 6f 6c 32 20 42 45 54 57 45 45 4e 20 2d 20 2d  col2 BETWEEN - -
183f0 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 32 20 41   col2 * - col2 A
18400 4e 44 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 28 20  ND + col2 * + ( 
18410 2d 20 35 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  - 50 )..----....
18420 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
18430 0a 53 45 4c 45 43 54 20 41 4c 4c 20 32 38 20 41  .SELECT ALL 28 A
18440 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
18450 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 38 0d   cor0..----..28.
18460 0a 32 38 0d 0a 32 38 0d 0a 0d 0a 71 75 65 72 79  .28..28....query
18470 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
18480 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  LECT * FROM tab1
18490 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 2b 20 33   WHERE NOT - + 3
184a0 36 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  6 < NULL..----..
184b0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
184c0 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 28 20  t..SELECT + + ( 
184d0 2d 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61  - col1 ) FROM ta
184e0 62 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  b0 WHERE NOT NUL
184f0 4c 20 42 45 54 57 45 45 4e 20 63 6f 6c 32 20 41  L BETWEEN col2 A
18500 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  ND NULL..----...
18510 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
18520 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
18530 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
18540 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
18550 6c 2d 35 32 34 0d 0a 53 45 4c 45 43 54 20 44 49  l-524..SELECT DI
18560 53 54 49 4e 43 54 20 2d 20 32 32 20 44 49 56 20  STINCT - 22 DIV 
18570 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  - col1 FROM tab1
18580 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31 0d 0a 34 0d  ..----..0..1..4.
18590 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
185a0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
185b0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
185c0 74 20 6c 61 62 65 6c 2d 35 32 34 0d 0a 53 45 4c  t label-524..SEL
185d0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 32  ECT DISTINCT - 2
185e0 32 20 2f 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20  2 / - col1 FROM 
185f0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31  tab1..----..0..1
18600 0d 0a 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..4....onlyif my
18610 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
18620 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
18630 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
18640 35 32 35 0d 0a 53 45 4c 45 43 54 20 4d 49 4e 28  525..SELECT MIN(
18650 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 29 20 41 53   ALL - col1 ) AS
18660 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
18670 0a 2d 2d 2d 2d 0d 0a 2d 37 37 0d 0a 0d 0a 73 6b  .----..-77....sk
18680 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
18690 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
186a0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
186b0 65 6c 2d 35 32 35 0d 0a 53 45 4c 45 43 54 20 4d  el-525..SELECT M
186c0 49 4e 20 28 20 41 4c 4c 20 2d 20 63 6f 6c 31 20  IN ( ALL - col1 
186d0 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
186e0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 37 0d 0a  ab2..----..-77..
186f0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
18700 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32  t..SELECT - col2
18710 20 2b 20 2d 20 2b 20 63 6f 6c 30 20 41 53 20 63   + - + col0 AS c
18720 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol0 FROM tab2..-
18730 2d 2d 2d 0d 0a 2d 31 30 34 0d 0a 2d 31 33 33 0d  ---..-104..-133.
18740 0a 2d 36 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-69....query I 
18750 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
18760 2b 20 28 20 63 6f 6c 30 20 29 20 2a 20 63 6f 6c  + ( col0 ) * col
18770 31 20 2b 20 2d 20 2b 20 63 6f 6c 30 20 46 52 4f  1 + - + col0 FRO
18780 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 34  M tab1..----..34
18790 30 0d 0a 34 31 38 36 0d 0a 36 36 33 0d 0a 0d 0a  0..4186..663....
187a0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
187b0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63  ..SELECT ALL - c
187c0 6f 6c 30 20 41 53 20 63 6f 6c 32 2c 20 2d 20 63  ol0 AS col2, - c
187d0 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol0 AS col2 FROM
187e0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36   tab2..----..-46
187f0 0d 0a 2d 34 36 0d 0a 2d 36 34 0d 0a 2d 36 34 0d  ..-46..-64..-64.
18800 0a 2d 37 35 0d 0a 2d 37 35 0d 0a 0d 0a 71 75 65  .-75..-75....que
18810 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
18820 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
18830 62 31 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2d  b1 WHERE NOT ( -
18840 20 36 35 20 29 20 49 4e 20 28 20 2b 20 63 6f 6c   65 ) IN ( + col
18850 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  0 )..----..9 val
18860 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
18870 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64 62  6c0a4111b36d04db
18880 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64 0d  c811a11e4d54cad.
18890 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
188a0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
188b0 49 4e 43 54 20 33 32 2c 20 2d 20 63 6f 6c 30 20  INCT 32, - col0 
188c0 2d 20 35 39 20 41 53 20 63 6f 6c 32 20 46 52 4f  - 59 AS col2 FRO
188d0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
188e0 2d 2d 2d 2d 0d 0a 33 32 0d 0a 2d 31 31 30 0d 0a  ----..32..-110..
188f0 33 32 0d 0a 2d 31 34 34 0d 0a 33 32 0d 0a 2d 31  32..-144..32..-1
18900 35 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  50....query I ro
18910 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
18920 53 54 49 4e 43 54 20 2d 20 33 30 20 46 52 4f 4d  STINCT - 30 FROM
18930 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
18940 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29  ERE NOT ( NULL )
18950 20 42 45 54 57 45 45 4e 20 2b 20 63 6f 6c 30 20   BETWEEN + col0 
18960 41 4e 44 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d  AND - col1..----
18970 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
18980 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
18990 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74  tax: DIV for int
189a0 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
189b0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
189c0 74 20 6c 61 62 65 6c 2d 35 33 32 0d 0a 53 45 4c  t label-532..SEL
189d0 45 43 54 20 2b 20 2d 20 36 37 20 44 49 56 20 2d  ECT + - 67 DIV -
189e0 20 2b 20 4d 49 4e 28 20 63 6f 6c 32 20 29 20 41   + MIN( col2 ) A
189f0 53 20 63 6f 6c 30 2c 20 32 36 20 41 53 20 63 6f  S col0, 26 AS co
18a00 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
18a10 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 0d 0a 32  cor0..----..2..2
18a20 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  6....skipif mysq
18a30 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
18a40 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
18a50 73 6f 72 74 20 6c 61 62 65 6c 2d 35 33 32 0d 0a  sort label-532..
18a60 53 45 4c 45 43 54 20 2b 20 2d 20 36 37 20 2f 20  SELECT + - 67 / 
18a70 2d 20 2b 20 4d 49 4e 20 28 20 63 6f 6c 32 20 29  - + MIN ( col2 )
18a80 20 41 53 20 63 6f 6c 30 2c 20 32 36 20 41 53 20   AS col0, 26 AS 
18a90 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
18aa0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 0d  S cor0..----..2.
18ab0 0a 32 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .26....onlyif my
18ac0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
18ad0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
18ae0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
18af0 35 33 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  533..SELECT ALL 
18b00 2d 20 43 4f 55 4e 54 28 20 41 4c 4c 20 32 32 20  - COUNT( ALL 22 
18b10 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
18b20 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
18b30 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..-3....skipif 
18b40 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
18b50 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
18b60 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 33  rowsort label-53
18b70 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  3..SELECT ALL - 
18b80 43 4f 55 4e 54 20 28 20 41 4c 4c 20 32 32 20 29  COUNT ( ALL 22 )
18b90 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
18ba0 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
18bb0 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..-3....query I 
18bc0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
18bd0 44 49 53 54 49 4e 43 54 20 35 37 20 2b 20 63 6f  DISTINCT 57 + co
18be0 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l1 FROM tab0..--
18bf0 2d 2d 0d 0a 31 33 38 0d 0a 35 38 0d 0a 37 38 0d  --..138..58..78.
18c00 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
18c10 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
18c20 4e 43 54 20 28 20 39 35 20 29 20 41 53 20 63 6f  NCT ( 95 ) AS co
18c30 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
18c40 2d 2d 0d 0a 39 35 0d 0a 0d 0a 71 75 65 72 79 20  --..95....query 
18c50 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
18c60 54 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 2d 20 35  T - col0 + + - 5
18c70 39 20 2b 20 2b 20 28 20 2d 20 2d 20 28 20 34 37  9 + + ( - - ( 47
18c80 20 29 20 29 20 2a 20 2d 20 2d 20 34 20 41 53 20   ) ) * - - 4 AS 
18c90 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 57  col1 FROM tab1 W
18ca0 48 45 52 45 20 2b 20 2b 20 63 6f 6c 31 20 3e 3d  HERE + + col1 >=
18cb0 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   col0..----....o
18cc0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
18cd0 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
18ce0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
18cf0 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
18d00 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
18d10 6c 2d 35 33 37 0d 0a 53 45 4c 45 43 54 20 41 4c  l-537..SELECT AL
18d20 4c 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b  L + COUNT( * ) +
18d30 20 35 36 20 2a 20 43 41 53 54 28 20 4e 55 4c 4c   56 * CAST( NULL
18d40 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20   AS SIGNED ) AS 
18d50 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
18d60 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  ----..NULL....sk
18d70 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
18d80 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
18d90 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
18da0 65 6c 2d 35 33 37 0d 0a 53 45 4c 45 43 54 20 41  el-537..SELECT A
18db0 4c 4c 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29  LL + COUNT ( * )
18dc0 20 2b 20 35 36 20 2a 20 43 41 53 54 20 28 20 4e   + 56 * CAST ( N
18dd0 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
18de0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
18df0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b2..----..NULL..
18e00 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
18e10 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
18e20 43 54 20 39 32 20 2a 20 2d 20 63 6f 6c 31 20 2b  CT 92 * - col1 +
18e30 20 2b 20 32 38 20 41 53 20 63 6f 6c 30 20 46 52   + 28 AS col0 FR
18e40 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
18e50 31 32 36 30 0d 0a 2d 34 32 39 36 0d 0a 2d 34 33  1260..-4296..-43
18e60 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  2....query I row
18e70 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
18e80 54 49 4e 43 54 20 2b 20 37 37 20 2b 20 2d 20 2d  TINCT + 77 + - -
18e90 20 37 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53   71 FROM tab0 AS
18ea0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 38   cor0..----..148
18eb0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
18ec0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
18ed0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
18ee0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 34 30  owsort label-540
18ef0 0d 0a 53 45 4c 45 43 54 20 53 55 4d 28 20 41 4c  ..SELECT SUM( AL
18f00 4c 20 2b 20 31 35 20 29 20 46 52 4f 4d 20 74 61  L + 15 ) FROM ta
18f10 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
18f20 20 4e 55 4c 4c 20 3d 20 2d 20 28 20 28 20 2b 20   NULL = - ( ( + 
18f30 63 6f 6c 32 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a  col2 ) )..----..
18f40 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
18f50 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
18f60 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
18f70 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 34 30  owsort label-540
18f80 0d 0a 53 45 4c 45 43 54 20 53 55 4d 20 28 20 41  ..SELECT SUM ( A
18f90 4c 4c 20 2b 20 31 35 20 29 20 46 52 4f 4d 20 74  LL + 15 ) FROM t
18fa0 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
18fb0 45 20 4e 55 4c 4c 20 3d 20 2d 20 28 20 28 20 2b  E NULL = - ( ( +
18fc0 20 63 6f 6c 32 20 29 20 29 0d 0a 2d 2d 2d 2d 0d   col2 ) )..----.
18fd0 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
18fe0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
18ff0 20 41 4c 4c 20 2d 20 2d 20 63 6f 6c 30 20 2a 20   ALL - - col0 * 
19000 2b 20 39 39 20 2a 20 2b 20 2b 20 63 6f 6c 30 20  + 99 * + + col0 
19010 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
19020 30 0d 0a 2d 2d 2d 2d 0d 0a 32 32 32 37 35 0d 0a  0..----..22275..
19030 37 34 39 33 33 31 0d 0a 39 33 31 34 39 31 0d 0a  749331..931491..
19040 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
19050 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
19060 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
19070 57 48 45 52 45 20 4e 55 4c 4c 20 42 45 54 57 45  WHERE NULL BETWE
19080 45 4e 20 2d 20 35 35 20 41 4e 44 20 28 20 2d 20  EN - 55 AND ( - 
19090 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  col2 )..----....
190a0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
190b0 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 2b  .SELECT + col0 +
190c0 20 2b 20 35 33 20 41 53 20 63 6f 6c 32 20 46 52   + 53 AS col2 FR
190d0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
190e0 34 30 0d 0a 31 35 30 0d 0a 36 38 0d 0a 0d 0a 71  40..150..68....q
190f0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
19100 53 45 4c 45 43 54 20 2b 20 39 36 20 2a 20 33 20  SELECT + 96 * 3 
19110 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
19120 31 0d 0a 2d 2d 2d 2d 0d 0a 32 38 38 0d 0a 32 38  1..----..288..28
19130 38 0d 0a 32 38 38 0d 0a 0d 0a 71 75 65 72 79 20  8..288....query 
19140 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
19150 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  T DISTINCT + col
19160 30 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 2b 20 36  0 * - - col0 + 6
19170 31 20 2d 20 39 32 20 2b 20 63 6f 6c 30 20 2b 20  1 - 92 + col0 + 
19180 2d 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  - - col0 FROM ta
19190 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 36 37 32 0d 0a  b1..----..2672..
191a0 37 33 36 34 0d 0a 38 34 33 32 0d 0a 0d 0a 71 75  7364..8432....qu
191b0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
191c0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
191d0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
191e0 57 48 45 52 45 20 63 6f 6c 30 20 2a 20 2d 20 2d  WHERE col0 * - -
191f0 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c   col2 IS NOT NUL
19200 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  L..----..9 value
19210 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63  s hashing to 75c
19220 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62  998aa53ac83218cb
19230 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d  f2feb962d0a49...
19240 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
19250 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
19260 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
19270 73 6f 72 74 20 6c 61 62 65 6c 2d 35 34 37 0d 0a  sort label-547..
19280 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
19290 2b 20 33 35 20 2a 20 2d 20 2b 20 43 4f 55 4e 54  + 35 * - + COUNT
192a0 28 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 29 20 41  ( ALL - col1 ) A
192b0 53 20 63 6f 6c 30 2c 20 2b 20 43 4f 55 4e 54 28  S col0, + COUNT(
192c0 20 2a 20 29 20 2b 20 2d 20 2d 20 38 32 20 41 53   * ) + - - 82 AS
192d0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
192e0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 35  cor0..----..-105
192f0 0d 0a 38 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..85....skipif m
19300 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
19310 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
19320 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 34  rowsort label-54
19330 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  7..SELECT DISTIN
19340 43 54 20 2b 20 33 35 20 2a 20 2d 20 2b 20 43 4f  CT + 35 * - + CO
19350 55 4e 54 20 28 20 41 4c 4c 20 2d 20 63 6f 6c 31  UNT ( ALL - col1
19360 20 29 20 41 53 20 63 6f 6c 30 2c 20 2b 20 43 4f   ) AS col0, + CO
19370 55 4e 54 20 28 20 2a 20 29 20 2b 20 2d 20 2d 20  UNT ( * ) + - - 
19380 38 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  82 AS col1 FROM 
19390 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
193a0 0a 2d 31 30 35 0d 0a 38 35 0d 0a 0d 0a 6f 6e 6c  .-105..85....onl
193b0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
193c0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
193d0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
193e0 6c 61 62 65 6c 2d 35 34 38 0d 0a 53 45 4c 45 43  label-548..SELEC
193f0 54 20 2b 20 38 30 20 2a 20 2b 20 2b 20 35 32 20  T + 80 * + + 52 
19400 2b 20 53 55 4d 28 20 2b 20 2d 20 39 36 20 29 20  + SUM( + - 96 ) 
19410 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
19420 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
19430 0a 33 38 37 32 0d 0a 0d 0a 73 6b 69 70 69 66 20  .3872....skipif 
19440 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
19450 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
19460 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 34  rowsort label-54
19470 38 0d 0a 53 45 4c 45 43 54 20 2b 20 38 30 20 2a  8..SELECT + 80 *
19480 20 2b 20 2b 20 35 32 20 2b 20 53 55 4d 20 28 20   + + 52 + SUM ( 
19490 2b 20 2d 20 39 36 20 29 20 41 53 20 63 6f 6c 30  + - 96 ) AS col0
194a0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
194b0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 38 37 32 0d 0a  r0..----..3872..
194c0 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
194d0 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
194e0 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
194f0 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
19500 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
19510 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
19520 43 54 20 44 49 53 54 49 4e 43 54 20 39 37 20 2a  CT DISTINCT 97 *
19530 20 2d 20 2d 20 28 20 2b 20 63 6f 6c 31 20 29 20   - - ( + col1 ) 
19540 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
19550 2d 2d 2d 2d 0d 0a 32 30 33 37 0d 0a 37 38 35 37  ----..2037..7857
19560 0d 0a 39 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..97....query I 
19570 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
19580 41 4c 4c 20 2b 20 33 33 20 2a 20 2b 20 34 32 20  ALL + 33 * + 42 
19590 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
195a0 4e 4f 54 20 2b 20 2d 20 63 6f 6c 32 20 3e 20 4e  NOT + - col2 > N
195b0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ULL..----....onl
195c0 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
195d0 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
195e0 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
195f0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 35  rowsort label-55
19600 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f  1..SELECT ALL co
19610 6c 32 20 44 49 56 20 2b 20 2b 20 63 6f 6c 30 20  l2 DIV + + col0 
19620 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
19630 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .0..0..0....skip
19640 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
19650 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
19660 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
19670 2d 35 35 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -551..SELECT ALL
19680 20 63 6f 6c 32 20 2f 20 2b 20 2b 20 63 6f 6c 30   col2 / + + col0
19690 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
196a0 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 6f 6e 6c  ..0..0..0....onl
196b0 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
196c0 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
196d0 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
196e0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 35  rowsort label-55
196f0 32 0d 0a 53 45 4c 45 43 54 20 36 35 20 44 49 56  2..SELECT 65 DIV
19700 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   - col0 FROM tab
19710 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
19720 0a 2d 34 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69  .-4..0..0....ski
19730 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
19740 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
19750 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
19760 6c 2d 35 35 32 0d 0a 53 45 4c 45 43 54 20 36 35  l-552..SELECT 65
19770 20 2f 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74   / - col0 FROM t
19780 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
19790 2d 0d 0a 2d 34 0d 0a 30 0d 0a 30 0d 0a 0d 0a 6f  -..-4..0..0....o
197a0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
197b0 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
197c0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
197d0 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
197e0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
197f0 6c 2d 35 35 33 0d 0a 53 45 4c 45 43 54 20 41 4c  l-553..SELECT AL
19800 4c 20 43 41 53 54 28 20 4d 49 4e 28 20 2b 20 2d  L CAST( MIN( + -
19810 20 28 20 2d 20 63 6f 6c 30 20 29 20 29 20 41 53   ( - col0 ) ) AS
19820 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c   SIGNED ) AS col
19830 30 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  0 FROM tab1 cor0
19840 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 0d 0a 73 6b  ..----..51....sk
19850 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
19860 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
19870 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
19880 65 6c 2d 35 35 33 0d 0a 53 45 4c 45 43 54 20 41  el-553..SELECT A
19890 4c 4c 20 43 41 53 54 20 28 20 4d 49 4e 20 28 20  LL CAST ( MIN ( 
198a0 2b 20 2d 20 28 20 2d 20 63 6f 6c 30 20 29 20 29  + - ( - col0 ) )
198b0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53   AS INTEGER ) AS
198c0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
198d0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a  cor0..----..51..
198e0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
198f0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
19900 43 54 20 36 39 20 2a 20 2b 20 63 6f 6c 31 20 46  CT 69 * + col1 F
19910 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
19920 0d 0a 2d 2d 2d 2d 0d 0a 33 32 34 33 0d 0a 33 34  ..----..3243..34
19930 35 0d 0a 39 36 36 0d 0a 0d 0a 71 75 65 72 79 20  5..966....query 
19940 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
19950 54 20 41 4c 4c 20 2b 20 28 20 2b 20 2b 20 34 30  T ALL + ( + + 40
19960 20 29 20 2a 20 2b 20 63 6f 6c 30 20 2d 20 36 39   ) * + col0 - 69
19970 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
19980 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 34 31 31 0d 0a  r0..----..3411..
19990 33 38 31 31 0d 0a 35 33 31 0d 0a 0d 0a 6f 6e 6c  3811..531....onl
199a0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
199b0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
199c0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
199d0 20 6c 61 62 65 6c 2d 35 35 36 0d 0a 53 45 4c 45   label-556..SELE
199e0 43 54 20 41 4c 4c 20 2b 20 2b 20 43 4f 55 4e 54  CT ALL + + COUNT
199f0 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 2c 20 2b  ( * ) AS col2, +
19a00 20 28 20 2b 20 53 55 4d 28 20 44 49 53 54 49 4e   ( + SUM( DISTIN
19a10 43 54 20 63 6f 6c 31 20 29 20 29 20 41 53 20 63  CT col1 ) ) AS c
19a20 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
19a30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   cor0..----..3..
19a40 31 30 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  103....skipif my
19a50 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
19a60 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72  ible..query II r
19a70 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 35 36  owsort label-556
19a80 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b  ..SELECT ALL + +
19a90 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
19aa0 63 6f 6c 32 2c 20 2b 20 28 20 2b 20 53 55 4d 20  col2, + ( + SUM 
19ab0 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20  ( DISTINCT col1 
19ac0 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ) ) AS col1 FROM
19ad0 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
19ae0 2d 2d 2d 0d 0a 33 0d 0a 31 30 33 0d 0a 0d 0a 71  ---..3..103....q
19af0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
19b00 0a 53 45 4c 45 43 54 20 41 4c 4c 20 33 30 20 2a  .SELECT ALL 30 *
19b10 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 2c 20 2b   col0 AS col1, +
19b20 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
19b30 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
19b40 35 33 30 0d 0a 35 31 0d 0a 32 35 35 30 0d 0a 38  530..51..2550..8
19b50 35 0d 0a 32 37 33 30 0d 0a 39 31 0d 0a 0d 0a 71  5..2730..91....q
19b60 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
19b70 53 45 4c 45 43 54 20 2d 20 2d 20 28 20 2b 20 2d  SELECT - - ( + -
19b80 20 63 6f 6c 31 20 29 20 2b 20 2d 20 63 6f 6c 31   col1 ) + - col1
19b90 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 46 52 4f 4d   * - - col0 FROM
19ba0 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20   tab0 WHERE NOT 
19bb0 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  NULL IS NOT NULL
19bc0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 39 36 0d 0a 2d  ..----..-1296..-
19bd0 31 38 34 38 0d 0a 2d 39 38 0d 0a 0d 0a 6f 6e 6c  1848..-98....onl
19be0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
19bf0 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61   syntax: aggrega
19c00 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  te syntax: SIGNE
19c10 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
19c20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
19c30 35 35 39 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f  559..SELECT + CO
19c40 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20 34 34 20  UNT( * ) * + 44 
19c50 2a 20 2b 20 43 41 53 54 28 20 43 4f 55 4e 54 28  * + CAST( COUNT(
19c60 20 2a 20 29 20 41 53 20 53 49 47 4e 45 44 20 29   * ) AS SIGNED )
19c70 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
19c80 0d 0a 33 39 36 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..396....skipif 
19c90 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
19ca0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
19cb0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 35  rowsort label-55
19cc0 39 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e  9..SELECT + COUN
19cd0 54 20 28 20 2a 20 29 20 2a 20 2b 20 34 34 20 2a  T ( * ) * + 44 *
19ce0 20 2b 20 43 41 53 54 20 28 20 43 4f 55 4e 54 20   + CAST ( COUNT 
19cf0 28 20 2a 20 29 20 41 53 20 49 4e 54 45 47 45 52  ( * ) AS INTEGER
19d00 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d   ) FROM tab1..--
19d10 2d 2d 0d 0a 33 39 36 0d 0a 0d 0a 71 75 65 72 79  --..396....query
19d20 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
19d30 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
19d40 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
19d50 2d 20 37 37 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  - 77 IS NULL..--
19d60 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
19d70 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
19d80 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
19d90 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
19da0 36 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  61..SELECT DISTI
19db0 4e 43 54 20 2b 20 4d 49 4e 28 20 2d 20 2b 20 63  NCT + MIN( - + c
19dc0 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 30 20  ol2 ) FROM tab0 
19dd0 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 55  WHERE NULL IS NU
19de0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 39 0d 0a 0d  LL..----..-99...
19df0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
19e00 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
19e10 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
19e20 6c 61 62 65 6c 2d 35 36 31 0d 0a 53 45 4c 45 43  label-561..SELEC
19e30 54 20 44 49 53 54 49 4e 43 54 20 2b 20 4d 49 4e  T DISTINCT + MIN
19e40 20 28 20 2d 20 2b 20 63 6f 6c 32 20 29 20 46 52   ( - + col2 ) FR
19e50 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 55  OM tab0 WHERE NU
19e60 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  LL IS NULL..----
19e70 0d 0a 2d 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-99....onlyif 
19e80 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
19e90 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
19ea0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
19eb0 6c 2d 35 36 32 0d 0a 53 45 4c 45 43 54 20 41 4c  l-562..SELECT AL
19ec0 4c 20 2d 20 35 36 20 2b 20 43 4f 55 4e 54 28 20  L - 56 + COUNT( 
19ed0 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  * ) FROM tab0..-
19ee0 2d 2d 2d 0d 0a 2d 35 33 0d 0a 0d 0a 73 6b 69 70  ---..-53....skip
19ef0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
19f00 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
19f10 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
19f20 2d 35 36 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -562..SELECT ALL
19f30 20 2d 20 35 36 20 2b 20 43 4f 55 4e 54 20 28 20   - 56 + COUNT ( 
19f40 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  * ) FROM tab0..-
19f50 2d 2d 2d 0d 0a 2d 35 33 0d 0a 0d 0a 6f 6e 6c 79  ---..-53....only
19f60 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
19f70 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
19f80 79 70 65 3a 20 44 49 56 20 66 6f 72 20 69 6e 74  ype: DIV for int
19f90 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
19fa0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
19fb0 20 6c 61 62 65 6c 2d 35 36 33 0d 0a 53 45 4c 45   label-563..SELE
19fc0 43 54 20 44 49 53 54 49 4e 43 54 20 43 41 53 54  CT DISTINCT CAST
19fd0 28 20 35 31 20 41 53 20 53 49 47 4e 45 44 20 29  ( 51 AS SIGNED )
19fe0 20 44 49 56 20 2d 20 63 6f 6c 32 20 41 53 20 63   DIV - col2 AS c
19ff0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
1a000 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 35 0d 0a 30 0d 0a  ---..-1..-5..0..
1a010 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1a020 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1a030 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1a040 20 6c 61 62 65 6c 2d 35 36 33 0d 0a 53 45 4c 45   label-563..SELE
1a050 43 54 20 44 49 53 54 49 4e 43 54 20 43 41 53 54  CT DISTINCT CAST
1a060 20 28 20 35 31 20 41 53 20 49 4e 54 45 47 45 52   ( 51 AS INTEGER
1a070 20 29 20 2f 20 2d 20 63 6f 6c 32 20 41 53 20 63   ) / - col2 AS c
1a080 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
1a090 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 35 0d 0a 30 0d 0a  ---..-1..-5..0..
1a0a0 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
1a0b0 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
1a0c0 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
1a0d0 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
1a0e0 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
1a0f0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1a100 43 54 20 41 4c 4c 20 28 20 2d 20 63 6f 6c 30 20  CT ALL ( - col0 
1a110 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  ) col0 FROM tab2
1a120 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a 2d 36 34  ..----..-46..-64
1a130 0d 0a 2d 37 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-75....onlyif 
1a140 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
1a150 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
1a160 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
1a170 73 6f 72 74 20 6c 61 62 65 6c 2d 35 36 35 0d 0a  sort label-565..
1a180 53 45 4c 45 43 54 20 2d 20 43 41 53 54 28 20 63  SELECT - CAST( c
1a190 6f 6c 32 20 41 53 20 53 49 47 4e 45 44 20 29 20  ol2 AS SIGNED ) 
1a1a0 63 6f 6c 32 2c 20 2d 20 63 6f 6c 31 20 46 52 4f  col2, - col1 FRO
1a1b0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  M tab2..----..-2
1a1c0 33 0d 0a 2d 35 31 0d 0a 2d 34 30 0d 0a 2d 37 37  3..-51..-40..-77
1a1d0 0d 0a 2d 35 38 0d 0a 2d 36 37 0d 0a 0d 0a 73 6b  ..-58..-67....sk
1a1e0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1a1f0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69   compatible..ski
1a200 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
1a210 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
1a220 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
1a230 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
1a240 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72  umns..query II r
1a250 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 36 35  owsort label-565
1a260 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53 54 20  ..SELECT - CAST 
1a270 28 20 63 6f 6c 32 20 41 53 20 49 4e 54 45 47 45  ( col2 AS INTEGE
1a280 52 20 29 20 63 6f 6c 32 2c 20 2d 20 63 6f 6c 31  R ) col2, - col1
1a290 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
1a2a0 0d 0a 2d 32 33 0d 0a 2d 35 31 0d 0a 2d 34 30 0d  ..-23..-51..-40.
1a2b0 0a 2d 37 37 0d 0a 2d 35 38 0d 0a 2d 36 37 0d 0a  .-77..-58..-67..
1a2c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1a2d0 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 46  t..SELECT col2 F
1a2e0 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e  ROM tab1 WHERE N
1a2f0 4f 54 20 2b 20 38 36 20 49 53 20 4e 55 4c 4c 0d  OT + 86 IS NULL.
1a300 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 36 38 0d 0a 39  .----..59..68..9
1a310 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  6....query I row
1a320 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
1a330 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20 41 53 20  TINCT + col2 AS 
1a340 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 57  col2 FROM tab0 W
1a350 48 45 52 45 20 4e 4f 54 20 2b 20 35 37 20 2b 20  HERE NOT + 57 + 
1a360 2d 20 63 6f 6c 31 20 49 4e 20 28 20 2d 20 63 6f  - col1 IN ( - co
1a370 6c 30 2c 20 63 6f 6c 31 2c 20 2d 20 2b 20 63 6f  l0, col1, - + co
1a380 6c 30 20 2f 20 2b 20 39 38 20 2b 20 2d 20 63 6f  l0 / + 98 + - co
1a390 6c 31 20 2a 20 2d 20 32 30 20 29 0d 0a 2d 2d 2d  l1 * - 20 )..---
1a3a0 2d 0d 0a 31 30 0d 0a 34 37 0d 0a 39 39 0d 0a 0d  -..10..47..99...
1a3b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1a3c0 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20  ..SELECT - col0 
1a3d0 2a 20 2b 20 37 39 20 41 53 20 63 6f 6c 32 20 46  * + 79 AS col2 F
1a3e0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1a3f0 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 30 32 39 0d 0a 2d  ..----..-4029..-
1a400 36 37 31 35 0d 0a 2d 37 31 38 39 0d 0a 0d 0a 71  6715..-7189....q
1a410 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1a420 53 45 4c 45 43 54 20 35 30 20 46 52 4f 4d 20 74  SELECT 50 FROM t
1a430 61 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f 53  ab1 AS cor0 CROS
1a440 53 20 4a 4f 49 4e 20 74 61 62 32 20 63 6f 72 31  S JOIN tab2 cor1
1a450 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
1a460 20 68 61 73 68 69 6e 67 20 74 6f 20 64 65 61 32   hashing to dea2
1a470 64 31 62 37 34 65 30 63 64 66 36 37 38 30 36 61  d1b74e0cdf67806a
1a480 66 38 63 34 31 37 33 32 34 66 35 32 0d 0a 0d 0a  f8c417324f52....
1a490 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1a4a0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1a4b0 20 2b 20 35 30 20 46 52 4f 4d 20 74 61 62 32 20   + 50 FROM tab2 
1a4c0 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
1a4d0 49 4e 20 74 61 62 31 20 41 53 20 63 6f 72 31 0d  IN tab1 AS cor1.
1a4e0 0a 2d 2d 2d 2d 0d 0a 35 30 0d 0a 0d 0a 71 75 65  .----..50....que
1a4f0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1a500 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
1a510 63 6f 6c 31 20 2b 20 2d 20 32 34 20 41 53 20 63  col1 + - 24 AS c
1a520 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
1a530 2d 2d 2d 0d 0a 2d 32 33 0d 0a 2d 33 0d 0a 35 37  ---..-23..-3..57
1a540 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1a550 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
1a560 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1a570 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
1a580 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1a590 20 6c 61 62 65 6c 2d 35 37 32 0d 0a 53 45 4c 45   label-572..SELE
1a5a0 43 54 20 2b 20 2b 20 43 41 53 54 28 20 4e 55 4c  CT + + CAST( NUL
1a5b0 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20  L AS SIGNED ) + 
1a5c0 2d 20 28 20 43 4f 55 4e 54 28 20 2a 20 29 20 29  - ( COUNT( * ) )
1a5d0 20 46 52 4f 4d 20 28 20 74 61 62 31 20 41 53 20   FROM ( tab1 AS 
1a5e0 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
1a5f0 74 61 62 30 20 41 53 20 63 6f 72 31 20 29 0d 0a  tab0 AS cor1 )..
1a600 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  ----..NULL....sk
1a610 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1a620 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1a630 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1a640 65 6c 2d 35 37 32 0d 0a 53 45 4c 45 43 54 20 2b  el-572..SELECT +
1a650 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   + CAST ( NULL A
1a660 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20 2d 20  S INTEGER ) + - 
1a670 28 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29 20  ( COUNT ( * ) ) 
1a680 46 52 4f 4d 20 28 20 74 61 62 31 20 41 53 20 63  FROM ( tab1 AS c
1a690 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
1a6a0 61 62 30 20 41 53 20 63 6f 72 31 20 29 0d 0a 2d  ab0 AS cor1 )..-
1a6b0 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65  ---..NULL....que
1a6c0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1a6d0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
1a6e0 6c 32 20 2b 20 34 39 20 46 52 4f 4d 20 74 61 62  l2 + 49 FROM tab
1a6f0 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 38 0d 0a 35 39  0..----..148..59
1a700 0d 0a 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..96....onlyif m
1a710 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
1a720 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
1a730 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
1a740 6f 72 74 20 6c 61 62 65 6c 2d 35 37 34 0d 0a 53  ort label-574..S
1a750 45 4c 45 43 54 20 2d 20 2b 20 32 35 20 41 53 20  ELECT - + 25 AS 
1a760 63 6f 6c 30 2c 20 2b 20 43 41 53 54 28 20 4e 55  col0, + CAST( NU
1a770 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 46  LL AS SIGNED ) F
1a780 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
1a790 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35 0d 0a 4e 55 4c  ..----..-25..NUL
1a7a0 4c 0d 0a 2d 32 35 0d 0a 4e 55 4c 4c 0d 0a 2d 32  L..-25..NULL..-2
1a7b0 35 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  5..NULL....skipi
1a7c0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1a7d0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
1a7e0 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
1a7f0 2d 35 37 34 0d 0a 53 45 4c 45 43 54 20 2d 20 2b  -574..SELECT - +
1a800 20 32 35 20 41 53 20 63 6f 6c 30 2c 20 2b 20 43   25 AS col0, + C
1a810 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
1a820 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62  TEGER ) FROM tab
1a830 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
1a840 0a 2d 32 35 0d 0a 4e 55 4c 4c 0d 0a 2d 32 35 0d  .-25..NULL..-25.
1a850 0a 4e 55 4c 4c 0d 0a 2d 32 35 0d 0a 4e 55 4c 4c  .NULL..-25..NULL
1a860 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1a870 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
1a880 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
1a890 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 37 35  owsort label-575
1a8a0 0d 0a 53 45 4c 45 43 54 20 2d 20 53 55 4d 28 20  ..SELECT - SUM( 
1a8b0 31 32 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41  12 ) FROM tab0 A
1a8c0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  S cor0..----..-3
1a8d0 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  6....skipif mysq
1a8e0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1a8f0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1a900 6f 72 74 20 6c 61 62 65 6c 2d 35 37 35 0d 0a 53  ort label-575..S
1a910 45 4c 45 43 54 20 2d 20 53 55 4d 20 28 20 31 32  ELECT - SUM ( 12
1a920 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
1a930 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 36 0d  cor0..----..-36.
1a940 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1a950 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63  rt..SELECT ALL c
1a960 6f 6c 31 20 2a 20 2d 20 2d 20 37 36 20 46 52 4f  ol1 * - - 76 FRO
1a970 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
1a980 2d 2d 2d 2d 0d 0a 31 30 36 34 0d 0a 33 35 37 32  ----..1064..3572
1a990 0d 0a 33 38 30 0d 0a 0d 0a 71 75 65 72 79 20 49  ..380....query I
1a9a0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1a9b0 54 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30  T + col0 AS col0
1a9c0 2c 20 2d 20 39 32 20 41 53 20 63 6f 6c 31 20 46  , - 92 AS col1 F
1a9d0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
1a9e0 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 2d 39 32 0d  ..----..46..-92.
1a9f0 0a 36 34 0d 0a 2d 39 32 0d 0a 37 35 0d 0a 2d 39  .64..-92..75..-9
1aa00 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  2....onlyif mysq
1aa10 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
1aa20 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
1aa30 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1aa40 6c 61 62 65 6c 2d 35 37 38 0d 0a 53 45 4c 45 43  label-578..SELEC
1aa50 54 20 41 4c 4c 20 2b 20 28 20 63 6f 6c 32 20 29  T ALL + ( col2 )
1aa60 20 2d 20 2d 20 38 36 20 44 49 56 20 63 6f 6c 30   - - 86 DIV col0
1aa70 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
1aa80 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 34 0d 0a 34 31  r0..----..24..41
1aa90 0d 0a 35 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..59....skipif m
1aaa0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1aab0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1aac0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 37 38  owsort label-578
1aad0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 28  ..SELECT ALL + (
1aae0 20 63 6f 6c 32 20 29 20 2d 20 2d 20 38 36 20 2f   col2 ) - - 86 /
1aaf0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
1ab00 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  AS cor0..----..2
1ab10 34 0d 0a 34 31 0d 0a 35 39 0d 0a 0d 0a 71 75 65  4..41..59....que
1ab20 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1ab30 4c 45 43 54 20 2d 20 2b 20 63 6f 6c 31 20 2d 20  LECT - + col1 - 
1ab40 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  - col1 FROM tab1
1ab50 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1ab60 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79  0..0..0....query
1ab70 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1ab80 43 54 20 41 4c 4c 20 2d 20 39 33 20 2a 20 2b 20  CT ALL - 93 * + 
1ab90 63 6f 6c 30 20 2d 20 2b 20 2b 20 38 20 2b 20 2b  col0 - + + 8 + +
1aba0 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52   col2 AS col2 FR
1abb0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
1abc0 0a 2d 2d 2d 2d 0d 0a 2d 34 36 35 35 0d 0a 2d 37  .----..-4655..-7
1abd0 38 35 34 0d 0a 2d 38 34 30 33 0d 0a 0d 0a 73 6b  854..-8403....sk
1abe0 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
1abf0 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
1ac00 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
1ac10 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
1ac20 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20  lumns..query II 
1ac30 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1ac40 41 4c 4c 20 2b 20 63 6f 6c 31 20 63 6f 6c 31 2c  ALL + col1 col1,
1ac50 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   - col2 FROM tab
1ac60 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
1ac70 0a 31 0d 0a 2d 39 39 0d 0a 32 31 0d 0a 2d 31 30  .1..-99..21..-10
1ac80 0d 0a 38 31 0d 0a 2d 34 37 0d 0a 0d 0a 71 75 65  ..81..-47....que
1ac90 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
1aca0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1acb0 2a 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  * FROM tab1 cor0
1acc0 20 57 48 45 52 45 20 2b 20 32 35 20 2d 20 2b 20   WHERE + 25 - + 
1acd0 2b 20 39 33 20 3c 3e 20 2d 20 2b 20 63 6f 6c 32  + 93 <> - + col2
1ace0 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 31 34 0d 0a  ..----..51..14..
1acf0 39 36 0d 0a 38 35 0d 0a 35 0d 0a 35 39 0d 0a 0d  96..85..5..59...
1ad00 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1ad10 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
1ad20 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
1ad30 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1ad40 6c 2d 35 38 33 0d 0a 53 45 4c 45 43 54 20 44 49  l-583..SELECT DI
1ad50 53 54 49 4e 43 54 20 43 41 53 54 28 20 2b 20 2d  STINCT CAST( + -
1ad60 20 32 35 20 41 53 20 53 49 47 4e 45 44 20 29 20   25 AS SIGNED ) 
1ad70 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
1ad80 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35 0d 0a 0d 0a  2..----..-25....
1ad90 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1ada0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1adb0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1adc0 61 62 65 6c 2d 35 38 33 0d 0a 53 45 4c 45 43 54  abel-583..SELECT
1add0 20 44 49 53 54 49 4e 43 54 20 43 41 53 54 20 28   DISTINCT CAST (
1ade0 20 2b 20 2d 20 32 35 20 41 53 20 49 4e 54 45 47   + - 25 AS INTEG
1adf0 45 52 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  ER ) AS col2 FRO
1ae00 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  M tab2..----..-2
1ae10 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  5....query III r
1ae20 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
1ae30 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
1ae40 20 37 20 2a 20 63 6f 6c 31 20 2f 20 2d 20 2d 20   7 * col1 / - - 
1ae50 28 20 2d 20 38 35 20 29 20 49 53 20 4e 55 4c 4c  ( - 85 ) IS NULL
1ae60 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
1ae70 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
1ae80 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
1ae90 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
1aea0 73 6f 72 74 20 6c 61 62 65 6c 2d 35 38 35 0d 0a  sort label-585..
1aeb0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1aec0 2d 20 63 6f 6c 32 20 2b 20 2b 20 28 20 43 41 53  - col2 + + ( CAS
1aed0 54 28 20 2d 20 37 38 20 41 53 20 53 49 47 4e 45  T( - 78 AS SIGNE
1aee0 44 20 29 20 29 20 2b 20 2b 20 63 6f 6c 31 20 46  D ) ) + + col1 F
1aef0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
1af00 2d 31 37 36 0d 0a 2d 34 34 0d 0a 2d 36 37 0d 0a  -176..-44..-67..
1af10 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1af20 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1af30 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1af40 20 6c 61 62 65 6c 2d 35 38 35 0d 0a 53 45 4c 45   label-585..SELE
1af50 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f  CT DISTINCT - co
1af60 6c 32 20 2b 20 2b 20 28 20 43 41 53 54 20 28 20  l2 + + ( CAST ( 
1af70 2d 20 37 38 20 41 53 20 49 4e 54 45 47 45 52 20  - 78 AS INTEGER 
1af80 29 20 29 20 2b 20 2b 20 63 6f 6c 31 20 46 52 4f  ) ) + + col1 FRO
1af90 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab0..----..-1
1afa0 37 36 0d 0a 2d 34 34 0d 0a 2d 36 37 0d 0a 0d 0a  76..-44..-67....
1afb0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1afc0 0a 53 45 4c 45 43 54 20 2b 20 39 34 20 2b 20 2b  .SELECT + 94 + +
1afd0 20 63 6f 6c 32 20 2a 20 2b 20 34 39 20 46 52 4f   col2 * + 49 FRO
1afe0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 32  M tab2..----..12
1aff0 32 31 0d 0a 32 30 35 34 0d 0a 32 39 33 36 0d 0a  21..2054..2936..
1b000 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1b010 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
1b020 2d 20 34 31 20 41 53 20 63 6f 6c 32 20 46 52 4f  - 41 AS col2 FRO
1b030 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
1b040 20 63 6f 6c 31 20 2f 20 2d 20 38 39 20 2b 20 2b   col1 / - 89 + +
1b050 20 63 6f 6c 32 20 3d 20 2d 20 63 6f 6c 31 20 2a   col2 = - col1 *
1b060 20 2b 20 39 30 0d 0a 2d 2d 2d 2d 0d 0a 34 31 0d   + 90..----..41.
1b070 0a 34 31 0d 0a 34 31 0d 0a 0d 0a 71 75 65 72 79  .41..41....query
1b080 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1b090 43 54 20 41 4c 4c 20 28 20 2d 20 2b 20 63 6f 6c  CT ALL ( - + col
1b0a0 30 20 29 20 2a 20 2d 20 63 6f 6c 31 20 2b 20 63  0 ) * - col1 + c
1b0b0 6f 6c 31 20 2b 20 2d 20 63 6f 6c 30 20 2d 20 63  ol1 + - col0 - c
1b0c0 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol2 AS col2 FROM
1b0d0 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
1b0e0 45 52 45 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 2b  ERE - col0 + - +
1b0f0 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c   col1 IS NOT NUL
1b100 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 38 36 0d 0a 34 31  L..----..286..41
1b110 36 35 0d 0a 35 38 31 0d 0a 0d 0a 71 75 65 72 79  65..581....query
1b120 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1b130 43 54 20 41 4c 4c 20 2d 20 28 20 2b 20 2b 20 63  CT ALL - ( + + c
1b140 6f 6c 31 20 29 20 2a 20 63 6f 6c 30 20 2a 20 2b  ol1 ) * col0 * +
1b150 20 39 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72   9 FROM tab2 cor
1b160 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 31 31 34 0d  0..----..-21114.
1b170 0a 2d 34 34 33 35 32 0d 0a 2d 34 35 32 32 35 0d  .-44352..-45225.
1b180 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
1b190 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
1b1a0 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
1b1b0 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
1b1c0 63 6f 6c 31 20 3c 3d 20 2d 20 63 6f 6c 31 0d 0a  col1 <= - col1..
1b1d0 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
1b1e0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
1b1f0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
1b200 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1b210 2d 35 39 31 0d 0a 53 45 4c 45 43 54 20 2d 20 2b  -591..SELECT - +
1b220 20 4d 49 4e 28 20 44 49 53 54 49 4e 43 54 20 2d   MIN( DISTINCT -
1b230 20 2d 20 31 39 20 29 20 46 52 4f 4d 20 74 61 62   - 19 ) FROM tab
1b240 31 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 35 30  1 WHERE NOT + 50
1b250 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
1b260 2d 31 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -19....skipif my
1b270 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1b280 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1b290 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 39 31 0d  wsort label-591.
1b2a0 0a 53 45 4c 45 43 54 20 2d 20 2b 20 4d 49 4e 20  .SELECT - + MIN 
1b2b0 28 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 31  ( DISTINCT - - 1
1b2c0 39 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57 48  9 ) FROM tab1 WH
1b2d0 45 52 45 20 4e 4f 54 20 2b 20 35 30 20 49 53 20  ERE NOT + 50 IS 
1b2e0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 0d  NULL..----..-19.
1b2f0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1b300 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
1b310 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
1b320 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
1b330 6c 61 62 65 6c 2d 35 39 32 0d 0a 53 45 4c 45 43  label-592..SELEC
1b340 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  T * FROM tab2 WH
1b350 45 52 45 20 4e 4f 54 20 2b 20 43 41 53 54 28 20  ERE NOT + CAST( 
1b360 63 6f 6c 31 20 41 53 20 53 49 47 4e 45 44 20 29  col1 AS SIGNED )
1b370 20 42 45 54 57 45 45 4e 20 2d 20 2b 20 63 6f 6c   BETWEEN - + col
1b380 31 20 41 4e 44 20 2d 20 28 20 2b 20 63 6f 6c 32  1 AND - ( + col2
1b390 20 29 20 2a 20 37 31 0d 0a 2d 2d 2d 2d 0d 0a 39   ) * 71..----..9
1b3a0 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
1b3b0 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38  to 75c998aa53ac8
1b3c0 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30  3218cbf2feb962d0
1b3d0 61 34 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  a49....skipif my
1b3e0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1b3f0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20  ible..query III 
1b400 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 39  rowsort label-59
1b410 32 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  2..SELECT * FROM
1b420 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20   tab2 WHERE NOT 
1b430 2b 20 43 41 53 54 20 28 20 63 6f 6c 31 20 41 53  + CAST ( col1 AS
1b440 20 49 4e 54 45 47 45 52 20 29 20 42 45 54 57 45   INTEGER ) BETWE
1b450 45 4e 20 2d 20 2b 20 63 6f 6c 31 20 41 4e 44 20  EN - + col1 AND 
1b460 2d 20 28 20 2b 20 63 6f 6c 32 20 29 20 2a 20 37  - ( + col2 ) * 7
1b470 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  1..----..9 value
1b480 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63  s hashing to 75c
1b490 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62  998aa53ac83218cb
1b4a0 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d  f2feb962d0a49...
1b4b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1b4c0 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 37 34 20  ..SELECT + - 74 
1b4d0 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 43  FROM tab0 cor0 C
1b4e0 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41  ROSS JOIN tab2 A
1b4f0 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20  S cor1..----..9 
1b500 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
1b510 6f 20 35 61 35 36 37 39 34 37 64 31 34 35 39 33  o 5a567947d14593
1b520 36 37 36 65 33 38 32 35 37 35 36 66 38 65 36 31  676e3825756f8e61
1b530 33 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  30....onlyif mys
1b540 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
1b550 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
1b560 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1b570 20 6c 61 62 65 6c 2d 35 39 34 0d 0a 53 45 4c 45   label-594..SELE
1b580 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31  CT DISTINCT col1
1b590 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 63 6f 6c 31   + + col2 * col1
1b5a0 20 2f 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20   / + CAST( NULL 
1b5b0 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2d 20  AS SIGNED ) * - 
1b5c0 28 20 2d 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20  ( - col2 ) FROM 
1b5d0 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2b  tab1 WHERE NOT +
1b5e0 20 43 41 53 54 28 20 2d 20 63 6f 6c 30 20 41 53   CAST( - col0 AS
1b5f0 20 53 49 47 4e 45 44 20 29 20 2b 20 2b 20 63 6f   SIGNED ) + + co
1b600 6c 32 20 2a 20 2d 20 63 6f 6c 31 20 49 53 20 4e  l2 * - col1 IS N
1b610 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  OT NULL..----...
1b620 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1b630 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1b640 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1b650 6c 61 62 65 6c 2d 35 39 34 0d 0a 53 45 4c 45 43  label-594..SELEC
1b660 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20  T DISTINCT col1 
1b670 2b 20 2b 20 63 6f 6c 32 20 2a 20 63 6f 6c 31 20  + + col2 * col1 
1b680 2f 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  / + CAST ( NULL 
1b690 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2d  AS INTEGER ) * -
1b6a0 20 28 20 2d 20 63 6f 6c 32 20 29 20 46 52 4f 4d   ( - col2 ) FROM
1b6b0 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20   tab1 WHERE NOT 
1b6c0 2b 20 43 41 53 54 20 28 20 2d 20 63 6f 6c 30 20  + CAST ( - col0 
1b6d0 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20 2b  AS INTEGER ) + +
1b6e0 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 31 20 49   col2 * - col1 I
1b6f0 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
1b700 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
1b710 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
1b720 49 4e 43 54 20 2d 20 2b 20 28 20 2b 20 63 6f 6c  INCT - + ( + col
1b730 30 20 29 20 2a 20 2d 20 2b 20 33 20 41 53 20 63  0 ) * - + 3 AS c
1b740 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
1b750 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 36 31   cor0..----..261
1b760 0d 0a 32 39 31 0d 0a 34 35 0d 0a 0d 0a 71 75 65  ..291..45....que
1b770 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1b780 4c 45 43 54 20 2d 20 2b 20 63 6f 6c 32 20 2a 20  LECT - + col2 * 
1b790 2b 20 2b 20 33 32 20 46 52 4f 4d 20 74 61 62 30  + + 32 FROM tab0
1b7a0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1b7b0 2d 31 35 30 34 0d 0a 2d 33 31 36 38 0d 0a 2d 33  -1504..-3168..-3
1b7c0 32 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  20....query I ro
1b7d0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
1b7e0 2d 20 63 6f 6c 30 20 2a 20 2d 20 2b 20 38 33 20  - col0 * - + 83 
1b7f0 2d 20 2d 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20  - - - col2 FROM 
1b800 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
1b810 2d 2d 0d 0a 2d 31 32 39 32 0d 0a 2d 37 32 33 31  --..-1292..-7231
1b820 0d 0a 2d 38 31 35 30 0d 0a 0d 0a 71 75 65 72 79  ..-8150....query
1b830 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1b840 43 54 20 41 4c 4c 20 2d 20 38 37 20 2a 20 2b 20  CT ALL - 87 * + 
1b850 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 63  col2 FROM tab2 c
1b860 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30 30 31  or0..----..-2001
1b870 0d 0a 2d 33 34 38 30 0d 0a 2d 35 30 34 36 0d 0a  ..-3480..-5046..
1b880 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1b890 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
1b8a0 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67  x: DIV for integ
1b8b0 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
1b8c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1b8d0 61 62 65 6c 2d 35 39 39 0d 0a 53 45 4c 45 43 54  abel-599..SELECT
1b8e0 20 2d 20 38 20 44 49 56 20 43 4f 55 4e 54 28 20   - 8 DIV COUNT( 
1b8f0 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  * ) FROM tab0 AS
1b900 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 0d   cor0..----..-2.
1b910 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1b920 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1b930 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1b940 74 20 6c 61 62 65 6c 2d 35 39 39 0d 0a 53 45 4c  t label-599..SEL
1b950 45 43 54 20 2d 20 38 20 2f 20 43 4f 55 4e 54 20  ECT - 8 / COUNT 
1b960 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20  ( * ) FROM tab0 
1b970 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
1b980 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  2....query I row
1b990 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
1b9a0 20 2b 20 34 31 20 2a 20 2d 20 63 6f 6c 32 20 2d   + 41 * - col2 -
1b9b0 20 2b 20 28 20 35 38 20 29 20 46 52 4f 4d 20 74   + ( 58 ) FROM t
1b9c0 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
1b9d0 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 49  E NOT ( NULL ) I
1b9e0 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  S NULL..----....
1b9f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1ba00 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1ba10 20 2d 20 33 20 2b 20 2d 20 2d 20 63 6f 6c 32 20   - 3 + - - col2 
1ba20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
1ba30 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
1ba40 0a 32 30 0d 0a 33 37 0d 0a 35 35 0d 0a 0d 0a 71  .20..37..55....q
1ba50 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
1ba60 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 2c 20  .SELECT + col2, 
1ba70 39 35 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45  95 FROM tab2 WHE
1ba80 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 30 20 49 53  RE NOT - col0 IS
1ba90 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d   NULL..----..23.
1baa0 0a 39 35 0d 0a 34 30 0d 0a 39 35 0d 0a 35 38 0d  .95..40..95..58.
1bab0 0a 39 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .95....onlyif my
1bac0 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
1bad0 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
1bae0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1baf0 74 20 6c 61 62 65 6c 2d 36 30 33 0d 0a 53 45 4c  t label-603..SEL
1bb00 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  ECT DISTINCT col
1bb10 31 20 44 49 56 20 2d 20 2d 20 38 33 20 2a 20 34  1 DIV - - 83 * 4
1bb20 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  2 FROM tab2..---
1bb30 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..0....skipif m
1bb40 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1bb50 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1bb60 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 30 33  owsort label-603
1bb70 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1bb80 54 20 63 6f 6c 31 20 2f 20 2d 20 2d 20 38 33 20  T col1 / - - 83 
1bb90 2a 20 34 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  * 42 FROM tab2..
1bba0 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69  ----..0....onlyi
1bbb0 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
1bbc0 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
1bbd0 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
1bbe0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 30 34 0d  wsort label-604.
1bbf0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1bc00 20 2d 20 63 6f 6c 31 20 44 49 56 20 2b 20 35 35   - col1 DIV + 55
1bc10 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
1bc20 0d 0a 2d 31 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  ..-1..0....skipi
1bc30 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1bc40 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
1bc50 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1bc60 36 30 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  604..SELECT DIST
1bc70 49 4e 43 54 20 2d 20 63 6f 6c 31 20 2f 20 2b 20  INCT - col1 / + 
1bc80 35 35 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  55 FROM tab2..--
1bc90 2d 2d 0d 0a 2d 31 0d 0a 30 0d 0a 0d 0a 71 75 65  --..-1..0....que
1bca0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
1bcb0 45 4c 45 43 54 20 28 20 2d 20 2b 20 63 6f 6c 30  ELECT ( - + col0
1bcc0 20 29 2c 20 31 33 20 2b 20 2b 20 35 32 20 41 53   ), 13 + + 52 AS
1bcd0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
1bce0 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49  WHERE NOT NULL I
1bcf0 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  S NULL..----....
1bd00 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
1bd10 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
1bd20 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
1bd30 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1bd40 2d 36 30 36 0d 0a 53 45 4c 45 43 54 20 44 49 53  -606..SELECT DIS
1bd50 54 49 4e 43 54 20 2d 20 43 41 53 54 28 20 2b 20  TINCT - CAST( + 
1bd60 2d 20 36 39 20 41 53 20 53 49 47 4e 45 44 20 29  - 69 AS SIGNED )
1bd70 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c   + - col2 AS col
1bd80 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
1bd90 2d 0d 0a 2d 33 30 0d 0a 32 32 0d 0a 35 39 0d 0a  -..-30..22..59..
1bda0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1bdb0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1bdc0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1bdd0 20 6c 61 62 65 6c 2d 36 30 36 0d 0a 53 45 4c 45   label-606..SELE
1bde0 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43 41  CT DISTINCT - CA
1bdf0 53 54 20 28 20 2b 20 2d 20 36 39 20 41 53 20 49  ST ( + - 69 AS I
1be00 4e 54 45 47 45 52 20 29 20 2b 20 2d 20 63 6f 6c  NTEGER ) + - col
1be10 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  2 AS col1 FROM t
1be20 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 30 0d 0a  ab0..----..-30..
1be30 32 32 0d 0a 35 39 0d 0a 0d 0a 71 75 65 72 79 20  22..59....query 
1be40 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
1be50 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
1be60 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
1be70 4f 54 20 2b 20 2d 20 63 6f 6c 30 20 2f 20 2b 20  OT + - col0 / + 
1be80 63 6f 6c 31 20 3c 3d 20 2d 20 2d 20 63 6f 6c 31  col1 <= - - col1
1be90 20 2b 20 2b 20 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d   + + + col2..---
1bea0 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
1beb0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 39  sort..SELECT + 9
1bec0 39 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c  9 + col2 + + col
1bed0 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  2 AS col2 FROM t
1bee0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 39 0d 0a  ab0..----..119..
1bef0 31 39 33 0d 0a 32 39 37 0d 0a 0d 0a 73 6b 69 70  193..297....skip
1bf00 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
1bf10 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
1bf20 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
1bf30 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
1bf40 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
1bf50 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 34 35 20  sort..SELECT 45 
1bf60 2b 20 2b 20 2b 20 35 39 20 63 6f 6c 32 20 46 52  + + + 59 col2 FR
1bf70 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab1..----..1
1bf80 30 34 0d 0a 31 30 34 0d 0a 31 30 34 0d 0a 0d 0a  04..104..104....
1bf90 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1bfa0 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2a  .SELECT - col0 *
1bfb0 20 2b 20 36 39 20 2b 20 34 33 20 46 52 4f 4d 20   + 69 + 43 FROM 
1bfc0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39 36  tab0..----..-596
1bfd0 30 0d 0a 2d 36 36 35 30 0d 0a 2d 39 39 32 0d 0a  0..-6650..-992..
1bfe0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1bff0 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
1c000 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
1c010 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1c020 65 6c 2d 36 31 31 0d 0a 53 45 4c 45 43 54 20 41  el-611..SELECT A
1c030 4c 4c 20 2b 20 2b 20 63 6f 6c 31 20 44 49 56 20  LL + + col1 DIV 
1c040 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f  col2 AS col1 FRO
1c050 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
1c060 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d  ----..0..0..0...
1c070 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1c080 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1c090 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1c0a0 6c 61 62 65 6c 2d 36 31 31 0d 0a 53 45 4c 45 43  label-611..SELEC
1c0b0 54 20 41 4c 4c 20 2b 20 2b 20 63 6f 6c 31 20 2f  T ALL + + col1 /
1c0c0 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52   col2 AS col1 FR
1c0d0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
1c0e0 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a  .----..0..0..0..
1c0f0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
1c100 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
1c110 4e 43 54 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f  NCT - col2 AS co
1c120 6c 32 2c 20 63 6f 6c 30 20 2a 20 2d 20 34 33 20  l2, col0 * - 43 
1c130 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a  FROM tab1 cor0..
1c140 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a 2d 33 36 35 35  ----..-59..-3655
1c150 0d 0a 2d 36 38 0d 0a 2d 33 39 31 33 0d 0a 2d 39  ..-68..-3913..-9
1c160 36 0d 0a 2d 32 31 39 33 0d 0a 0d 0a 6f 6e 6c 79  6..-2193....only
1c170 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
1c180 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74  syntax: aggregat
1c190 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  e syntax: SIGNED
1c1a0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
1c1b0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1c1c0 31 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  13..SELECT ALL -
1c1d0 20 4d 49 4e 28 20 44 49 53 54 49 4e 43 54 20 2d   MIN( DISTINCT -
1c1e0 20 2b 20 63 6f 6c 31 20 29 20 2b 20 2d 20 38 31   + col1 ) + - 81
1c1f0 20 2d 20 2b 20 2d 20 43 41 53 54 28 20 4e 55 4c   - + - CAST( NUL
1c200 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52  L AS SIGNED ) FR
1c210 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab1..----..N
1c220 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
1c230 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1c240 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1c250 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 31 33 0d  wsort label-613.
1c260 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 4d 49  .SELECT ALL - MI
1c270 4e 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 2b  N ( DISTINCT - +
1c280 20 63 6f 6c 31 20 29 20 2b 20 2d 20 38 31 20 2d   col1 ) + - 81 -
1c290 20 2b 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c   + - CAST ( NULL
1c2a0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52   AS INTEGER ) FR
1c2b0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab1..----..N
1c2c0 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ULL....query I r
1c2d0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
1c2e0 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 2b 20 2b  ISTINCT col2 + +
1c2f0 20 2d 20 31 38 20 46 52 4f 4d 20 74 61 62 30 0d   - 18 FROM tab0.
1c300 0a 2d 2d 2d 2d 0d 0a 2d 38 0d 0a 32 39 0d 0a 38  .----..-8..29..8
1c310 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
1c320 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
1c330 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
1c340 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1c350 6c 61 62 65 6c 2d 36 31 35 0d 0a 53 45 4c 45 43  label-615..SELEC
1c360 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 44 49 56  T ALL + col1 DIV
1c370 20 63 6f 6c 32 20 2b 20 2b 20 31 37 20 2a 20 2d   col2 + + 17 * -
1c380 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   + col1 FROM tab
1c390 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 33 38 0d 0a  2..----..-1138..
1c3a0 2d 31 33 30 38 0d 0a 2d 38 36 35 0d 0a 0d 0a 73  -1308..-865....s
1c3b0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1c3c0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1c3d0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1c3e0 62 65 6c 2d 36 31 35 0d 0a 53 45 4c 45 43 54 20  bel-615..SELECT 
1c3f0 41 4c 4c 20 2b 20 63 6f 6c 31 20 2f 20 63 6f 6c  ALL + col1 / col
1c400 32 20 2b 20 2b 20 31 37 20 2a 20 2d 20 2b 20 63  2 + + 17 * - + c
1c410 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
1c420 2d 2d 2d 0d 0a 2d 31 31 33 38 0d 0a 2d 31 33 30  ---..-1138..-130
1c430 38 0d 0a 2d 38 36 35 0d 0a 0d 0a 71 75 65 72 79  8..-865....query
1c440 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
1c450 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
1c460 20 57 48 45 52 45 20 28 20 2b 20 32 33 20 2a 20   WHERE ( + 23 * 
1c470 2b 20 28 20 2d 20 31 32 20 29 20 29 20 3c 20 2d  + ( - 12 ) ) < -
1c480 20 28 20 2b 20 2b 20 38 36 20 29 20 2a 20 2b 20   ( + + 86 ) * + 
1c490 35 20 2a 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 63  5 * + col0 + + c
1c4a0 6f 6c 31 20 2b 20 37 0d 0a 2d 2d 2d 2d 0d 0a 0d  ol1 + 7..----...
1c4b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1c4c0 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 37 39 20  ..SELECT - + 79 
1c4d0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
1c4e0 30 20 57 48 45 52 45 20 2b 20 63 6f 6c 30 20 49  0 WHERE + col0 I
1c4f0 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  S NULL..----....
1c500 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
1c510 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 41 53  ..SELECT col2 AS
1c520 20 63 6f 6c 30 2c 20 28 20 2d 20 63 6f 6c 31 20   col0, ( - col1 
1c530 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
1c540 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
1c550 45 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a  E NULL IS NULL..
1c560 2d 2d 2d 2d 0d 0a 32 33 0d 0a 2d 35 31 0d 0a 34  ----..23..-51..4
1c570 30 0d 0a 2d 37 37 0d 0a 35 38 0d 0a 2d 36 37 0d  0..-77..58..-67.
1c580 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1c590 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
1c5a0 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
1c5b0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
1c5c0 6c 61 62 65 6c 2d 36 31 39 0d 0a 53 45 4c 45 43  label-619..SELEC
1c5d0 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53  T * FROM tab1 AS
1c5e0 20 63 6f 72 30 20 57 48 45 52 45 20 43 41 53 54   cor0 WHERE CAST
1c5f0 28 20 2b 20 2d 20 28 20 2d 20 2b 20 63 6f 6c 32  ( + - ( - + col2
1c600 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 49   ) AS SIGNED ) I
1c610 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  S NULL..----....
1c620 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1c630 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1c640 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
1c650 20 6c 61 62 65 6c 2d 36 31 39 0d 0a 53 45 4c 45   label-619..SELE
1c660 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41  CT * FROM tab1 A
1c670 53 20 63 6f 72 30 20 57 48 45 52 45 20 43 41 53  S cor0 WHERE CAS
1c680 54 20 28 20 2b 20 2d 20 28 20 2d 20 2b 20 63 6f  T ( + - ( - + co
1c690 6c 32 20 29 20 41 53 20 49 4e 54 45 47 45 52 20  l2 ) AS INTEGER 
1c6a0 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  ) IS NULL..----.
1c6b0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1c6c0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61  # CAST syntax: a
1c6d0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
1c6e0 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
1c6f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1c700 6c 61 62 65 6c 2d 36 32 30 0d 0a 53 45 4c 45 43  label-620..SELEC
1c710 54 20 2b 20 2d 20 36 30 20 2a 20 2d 20 43 41 53  T + - 60 * - CAS
1c720 54 28 20 28 20 2b 20 38 32 20 29 20 41 53 20 53  T( ( + 82 ) AS S
1c730 49 47 4e 45 44 20 29 20 2a 20 43 4f 55 4e 54 28  IGNED ) * COUNT(
1c740 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41   * ) FROM tab1 A
1c750 53 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c  S cor0 WHERE col
1c760 31 20 2b 20 2b 20 2d 20 37 39 20 49 53 20 4e 55  1 + + - 79 IS NU
1c770 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73  LL..----..0....s
1c780 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1c790 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1c7a0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1c7b0 62 65 6c 2d 36 32 30 0d 0a 53 45 4c 45 43 54 20  bel-620..SELECT 
1c7c0 2b 20 2d 20 36 30 20 2a 20 2d 20 43 41 53 54 20  + - 60 * - CAST 
1c7d0 28 20 28 20 2b 20 38 32 20 29 20 41 53 20 49 4e  ( ( + 82 ) AS IN
1c7e0 54 45 47 45 52 20 29 20 2a 20 43 4f 55 4e 54 20  TEGER ) * COUNT 
1c7f0 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20  ( * ) FROM tab1 
1c800 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f  AS cor0 WHERE co
1c810 6c 31 20 2b 20 2b 20 2d 20 37 39 20 49 53 20 4e  l1 + + - 79 IS N
1c820 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  ULL..----..0....
1c830 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
1c840 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1c850 54 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 2c 20  T col0 AS col1, 
1c860 36 38 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  68 FROM tab0..--
1c870 2d 2d 0d 0a 31 35 0d 0a 36 38 0d 0a 38 37 0d 0a  --..15..68..87..
1c880 36 38 0d 0a 39 37 0d 0a 36 38 0d 0a 0d 0a 71 75  68..97..68....qu
1c890 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1c8a0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
1c8b0 20 63 6f 6c 31 20 2a 20 2b 20 2b 20 63 6f 6c 32   col1 * + + col2
1c8c0 20 2d 20 2d 20 2d 20 35 32 20 2b 20 38 37 20 41   - - - 52 + 87 A
1c8d0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
1c8e0 20 57 48 45 52 45 20 63 6f 6c 31 20 4e 4f 54 20   WHERE col1 NOT 
1c8f0 42 45 54 57 45 45 4e 20 2b 20 2b 20 63 6f 6c 32  BETWEEN + + col2
1c900 20 41 4e 44 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d   AND + col0..---
1c910 2d 0d 0a 31 33 37 39 0d 0a 33 32 33 31 0d 0a 33  -..1379..3231..3
1c920 33 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  30....query II r
1c930 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
1c940 20 38 34 20 41 53 20 63 6f 6c 30 2c 20 2d 20 63   84 AS col0, - c
1c950 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol2 AS col1 FROM
1c960 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 34   tab1..----..-84
1c970 0d 0a 2d 35 39 0d 0a 2d 38 34 0d 0a 2d 36 38 0d  ..-59..-84..-68.
1c980 0a 2d 38 34 0d 0a 2d 39 36 0d 0a 0d 0a 71 75 65  .-84..-96....que
1c990 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
1c9a0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
1c9b0 20 34 36 2c 20 63 6f 6c 32 20 41 53 20 63 6f 6c   46, col2 AS col
1c9c0 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
1c9d0 2d 0d 0a 2d 34 36 0d 0a 31 30 0d 0a 2d 34 36 0d  -..-46..10..-46.
1c9e0 0a 34 37 0d 0a 2d 34 36 0d 0a 39 39 0d 0a 0d 0a  .47..-46..99....
1c9f0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
1ca00 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49  AST syntax: DECI
1ca10 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  MAL type: ..quer
1ca20 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
1ca30 65 6c 2d 36 32 35 0d 0a 53 45 4c 45 43 54 20 2b  el-625..SELECT +
1ca40 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44   CAST( NULL AS D
1ca50 45 43 49 4d 41 4c 20 29 2c 20 2d 20 34 30 20 2a  ECIMAL ), - 40 *
1ca60 20 2d 20 2d 20 63 6f 6c 30 20 63 6f 6c 31 20 46   - - col0 col1 F
1ca70 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
1ca80 4e 55 4c 4c 0d 0a 2d 31 38 34 30 0d 0a 4e 55 4c  NULL..-1840..NUL
1ca90 4c 0d 0a 2d 32 35 36 30 0d 0a 4e 55 4c 4c 0d 0a  L..-2560..NULL..
1caa0 2d 33 30 30 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  -3000....skipif 
1cab0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1cac0 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70  atible..skipif p
1cad0 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
1cae0 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
1caf0 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
1cb00 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
1cb10 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
1cb20 74 20 6c 61 62 65 6c 2d 36 32 35 0d 0a 53 45 4c  t label-625..SEL
1cb30 45 43 54 20 2b 20 43 41 53 54 20 28 20 4e 55 4c  ECT + CAST ( NUL
1cb40 4c 20 41 53 20 52 45 41 4c 20 29 2c 20 2d 20 34  L AS REAL ), - 4
1cb50 30 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 63 6f 6c  0 * - - col0 col
1cb60 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
1cb70 2d 0d 0a 4e 55 4c 4c 0d 0a 2d 31 38 34 30 0d 0a  -..NULL..-1840..
1cb80 4e 55 4c 4c 0d 0a 2d 32 35 36 30 0d 0a 4e 55 4c  NULL..-2560..NUL
1cb90 4c 0d 0a 2d 33 30 30 30 0d 0a 0d 0a 6f 6e 6c 79  L..-3000....only
1cba0 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
1cbb0 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
1cbc0 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
1cbd0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32 36  owsort label-626
1cbe0 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20  ..SELECT - col2 
1cbf0 44 49 56 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f  DIV + - col0 FRO
1cc00 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab2..----..0.
1cc10 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  .0..0....skipif 
1cc20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1cc30 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1cc40 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32  rowsort label-62
1cc50 36 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32  6..SELECT - col2
1cc60 20 2f 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d   / + - col0 FROM
1cc70 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   tab2..----..0..
1cc80 30 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  0..0....onlyif m
1cc90 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
1cca0 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
1ccb0 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77   ..query III row
1ccc0 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32 37 0d 0a  sort label-627..
1ccd0 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
1cce0 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 2b  b0 WHERE NOT + +
1ccf0 20 32 35 20 3e 3d 20 35 32 20 2a 20 2b 20 39 37   25 >= 52 * + 97
1cd00 20 2d 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20   - + CAST( NULL 
1cd10 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 63 6f  AS SIGNED ) + co
1cd20 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70  l2..----....skip
1cd30 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1cd40 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1cd50 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62   III rowsort lab
1cd60 65 6c 2d 36 32 37 0d 0a 53 45 4c 45 43 54 20 2a  el-627..SELECT *
1cd70 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
1cd80 20 4e 4f 54 20 2b 20 2b 20 32 35 20 3e 3d 20 35   NOT + + 25 >= 5
1cd90 32 20 2a 20 2b 20 39 37 20 2d 20 2b 20 43 41 53  2 * + 97 - + CAS
1cda0 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
1cdb0 47 45 52 20 29 20 2b 20 63 6f 6c 32 0d 0a 2d 2d  GER ) + col2..--
1cdc0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
1cdd0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 36 37  wsort..SELECT 67
1cde0 20 2a 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74   * + col0 FROM t
1cdf0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 34 31 37 0d  ab1..----..3417.
1ce00 0a 35 36 39 35 0d 0a 36 30 39 37 0d 0a 0d 0a 71  .5695..6097....q
1ce10 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
1ce20 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
1ce30 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1ce40 20 57 48 45 52 45 20 2b 20 63 6f 6c 30 20 49 4e   WHERE + col0 IN
1ce50 20 28 20 2d 20 35 39 2c 20 2b 20 63 6f 6c 31 20   ( - 59, + col1 
1ce60 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  )..----....skipi
1ce70 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
1ce80 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
1ce90 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
1cea0 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
1ceb0 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ns..query II row
1cec0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63  sort..SELECT - c
1ced0 6f 6c 30 20 63 6f 6c 31 2c 20 33 38 20 46 52 4f  ol0 col1, 38 FRO
1cee0 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab2 cor0..---
1cef0 2d 0d 0a 2d 34 36 0d 0a 33 38 0d 0a 2d 36 34 0d  -..-46..38..-64.
1cf00 0a 33 38 0d 0a 2d 37 35 0d 0a 33 38 0d 0a 0d 0a  .38..-75..38....
1cf10 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1cf20 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1cf30 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
1cf40 57 48 45 52 45 20 4e 4f 54 20 2b 20 2d 20 63 6f  WHERE NOT + - co
1cf50 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l0 IS NULL..----
1cf60 0d 0a 32 33 0d 0a 34 30 0d 0a 35 38 0d 0a 0d 0a  ..23..40..58....
1cf70 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1cf80 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2b  .SELECT + col1 +
1cf90 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   - col0 FROM tab
1cfa0 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
1cfb0 4e 4f 54 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 2b  NOT + col2 + - +
1cfc0 20 63 6f 6c 30 20 49 4e 20 28 20 2b 20 63 6f 6c   col0 IN ( + col
1cfd0 32 20 2a 20 2d 20 28 20 2b 20 2b 20 63 6f 6c 30  2 * - ( + + col0
1cfe0 20 29 2c 20 2d 20 63 6f 6c 31 2c 20 2b 20 63 6f   ), - col1, + co
1cff0 6c 30 2c 20 28 20 2b 20 2d 20 63 6f 6c 32 20 29  l0, ( + - col2 )
1d000 20 2a 20 2d 20 36 32 2c 20 2b 20 2b 20 63 6f 6c   * - 62, + + col
1d010 31 20 2b 20 2d 20 63 6f 6c 32 20 29 0d 0a 2d 2d  1 + - col2 )..--
1d020 2d 2d 0d 0a 2d 38 0d 0a 31 33 0d 0a 35 0d 0a 0d  --..-8..13..5...
1d030 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1d040 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1d050 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1d060 6f 72 74 20 6c 61 62 65 6c 2d 36 33 33 0d 0a 53  ort label-633..S
1d070 45 4c 45 43 54 20 2b 20 28 20 2b 20 43 4f 55 4e  ELECT + ( + COUN
1d080 54 28 20 2a 20 29 20 29 20 2a 20 2b 20 43 4f 55  T( * ) ) * + COU
1d090 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  NT( * ) FROM tab
1d0a0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
1d0b0 0a 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .9....skipif mys
1d0c0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1d0d0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1d0e0 73 6f 72 74 20 6c 61 62 65 6c 2d 36 33 33 0d 0a  sort label-633..
1d0f0 53 45 4c 45 43 54 20 2b 20 28 20 2b 20 43 4f 55  SELECT + ( + COU
1d100 4e 54 20 28 20 2a 20 29 20 29 20 2a 20 2b 20 43  NT ( * ) ) * + C
1d110 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20  OUNT ( * ) FROM 
1d120 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
1d130 2d 2d 0d 0a 39 0d 0a 0d 0a 71 75 65 72 79 20 49  --..9....query I
1d140 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1d150 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41  CT * FROM tab2 A
1d160 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
1d170 20 2b 20 63 6f 6c 31 20 4e 4f 54 20 42 45 54 57   + col1 NOT BETW
1d180 45 45 4e 20 2b 20 63 6f 6c 32 20 2a 20 63 6f 6c  EEN + col2 * col
1d190 32 20 2a 20 63 6f 6c 31 20 41 4e 44 20 2d 20 2d  2 * col1 AND - -
1d1a0 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 30 20 2f   col1 + + col0 /
1d1b0 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d   - col1..----...
1d1c0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1d1d0 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43  CAST syntax: DEC
1d1e0 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65  IMAL type: ..que
1d1f0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1d200 65 6c 2d 36 33 35 0d 0a 53 45 4c 45 43 54 20 2d  el-635..SELECT -
1d210 20 38 36 20 2a 20 43 41 53 54 28 20 4e 55 4c 4c   86 * CAST( NULL
1d220 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20 2b 20   AS DECIMAL ) + 
1d230 2b 20 33 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  + 3 AS col1 FROM
1d240 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
1d250 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
1d260 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
1d270 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1d280 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1d290 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 33  rowsort label-63
1d2a0 35 0d 0a 53 45 4c 45 43 54 20 2d 20 38 36 20 2a  5..SELECT - 86 *
1d2b0 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
1d2c0 52 45 41 4c 20 29 20 2b 20 2b 20 33 20 41 53 20  REAL ) + + 3 AS 
1d2d0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
1d2e0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
1d2f0 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
1d300 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
1d310 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
1d320 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  INCT * FROM tab1
1d330 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d   AS cor0 WHERE -
1d340 20 63 6f 6c 31 20 2b 20 34 30 20 2b 20 63 6f 6c   col1 + 40 + col
1d350 31 20 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  1 = NULL..----..
1d360 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
1d370 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
1d380 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
1d390 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
1d3a0 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
1d3b0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1d3c0 43 54 20 2d 20 2b 20 63 6f 6c 32 20 2a 20 2b 20  CT - + col2 * + 
1d3d0 2d 20 63 6f 6c 31 20 63 6f 6c 31 20 46 52 4f 4d  - col1 col1 FROM
1d3e0 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
1d3f0 0d 0a 31 31 37 33 0d 0a 33 30 38 30 0d 0a 33 38  ..1173..3080..38
1d400 38 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  86....onlyif mys
1d410 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
1d420 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
1d430 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1d440 36 33 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  638..SELECT ALL 
1d450 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2d  - COUNT( * ) * -
1d460 20 33 30 2c 20 38 20 41 53 20 63 6f 6c 32 20 46   30, 8 AS col2 F
1d470 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1d480 0d 0a 2d 2d 2d 2d 0d 0a 39 30 0d 0a 38 0d 0a 0d  ..----..90..8...
1d490 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1d4a0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1d4b0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
1d4c0 20 6c 61 62 65 6c 2d 36 33 38 0d 0a 53 45 4c 45   label-638..SELE
1d4d0 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 20 28  CT ALL - COUNT (
1d4e0 20 2a 20 29 20 2a 20 2d 20 33 30 2c 20 38 20 41   * ) * - 30, 8 A
1d4f0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
1d500 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1d510 39 30 0d 0a 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  90..8....onlyif 
1d520 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
1d530 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
1d540 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1d550 6c 2d 36 33 39 0d 0a 53 45 4c 45 43 54 20 2d 20  l-639..SELECT - 
1d560 2b 20 28 20 2b 20 4d 41 58 28 20 41 4c 4c 20 2b  + ( + MAX( ALL +
1d570 20 2b 20 63 6f 6c 31 20 29 20 29 20 41 53 20 63   + col1 ) ) AS c
1d580 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  ol2 FROM tab0 co
1d590 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 31 0d 0a 0d  r0..----..-81...
1d5a0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1d5b0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1d5c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1d5d0 6c 61 62 65 6c 2d 36 33 39 0d 0a 53 45 4c 45 43  label-639..SELEC
1d5e0 54 20 2d 20 2b 20 28 20 2b 20 4d 41 58 20 28 20  T - + ( + MAX ( 
1d5f0 41 4c 4c 20 2b 20 2b 20 63 6f 6c 31 20 29 20 29  ALL + + col1 ) )
1d600 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
1d610 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b0 cor0..----..-
1d620 38 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  81....query I ro
1d630 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
1d640 63 6f 6c 31 20 2a 20 2b 20 2d 20 63 6f 6c 32 20  col1 * + - col2 
1d650 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
1d660 32 0d 0a 2d 2d 2d 2d 0d 0a 31 31 37 33 0d 0a 33  2..----..1173..3
1d670 30 38 30 0d 0a 33 38 38 36 0d 0a 0d 0a 71 75 65  080..3886....que
1d680 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1d690 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
1d6a0 33 39 20 2a 20 2b 20 31 34 20 2b 20 2d 20 39 34  39 * + 14 + - 94
1d6b0 20 2d 20 2b 20 33 30 20 46 52 4f 4d 20 74 61 62   - + 30 FROM tab
1d6c0 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 37 30 0d 0a 0d  2..----..-670...
1d6d0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1d6e0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1d6f0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1d700 6f 72 74 20 6c 61 62 65 6c 2d 36 34 32 0d 0a 53  ort label-642..S
1d710 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d 49 4e 28  ELECT ALL + MIN(
1d720 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 29 20 46 52   ALL + col0 ) FR
1d730 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34  OM tab2..----..4
1d740 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  6....skipif mysq
1d750 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1d760 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1d770 6f 72 74 20 6c 61 62 65 6c 2d 36 34 32 0d 0a 53  ort label-642..S
1d780 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d 49 4e 20  ELECT ALL + MIN 
1d790 28 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 29 20 46  ( ALL + col0 ) F
1d7a0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
1d7b0 34 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  46....query I ro
1d7c0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
1d7d0 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20 2b 20  STINCT + col2 + 
1d7e0 2b 20 2b 20 63 6f 6c 32 20 2b 20 63 6f 6c 31 20  + + col2 + col1 
1d7f0 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
1d800 0a 31 32 33 0d 0a 31 38 33 0d 0a 32 30 36 0d 0a  .123..183..206..
1d810 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1d820 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
1d830 43 54 20 2d 20 28 20 2d 20 37 36 20 29 20 41 53  CT - ( - 76 ) AS
1d840 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
1d850 0a 2d 2d 2d 2d 0d 0a 37 36 0d 0a 0d 0a 71 75 65  .----..76....que
1d860 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1d870 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 36 20 2a  LECT ALL - + 6 *
1d880 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   - col0 FROM tab
1d890 31 20 57 48 45 52 45 20 2d 20 63 6f 6c 30 20 2b  1 WHERE - col0 +
1d8a0 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 31 20 42   col1 * + col1 B
1d8b0 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20  ETWEEN NULL AND 
1d8c0 2d 20 31 35 20 2b 20 2b 20 37 39 20 2b 20 2d 20  - 15 + + 79 + - 
1d8d0 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  col0..----....on
1d8e0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
1d8f0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
1d900 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1d910 20 6c 61 62 65 6c 2d 36 34 36 0d 0a 53 45 4c 45   label-646..SELE
1d920 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20  CT DISTINCT - + 
1d930 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20  COUNT( * ) FROM 
1d940 74 61 62 32 20 57 48 45 52 45 20 4e 55 4c 4c 20  tab2 WHERE NULL 
1d950 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d  IS NULL..----..-
1d960 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
1d970 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1d980 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1d990 6f 72 74 20 6c 61 62 65 6c 2d 36 34 36 0d 0a 53  ort label-646..S
1d9a0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
1d9b0 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46   + COUNT ( * ) F
1d9c0 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
1d9d0 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ULL IS NULL..---
1d9e0 2d 0d 0a 2d 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -..-3....onlyif 
1d9f0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
1da00 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
1da10 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1da20 6c 2d 36 34 37 0d 0a 53 45 4c 45 43 54 20 2b 20  l-647..SELECT + 
1da30 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2b 20 4d  COUNT( * ) + + M
1da40 41 58 28 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 29  AX( ALL + col2 )
1da50 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
1da60 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 32 0d 0a 0d  r0..----..102...
1da70 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1da80 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1da90 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1daa0 6c 61 62 65 6c 2d 36 34 37 0d 0a 53 45 4c 45 43  label-647..SELEC
1dab0 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  T + COUNT ( * ) 
1dac0 2b 20 2b 20 4d 41 58 20 28 20 41 4c 4c 20 2b 20  + + MAX ( ALL + 
1dad0 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 30  col2 ) FROM tab0
1dae0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1daf0 31 30 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  102....query III
1db00 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1db10 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31   ALL * FROM tab1
1db20 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
1db30 4f 54 20 4e 55 4c 4c 20 3e 20 63 6f 6c 32 20 2a  OT NULL > col2 *
1db40 20 63 6f 6c 31 20 2a 20 2b 20 28 20 2d 20 63 6f   col1 * + ( - co
1db50 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  l1 )..----....qu
1db60 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1db70 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
1db80 20 33 36 20 2b 20 2d 20 36 37 20 46 52 4f 4d 20   36 + - 67 FROM 
1db90 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
1dba0 2d 2d 0d 0a 2d 33 31 0d 0a 0d 0a 71 75 65 72 79  --..-31....query
1dbb0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1dbc0 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 2a 20  CT ALL - col1 * 
1dbd0 2d 20 36 36 20 41 53 20 63 6f 6c 30 20 46 52 4f  - 66 AS col0 FRO
1dbe0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
1dbf0 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53  HERE NOT NULL IS
1dc00 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
1dc10 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
1dc20 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f  .SELECT ALL - co
1dc30 6c 32 20 41 53 20 63 6f 6c 32 2c 20 2d 20 63 6f  l2 AS col2, - co
1dc40 6c 32 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74  l2 + col2 FROM t
1dc50 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a  ab1..----..-59..
1dc60 30 0d 0a 2d 36 38 0d 0a 30 0d 0a 2d 39 36 0d 0a  0..-68..0..-96..
1dc70 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
1dc80 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
1dc90 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
1dca0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35  rowsort label-65
1dcb0 32 0d 0a 53 45 4c 45 43 54 20 36 38 20 2a 20 34  2..SELECT 68 * 4
1dcc0 35 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  5 + - COUNT( * )
1dcd0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
1dce0 0d 0a 33 30 35 37 0d 0a 0d 0a 73 6b 69 70 69 66  ..3057....skipif
1dcf0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1dd00 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1dd10 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1dd20 35 32 0d 0a 53 45 4c 45 43 54 20 36 38 20 2a 20  52..SELECT 68 * 
1dd30 34 35 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a  45 + - COUNT ( *
1dd40 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d   ) FROM tab2..--
1dd50 2d 2d 0d 0a 33 30 35 37 0d 0a 0d 0a 71 75 65 72  --..3057....quer
1dd60 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
1dd70 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
1dd80 63 6f 6c 30 20 41 53 20 63 6f 6c 30 2c 20 2d 20  col0 AS col0, - 
1dd90 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
1dda0 2d 2d 2d 2d 0d 0a 31 35 0d 0a 2d 38 31 0d 0a 38  ----..15..-81..8
1ddb0 37 0d 0a 2d 32 31 0d 0a 39 37 0d 0a 2d 31 0d 0a  7..-21..97..-1..
1ddc0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1ddd0 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
1dde0 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
1ddf0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1de00 65 6c 2d 36 35 34 0d 0a 53 45 4c 45 43 54 20 37  el-654..SELECT 7
1de10 31 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  1 FROM tab1 WHER
1de20 45 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 43 41 53  E + col1 + + CAS
1de30 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
1de40 44 20 29 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d  D ) <> NULL..---
1de50 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  -....skipif mysq
1de60 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1de70 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1de80 6f 72 74 20 6c 61 62 65 6c 2d 36 35 34 0d 0a 53  ort label-654..S
1de90 45 4c 45 43 54 20 37 31 20 46 52 4f 4d 20 74 61  ELECT 71 FROM ta
1dea0 62 31 20 57 48 45 52 45 20 2b 20 63 6f 6c 31 20  b1 WHERE + col1 
1deb0 2b 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  + + CAST ( NULL 
1dec0 41 53 20 49 4e 54 45 47 45 52 20 29 20 3c 3e 20  AS INTEGER ) <> 
1ded0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
1dee0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
1def0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
1df00 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1df10 20 6c 61 62 65 6c 2d 36 35 35 0d 0a 53 45 4c 45   label-655..SELE
1df20 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 4d 49  CT DISTINCT - MI
1df30 4e 28 20 2d 20 2d 20 39 20 29 20 41 53 20 63 6f  N( - - 9 ) AS co
1df40 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
1df50 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
1df60 74 61 62 32 20 41 53 20 63 6f 72 31 0d 0a 2d 2d  tab2 AS cor1..--
1df70 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 73 6b 69 70 69 66  --..-9....skipif
1df80 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1df90 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1dfa0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1dfb0 35 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  55..SELECT DISTI
1dfc0 4e 43 54 20 2d 20 4d 49 4e 20 28 20 2d 20 2d 20  NCT - MIN ( - - 
1dfd0 39 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  9 ) AS col0 FROM
1dfe0 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 43 52   tab0 AS cor0 CR
1dff0 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53  OSS JOIN tab2 AS
1e000 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d   cor1..----..-9.
1e010 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1e020 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
1e030 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72  ax: ..query II r
1e040 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35 36  owsort label-656
1e050 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 34  ..SELECT ALL - 4
1e060 38 20 2d 20 43 4f 55 4e 54 28 20 41 4c 4c 20 2d  8 - COUNT( ALL -
1e070 20 39 32 20 29 20 41 53 20 63 6f 6c 32 2c 20 2b   92 ) AS col2, +
1e080 20 39 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   9 AS col0 FROM 
1e090 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
1e0a0 52 45 20 34 31 20 2a 20 2b 20 63 6f 6c 31 20 49  RE 41 * + col1 I
1e0b0 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 34  S NULL..----..-4
1e0c0 38 0d 0a 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  8..9....skipif m
1e0d0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1e0e0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
1e0f0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35  rowsort label-65
1e100 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  6..SELECT ALL - 
1e110 34 38 20 2d 20 43 4f 55 4e 54 20 28 20 41 4c 4c  48 - COUNT ( ALL
1e120 20 2d 20 39 32 20 29 20 41 53 20 63 6f 6c 32 2c   - 92 ) AS col2,
1e130 20 2b 20 39 20 41 53 20 63 6f 6c 30 20 46 52 4f   + 9 AS col0 FRO
1e140 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
1e150 48 45 52 45 20 34 31 20 2a 20 2b 20 63 6f 6c 31  HERE 41 * + col1
1e160 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
1e170 2d 34 38 0d 0a 39 0d 0a 0d 0a 71 75 65 72 79 20  -48..9....query 
1e180 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1e190 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20  T DISTINCT col0 
1e1a0 2d 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  - + col2 FROM ta
1e1b0 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  b2 cor0..----..1
1e1c0 37 0d 0a 32 33 0d 0a 32 34 0d 0a 0d 0a 6f 6e 6c  7..23..24....onl
1e1d0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
1e1e0 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
1e1f0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
1e200 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35  rowsort label-65
1e210 38 0d 0a 53 45 4c 45 43 54 20 2d 20 39 37 20 2d  8..SELECT - 97 -
1e220 20 2b 20 31 30 20 2d 20 43 41 53 54 28 20 2d 20   + 10 - CAST( - 
1e230 2b 20 30 20 41 53 20 53 49 47 4e 45 44 20 29 20  + 0 AS SIGNED ) 
1e240 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  + col1 FROM tab2
1e250 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1e260 2d 33 30 0d 0a 2d 34 30 0d 0a 2d 35 36 0d 0a 0d  -30..-40..-56...
1e270 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1e280 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1e290 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1e2a0 6c 61 62 65 6c 2d 36 35 38 0d 0a 53 45 4c 45 43  label-658..SELEC
1e2b0 54 20 2d 20 39 37 20 2d 20 2b 20 31 30 20 2d 20  T - 97 - + 10 - 
1e2c0 43 41 53 54 20 28 20 2d 20 2b 20 30 20 41 53 20  CAST ( - + 0 AS 
1e2d0 49 4e 54 45 47 45 52 20 29 20 2b 20 63 6f 6c 31  INTEGER ) + col1
1e2e0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
1e2f0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 30 0d 0a 2d  r0..----..-30..-
1e300 34 30 0d 0a 2d 35 36 0d 0a 0d 0a 6f 6e 6c 79 69  40..-56....onlyi
1e310 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
1e320 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
1e330 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
1e340 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35 39 0d  wsort label-659.
1e350 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54 28 20  .SELECT + CAST( 
1e360 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
1e370 20 2d 20 2d 20 2b 20 28 20 2b 20 33 38 20 29 20   - - + ( + 38 ) 
1e380 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
1e390 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  0..----..NULL..N
1e3a0 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ULL..NULL....ski
1e3b0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1e3c0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1e3d0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1e3e0 6c 2d 36 35 39 0d 0a 53 45 4c 45 43 54 20 2b 20  l-659..SELECT + 
1e3f0 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
1e400 4e 54 45 47 45 52 20 29 20 2d 20 2d 20 2b 20 28  NTEGER ) - - + (
1e410 20 2b 20 33 38 20 29 20 46 52 4f 4d 20 74 61 62   + 38 ) FROM tab
1e420 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
1e430 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
1e440 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  L....query I row
1e450 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b  sort..SELECT + +
1e460 20 39 32 20 2d 20 2b 20 32 32 20 46 52 4f 4d 20   92 - + 22 FROM 
1e470 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
1e480 2d 2d 0d 0a 37 30 0d 0a 37 30 0d 0a 37 30 0d 0a  --..70..70..70..
1e490 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1e4a0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
1e4b0 63 6f 6c 30 20 2b 20 35 35 20 41 53 20 63 6f 6c  col0 + 55 AS col
1e4c0 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
1e4d0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 31 0d 0a  or0..----..101..
1e4e0 31 31 39 0d 0a 31 33 30 0d 0a 0d 0a 6f 6e 6c 79  119..130....only
1e4f0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
1e500 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74  syntax: aggregat
1e510 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  e syntax: SIGNED
1e520 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
1e530 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1e540 36 36 32 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41  662..SELECT - CA
1e550 53 54 28 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  ST( + COUNT( * )
1e560 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20   AS SIGNED ) AS 
1e570 63 6f 6c 31 2c 20 2b 20 43 4f 55 4e 54 28 20 2a  col1, + COUNT( *
1e580 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
1e590 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
1e5a0 0a 2d 33 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66  .-3..3....skipif
1e5b0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1e5c0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1e5d0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1e5e0 36 36 32 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41  662..SELECT - CA
1e5f0 53 54 20 28 20 2b 20 43 4f 55 4e 54 20 28 20 2a  ST ( + COUNT ( *
1e600 20 29 20 41 53 20 49 4e 54 45 47 45 52 20 29 20   ) AS INTEGER ) 
1e610 41 53 20 63 6f 6c 31 2c 20 2b 20 43 4f 55 4e 54  AS col1, + COUNT
1e620 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46   ( * ) AS col1 F
1e630 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d  ROM tab0 cor0..-
1e640 2d 2d 2d 0d 0a 2d 33 0d 0a 33 0d 0a 0d 0a 71 75  ---..-3..3....qu
1e650 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
1e660 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1e670 2b 20 2d 20 28 20 2d 20 63 6f 6c 30 20 29 20 41  + - ( - col0 ) A
1e680 53 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c 31 20 2d  S col2, + col1 -
1e690 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   - col2 FROM tab
1e6a0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
1e6b0 0a 31 35 0d 0a 31 32 38 0d 0a 38 37 0d 0a 33 31  .15..128..87..31
1e6c0 0d 0a 39 37 0d 0a 31 30 30 0d 0a 0d 0a 6f 6e 6c  ..97..100....onl
1e6d0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
1e6e0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
1e6f0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
1e700 20 6c 61 62 65 6c 2d 36 36 34 0d 0a 53 45 4c 45   label-664..SELE
1e710 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 4d 49  CT DISTINCT + MI
1e720 4e 28 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 29 2c  N( ALL - col0 ),
1e730 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
1e740 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
1e750 2d 2d 2d 0d 0a 2d 37 35 0d 0a 33 0d 0a 0d 0a 73  ---..-75..3....s
1e760 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1e770 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1e780 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
1e790 61 62 65 6c 2d 36 36 34 0d 0a 53 45 4c 45 43 54  abel-664..SELECT
1e7a0 20 44 49 53 54 49 4e 43 54 20 2b 20 4d 49 4e 20   DISTINCT + MIN 
1e7b0 28 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 29 2c 20  ( ALL - col0 ), 
1e7c0 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63  COUNT ( * ) AS c
1e7d0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
1e7e0 2d 2d 2d 0d 0a 2d 37 35 0d 0a 33 0d 0a 0d 0a 6f  ---..-75..3....o
1e7f0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
1e800 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
1e810 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
1e820 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1e830 36 36 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  665..SELECT DIST
1e840 49 4e 43 54 20 2b 20 28 20 63 6f 6c 30 20 29 20  INCT + ( col0 ) 
1e850 44 49 56 20 2d 20 28 20 33 37 20 29 20 46 52 4f  DIV - ( 37 ) FRO
1e860 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  M tab0..----..-2
1e870 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
1e880 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1e890 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1e8a0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 36 35 0d  wsort label-665.
1e8b0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1e8c0 20 2b 20 28 20 63 6f 6c 30 20 29 20 2f 20 2d 20   + ( col0 ) / - 
1e8d0 28 20 33 37 20 29 20 46 52 4f 4d 20 74 61 62 30  ( 37 ) FROM tab0
1e8e0 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 30 0d 0a 0d  ..----..-2..0...
1e8f0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
1e900 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
1e910 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54  M tab1 WHERE NOT
1e920 20 2b 20 37 30 20 42 45 54 57 45 45 4e 20 2d 20   + 70 BETWEEN - 
1e930 63 6f 6c 31 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d  col1 AND NULL..-
1e940 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
1e950 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
1e960 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 2a  ISTINCT + col1 *
1e970 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   + col1 FROM tab
1e980 30 20 57 48 45 52 45 20 63 6f 6c 31 20 3e 20 4e  0 WHERE col1 > N
1e990 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
1e9a0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
1e9b0 45 4c 45 43 54 20 63 6f 6c 30 2c 20 2d 20 63 6f  ELECT col0, - co
1e9c0 6c 32 20 2a 20 2d 20 63 6f 6c 30 20 41 53 20 63  l2 * - col0 AS c
1e9d0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol0 FROM tab2..-
1e9e0 2d 2d 2d 0d 0a 34 36 0d 0a 31 30 35 38 0d 0a 36  ---..46..1058..6
1e9f0 34 0d 0a 32 35 36 30 0d 0a 37 35 0d 0a 34 33 35  4..2560..75..435
1ea00 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  0....skipif post
1ea10 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
1ea20 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
1ea30 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
1ea40 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
1ea50 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
1ea60 53 45 4c 45 43 54 20 63 6f 6c 31 20 41 53 20 63  SELECT col1 AS c
1ea70 6f 6c 32 2c 20 32 20 63 6f 6c 32 20 46 52 4f 4d  ol2, 2 col2 FROM
1ea80 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a   tab0..----..1..
1ea90 32 0d 0a 32 31 0d 0a 32 0d 0a 38 31 0d 0a 32 0d  2..21..2..81..2.
1eaa0 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
1eab0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 32 35 2c 20  ort..SELECT 25, 
1eac0 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46  - col2 AS col1 F
1ead0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
1eae0 0d 0a 2d 2d 2d 2d 0d 0a 32 35 0d 0a 2d 32 33 0d  ..----..25..-23.
1eaf0 0a 32 35 0d 0a 2d 34 30 0d 0a 32 35 0d 0a 2d 35  .25..-40..25..-5
1eb00 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  8....skipif post
1eb10 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
1eb20 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
1eb30 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
1eb40 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
1eb50 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1eb60 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
1eb70 20 31 33 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   13 col2 FROM ta
1eb80 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  b2 cor0..----..1
1eb90 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  3....skipif post
1eba0 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
1ebb0 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
1ebc0 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
1ebd0 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
1ebe0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1ebf0 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 2a 20 2d  ELECT + col0 * -
1ec00 20 2d 20 63 6f 6c 32 20 63 6f 6c 31 20 46 52 4f   - col2 col1 FRO
1ec10 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
1ec20 2d 0d 0a 37 30 35 0d 0a 38 37 30 0d 0a 39 36 30  -..705..870..960
1ec30 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  3....query I row
1ec40 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
1ec50 54 49 4e 43 54 20 63 6f 6c 31 20 46 52 4f 4d 20  TINCT col1 FROM 
1ec60 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
1ec70 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 32 20 49 53  RE NOT + col2 IS
1ec80 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a   NULL..----..1..
1ec90 32 31 0d 0a 38 31 0d 0a 0d 0a 6f 6e 6c 79 69 66  21..81....onlyif
1eca0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
1ecb0 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20  ntax: aggregate 
1ecc0 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
1ecd0 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
1ece0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 37 34  owsort label-674
1ecf0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1ed00 54 20 2b 20 2d 20 43 41 53 54 28 20 2b 20 53 55  T + - CAST( + SU
1ed10 4d 28 20 41 4c 4c 20 2b 20 43 41 53 54 28 20 2b  M( ALL + CAST( +
1ed20 20 2d 20 63 6f 6c 32 20 41 53 20 53 49 47 4e 45   - col2 AS SIGNE
1ed30 44 20 29 20 29 20 41 53 20 53 49 47 4e 45 44 20  D ) ) AS SIGNED 
1ed40 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
1ed50 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab2 cor0..----..
1ed60 31 32 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  121....skipif my
1ed70 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1ed80 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1ed90 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 37 34 0d  wsort label-674.
1eda0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1edb0 20 2b 20 2d 20 43 41 53 54 20 28 20 2b 20 53 55   + - CAST ( + SU
1edc0 4d 20 28 20 41 4c 4c 20 2b 20 43 41 53 54 20 28  M ( ALL + CAST (
1edd0 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20 49 4e 54   + - col2 AS INT
1ede0 45 47 45 52 20 29 20 29 20 41 53 20 49 4e 54 45  EGER ) ) AS INTE
1edf0 47 45 52 20 29 20 41 53 20 63 6f 6c 30 20 46 52  GER ) AS col0 FR
1ee00 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d  OM tab2 cor0..--
1ee10 2d 2d 0d 0a 31 32 31 0d 0a 0d 0a 6f 6e 6c 79 69  --..121....onlyi
1ee20 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
1ee30 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
1ee40 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
1ee50 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 37 35 0d  wsort label-675.
1ee60 0a 53 45 4c 45 43 54 20 2d 20 39 38 20 2f 20 2d  .SELECT - 98 / -
1ee70 20 2d 20 32 39 20 2a 20 2b 20 34 32 20 2b 20 2d   - 29 * + 42 + -
1ee80 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 2d 20 43 41   + col0 * - - CA
1ee90 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
1eea0 45 44 20 29 20 2a 20 2d 20 28 20 63 6f 6c 32 20  ED ) * - ( col2 
1eeb0 29 20 2a 20 2d 20 34 36 20 63 6f 6c 31 20 46 52  ) * - 46 col1 FR
1eec0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
1eed0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
1eee0 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  L..NULL....skipi
1eef0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1ef00 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66  mpatible..skipif
1ef10 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
1ef20 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
1ef30 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
1ef40 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
1ef50 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
1ef60 72 74 20 6c 61 62 65 6c 2d 36 37 35 0d 0a 53 45  rt label-675..SE
1ef70 4c 45 43 54 20 2d 20 39 38 20 2f 20 2d 20 2d 20  LECT - 98 / - - 
1ef80 32 39 20 2a 20 2b 20 34 32 20 2b 20 2d 20 2b 20  29 * + 42 + - + 
1ef90 63 6f 6c 30 20 2a 20 2d 20 2d 20 43 41 53 54 20  col0 * - - CAST 
1efa0 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
1efb0 52 20 29 20 2a 20 2d 20 28 20 63 6f 6c 32 20 29  R ) * - ( col2 )
1efc0 20 2a 20 2d 20 34 36 20 63 6f 6c 31 20 46 52 4f   * - 46 col1 FRO
1efd0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
1efe0 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
1eff0 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..NULL....onlyif
1f000 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
1f010 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
1f020 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1f030 65 6c 2d 36 37 36 0d 0a 53 45 4c 45 43 54 20 44  el-676..SELECT D
1f040 49 53 54 49 4e 43 54 20 53 55 4d 28 20 36 31 20  ISTINCT SUM( 61 
1f050 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  ) FROM tab2 AS c
1f060 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 38 33 0d 0a  or0..----..183..
1f070 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1f080 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1f090 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1f0a0 20 6c 61 62 65 6c 2d 36 37 36 0d 0a 53 45 4c 45   label-676..SELE
1f0b0 43 54 20 44 49 53 54 49 4e 43 54 20 53 55 4d 20  CT DISTINCT SUM 
1f0c0 28 20 36 31 20 29 20 46 52 4f 4d 20 74 61 62 32  ( 61 ) FROM tab2
1f0d0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1f0e0 31 38 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  183....query I r
1f0f0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
1f100 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 2b 20 2d  ISTINCT col2 + -
1f110 20 31 38 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   18 AS col0 FROM
1f120 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
1f130 2d 2d 2d 0d 0a 34 31 0d 0a 35 30 0d 0a 37 38 0d  ---..41..50..78.
1f140 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1f150 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
1f160 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
1f170 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1f180 62 65 6c 2d 36 37 38 0d 0a 53 45 4c 45 43 54 20  bel-678..SELECT 
1f190 41 4c 4c 20 2d 20 43 41 53 54 28 20 63 6f 6c 32  ALL - CAST( col2
1f1a0 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2d   AS SIGNED ) + -
1f1b0 20 2d 20 36 30 20 2b 20 63 6f 6c 31 20 2d 20 2b   - 60 + col1 - +
1f1c0 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 30 20 41   col2 * - col0 A
1f1d0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
1f1e0 0d 0a 2d 2d 2d 2d 0d 0a 37 39 39 0d 0a 39 34 31  ..----..799..941
1f1f0 0d 0a 39 35 36 35 0d 0a 0d 0a 73 6b 69 70 69 66  ..9565....skipif
1f200 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1f210 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1f220 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1f230 37 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  78..SELECT ALL -
1f240 20 43 41 53 54 20 28 20 63 6f 6c 32 20 41 53 20   CAST ( col2 AS 
1f250 49 4e 54 45 47 45 52 20 29 20 2b 20 2d 20 2d 20  INTEGER ) + - - 
1f260 36 30 20 2b 20 63 6f 6c 31 20 2d 20 2b 20 63 6f  60 + col1 - + co
1f270 6c 32 20 2a 20 2d 20 63 6f 6c 30 20 41 53 20 63  l2 * - col0 AS c
1f280 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol0 FROM tab0..-
1f290 2d 2d 2d 0d 0a 37 39 39 0d 0a 39 34 31 0d 0a 39  ---..799..941..9
1f2a0 35 36 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  565....onlyif my
1f2b0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
1f2c0 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e  x: aggregate syn
1f2d0 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
1f2e0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1f2f0 6f 72 74 20 6c 61 62 65 6c 2d 36 37 39 0d 0a 53  ort label-679..S
1f300 45 4c 45 43 54 20 43 41 53 54 28 20 2b 20 43 4f  ELECT CAST( + CO
1f310 55 4e 54 28 20 2a 20 29 20 41 53 20 53 49 47 4e  UNT( * ) AS SIGN
1f320 45 44 20 29 20 2b 20 2d 20 35 33 20 41 53 20 63  ED ) + - 53 AS c
1f330 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
1f340 2d 2d 2d 0d 0a 2d 35 30 0d 0a 0d 0a 73 6b 69 70  ---..-50....skip
1f350 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1f360 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1f370 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1f380 2d 36 37 39 0d 0a 53 45 4c 45 43 54 20 43 41 53  -679..SELECT CAS
1f390 54 20 28 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  T ( + COUNT ( * 
1f3a0 29 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b  ) AS INTEGER ) +
1f3b0 20 2d 20 35 33 20 41 53 20 63 6f 6c 31 20 46 52   - 53 AS col1 FR
1f3c0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
1f3d0 35 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  50....query I ro
1f3e0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 34 35  wsort..SELECT 45
1f3f0 20 2a 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 2b 20   * - col2 + + + 
1f400 63 6f 6c 30 20 2a 20 2b 20 34 33 20 2d 20 2b 20  col0 * + 43 - + 
1f410 31 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  11 AS col1 FROM 
1f420 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 33  tab1..----..-213
1f430 38 0d 0a 38 34 32 0d 0a 39 38 39 0d 0a 0d 0a 71  8..842..989....q
1f440 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1f450 53 45 4c 45 43 54 20 63 6f 6c 31 20 2b 20 63 6f  SELECT col1 + co
1f460 6c 30 20 2b 20 2d 20 63 6f 6c 31 20 2b 20 2d 20  l0 + - col1 + - 
1f470 31 37 20 2a 20 63 6f 6c 30 20 46 52 4f 4d 20 74  17 * col0 FROM t
1f480 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 36 30  ab1..----..-1360
1f490 0d 0a 2d 31 34 35 36 0d 0a 2d 38 31 36 0d 0a 0d  ..-1456..-816...
1f4a0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1f4b0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1f4c0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1f4d0 6f 72 74 20 6c 61 62 65 6c 2d 36 38 32 0d 0a 53  ort label-682..S
1f4e0 45 4c 45 43 54 20 34 20 2b 20 2b 20 33 20 2b 20  ELECT 4 + + 3 + 
1f4f0 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41  + + COUNT( * ) A
1f500 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
1f510 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 0d 0a 73 6b  ..----..10....sk
1f520 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1f530 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1f540 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1f550 65 6c 2d 36 38 32 0d 0a 53 45 4c 45 43 54 20 34  el-682..SELECT 4
1f560 20 2b 20 2b 20 33 20 2b 20 2b 20 2b 20 43 4f 55   + + 3 + + + COU
1f570 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 31  NT ( * ) AS col1
1f580 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
1f590 0d 0a 31 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..10....query II
1f5a0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1f5b0 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 2b 20 2d 20   ALL - col1 + - 
1f5c0 32 33 2c 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20  23, + col1 FROM 
1f5d0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 38 0d  tab1..----..-28.
1f5e0 0a 35 0d 0a 2d 33 37 0d 0a 31 34 0d 0a 2d 37 30  .5..-37..14..-70
1f5f0 0d 0a 34 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..47....onlyif m
1f600 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
1f610 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
1f620 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1f630 72 74 20 6c 61 62 65 6c 2d 36 38 34 0d 0a 53 45  rt label-684..SE
1f640 4c 45 43 54 20 2b 20 2b 20 43 41 53 54 28 20 2d  LECT + + CAST( -
1f650 20 63 6f 6c 32 20 41 53 20 53 49 47 4e 45 44 20   col2 AS SIGNED 
1f660 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
1f670 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
1f680 2d 0d 0a 2d 35 39 0d 0a 2d 36 38 0d 0a 2d 39 36  -..-59..-68..-96
1f690 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1f6a0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1f6b0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
1f6c0 72 74 20 6c 61 62 65 6c 2d 36 38 34 0d 0a 53 45  rt label-684..SE
1f6d0 4c 45 43 54 20 2b 20 2b 20 43 41 53 54 20 28 20  LECT + + CAST ( 
1f6e0 2d 20 63 6f 6c 32 20 41 53 20 49 4e 54 45 47 45  - col2 AS INTEGE
1f6f0 52 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  R ) AS col1 FROM
1f700 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
1f710 2d 2d 2d 0d 0a 2d 35 39 0d 0a 2d 36 38 0d 0a 2d  ---..-59..-68..-
1f720 39 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 49  96....query IIII
1f730 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1f740 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41  CT * FROM tab2 A
1f750 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  S cor0 CROSS JOI
1f760 4e 20 74 61 62 32 20 63 6f 72 31 20 57 48 45 52  N tab2 cor1 WHER
1f770 45 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45  E NULL NOT BETWE
1f780 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2d 20 34 34  EN NULL AND - 44
1f790 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
1f7a0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
1f7b0 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66  te syntax: DIV f
1f7c0 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
1f7d0 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
1f7e0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38 36  owsort label-686
1f7f0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55  ..SELECT ALL COU
1f800 4e 54 28 20 2a 20 29 20 2a 20 2d 20 2d 20 43 4f  NT( * ) * - - CO
1f810 55 4e 54 28 20 2a 20 29 20 44 49 56 20 2d 20 31  UNT( * ) DIV - 1
1f820 39 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  9 AS col1 FROM t
1f830 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
1f840 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..0....skipif m
1f850 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1f860 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1f870 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38 36  owsort label-686
1f880 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55  ..SELECT ALL COU
1f890 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20 2d 20 43  NT ( * ) * - - C
1f8a0 4f 55 4e 54 20 28 20 2a 20 29 20 2f 20 2d 20 31  OUNT ( * ) / - 1
1f8b0 39 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  9 AS col1 FROM t
1f8c0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
1f8d0 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -..0....query I 
1f8e0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1f8f0 2d 20 2d 20 37 30 20 41 53 20 63 6f 6c 31 20 46  - - 70 AS col1 F
1f900 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
1f910 0d 0a 2d 2d 2d 2d 0d 0a 37 30 0d 0a 37 30 0d 0a  ..----..70..70..
1f920 37 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  70....onlyif mys
1f930 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
1f940 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
1f950 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1f960 38 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  88..SELECT ALL -
1f970 20 4d 49 4e 28 20 44 49 53 54 49 4e 43 54 20 2b   MIN( DISTINCT +
1f980 20 36 33 20 29 20 2a 20 2d 20 2d 20 43 4f 55 4e   63 ) * - - COUN
1f990 54 28 20 2d 20 63 6f 6c 32 20 29 20 2b 20 2b 20  T( - col2 ) + + 
1f9a0 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f  + COUNT( * ) FRO
1f9b0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
1f9c0 2d 2d 2d 2d 0d 0a 2d 31 38 36 0d 0a 0d 0a 73 6b  ----..-186....sk
1f9d0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1f9e0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1f9f0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1fa00 65 6c 2d 36 38 38 0d 0a 53 45 4c 45 43 54 20 41  el-688..SELECT A
1fa10 4c 4c 20 2d 20 4d 49 4e 20 28 20 44 49 53 54 49  LL - MIN ( DISTI
1fa20 4e 43 54 20 2b 20 36 33 20 29 20 2a 20 2d 20 2d  NCT + 63 ) * - -
1fa30 20 43 4f 55 4e 54 20 28 20 2d 20 63 6f 6c 32 20   COUNT ( - col2 
1fa40 29 20 2b 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20  ) + + + COUNT ( 
1fa50 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  * ) FROM tab1 AS
1fa60 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38   cor0..----..-18
1fa70 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
1fa80 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
1fa90 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49  ntax: ..query II
1faa0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1fab0 38 39 0d 0a 53 45 4c 45 43 54 20 2d 20 34 33 20  89..SELECT - 43 
1fac0 41 53 20 63 6f 6c 30 2c 20 53 55 4d 28 20 2b 20  AS col0, SUM( + 
1fad0 32 37 20 29 20 2b 20 2d 20 43 4f 55 4e 54 28 20  27 ) + - COUNT( 
1fae0 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  * ) AS col2 FROM
1faf0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
1fb00 2d 2d 2d 0d 0a 2d 34 33 0d 0a 37 38 0d 0a 0d 0a  ---..-43..78....
1fb10 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1fb20 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1fb30 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
1fb40 6c 61 62 65 6c 2d 36 38 39 0d 0a 53 45 4c 45 43  label-689..SELEC
1fb50 54 20 2d 20 34 33 20 41 53 20 63 6f 6c 30 2c 20  T - 43 AS col0, 
1fb60 53 55 4d 20 28 20 2b 20 32 37 20 29 20 2b 20 2d  SUM ( + 27 ) + -
1fb70 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
1fb80 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41  col2 FROM tab1 A
1fb90 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34  S cor0..----..-4
1fba0 33 0d 0a 37 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  3..78....skipif 
1fbb0 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
1fbc0 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
1fbd0 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
1fbe0 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
1fbf0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1fc00 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
1fc10 2b 20 63 6f 6c 30 20 63 6f 6c 31 20 46 52 4f 4d  + col0 col1 FROM
1fc20 20 74 61 62 30 20 57 48 45 52 45 20 2d 20 28 20   tab0 WHERE - ( 
1fc30 2d 20 39 30 20 29 20 2a 20 63 6f 6c 32 20 2a 20  - 90 ) * col2 * 
1fc40 2d 20 63 6f 6c 32 20 2b 20 2d 20 2b 20 63 6f 6c  - col2 + - + col
1fc50 30 20 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  0 = NULL..----..
1fc60 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1fc70 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32  t..SELECT - col2
1fc80 20 2a 20 37 36 20 41 53 20 63 6f 6c 32 20 46 52   * 76 AS col2 FR
1fc90 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
1fca0 33 35 37 32 0d 0a 2d 37 35 32 34 0d 0a 2d 37 36  3572..-7524..-76
1fcb0 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
1fcc0 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
1fcd0 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
1fce0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
1fcf0 20 6c 61 62 65 6c 2d 36 39 32 0d 0a 53 45 4c 45   label-692..SELE
1fd00 43 54 20 44 49 53 54 49 4e 43 54 20 36 33 20 44  CT DISTINCT 63 D
1fd10 49 56 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c  IV - col2 AS col
1fd20 32 2c 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74  2, - col2 FROM t
1fd30 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d  ab2..----..-1..-
1fd40 34 30 0d 0a 2d 31 0d 0a 2d 35 38 0d 0a 2d 32 0d  40..-1..-58..-2.
1fd50 0a 2d 32 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-23....skipif m
1fd60 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1fd70 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
1fd80 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39  rowsort label-69
1fd90 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  2..SELECT DISTIN
1fda0 43 54 20 36 33 20 2f 20 2d 20 63 6f 6c 32 20 41  CT 63 / - col2 A
1fdb0 53 20 63 6f 6c 32 2c 20 2d 20 63 6f 6c 32 20 46  S col2, - col2 F
1fdc0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
1fdd0 2d 31 0d 0a 2d 34 30 0d 0a 2d 31 0d 0a 2d 35 38  -1..-40..-1..-58
1fde0 0d 0a 2d 32 0d 0a 2d 32 33 0d 0a 0d 0a 6f 6e 6c  ..-2..-23....onl
1fdf0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
1fe00 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
1fe10 74 79 70 65 3a 20 44 49 56 20 66 6f 72 20 69 6e  type: DIV for in
1fe20 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
1fe30 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1fe40 74 20 6c 61 62 65 6c 2d 36 39 33 0d 0a 53 45 4c  t label-693..SEL
1fe50 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63  ECT DISTINCT - c
1fe60 6f 6c 30 20 44 49 56 20 43 41 53 54 28 20 2d 20  ol0 DIV CAST( - 
1fe70 2b 20 63 6f 6c 32 20 41 53 20 53 49 47 4e 45 44  + col2 AS SIGNED
1fe80 20 29 20 2a 20 34 33 20 2a 20 2b 20 63 6f 6c 30   ) * 43 * + col0
1fe90 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
1fea0 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 33 36 35 35 0d 0a  .----..0..3655..
1feb0 33 39 31 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  3913....skipif m
1fec0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1fed0 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
1fee0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
1fef0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
1ff00 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
1ff10 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
1ff20 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1ff30 6c 61 62 65 6c 2d 36 39 33 0d 0a 53 45 4c 45 43  label-693..SELEC
1ff40 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  T DISTINCT - col
1ff50 30 20 2f 20 43 41 53 54 20 28 20 2d 20 2b 20 63  0 / CAST ( - + c
1ff60 6f 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20 29  ol2 AS INTEGER )
1ff70 20 2a 20 34 33 20 2a 20 2b 20 63 6f 6c 30 20 63   * 43 * + col0 c
1ff80 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol2 FROM tab1..-
1ff90 2d 2d 2d 0d 0a 30 0d 0a 33 36 35 35 0d 0a 33 39  ---..0..3655..39
1ffa0 31 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  13....onlyif mys
1ffb0 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
1ffc0 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
1ffd0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1ffe0 20 6c 61 62 65 6c 2d 36 39 34 0d 0a 53 45 4c 45   label-694..SELE
1fff0 43 54 20 63 6f 6c 30 20 44 49 56 20 2b 20 33 38  CT col0 DIV + 38
20000 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
20010 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 32 0d 0a  b0..----..0..2..
20020 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  2....skipif mysq
20030 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
20040 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
20050 6f 72 74 20 6c 61 62 65 6c 2d 36 39 34 0d 0a 53  ort label-694..S
20060 45 4c 45 43 54 20 63 6f 6c 30 20 2f 20 2b 20 33  ELECT col0 / + 3
20070 38 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  8 AS col2 FROM t
20080 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 32 0d  ab0..----..0..2.
20090 0a 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .2....onlyif mys
200a0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
200b0 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69  yntax: DIV for i
200c0 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
200d0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
200e0 72 74 20 6c 61 62 65 6c 2d 36 39 35 0d 0a 53 45  rt label-695..SE
200f0 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20  LECT ALL COUNT( 
20100 2a 20 29 20 44 49 56 20 2b 20 36 20 41 53 20 63  * ) DIV + 6 AS c
20110 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
20120 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  ---..0....skipif
20130 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
20140 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
20150 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
20160 39 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43  95..SELECT ALL C
20170 4f 55 4e 54 20 28 20 2a 20 29 20 2f 20 2b 20 36  OUNT ( * ) / + 6
20180 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
20190 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73  b1..----..0....s
201a0 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
201b0 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
201c0 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
201d0 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
201e0 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49  olumns..query II
201f0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
20200 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 2c 20   DISTINCT col1, 
20210 63 6f 6c 31 20 63 6f 6c 32 20 46 52 4f 4d 20 74  col1 col2 FROM t
20220 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31 0d  ab0..----..1..1.
20230 0a 32 31 0d 0a 32 31 0d 0a 38 31 0d 0a 38 31 0d  .21..21..81..81.
20240 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
20250 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
20260 4e 43 54 20 2b 20 2d 20 36 20 41 53 20 63 6f 6c  NCT + - 6 AS col
20270 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
20280 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 0d 0a 0d  or0..----..-6...
20290 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
202a0 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30  t..SELECT + col0
202b0 2c 20 2d 20 38 30 20 46 52 4f 4d 20 74 61 62 31  , - 80 FROM tab1
202c0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
202d0 35 31 0d 0a 2d 38 30 0d 0a 38 35 0d 0a 2d 38 30  51..-80..85..-80
202e0 0d 0a 39 31 0d 0a 2d 38 30 0d 0a 0d 0a 71 75 65  ..91..-80....que
202f0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
20300 4c 45 43 54 20 2d 20 28 20 2d 20 63 6f 6c 31 20  LECT - ( - col1 
20310 29 20 2a 20 2d 20 63 6f 6c 32 20 2d 20 39 31 20  ) * - col2 - 91 
20320 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
20330 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
20340 0a 2d 31 32 36 34 0d 0a 2d 33 31 37 31 0d 0a 2d  .-1264..-3171..-
20350 33 39 37 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  3977....onlyif m
20360 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
20370 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
20380 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
20390 2d 37 30 30 0d 0a 53 45 4c 45 43 54 20 4d 41 58  -700..SELECT MAX
203a0 28 20 2b 20 2d 20 31 30 20 29 20 41 53 20 63 6f  ( + - 10 ) AS co
203b0 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l0 FROM tab1..--
203c0 2d 2d 0d 0a 2d 31 30 0d 0a 0d 0a 73 6b 69 70 69  --..-10....skipi
203d0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
203e0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
203f0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
20400 37 30 30 0d 0a 53 45 4c 45 43 54 20 4d 41 58 20  700..SELECT MAX 
20410 28 20 2b 20 2d 20 31 30 20 29 20 41 53 20 63 6f  ( + - 10 ) AS co
20420 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l0 FROM tab1..--
20430 2d 2d 0d 0a 2d 31 30 0d 0a 0d 0a 71 75 65 72 79  --..-10....query
20440 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
20450 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30  CT DISTINCT col0
20460 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
20470 20 4e 55 4c 4c 20 3e 3d 20 4e 55 4c 4c 0d 0a 2d   NULL >= NULL..-
20480 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
20490 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
204a0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
204b0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
204c0 37 30 32 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20  702..SELECT - + 
204d0 37 30 20 2a 20 39 39 20 2a 20 2b 20 2d 20 43 4f  70 * 99 * + - CO
204e0 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 32  UNT( * ) AS col2
204f0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
20500 72 30 20 57 48 45 52 45 20 33 20 49 53 20 4e 55  r0 WHERE 3 IS NU
20510 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73  LL..----..0....s
20520 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
20530 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
20540 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
20550 62 65 6c 2d 37 30 32 0d 0a 53 45 4c 45 43 54 20  bel-702..SELECT 
20560 2d 20 2b 20 37 30 20 2a 20 39 39 20 2a 20 2b 20  - + 70 * 99 * + 
20570 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53  - COUNT ( * ) AS
20580 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
20590 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 33 20  AS cor0 WHERE 3 
205a0 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30  IS NULL..----..0
205b0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
205c0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
205d0 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a  DECIMAL type: ..
205e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
205f0 6c 61 62 65 6c 2d 37 30 33 0d 0a 53 45 4c 45 43  label-703..SELEC
20600 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  T DISTINCT - col
20610 30 20 2a 20 2b 20 63 6f 6c 30 20 2d 20 2d 20 2d  0 * + col0 - - -
20620 20 63 6f 6c 31 20 2a 20 2d 20 2d 20 63 6f 6c 32   col1 * - - col2
20630 20 2b 20 2d 20 2b 20 63 6f 6c 30 20 2a 20 2d 20   + - + col0 * - 
20640 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44 45  CAST( NULL AS DE
20650 43 49 4d 41 4c 20 29 20 41 53 20 63 6f 6c 32 20  CIMAL ) AS col2 
20660 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
20670 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  0..----..NULL...
20680 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
20690 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
206a0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
206b0 6c 61 62 65 6c 2d 37 30 33 0d 0a 53 45 4c 45 43  label-703..SELEC
206c0 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  T DISTINCT - col
206d0 30 20 2a 20 2b 20 63 6f 6c 30 20 2d 20 2d 20 2d  0 * + col0 - - -
206e0 20 63 6f 6c 31 20 2a 20 2d 20 2d 20 63 6f 6c 32   col1 * - - col2
206f0 20 2b 20 2d 20 2b 20 63 6f 6c 30 20 2a 20 2d 20   + - + col0 * - 
20700 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52  CAST ( NULL AS R
20710 45 41 4c 20 29 20 41 53 20 63 6f 6c 32 20 46 52  EAL ) AS col2 FR
20720 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
20730 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  .----..NULL....q
20740 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
20750 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
20760 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53  T * FROM tab0 AS
20770 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
20780 2b 20 36 39 20 42 45 54 57 45 45 4e 20 4e 55 4c  + 69 BETWEEN NUL
20790 4c 20 41 4e 44 20 2d 20 2b 20 63 6f 6c 31 0d 0a  L AND - + col1..
207a0 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
207b0 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37  ashing to c4b427
207c0 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30  65dff94eaaa46040
207d0 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 6f 6e  e537fb43b7....on
207e0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
207f0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
20800 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
20810 20 6c 61 62 65 6c 2d 37 30 35 0d 0a 53 45 4c 45   label-705..SELE
20820 43 54 20 35 30 20 2a 20 2d 20 31 38 20 2a 20 2b  CT 50 * - 18 * +
20830 20 2b 20 53 55 4d 28 20 44 49 53 54 49 4e 43 54   + SUM( DISTINCT
20840 20 35 31 20 29 20 46 52 4f 4d 20 74 61 62 32 20   51 ) FROM tab2 
20850 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
20860 34 35 39 30 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  45900....skipif 
20870 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
20880 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
20890 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 30  rowsort label-70
208a0 35 0d 0a 53 45 4c 45 43 54 20 35 30 20 2a 20 2d  5..SELECT 50 * -
208b0 20 31 38 20 2a 20 2b 20 2b 20 53 55 4d 20 28 20   18 * + + SUM ( 
208c0 44 49 53 54 49 4e 43 54 20 35 31 20 29 20 46 52  DISTINCT 51 ) FR
208d0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
208e0 0a 2d 2d 2d 2d 0d 0a 2d 34 35 39 30 30 0d 0a 0d  .----..-45900...
208f0 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
20900 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
20910 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
20920 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
20930 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
20940 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
20950 43 54 20 2b 20 33 31 20 2a 20 2d 20 2b 20 63 6f  CT + 31 * - + co
20960 6c 32 20 41 53 20 63 6f 6c 32 2c 20 2b 20 34 34  l2 AS col2, + 44
20970 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
20980 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
20990 31 32 34 30 0d 0a 34 34 0d 0a 2d 31 37 39 38 0d  1240..44..-1798.
209a0 0a 34 34 0d 0a 2d 37 31 33 0d 0a 34 34 0d 0a 0d  .44..-713..44...
209b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
209c0 0d 0a 53 45 4c 45 43 54 20 34 30 20 46 52 4f 4d  ..SELECT 40 FROM
209d0 20 74 61 62 30 20 57 48 45 52 45 20 4e 55 4c 4c   tab0 WHERE NULL
209e0 20 3e 20 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d   > + col2..----.
209f0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
20a00 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
20a10 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
20a20 32 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f  2 WHERE NOT - co
20a30 6c 30 20 2b 20 2b 20 63 6f 6c 32 20 2f 20 2b 20  l0 + + col2 / + 
20a40 31 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  11 IS NULL..----
20a50 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
20a60 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33  ng to 75c998aa53
20a70 61 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36  ac83218cbf2feb96
20a80 32 64 30 61 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66  2d0a49....onlyif
20a90 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
20aa0 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
20ab0 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  e: ..query II ro
20ac0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 30 39 0d  wsort label-709.
20ad0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41 53 54  .SELECT ALL CAST
20ae0 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
20af0 20 29 2c 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 63   ), - col0 * + c
20b00 6f 6c 31 20 2b 20 2d 20 2d 20 33 35 20 41 53 20  ol1 + - - 35 AS 
20b10 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col0 FROM tab1..
20b20 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 2d 33 39 30  ----..NULL..-390
20b30 0d 0a 4e 55 4c 4c 0d 0a 2d 34 32 34 32 0d 0a 4e  ..NULL..-4242..N
20b40 55 4c 4c 0d 0a 2d 36 37 39 0d 0a 0d 0a 73 6b 69  ULL..-679....ski
20b50 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
20b60 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
20b70 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
20b80 65 6c 2d 37 30 39 0d 0a 53 45 4c 45 43 54 20 41  el-709..SELECT A
20b90 4c 4c 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41  LL CAST ( NULL A
20ba0 53 20 49 4e 54 45 47 45 52 20 29 2c 20 2d 20 63  S INTEGER ), - c
20bb0 6f 6c 30 20 2a 20 2b 20 63 6f 6c 31 20 2b 20 2d  ol0 * + col1 + -
20bc0 20 2d 20 33 35 20 41 53 20 63 6f 6c 30 20 46 52   - 35 AS col0 FR
20bd0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab1..----..N
20be0 55 4c 4c 0d 0a 2d 33 39 30 0d 0a 4e 55 4c 4c 0d  ULL..-390..NULL.
20bf0 0a 2d 34 32 34 32 0d 0a 4e 55 4c 4c 0d 0a 2d 36  .-4242..NULL..-6
20c00 37 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  79....query I ro
20c10 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
20c20 36 39 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  69 FROM tab1 WHE
20c30 52 45 20 28 20 4e 55 4c 4c 20 3c 20 28 20 4e 55  RE ( NULL < ( NU
20c40 4c 4c 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  LL ) )..----....
20c50 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
20c60 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
20c70 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 32 30 20 2d   - col1 + - 20 -
20c80 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52   col2 AS col0 FR
20c90 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
20ca0 31 32 30 0d 0a 2d 31 34 38 0d 0a 2d 35 31 0d 0a  120..-148..-51..
20cb0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
20cc0 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
20cd0 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
20ce0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
20cf0 61 62 65 6c 2d 37 31 32 0d 0a 53 45 4c 45 43 54  abel-712..SELECT
20d00 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31   ALL * FROM tab1
20d10 20 57 48 45 52 45 20 2b 20 63 6f 6c 31 20 3c 20   WHERE + col1 < 
20d20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  + CAST( NULL AS 
20d30 53 49 47 4e 45 44 20 29 0d 0a 2d 2d 2d 2d 0d 0a  SIGNED )..----..
20d40 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
20d50 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
20d60 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
20d70 72 74 20 6c 61 62 65 6c 2d 37 31 32 0d 0a 53 45  rt label-712..SE
20d80 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
20d90 74 61 62 31 20 57 48 45 52 45 20 2b 20 63 6f 6c  tab1 WHERE + col
20da0 31 20 3c 20 2b 20 43 41 53 54 20 28 20 4e 55 4c  1 < + CAST ( NUL
20db0 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 0d 0a  L AS INTEGER )..
20dc0 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
20dd0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
20de0 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
20df0 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77   ..query III row
20e00 73 6f 72 74 20 6c 61 62 65 6c 2d 37 31 33 0d 0a  sort label-713..
20e10 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
20e20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  * FROM tab2 WHER
20e30 45 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c  E + col2 * + col
20e40 31 20 4e 4f 54 20 49 4e 20 28 20 2b 20 63 6f 6c  1 NOT IN ( + col
20e50 32 20 2f 20 2d 20 2b 20 63 6f 6c 30 20 2b 20 2d  2 / - + col0 + -
20e60 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
20e70 49 47 4e 45 44 20 29 2c 20 63 6f 6c 30 2c 20 2b  IGNED ), col0, +
20e80 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   col2 )..----...
20e90 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
20ea0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
20eb0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
20ec0 74 20 6c 61 62 65 6c 2d 37 31 33 0d 0a 53 45 4c  t label-713..SEL
20ed0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
20ee0 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 2b  ROM tab2 WHERE +
20ef0 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 31 20 4e   col2 * + col1 N
20f00 4f 54 20 49 4e 20 28 20 2b 20 63 6f 6c 32 20 2f  OT IN ( + col2 /
20f10 20 2d 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 43 41   - + col0 + - CA
20f20 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
20f30 45 47 45 52 20 29 2c 20 63 6f 6c 30 2c 20 2b 20  EGER ), col0, + 
20f40 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  col2 )..----....
20f50 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
20f60 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
20f70 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
20f80 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
20f90 2d 37 31 34 0d 0a 53 45 4c 45 43 54 20 44 49 53  -714..SELECT DIS
20fa0 54 49 4e 43 54 20 2b 20 2d 20 28 20 2b 20 2d 20  TINCT + - ( + - 
20fb0 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
20fc0 47 4e 45 44 20 29 20 29 20 2b 20 2b 20 36 37 20  GNED ) ) + + 67 
20fd0 2a 20 28 20 2d 20 63 6f 6c 31 20 29 20 46 52 4f  * ( - col1 ) FRO
20fe0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
20ff0 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  ----..NULL....sk
21000 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
21010 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
21020 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
21030 65 6c 2d 37 31 34 0d 0a 53 45 4c 45 43 54 20 44  el-714..SELECT D
21040 49 53 54 49 4e 43 54 20 2b 20 2d 20 28 20 2b 20  ISTINCT + - ( + 
21050 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
21060 20 49 4e 54 45 47 45 52 20 29 20 29 20 2b 20 2b   INTEGER ) ) + +
21070 20 36 37 20 2a 20 28 20 2d 20 63 6f 6c 31 20 29   67 * ( - col1 )
21080 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
21090 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
210a0 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
210b0 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
210c0 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
210d0 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
210e0 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
210f0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
21100 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20  CT DISTINCT - + 
21110 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 30 20 63 6f  col2 * + col0 co
21120 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
21130 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 38 39  cor0..----..-489
21140 36 0d 0a 2d 35 30 31 35 0d 0a 2d 36 31 38 38 0d  6..-5015..-6188.
21150 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
21160 72 74 0d 0a 53 45 4c 45 43 54 20 36 34 20 2d 20  rt..SELECT 64 - 
21170 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
21180 2d 2d 2d 2d 0d 0a 2d 31 37 0d 0a 34 33 0d 0a 36  ----..-17..43..6
21190 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  3....query I row
211a0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63  sort..SELECT - c
211b0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48  ol2 FROM tab1 WH
211c0 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29  ERE NOT ( NULL )
211d0 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d   < NULL..----...
211e0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
211f0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
21200 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
21210 6f 72 74 20 6c 61 62 65 6c 2d 37 31 38 0d 0a 53  ort label-718..S
21220 45 4c 45 43 54 20 2b 20 53 55 4d 28 20 39 36 20  ELECT + SUM( 96 
21230 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  ) FROM tab1..---
21240 2d 0d 0a 32 38 38 0d 0a 0d 0a 73 6b 69 70 69 66  -..288....skipif
21250 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
21260 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
21270 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
21280 31 38 0d 0a 53 45 4c 45 43 54 20 2b 20 53 55 4d  18..SELECT + SUM
21290 20 28 20 39 36 20 29 20 46 52 4f 4d 20 74 61 62   ( 96 ) FROM tab
212a0 31 0d 0a 2d 2d 2d 2d 0d 0a 32 38 38 0d 0a 0d 0a  1..----..288....
212b0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
212c0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
212d0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
212e0 72 74 20 6c 61 62 65 6c 2d 37 31 39 0d 0a 53 45  rt label-719..SE
212f0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
21300 4d 49 4e 28 20 28 20 37 34 20 29 20 29 20 46 52  MIN( ( 74 ) ) FR
21310 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 37  OM tab2..----..7
21320 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  4....skipif mysq
21330 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
21340 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
21350 6f 72 74 20 6c 61 62 65 6c 2d 37 31 39 0d 0a 53  ort label-719..S
21360 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
21370 20 4d 49 4e 20 28 20 28 20 37 34 20 29 20 29 20   MIN ( ( 74 ) ) 
21380 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
21390 0a 37 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  .74....query III
213a0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
213b0 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32   ALL * FROM tab2
213c0 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c   WHERE NOT ( NUL
213d0 4c 20 29 20 4e 4f 54 20 49 4e 20 28 20 63 6f 6c  L ) NOT IN ( col
213e0 30 20 2a 20 2d 20 63 6f 6c 31 20 29 0d 0a 2d 2d  0 * - col1 )..--
213f0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
21400 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
21410 4c 20 2b 20 28 20 2b 20 63 6f 6c 30 20 29 20 41  L + ( + col0 ) A
21420 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
21430 20 57 48 45 52 45 20 2b 20 63 6f 6c 30 20 3c 3e   WHERE + col0 <>
21440 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d   ( NULL )..----.
21450 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
21460 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 38 36 20  rt..SELECT - 86 
21470 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
21480 28 20 63 6f 6c 30 20 29 20 2a 20 2d 20 63 6f 6c  ( col0 ) * - col
21490 31 20 3c 20 32 37 20 2b 20 2b 20 31 36 0d 0a 2d  1 < 27 + + 16..-
214a0 2d 2d 2d 0d 0a 2d 38 36 0d 0a 2d 38 36 0d 0a 2d  ---..-86..-86..-
214b0 38 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  86....onlyif mys
214c0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
214d0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
214e0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
214f0 32 33 0d 0a 53 45 4c 45 43 54 20 53 55 4d 28 20  23..SELECT SUM( 
21500 35 36 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  56 ) AS col2 FRO
21510 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 36  M tab1..----..16
21520 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  8....skipif mysq
21530 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
21540 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
21550 6f 72 74 20 6c 61 62 65 6c 2d 37 32 33 0d 0a 53  ort label-723..S
21560 45 4c 45 43 54 20 53 55 4d 20 28 20 35 36 20 29  ELECT SUM ( 56 )
21570 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
21580 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 36 38 0d 0a 0d  b1..----..168...
21590 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
215a0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
215b0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
215c0 6f 72 74 20 6c 61 62 65 6c 2d 37 32 34 0d 0a 53  ort label-724..S
215d0 45 4c 45 43 54 20 28 20 2b 20 43 4f 55 4e 54 28  ELECT ( + COUNT(
215e0 20 2b 20 28 20 38 39 20 29 20 29 20 29 20 46 52   + ( 89 ) ) ) FR
215f0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33  OM tab2..----..3
21600 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
21610 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
21620 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
21630 72 74 20 6c 61 62 65 6c 2d 37 32 34 0d 0a 53 45  rt label-724..SE
21640 4c 45 43 54 20 28 20 2b 20 43 4f 55 4e 54 20 28  LECT ( + COUNT (
21650 20 2b 20 28 20 38 39 20 29 20 29 20 29 20 46 52   + ( 89 ) ) ) FR
21660 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33  OM tab2..----..3
21670 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
21680 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
21690 49 4e 43 54 20 2d 20 34 31 20 2b 20 63 6f 6c 30  INCT - 41 + col0
216a0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
216b0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 34 34  b1..----..10..44
216c0 0d 0a 35 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..50....onlyif m
216d0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
216e0 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65  ax: DECIMAL type
216f0 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  : ..query III ro
21700 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 32 36 0d  wsort label-726.
21710 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
21720 61 62 31 20 57 48 45 52 45 20 28 20 2b 20 43 41  ab1 WHERE ( + CA
21730 53 54 28 20 63 6f 6c 30 20 41 53 20 44 45 43 49  ST( col0 AS DECI
21740 4d 41 4c 20 29 20 29 20 3c 20 4e 55 4c 4c 0d 0a  MAL ) ) < NULL..
21750 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ----....skipif m
21760 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
21770 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49  tible..query III
21780 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
21790 32 36 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  26..SELECT * FRO
217a0 4d 20 74 61 62 31 20 57 48 45 52 45 20 28 20 2b  M tab1 WHERE ( +
217b0 20 43 41 53 54 20 28 20 63 6f 6c 30 20 41 53 20   CAST ( col0 AS 
217c0 52 45 41 4c 20 29 20 29 20 3c 20 4e 55 4c 4c 0d  REAL ) ) < NULL.
217d0 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
217e0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
217f0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
21800 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
21810 6c 2d 37 32 37 0d 0a 53 45 4c 45 43 54 20 44 49  l-727..SELECT DI
21820 53 54 49 4e 43 54 20 2d 20 35 39 20 2b 20 2b 20  STINCT - 59 + + 
21830 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20 63 6f  MAX( DISTINCT co
21840 6c 30 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  l0 ) AS col1 FRO
21850 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 38  M tab0..----..38
21860 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
21870 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
21880 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
21890 72 74 20 6c 61 62 65 6c 2d 37 32 37 0d 0a 53 45  rt label-727..SE
218a0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
218b0 35 39 20 2b 20 2b 20 4d 41 58 20 28 20 44 49 53  59 + + MAX ( DIS
218c0 54 49 4e 43 54 20 63 6f 6c 30 20 29 20 41 53 20  TINCT col0 ) AS 
218d0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
218e0 2d 2d 2d 2d 0d 0a 33 38 0d 0a 0d 0a 6f 6e 6c 79  ----..38....only
218f0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
21900 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
21910 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
21920 61 62 65 6c 2d 37 32 38 0d 0a 53 45 4c 45 43 54  abel-728..SELECT
21930 20 41 4c 4c 20 43 4f 55 4e 54 28 20 2a 20 29 20   ALL COUNT( * ) 
21940 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
21950 31 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 33 38  1 WHERE NOT - 38
21960 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
21970 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
21980 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
21990 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
219a0 6f 72 74 20 6c 61 62 65 6c 2d 37 32 38 0d 0a 53  ort label-728..S
219b0 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20  ELECT ALL COUNT 
219c0 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ( * ) AS col0 FR
219d0 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f  OM tab1 WHERE NO
219e0 54 20 2d 20 33 38 20 49 53 20 4e 55 4c 4c 0d 0a  T - 38 IS NULL..
219f0 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79  ----..3....query
21a00 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
21a10 43 54 20 38 35 20 2b 20 63 6f 6c 30 20 46 52 4f  CT 85 + col0 FRO
21a20 4d 20 74 61 62 31 20 57 48 45 52 45 20 2b 20 63  M tab1 WHERE + c
21a30 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ol2 IS NOT NULL.
21a40 0a 2d 2d 2d 2d 0d 0a 31 33 36 0d 0a 31 37 30 0d  .----..136..170.
21a50 0a 31 37 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .176....onlyif m
21a60 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
21a70 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
21a80 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
21a90 72 74 20 6c 61 62 65 6c 2d 37 33 30 0d 0a 53 45  rt label-730..SE
21aa0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
21ab0 6c 30 20 2a 20 2d 20 63 6f 6c 31 20 41 53 20 63  l0 * - col1 AS c
21ac0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 57 48  ol1 FROM tab1 WH
21ad0 45 52 45 20 4e 4f 54 20 28 20 2d 20 43 41 53 54  ERE NOT ( - CAST
21ae0 28 20 2b 20 37 33 20 41 53 20 53 49 47 4e 45 44  ( + 73 AS SIGNED
21af0 20 29 20 2b 20 63 6f 6c 31 20 29 20 42 45 54 57   ) + col1 ) BETW
21b00 45 45 4e 20 28 20 4e 55 4c 4c 20 29 20 41 4e 44  EEN ( NULL ) AND
21b10 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73   NULL..----....s
21b20 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
21b30 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
21b40 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
21b50 62 65 6c 2d 37 33 30 0d 0a 53 45 4c 45 43 54 20  bel-730..SELECT 
21b60 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 2a 20  DISTINCT col0 * 
21b70 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46  - col1 AS col1 F
21b80 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e  ROM tab1 WHERE N
21b90 4f 54 20 28 20 2d 20 43 41 53 54 20 28 20 2b 20  OT ( - CAST ( + 
21ba0 37 33 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  73 AS INTEGER ) 
21bb0 2b 20 63 6f 6c 31 20 29 20 42 45 54 57 45 45 4e  + col1 ) BETWEEN
21bc0 20 28 20 4e 55 4c 4c 20 29 20 41 4e 44 20 4e 55   ( NULL ) AND NU
21bd0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
21be0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
21bf0 45 43 54 20 2d 20 36 37 20 46 52 4f 4d 20 74 61  ECT - 67 FROM ta
21c00 62 31 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  b1 WHERE NOT NUL
21c10 4c 20 42 45 54 57 45 45 4e 20 2d 20 63 6f 6c 31  L BETWEEN - col1
21c20 20 41 4e 44 20 33 35 0d 0a 2d 2d 2d 2d 0d 0a 0d   AND 35..----...
21c30 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
21c40 0d 0a 53 45 4c 45 43 54 20 2b 20 38 33 20 46 52  ..SELECT + 83 FR
21c50 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 63 6f  OM tab2 WHERE co
21c60 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  l0 IS NOT NULL..
21c70 2d 2d 2d 2d 0d 0a 38 33 0d 0a 38 33 0d 0a 38 33  ----..83..83..83
21c80 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
21c90 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 37 31  ort..SELECT + 71
21ca0 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   + col2 FROM tab
21cb0 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 38 0d 0a 31 37  0..----..118..17
21cc0 30 0d 0a 38 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  0..81....onlyif 
21cd0 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
21ce0 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70  tax: DECIMAL typ
21cf0 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72  e: ..query III r
21d00 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 33 34  owsort label-734
21d10 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
21d20 74 61 62 31 20 57 48 45 52 45 20 63 6f 6c 30 20  tab1 WHERE col0 
21d30 2f 20 2d 20 63 6f 6c 32 20 4e 4f 54 20 49 4e 20  / - col2 NOT IN 
21d40 28 20 2b 20 38 34 20 2b 20 43 41 53 54 28 20 4e  ( + 84 + CAST( N
21d50 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29  ULL AS DECIMAL )
21d60 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70   )..----....skip
21d70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
21d80 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
21d90 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62   III rowsort lab
21da0 65 6c 2d 37 33 34 0d 0a 53 45 4c 45 43 54 20 2a  el-734..SELECT *
21db0 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
21dc0 20 63 6f 6c 30 20 2f 20 2d 20 63 6f 6c 32 20 4e   col0 / - col2 N
21dd0 4f 54 20 49 4e 20 28 20 2b 20 38 34 20 2b 20 43  OT IN ( + 84 + C
21de0 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45  AST ( NULL AS RE
21df0 41 4c 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  AL ) )..----....
21e00 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
21e10 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49  AST syntax: DECI
21e20 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  MAL type: ..quer
21e30 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
21e40 6c 2d 37 33 35 0d 0a 53 45 4c 45 43 54 20 41 4c  l-735..SELECT AL
21e50 4c 20 2b 20 28 20 36 34 20 29 20 2d 20 2d 20 43  L + ( 64 ) - - C
21e60 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43  AST( NULL AS DEC
21e70 49 4d 41 4c 20 29 20 46 52 4f 4d 20 74 61 62 31  IMAL ) FROM tab1
21e80 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
21e90 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  LL..NULL....skip
21ea0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
21eb0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
21ec0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
21ed0 2d 37 33 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -735..SELECT ALL
21ee0 20 2b 20 28 20 36 34 20 29 20 2d 20 2d 20 43 41   + ( 64 ) - - CA
21ef0 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41  ST ( NULL AS REA
21f00 4c 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  L ) FROM tab1..-
21f10 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
21f20 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
21f30 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
21f40 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   - col2 FROM tab
21f50 32 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f  2 WHERE NOT - co
21f60 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  l2 IS NOT NULL..
21f70 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
21f80 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
21f90 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
21fa0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
21fb0 2d 37 33 37 0d 0a 53 45 4c 45 43 54 20 2b 20 43  -737..SELECT + C
21fc0 4f 55 4e 54 28 20 2a 20 29 20 2a 20 31 20 46 52  OUNT( * ) * 1 FR
21fd0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
21fe0 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70  .----..3....skip
21ff0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
22000 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
22010 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
22020 2d 37 33 37 0d 0a 53 45 4c 45 43 54 20 2b 20 43  -737..SELECT + C
22030 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 31 20 46  OUNT ( * ) * 1 F
22040 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
22050 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65  ..----..3....que
22060 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
22070 4c 45 43 54 20 63 6f 6c 31 20 46 52 4f 4d 20 74  LECT col1 FROM t
22080 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
22090 45 20 4e 4f 54 20 4e 55 4c 4c 20 3c 3e 20 2d 20  E NOT NULL <> - 
220a0 63 6f 6c 30 20 2b 20 2d 20 39 31 0d 0a 2d 2d 2d  col0 + - 91..---
220b0 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
220c0 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
220d0 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
220e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
220f0 6c 61 62 65 6c 2d 37 33 39 0d 0a 53 45 4c 45 43  label-739..SELEC
22100 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20  T DISTINCT col2 
22110 44 49 56 20 33 31 20 46 52 4f 4d 20 74 61 62 30  DIV 31 FROM tab0
22120 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
22130 30 0d 0a 31 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69  0..1..3....skipi
22140 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
22150 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
22160 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
22170 37 33 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  739..SELECT DIST
22180 49 4e 43 54 20 63 6f 6c 32 20 2f 20 33 31 20 46  INCT col2 / 31 F
22190 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
221a0 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31 0d 0a 33 0d  ..----..0..1..3.
221b0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
221c0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
221d0 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
221e0 32 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c 3e 20  2 WHERE NULL <> 
221f0 2b 20 63 6f 6c 30 20 2a 20 2d 20 36 30 0d 0a 2d  + col0 * - 60..-
22200 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
22210 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
22220 4c 4c 20 35 38 20 2b 20 2b 20 63 6f 6c 32 20 41  LL 58 + + col2 A
22230 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
22240 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
22250 31 31 36 0d 0a 38 31 0d 0a 39 38 0d 0a 0d 0a 71  116..81..98....q
22260 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
22270 53 45 4c 45 43 54 20 2b 20 32 39 20 2a 20 2d 20  SELECT + 29 * - 
22280 63 6f 6c 31 20 2b 20 2b 20 37 36 20 2a 20 2d 20  col1 + + 76 * - 
22290 39 36 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  96 AS col1 FROM 
222a0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
222b0 2d 2d 0d 0a 2d 38 37 37 35 0d 0a 2d 39 32 33 39  --..-8775..-9239
222c0 0d 0a 2d 39 35 32 39 0d 0a 0d 0a 71 75 65 72 79  ..-9529....query
222d0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
222e0 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30  CT DISTINCT col0
222f0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
22300 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e  r0 WHERE NOT ( N
22310 55 4c 4c 20 29 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d  ULL ) <> NULL..-
22320 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
22330 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 37  owsort..SELECT 7
22340 33 20 2b 20 32 33 20 46 52 4f 4d 20 74 61 62 32  3 + 23 FROM tab2
22350 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
22360 39 36 0d 0a 39 36 0d 0a 39 36 0d 0a 0d 0a 71 75  96..96..96....qu
22370 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
22380 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
22390 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
223a0 63 6f 72 30 20 57 48 45 52 45 20 28 20 33 30 20  cor0 WHERE ( 30 
223b0 29 20 3d 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d  ) = ( NULL )..--
223c0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
223d0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
223e0 4c 20 2d 20 63 6f 6c 31 20 2d 20 2d 20 39 39 20  L - col1 - - 99 
223f0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
22400 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
22410 0a 31 38 0d 0a 37 38 0d 0a 39 38 0d 0a 0d 0a 6f  .18..78..98....o
22420 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
22430 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
22440 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
22450 74 20 6c 61 62 65 6c 2d 37 34 37 0d 0a 53 45 4c  t label-747..SEL
22460 45 43 54 20 4d 49 4e 28 20 44 49 53 54 49 4e 43  ECT MIN( DISTINC
22470 54 20 39 38 20 29 20 2f 20 2d 20 43 4f 55 4e 54  T 98 ) / - COUNT
22480 28 20 2d 20 63 6f 6c 30 20 29 20 41 53 20 63 6f  ( - col0 ) AS co
22490 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
224a0 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 32 20  cor0 WHERE col2 
224b0 2a 20 2d 20 38 35 20 4e 4f 54 20 42 45 54 57 45  * - 85 NOT BETWE
224c0 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 37 33 0d 0a  EN NULL AND 73..
224d0 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  ----..NULL....sk
224e0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
224f0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
22500 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
22510 65 6c 2d 37 34 37 0d 0a 53 45 4c 45 43 54 20 4d  el-747..SELECT M
22520 49 4e 20 28 20 44 49 53 54 49 4e 43 54 20 39 38  IN ( DISTINCT 98
22530 20 29 20 2f 20 2d 20 43 4f 55 4e 54 20 28 20 2d   ) / - COUNT ( -
22540 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 31 20   col0 ) AS col1 
22550 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
22560 30 20 57 48 45 52 45 20 63 6f 6c 32 20 2a 20 2d  0 WHERE col2 * -
22570 20 38 35 20 4e 4f 54 20 42 45 54 57 45 45 4e 20   85 NOT BETWEEN 
22580 4e 55 4c 4c 20 41 4e 44 20 37 33 0d 0a 2d 2d 2d  NULL AND 73..---
22590 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79  -..NULL....query
225a0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
225b0 43 54 20 41 4c 4c 20 37 39 20 41 53 20 63 6f 6c  CT ALL 79 AS col
225c0 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
225d0 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 39 30  or0 WHERE NOT 90
225e0 20 2a 20 2b 20 63 6f 6c 31 20 4e 4f 54 20 42 45   * + col1 NOT BE
225f0 54 57 45 45 4e 20 2d 20 63 6f 6c 32 20 41 4e 44  TWEEN - col2 AND
22600 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d   + col1..----...
22610 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
22620 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
22630 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  NCT * FROM tab1 
22640 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
22650 54 20 28 20 63 6f 6c 31 20 29 20 3c 20 37 37 20  T ( col1 ) < 77 
22660 2a 20 37 20 2b 20 28 20 2b 20 63 6f 6c 32 20 2b  * 7 + ( + col2 +
22670 20 2b 20 34 30 20 2a 20 63 6f 6c 31 20 29 0d 0a   + 40 * col1 )..
22680 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
22690 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
226a0 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48  T * FROM tab0 WH
226b0 45 52 45 20 2b 20 32 38 20 2b 20 36 37 20 2a 20  ERE + 28 + 67 * 
226c0 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col2 IS NOT NULL
226d0 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
226e0 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34   hashing to c4b4
226f0 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30  2765dff94eaaa460
22700 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a  40e537fb43b7....
22710 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
22720 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
22730 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
22740 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
22750 2d 37 35 31 0d 0a 53 45 4c 45 43 54 20 43 41 53  -751..SELECT CAS
22760 54 28 20 2d 20 35 36 20 41 53 20 53 49 47 4e 45  T( - 56 AS SIGNE
22770 44 20 29 20 2a 20 2d 20 63 6f 6c 30 20 2b 20 28  D ) * - col0 + (
22780 20 2b 20 28 20 2d 20 35 34 20 29 20 29 20 2a 20   + ( - 54 ) ) * 
22790 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46  + col0 AS col2 F
227a0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
227b0 31 30 32 0d 0a 31 37 30 0d 0a 31 38 32 0d 0a 0d  102..170..182...
227c0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
227d0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
227e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
227f0 6c 61 62 65 6c 2d 37 35 31 0d 0a 53 45 4c 45 43  label-751..SELEC
22800 54 20 43 41 53 54 20 28 20 2d 20 35 36 20 41 53  T CAST ( - 56 AS
22810 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2d 20 63   INTEGER ) * - c
22820 6f 6c 30 20 2b 20 28 20 2b 20 28 20 2d 20 35 34  ol0 + ( + ( - 54
22830 20 29 20 29 20 2a 20 2b 20 63 6f 6c 30 20 41 53   ) ) * + col0 AS
22840 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
22850 0a 2d 2d 2d 2d 0d 0a 31 30 32 0d 0a 31 37 30 0d  .----..102..170.
22860 0a 31 38 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .182....onlyif m
22870 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
22880 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
22890 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77   ..query III row
228a0 73 6f 72 74 20 6c 61 62 65 6c 2d 37 35 32 0d 0a  sort label-752..
228b0 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
228c0 62 32 20 57 48 45 52 45 20 2d 20 43 41 53 54 28  b2 WHERE - CAST(
228d0 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
228e0 29 20 2a 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c  ) * col0 IS NULL
228f0 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
22900 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39   hashing to 75c9
22910 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62 66  98aa53ac83218cbf
22920 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a  2feb962d0a49....
22930 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
22940 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
22950 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
22960 20 6c 61 62 65 6c 2d 37 35 32 0d 0a 53 45 4c 45   label-752..SELE
22970 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  CT * FROM tab2 W
22980 48 45 52 45 20 2d 20 43 41 53 54 20 28 20 4e 55  HERE - CAST ( NU
22990 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
229a0 2a 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a  * col0 IS NULL..
229b0 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
229c0 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38  ashing to 75c998
229d0 61 61 35 33 61 63 38 33 32 31 38 63 62 66 32 66  aa53ac83218cbf2f
229e0 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 71 75  eb962d0a49....qu
229f0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
22a00 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
22a10 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
22a20 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 30 20 49 4e  RE NOT - col0 IN
22a30 20 28 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 31   ( col0 + + col1
22a40 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75   )..----..9 valu
22a50 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34  es hashing to c4
22a60 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34  b42765dff94eaaa4
22a70 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a  6040e537fb43b7..
22a80 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
22a90 74 0d 0a 53 45 4c 45 43 54 20 28 20 2d 20 2b 20  t..SELECT ( - + 
22aa0 28 20 63 6f 6c 30 20 29 20 29 20 46 52 4f 4d 20  ( col0 ) ) FROM 
22ab0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d  tab2..----..-46.
22ac0 0a 2d 36 34 0d 0a 2d 37 35 0d 0a 0d 0a 6f 6e 6c  .-64..-75....onl
22ad0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
22ae0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
22af0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
22b00 6c 61 62 65 6c 2d 37 35 35 0d 0a 53 45 4c 45 43  label-755..SELEC
22b10 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20 2a 20 29  T ALL COUNT( * )
22b20 20 2b 20 2b 20 2b 20 31 30 20 46 52 4f 4d 20 74   + + + 10 FROM t
22b30 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 33 0d 0a 0d  ab1..----..13...
22b40 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
22b50 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
22b60 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
22b70 6c 61 62 65 6c 2d 37 35 35 0d 0a 53 45 4c 45 43  label-755..SELEC
22b80 54 20 41 4c 4c 20 43 4f 55 4e 54 20 28 20 2a 20  T ALL COUNT ( * 
22b90 29 20 2b 20 2b 20 2b 20 31 30 20 46 52 4f 4d 20  ) + + + 10 FROM 
22ba0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 33 0d 0a  tab1..----..13..
22bb0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
22bc0 74 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 2d 20  t..SELECT + ( - 
22bd0 31 34 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  14 ) AS col2 FRO
22be0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
22bf0 2d 2d 2d 2d 0d 0a 2d 31 34 0d 0a 2d 31 34 0d 0a  ----..-14..-14..
22c00 2d 31 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  -14....query III
22c10 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
22c20 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
22c30 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28  cor0 WHERE NOT (
22c40 20 2b 20 63 6f 6c 31 20 29 20 4e 4f 54 20 42 45   + col1 ) NOT BE
22c50 54 57 45 45 4e 20 63 6f 6c 32 20 41 4e 44 20 4e  TWEEN col2 AND N
22c60 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
22c70 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
22c80 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
22c90 63 6f 6c 32 20 2a 20 2b 20 2d 20 32 38 20 41 53  col2 * + - 28 AS
22ca0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
22cb0 0a 2d 2d 2d 2d 0d 0a 2d 31 31 32 30 0d 0a 2d 31  .----..-1120..-1
22cc0 36 32 34 0d 0a 2d 36 34 34 0d 0a 0d 0a 71 75 65  624..-644....que
22cd0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
22ce0 4c 45 43 54 20 33 31 20 2a 20 2b 20 63 6f 6c 32  LECT 31 * + col2
22cf0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
22d00 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 38 32 39 0d 0a  b1..----..1829..
22d10 32 31 30 38 0d 0a 32 39 37 36 0d 0a 0d 0a 71 75  2108..2976....qu
22d20 65 72 79 20 49 49 49 49 49 49 20 72 6f 77 73 6f  ery IIIIII rowso
22d30 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
22d40 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
22d50 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
22d60 62 30 20 63 6f 72 31 20 57 48 45 52 45 20 36 30  b0 cor1 WHERE 60
22d70 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 28 20 4e   NOT BETWEEN ( N
22d80 55 4c 4c 20 29 20 41 4e 44 20 4e 55 4c 4c 0d 0a  ULL ) AND NULL..
22d90 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
22da0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
22db0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
22dc0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
22dd0 2d 37 36 31 0d 0a 53 45 4c 45 43 54 20 43 4f 55  -761..SELECT COU
22de0 4e 54 28 20 2a 20 29 20 2a 20 36 33 20 41 53 20  NT( * ) * 63 AS 
22df0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 57  col2 FROM tab2 W
22e00 48 45 52 45 20 4e 4f 54 20 28 20 28 20 2b 20 63  HERE NOT ( ( + c
22e10 6f 6c 30 20 29 20 49 53 20 4e 55 4c 4c 20 29 0d  ol0 ) IS NULL ).
22e20 0a 2d 2d 2d 2d 0d 0a 31 38 39 0d 0a 0d 0a 73 6b  .----..189....sk
22e30 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
22e40 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
22e50 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
22e60 65 6c 2d 37 36 31 0d 0a 53 45 4c 45 43 54 20 43  el-761..SELECT C
22e70 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 36 33 20  OUNT ( * ) * 63 
22e80 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
22e90 32 20 57 48 45 52 45 20 4e 4f 54 20 28 20 28 20  2 WHERE NOT ( ( 
22ea0 2b 20 63 6f 6c 30 20 29 20 49 53 20 4e 55 4c 4c  + col0 ) IS NULL
22eb0 20 29 0d 0a 2d 2d 2d 2d 0d 0a 31 38 39 0d 0a 0d   )..----..189...
22ec0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
22ed0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
22ee0 54 20 2d 20 31 39 20 2a 20 2d 20 2d 20 28 20 2b  T - 19 * - - ( +
22ef0 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62   col0 ) FROM tab
22f00 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
22f10 0a 2d 31 36 35 33 0d 0a 2d 31 38 34 33 0d 0a 2d  .-1653..-1843..-
22f20 32 38 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  285....onlyif my
22f30 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
22f40 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
22f50 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
22f60 37 36 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  763..SELECT DIST
22f70 49 4e 43 54 20 2b 20 2d 20 43 4f 55 4e 54 28 20  INCT + - COUNT( 
22f80 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20  DISTINCT + col1 
22f90 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
22fa0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d  or0..----..-3...
22fb0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
22fc0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
22fd0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
22fe0 6c 61 62 65 6c 2d 37 36 33 0d 0a 53 45 4c 45 43  label-763..SELEC
22ff0 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 43  T DISTINCT + - C
23000 4f 55 4e 54 20 28 20 44 49 53 54 49 4e 43 54 20  OUNT ( DISTINCT 
23010 2b 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61  + col1 ) FROM ta
23020 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
23030 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  ..-3....skipif p
23040 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
23050 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
23060 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
23070 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
23080 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
23090 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 28 20 38  ..SELECT + - ( 8
230a0 36 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  6 ) col0 FROM ta
230b0 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b1 cor0..----..-
230c0 38 36 0d 0a 2d 38 36 0d 0a 2d 38 36 0d 0a 0d 0a  86..-86..-86....
230d0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
230e0 0a 53 45 4c 45 43 54 20 28 20 2b 20 63 6f 6c 32  .SELECT ( + col2
230f0 20 29 20 2a 20 36 20 41 53 20 63 6f 6c 30 20 46   ) * 6 AS col0 F
23100 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
23110 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20   WHERE NOT col1 
23120 2b 20 2b 20 2d 20 28 20 2b 20 63 6f 6c 30 20 29  + + - ( + col0 )
23130 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
23140 32 38 32 0d 0a 35 39 34 0d 0a 36 30 0d 0a 0d 0a  282..594..60....
23150 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
23160 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 37 20  .SELECT ALL - 7 
23170 2a 20 2d 20 31 20 2b 20 2d 20 37 32 20 46 52 4f  * - 1 + - 72 FRO
23180 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
23190 2d 2d 2d 2d 0d 0a 2d 36 35 0d 0a 2d 36 35 0d 0a  ----..-65..-65..
231a0 2d 36 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  -65....query III
231b0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
231c0 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
231d0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28  cor0 WHERE NOT (
231e0 20 2b 20 39 31 20 2a 20 2b 20 2b 20 63 6f 6c 32   + 91 * + + col2
231f0 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a   ) IS NOT NULL..
23200 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
23210 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
23220 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
23230 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
23240 2d 37 36 38 0d 0a 53 45 4c 45 43 54 20 44 49 53  -768..SELECT DIS
23250 54 49 4e 43 54 20 2b 20 53 55 4d 28 20 2b 20 2b  TINCT + SUM( + +
23260 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62   col0 ) FROM tab
23270 32 0d 0a 2d 2d 2d 2d 0d 0a 31 38 35 0d 0a 0d 0a  2..----..185....
23280 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
23290 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
232a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
232b0 61 62 65 6c 2d 37 36 38 0d 0a 53 45 4c 45 43 54  abel-768..SELECT
232c0 20 44 49 53 54 49 4e 43 54 20 2b 20 53 55 4d 20   DISTINCT + SUM 
232d0 28 20 2b 20 2b 20 63 6f 6c 30 20 29 20 46 52 4f  ( + + col0 ) FRO
232e0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 38  M tab2..----..18
232f0 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  5....query I row
23300 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
23310 54 49 4e 43 54 20 28 20 34 35 20 29 20 41 53 20  TINCT ( 45 ) AS 
23320 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
23330 2d 2d 2d 2d 0d 0a 34 35 0d 0a 0d 0a 71 75 65 72  ----..45....quer
23340 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
23350 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
23360 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20   tab1 WHERE NOT 
23370 2b 20 34 31 20 2a 20 38 30 20 49 53 20 4e 4f 54  + 41 * 80 IS NOT
23380 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
23390 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
233a0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28 20 2d 20  .SELECT ALL ( - 
233b0 2d 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 31  - col2 ) AS col1
233c0 2c 20 2b 20 28 20 2d 20 37 32 20 29 20 2a 20 2b  , + ( - 72 ) * +
233d0 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52   col1 AS col2 FR
233e0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35  OM tab1..----..5
233f0 39 0d 0a 2d 33 36 30 0d 0a 36 38 0d 0a 2d 33 33  9..-360..68..-33
23400 38 34 0d 0a 39 36 0d 0a 2d 31 30 30 38 0d 0a 0d  84..96..-1008...
23410 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
23420 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
23430 54 20 28 20 2d 20 31 30 20 29 20 2b 20 2d 20 63  T ( - 10 ) + - c
23440 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol1 AS col2 FROM
23450 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31   tab0..----..-11
23460 0d 0a 2d 33 31 0d 0a 2d 39 31 0d 0a 0d 0a 71 75  ..-31..-91....qu
23470 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
23480 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
23490 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   * FROM tab2 WHE
234a0 52 45 20 4e 4f 54 20 63 6f 6c 32 20 2a 20 63 6f  RE NOT col2 * co
234b0 6c 31 20 2d 20 63 6f 6c 30 20 49 4e 20 28 20 63  l1 - col0 IN ( c
234c0 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76  ol1 )..----..9 v
234d0 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
234e0 20 37 35 63 39 39 38 61 61 35 33 61 63 38 33 32   75c998aa53ac832
234f0 31 38 63 62 66 32 66 65 62 39 36 32 64 30 61 34  18cbf2feb962d0a4
23500 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  9....query I row
23510 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
23520 54 49 4e 43 54 20 2b 20 28 20 2b 20 63 6f 6c 30  TINCT + ( + col0
23530 20 29 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   ) FROM tab2 WHE
23540 52 45 20 4e 4f 54 20 28 20 2b 20 38 20 29 20 3e  RE NOT ( + 8 ) >
23550 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  = NULL..----....
23560 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
23570 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
23580 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
23590 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  0 WHERE NOT NULL
235a0 20 4e 4f 54 20 49 4e 20 28 20 63 6f 6c 32 20 2b   NOT IN ( col2 +
235b0 20 2d 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 37 31   - + col1 + + 71
235c0 20 2a 20 2d 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d   * - col2 )..---
235d0 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  -....query III r
235e0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
235f0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
23600 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  r0 WHERE NOT col
23610 30 20 3d 20 28 20 2b 20 63 6f 6c 30 20 29 0d 0a  0 = ( + col0 )..
23620 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
23630 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
23640 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79  ax: aggregate sy
23650 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
23660 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
23670 73 6f 72 74 20 6c 61 62 65 6c 2d 37 37 37 0d 0a  sort label-777..
23680 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
23690 2b 20 2d 20 43 41 53 54 28 20 4d 49 4e 28 20 2b  + - CAST( MIN( +
236a0 20 2b 20 63 6f 6c 32 20 29 20 41 53 20 53 49 47   + col2 ) AS SIG
236b0 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62 31 20  NED ) FROM tab1 
236c0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
236d0 35 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  59....skipif mys
236e0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
236f0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
23700 73 6f 72 74 20 6c 61 62 65 6c 2d 37 37 37 0d 0a  sort label-777..
23710 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
23720 2b 20 2d 20 43 41 53 54 20 28 20 4d 49 4e 20 28  + - CAST ( MIN (
23730 20 2b 20 2b 20 63 6f 6c 32 20 29 20 41 53 20 49   + + col2 ) AS I
23740 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61  NTEGER ) FROM ta
23750 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
23760 0d 0a 2d 35 39 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-59....query I
23770 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
23780 54 20 44 49 53 54 49 4e 43 54 20 2d 20 37 34 2c  T DISTINCT - 74,
23790 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20   + col1 AS col1 
237a0 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
237b0 0a 2d 37 34 0d 0a 31 34 0d 0a 2d 37 34 0d 0a 34  .-74..14..-74..4
237c0 37 0d 0a 2d 37 34 0d 0a 35 0d 0a 0d 0a 6f 6e 6c  7..-74..5....onl
237d0 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
237e0 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
237f0 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
23800 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 37  rowsort label-77
23810 39 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32  9..SELECT - col2
23820 20 2b 20 2b 20 2d 20 63 6f 6c 32 20 2a 20 2d 20   + + - col2 * - 
23830 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 31 20 2b 20  col1 * + col1 + 
23840 63 6f 6c 30 20 44 49 56 20 2d 20 63 6f 6c 32 20  col0 DIV - col2 
23850 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
23860 0a 32 33 37 31 31 39 0d 0a 32 36 30 33 30 33 0d  .237119..260303.
23870 0a 35 39 37 39 38 0d 0a 0d 0a 73 6b 69 70 69 66  .59798....skipif
23880 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
23890 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
238a0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
238b0 37 39 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  79..SELECT - col
238c0 32 20 2b 20 2b 20 2d 20 63 6f 6c 32 20 2a 20 2d  2 + + - col2 * -
238d0 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 31 20 2b   col1 * + col1 +
238e0 20 63 6f 6c 30 20 2f 20 2d 20 63 6f 6c 32 20 46   col0 / - col2 F
238f0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
23900 32 33 37 31 31 39 0d 0a 32 36 30 33 30 33 0d 0a  237119..260303..
23910 35 39 37 39 38 0d 0a 0d 0a 71 75 65 72 79 20 49  59798....query I
23920 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
23930 20 41 4c 4c 20 32 30 20 41 53 20 63 6f 6c 32 20   ALL 20 AS col2 
23940 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
23950 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62  0 CROSS JOIN tab
23960 32 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d  2 AS cor1..----.
23970 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
23980 67 20 74 6f 20 32 66 64 64 39 34 32 66 65 30 33  g to 2fdd942fe03
23990 30 37 61 36 66 66 36 36 62 36 33 30 30 34 65 66  07a6ff66b63004ef
239a0 31 30 32 63 34 0d 0a 0d 0a 71 75 65 72 79 20 49  102c4....query I
239b0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
239c0 20 2b 20 2b 20 34 31 20 2a 20 2d 20 63 6f 6c 32   + + 41 * - col2
239d0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
239e0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
239f0 0d 0a 2d 32 34 31 39 0d 0a 2d 32 37 38 38 0d 0a  ..-2419..-2788..
23a00 2d 33 39 33 36 0d 0a 0d 0a 71 75 65 72 79 20 49  -3936....query I
23a10 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
23a20 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 63  CT * FROM tab2 c
23a30 6f 72 30 20 57 48 45 52 45 20 31 30 20 49 53 20  or0 WHERE 10 IS 
23a40 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
23a50 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
23a60 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
23a70 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
23a80 20 6c 61 62 65 6c 2d 37 38 33 0d 0a 53 45 4c 45   label-783..SELE
23a90 43 54 20 2b 20 4d 41 58 28 20 2b 20 2d 20 63 6f  CT + MAX( + - co
23aa0 6c 32 20 29 20 2a 20 38 30 20 46 52 4f 4d 20 74  l2 ) * 80 FROM t
23ab0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
23ac0 2d 0d 0a 2d 38 30 30 0d 0a 0d 0a 73 6b 69 70 69  -..-800....skipi
23ad0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
23ae0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
23af0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
23b00 37 38 33 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 41  783..SELECT + MA
23b10 58 20 28 20 2b 20 2d 20 63 6f 6c 32 20 29 20 2a  X ( + - col2 ) *
23b20 20 38 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53   80 FROM tab0 AS
23b30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 30   cor0..----..-80
23b40 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
23b50 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
23b60 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
23b70 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
23b80 6c 61 62 65 6c 2d 37 38 34 0d 0a 53 45 4c 45 43  label-784..SELEC
23b90 54 20 41 4c 4c 20 2b 20 2b 20 31 32 20 44 49 56  T ALL + + 12 DIV
23ba0 20 2d 20 2b 20 28 20 2d 20 2d 20 63 6f 6c 31 20   - + ( - - col1 
23bb0 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
23bc0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
23bd0 2d 0d 0a 2d 31 32 0d 0a 30 0d 0a 30 0d 0a 0d 0a  -..-12..0..0....
23be0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
23bf0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
23c00 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
23c10 61 62 65 6c 2d 37 38 34 0d 0a 53 45 4c 45 43 54  abel-784..SELECT
23c20 20 41 4c 4c 20 2b 20 2b 20 31 32 20 2f 20 2d 20   ALL + + 12 / - 
23c30 2b 20 28 20 2d 20 2d 20 63 6f 6c 31 20 29 20 41  + ( - - col1 ) A
23c40 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
23c50 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
23c60 2d 31 32 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69  -12..0..0....ski
23c70 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
23c80 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
23c90 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
23ca0 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
23cb0 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
23cc0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
23cd0 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20 2d 20  STINCT - col0 - 
23ce0 39 35 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  95 col1 FROM tab
23cf0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
23d00 0a 2d 31 34 36 0d 0a 2d 31 38 30 0d 0a 2d 31 38  .-146..-180..-18
23d10 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
23d20 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
23d30 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
23d40 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 38  rowsort label-78
23d50 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 53 55  6..SELECT ALL SU
23d60 4d 28 20 41 4c 4c 20 63 6f 6c 32 20 29 20 41 53  M( ALL col2 ) AS
23d70 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
23d80 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
23d90 32 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  21....skipif mys
23da0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
23db0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
23dc0 73 6f 72 74 20 6c 61 62 65 6c 2d 37 38 36 0d 0a  sort label-786..
23dd0 53 45 4c 45 43 54 20 41 4c 4c 20 53 55 4d 20 28  SELECT ALL SUM (
23de0 20 41 4c 4c 20 63 6f 6c 32 20 29 20 41 53 20 63   ALL col2 ) AS c
23df0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
23e00 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 31   cor0..----..121
23e10 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
23e20 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  ort..SELECT + co
23e30 6c 30 20 2a 20 2d 20 63 6f 6c 30 20 2b 20 39 37  l0 * - col0 + 97
23e40 20 2a 20 32 35 20 46 52 4f 4d 20 74 61 62 31 20   * 25 FROM tab1 
23e50 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
23e60 31 37 36 0d 0a 2d 34 38 30 30 0d 0a 2d 35 38 35  176..-4800..-585
23e70 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
23e80 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
23e90 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
23ea0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
23eb0 6c 61 62 65 6c 2d 37 38 38 0d 0a 53 45 4c 45 43  label-788..SELEC
23ec0 54 20 41 4c 4c 20 38 38 20 2d 20 2d 20 31 39 20  T ALL 88 - - 19 
23ed0 2b 20 2d 20 28 20 37 34 20 29 20 2a 20 2d 20 2b  + - ( 74 ) * - +
23ee0 20 63 6f 6c 32 20 44 49 56 20 2d 20 63 6f 6c 32   col2 DIV - col2
23ef0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
23f00 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 33 0d 0a 33 33  r0..----..33..33
23f10 0d 0a 33 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..33....skipif m
23f20 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
23f30 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
23f40 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 38 38  owsort label-788
23f50 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 38 38 20  ..SELECT ALL 88 
23f60 2d 20 2d 20 31 39 20 2b 20 2d 20 28 20 37 34 20  - - 19 + - ( 74 
23f70 29 20 2a 20 2d 20 2b 20 63 6f 6c 32 20 2f 20 2d  ) * - + col2 / -
23f80 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
23f90 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33  AS cor0..----..3
23fa0 33 0d 0a 33 33 0d 0a 33 33 0d 0a 0d 0a 6f 6e 6c  3..33..33....onl
23fb0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
23fc0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
23fd0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
23fe0 6c 61 62 65 6c 2d 37 38 39 0d 0a 53 45 4c 45 43  label-789..SELEC
23ff0 54 20 53 55 4d 28 20 44 49 53 54 49 4e 43 54 20  T SUM( DISTINCT 
24000 2b 20 32 35 20 29 20 41 53 20 63 6f 6c 30 20 46  + 25 ) AS col0 F
24010 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
24020 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e   WHERE NULL IS N
24030 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 35 0d 0a 0d  ULL..----..25...
24040 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
24050 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
24060 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
24070 6c 61 62 65 6c 2d 37 38 39 0d 0a 53 45 4c 45 43  label-789..SELEC
24080 54 20 53 55 4d 20 28 20 44 49 53 54 49 4e 43 54  T SUM ( DISTINCT
24090 20 2b 20 32 35 20 29 20 41 53 20 63 6f 6c 30 20   + 25 ) AS col0 
240a0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
240b0 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20  0 WHERE NULL IS 
240c0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 35 0d 0a  NULL..----..25..
240d0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
240e0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
240f0 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  x: ..query II ro
24100 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 39 30 0d  wsort label-790.
24110 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
24120 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
24130 6f 6c 30 2c 20 37 31 20 2a 20 43 4f 55 4e 54 28  ol0, 71 * COUNT(
24140 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41   * ) FROM tab2 A
24150 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  S cor0..----..3.
24160 0a 32 31 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .213....skipif m
24170 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
24180 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
24190 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 39  rowsort label-79
241a0 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  0..SELECT DISTIN
241b0 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41  CT COUNT ( * ) A
241c0 53 20 63 6f 6c 30 2c 20 37 31 20 2a 20 43 4f 55  S col0, 71 * COU
241d0 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  NT ( * ) FROM ta
241e0 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
241f0 0d 0a 33 0d 0a 32 31 33 0d 0a 0d 0a 6f 6e 6c 79  ..3..213....only
24200 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
24210 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
24220 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
24230 61 62 65 6c 2d 37 39 31 0d 0a 53 45 4c 45 43 54  abel-791..SELECT
24240 20 2d 20 43 4f 55 4e 54 28 20 2d 20 28 20 2d 20   - COUNT( - ( - 
24250 34 32 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30  42 ) ) FROM tab0
24260 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
24270 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  -3....skipif mys
24280 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
24290 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
242a0 73 6f 72 74 20 6c 61 62 65 6c 2d 37 39 31 0d 0a  sort label-791..
242b0 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 20 28  SELECT - COUNT (
242c0 20 2d 20 28 20 2d 20 34 32 20 29 20 29 20 46 52   - ( - 42 ) ) FR
242d0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
242e0 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75 65  .----..-3....que
242f0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
24300 4c 45 43 54 20 2b 20 2b 20 31 38 20 2d 20 2d 20  LECT + + 18 - - 
24310 39 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  90 FROM tab2 AS 
24320 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 38 0d  cor0..----..108.
24330 0a 31 30 38 0d 0a 31 30 38 0d 0a 0d 0a 71 75 65  .108..108....que
24340 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
24350 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2d 20 2d 20  LECT - col2 - - 
24360 2d 20 63 6f 6c 32 20 2b 20 39 39 20 46 52 4f 4d  - col2 + 99 FROM
24370 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 39   tab0..----..-99
24380 0d 0a 35 0d 0a 37 39 0d 0a 0d 0a 71 75 65 72 79  ..5..79....query
24390 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
243a0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
243b0 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
243c0 4e 4f 54 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 2b  NOT - col0 + - +
243d0 20 63 6f 6c 31 20 3e 3d 20 2b 20 63 6f 6c 32 20   col1 >= + col2 
243e0 2a 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a  * - col1..----..
243f0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
24400 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
24410 4e 43 54 20 2b 20 38 33 20 41 53 20 63 6f 6c 32  NCT + 83 AS col2
24420 2c 20 38 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a  , 82 FROM tab1..
24430 2d 2d 2d 2d 0d 0a 38 33 0d 0a 38 32 0d 0a 0d 0a  ----..83..82....
24440 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
24450 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
24460 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  CT * FROM tab2 W
24470 48 45 52 45 20 28 20 2d 20 38 34 20 29 20 49 53  HERE ( - 84 ) IS
24480 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
24490 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
244a0 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61  g to 75c998aa53a
244b0 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32  c83218cbf2feb962
244c0 64 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49  d0a49....query I
244d0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
244e0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  CT * FROM tab2 W
244f0 48 45 52 45 20 28 20 2b 20 39 20 29 20 3e 20 4e  HERE ( + 9 ) > N
24500 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ULL..----....onl
24510 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
24520 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
24530 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
24540 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 39  rowsort label-79
24550 38 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32  8..SELECT + col2
24560 20 2b 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20   + - CAST( NULL 
24570 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 39 33  AS SIGNED ) + 93
24580 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
24590 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b2..----..NULL..
245a0 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  NULL..NULL....sk
245b0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
245c0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
245d0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
245e0 65 6c 2d 37 39 38 0d 0a 53 45 4c 45 43 54 20 2b  el-798..SELECT +
245f0 20 63 6f 6c 32 20 2b 20 2d 20 43 41 53 54 20 28   col2 + - CAST (
24600 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
24610 20 29 20 2b 20 39 33 20 41 53 20 63 6f 6c 31 20   ) + 93 AS col1 
24620 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
24630 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
24640 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  L....onlyif mysq
24650 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
24660 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
24670 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 39  rowsort label-79
24680 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 37 36  9..SELECT ALL 76
24690 20 2d 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20   - + - COUNT( * 
246a0 29 20 2a 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a  ) * - - COUNT( *
246b0 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
246c0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 38 35 0d 0a  tab0..----..85..
246d0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
246e0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
246f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
24700 20 6c 61 62 65 6c 2d 37 39 39 0d 0a 53 45 4c 45   label-799..SELE
24710 43 54 20 41 4c 4c 20 37 36 20 2d 20 2b 20 2d 20  CT ALL 76 - + - 
24720 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20  COUNT ( * ) * - 
24730 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53  - COUNT ( * ) AS
24740 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
24750 0a 2d 2d 2d 2d 0d 0a 38 35 0d 0a 0d 0a 71 75 65  .----..85....que
24760 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
24770 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
24780 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
24790 48 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e  HERE NULL NOT IN
247a0 20 28 20 63 6f 6c 30 2c 20 63 6f 6c 30 20 29 0d   ( col0, col0 ).
247b0 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
247c0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
247d0 54 20 44 49 53 54 49 4e 43 54 20 28 20 2b 20 2b  T DISTINCT ( + +
247e0 20 35 39 20 29 20 2a 20 2d 20 63 6f 6c 32 20 2a   59 ) * - col2 *
247f0 20 2b 20 31 34 20 41 53 20 63 6f 6c 32 2c 20 2b   + 14 AS col2, +
24800 20 34 32 20 2b 20 2b 20 2b 20 63 6f 6c 32 20 2a   42 + + + col2 *
24810 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52   col2 AS col0 FR
24820 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
24830 0a 2d 2d 2d 2d 0d 0a 2d 34 38 37 33 34 0d 0a 33  .----..-48734..3
24840 35 32 33 0d 0a 2d 35 36 31 36 38 0d 0a 34 36 36  523..-56168..466
24850 36 0d 0a 2d 37 39 32 39 36 0d 0a 39 32 35 38 0d  6..-79296..9258.
24860 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
24870 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
24880 49 4e 43 54 20 2b 20 30 20 41 53 20 63 6f 6c 31  INCT + 0 AS col1
24890 2c 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  , + col0 FROM ta
248a0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
248b0 0d 0a 30 0d 0a 31 35 0d 0a 30 0d 0a 38 37 0d 0a  ..0..15..0..87..
248c0 30 0d 0a 39 37 0d 0a 0d 0a 71 75 65 72 79 20 49  0..97....query I
248d0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
248e0 20 44 49 53 54 49 4e 43 54 20 39 20 46 52 4f 4d   DISTINCT 9 FROM
248f0 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
24900 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 4e 4f 54  ERE ( NULL ) NOT
24910 20 49 4e 20 28 20 63 6f 6c 30 20 2b 20 2b 20 63   IN ( col0 + + c
24920 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71  ol1 )..----....q
24930 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
24940 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
24950 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46  + col2 AS col1 F
24960 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e  ROM tab1 WHERE N
24970 4f 54 20 2b 20 37 36 20 3e 3d 20 4e 55 4c 4c 0d  OT + 76 >= NULL.
24980 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
24990 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
249a0 20 2d 20 28 20 2d 20 2d 20 63 6f 6c 30 20 29 20   - ( - - col0 ) 
249b0 2a 20 37 37 20 41 53 20 63 6f 6c 32 20 46 52 4f  * 77 AS col2 FRO
249c0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  M tab2..----..-3
249d0 35 34 32 0d 0a 2d 34 39 32 38 0d 0a 2d 35 37 37  542..-4928..-577
249e0 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  5....skipif post
249f0 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
24a00 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
24a10 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
24a20 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
24a30 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
24a40 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
24a50 20 2b 20 63 6f 6c 32 20 63 6f 6c 31 20 46 52 4f   + col2 col1 FRO
24a60 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
24a70 20 4e 55 4c 4c 20 3e 20 4e 55 4c 4c 0d 0a 2d 2d   NULL > NULL..--
24a80 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
24a90 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
24aa0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
24ab0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
24ac0 30 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  07..SELECT DISTI
24ad0 4e 43 54 20 4d 49 4e 28 20 2d 20 63 6f 6c 31 20  NCT MIN( - col1 
24ae0 29 20 2a 20 2d 20 37 20 41 53 20 63 6f 6c 31 20  ) * - 7 AS col1 
24af0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
24b00 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  0 WHERE NOT NULL
24b10 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
24b20 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
24b30 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
24b40 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
24b50 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 30 37  owsort label-807
24b60 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
24b70 54 20 4d 49 4e 20 28 20 2d 20 63 6f 6c 31 20 29  T MIN ( - col1 )
24b80 20 2a 20 2d 20 37 20 41 53 20 63 6f 6c 31 20 46   * - 7 AS col1 F
24b90 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
24ba0 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
24bb0 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e  IS NULL..----..N
24bc0 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ULL....onlyif my
24bd0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
24be0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
24bf0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
24c00 74 20 6c 61 62 65 6c 2d 38 30 38 0d 0a 53 45 4c  t label-808..SEL
24c10 45 43 54 20 2b 20 43 41 53 54 28 20 2d 20 63 6f  ECT + CAST( - co
24c20 6c 32 20 41 53 20 53 49 47 4e 45 44 20 29 20 63  l2 AS SIGNED ) c
24c30 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol1 FROM tab1 AS
24c40 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39   cor0..----..-59
24c50 0d 0a 2d 36 38 0d 0a 2d 39 36 0d 0a 0d 0a 73 6b  ..-68..-96....sk
24c60 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
24c70 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69   compatible..ski
24c80 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
24c90 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
24ca0 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
24cb0 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
24cc0 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
24cd0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 30 38 0d  wsort label-808.
24ce0 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54 20 28  .SELECT + CAST (
24cf0 20 2d 20 63 6f 6c 32 20 41 53 20 49 4e 54 45 47   - col2 AS INTEG
24d00 45 52 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ER ) col1 FROM t
24d10 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
24d20 2d 0d 0a 2d 35 39 0d 0a 2d 36 38 0d 0a 2d 39 36  -..-59..-68..-96
24d30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
24d40 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
24d50 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
24d60 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 30 39  owsort label-809
24d70 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 49 4e 28 20  ..SELECT + MIN( 
24d80 44 49 53 54 49 4e 43 54 20 2d 20 31 31 20 29 20  DISTINCT - 11 ) 
24d90 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
24da0 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f  0 WHERE NOT + co
24db0 6c 30 20 3c 20 2d 20 63 6f 6c 32 20 2f 20 2d 20  l0 < - col2 / - 
24dc0 37 34 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 0d 0a 0d  74..----..-11...
24dd0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
24de0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
24df0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
24e00 6c 61 62 65 6c 2d 38 30 39 0d 0a 53 45 4c 45 43  label-809..SELEC
24e10 54 20 2b 20 4d 49 4e 20 28 20 44 49 53 54 49 4e  T + MIN ( DISTIN
24e20 43 54 20 2d 20 31 31 20 29 20 46 52 4f 4d 20 74  CT - 11 ) FROM t
24e30 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
24e40 45 20 4e 4f 54 20 2b 20 63 6f 6c 30 20 3c 20 2d  E NOT + col0 < -
24e50 20 63 6f 6c 32 20 2f 20 2d 20 37 34 0d 0a 2d 2d   col2 / - 74..--
24e60 2d 2d 0d 0a 2d 31 31 0d 0a 0d 0a 71 75 65 72 79  --..-11....query
24e70 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
24e80 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  LECT * FROM tab1
24e90 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
24ea0 4f 54 20 28 20 33 31 20 2b 20 2d 20 28 20 2d 20  OT ( 31 + - ( - 
24eb0 63 6f 6c 30 20 29 20 29 20 49 53 20 4e 4f 54 20  col0 ) ) IS NOT 
24ec0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
24ed0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
24ee0 45 4c 45 43 54 20 2d 20 2b 20 31 37 20 46 52 4f  ELECT - + 17 FRO
24ef0 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab2 cor0..---
24f00 2d 0d 0a 2d 31 37 0d 0a 2d 31 37 0d 0a 2d 31 37  -..-17..-17..-17
24f10 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
24f20 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
24f30 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
24f40 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
24f50 20 38 35 20 3c 3e 20 2b 20 63 6f 6c 31 20 2a 20   85 <> + col1 * 
24f60 2d 20 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a  - - col2..----..
24f70 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
24f80 20 74 6f 20 63 34 62 34 32 37 36 35 64 66 66 39   to c4b42765dff9
24f90 34 65 61 61 61 34 36 30 34 30 65 35 33 37 66 62  4eaaa46040e537fb
24fa0 34 33 62 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  43b7....onlyif m
24fb0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
24fc0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
24fd0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
24fe0 2d 38 31 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -813..SELECT ALL
24ff0 20 43 4f 55 4e 54 28 20 2b 20 28 20 2d 20 63 6f   COUNT( + ( - co
25000 6c 32 20 29 20 29 20 41 53 20 63 6f 6c 32 20 46  l2 ) ) AS col2 F
25010 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
25020 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69  ..----..3....ski
25030 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
25040 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
25050 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
25060 6c 2d 38 31 33 0d 0a 53 45 4c 45 43 54 20 41 4c  l-813..SELECT AL
25070 4c 20 43 4f 55 4e 54 20 28 20 2b 20 28 20 2d 20  L COUNT ( + ( - 
25080 63 6f 6c 32 20 29 20 29 20 41 53 20 63 6f 6c 32  col2 ) ) AS col2
25090 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
250a0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71  r0..----..3....q
250b0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
250c0 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
250d0 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
250e0 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 4e 20 28  RE NOT NULL IN (
250f0 20 28 20 2b 20 2b 20 63 6f 6c 32 20 29 20 2a 20   ( + + col2 ) * 
25100 2d 20 2b 20 28 20 2d 20 38 36 20 29 20 2a 20 63  - + ( - 86 ) * c
25110 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71  ol0 )..----....q
25120 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
25130 53 45 4c 45 43 54 20 2b 20 38 31 20 41 53 20 63  SELECT + 81 AS c
25140 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol1 FROM tab1 AS
25150 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
25160 2b 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55  + col2 IS NOT NU
25170 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
25180 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
25190 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
251a0 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
251b0 45 52 45 20 2b 20 32 33 20 4e 4f 54 20 49 4e 20  ERE + 23 NOT IN 
251c0 28 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 34 20 29  ( - col2 * + 4 )
251d0 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
251e0 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30   hashing to c6c0
251f0 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38 31  a4111b36d04dbc81
25200 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a  1a11e4d54cad....
25210 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
25220 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
25230 45 44 20 74 79 70 65 3a 20 44 49 56 20 66 6f 72  ED type: DIV for
25240 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
25250 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
25260 73 6f 72 74 20 6c 61 62 65 6c 2d 38 31 37 0d 0a  sort label-817..
25270 53 45 4c 45 43 54 20 41 4c 4c 20 43 41 53 54 28  SELECT ALL CAST(
25280 20 63 6f 6c 31 20 41 53 20 53 49 47 4e 45 44 20   col1 AS SIGNED 
25290 29 20 2a 20 2b 20 63 6f 6c 32 20 2b 20 63 6f 6c  ) * + col2 + col
252a0 32 20 44 49 56 20 2b 20 63 6f 6c 31 20 46 52 4f  2 DIV + col1 FRO
252b0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 31  M tab2..----..11
252c0 37 33 0d 0a 33 30 38 30 0d 0a 33 38 38 36 0d 0a  73..3080..3886..
252d0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
252e0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
252f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
25300 20 6c 61 62 65 6c 2d 38 31 37 0d 0a 53 45 4c 45   label-817..SELE
25310 43 54 20 41 4c 4c 20 43 41 53 54 20 28 20 63 6f  CT ALL CAST ( co
25320 6c 31 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  l1 AS INTEGER ) 
25330 2a 20 2b 20 63 6f 6c 32 20 2b 20 63 6f 6c 32 20  * + col2 + col2 
25340 2f 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  / + col1 FROM ta
25350 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 31 37 33 0d 0a  b2..----..1173..
25360 33 30 38 30 0d 0a 33 38 38 36 0d 0a 0d 0a 6f 6e  3080..3886....on
25370 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
25380 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
25390 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
253a0 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
253b0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
253c0 2d 38 31 38 0d 0a 53 45 4c 45 43 54 20 33 38 20  -818..SELECT 38 
253d0 2b 20 2b 20 53 55 4d 28 20 41 4c 4c 20 2d 20 43  + + SUM( ALL - C
253e0 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
253f0 4e 45 44 20 29 20 29 20 2a 20 2d 20 43 4f 55 4e  NED ) ) * - COUN
25400 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46  T( * ) AS col1 F
25410 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
25420 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
25430 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
25440 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
25450 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 31 38  owsort label-818
25460 0d 0a 53 45 4c 45 43 54 20 33 38 20 2b 20 2b 20  ..SELECT 38 + + 
25470 53 55 4d 20 28 20 41 4c 4c 20 2d 20 43 41 53 54  SUM ( ALL - CAST
25480 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
25490 45 52 20 29 20 29 20 2a 20 2d 20 43 4f 55 4e 54  ER ) ) * - COUNT
254a0 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46   ( * ) AS col1 F
254b0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
254c0 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49  NULL....query II
254d0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
254e0 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
254f0 4d 20 74 61 62 32 20 57 48 45 52 45 20 28 20 2d  M tab2 WHERE ( -
25500 20 2b 20 39 36 20 29 20 49 53 20 4e 55 4c 4c 0d   + 96 ) IS NULL.
25510 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
25520 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
25530 20 41 4c 4c 20 36 38 20 2a 20 63 6f 6c 32 20 41   ALL 68 * col2 A
25540 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
25550 0d 0a 2d 2d 2d 2d 0d 0a 33 31 39 36 0d 0a 36 37  ..----..3196..67
25560 33 32 0d 0a 36 38 30 0d 0a 0d 0a 71 75 65 72 79  32..680....query
25570 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
25580 43 54 20 44 49 53 54 49 4e 43 54 20 28 20 2d 20  CT DISTINCT ( - 
25590 2b 20 63 6f 6c 32 20 29 20 2a 20 2d 20 2b 20 34  + col2 ) * - + 4
255a0 36 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  6 AS col1 FROM t
255b0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
255c0 2d 0d 0a 31 30 35 38 0d 0a 31 38 34 30 0d 0a 32  -..1058..1840..2
255d0 36 36 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  668....query III
255e0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
255f0 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32   ALL * FROM tab2
25600 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e 55   cor0 WHERE ( NU
25610 4c 4c 20 29 20 4e 4f 54 20 42 45 54 57 45 45 4e  LL ) NOT BETWEEN
25620 20 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c 0d 0a   NULL AND NULL..
25630 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
25640 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
25650 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
25660 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
25670 2d 38 32 33 0d 0a 53 45 4c 45 43 54 20 44 49 53  -823..SELECT DIS
25680 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 28 20 44  TINCT - COUNT( D
25690 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20 29  ISTINCT + col2 )
256a0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
256b0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a  r0..----..-3....
256c0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
256d0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
256e0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
256f0 61 62 65 6c 2d 38 32 33 0d 0a 53 45 4c 45 43 54  abel-823..SELECT
25700 20 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e   DISTINCT - COUN
25710 54 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63  T ( DISTINCT + c
25720 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 31 20  ol2 ) FROM tab1 
25730 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
25740 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
25750 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
25760 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d   DECIMAL type: .
25770 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
25780 20 6c 61 62 65 6c 2d 38 32 34 0d 0a 53 45 4c 45   label-824..SELE
25790 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f  CT DISTINCT - co
257a0 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  l2 FROM tab1 WHE
257b0 52 45 20 4e 4f 54 20 2d 20 2d 20 63 6f 6c 30 20  RE NOT - - col0 
257c0 2f 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  / CAST( NULL AS 
257d0 44 45 43 49 4d 41 4c 20 29 20 2b 20 2d 20 63 6f  DECIMAL ) + - co
257e0 6c 30 20 4e 4f 54 20 49 4e 20 28 20 2b 20 31 37  l0 NOT IN ( + 17
257f0 20 2b 20 37 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   + 71 )..----...
25800 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
25810 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
25820 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
25830 6c 61 62 65 6c 2d 38 32 34 0d 0a 53 45 4c 45 43  label-824..SELEC
25840 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  T DISTINCT - col
25850 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  2 FROM tab1 WHER
25860 45 20 4e 4f 54 20 2d 20 2d 20 63 6f 6c 30 20 2f  E NOT - - col0 /
25870 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
25880 52 45 41 4c 20 29 20 2b 20 2d 20 63 6f 6c 30 20  REAL ) + - col0 
25890 4e 4f 54 20 49 4e 20 28 20 2b 20 31 37 20 2b 20  NOT IN ( + 17 + 
258a0 37 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  71 )..----....qu
258b0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
258c0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
258d0 20 63 6f 6c 32 20 2b 20 2b 20 2d 20 63 6f 6c 31   col2 + + - col1
258e0 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 36 36 20 2b   + - col1 * 66 +
258f0 20 2d 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74   - + col0 FROM t
25900 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 38 34  ab0..----..-1484
25910 0d 0a 2d 35 33 39 35 0d 0a 2d 36 35 0d 0a 0d 0a  ..-5395..-65....
25920 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
25930 0a 53 45 4c 45 43 54 20 2b 20 33 32 20 2b 20 2b  .SELECT + 32 + +
25940 20 38 35 20 2a 20 2d 20 2b 20 35 34 20 46 52 4f   85 * - + 54 FRO
25950 4d 20 28 20 74 61 62 30 20 41 53 20 63 6f 72 30  M ( tab0 AS cor0
25960 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31   CROSS JOIN tab1
25970 20 41 53 20 63 6f 72 31 20 29 0d 0a 2d 2d 2d 2d   AS cor1 )..----
25980 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
25990 6e 67 20 74 6f 20 61 35 64 36 38 61 38 61 38 36  ng to a5d68a8a86
259a0 66 35 33 34 35 39 31 33 33 31 61 66 39 35 65 36  f534591331af95e6
259b0 34 34 66 64 65 34 0d 0a 0d 0a 71 75 65 72 79 20  44fde4....query 
259c0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
259d0 54 20 2b 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 63  T + - col1 + + c
259e0 6f 6c 30 20 2b 20 2d 20 2b 20 37 31 20 46 52 4f  ol0 + - + 71 FRO
259f0 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
25a00 2d 0d 0a 2d 31 33 37 0d 0a 2d 35 0d 0a 32 35 0d  -..-137..-5..25.
25a10 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
25a20 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
25a30 4e 43 54 20 39 34 20 2b 20 2b 20 63 6f 6c 30 20  NCT 94 + + col0 
25a40 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a  FROM tab1 cor0..
25a50 2d 2d 2d 2d 0d 0a 31 34 35 0d 0a 31 37 39 0d 0a  ----..145..179..
25a60 31 38 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  185....onlyif my
25a70 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
25a80 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
25a90 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
25aa0 74 20 6c 61 62 65 6c 2d 38 32 39 0d 0a 53 45 4c  t label-829..SEL
25ab0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 38  ECT DISTINCT + 8
25ac0 37 20 2a 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  7 * CAST( NULL A
25ad0 53 20 53 49 47 4e 45 44 20 29 20 2d 20 2d 20 28  S SIGNED ) - - (
25ae0 20 2b 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74   + col0 ) FROM t
25af0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
25b00 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  -..NULL....skipi
25b10 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
25b20 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
25b30 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
25b40 38 32 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  829..SELECT DIST
25b50 49 4e 43 54 20 2b 20 38 37 20 2a 20 43 41 53 54  INCT + 87 * CAST
25b60 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
25b70 45 52 20 29 20 2d 20 2d 20 28 20 2b 20 63 6f 6c  ER ) - - ( + col
25b80 30 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  0 ) FROM tab0 AS
25b90 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
25ba0 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  L....query I row
25bb0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
25bc0 20 2b 20 28 20 2b 20 63 6f 6c 32 20 29 20 2b 20   + ( + col2 ) + 
25bd0 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46  - col0 AS col0 F
25be0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
25bf0 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 37 0d 0a 32 0d 0a  ..----..-77..2..
25c00 33 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  32....query I ro
25c10 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
25c20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
25c30 53 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c  S cor0 WHERE col
25c40 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  0 IS NULL..----.
25c50 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
25c60 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
25c70 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
25c80 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33 32 0d  wsort label-832.
25c90 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f  .SELECT ALL - CO
25ca0 55 4e 54 28 20 2a 20 29 20 2d 20 31 33 20 2a 20  UNT( * ) - 13 * 
25cb0 2d 20 32 38 20 63 6f 6c 31 20 46 52 4f 4d 20 74  - 28 col1 FROM t
25cc0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
25cd0 2d 0d 0a 33 36 31 0d 0a 0d 0a 73 6b 69 70 69 66  -..361....skipif
25ce0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
25cf0 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
25d00 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
25d10 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
25d20 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
25d30 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
25d40 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
25d50 74 20 6c 61 62 65 6c 2d 38 33 32 0d 0a 53 45 4c  t label-832..SEL
25d60 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 20  ECT ALL - COUNT 
25d70 28 20 2a 20 29 20 2d 20 31 33 20 2a 20 2d 20 32  ( * ) - 13 * - 2
25d80 38 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  8 col1 FROM tab2
25d90 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
25da0 33 36 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  361....query I r
25db0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
25dc0 49 53 54 49 4e 43 54 20 2b 20 36 35 20 2a 20 2b  ISTINCT + 65 * +
25dd0 20 35 36 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   56 AS col1 FROM
25de0 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab0 cor0..----
25df0 0d 0a 33 36 34 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..3640....onlyif
25e00 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
25e10 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
25e20 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
25e30 65 6c 2d 38 33 34 0d 0a 53 45 4c 45 43 54 20 44  el-834..SELECT D
25e40 49 53 54 49 4e 43 54 20 28 20 2d 20 53 55 4d 28  ISTINCT ( - SUM(
25e50 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31   DISTINCT + col1
25e60 20 29 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f   ) ) AS col0 FRO
25e70 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
25e80 2d 2d 2d 2d 0d 0a 2d 31 30 33 0d 0a 0d 0a 73 6b  ----..-103....sk
25e90 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
25ea0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
25eb0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
25ec0 65 6c 2d 38 33 34 0d 0a 53 45 4c 45 43 54 20 44  el-834..SELECT D
25ed0 49 53 54 49 4e 43 54 20 28 20 2d 20 53 55 4d 20  ISTINCT ( - SUM 
25ee0 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  ( DISTINCT + col
25ef0 31 20 29 20 29 20 41 53 20 63 6f 6c 30 20 46 52  1 ) ) AS col0 FR
25f00 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
25f10 0a 2d 2d 2d 2d 0d 0a 2d 31 30 33 0d 0a 0d 0a 6f  .----..-103....o
25f20 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
25f30 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
25f40 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
25f50 72 74 20 6c 61 62 65 6c 2d 38 33 35 0d 0a 53 45  rt label-835..SE
25f60 4c 45 43 54 20 41 4c 4c 20 2d 20 31 31 20 41 53  LECT ALL - 11 AS
25f70 20 63 6f 6c 30 2c 20 43 4f 55 4e 54 28 20 2a 20   col0, COUNT( * 
25f80 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
25f90 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 0d 0a  ab0..----..-11..
25fa0 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
25fb0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
25fc0 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
25fd0 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33 35 0d 0a  sort label-835..
25fe0 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 31 31 20  SELECT ALL - 11 
25ff0 41 53 20 63 6f 6c 30 2c 20 43 4f 55 4e 54 20 28  AS col0, COUNT (
26000 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f   * ) AS col0 FRO
26010 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab0..----..-1
26020 31 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  1..3....skipif p
26030 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
26040 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
26050 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
26060 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
26070 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
26080 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63  ..SELECT ALL - c
26090 6f 6c 30 20 2b 20 2b 20 63 6f 6c 30 20 63 6f 6c  ol0 + + col0 col
260a0 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
260b0 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 71 75  -..0..0..0....qu
260c0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
260d0 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 63 6f  ELECT ALL + + co
260e0 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  l0 FROM tab1 WHE
260f0 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3c 20 4e 55  RE NOT NULL < NU
26100 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
26110 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
26120 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
26130 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20   tab0 WHERE NOT 
26140 2d 20 2b 20 63 6f 6c 31 20 42 45 54 57 45 45 4e  - + col1 BETWEEN
26150 20 4e 55 4c 4c 20 41 4e 44 20 63 6f 6c 31 20 2a   NULL AND col1 *
26160 20 2b 20 39 33 20 2b 20 2b 20 63 6f 6c 31 0d 0a   + 93 + + col1..
26170 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
26180 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
26190 20 2d 20 35 37 20 41 53 20 63 6f 6c 32 2c 20 63   - 57 AS col2, c
261a0 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol0 AS col2 FROM
261b0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 37   tab2..----..-57
261c0 0d 0a 34 36 0d 0a 2d 35 37 0d 0a 36 34 0d 0a 2d  ..46..-57..64..-
261d0 35 37 0d 0a 37 35 0d 0a 0d 0a 71 75 65 72 79 20  57..75....query 
261e0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
261f0 54 20 2b 20 36 20 2a 20 2b 20 2d 20 63 6f 6c 31  T + 6 * + - col1
26200 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
26210 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 36 0d 0a  b0..----..-126..
26220 2d 34 38 36 0d 0a 2d 36 0d 0a 0d 0a 71 75 65 72  -486..-6....quer
26230 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
26240 45 43 54 20 41 4c 4c 20 2d 20 2d 20 63 6f 6c 32  ECT ALL - - col2
26250 20 2b 20 2d 20 32 34 20 2a 20 2d 20 63 6f 6c 30   + - 24 * - col0
26260 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
26270 20 2d 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e   - col2 IS NOT N
26280 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 31 32 37 0d  ULL..----..1127.
26290 0a 31 35 37 36 0d 0a 31 38 35 38 0d 0a 0d 0a 6f  .1576..1858....o
262a0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
262b0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
262c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
262d0 74 20 6c 61 62 65 6c 2d 38 34 32 0d 0a 53 45 4c  t label-842..SEL
262e0 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  ECT + COUNT( * )
262f0 20 2a 20 2d 20 4d 49 4e 28 20 2d 20 63 6f 6c 31   * - MIN( - col1
26300 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
26310 74 61 62 32 20 63 6f 72 30 20 57 48 45 52 45 20  tab2 cor0 WHERE 
26320 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20  NOT NULL IS NOT 
26330 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 33 31 0d  NULL..----..231.
26340 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
26350 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
26360 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
26370 74 20 6c 61 62 65 6c 2d 38 34 32 0d 0a 53 45 4c  t label-842..SEL
26380 45 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  ECT + COUNT ( * 
26390 29 20 2a 20 2d 20 4d 49 4e 20 28 20 2d 20 63 6f  ) * - MIN ( - co
263a0 6c 31 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  l1 ) AS col0 FRO
263b0 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48 45 52  M tab2 cor0 WHER
263c0 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f  E NOT NULL IS NO
263d0 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 33  T NULL..----..23
263e0 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  1....query II ro
263f0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
26400 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20 2a 20  STINCT - col0 * 
26410 28 20 2b 20 31 37 20 29 2c 20 63 6f 6c 31 20 46  ( + 17 ), col1 F
26420 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
26430 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 34 35 0d 0a 35  ..----..-1445..5
26440 0d 0a 2d 31 35 34 37 0d 0a 34 37 0d 0a 2d 38 36  ..-1547..47..-86
26450 37 0d 0a 31 34 0d 0a 0d 0a 71 75 65 72 79 20 49  7..14....query I
26460 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
26470 20 2d 20 2d 20 35 31 20 2a 20 2d 20 38 36 20 46   - - 51 * - 86 F
26480 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
26490 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 33 38 36 0d 0a 2d  ..----..-4386..-
264a0 34 33 38 36 0d 0a 2d 34 33 38 36 0d 0a 0d 0a 71  4386..-4386....q
264b0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
264c0 53 45 4c 45 43 54 20 2d 20 37 32 20 2a 20 2d 20  SELECT - 72 * - 
264d0 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  + col2 FROM tab0
264e0 0d 0a 2d 2d 2d 2d 0d 0a 33 33 38 34 0d 0a 37 31  ..----..3384..71
264f0 32 38 0d 0a 37 32 30 0d 0a 0d 0a 6f 6e 6c 79 69  28..720....onlyi
26500 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
26510 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
26520 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
26530 61 62 65 6c 2d 38 34 36 0d 0a 53 45 4c 45 43 54  abel-846..SELECT
26540 20 44 49 53 54 49 4e 43 54 20 38 35 20 41 53 20   DISTINCT 85 AS 
26550 63 6f 6c 31 2c 20 53 55 4d 28 20 63 6f 6c 30 20  col1, SUM( col0 
26560 29 20 2a 20 39 36 20 46 52 4f 4d 20 74 61 62 31  ) * 96 FROM tab1
26570 0d 0a 2d 2d 2d 2d 0d 0a 38 35 0d 0a 32 31 37 39  ..----..85..2179
26580 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  2....skipif mysq
26590 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
265a0 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
265b0 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34 36 0d 0a  sort label-846..
265c0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
265d0 38 35 20 41 53 20 63 6f 6c 31 2c 20 53 55 4d 20  85 AS col1, SUM 
265e0 28 20 63 6f 6c 30 20 29 20 2a 20 39 36 20 46 52  ( col0 ) * 96 FR
265f0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 38  OM tab1..----..8
26600 35 0d 0a 32 31 37 39 32 0d 0a 0d 0a 6f 6e 6c 79  5..21792....only
26610 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
26620 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56  gate syntax: DIV
26630 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
26640 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
26650 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
26660 34 37 0d 0a 53 45 4c 45 43 54 20 28 20 37 37 20  47..SELECT ( 77 
26670 29 20 44 49 56 20 2b 20 43 4f 55 4e 54 28 20 2a  ) DIV + COUNT( *
26680 20 29 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20   ) - COUNT( * ) 
26690 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
266a0 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
266b0 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20  NOT NULL IS NOT 
266c0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 32 0d 0a  NULL..----..22..
266d0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
266e0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
266f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
26700 20 6c 61 62 65 6c 2d 38 34 37 0d 0a 53 45 4c 45   label-847..SELE
26710 43 54 20 28 20 37 37 20 29 20 2f 20 2b 20 43 4f  CT ( 77 ) / + CO
26720 55 4e 54 20 28 20 2a 20 29 20 2d 20 43 4f 55 4e  UNT ( * ) - COUN
26730 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20  T ( * ) AS col2 
26740 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
26750 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  0 WHERE NOT NULL
26760 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
26770 2d 2d 0d 0a 32 32 0d 0a 0d 0a 6f 6e 6c 79 69 66  --..22....onlyif
26780 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
26790 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
267a0 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  e: ..query II ro
267b0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34 38 0d  wsort label-848.
267c0 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 41 53 20  .SELECT col0 AS 
267d0 63 6f 6c 30 2c 20 2b 20 38 35 20 46 52 4f 4d 20  col0, + 85 FROM 
267e0 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
267f0 52 45 20 4e 4f 54 20 28 20 43 41 53 54 28 20 4e  RE NOT ( CAST( N
26800 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
26810 2d 20 63 6f 6c 32 20 29 20 49 53 20 4e 4f 54 20  - col2 ) IS NOT 
26820 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a  NULL..----..15..
26830 38 35 0d 0a 38 37 0d 0a 38 35 0d 0a 39 37 0d 0a  85..87..85..97..
26840 38 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  85....skipif mys
26850 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
26860 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
26870 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34 38 0d  wsort label-848.
26880 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 41 53 20  .SELECT col0 AS 
26890 63 6f 6c 30 2c 20 2b 20 38 35 20 46 52 4f 4d 20  col0, + 85 FROM 
268a0 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
268b0 52 45 20 4e 4f 54 20 28 20 43 41 53 54 20 28 20  RE NOT ( CAST ( 
268c0 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
268d0 29 20 2d 20 63 6f 6c 32 20 29 20 49 53 20 4e 4f  ) - col2 ) IS NO
268e0 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 35  T NULL..----..15
268f0 0d 0a 38 35 0d 0a 38 37 0d 0a 38 35 0d 0a 39 37  ..85..87..85..97
26900 0d 0a 38 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..85....query II
26910 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
26920 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 63 6f   DISTINCT - + co
26930 6c 32 20 41 53 20 63 6f 6c 32 2c 20 2b 20 35 37  l2 AS col2, + 57
26940 20 2a 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 63 6f   * - col2 * + co
26950 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l0 AS col0 FROM 
26960 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
26970 2d 2d 0d 0a 2d 35 39 0d 0a 2d 32 38 35 38 35 35  --..-59..-285855
26980 0d 0a 2d 36 38 0d 0a 2d 33 35 32 37 31 36 0d 0a  ..-68..-352716..
26990 2d 39 36 0d 0a 2d 32 37 39 30 37 32 0d 0a 0d 0a  -96..-279072....
269a0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
269b0 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
269c0 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
269d0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
269e0 6c 2d 38 35 30 0d 0a 53 45 4c 45 43 54 20 2d 20  l-850..SELECT - 
269f0 63 6f 6c 32 2c 20 43 41 53 54 28 20 2b 20 2d 20  col2, CAST( + - 
26a00 63 6f 6c 30 20 41 53 20 53 49 47 4e 45 44 20 29  col0 AS SIGNED )
26a10 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
26a20 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b1 cor0..----..-
26a30 35 39 0d 0a 2d 38 35 0d 0a 2d 36 38 0d 0a 2d 39  59..-85..-68..-9
26a40 31 0d 0a 2d 39 36 0d 0a 2d 35 31 0d 0a 0d 0a 73  1..-96..-51....s
26a50 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
26a60 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
26a70 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
26a80 61 62 65 6c 2d 38 35 30 0d 0a 53 45 4c 45 43 54  abel-850..SELECT
26a90 20 2d 20 63 6f 6c 32 2c 20 43 41 53 54 20 28 20   - col2, CAST ( 
26aa0 2b 20 2d 20 63 6f 6c 30 20 41 53 20 49 4e 54 45  + - col0 AS INTE
26ab0 47 45 52 20 29 20 41 53 20 63 6f 6c 32 20 46 52  GER ) AS col2 FR
26ac0 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d  OM tab1 cor0..--
26ad0 2d 2d 0d 0a 2d 35 39 0d 0a 2d 38 35 0d 0a 2d 36  --..-59..-85..-6
26ae0 38 0d 0a 2d 39 31 0d 0a 2d 39 36 0d 0a 2d 35 31  8..-91..-96..-51
26af0 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
26b00 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
26b10 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
26b20 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
26b30 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
26b40 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
26b50 45 4c 45 43 54 20 2b 20 36 36 2c 20 2d 20 63 6f  ELECT + 66, - co
26b60 6c 32 20 2d 20 2d 20 63 6f 6c 31 20 63 6f 6c 30  l2 - - col1 col0
26b70 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d   FROM tab0 cor0.
26b80 0a 2d 2d 2d 2d 0d 0a 36 36 0d 0a 2d 39 38 0d 0a  .----..66..-98..
26b90 36 36 0d 0a 31 31 0d 0a 36 36 0d 0a 33 34 0d 0a  66..11..66..34..
26ba0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
26bb0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
26bc0 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  * FROM tab2 AS c
26bd0 6f 72 30 20 57 48 45 52 45 20 2d 20 34 37 20 3c  or0 WHERE - 47 <
26be0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   NULL..----....o
26bf0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
26c00 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
26c10 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
26c20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
26c30 38 35 33 0d 0a 53 45 4c 45 43 54 20 28 20 34 39  853..SELECT ( 49
26c40 20 29 20 44 49 56 20 2d 20 2b 20 37 30 20 41 53   ) DIV - + 70 AS
26c50 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
26c60 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30  AS cor0..----..0
26c70 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  ..0..0....skipif
26c80 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
26c90 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
26ca0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
26cb0 35 33 0d 0a 53 45 4c 45 43 54 20 28 20 34 39 20  53..SELECT ( 49 
26cc0 29 20 2f 20 2d 20 2b 20 37 30 20 41 53 20 63 6f  ) / - + 70 AS co
26cd0 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
26ce0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30  cor0..----..0..0
26cf0 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..0....onlyif my
26d00 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
26d10 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
26d20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
26d30 38 35 34 0d 0a 53 45 4c 45 43 54 20 32 32 20 2a  854..SELECT 22 *
26d40 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52   + COUNT( * ) FR
26d50 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
26d60 0a 2d 2d 2d 2d 0d 0a 36 36 0d 0a 0d 0a 73 6b 69  .----..66....ski
26d70 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
26d80 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
26d90 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
26da0 6c 2d 38 35 34 0d 0a 53 45 4c 45 43 54 20 32 32  l-854..SELECT 22
26db0 20 2a 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29   * + COUNT ( * )
26dc0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
26dd0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 36 0d 0a 0d 0a  r0..----..66....
26de0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
26df0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
26e00 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57  CT * FROM tab1 W
26e10 48 45 52 45 20 2b 20 63 6f 6c 31 20 2b 20 2b 20  HERE + col1 + + 
26e20 28 20 2b 20 37 38 20 29 20 3c 3e 20 4e 55 4c 4c  ( + 78 ) <> NULL
26e30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
26e40 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
26e50 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2b 20 2d 20  CT ALL col1 + - 
26e60 63 6f 6c 30 20 41 53 20 63 6f 6c 32 2c 20 31 35  col0 AS col2, 15
26e70 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
26e80 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 37 0d 0a 31  b1..----..-37..1
26e90 35 0d 0a 2d 34 34 0d 0a 31 35 0d 0a 2d 38 30 0d  5..-44..15..-80.
26ea0 0a 31 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .15....query I r
26eb0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
26ec0 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 2a 20 2d  ISTINCT col2 * -
26ed0 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 2b 20 63 6f   - col0 + + + co
26ee0 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l1 AS col2 FROM 
26ef0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 37 38 36 0d  tab0..----..786.
26f00 0a 38 39 31 0d 0a 39 36 30 34 0d 0a 0d 0a 71 75  .891..9604....qu
26f10 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
26f20 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
26f30 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 55  OM tab1 WHERE NU
26f40 4c 4c 20 3c 20 2b 20 2d 20 35 39 0d 0a 2d 2d 2d  LL < + - 59..---
26f50 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
26f60 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
26f70 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
26f80 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
26f90 74 20 6c 61 62 65 6c 2d 38 35 39 0d 0a 53 45 4c  t label-859..SEL
26fa0 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
26fb0 57 48 45 52 45 20 2d 20 35 39 20 42 45 54 57 45  WHERE - 59 BETWE
26fc0 45 4e 20 35 33 20 2d 20 2b 20 63 6f 6c 30 20 41  EN 53 - + col0 A
26fd0 4e 44 20 2b 20 2d 20 38 38 20 2b 20 2d 20 31 30  ND + - 88 + - 10
26fe0 20 2a 20 2b 20 43 41 53 54 28 20 63 6f 6c 30 20   * + CAST( col0 
26ff0 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 63 6f  AS SIGNED ) * co
27000 6c 31 20 2a 20 37 20 2b 20 2b 20 63 6f 6c 30 0d  l1 * 7 + + col0.
27010 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
27020 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
27030 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
27040 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
27050 38 35 39 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  859..SELECT * FR
27060 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 2d 20  OM tab0 WHERE - 
27070 35 39 20 42 45 54 57 45 45 4e 20 35 33 20 2d 20  59 BETWEEN 53 - 
27080 2b 20 63 6f 6c 30 20 41 4e 44 20 2b 20 2d 20 38  + col0 AND + - 8
27090 38 20 2b 20 2d 20 31 30 20 2a 20 2b 20 43 41 53  8 + - 10 * + CAS
270a0 54 20 28 20 63 6f 6c 30 20 41 53 20 49 4e 54 45  T ( col0 AS INTE
270b0 47 45 52 20 29 20 2a 20 63 6f 6c 31 20 2a 20 37  GER ) * col1 * 7
270c0 20 2b 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d   + + col0..----.
270d0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
270e0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
270f0 20 35 38 20 2b 20 2b 20 63 6f 6c 30 20 2a 20 63   58 + + col0 * c
27100 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol0 AS col0 FROM
27110 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 31 37   tab2..----..217
27120 34 0d 0a 34 31 35 34 0d 0a 35 36 38 33 0d 0a 0d  4..4154..5683...
27130 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
27140 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
27150 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
27160 20 2d 20 63 6f 6c 31 20 42 45 54 57 45 45 4e 20   - col1 BETWEEN 
27170 2b 20 63 6f 6c 30 20 2a 20 2d 20 31 33 20 41 4e  + col0 * - 13 AN
27180 44 20 2b 20 2b 20 39 36 0d 0a 2d 2d 2d 2d 0d 0a  D + + 96..----..
27190 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
271a0 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63   to 75c998aa53ac
271b0 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64  83218cbf2feb962d
271c0 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20  0a49....query I 
271d0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
271e0 63 6f 6c 32 20 2b 20 36 39 20 2b 20 2b 20 63 6f  col2 + 69 + + co
271f0 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
27200 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 33 0d  cor0..----..163.
27210 0a 32 36 37 0d 0a 38 39 0d 0a 0d 0a 71 75 65 72  .267..89....quer
27220 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
27230 45 43 54 20 28 20 63 6f 6c 30 20 29 20 2a 20 2d  ECT ( col0 ) * -
27240 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 32 20 46   col1 + + col2 F
27250 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
27260 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 36 38 0d 0a 2d  ..----..-1168..-
27270 31 38 31 37 0d 0a 32 0d 0a 0d 0a 71 75 65 72 79  1817..2....query
27280 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
27290 43 54 20 2d 20 2d 20 63 6f 6c 30 20 2a 20 2b 20  CT - - col0 * + 
272a0 63 6f 6c 31 20 2a 20 2d 20 2d 20 63 6f 6c 30 20  col1 * - - col0 
272b0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
272c0 30 20 57 48 45 52 45 20 2d 20 38 20 2b 20 2b 20  0 WHERE - 8 + + 
272d0 2d 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 31 20  - col0 * - col1 
272e0 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
272f0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
27300 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
27310 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
27320 6f 72 74 20 6c 61 62 65 6c 2d 38 36 35 0d 0a 53  ort label-865..S
27330 45 4c 45 43 54 20 41 4c 4c 20 53 55 4d 28 20 41  ELECT ALL SUM( A
27340 4c 4c 20 2b 20 63 6f 6c 32 20 29 20 63 6f 6c 30  LL + col2 ) col0
27350 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
27360 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 31 0d 0a 0d  r0..----..121...
27370 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
27380 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
27390 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
273a0 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
273b0 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
273c0 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
273d0 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
273e0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
273f0 36 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 53  65..SELECT ALL S
27400 55 4d 20 28 20 41 4c 4c 20 2b 20 63 6f 6c 32 20  UM ( ALL + col2 
27410 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  ) col0 FROM tab2
27420 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
27430 31 32 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  121....onlyif my
27440 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
27450 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
27460 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
27470 38 36 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  866..SELECT ALL 
27480 2b 20 43 4f 55 4e 54 28 20 44 49 53 54 49 4e 43  + COUNT( DISTINC
27490 54 20 33 30 20 29 20 63 6f 6c 31 20 46 52 4f 4d  T 30 ) col1 FROM
274a0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
274b0 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66  ---..1....skipif
274c0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
274d0 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
274e0 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
274f0 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
27500 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
27510 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
27520 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
27530 74 20 6c 61 62 65 6c 2d 38 36 36 0d 0a 53 45 4c  t label-866..SEL
27540 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 20  ECT ALL + COUNT 
27550 28 20 44 49 53 54 49 4e 43 54 20 33 30 20 29 20  ( DISTINCT 30 ) 
27560 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
27570 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d  S cor0..----..1.
27580 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
27590 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
275a0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
275b0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 36 37 0d  wsort label-867.
275c0 0a 53 45 4c 45 43 54 20 33 33 20 2b 20 2d 20 2b  .SELECT 33 + - +
275d0 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d   COUNT( * ) FROM
275e0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
275f0 2d 2d 2d 0d 0a 33 30 0d 0a 0d 0a 73 6b 69 70 69  ---..30....skipi
27600 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
27610 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
27620 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
27630 38 36 37 0d 0a 53 45 4c 45 43 54 20 33 33 20 2b  867..SELECT 33 +
27640 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29   - + COUNT ( * )
27650 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
27660 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 30 0d 0a 0d 0a  r0..----..30....
27670 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
27680 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 2b  .SELECT + col0 +
27690 20 2d 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c   - - col2 AS col
276a0 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
276b0 2d 0d 0a 31 39 36 0d 0a 36 32 0d 0a 39 37 0d 0a  -..196..62..97..
276c0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
276d0 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 63  rt..SELECT - - c
276e0 6f 6c 31 20 41 53 20 63 6f 6c 30 2c 20 2b 20 35  ol1 AS col0, + 5
276f0 37 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c  7 + col2 + + col
27700 30 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30  0 + col1 AS col0
27710 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
27720 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 32 31  r0..----..14..21
27730 38 0d 0a 34 37 0d 0a 32 36 33 0d 0a 35 0d 0a 32  8..47..263..5..2
27740 30 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  06....query I ro
27750 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
27760 63 6f 6c 30 20 2d 20 2b 20 63 6f 6c 30 20 2b 20  col0 - + col0 + 
27770 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f  col0 AS col0 FRO
27780 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
27790 2d 2d 2d 2d 0d 0a 35 31 0d 0a 38 35 0d 0a 39 31  ----..51..85..91
277a0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
277b0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
277c0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
277d0 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
277e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
277f0 20 6c 61 62 65 6c 2d 38 37 31 0d 0a 53 45 4c 45   label-871..SELE
27800 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20  CT + COUNT( * ) 
27810 2d 20 2b 20 43 41 53 54 28 20 2d 20 2d 20 34 34  - + CAST( - - 44
27820 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2b   AS SIGNED ) + +
27830 20 33 33 20 2a 20 2d 20 2d 20 28 20 2d 20 2b 20   33 * - - ( - + 
27840 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 41 53 20  COUNT( * ) ) AS 
27850 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
27860 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
27870 34 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  40....skipif mys
27880 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
27890 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
278a0 73 6f 72 74 20 6c 61 62 65 6c 2d 38 37 31 0d 0a  sort label-871..
278b0 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20 28  SELECT + COUNT (
278c0 20 2a 20 29 20 2d 20 2b 20 43 41 53 54 20 28 20   * ) - + CAST ( 
278d0 2d 20 2d 20 34 34 20 41 53 20 49 4e 54 45 47 45  - - 44 AS INTEGE
278e0 52 20 29 20 2b 20 2b 20 33 33 20 2a 20 2d 20 2d  R ) + + 33 * - -
278f0 20 28 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a   ( - + COUNT ( *
27900 20 29 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f   ) ) AS col2 FRO
27910 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
27920 2d 2d 2d 2d 0d 0a 2d 31 34 30 0d 0a 0d 0a 71 75  ----..-140....qu
27930 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
27940 45 4c 45 43 54 20 2d 20 2d 20 37 38 20 2d 20 2b  ELECT - - 78 - +
27950 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20   - col2 AS col1 
27960 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
27970 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 35 0d 0a 31 37  0..----..125..17
27980 37 0d 0a 38 38 0d 0a 0d 0a 71 75 65 72 79 20 49  7..88....query I
27990 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
279a0 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
279b0 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
279c0 20 28 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 2b 20   ( - col0 * + + 
279d0 33 34 20 2a 20 2b 20 63 6f 6c 32 20 2a 20 2b 20  34 * + col2 * + 
279e0 33 36 20 29 20 4e 4f 54 20 42 45 54 57 45 45 4e  36 ) NOT BETWEEN
279f0 20 4e 55 4c 4c 20 41 4e 44 20 28 20 4e 55 4c 4c   NULL AND ( NULL
27a00 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72   )..----....quer
27a10 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
27a20 45 43 54 20 44 49 53 54 49 4e 43 54 20 32 37 20  ECT DISTINCT 27 
27a30 2d 20 36 39 20 41 53 20 63 6f 6c 32 20 46 52 4f  - 69 AS col2 FRO
27a40 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
27a50 2d 2d 2d 2d 0d 0a 2d 34 32 0d 0a 0d 0a 6f 6e 6c  ----..-42....onl
27a60 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
27a70 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
27a80 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
27a90 6c 61 62 65 6c 2d 38 37 35 0d 0a 53 45 4c 45 43  label-875..SELEC
27aa0 54 20 2b 20 4d 49 4e 28 20 2d 20 63 6f 6c 32 20  T + MIN( - col2 
27ab0 29 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  ) FROM tab1 WHER
27ac0 45 20 4e 4f 54 20 63 6f 6c 30 20 3e 3d 20 4e 55  E NOT col0 >= NU
27ad0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  LL..----..NULL..
27ae0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
27af0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
27b00 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
27b10 20 6c 61 62 65 6c 2d 38 37 35 0d 0a 53 45 4c 45   label-875..SELE
27b20 43 54 20 2b 20 4d 49 4e 20 28 20 2d 20 63 6f 6c  CT + MIN ( - col
27b30 32 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57 48  2 ) FROM tab1 WH
27b40 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20 3e 3d 20  ERE NOT col0 >= 
27b50 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  NULL..----..NULL
27b60 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
27b70 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
27b80 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
27b90 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
27ba0 61 62 65 6c 2d 38 37 36 0d 0a 53 45 4c 45 43 54  abel-876..SELECT
27bb0 20 44 49 53 54 49 4e 43 54 20 33 35 20 2a 20 2d   DISTINCT 35 * -
27bc0 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
27bd0 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62  IGNED ) FROM tab
27be0 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  2..----..NULL...
27bf0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
27c00 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
27c10 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
27c20 6c 61 62 65 6c 2d 38 37 36 0d 0a 53 45 4c 45 43  label-876..SELEC
27c30 54 20 44 49 53 54 49 4e 43 54 20 33 35 20 2a 20  T DISTINCT 35 * 
27c40 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
27c50 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20   INTEGER ) FROM 
27c60 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab2..----..NULL
27c70 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
27c80 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
27c90 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
27ca0 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
27cb0 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
27cc0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
27cd0 4c 45 43 54 20 41 4c 4c 20 38 33 20 2a 20 2b 20  LECT ALL 83 * + 
27ce0 32 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  2 col2 FROM tab0
27cf0 0d 0a 2d 2d 2d 2d 0d 0a 31 36 36 0d 0a 31 36 36  ..----..166..166
27d00 0d 0a 31 36 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..166....onlyif 
27d10 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
27d20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
27d30 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
27d40 6f 72 74 20 6c 61 62 65 6c 2d 38 37 38 0d 0a 53  ort label-878..S
27d50 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
27d60 20 63 6f 6c 30 20 44 49 56 20 2b 20 63 6f 6c 32   col0 DIV + col2
27d70 20 2a 20 2d 20 63 6f 6c 30 20 44 49 56 20 2b 20   * - col0 DIV + 
27d80 28 20 2d 20 2d 20 63 6f 6c 30 20 29 20 41 53 20  ( - - col0 ) AS 
27d90 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col1 FROM tab1..
27da0 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 30 0d 0a 0d 0a 73  ----..-1..0....s
27db0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
27dc0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
27dd0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
27de0 62 65 6c 2d 38 37 38 0d 0a 53 45 4c 45 43 54 20  bel-878..SELECT 
27df0 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20  DISTINCT + col0 
27e00 2f 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c  / + col2 * - col
27e10 30 20 2f 20 2b 20 28 20 2d 20 2d 20 63 6f 6c 30  0 / + ( - - col0
27e20 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
27e30 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a  tab1..----..-1..
27e40 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
27e50 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
27e60 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
27e70 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
27e80 20 6c 61 62 65 6c 2d 38 37 39 0d 0a 53 45 4c 45   label-879..SELE
27e90 43 54 20 2d 20 36 38 20 44 49 56 20 2d 20 63 6f  CT - 68 DIV - co
27ea0 6c 30 20 41 53 20 63 6f 6c 30 2c 20 33 37 20 46  l0 AS col0, 37 F
27eb0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
27ec0 30 0d 0a 33 37 0d 0a 30 0d 0a 33 37 0d 0a 34 0d  0..37..0..37..4.
27ed0 0a 33 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .37....skipif my
27ee0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
27ef0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72  ible..query II r
27f00 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 37 39  owsort label-879
27f10 0d 0a 53 45 4c 45 43 54 20 2d 20 36 38 20 2f 20  ..SELECT - 68 / 
27f20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 2c 20  - col0 AS col0, 
27f30 33 37 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  37 FROM tab0..--
27f40 2d 2d 0d 0a 30 0d 0a 33 37 0d 0a 30 0d 0a 33 37  --..0..37..0..37
27f50 0d 0a 34 0d 0a 33 37 0d 0a 0d 0a 71 75 65 72 79  ..4..37....query
27f60 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
27f70 43 54 20 63 6f 6c 30 20 2a 20 63 6f 6c 30 20 2a  CT col0 * col0 *
27f80 20 2b 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74   + - col1 FROM t
27f90 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 37 39  ab2..----..-1079
27fa0 31 36 0d 0a 2d 33 31 35 33 39 32 0d 0a 2d 33 37  16..-315392..-37
27fb0 36 38 37 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20  6875....query I 
27fc0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
27fd0 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 33 20 41  DISTINCT + + 3 A
27fe0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
27ff0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
28000 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
28010 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
28020 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
28030 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
28040 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
28050 74 20 6c 61 62 65 6c 2d 38 38 32 0d 0a 53 45 4c  t label-882..SEL
28060 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43  ECT DISTINCT + C
28070 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
28080 4e 45 44 20 29 20 2a 20 2b 20 2d 20 43 4f 55 4e  NED ) * + - COUN
28090 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46  T( * ) AS col0 F
280a0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
280b0 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
280c0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
280d0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
280e0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 38 32  owsort label-882
280f0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
28100 54 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  T + CAST ( NULL 
28110 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2b  AS INTEGER ) * +
28120 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41   - COUNT ( * ) A
28130 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
28140 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
28150 71 75 65 72 79 20 49 49 49 49 49 49 20 72 6f 77  query IIIIII row
28160 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
28170 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
28180 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
28190 74 61 62 31 20 63 6f 72 31 20 57 48 45 52 45 20  tab1 cor1 WHERE 
281a0 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  NULL IS NOT NULL
281b0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
281c0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
281d0 54 20 41 4c 4c 20 2d 20 38 33 20 2b 20 63 6f 6c  T ALL - 83 + col
281e0 32 20 2b 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 63  2 + - col2 * + c
281f0 6f 6c 31 20 2a 20 2d 20 63 6f 6c 30 20 46 52 4f  ol1 * - col0 FRO
28200 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
28210 2d 2d 2d 2d 0d 0a 31 39 37 30 37 37 0d 0a 32 39  ----..197077..29
28220 31 34 32 35 0d 0a 35 33 38 39 38 0d 0a 0d 0a 71  1425..53898....q
28230 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
28240 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 28  SELECT ALL + + (
28250 20 2d 20 2b 20 37 31 20 29 20 46 52 4f 4d 20 74   - + 71 ) FROM t
28260 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
28270 2d 0d 0a 2d 37 31 0d 0a 2d 37 31 0d 0a 2d 37 31  -..-71..-71..-71
28280 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
28290 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
282a0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
282b0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 38 36  owsort label-886
282c0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d  ..SELECT ALL + M
282d0 41 58 28 20 2b 20 2d 20 63 6f 6c 31 20 29 20 46  AX( + - col1 ) F
282e0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
282f0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 73 6b  ..----..-1....sk
28300 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
28310 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
28320 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
28330 65 6c 2d 38 38 36 0d 0a 53 45 4c 45 43 54 20 41  el-886..SELECT A
28340 4c 4c 20 2b 20 4d 41 58 20 28 20 2b 20 2d 20 63  LL + MAX ( + - c
28350 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 30 20  ol1 ) FROM tab0 
28360 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
28370 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
28380 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
28390 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
283a0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 38  rowsort label-88
283b0 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  7..SELECT DISTIN
283c0 43 54 20 2b 20 43 4f 55 4e 54 28 20 41 4c 4c 20  CT + COUNT( ALL 
283d0 34 31 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  41 ) AS col0 FRO
283e0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
283f0 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69  ----..3....skipi
28400 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
28410 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
28420 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
28430 38 38 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  887..SELECT DIST
28440 49 4e 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 41  INCT + COUNT ( A
28450 4c 4c 20 34 31 20 29 20 41 53 20 63 6f 6c 30 20  LL 41 ) AS col0 
28460 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
28470 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75  0..----..3....qu
28480 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
28490 45 4c 45 43 54 20 31 36 20 2b 20 2d 20 63 6f 6c  ELECT 16 + - col
284a0 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
284b0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 30 0d 0a  or0..----..-30..
284c0 2d 34 38 0d 0a 2d 35 39 0d 0a 0d 0a 71 75 65 72  -48..-59....quer
284d0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
284e0 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20 2a 20 2d  ECT ALL col2 * -
284f0 20 30 20 2d 20 2d 20 63 6f 6c 32 20 46 52 4f 4d   0 - - col2 FROM
28500 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
28510 2d 2d 2d 0d 0a 35 39 0d 0a 36 38 0d 0a 39 36 0d  ---..59..68..96.
28520 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
28530 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
28540 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
28550 20 57 48 45 52 45 20 4e 55 4c 4c 20 42 45 54 57   WHERE NULL BETW
28560 45 45 4e 20 2b 20 63 6f 6c 32 20 41 4e 44 20 2d  EEN + col2 AND -
28570 20 63 6f 6c 32 20 2f 20 2b 20 34 33 20 2a 20 2d   col2 / + 43 * -
28580 20 35 34 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c   54..----....onl
28590 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
285a0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
285b0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
285c0 6c 61 62 65 6c 2d 38 39 31 0d 0a 53 45 4c 45 43  label-891..SELEC
285d0 54 20 41 4c 4c 20 34 32 20 2a 20 43 4f 55 4e 54  T ALL 42 * COUNT
285e0 28 20 2a 20 29 20 2b 20 2b 20 43 4f 55 4e 54 28  ( * ) + + COUNT(
285f0 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a   * ) FROM tab0..
28600 2d 2d 2d 2d 0d 0a 31 32 39 0d 0a 0d 0a 73 6b 69  ----..129....ski
28610 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
28620 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
28630 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
28640 6c 2d 38 39 31 0d 0a 53 45 4c 45 43 54 20 41 4c  l-891..SELECT AL
28650 4c 20 34 32 20 2a 20 43 4f 55 4e 54 20 28 20 2a  L 42 * COUNT ( *
28660 20 29 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a   ) + + COUNT ( *
28670 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
28680 2d 2d 0d 0a 31 32 39 0d 0a 0d 0a 71 75 65 72 79  --..129....query
28690 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
286a0 43 54 20 33 38 20 2b 20 2b 20 63 6f 6c 31 20 2a  CT 38 + + col1 *
286b0 20 2b 20 37 33 20 46 52 4f 4d 20 74 61 62 30 0d   + 73 FROM tab0.
286c0 0a 2d 2d 2d 2d 0d 0a 31 31 31 0d 0a 31 35 37 31  .----..111..1571
286d0 0d 0a 35 39 35 31 0d 0a 0d 0a 71 75 65 72 79 20  ..5951....query 
286e0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
286f0 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
28700 57 48 45 52 45 20 4e 55 4c 4c 20 49 4e 20 28 20  WHERE NULL IN ( 
28710 2d 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d  - + col1 )..----
28720 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
28730 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20  ort..SELECT - ( 
28740 2b 20 34 36 20 29 20 41 53 20 63 6f 6c 30 20 46  + 46 ) AS col0 F
28750 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
28760 2d 34 36 0d 0a 2d 34 36 0d 0a 2d 34 36 0d 0a 0d  -46..-46..-46...
28770 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
28780 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31  t..SELECT - col1
28790 20 41 53 20 63 6f 6c 31 2c 20 38 34 20 46 52 4f   AS col1, 84 FRO
287a0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab0..----..-1
287b0 0d 0a 38 34 0d 0a 2d 32 31 0d 0a 38 34 0d 0a 2d  ..84..-21..84..-
287c0 38 31 0d 0a 38 34 0d 0a 0d 0a 71 75 65 72 79 20  81..84....query 
287d0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
287e0 54 20 2b 20 36 37 20 41 53 20 63 6f 6c 31 20 46  T + 67 AS col1 F
287f0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
28800 0d 0a 2d 2d 2d 2d 0d 0a 36 37 0d 0a 36 37 0d 0a  ..----..67..67..
28810 36 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  67....query II r
28820 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
28830 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20 41  ISTINCT - col0 A
28840 53 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c 32 20 46  S col1, + col2 F
28850 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
28860 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 39 36 0d  ..----..-51..96.
28870 0a 2d 38 35 0d 0a 35 39 0d 0a 2d 39 31 0d 0a 36  .-85..59..-91..6
28880 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  8....onlyif mysq
28890 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
288a0 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
288b0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
288c0 6c 61 62 65 6c 2d 38 39 38 0d 0a 53 45 4c 45 43  label-898..SELEC
288d0 54 20 2b 20 32 37 20 2d 20 31 37 20 44 49 56 20  T + 27 - 17 DIV 
288e0 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 31 20 41 53  col0 * + col1 AS
288f0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
28900 0a 2d 2d 2d 2d 0d 0a 2d 35 34 0d 0a 32 37 0d 0a  .----..-54..27..
28910 32 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  27....skipif mys
28920 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
28930 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
28940 73 6f 72 74 20 6c 61 62 65 6c 2d 38 39 38 0d 0a  sort label-898..
28950 53 45 4c 45 43 54 20 2b 20 32 37 20 2d 20 31 37  SELECT + 27 - 17
28960 20 2f 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 31   / col0 * + col1
28970 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
28980 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 34 0d 0a 32  b0..----..-54..2
28990 37 0d 0a 32 37 0d 0a 0d 0a 71 75 65 72 79 20 49  7..27....query I
289a0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
289b0 20 41 4c 4c 20 2b 20 2d 20 35 20 2b 20 2b 20 34   ALL + - 5 + + 4
289c0 33 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  3 FROM tab1 WHER
289d0 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 42  E NOT NULL NOT B
289e0 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20  ETWEEN NULL AND 
289f0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
28a00 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
28a10 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2a 20 63  ELECT - col2 * c
28a20 6f 6c 31 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f  ol1 - col0 AS co
28a30 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
28a40 2d 2d 0d 0a 2d 31 39 36 0d 0a 2d 32 39 37 0d 0a  --..-196..-297..
28a50 2d 33 38 32 32 0d 0a 0d 0a 71 75 65 72 79 20 49  -3822....query I
28a60 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
28a70 20 2b 20 32 32 20 2a 20 2d 20 63 6f 6c 32 20 2f   + 22 * - col2 /
28a80 20 63 6f 6c 30 20 2f 20 2d 20 63 6f 6c 30 20 2a   col0 / - col0 *
28a90 20 2d 20 63 6f 6c 31 20 2d 20 2b 20 2d 20 63 6f   - col1 - + - co
28aa0 6c 31 20 2b 20 2b 20 39 32 20 46 52 4f 4d 20 74  l1 + + 92 FROM t
28ab0 61 62 32 20 57 48 45 52 45 20 2b 20 63 6f 6c 31  ab2 WHERE + col1
28ac0 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
28ad0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
28ae0 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
28af0 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
28b00 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
28b10 65 6c 2d 39 30 32 0d 0a 53 45 4c 45 43 54 20 36  el-902..SELECT 6
28b20 33 20 44 49 56 20 28 20 63 6f 6c 30 20 29 20 41  3 DIV ( col0 ) A
28b30 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
28b40 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c   cor0 WHERE NULL
28b50 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
28b60 30 0d 0a 30 0d 0a 34 0d 0a 0d 0a 73 6b 69 70 69  0..0..4....skipi
28b70 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
28b80 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
28b90 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
28ba0 39 30 32 0d 0a 53 45 4c 45 43 54 20 36 33 20 2f  902..SELECT 63 /
28bb0 20 28 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c   ( col0 ) AS col
28bc0 32 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  2 FROM tab0 cor0
28bd0 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e   WHERE NULL IS N
28be0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d  ULL..----..0..0.
28bf0 0a 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .4....onlyif mys
28c00 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
28c10 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
28c20 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
28c30 20 6c 61 62 65 6c 2d 39 30 33 0d 0a 53 45 4c 45   label-903..SELE
28c40 43 54 20 2d 20 43 41 53 54 28 20 63 6f 6c 31 20  CT - CAST( col1 
28c50 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2b 20  AS SIGNED ) + + 
28c60 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
28c70 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  S cor0..----..0.
28c80 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  .0..0....skipif 
28c90 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
28ca0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
28cb0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 30  rowsort label-90
28cc0 33 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53 54  3..SELECT - CAST
28cd0 20 28 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47   ( col1 AS INTEG
28ce0 45 52 20 29 20 2b 20 2b 20 63 6f 6c 31 20 46 52  ER ) + + col1 FR
28cf0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
28d00 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a  .----..0..0..0..
28d10 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
28d20 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
28d30 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
28d40 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 3c  WHERE ( NULL ) <
28d50 3e 20 28 20 2d 20 63 6f 6c 31 20 29 0d 0a 2d 2d  > ( - col1 )..--
28d60 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
28d70 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
28d80 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 2d 20  STINCT - col2 - 
28d90 63 6f 6c 32 20 2a 20 2d 20 2d 20 63 6f 6c 31 20  col2 * - - col1 
28da0 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a  FROM tab2 cor0..
28db0 2d 2d 2d 2d 0d 0a 2d 31 31 39 36 0d 0a 2d 33 31  ----..-1196..-31
28dc0 32 30 0d 0a 2d 33 39 34 34 0d 0a 0d 0a 6f 6e 6c  20..-3944....onl
28dd0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
28de0 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
28df0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
28e00 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
28e10 39 30 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  906..SELECT DIST
28e20 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  INCT * FROM tab0
28e30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b   AS cor0 WHERE +
28e40 20 28 20 2b 20 37 36 20 29 20 4e 4f 54 20 42 45   ( + 76 ) NOT BE
28e50 54 57 45 45 4e 20 28 20 2d 20 43 41 53 54 28 20  TWEEN ( - CAST( 
28e60 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
28e70 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   + CAST( NULL AS
28e80 20 53 49 47 4e 45 44 20 29 20 29 20 41 4e 44 20   SIGNED ) ) AND 
28e90 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b  NULL..----....sk
28ea0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
28eb0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
28ec0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
28ed0 61 62 65 6c 2d 39 30 36 0d 0a 53 45 4c 45 43 54  abel-906..SELECT
28ee0 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
28ef0 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
28f00 45 52 45 20 2b 20 28 20 2b 20 37 36 20 29 20 4e  ERE + ( + 76 ) N
28f10 4f 54 20 42 45 54 57 45 45 4e 20 28 20 2d 20 43  OT BETWEEN ( - C
28f20 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
28f30 54 45 47 45 52 20 29 20 2b 20 43 41 53 54 20 28  TEGER ) + CAST (
28f40 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
28f50 20 29 20 29 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d   ) ) AND NULL..-
28f60 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
28f70 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
28f80 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
28f90 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
28fa0 74 20 6c 61 62 65 6c 2d 39 30 37 0d 0a 53 45 4c  t label-907..SEL
28fb0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 39  ECT DISTINCT - 9
28fc0 32 20 2a 20 2b 20 2d 20 43 41 53 54 28 20 4e 55  2 * + - CAST( NU
28fd0 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a  LL AS SIGNED ) *
28fe0 20 2b 20 36 34 20 2f 20 2b 20 36 31 20 46 52 4f   + 64 / + 61 FRO
28ff0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab2..----..NU
29000 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
29010 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
29020 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
29030 73 6f 72 74 20 6c 61 62 65 6c 2d 39 30 37 0d 0a  sort label-907..
29040 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
29050 2d 20 39 32 20 2a 20 2b 20 2d 20 43 41 53 54 20  - 92 * + - CAST 
29060 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
29070 52 20 29 20 2a 20 2b 20 36 34 20 2f 20 2b 20 36  R ) * + 64 / + 6
29080 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
29090 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69  -..NULL....onlyi
290a0 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
290b0 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65  yntax: aggregate
290c0 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
290d0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
290e0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 30  rowsort label-90
290f0 38 0d 0a 53 45 4c 45 43 54 20 2d 20 53 55 4d 28  8..SELECT - SUM(
29100 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   + CAST( NULL AS
29110 20 53 49 47 4e 45 44 20 29 20 29 20 2a 20 2d 20   SIGNED ) ) * - 
29120 37 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  70 FROM tab0..--
29130 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
29140 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
29150 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
29160 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
29170 2d 39 30 38 0d 0a 53 45 4c 45 43 54 20 2d 20 53  -908..SELECT - S
29180 55 4d 20 28 20 2b 20 43 41 53 54 20 28 20 4e 55  UM ( + CAST ( NU
29190 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
291a0 29 20 2a 20 2d 20 37 30 20 46 52 4f 4d 20 74 61  ) * - 70 FROM ta
291b0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b0..----..NULL..
291c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
291d0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f  t..SELECT ALL co
291e0 6c 31 20 2a 20 2d 20 2b 20 28 20 2d 20 63 6f 6c  l1 * - + ( - col
291f0 32 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  2 ) AS col0 FROM
29200 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 31 37   tab2..----..117
29210 33 0d 0a 33 30 38 30 0d 0a 33 38 38 36 0d 0a 0d  3..3080..3886...
29220 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
29230 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
29240 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
29250 73 6f 72 74 20 6c 61 62 65 6c 2d 39 31 30 0d 0a  sort label-910..
29260 53 45 4c 45 43 54 20 32 39 20 2a 20 2d 20 43 4f  SELECT 29 * - CO
29270 55 4e 54 28 20 38 31 20 29 2c 20 43 4f 55 4e 54  UNT( 81 ), COUNT
29280 28 20 2a 20 29 20 2b 20 2d 20 2b 20 32 39 20 41  ( * ) + - + 29 A
29290 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
292a0 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 37 0d 0a 2d 32 36  ..----..-87..-26
292b0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
292c0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
292d0 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
292e0 6f 72 74 20 6c 61 62 65 6c 2d 39 31 30 0d 0a 53  ort label-910..S
292f0 45 4c 45 43 54 20 32 39 20 2a 20 2d 20 43 4f 55  ELECT 29 * - COU
29300 4e 54 20 28 20 38 31 20 29 2c 20 43 4f 55 4e 54  NT ( 81 ), COUNT
29310 20 28 20 2a 20 29 20 2b 20 2d 20 2b 20 32 39 20   ( * ) + - + 29 
29320 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
29330 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 37 0d 0a 2d 32  0..----..-87..-2
29340 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
29350 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
29360 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
29370 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 31  rowsort label-91
29380 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  1..SELECT DISTIN
29390 43 54 20 36 36 20 2a 20 43 4f 55 4e 54 28 20 2a  CT 66 * COUNT( *
293a0 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d   ) FROM tab1..--
293b0 2d 2d 0d 0a 31 39 38 0d 0a 0d 0a 73 6b 69 70 69  --..198....skipi
293c0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
293d0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
293e0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
293f0 39 31 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  911..SELECT DIST
29400 49 4e 43 54 20 36 36 20 2a 20 43 4f 55 4e 54 20  INCT 66 * COUNT 
29410 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 0d  ( * ) FROM tab1.
29420 0a 2d 2d 2d 2d 0d 0a 31 39 38 0d 0a 0d 0a 6f 6e  .----..198....on
29430 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
29440 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
29450 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
29460 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
29470 31 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63  12..SELECT ALL c
29480 6f 6c 32 20 44 49 56 20 39 32 20 41 53 20 63 6f  ol2 DIV 92 AS co
29490 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
294a0 2d 2d 0d 0a 30 0d 0a 30 0d 0a 31 0d 0a 0d 0a 73  --..0..0..1....s
294b0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
294c0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
294d0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
294e0 62 65 6c 2d 39 31 32 0d 0a 53 45 4c 45 43 54 20  bel-912..SELECT 
294f0 41 4c 4c 20 63 6f 6c 32 20 2f 20 39 32 20 41 53  ALL col2 / 92 AS
29500 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
29510 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 31 0d 0a  .----..0..0..1..
29520 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
29530 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
29540 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
29550 73 6f 72 74 20 6c 61 62 65 6c 2d 39 31 33 0d 0a  sort label-913..
29560 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
29570 2d 20 4d 41 58 28 20 2d 20 2b 20 38 34 20 29 20  - MAX( - + 84 ) 
29580 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
29590 0a 38 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .84....skipif my
295a0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
295b0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
295c0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 31 33 0d  wsort label-913.
295d0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
295e0 20 2d 20 4d 41 58 20 28 20 2d 20 2b 20 38 34 20   - MAX ( - + 84 
295f0 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  ) FROM tab2..---
29600 2d 0d 0a 38 34 0d 0a 0d 0a 71 75 65 72 79 20 49  -..84....query I
29610 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
29620 20 41 4c 4c 20 39 30 20 2a 20 2b 20 2b 20 63 6f   ALL 90 * + + co
29630 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  l1 FROM tab1 WHE
29640 52 45 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e  RE NULL IS NOT N
29650 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
29660 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
29670 4c 45 43 54 20 41 4c 4c 20 2b 20 37 32 20 46 52  LECT ALL + 72 FR
29680 4f 4d 20 74 61 62 31 2c 20 74 61 62 30 20 63 6f  OM tab1, tab0 co
29690 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  r0..----..9 valu
296a0 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 39 30  es hashing to 90
296b0 36 62 36 33 63 39 61 64 62 37 64 39 61 63 37 33  6b63c9adb7d9ac73
296c0 35 35 63 61 62 37 31 61 32 35 66 63 34 39 0d 0a  55cab71a25fc49..
296d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
296e0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
296f0 43 54 20 2b 20 2b 20 28 20 2d 20 2b 20 63 6f 6c  CT + + ( - + col
29700 31 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  1 ) FROM tab1 AS
29710 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
29720 28 20 4e 55 4c 4c 20 29 20 49 53 20 4e 4f 54 20  ( NULL ) IS NOT 
29730 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 0d  NULL..----..-14.
29740 0a 2d 34 37 0d 0a 2d 35 0d 0a 0d 0a 71 75 65 72  .-47..-5....quer
29750 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
29760 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
29770 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
29780 4e 4f 54 20 63 6f 6c 32 20 3c 3d 20 2d 20 38 30  NOT col2 <= - 80
29790 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
297a0 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39   hashing to 75c9
297b0 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62 66  98aa53ac83218cbf
297c0 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a  2feb962d0a49....
297d0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
297e0 0d 0a 53 45 4c 45 43 54 20 38 32 20 41 53 20 63  ..SELECT 82 AS c
297f0 6f 6c 30 2c 20 2b 20 33 37 20 41 53 20 63 6f 6c  ol0, + 37 AS col
29800 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  1 FROM tab0 cor0
29810 0d 0a 2d 2d 2d 2d 0d 0a 38 32 0d 0a 33 37 0d 0a  ..----..82..37..
29820 38 32 0d 0a 33 37 0d 0a 38 32 0d 0a 33 37 0d 0a  82..37..82..37..
29830 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
29840 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 63 6f  t..SELECT + - co
29850 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l2 AS col0 FROM 
29860 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 4e  tab1 WHERE NOT N
29870 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ULL IS NULL..---
29880 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
29890 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
298a0 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
298b0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
298c0 6c 61 62 65 6c 2d 39 32 30 0d 0a 53 45 4c 45 43  label-920..SELEC
298d0 54 20 44 49 53 54 49 4e 43 54 20 2b 20 31 39 20  T DISTINCT + 19 
298e0 44 49 56 20 2b 20 2d 20 63 6f 6c 31 20 46 52 4f  DIV + - col1 FRO
298f0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab2..----..0.
29900 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
29910 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
29920 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
29930 74 20 6c 61 62 65 6c 2d 39 32 30 0d 0a 53 45 4c  t label-920..SEL
29940 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 31  ECT DISTINCT + 1
29950 39 20 2f 20 2b 20 2d 20 63 6f 6c 31 20 46 52 4f  9 / + - col1 FRO
29960 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab2..----..0.
29970 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
29980 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
29990 2b 20 36 20 2b 20 2d 20 28 20 2b 20 32 30 20 29  + 6 + - ( + 20 )
299a0 20 2a 20 2b 20 2d 20 63 6f 6c 31 20 41 53 20 63   * + - col1 AS c
299b0 6f 6c 32 2c 20 2d 20 63 6f 6c 30 20 41 53 20 63  ol2, - col0 AS c
299c0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
299d0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 32   cor0..----..102
299e0 36 0d 0a 2d 34 36 0d 0a 31 33 34 36 0d 0a 2d 37  6..-46..1346..-7
299f0 35 0d 0a 31 35 34 36 0d 0a 2d 36 34 0d 0a 0d 0a  5..1546..-64....
29a00 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
29a10 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
29a20 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
29a30 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
29a40 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
29a50 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
29a60 20 2b 20 63 6f 6c 30 20 63 6f 6c 30 20 46 52 4f   + col0 col0 FRO
29a70 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
29a80 48 45 52 45 20 34 33 20 3c 3d 20 2d 20 36 38 0d  HERE 43 <= - 68.
29a90 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
29aa0 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
29ab0 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
29ac0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
29ad0 6f 72 74 20 6c 61 62 65 6c 2d 39 32 33 0d 0a 53  ort label-923..S
29ae0 45 4c 45 43 54 20 41 4c 4c 20 2d 20 31 33 20 44  ELECT ALL - 13 D
29af0 49 56 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 37 31  IV - col2 * - 71
29b00 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
29b10 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a  r0..----..0..0..
29b20 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
29b30 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
29b40 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
29b50 6f 72 74 20 6c 61 62 65 6c 2d 39 32 33 0d 0a 53  ort label-923..S
29b60 45 4c 45 43 54 20 41 4c 4c 20 2d 20 31 33 20 2f  ELECT ALL - 13 /
29b70 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 37 31 20 46   - col2 * - 71 F
29b80 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
29b90 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d  ..----..0..0..0.
29ba0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
29bb0 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
29bc0 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
29bd0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
29be0 62 65 6c 2d 39 32 34 0d 0a 53 45 4c 45 43 54 20  bel-924..SELECT 
29bf0 41 4c 4c 20 2d 20 63 6f 6c 30 20 44 49 56 20 31  ALL - col0 DIV 1
29c00 31 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  1 col2 FROM tab1
29c10 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
29c20 2d 34 0d 0a 2d 37 0d 0a 2d 38 0d 0a 0d 0a 73 6b  -4..-7..-8....sk
29c30 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
29c40 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69   compatible..ski
29c50 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
29c60 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
29c70 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
29c80 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
29c90 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
29ca0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 32 34 0d  wsort label-924.
29cb0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f  .SELECT ALL - co
29cc0 6c 30 20 2f 20 31 31 20 63 6f 6c 32 20 46 52 4f  l0 / 11 col2 FRO
29cd0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
29ce0 2d 2d 2d 2d 0d 0a 2d 34 0d 0a 2d 37 0d 0a 2d 38  ----..-4..-7..-8
29cf0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
29d00 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
29d10 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
29d20 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
29d30 61 62 65 6c 2d 39 32 35 0d 0a 53 45 4c 45 43 54  abel-925..SELECT
29d40 20 2d 20 39 37 20 44 49 56 20 63 6f 6c 32 20 41   - 97 DIV col2 A
29d50 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
29d60 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
29d70 2d 32 0d 0a 2d 39 0d 0a 30 0d 0a 0d 0a 73 6b 69  -2..-9..0....ski
29d80 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
29d90 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
29da0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
29db0 6c 2d 39 32 35 0d 0a 53 45 4c 45 43 54 20 2d 20  l-925..SELECT - 
29dc0 39 37 20 2f 20 63 6f 6c 32 20 41 53 20 63 6f 6c  97 / col2 AS col
29dd0 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
29de0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 2d  or0..----..-2..-
29df0 39 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  9..0....onlyif m
29e00 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
29e10 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
29e20 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
29e30 2d 39 32 36 0d 0a 53 45 4c 45 43 54 20 44 49 53  -926..SELECT DIS
29e40 54 49 4e 43 54 20 4d 49 4e 28 20 35 38 20 29 20  TINCT MIN( 58 ) 
29e50 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col1 FROM tab1..
29e60 2d 2d 2d 2d 0d 0a 35 38 0d 0a 0d 0a 73 6b 69 70  ----..58....skip
29e70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
29e80 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
29e90 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
29ea0 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
29eb0 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
29ec0 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
29ed0 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
29ee0 6f 72 74 20 6c 61 62 65 6c 2d 39 32 36 0d 0a 53  ort label-926..S
29ef0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 4d  ELECT DISTINCT M
29f00 49 4e 20 28 20 35 38 20 29 20 63 6f 6c 31 20 46  IN ( 58 ) col1 F
29f10 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
29f20 35 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  58....query I ro
29f30 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
29f40 33 31 20 2a 20 28 20 2d 20 63 6f 6c 32 20 29 20  31 * ( - col2 ) 
29f50 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
29f60 0a 2d 31 32 34 30 0d 0a 2d 31 37 39 38 0d 0a 2d  .-1240..-1798..-
29f70 37 31 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  713....query I r
29f80 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
29f90 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
29fa0 57 48 45 52 45 20 2b 20 2b 20 34 32 20 49 53 20  WHERE + + 42 IS 
29fb0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
29fc0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
29fd0 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2b 20 38  ELECT - col1 + 8
29fe0 38 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  8 AS col1 FROM t
29ff0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
2a000 2d 0d 0a 31 31 0d 0a 32 31 0d 0a 33 37 0d 0a 0d  -..11..21..37...
2a010 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
2a020 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
2a030 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  NCT * FROM tab0 
2a040 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
2a050 54 20 2b 20 32 37 20 2d 20 2b 20 2b 20 34 30 20  T + 27 - + + 40 
2a060 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
2a070 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  -....query III r
2a080 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
2a090 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  LL * FROM tab2 W
2a0a0 48 45 52 45 20 4e 4f 54 20 2d 20 2d 20 63 6f 6c  HERE NOT - - col
2a0b0 31 20 2b 20 2d 20 2d 20 63 6f 6c 30 20 49 53 20  1 + - - col0 IS 
2a0c0 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
2a0d0 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
2a0e0 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
2a0f0 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
2a100 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
2a110 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
2a120 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2a130 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2b 20 2d 20  CT ALL col1 + - 
2a140 38 33 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  83 col1 FROM tab
2a150 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 2d 36 32  0..----..-2..-62
2a160 0d 0a 2d 38 32 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-82....query I
2a170 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2a180 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   + col2 FROM tab
2a190 31 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  1 cor0 WHERE NOT
2a1a0 20 63 6f 6c 32 20 2b 20 63 6f 6c 30 20 3c 3d 20   col2 + col0 <= 
2a1b0 31 30 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 36 38  10..----..59..68
2a1c0 0d 0a 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..96....onlyif m
2a1d0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
2a1e0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
2a1f0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2a200 2d 39 33 34 0d 0a 53 45 4c 45 43 54 20 44 49 53  -934..SELECT DIS
2a210 54 49 4e 43 54 20 2d 20 2d 20 4d 41 58 28 20 41  TINCT - - MAX( A
2a220 4c 4c 20 2b 20 63 6f 6c 30 20 29 20 46 52 4f 4d  LL + col0 ) FROM
2a230 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
2a240 2d 2d 2d 0d 0a 39 37 0d 0a 0d 0a 73 6b 69 70 69  ---..97....skipi
2a250 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2a260 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2a270 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2a280 39 33 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  934..SELECT DIST
2a290 49 4e 43 54 20 2d 20 2d 20 4d 41 58 20 28 20 41  INCT - - MAX ( A
2a2a0 4c 4c 20 2b 20 63 6f 6c 30 20 29 20 46 52 4f 4d  LL + col0 ) FROM
2a2b0 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
2a2c0 2d 2d 2d 0d 0a 39 37 0d 0a 0d 0a 71 75 65 72 79  ---..97....query
2a2d0 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
2a2e0 45 43 54 20 2d 20 63 6f 6c 31 2c 20 2d 20 63 6f  ECT - col1, - co
2a2f0 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l1 AS col0 FROM 
2a300 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
2a310 2d 2d 0d 0a 2d 31 34 0d 0a 2d 31 34 0d 0a 2d 34  --..-14..-14..-4
2a320 37 0d 0a 2d 34 37 0d 0a 2d 35 0d 0a 2d 35 0d 0a  7..-47..-5..-5..
2a330 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2a340 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28 20  t..SELECT ALL ( 
2a350 2d 20 63 6f 6c 32 20 29 20 2a 20 63 6f 6c 30 20  - col2 ) * col0 
2a360 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46  - col0 AS col0 F
2a370 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
2a380 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 39 34 37 0d 0a 2d  ..----..-4947..-
2a390 35 31 30 30 0d 0a 2d 36 32 37 39 0d 0a 0d 0a 71  5100..-6279....q
2a3a0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
2a3b0 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 41  .SELECT + col0 A
2a3c0 53 20 63 6f 6c 32 2c 20 35 32 20 46 52 4f 4d 20  S col2, 52 FROM 
2a3d0 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
2a3e0 2d 2d 0d 0a 31 35 0d 0a 35 32 0d 0a 38 37 0d 0a  --..15..52..87..
2a3f0 35 32 0d 0a 39 37 0d 0a 35 32 0d 0a 0d 0a 71 75  52..97..52....qu
2a400 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
2a410 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2a420 2b 20 33 30 2c 20 2b 20 39 30 20 2b 20 33 35 20  + 30, + 90 + 35 
2a430 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2a440 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
2a450 0a 33 30 0d 0a 31 32 35 0d 0a 0d 0a 71 75 65 72  .30..125....quer
2a460 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2a470 45 43 54 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30  ECT col1 AS col0
2a480 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
2a490 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54   NOT NULL IS NOT
2a4a0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d   NULL..----..14.
2a4b0 0a 34 37 0d 0a 35 0d 0a 0d 0a 71 75 65 72 79 20  .47..5....query 
2a4c0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
2a4d0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
2a4e0 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 2d  ROM tab0 WHERE -
2a4f0 20 38 38 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d   88 IS NULL..---
2a500 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
2a510 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63  sort..SELECT - c
2a520 6f 6c 31 20 2a 20 2b 20 38 32 20 41 53 20 63 6f  ol1 * + 82 AS co
2a530 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l0 FROM tab1..--
2a540 2d 2d 0d 0a 2d 31 31 34 38 0d 0a 2d 33 38 35 34  --..-1148..-3854
2a550 0d 0a 2d 34 31 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..-410....onlyif
2a560 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
2a570 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
2a580 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2a590 65 6c 2d 39 34 32 0d 0a 53 45 4c 45 43 54 20 2b  el-942..SELECT +
2a5a0 20 4d 41 58 28 20 2d 20 2d 20 63 6f 6c 32 20 29   MAX( - - col2 )
2a5b0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
2a5c0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 39 39 0d 0a 0d 0a  b0..----..99....
2a5d0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2a5e0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2a5f0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2a600 61 62 65 6c 2d 39 34 32 0d 0a 53 45 4c 45 43 54  abel-942..SELECT
2a610 20 2b 20 4d 41 58 20 28 20 2d 20 2d 20 63 6f 6c   + MAX ( - - col
2a620 32 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  2 ) AS col2 FROM
2a630 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 39 39 0d   tab0..----..99.
2a640 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
2a650 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
2a660 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
2a670 31 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 32 31  1 WHERE NOT + 21
2a680 20 2a 20 2b 20 2b 20 35 37 20 2d 20 2b 20 63 6f   * + + 57 - + co
2a690 6c 30 20 2b 20 2d 20 2d 20 38 37 20 2a 20 2d 20  l0 + - - 87 * - 
2a6a0 32 39 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2d  29 NOT BETWEEN -
2a6b0 20 39 32 20 41 4e 44 20 2d 20 63 6f 6c 31 0d 0a   92 AND - col1..
2a6c0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
2a6d0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2a6e0 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 63 6f 6c  DISTINCT - + col
2a6f0 30 20 2a 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f  0 * - col0 AS co
2a700 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45  l0 FROM tab2 WHE
2a710 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20  RE NOT ( NULL ) 
2a720 3c 3e 20 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d  <> + col2..----.
2a730 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2a740 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
2a750 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
2a760 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 34 35 0d  wsort label-945.
2a770 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 32 39  .SELECT ALL - 29
2a780 20 2a 20 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20   * - + COUNT( * 
2a790 29 20 2d 20 2b 20 53 55 4d 28 20 36 33 20 29 20  ) - + SUM( 63 ) 
2a7a0 2b 20 2b 20 31 35 20 41 53 20 63 6f 6c 30 20 46  + + 15 AS col0 F
2a7b0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
2a7c0 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 37 0d 0a 0d 0a 73  ..----..-87....s
2a7d0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2a7e0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2a7f0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2a800 62 65 6c 2d 39 34 35 0d 0a 53 45 4c 45 43 54 20  bel-945..SELECT 
2a810 41 4c 4c 20 2d 20 32 39 20 2a 20 2d 20 2b 20 43  ALL - 29 * - + C
2a820 4f 55 4e 54 20 28 20 2a 20 29 20 2d 20 2b 20 53  OUNT ( * ) - + S
2a830 55 4d 20 28 20 36 33 20 29 20 2b 20 2b 20 31 35  UM ( 63 ) + + 15
2a840 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
2a850 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
2a860 0d 0a 2d 38 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-87....onlyif 
2a870 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
2a880 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
2a890 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2a8a0 6c 2d 39 34 36 0d 0a 53 45 4c 45 43 54 20 4d 49  l-946..SELECT MI
2a8b0 4e 28 20 2d 20 2d 20 35 37 20 29 20 46 52 4f 4d  N( - - 57 ) FROM
2a8c0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 35 37 0d   tab0..----..57.
2a8d0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2a8e0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2a8f0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2a900 74 20 6c 61 62 65 6c 2d 39 34 36 0d 0a 53 45 4c  t label-946..SEL
2a910 45 43 54 20 4d 49 4e 20 28 20 2d 20 2d 20 35 37  ECT MIN ( - - 57
2a920 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
2a930 2d 2d 0d 0a 35 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  --..57....onlyif
2a940 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
2a950 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
2a960 65 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a  e: DECIMAL type:
2a970 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2a980 72 74 20 6c 61 62 65 6c 2d 39 34 37 0d 0a 53 45  rt label-947..SE
2a990 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20  LECT ALL - col2 
2a9a0 2a 20 2d 20 2b 20 63 6f 6c 32 20 2f 20 2d 20 43  * - + col2 / - C
2a9b0 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
2a9c0 4e 45 44 20 29 20 2b 20 2b 20 2b 20 31 35 20 2a  NED ) + + + 15 *
2a9d0 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   - CAST( NULL AS
2a9e0 20 44 45 43 49 4d 41 4c 20 29 20 2a 20 38 30 20   DECIMAL ) * 80 
2a9f0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
2aa00 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
2aa10 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
2aa20 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2aa30 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2aa40 6f 72 74 20 6c 61 62 65 6c 2d 39 34 37 0d 0a 53  ort label-947..S
2aa50 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32  ELECT ALL - col2
2aa60 20 2a 20 2d 20 2b 20 63 6f 6c 32 20 2f 20 2d 20   * - + col2 / - 
2aa70 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
2aa80 4e 54 45 47 45 52 20 29 20 2b 20 2b 20 2b 20 31  NTEGER ) + + + 1
2aa90 35 20 2a 20 2d 20 43 41 53 54 20 28 20 4e 55 4c  5 * - CAST ( NUL
2aaa0 4c 20 41 53 20 52 45 41 4c 20 29 20 2a 20 38 30  L AS REAL ) * 80
2aab0 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
2aac0 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
2aad0 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  LL....query I ro
2aae0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
2aaf0 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 2b 20  STINCT + col1 + 
2ab00 2d 20 34 34 20 46 52 4f 4d 20 74 61 62 30 20 41  - 44 FROM tab0 A
2ab10 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  S cor0..----..-2
2ab20 33 0d 0a 2d 34 33 0d 0a 33 37 0d 0a 0d 0a 73 6b  3..-43..37....sk
2ab30 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
2ab40 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
2ab50 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
2ab60 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
2ab70 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
2ab80 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
2ab90 4c 4c 20 2b 20 2b 20 31 34 20 2a 20 2b 20 63 6f  LL + + 14 * + co
2aba0 6c 30 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  l0 col0 FROM tab
2abb0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
2abc0 0a 31 30 35 30 0d 0a 36 34 34 0d 0a 38 39 36 0d  .1050..644..896.
2abd0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2abe0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
2abf0 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
2ac00 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2ac10 62 65 6c 2d 39 35 30 0d 0a 53 45 4c 45 43 54 20  bel-950..SELECT 
2ac20 41 4c 4c 20 63 6f 6c 31 20 2a 20 2d 20 2d 20 43  ALL col1 * - - C
2ac30 41 53 54 28 20 2b 20 2d 20 63 6f 6c 32 20 41 53  AST( + - col2 AS
2ac40 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c   SIGNED ) AS col
2ac50 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
2ac60 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 37 33  or0..----..-1173
2ac70 0d 0a 2d 33 30 38 30 0d 0a 2d 33 38 38 36 0d 0a  ..-3080..-3886..
2ac80 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2ac90 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2aca0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2acb0 20 6c 61 62 65 6c 2d 39 35 30 0d 0a 53 45 4c 45   label-950..SELE
2acc0 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2a 20 2d 20  CT ALL col1 * - 
2acd0 2d 20 43 41 53 54 20 28 20 2b 20 2d 20 63 6f 6c  - CAST ( + - col
2ace0 32 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41  2 AS INTEGER ) A
2acf0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
2ad00 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2ad10 2d 31 31 37 33 0d 0a 2d 33 30 38 30 0d 0a 2d 33  -1173..-3080..-3
2ad20 38 38 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  886....skipif po
2ad30 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
2ad40 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
2ad50 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
2ad60 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
2ad70 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2ad80 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20  .SELECT ALL - - 
2ad90 31 37 20 2b 20 2d 20 33 35 20 2b 20 2d 20 63 6f  17 + - 35 + - co
2ada0 6c 32 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  l2 col0 FROM tab
2adb0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
2adc0 0a 2d 34 31 0d 0a 2d 35 38 0d 0a 2d 37 36 0d 0a  .-41..-58..-76..
2add0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
2ade0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
2adf0 4e 43 54 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30  NCT col1 AS col0
2ae00 2c 20 2b 20 31 32 20 46 52 4f 4d 20 74 61 62 31  , + 12 FROM tab1
2ae10 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2ae20 31 34 0d 0a 31 32 0d 0a 34 37 0d 0a 31 32 0d 0a  14..12..47..12..
2ae30 35 0d 0a 31 32 0d 0a 0d 0a 71 75 65 72 79 20 49  5..12....query I
2ae40 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2ae50 20 2d 20 38 31 20 2a 20 28 20 2b 20 38 36 20 29   - 81 * ( + 86 )
2ae60 20 2b 20 2d 20 36 34 20 41 53 20 63 6f 6c 32 20   + - 64 AS col2 
2ae70 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
2ae80 30 20 57 48 45 52 45 20 2d 20 63 6f 6c 31 20 49  0 WHERE - col1 I
2ae90 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  S NULL..----....
2aea0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2aeb0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20  .SELECT ALL + + 
2aec0 33 36 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63  36 + - col2 AS c
2aed0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
2aee0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32   cor0..----..-22
2aef0 0d 0a 2d 34 0d 0a 31 33 0d 0a 0d 0a 71 75 65 72  ..-4..13....quer
2af00 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2af10 45 43 54 20 2b 20 39 39 20 2b 20 2b 20 63 6f 6c  ECT + 99 + + col
2af20 32 20 2b 20 2b 20 2d 20 28 20 2b 20 2b 20 63 6f  2 + + - ( + + co
2af30 6c 30 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  l0 ) AS col1 FRO
2af40 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34  M tab1..----..14
2af50 34 0d 0a 37 33 0d 0a 37 36 0d 0a 0d 0a 71 75 65  4..73..76....que
2af60 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
2af70 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
2af80 62 31 20 57 48 45 52 45 20 2b 20 2b 20 63 6f 6c  b1 WHERE + + col
2af90 31 20 2a 20 2d 20 63 6f 6c 31 20 49 53 20 4e 4f  1 * - col1 IS NO
2afa0 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20  T NULL..----..9 
2afb0 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
2afc0 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64 30  o c6c0a4111b36d0
2afd0 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34 63  4dbc811a11e4d54c
2afe0 61 64 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  ad....onlyif mys
2aff0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
2b000 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
2b010 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2b020 35 37 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54  57..SELECT COUNT
2b030 28 20 2a 20 29 20 2a 20 43 4f 55 4e 54 28 20 2a  ( * ) * COUNT( *
2b040 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
2b050 74 61 62 31 2c 20 74 61 62 31 20 41 53 20 63 6f  tab1, tab1 AS co
2b060 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 31 0d 0a 0d 0a  r0..----..81....
2b070 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2b080 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2b090 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2b0a0 61 62 65 6c 2d 39 35 37 0d 0a 53 45 4c 45 43 54  abel-957..SELECT
2b0b0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 43   COUNT ( * ) * C
2b0c0 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
2b0d0 6c 32 20 46 52 4f 4d 20 74 61 62 31 2c 20 74 61  l2 FROM tab1, ta
2b0e0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
2b0f0 0d 0a 38 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..81....query I 
2b100 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2b110 44 49 53 54 49 4e 43 54 20 39 34 20 2b 20 2b 20  DISTINCT 94 + + 
2b120 33 20 2b 20 2b 20 32 38 20 46 52 4f 4d 20 74 61  3 + + 28 FROM ta
2b130 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 35 0d 0a 0d  b0..----..125...
2b140 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2b150 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2b160 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2b170 6f 72 74 20 6c 61 62 65 6c 2d 39 35 39 0d 0a 53  ort label-959..S
2b180 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
2b190 20 34 37 20 2b 20 4d 41 58 28 20 2d 20 63 6f 6c   47 + MAX( - col
2b1a0 31 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  1 ) col2 FROM ta
2b1b0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 0d 0a 0d 0a  b2..----..-4....
2b1c0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2b1d0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73  ot compatible..s
2b1e0 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
2b1f0 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
2b200 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
2b210 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
2b220 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
2b230 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 35  rowsort label-95
2b240 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  9..SELECT DISTIN
2b250 43 54 20 2b 20 34 37 20 2b 20 4d 41 58 20 28 20  CT + 47 + MAX ( 
2b260 2d 20 63 6f 6c 31 20 29 20 63 6f 6c 32 20 46 52  - col1 ) col2 FR
2b270 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
2b280 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  4....skipif post
2b290 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
2b2a0 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
2b2b0 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
2b2c0 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
2b2d0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2b2e0 45 4c 45 43 54 20 63 6f 6c 32 20 2a 20 2d 20 39  ELECT col2 * - 9
2b2f0 20 2a 20 2d 20 63 6f 6c 31 20 63 6f 6c 32 20 46   * - col1 col2 F
2b300 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
2b310 31 32 30 39 36 0d 0a 32 36 35 35 0d 0a 32 38 37  12096..2655..287
2b320 36 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  64....skipif pos
2b330 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
2b340 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
2b350 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
2b360 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
2b370 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2b380 53 45 4c 45 43 54 20 41 4c 4c 20 34 38 20 2b 20  SELECT ALL 48 + 
2b390 2b 20 2b 20 37 31 20 63 6f 6c 30 20 46 52 4f 4d  + + 71 col0 FROM
2b3a0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 31 39   tab1..----..119
2b3b0 0d 0a 31 31 39 0d 0a 31 31 39 0d 0a 0d 0a 6f 6e  ..119..119....on
2b3c0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
2b3d0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
2b3e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2b3f0 20 6c 61 62 65 6c 2d 39 36 32 0d 0a 53 45 4c 45   label-962..SELE
2b400 43 54 20 2d 20 53 55 4d 28 20 44 49 53 54 49 4e  CT - SUM( DISTIN
2b410 43 54 20 2d 20 63 6f 6c 32 20 29 20 41 53 20 63  CT - col2 ) AS c
2b420 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol0 FROM tab2 co
2b430 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 31 0d 0a 0d  r0..----..121...
2b440 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2b450 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2b460 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2b470 6c 61 62 65 6c 2d 39 36 32 0d 0a 53 45 4c 45 43  label-962..SELEC
2b480 54 20 2d 20 53 55 4d 20 28 20 44 49 53 54 49 4e  T - SUM ( DISTIN
2b490 43 54 20 2d 20 63 6f 6c 32 20 29 20 41 53 20 63  CT - col2 ) AS c
2b4a0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol0 FROM tab2 co
2b4b0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 31 0d 0a 0d  r0..----..121...
2b4c0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2b4d0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2b4e0 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  : DIV for intege
2b4f0 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
2b500 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2b510 62 65 6c 2d 39 36 33 0d 0a 53 45 4c 45 43 54 20  bel-963..SELECT 
2b520 41 4c 4c 20 43 4f 55 4e 54 28 20 2a 20 29 20 2d  ALL COUNT( * ) -
2b530 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 44 49   + COUNT( * ) DI
2b540 56 20 2b 20 28 20 2d 20 4d 49 4e 28 20 2b 20 63  V + ( - MIN( + c
2b550 6f 6c 32 20 29 20 29 20 46 52 4f 4d 20 74 61 62  ol2 ) ) FROM tab
2b560 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  1 cor0..----..3.
2b570 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2b580 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2b590 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2b5a0 74 20 6c 61 62 65 6c 2d 39 36 33 0d 0a 53 45 4c  t label-963..SEL
2b5b0 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20 28 20  ECT ALL COUNT ( 
2b5c0 2a 20 29 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20  * ) - + COUNT ( 
2b5d0 2a 20 29 20 2f 20 2b 20 28 20 2d 20 4d 49 4e 20  * ) / + ( - MIN 
2b5e0 28 20 2b 20 63 6f 6c 32 20 29 20 29 20 46 52 4f  ( + col2 ) ) FRO
2b5f0 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab1 cor0..---
2b600 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49  -..3....query II
2b610 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2b620 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
2b630 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
2b640 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 42 45  HERE NOT NULL BE
2b650 54 57 45 45 4e 20 28 20 4e 55 4c 4c 20 29 20 41  TWEEN ( NULL ) A
2b660 4e 44 20 2b 20 32 39 0d 0a 2d 2d 2d 2d 0d 0a 0d  ND + 29..----...
2b670 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2b680 0d 0a 53 45 4c 45 43 54 20 2b 20 37 33 20 41 53  ..SELECT + 73 AS
2b690 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
2b6a0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
2b6b0 54 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20 4e  T NULL BETWEEN N
2b6c0 55 4c 4c 20 41 4e 44 20 63 6f 6c 30 0d 0a 2d 2d  ULL AND col0..--
2b6d0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  --....query III 
2b6e0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2b6f0 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
2b700 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
2b710 52 45 20 28 20 4e 4f 54 20 2d 20 63 6f 6c 30 20  RE ( NOT - col0 
2b720 2b 20 2b 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 2b  + + + col0 * + +
2b730 20 35 31 20 3c 3d 20 28 20 2d 20 38 32 20 29 20   51 <= ( - 82 ) 
2b740 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  )..----..9 value
2b750 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63  s hashing to c6c
2b760 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38  0a4111b36d04dbc8
2b770 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d  11a11e4d54cad...
2b780 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2b790 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 33 32 20  ..SELECT + - 32 
2b7a0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2b7b0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
2b7c0 0a 2d 33 32 0d 0a 2d 33 32 0d 0a 2d 33 32 0d 0a  .-32..-32..-32..
2b7d0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2b7e0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2b7f0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
2b800 73 6f 72 74 20 6c 61 62 65 6c 2d 39 36 38 0d 0a  sort label-968..
2b810 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2b820 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20 2d 20  MAX( DISTINCT - 
2b830 2b 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30  + col0 ) AS col0
2b840 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
2b850 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 0d  r0..----..-15...
2b860 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2b870 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2b880 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2b890 6c 61 62 65 6c 2d 39 36 38 0d 0a 53 45 4c 45 43  label-968..SELEC
2b8a0 54 20 44 49 53 54 49 4e 43 54 20 4d 41 58 20 28  T DISTINCT MAX (
2b8b0 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 63 6f   DISTINCT - + co
2b8c0 6c 30 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  l0 ) AS col0 FRO
2b8d0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
2b8e0 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 0d 0a 6f 6e 6c  ----..-15....onl
2b8f0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
2b900 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
2b910 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2b920 6c 61 62 65 6c 2d 39 36 39 0d 0a 53 45 4c 45 43  label-969..SELEC
2b930 54 20 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20  T MAX( DISTINCT 
2b940 39 36 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41  96 ) FROM tab2 A
2b950 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
2b960 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c   NULL IS NOT NUL
2b970 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 36 0d 0a 0d 0a 73  L..----..96....s
2b980 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2b990 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2b9a0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2b9b0 62 65 6c 2d 39 36 39 0d 0a 53 45 4c 45 43 54 20  bel-969..SELECT 
2b9c0 4d 41 58 20 28 20 44 49 53 54 49 4e 43 54 20 39  MAX ( DISTINCT 9
2b9d0 36 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53  6 ) FROM tab2 AS
2b9e0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
2b9f0 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  NULL IS NOT NULL
2ba00 0d 0a 2d 2d 2d 2d 0d 0a 39 36 0d 0a 0d 0a 6f 6e  ..----..96....on
2ba10 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
2ba20 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
2ba30 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2ba40 20 6c 61 62 65 6c 2d 39 37 30 0d 0a 53 45 4c 45   label-970..SELE
2ba50 43 54 20 41 4c 4c 20 2b 20 4d 49 4e 28 20 2d 20  CT ALL + MIN( - 
2ba60 2b 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 31  + col1 ) AS col1
2ba70 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
2ba80 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 37 0d 0a 0d  r0..----..-77...
2ba90 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2baa0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2bab0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2bac0 6c 61 62 65 6c 2d 39 37 30 0d 0a 53 45 4c 45 43  label-970..SELEC
2bad0 54 20 41 4c 4c 20 2b 20 4d 49 4e 20 28 20 2d 20  T ALL + MIN ( - 
2bae0 2b 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 31  + col1 ) AS col1
2baf0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
2bb00 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 37 0d 0a 0d  r0..----..-77...
2bb10 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2bb20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
2bb30 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
2bb40 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2bb50 6c 2d 39 37 31 0d 0a 53 45 4c 45 43 54 20 2d 20  l-971..SELECT - 
2bb60 2b 20 63 6f 6c 30 20 2a 20 2d 20 28 20 35 35 20  + col0 * - ( 55 
2bb70 29 20 2b 20 2b 20 2d 20 43 41 53 54 28 20 4e 55  ) + + - CAST( NU
2bb80 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b  LL AS SIGNED ) +
2bb90 20 2b 20 28 20 28 20 2b 20 2d 20 63 6f 6c 31 20   + ( ( + - col1 
2bba0 29 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ) ) AS col2 FROM
2bbb0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
2bbc0 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
2bbd0 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
2bbe0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2bbf0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2bc00 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 37  rowsort label-97
2bc10 31 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 63 6f  1..SELECT - + co
2bc20 6c 30 20 2a 20 2d 20 28 20 35 35 20 29 20 2b 20  l0 * - ( 55 ) + 
2bc30 2b 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  + - CAST ( NULL 
2bc40 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20 2b  AS INTEGER ) + +
2bc50 20 28 20 28 20 2b 20 2d 20 63 6f 6c 31 20 29 20   ( ( + - col1 ) 
2bc60 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
2bc70 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
2bc80 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
2bc90 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ULL....query III
2bca0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2bcb0 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
2bcc0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d  cor0 WHERE NOT -
2bcd0 20 36 39 20 2a 20 2d 20 28 20 2b 20 63 6f 6c 31   69 * - ( + col1
2bce0 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a   ) IS NOT NULL..
2bcf0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
2bd00 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2bd10 44 49 53 54 49 4e 43 54 20 2d 20 38 30 20 46 52  DISTINCT - 80 FR
2bd20 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
2bd30 57 48 45 52 45 20 2d 20 63 6f 6c 32 20 49 53 20  WHERE - col2 IS 
2bd40 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
2bd50 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
2bd60 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
2bd70 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2bd80 20 6c 61 62 65 6c 2d 39 37 34 0d 0a 53 45 4c 45   label-974..SELE
2bd90 43 54 20 43 4f 55 4e 54 28 20 35 39 20 29 20 46  CT COUNT( 59 ) F
2bda0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
2bdb0 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
2bdc0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2bdd0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2bde0 6f 72 74 20 6c 61 62 65 6c 2d 39 37 34 0d 0a 53  ort label-974..S
2bdf0 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 35 39  ELECT COUNT ( 59
2be00 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
2be10 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49  --..3....query I
2be20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2be30 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 2c  T DISTINCT col2,
2be40 20 2d 20 36 36 20 46 52 4f 4d 20 74 61 62 31 0d   - 66 FROM tab1.
2be50 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 2d 36 36 0d 0a  .----..59..-66..
2be60 36 38 0d 0a 2d 36 36 0d 0a 39 36 0d 0a 2d 36 36  68..-66..96..-66
2be70 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2be80 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
2be90 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  tax: ..query II 
2bea0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 37  rowsort label-97
2beb0 36 0d 0a 53 45 4c 45 43 54 20 2d 20 38 20 41 53  6..SELECT - 8 AS
2bec0 20 63 6f 6c 30 2c 20 2d 20 43 4f 55 4e 54 28 20   col0, - COUNT( 
2bed0 2a 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  * ) col0 FROM ta
2bee0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 0d 0a 2d 33  b1..----..-8..-3
2bef0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2bf00 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2bf10 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
2bf20 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
2bf30 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
2bf40 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
2bf50 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
2bf60 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
2bf70 65 6c 2d 39 37 36 0d 0a 53 45 4c 45 43 54 20 2d  el-976..SELECT -
2bf80 20 38 20 41 53 20 63 6f 6c 30 2c 20 2d 20 43 4f   8 AS col0, - CO
2bf90 55 4e 54 20 28 20 2a 20 29 20 63 6f 6c 30 20 46  UNT ( * ) col0 F
2bfa0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
2bfb0 2d 38 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79 20  -8..-3....query 
2bfc0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2bfd0 54 20 44 49 53 54 49 4e 43 54 20 33 39 20 2a 20  T DISTINCT 39 * 
2bfe0 2b 20 28 20 63 6f 6c 32 20 29 20 2a 20 2b 20 2b  + ( col2 ) * + +
2bff0 20 33 38 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   38 AS col1 FROM
2c000 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 36   tab0..----..146
2c010 37 31 38 0d 0a 31 34 38 32 30 0d 0a 36 39 36 35  718..14820..6965
2c020 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  4....onlyif mysq
2c030 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
2c040 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49  ntax: ..query II
2c050 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2c060 37 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  78..SELECT ALL -
2c070 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 2c 20 2b   - COUNT( * ), +
2c080 20 43 4f 55 4e 54 28 20 41 4c 4c 20 2d 20 37 33   COUNT( ALL - 73
2c090 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
2c0a0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
2c0b0 2d 2d 0d 0a 33 0d 0a 33 0d 0a 0d 0a 73 6b 69 70  --..3..3....skip
2c0c0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2c0d0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2c0e0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
2c0f0 6c 2d 39 37 38 0d 0a 53 45 4c 45 43 54 20 41 4c  l-978..SELECT AL
2c100 4c 20 2d 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  L - - COUNT ( * 
2c110 29 2c 20 2b 20 43 4f 55 4e 54 20 28 20 41 4c 4c  ), + COUNT ( ALL
2c120 20 2d 20 37 33 20 29 20 41 53 20 63 6f 6c 30 20   - 73 ) AS col0 
2c130 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
2c140 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 33 0d 0a 0d  0..----..3..3...
2c150 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
2c160 74 0d 0a 53 45 4c 45 43 54 20 32 32 20 41 53 20  t..SELECT 22 AS 
2c170 63 6f 6c 31 2c 20 2b 20 36 32 20 2b 20 2d 20 63  col1, + 62 + - c
2c180 6f 6c 31 20 2b 20 2b 20 63 6f 6c 30 20 2a 20 2b  ol1 + + col0 * +
2c190 20 38 33 20 46 52 4f 4d 20 74 61 62 31 20 41 53   83 FROM tab1 AS
2c1a0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 32 0d   cor0..----..22.
2c1b0 0a 34 32 38 31 0d 0a 32 32 0d 0a 37 31 31 32 0d  .4281..22..7112.
2c1c0 0a 32 32 0d 0a 37 35 36 38 0d 0a 0d 0a 71 75 65  .22..7568....que
2c1d0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
2c1e0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
2c1f0 20 2b 20 32 36 2c 20 2b 20 63 6f 6c 30 20 41 53   + 26, + col0 AS
2c200 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
2c210 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
2c220 32 36 0d 0a 35 31 0d 0a 2d 32 36 0d 0a 38 35 0d  26..51..-26..85.
2c230 0a 2d 32 36 0d 0a 39 31 0d 0a 0d 0a 71 75 65 72  .-26..91....quer
2c240 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2c250 45 43 54 20 41 4c 4c 20 2d 20 2d 20 28 20 2b 20  ECT ALL - - ( + 
2c260 38 34 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  84 ) AS col1 FRO
2c270 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
2c280 2d 2d 2d 2d 0d 0a 38 34 0d 0a 38 34 0d 0a 38 34  ----..84..84..84
2c290 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
2c2a0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
2c2b0 54 49 4e 43 54 20 32 32 2c 20 2b 20 63 6f 6c 31  TINCT 22, + col1
2c2c0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
2c2d0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 32 0d 0a 31 34  r0..----..22..14
2c2e0 0d 0a 32 32 0d 0a 34 37 0d 0a 32 32 0d 0a 35 0d  ..22..47..22..5.
2c2f0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2c300 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20  rt..SELECT col1 
2c310 2b 20 39 36 20 46 52 4f 4d 20 74 61 62 30 20 41  + 96 FROM tab0 A
2c320 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31  S cor0..----..11
2c330 37 0d 0a 31 37 37 0d 0a 39 37 0d 0a 0d 0a 71 75  7..177..97....qu
2c340 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2c350 45 4c 45 43 54 20 63 6f 6c 31 20 2b 20 2d 20 2d  ELECT col1 + - -
2c360 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52   col2 AS col0 FR
2c370 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
2c380 0a 2d 2d 2d 2d 0d 0a 31 31 37 0d 0a 31 32 35 0d  .----..117..125.
2c390 0a 37 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  .74....query II 
2c3a0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2c3b0 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 2b 20  DISTINCT col2 + 
2c3c0 2b 20 35 35 20 2d 20 2d 20 63 6f 6c 30 20 41 53  + 55 - - col0 AS
2c3d0 20 63 6f 6c 31 2c 20 63 6f 6c 32 20 46 52 4f 4d   col1, col2 FROM
2c3e0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 32 34   tab2..----..124
2c3f0 0d 0a 32 33 0d 0a 31 35 39 0d 0a 34 30 0d 0a 31  ..23..159..40..1
2c400 38 38 0d 0a 35 38 0d 0a 0d 0a 6f 6e 6c 79 69 66  88..58....onlyif
2c410 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
2c420 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
2c430 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2c440 65 6c 2d 39 38 36 0d 0a 53 45 4c 45 43 54 20 31  el-986..SELECT 1
2c450 31 20 2a 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b  1 * COUNT( * ) +
2c460 20 2b 20 32 34 20 46 52 4f 4d 20 74 61 62 30 20   + 24 FROM tab0 
2c470 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35  AS cor0..----..5
2c480 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  7....skipif mysq
2c490 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2c4a0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2c4b0 6f 72 74 20 6c 61 62 65 6c 2d 39 38 36 0d 0a 53  ort label-986..S
2c4c0 45 4c 45 43 54 20 31 31 20 2a 20 43 4f 55 4e 54  ELECT 11 * COUNT
2c4d0 20 28 20 2a 20 29 20 2b 20 2b 20 32 34 20 46 52   ( * ) + + 24 FR
2c4e0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
2c4f0 0a 2d 2d 2d 2d 0d 0a 35 37 0d 0a 0d 0a 6f 6e 6c  .----..57....onl
2c500 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
2c510 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c   syntax: DECIMAL
2c520 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
2c530 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
2c540 2d 39 38 37 0d 0a 53 45 4c 45 43 54 20 2a 20 46  -987..SELECT * F
2c550 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
2c560 20 57 48 45 52 45 20 2b 20 35 20 4e 4f 54 20 49   WHERE + 5 NOT I
2c570 4e 20 28 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 63  N ( - col1 + + c
2c580 6f 6c 30 20 2b 20 2d 20 63 6f 6c 32 20 2a 20 2d  ol0 + - col2 * -
2c590 20 63 6f 6c 31 20 2f 20 2b 20 2d 20 63 6f 6c 32   col1 / + - col2
2c5a0 20 2a 20 2b 20 2d 20 43 41 53 54 28 20 4e 55 4c   * + - CAST( NUL
2c5b0 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29 2c 20  L AS DECIMAL ), 
2c5c0 2d 20 63 6f 6c 32 2c 20 2d 20 63 6f 6c 30 2c 20  - col2, - col0, 
2c5d0 2d 20 31 35 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  - 15 )..----....
2c5e0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2c5f0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2c600 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
2c610 20 6c 61 62 65 6c 2d 39 38 37 0d 0a 53 45 4c 45   label-987..SELE
2c620 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41  CT * FROM tab2 A
2c630 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 35  S cor0 WHERE + 5
2c640 20 4e 4f 54 20 49 4e 20 28 20 2d 20 63 6f 6c 31   NOT IN ( - col1
2c650 20 2b 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 63 6f   + + col0 + - co
2c660 6c 32 20 2a 20 2d 20 63 6f 6c 31 20 2f 20 2b 20  l2 * - col1 / + 
2c670 2d 20 63 6f 6c 32 20 2a 20 2b 20 2d 20 43 41 53  - col2 * + - CAS
2c680 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c  T ( NULL AS REAL
2c690 20 29 2c 20 2d 20 63 6f 6c 32 2c 20 2d 20 63 6f   ), - col2, - co
2c6a0 6c 30 2c 20 2d 20 31 35 20 29 0d 0a 2d 2d 2d 2d  l0, - 15 )..----
2c6b0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
2c6c0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
2c6d0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
2c6e0 30 20 57 48 45 52 45 20 28 20 34 34 20 29 20 49  0 WHERE ( 44 ) I
2c6f0 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
2c700 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
2c710 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33  ng to 75c998aa53
2c720 61 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36  ac83218cbf2feb96
2c730 32 64 30 61 34 39 0d 0a 0d 0a 73 6b 69 70 69 66  2d0a49....skipif
2c740 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
2c750 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
2c760 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
2c770 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
2c780 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
2c790 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63  rt..SELECT ALL c
2c7a0 6f 6c 31 20 2b 20 2b 20 63 6f 6c 31 20 63 6f 6c  ol1 + + col1 col
2c7b0 32 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  2 FROM tab0 cor0
2c7c0 0d 0a 2d 2d 2d 2d 0d 0a 31 36 32 0d 0a 32 0d 0a  ..----..162..2..
2c7d0 34 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  42....skipif pos
2c7e0 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
2c7f0 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
2c800 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
2c810 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
2c820 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2c830 53 45 4c 45 43 54 20 28 20 2b 20 35 30 20 29 20  SELECT ( + 50 ) 
2c840 2a 20 28 20 2d 20 63 6f 6c 31 20 29 20 63 6f 6c  * ( - col1 ) col
2c850 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
2c860 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 35 30  or0..----..-1050
2c870 0d 0a 2d 34 30 35 30 0d 0a 2d 35 30 0d 0a 0d 0a  ..-4050..-50....
2c880 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
2c890 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2c8a0 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
2c8b0 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
2c8c0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2c8d0 65 6c 2d 39 39 31 0d 0a 53 45 4c 45 43 54 20 2d  el-991..SELECT -
2c8e0 20 2d 20 37 38 20 44 49 56 20 2b 20 43 4f 55 4e   - 78 DIV + COUN
2c8f0 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46  T( * ) AS col2 F
2c900 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d  ROM tab0 cor0..-
2c910 2d 2d 2d 0d 0a 32 36 0d 0a 0d 0a 73 6b 69 70 69  ---..26....skipi
2c920 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2c930 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2c940 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2c950 39 39 31 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20  991..SELECT - - 
2c960 37 38 20 2f 20 2b 20 43 4f 55 4e 54 20 28 20 2a  78 / + COUNT ( *
2c970 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
2c980 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
2c990 0a 32 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .26....onlyif my
2c9a0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
2c9b0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
2c9c0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2c9d0 39 39 32 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e  992..SELECT COUN
2c9e0 54 28 20 2a 20 29 20 2a 20 2b 20 43 4f 55 4e 54  T( * ) * + COUNT
2c9f0 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20  ( * ) FROM tab0 
2ca00 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55  AS cor0 WHERE NU
2ca10 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  LL IS NULL..----
2ca20 0d 0a 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..9....skipif my
2ca30 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2ca40 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
2ca50 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 39 32 0d  wsort label-992.
2ca60 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20  .SELECT COUNT ( 
2ca70 2a 20 29 20 2a 20 2b 20 43 4f 55 4e 54 20 28 20  * ) * + COUNT ( 
2ca80 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  * ) FROM tab0 AS
2ca90 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c   cor0 WHERE NULL
2caa0 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
2cab0 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  9....onlyif mysq
2cac0 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
2cad0 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
2cae0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2caf0 6c 61 62 65 6c 2d 39 39 33 0d 0a 53 45 4c 45 43  label-993..SELEC
2cb00 54 20 2b 20 63 6f 6c 31 20 44 49 56 20 39 20 46  T + col1 DIV 9 F
2cb10 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
2cb20 30 0d 0a 31 0d 0a 35 0d 0a 0d 0a 73 6b 69 70 69  0..1..5....skipi
2cb30 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2cb40 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2cb50 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2cb60 39 39 33 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  993..SELECT + co
2cb70 6c 31 20 2f 20 39 20 46 52 4f 4d 20 74 61 62 31  l1 / 9 FROM tab1
2cb80 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31 0d 0a 35 0d  ..----..0..1..5.
2cb90 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2cba0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
2cbb0 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
2cbc0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2cbd0 62 65 6c 2d 39 39 34 0d 0a 53 45 4c 45 43 54 20  bel-994..SELECT 
2cbe0 44 49 53 54 49 4e 43 54 20 2b 20 43 41 53 54 28  DISTINCT + CAST(
2cbf0 20 2d 20 2b 20 31 36 20 41 53 20 53 49 47 4e 45   - + 16 AS SIGNE
2cc00 44 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  D ) AS col1 FROM
2cc10 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36   tab2..----..-16
2cc20 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2cc30 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2cc40 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
2cc50 72 74 20 6c 61 62 65 6c 2d 39 39 34 0d 0a 53 45  rt label-994..SE
2cc60 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
2cc70 43 41 53 54 20 28 20 2d 20 2b 20 31 36 20 41 53  CAST ( - + 16 AS
2cc80 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f   INTEGER ) AS co
2cc90 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
2cca0 2d 2d 0d 0a 2d 31 36 0d 0a 0d 0a 6f 6e 6c 79 69  --..-16....onlyi
2ccb0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
2ccc0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
2ccd0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2cce0 62 65 6c 2d 39 39 35 0d 0a 53 45 4c 45 43 54 20  bel-995..SELECT 
2ccf0 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54  DISTINCT - COUNT
2cd00 28 20 2a 20 29 20 2b 20 2b 20 28 20 2d 20 2d 20  ( * ) + + ( - - 
2cd10 32 31 20 29 20 2a 20 2b 20 28 20 2b 20 28 20 37  21 ) * + ( + ( 7
2cd20 36 20 29 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20  6 ) ) col1 FROM 
2cd30 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 35 39 33  tab1..----..1593
2cd40 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2cd50 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2cd60 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
2cd70 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
2cd80 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
2cd90 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
2cda0 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
2cdb0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2cdc0 6c 2d 39 39 35 0d 0a 53 45 4c 45 43 54 20 44 49  l-995..SELECT DI
2cdd0 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 20 28  STINCT - COUNT (
2cde0 20 2a 20 29 20 2b 20 2b 20 28 20 2d 20 2d 20 32   * ) + + ( - - 2
2cdf0 31 20 29 20 2a 20 2b 20 28 20 2b 20 28 20 37 36  1 ) * + ( + ( 76
2ce00 20 29 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74   ) ) col1 FROM t
2ce10 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 35 39 33 0d  ab1..----..1593.
2ce20 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2ce30 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
2ce40 20 63 6f 6c 32 20 2b 20 2d 20 2b 20 33 31 20 41   col2 + - + 31 A
2ce50 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
2ce60 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 0d 0a 31 36 0d  ..----..-21..16.
2ce70 0a 36 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .68....query I r
2ce80 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
2ce90 20 31 33 20 2b 20 2d 20 2b 20 63 6f 6c 31 20 2a   13 + - + col1 *
2cea0 20 2d 20 38 34 20 46 52 4f 4d 20 74 61 62 32 20   - 84 FROM tab2 
2ceb0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34  AS cor0..----..4
2cec0 32 37 31 0d 0a 35 36 31 35 0d 0a 36 34 35 35 0d  271..5615..6455.
2ced0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
2cee0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
2cef0 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
2cf00 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
2cf10 2b 20 28 20 2b 20 63 6f 6c 32 20 29 20 42 45 54  + ( + col2 ) BET
2cf20 57 45 45 4e 20 2b 20 63 6f 6c 31 20 41 4e 44 20  WEEN + col1 AND 
2cf30 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
2cf40 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2cf50 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 63 6f  ELECT ALL - - co
2cf60 6c 30 20 2d 20 2d 20 2b 20 63 6f 6c 31 20 46 52  l0 - - + col1 FR
2cf70 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
2cf80 0a 2d 2d 2d 2d 0d 0a 31 33 38 0d 0a 36 35 0d 0a  .----..138..65..
2cf90 39 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  90....onlyif mys
2cfa0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
2cfb0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
2cfc0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2cfd0 31 30 30 30 0d 0a 53 45 4c 45 43 54 20 2b 20 53  1000..SELECT + S
2cfe0 55 4d 28 20 2b 20 63 6f 6c 31 20 29 20 2a 20 32  UM( + col1 ) * 2
2cff0 39 2c 20 2b 20 34 31 20 41 53 20 63 6f 6c 31 20  9, + 41 AS col1 
2d000 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
2d010 30 0d 0a 2d 2d 2d 2d 0d 0a 32 39 38 37 0d 0a 34  0..----..2987..4
2d020 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
2d030 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2d040 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
2d050 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 30 30 0d  sort label-1000.
2d060 0a 53 45 4c 45 43 54 20 2b 20 53 55 4d 20 28 20  .SELECT + SUM ( 
2d070 2b 20 63 6f 6c 31 20 29 20 2a 20 32 39 2c 20 2b  + col1 ) * 29, +
2d080 20 34 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   41 AS col1 FROM
2d090 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
2d0a0 2d 2d 2d 0d 0a 32 39 38 37 0d 0a 34 31 0d 0a 0d  ---..2987..41...
2d0b0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2d0c0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2d0d0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2d0e0 6f 72 74 20 6c 61 62 65 6c 2d 31 30 30 31 0d 0a  ort label-1001..
2d0f0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2d100 38 30 20 2a 20 2d 20 43 4f 55 4e 54 28 20 2a 20  80 * - COUNT( * 
2d110 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
2d120 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
2d130 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 49  E NOT ( NULL ) I
2d140 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  S NULL..----..0.
2d150 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2d160 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2d170 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2d180 74 20 6c 61 62 65 6c 2d 31 30 30 31 0d 0a 53 45  t label-1001..SE
2d190 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 38 30  LECT DISTINCT 80
2d1a0 20 2a 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29   * - COUNT ( * )
2d1b0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
2d1c0 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
2d1d0 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 49 53   NOT ( NULL ) IS
2d1e0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   NULL..----..0..
2d1f0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2d200 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
2d210 2b 20 41 56 47 20 28 20 63 6f 6c 32 20 29 20 2a  + AVG ( col2 ) *
2d220 20 36 37 20 2b 20 2b 20 38 32 20 46 52 4f 4d 20   67 + + 82 FROM 
2d230 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2b  tab0 WHERE NOT +
2d240 20 63 6f 6c 31 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d   col1 <> NULL..-
2d250 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65  ---..NULL....que
2d260 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2d270 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
2d280 6c 32 20 2a 20 2d 20 2b 20 28 20 2d 20 2d 20 63  l2 * - + ( - - c
2d290 6f 6c 30 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ol0 ) AS col1 FR
2d2a0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
2d2b0 31 30 35 38 0d 0a 2d 32 35 36 30 0d 0a 2d 34 33  1058..-2560..-43
2d2c0 35 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  50....query I ro
2d2d0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
2d2e0 4c 20 33 32 20 2a 20 2d 20 34 38 20 2a 20 37 39  L 32 * - 48 * 79
2d2f0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
2d300 0d 0a 2d 31 32 31 33 34 34 0d 0a 2d 31 32 31 33  ..-121344..-1213
2d310 34 34 0d 0a 2d 31 32 31 33 34 34 0d 0a 0d 0a 71  44..-121344....q
2d320 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2d330 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2d340 2d 20 38 20 2a 20 2b 20 2b 20 63 6f 6c 32 20 2a  - 8 * + + col2 *
2d350 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52   col1 AS col0 FR
2d360 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
2d370 31 30 37 35 32 0d 0a 2d 32 33 36 30 0d 0a 2d 32  10752..-2360..-2
2d380 35 35 36 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  5568....onlyif m
2d390 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
2d3a0 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
2d3b0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2d3c0 72 74 20 6c 61 62 65 6c 2d 31 30 30 36 0d 0a 53  rt label-1006..S
2d3d0 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 44 49 56  ELECT - col0 DIV
2d3e0 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 2b 20 63 6f   + col0 + + + co
2d3f0 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
2d400 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a  cor0..----..46..
2d410 39 0d 0a 39 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  9..98....skipif 
2d420 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2d430 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2d440 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2d450 30 36 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  06..SELECT - col
2d460 30 20 2f 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 2b  0 / + col0 + + +
2d470 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
2d480 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34  AS cor0..----..4
2d490 36 0d 0a 39 0d 0a 39 38 0d 0a 0d 0a 6f 6e 6c 79  6..9..98....only
2d4a0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
2d4b0 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
2d4c0 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
2d4d0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 30  owsort label-100
2d4e0 37 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 63 6f  7..SELECT - - co
2d4f0 6c 30 20 2a 20 43 41 53 54 28 20 63 6f 6c 31 20  l0 * CAST( col1 
2d500 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63  AS SIGNED ) AS c
2d510 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
2d520 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 34   cor0..----..234
2d530 36 0d 0a 34 39 32 38 0d 0a 35 30 32 35 0d 0a 0d  6..4928..5025...
2d540 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2d550 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2d560 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2d570 6c 61 62 65 6c 2d 31 30 30 37 0d 0a 53 45 4c 45  label-1007..SELE
2d580 43 54 20 2d 20 2d 20 63 6f 6c 30 20 2a 20 43 41  CT - - col0 * CA
2d590 53 54 20 28 20 63 6f 6c 31 20 41 53 20 49 4e 54  ST ( col1 AS INT
2d5a0 45 47 45 52 20 29 20 41 53 20 63 6f 6c 31 20 46  EGER ) AS col1 F
2d5b0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
2d5c0 0d 0a 2d 2d 2d 2d 0d 0a 32 33 34 36 0d 0a 34 39  ..----..2346..49
2d5d0 32 38 0d 0a 35 30 32 35 0d 0a 0d 0a 6f 6e 6c 79  28..5025....only
2d5e0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
2d5f0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
2d600 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
2d610 6c 61 62 65 6c 2d 31 30 30 38 0d 0a 53 45 4c 45  label-1008..SELE
2d620 43 54 20 2d 20 28 20 2b 20 28 20 4d 41 58 28 20  CT - ( + ( MAX( 
2d630 41 4c 4c 20 2b 20 2d 20 63 6f 6c 31 20 29 20 29  ALL + - col1 ) )
2d640 20 29 20 41 53 20 63 6f 6c 30 2c 20 43 4f 55 4e   ) AS col0, COUN
2d650 54 28 20 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d  T( - col0 ) FROM
2d660 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
2d670 2d 2d 2d 0d 0a 35 0d 0a 33 0d 0a 0d 0a 73 6b 69  ---..5..3....ski
2d680 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2d690 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2d6a0 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
2d6b0 65 6c 2d 31 30 30 38 0d 0a 53 45 4c 45 43 54 20  el-1008..SELECT 
2d6c0 2d 20 28 20 2b 20 28 20 4d 41 58 20 28 20 41 4c  - ( + ( MAX ( AL
2d6d0 4c 20 2b 20 2d 20 63 6f 6c 31 20 29 20 29 20 29  L + - col1 ) ) )
2d6e0 20 41 53 20 63 6f 6c 30 2c 20 43 4f 55 4e 54 20   AS col0, COUNT 
2d6f0 28 20 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20  ( - col0 ) FROM 
2d700 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
2d710 2d 2d 0d 0a 35 0d 0a 33 0d 0a 0d 0a 71 75 65 72  --..5..3....quer
2d720 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2d730 45 43 54 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 33  ECT - col2 * - 3
2d740 20 2a 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c   * + col2 AS col
2d750 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
2d760 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 30 39 32  or0..----..10092
2d770 0d 0a 31 35 38 37 0d 0a 34 38 30 30 0d 0a 0d 0a  ..1587..4800....
2d780 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2d790 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2d7a0 20 2b 20 2d 20 37 36 20 2a 20 33 20 41 53 20 63   + - 76 * 3 AS c
2d7b0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
2d7c0 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 32   cor0 WHERE col2
2d7d0 20 2b 20 2d 20 2d 20 63 6f 6c 30 20 2b 20 2b 20   + - - col0 + + 
2d7e0 2b 20 63 6f 6c 32 20 2b 20 2b 20 2d 20 63 6f 6c  + col2 + + - col
2d7f0 30 20 2b 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c  0 + col2 IS NULL
2d800 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
2d810 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
2d820 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
2d830 61 62 31 20 57 48 45 52 45 20 2d 20 2d 20 63 6f  ab1 WHERE - - co
2d840 6c 32 20 3e 3d 20 2d 20 2d 20 63 6f 6c 30 20 2a  l2 >= - - col0 *
2d850 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   col2..----....o
2d860 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
2d870 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
2d880 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2d890 74 20 6c 61 62 65 6c 2d 31 30 31 32 0d 0a 53 45  t label-1012..SE
2d8a0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f  LECT DISTINCT CO
2d8b0 55 4e 54 28 20 2a 20 29 20 2b 20 38 35 20 41 53  UNT( * ) + 85 AS
2d8c0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
2d8d0 0a 2d 2d 2d 2d 0d 0a 38 38 0d 0a 0d 0a 73 6b 69  .----..88....ski
2d8e0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2d8f0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2d900 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2d910 6c 2d 31 30 31 32 0d 0a 53 45 4c 45 43 54 20 44  l-1012..SELECT D
2d920 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 20 28 20  ISTINCT COUNT ( 
2d930 2a 20 29 20 2b 20 38 35 20 41 53 20 63 6f 6c 32  * ) + 85 AS col2
2d940 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
2d950 0d 0a 38 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..88....query I 
2d960 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2d970 63 6f 6c 32 20 2b 20 2d 20 33 30 20 46 52 4f 4d  col2 + - 30 FROM
2d980 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 0d   tab2..----..-7.
2d990 0a 31 30 0d 0a 32 38 0d 0a 0d 0a 6f 6e 6c 79 69  .10..28....onlyi
2d9a0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
2d9b0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
2d9c0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2d9d0 62 65 6c 2d 31 30 31 34 0d 0a 53 45 4c 45 43 54  bel-1014..SELECT
2d9e0 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 4d 41   DISTINCT - + MA
2d9f0 58 28 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 29 20  X( ALL + col0 ) 
2da00 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
2da10 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
2da20 0a 2d 39 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-91....skipif m
2da30 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2da40 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
2da50 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31  owsort label-101
2da60 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  4..SELECT DISTIN
2da70 43 54 20 2d 20 2b 20 4d 41 58 20 28 20 41 4c 4c  CT - + MAX ( ALL
2da80 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c   + col0 ) AS col
2da90 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
2daa0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 31 0d 0a  or0..----..-91..
2dab0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2dac0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
2dad0 43 54 20 2b 20 38 20 2b 20 2b 20 63 6f 6c 31 20  CT + 8 + + col1 
2dae0 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
2daf0 0a 31 33 0d 0a 32 32 0d 0a 35 35 0d 0a 0d 0a 6f  .13..22..55....o
2db00 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
2db10 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
2db20 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
2db30 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
2db40 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2db50 6c 2d 31 30 31 36 0d 0a 53 45 4c 45 43 54 20 43  l-1016..SELECT C
2db60 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2b 20 43 41  OUNT( * ) + + CA
2db70 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
2db80 45 44 20 29 20 2a 20 31 33 20 63 6f 6c 31 20 46  ED ) * 13 col1 F
2db90 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
2dba0 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
2dbb0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2dbc0 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
2dbd0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
2dbe0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
2dbf0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
2dc00 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
2dc10 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2dc20 6c 61 62 65 6c 2d 31 30 31 36 0d 0a 53 45 4c 45  label-1016..SELE
2dc30 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b  CT COUNT ( * ) +
2dc40 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   + CAST ( NULL A
2dc50 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 31 33  S INTEGER ) * 13
2dc60 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
2dc70 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  .----..NULL....q
2dc80 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2dc90 53 45 4c 45 43 54 20 2d 20 2d 20 36 39 20 2b 20  SELECT - - 69 + 
2dca0 2b 20 2b 20 63 6f 6c 32 20 2a 20 34 37 20 41 53  + + col2 * 47 AS
2dcb0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
2dcc0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  AS cor0..----..2
2dcd0 32 37 38 0d 0a 34 37 32 32 0d 0a 35 33 39 0d 0a  278..4722..539..
2dce0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2dcf0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
2dd00 63 6f 6c 30 20 2b 20 2b 20 2d 20 63 6f 6c 32 20  col0 + + - col2 
2dd10 2d 20 2b 20 36 38 20 41 53 20 63 6f 6c 31 20 46  - + 68 AS col1 F
2dd20 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
2dd30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 34 0d 0a 2d 34 35  ..----..-44..-45
2dd40 0d 0a 2d 35 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-51....onlyif 
2dd50 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
2dd60 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73  tax: aggregate s
2dd70 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74  yntax: DECIMAL t
2dd80 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  ype: ..query II 
2dd90 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2dda0 31 39 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54  19..SELECT COUNT
2ddb0 28 20 2a 20 29 20 2a 20 2d 20 2d 20 28 20 53 55  ( * ) * - - ( SU
2ddc0 4d 28 20 41 4c 4c 20 2b 20 2b 20 63 6f 6c 32 20  M( ALL + + col2 
2ddd0 29 20 29 20 2b 20 2b 20 43 41 53 54 28 20 4e 55  ) ) + + CAST( NU
2dde0 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20  LL AS DECIMAL ) 
2ddf0 2a 20 2b 20 33 34 2c 20 2b 20 33 36 20 41 53 20  * + 34, + 36 AS 
2de00 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
2de10 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
2de20 4c 4c 0d 0a 33 36 0d 0a 0d 0a 73 6b 69 70 69 66  LL..36....skipif
2de30 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2de40 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2de50 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2de60 31 30 31 39 0d 0a 53 45 4c 45 43 54 20 43 4f 55  1019..SELECT COU
2de70 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20 2d 20 28  NT ( * ) * - - (
2de80 20 53 55 4d 20 28 20 41 4c 4c 20 2b 20 2b 20 63   SUM ( ALL + + c
2de90 6f 6c 32 20 29 20 29 20 2b 20 2b 20 43 41 53 54  ol2 ) ) + + CAST
2dea0 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20   ( NULL AS REAL 
2deb0 29 20 2a 20 2b 20 33 34 2c 20 2b 20 33 36 20 41  ) * + 34, + 36 A
2dec0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
2ded0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2dee0 4e 55 4c 4c 0d 0a 33 36 0d 0a 0d 0a 6f 6e 6c 79  NULL..36....only
2def0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
2df00 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74  syntax: aggregat
2df10 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  e syntax: SIGNED
2df20 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
2df30 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2df40 30 32 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  020..SELECT ALL 
2df50 43 41 53 54 28 20 2d 20 43 4f 55 4e 54 28 20 2a  CAST( - COUNT( *
2df60 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 41   ) AS SIGNED ) A
2df70 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
2df80 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2df90 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  -3....skipif mys
2dfa0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2dfb0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2dfc0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 32 30 0d  sort label-1020.
2dfd0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41 53 54  .SELECT ALL CAST
2dfe0 20 28 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29   ( - COUNT ( * )
2dff0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53   AS INTEGER ) AS
2e000 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
2e010 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
2e020 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  3....query I row
2e030 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d  sort..SELECT + -
2e040 20 36 37 20 2b 20 33 33 20 46 52 4f 4d 20 74 61   67 + 33 FROM ta
2e050 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
2e060 0d 0a 2d 33 34 0d 0a 2d 33 34 0d 0a 2d 33 34 0d  ..-34..-34..-34.
2e070 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
2e080 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
2e090 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
2e0a0 55 4c 4c 20 49 4e 20 28 20 2d 20 2b 20 34 37 20  ULL IN ( - + 47 
2e0b0 2b 20 38 20 2a 20 2b 20 2b 20 63 6f 6c 31 2c 20  + 8 * + + col1, 
2e0c0 2b 20 63 6f 6c 31 2c 20 2b 20 2d 20 28 20 2d 20  + col1, + - ( - 
2e0d0 36 31 20 29 2c 20 2b 20 63 6f 6c 30 20 2d 20 2b  61 ), + col0 - +
2e0e0 20 63 6f 6c 31 2c 20 2b 20 33 35 20 29 0d 0a 2d   col1, + 35 )..-
2e0f0 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
2e100 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
2e110 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
2e120 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2e130 74 20 6c 61 62 65 6c 2d 31 30 32 33 0d 0a 53 45  t label-1023..SE
2e140 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20 44 49  LECT ALL col2 DI
2e150 56 20 2b 20 2d 20 38 37 20 2b 20 63 6f 6c 31 20  V + - 87 + col1 
2e160 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
2e170 0a 30 0d 0a 32 31 0d 0a 38 31 0d 0a 0d 0a 73 6b  .0..21..81....sk
2e180 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2e190 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2e1a0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2e1b0 65 6c 2d 31 30 32 33 0d 0a 53 45 4c 45 43 54 20  el-1023..SELECT 
2e1c0 41 4c 4c 20 63 6f 6c 32 20 2f 20 2b 20 2d 20 38  ALL col2 / + - 8
2e1d0 37 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  7 + col1 FROM ta
2e1e0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 32 31 0d  b0..----..0..21.
2e1f0 0a 38 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .81....onlyif my
2e200 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
2e210 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
2e220 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
2e230 72 74 20 6c 61 62 65 6c 2d 31 30 32 34 0d 0a 53  rt label-1024..S
2e240 45 4c 45 43 54 20 41 4c 4c 20 36 38 20 2b 20 2b  ELECT ALL 68 + +
2e250 20 63 6f 6c 30 2c 20 2b 20 63 6f 6c 31 20 2b 20   col0, + col1 + 
2e260 2b 20 2b 20 35 36 20 44 49 56 20 32 33 20 44 49  + + 56 DIV 23 DI
2e270 56 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31  V + col2 AS col1
2e280 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
2e290 0d 0a 31 31 34 0d 0a 35 31 0d 0a 31 33 32 0d 0a  ..114..51..132..
2e2a0 37 37 0d 0a 31 34 33 0d 0a 36 37 0d 0a 0d 0a 73  77..143..67....s
2e2b0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2e2c0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2e2d0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
2e2e0 61 62 65 6c 2d 31 30 32 34 0d 0a 53 45 4c 45 43  abel-1024..SELEC
2e2f0 54 20 41 4c 4c 20 36 38 20 2b 20 2b 20 63 6f 6c  T ALL 68 + + col
2e300 30 2c 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 2b 20  0, + col1 + + + 
2e310 35 36 20 2f 20 32 33 20 2f 20 2b 20 63 6f 6c 32  56 / 23 / + col2
2e320 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
2e330 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 31 34 0d 0a 35  b2..----..114..5
2e340 31 0d 0a 31 33 32 0d 0a 37 37 0d 0a 31 34 33 0d  1..132..77..143.
2e350 0a 36 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .67....query I r
2e360 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
2e370 4c 4c 20 2b 20 63 6f 6c 31 20 2a 20 32 36 20 41  LL + col1 * 26 A
2e380 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
2e390 0d 0a 2d 2d 2d 2d 0d 0a 32 31 30 36 0d 0a 32 36  ..----..2106..26
2e3a0 0d 0a 35 34 36 0d 0a 0d 0a 71 75 65 72 79 20 49  ..546....query I
2e3b0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2e3c0 20 2b 20 37 33 20 41 53 20 63 6f 6c 32 20 46 52   + 73 AS col2 FR
2e3d0 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 55  OM tab0 WHERE NU
2e3e0 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  LL IS NOT NULL..
2e3f0 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
2e400 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
2e410 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
2e420 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2e430 2d 31 30 32 37 0d 0a 53 45 4c 45 43 54 20 44 49  -1027..SELECT DI
2e440 53 54 49 4e 43 54 20 2b 20 28 20 2d 20 43 4f 55  STINCT + ( - COU
2e450 4e 54 28 20 2a 20 29 20 29 20 2a 20 2b 20 43 4f  NT( * ) ) * + CO
2e460 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30  UNT( * ) AS col0
2e470 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
2e480 0d 0a 2d 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..-9....skipif m
2e490 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2e4a0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
2e4b0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 32  owsort label-102
2e4c0 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  7..SELECT DISTIN
2e4d0 43 54 20 2b 20 28 20 2d 20 43 4f 55 4e 54 20 28  CT + ( - COUNT (
2e4e0 20 2a 20 29 20 29 20 2a 20 2b 20 43 4f 55 4e 54   * ) ) * + COUNT
2e4f0 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46   ( * ) AS col0 F
2e500 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
2e510 2d 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  -9....onlyif mys
2e520 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
2e530 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
2e540 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2e550 20 6c 61 62 65 6c 2d 31 30 32 38 0d 0a 53 45 4c   label-1028..SEL
2e560 45 43 54 20 2d 20 36 39 20 46 52 4f 4d 20 74 61  ECT - 69 FROM ta
2e570 62 30 20 57 48 45 52 45 20 2b 20 2d 20 63 6f 6c  b0 WHERE + - col
2e580 31 20 4e 4f 54 20 49 4e 20 28 20 2d 20 2b 20 63  1 NOT IN ( - + c
2e590 6f 6c 31 2c 20 43 41 53 54 28 20 2b 20 63 6f 6c  ol1, CAST( + col
2e5a0 30 20 41 53 20 53 49 47 4e 45 44 20 29 2c 20 2b  0 AS SIGNED ), +
2e5b0 20 2b 20 28 20 2b 20 2b 20 63 6f 6c 31 20 29 20   + ( + + col1 ) 
2e5c0 2f 20 2b 20 2d 20 30 20 2a 20 2b 20 63 6f 6c 30  / + - 0 * + col0
2e5d0 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70   )..----....skip
2e5e0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2e5f0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2e600 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2e610 2d 31 30 32 38 0d 0a 53 45 4c 45 43 54 20 2d 20  -1028..SELECT - 
2e620 36 39 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45  69 FROM tab0 WHE
2e630 52 45 20 2b 20 2d 20 63 6f 6c 31 20 4e 4f 54 20  RE + - col1 NOT 
2e640 49 4e 20 28 20 2d 20 2b 20 63 6f 6c 31 2c 20 43  IN ( - + col1, C
2e650 41 53 54 20 28 20 2b 20 63 6f 6c 30 20 41 53 20  AST ( + col0 AS 
2e660 49 4e 54 45 47 45 52 20 29 2c 20 2b 20 2b 20 28  INTEGER ), + + (
2e670 20 2b 20 2b 20 63 6f 6c 31 20 29 20 2f 20 2b 20   + + col1 ) / + 
2e680 2d 20 30 20 2a 20 2b 20 63 6f 6c 30 20 29 0d 0a  - 0 * + col0 )..
2e690 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
2e6a0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2e6b0 41 4c 4c 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 63  ALL - col1 * - c
2e6c0 6f 6c 30 20 2b 20 2d 20 28 20 38 38 20 29 20 41  ol0 + - ( 88 ) A
2e6d0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
2e6e0 0d 0a 2d 2d 2d 2d 0d 0a 33 33 37 0d 0a 34 31 38  ..----..337..418
2e6f0 39 0d 0a 36 32 36 0d 0a 0d 0a 71 75 65 72 79 20  9..626....query 
2e700 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2e710 54 20 44 49 53 54 49 4e 43 54 20 2d 20 36 34 20  T DISTINCT - 64 
2e720 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2e730 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
2e740 28 20 4e 55 4c 4c 20 29 20 49 53 20 4e 4f 54 20  ( NULL ) IS NOT 
2e750 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
2e760 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2e770 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
2e780 20 31 36 20 2a 20 63 6f 6c 32 20 46 52 4f 4d 20   16 * col2 FROM 
2e790 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
2e7a0 2d 2d 0d 0a 31 30 38 38 0d 0a 31 35 33 36 0d 0a  --..1088..1536..
2e7b0 39 34 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  944....query III
2e7c0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2e7d0 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32   ALL * FROM tab2
2e7e0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
2e7f0 4f 54 20 4e 55 4c 4c 20 3d 20 63 6f 6c 30 20 2a  OT NULL = col0 *
2e800 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   col0..----....q
2e810 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2e820 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2e830 38 37 20 2a 20 63 6f 6c 31 20 2a 20 2d 20 36 35  87 * col1 * - 65
2e840 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
2e850 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 38 38 34 30  b2..----..-28840
2e860 35 0d 0a 2d 33 37 38 38 38 35 0d 0a 2d 34 33 35  5..-378885..-435
2e870 34 33 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  435....skipif po
2e880 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
2e890 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
2e8a0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
2e8b0 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
2e8c0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
2e8d0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63  ..SELECT ALL - c
2e8e0 6f 6c 32 20 63 6f 6c 30 2c 20 2d 20 63 6f 6c 32  ol2 col0, - col2
2e8f0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
2e900 0d 0a 2d 35 39 0d 0a 2d 35 39 0d 0a 2d 36 38 0d  ..-59..-59..-68.
2e910 0a 2d 36 38 0d 0a 2d 39 36 0d 0a 2d 39 36 0d 0a  .-68..-96..-96..
2e920 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
2e930 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
2e940 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  * FROM tab1 AS c
2e950 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  or0 WHERE NOT + 
2e960 28 20 2b 20 2b 20 63 6f 6c 32 20 29 20 49 53 20  ( + + col2 ) IS 
2e970 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  NULL..----..9 va
2e980 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
2e990 63 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64  c6c0a4111b36d04d
2e9a0 62 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64  bc811a11e4d54cad
2e9b0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2e9c0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
2e9d0 2d 20 63 6f 6c 31 20 2a 20 2b 20 2b 20 63 6f 6c  - col1 * + + col
2e9e0 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  2 AS col2 FROM t
2e9f0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
2ea00 2d 0d 0a 2d 31 31 37 33 0d 0a 2d 33 30 38 30 0d  -..-1173..-3080.
2ea10 0a 2d 33 38 38 36 0d 0a 0d 0a 71 75 65 72 79 20  .-3886....query 
2ea20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
2ea30 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
2ea40 61 62 32 20 57 48 45 52 45 20 2d 20 32 39 20 3c  ab2 WHERE - 29 <
2ea50 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
2ea60 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
2ea70 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2ea80 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  T * FROM tab2 WH
2ea90 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54  ERE NULL NOT BET
2eaa0 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 63 6f  WEEN NULL AND co
2eab0 6c 31 20 2a 20 2d 20 2d 20 31 20 2a 20 2b 20 36  l1 * - - 1 * + 6
2eac0 30 20 2a 20 2b 20 28 20 2d 20 63 6f 6c 31 20 29  0 * + ( - col1 )
2ead0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
2eae0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2eaf0 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  T DISTINCT + col
2eb00 30 20 2b 20 33 38 20 41 53 20 63 6f 6c 31 20 46  0 + 38 AS col1 F
2eb10 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
2eb20 31 32 35 0d 0a 31 33 35 0d 0a 35 33 0d 0a 0d 0a  125..135..53....
2eb30 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2eb40 0a 53 45 4c 45 43 54 20 2d 20 28 20 2b 20 37 39  .SELECT - ( + 79
2eb50 20 29 20 2b 20 2d 20 2d 20 63 6f 6c 31 20 46 52   ) + - - col1 FR
2eb60 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 2d 20  OM tab0 WHERE - 
2eb70 2b 20 63 6f 6c 30 20 2f 20 63 6f 6c 32 20 2d 20  + col0 / col2 - 
2eb80 2d 20 63 6f 6c 30 20 2a 20 31 37 20 49 53 20 4e  - col0 * 17 IS N
2eb90 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d  OT NULL..----..-
2eba0 35 38 0d 0a 2d 37 38 0d 0a 32 0d 0a 0d 0a 71 75  58..-78..2....qu
2ebb0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2ebc0 45 4c 45 43 54 20 31 33 20 2f 20 2b 20 34 36 20  ELECT 13 / + 46 
2ebd0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2ebe0 30 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e  0 cor0 WHERE ( N
2ebf0 55 4c 4c 20 29 20 3e 3d 20 4e 55 4c 4c 0d 0a 2d  ULL ) >= NULL..-
2ec00 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
2ec10 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
2ec20 20 39 35 20 2b 20 2b 20 38 39 20 2a 20 2b 20 2d   95 + + 89 * + -
2ec30 20 31 32 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20   12 + col0 FROM 
2ec40 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
2ec50 2d 2d 0d 0a 2d 31 30 36 36 0d 0a 2d 31 30 37 36  --..-1066..-1076
2ec60 0d 0a 2d 31 31 34 38 0d 0a 0d 0a 71 75 65 72 79  ..-1148....query
2ec70 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2ec80 43 54 20 2b 20 37 31 20 41 53 20 63 6f 6c 31 20  CT + 71 AS col1 
2ec90 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
2eca0 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  NULL IS NULL..--
2ecb0 2d 2d 0d 0a 37 31 0d 0a 37 31 0d 0a 37 31 0d 0a  --..71..71..71..
2ecc0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2ecd0 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
2ece0 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
2ecf0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
2ed00 62 65 6c 2d 31 30 34 34 0d 0a 53 45 4c 45 43 54  bel-1044..SELECT
2ed10 20 44 49 53 54 49 4e 43 54 20 2d 20 43 41 53 54   DISTINCT - CAST
2ed20 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
2ed30 20 29 20 41 53 20 63 6f 6c 31 2c 20 2d 20 35 20   ) AS col1, - 5 
2ed40 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 57  col2 FROM tab0 W
2ed50 48 45 52 45 20 2b 20 63 6f 6c 31 20 2a 20 63 6f  HERE + col1 * co
2ed60 6c 31 20 2b 20 28 20 2d 20 2b 20 39 30 20 29 20  l1 + ( - + 90 ) 
2ed70 2b 20 2b 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c  + + col0 IS NULL
2ed80 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
2ed90 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2eda0 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
2edb0 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
2edc0 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
2edd0 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
2ede0 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
2edf0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
2ee00 72 74 20 6c 61 62 65 6c 2d 31 30 34 34 0d 0a 53  rt label-1044..S
2ee10 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
2ee20 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
2ee30 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c  INTEGER ) AS col
2ee40 31 2c 20 2d 20 35 20 63 6f 6c 32 20 46 52 4f 4d  1, - 5 col2 FROM
2ee50 20 74 61 62 30 20 57 48 45 52 45 20 2b 20 63 6f   tab0 WHERE + co
2ee60 6c 31 20 2a 20 63 6f 6c 31 20 2b 20 28 20 2d 20  l1 * col1 + ( - 
2ee70 2b 20 39 30 20 29 20 2b 20 2b 20 63 6f 6c 30 20  + 90 ) + + col0 
2ee80 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
2ee90 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2eea0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2eeb0 54 20 34 32 20 46 52 4f 4d 20 74 61 62 31 20 41  T 42 FROM tab1 A
2eec0 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  S cor0 CROSS JOI
2eed0 4e 20 74 61 62 32 20 63 6f 72 31 0d 0a 2d 2d 2d  N tab2 cor1..---
2eee0 2d 0d 0a 34 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -..42....onlyif 
2eef0 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
2ef00 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
2ef10 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2ef20 6f 72 74 20 6c 61 62 65 6c 2d 31 30 34 36 0d 0a  ort label-1046..
2ef30 53 45 4c 45 43 54 20 41 4c 4c 20 32 38 20 2b 20  SELECT ALL 28 + 
2ef40 2d 20 2b 20 63 6f 6c 32 20 2a 20 43 41 53 54 28  - + col2 * CAST(
2ef50 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
2ef60 29 20 2b 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20  ) + + col1 FROM 
2ef70 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
2ef80 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
2ef90 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
2efa0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2efb0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
2efc0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 34  owsort label-104
2efd0 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 32 38  6..SELECT ALL 28
2efe0 20 2b 20 2d 20 2b 20 63 6f 6c 32 20 2a 20 43 41   + - + col2 * CA
2eff0 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
2f000 45 47 45 52 20 29 20 2b 20 2b 20 63 6f 6c 31 20  EGER ) + + col1 
2f010 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
2f020 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  0..----..NULL..N
2f030 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c  ULL..NULL....onl
2f040 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
2f050 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
2f060 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2f070 6c 61 62 65 6c 2d 31 30 34 37 0d 0a 53 45 4c 45  label-1047..SELE
2f080 43 54 20 2d 20 53 55 4d 28 20 44 49 53 54 49 4e  CT - SUM( DISTIN
2f090 43 54 20 2d 20 36 34 20 29 20 41 53 20 63 6f 6c  CT - 64 ) AS col
2f0a0 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
2f0b0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 34 0d 0a 0d  or0..----..64...
2f0c0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2f0d0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2f0e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2f0f0 6c 61 62 65 6c 2d 31 30 34 37 0d 0a 53 45 4c 45  label-1047..SELE
2f100 43 54 20 2d 20 53 55 4d 20 28 20 44 49 53 54 49  CT - SUM ( DISTI
2f110 4e 43 54 20 2d 20 36 34 20 29 20 41 53 20 63 6f  NCT - 64 ) AS co
2f120 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
2f130 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 34 0d 0a  cor0..----..64..
2f140 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2f150 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
2f160 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
2f170 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
2f180 62 65 6c 2d 31 30 34 38 0d 0a 53 45 4c 45 43 54  bel-1048..SELECT
2f190 20 41 4c 4c 20 2b 20 32 33 20 2d 20 2d 20 2b 20   ALL + 23 - - + 
2f1a0 63 6f 6c 32 20 2a 20 2b 20 2d 20 43 41 53 54 28  col2 * + - CAST(
2f1b0 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
2f1c0 29 20 41 53 20 63 6f 6c 30 2c 20 35 34 20 46 52  ) AS col0, 54 FR
2f1d0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
2f1e0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 35 34 0d  .----..NULL..54.
2f1f0 0a 4e 55 4c 4c 0d 0a 35 34 0d 0a 4e 55 4c 4c 0d  .NULL..54..NULL.
2f200 0a 35 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .54....skipif my
2f210 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2f220 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72  ible..query II r
2f230 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 34  owsort label-104
2f240 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  8..SELECT ALL + 
2f250 32 33 20 2d 20 2d 20 2b 20 63 6f 6c 32 20 2a 20  23 - - + col2 * 
2f260 2b 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  + - CAST ( NULL 
2f270 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20  AS INTEGER ) AS 
2f280 63 6f 6c 30 2c 20 35 34 20 46 52 4f 4d 20 74 61  col0, 54 FROM ta
2f290 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
2f2a0 0d 0a 4e 55 4c 4c 0d 0a 35 34 0d 0a 4e 55 4c 4c  ..NULL..54..NULL
2f2b0 0d 0a 35 34 0d 0a 4e 55 4c 4c 0d 0a 35 34 0d 0a  ..54..NULL..54..
2f2c0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2f2d0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2f2e0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
2f2f0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 34 39 0d  sort label-1049.
2f300 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 38 20  .SELECT ALL - 8 
2f310 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b  - + COUNT( * ) +
2f320 20 43 4f 55 4e 54 28 20 2a 20 29 20 63 6f 6c 30   COUNT( * ) col0
2f330 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
2f340 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 0d 0a 0d 0a  r0..----..-8....
2f350 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2f360 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73  ot compatible..s
2f370 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
2f380 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
2f390 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
2f3a0 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
2f3b0 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
2f3c0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2f3d0 34 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  49..SELECT ALL -
2f3e0 20 38 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a   8 - + COUNT ( *
2f3f0 20 29 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29   ) + COUNT ( * )
2f400 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
2f410 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
2f420 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  8....query I row
2f430 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d  sort..SELECT + -
2f440 20 35 34 20 2d 20 2b 20 63 6f 6c 32 20 46 52 4f   54 - + col2 FRO
2f450 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
2f460 2d 2d 2d 2d 0d 0a 2d 31 31 32 0d 0a 2d 37 37 0d  ----..-112..-77.
2f470 0a 2d 39 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  .-94....skipif p
2f480 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
2f490 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
2f4a0 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
2f4b0 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
2f4c0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
2f4d0 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30  t..SELECT + col0
2f4e0 20 2d 20 2d 20 63 6f 6c 31 20 2a 20 39 35 20 63   - - col1 * 95 c
2f4f0 6f 6c 30 2c 20 2b 20 38 34 20 2b 20 39 39 20 46  ol0, + 84 + 99 F
2f500 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
2f510 0d 0a 2d 2d 2d 2d 0d 0a 34 38 39 31 0d 0a 31 38  ..----..4891..18
2f520 33 0d 0a 36 34 34 30 0d 0a 31 38 33 0d 0a 37 33  3..6440..183..73
2f530 37 39 0d 0a 31 38 33 0d 0a 0d 0a 6f 6e 6c 79 69  79..183....onlyi
2f540 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
2f550 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
2f560 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2f570 62 65 6c 2d 31 30 35 32 0d 0a 53 45 4c 45 43 54  bel-1052..SELECT
2f580 20 2d 20 4d 41 58 28 20 44 49 53 54 49 4e 43 54   - MAX( DISTINCT
2f590 20 38 37 20 29 20 2d 20 34 35 20 41 53 20 63 6f   87 ) - 45 AS co
2f5a0 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
2f5b0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 32  cor0..----..-132
2f5c0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2f5d0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2f5e0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
2f5f0 72 74 20 6c 61 62 65 6c 2d 31 30 35 32 0d 0a 53  rt label-1052..S
2f600 45 4c 45 43 54 20 2d 20 4d 41 58 20 28 20 44 49  ELECT - MAX ( DI
2f610 53 54 49 4e 43 54 20 38 37 20 29 20 2d 20 34 35  STINCT 87 ) - 45
2f620 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
2f630 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
2f640 0d 0a 2d 31 33 32 0d 0a 0d 0a 71 75 65 72 79 20  ..-132....query 
2f650 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
2f660 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
2f670 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e  ROM tab1 WHERE N
2f680 4f 54 20 28 20 4e 4f 54 20 28 20 4e 55 4c 4c 20  OT ( NOT ( NULL 
2f690 29 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2b 20  ) NOT BETWEEN + 
2f6a0 39 35 20 41 4e 44 20 2b 20 2d 20 63 6f 6c 31 20  95 AND + - col1 
2f6b0 2b 20 2d 20 2b 20 38 34 20 29 0d 0a 2d 2d 2d 2d  + - + 84 )..----
2f6c0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2f6d0 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
2f6e0 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
2f6f0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
2f700 6c 61 62 65 6c 2d 31 30 35 34 0d 0a 53 45 4c 45  label-1054..SELE
2f710 43 54 20 41 4c 4c 20 63 6f 6c 31 20 41 53 20 63  CT ALL col1 AS c
2f720 6f 6c 30 2c 20 2b 20 63 6f 6c 32 20 44 49 56 20  ol0, + col2 DIV 
2f730 63 6f 6c 31 20 2b 20 2b 20 31 37 20 46 52 4f 4d  col1 + + 17 FROM
2f740 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d   tab1..----..14.
2f750 0a 32 33 0d 0a 34 37 0d 0a 31 38 0d 0a 35 0d 0a  .23..47..18..5..
2f760 32 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  28....skipif mys
2f770 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2f780 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
2f790 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35 34  wsort label-1054
2f7a0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c  ..SELECT ALL col
2f7b0 31 20 41 53 20 63 6f 6c 30 2c 20 2b 20 63 6f 6c  1 AS col0, + col
2f7c0 32 20 2f 20 63 6f 6c 31 20 2b 20 2b 20 31 37 20  2 / col1 + + 17 
2f7d0 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
2f7e0 0a 31 34 0d 0a 32 33 0d 0a 34 37 0d 0a 31 38 0d  .14..23..47..18.
2f7f0 0a 35 0d 0a 32 38 0d 0a 0d 0a 71 75 65 72 79 20  .5..28....query 
2f800 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
2f810 43 54 20 63 6f 6c 30 2c 20 2d 20 38 39 20 41 53  CT col0, - 89 AS
2f820 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
2f830 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
2f840 35 0d 0a 2d 38 39 0d 0a 38 37 0d 0a 2d 38 39 0d  5..-89..87..-89.
2f850 0a 39 37 0d 0a 2d 38 39 0d 0a 0d 0a 6f 6e 6c 79  .97..-89....only
2f860 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
2f870 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
2f880 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2f890 61 62 65 6c 2d 31 30 35 36 0d 0a 53 45 4c 45 43  abel-1056..SELEC
2f8a0 54 20 2b 20 2b 20 53 55 4d 28 20 41 4c 4c 20 2d  T + + SUM( ALL -
2f8b0 20 34 36 20 29 20 41 53 20 63 6f 6c 32 20 46 52   46 ) AS col2 FR
2f8c0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
2f8d0 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e  WHERE NOT NULL N
2f8e0 4f 54 20 42 45 54 57 45 45 4e 20 63 6f 6c 31 20  OT BETWEEN col1 
2f8f0 2f 20 2d 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 63  / - - col1 * + c
2f900 6f 6c 32 20 2a 20 63 6f 6c 31 20 2b 20 38 33 20  ol2 * col1 + 83 
2f910 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  AND NULL..----..
2f920 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
2f930 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2f940 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
2f950 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35  owsort label-105
2f960 36 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 53 55  6..SELECT + + SU
2f970 4d 20 28 20 41 4c 4c 20 2d 20 34 36 20 29 20 41  M ( ALL - 46 ) A
2f980 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
2f990 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
2f9a0 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54 57  OT NULL NOT BETW
2f9b0 45 45 4e 20 63 6f 6c 31 20 2f 20 2d 20 2d 20 63  EEN col1 / - - c
2f9c0 6f 6c 31 20 2a 20 2b 20 63 6f 6c 32 20 2a 20 63  ol1 * + col2 * c
2f9d0 6f 6c 31 20 2b 20 38 33 20 41 4e 44 20 4e 55 4c  ol1 + 83 AND NUL
2f9e0 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  L..----..NULL...
2f9f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2fa00 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2a 20  ..SELECT col1 * 
2fa10 2d 20 2d 20 32 32 20 41 53 20 63 6f 6c 30 20 46  - - 22 AS col0 F
2fa20 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d  ROM tab1 cor0..-
2fa30 2d 2d 2d 0d 0a 31 30 33 34 0d 0a 31 31 30 0d 0a  ---..1034..110..
2fa40 33 30 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  308....skipif po
2fa50 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
2fa60 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
2fa70 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
2fa80 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
2fa90 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2faa0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2fab0 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 28 20 2d 20   - col2 * - ( - 
2fac0 63 6f 6c 32 20 29 20 63 6f 6c 30 20 46 52 4f 4d  col2 ) col0 FROM
2fad0 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
2fae0 2d 2d 2d 0d 0a 2d 31 30 30 0d 0a 2d 32 32 30 39  ---..-100..-2209
2faf0 0d 0a 2d 39 38 30 31 0d 0a 0d 0a 6f 6e 6c 79 69  ..-9801....onlyi
2fb00 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
2fb10 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
2fb20 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
2fb30 61 62 65 6c 2d 31 30 35 39 0d 0a 53 45 4c 45 43  abel-1059..SELEC
2fb40 54 20 2d 20 38 35 2c 20 2b 20 43 4f 55 4e 54 28  T - 85, + COUNT(
2fb50 20 2a 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74   * ) col0 FROM t
2fb60 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
2fb70 2d 0d 0a 2d 38 35 0d 0a 33 0d 0a 0d 0a 73 6b 69  -..-85..3....ski
2fb80 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2fb90 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70  compatible..skip
2fba0 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
2fbb0 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
2fbc0 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
2fbd0 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
2fbe0 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  mns..query II ro
2fbf0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35 39  wsort label-1059
2fc00 0d 0a 53 45 4c 45 43 54 20 2d 20 38 35 2c 20 2b  ..SELECT - 85, +
2fc10 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 63 6f 6c   COUNT ( * ) col
2fc20 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
2fc30 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 35 0d 0a  or0..----..-85..
2fc40 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  3....skipif post
2fc50 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
2fc60 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
2fc70 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
2fc80 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
2fc90 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2fca0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
2fcb0 20 63 6f 6c 31 20 2a 20 34 36 20 2a 20 2d 20 63   col1 * 46 * - c
2fcc0 6f 6c 30 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  ol0 col1 FROM ta
2fcd0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 34 34 36 32 0d 0a  b0..----..4462..
2fce0 35 35 38 39 30 0d 0a 38 34 30 34 32 0d 0a 0d 0a  55890..84042....
2fcf0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2fd00 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2a 20 63  .SELECT col1 * c
2fd10 6f 6c 31 20 2b 20 2d 20 2d 20 31 33 20 2a 20 2b  ol1 + - - 13 * +
2fd20 20 37 33 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   73 AS col1 FROM
2fd30 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
2fd40 2d 2d 2d 0d 0a 33 35 35 30 0d 0a 35 34 33 38 0d  ---..3550..5438.
2fd50 0a 36 38 37 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  .6878....skipif 
2fd60 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
2fd70 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
2fd80 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
2fd90 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
2fda0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
2fdb0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
2fdc0 20 63 6f 6c 31 20 2a 20 63 6f 6c 30 2c 20 34 30   col1 * col0, 40
2fdd0 20 2a 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 38 32   * + + col1 + 82
2fde0 20 2b 20 2b 20 63 6f 6c 32 20 63 6f 6c 31 20 46   + + col2 col1 F
2fdf0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
2fe00 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 32 35 0d 0a 33 34  ..----..-425..34
2fe10 31 0d 0a 2d 34 32 37 37 0d 0a 32 30 33 30 0d 0a  1..-4277..2030..
2fe20 2d 37 31 34 0d 0a 37 33 38 0d 0a 0d 0a 6f 6e 6c  -714..738....onl
2fe30 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
2fe40 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
2fe50 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2fe60 6c 61 62 65 6c 2d 31 30 36 33 0d 0a 53 45 4c 45  label-1063..SELE
2fe70 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20  CT DISTINCT - + 
2fe80 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20 4d  COUNT( * ) * + M
2fe90 49 4e 28 20 35 39 20 29 20 46 52 4f 4d 20 74 61  IN( 59 ) FROM ta
2fea0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
2feb0 0d 0a 2d 31 37 37 0d 0a 0d 0a 73 6b 69 70 69 66  ..-177....skipif
2fec0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2fed0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2fee0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2fef0 30 36 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  063..SELECT DIST
2ff00 49 4e 43 54 20 2d 20 2b 20 43 4f 55 4e 54 20 28  INCT - + COUNT (
2ff10 20 2a 20 29 20 2a 20 2b 20 4d 49 4e 20 28 20 35   * ) * + MIN ( 5
2ff20 39 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  9 ) FROM tab0 AS
2ff30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37   cor0..----..-17
2ff40 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  7....onlyif mysq
2ff50 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
2ff60 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
2ff70 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
2ff80 20 6c 61 62 65 6c 2d 31 30 36 34 0d 0a 53 45 4c   label-1064..SEL
2ff90 45 43 54 20 41 4c 4c 20 2b 20 28 20 2d 20 33 31  ECT ALL + ( - 31
2ffa0 20 29 20 44 49 56 20 2d 20 63 6f 6c 32 20 41 53   ) DIV - col2 AS
2ffb0 20 63 6f 6c 30 2c 20 63 6f 6c 30 20 63 6f 6c 32   col0, col0 col2
2ffc0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
2ffd0 0d 0a 30 0d 0a 36 34 0d 0a 30 0d 0a 37 35 0d 0a  ..0..64..0..75..
2ffe0 31 0d 0a 34 36 0d 0a 0d 0a 73 6b 69 70 69 66 20  1..46....skipif 
2fff0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
30000 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70  atible..skipif p
30010 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
30020 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
30030 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
30040 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
30050 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
30060 74 20 6c 61 62 65 6c 2d 31 30 36 34 0d 0a 53 45  t label-1064..SE
30070 4c 45 43 54 20 41 4c 4c 20 2b 20 28 20 2d 20 33  LECT ALL + ( - 3
30080 31 20 29 20 2f 20 2d 20 63 6f 6c 32 20 41 53 20  1 ) / - col2 AS 
30090 63 6f 6c 30 2c 20 63 6f 6c 30 20 63 6f 6c 32 20  col0, col0 col2 
300a0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
300b0 0a 30 0d 0a 36 34 0d 0a 30 0d 0a 37 35 0d 0a 31  .0..64..0..75..1
300c0 0d 0a 34 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..46....query I 
300d0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
300e0 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46  + col2 AS col2 F
300f0 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
30100 4f 54 20 2b 20 63 6f 6c 30 20 49 53 20 4e 55 4c  OT + col0 IS NUL
30110 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 34 37 0d  L..----..10..47.
30120 0a 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .99....onlyif my
30130 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
30140 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
30150 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
30160 74 20 6c 61 62 65 6c 2d 31 30 36 36 0d 0a 53 45  t label-1066..SE
30170 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 20  LECT ALL + col1 
30180 44 49 56 20 63 6f 6c 31 20 63 6f 6c 30 20 46 52  DIV col1 col0 FR
30190 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab1..----..1
301a0 0d 0a 31 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66  ..1..1....skipif
301b0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
301c0 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
301d0 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
301e0 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
301f0 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
30200 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
30210 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
30220 74 20 6c 61 62 65 6c 2d 31 30 36 36 0d 0a 53 45  t label-1066..SE
30230 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 20  LECT ALL + col1 
30240 2f 20 63 6f 6c 31 20 63 6f 6c 30 20 46 52 4f 4d  / col1 col0 FROM
30250 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a   tab1..----..1..
30260 31 0d 0a 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  1..1....onlyif m
30270 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
30280 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
30290 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
302a0 2d 31 30 36 37 0d 0a 53 45 4c 45 43 54 20 44 49  -1067..SELECT DI
302b0 53 54 49 4e 43 54 20 43 4f 55 4e 54 28 20 2a 20  STINCT COUNT( * 
302c0 29 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2d  ) - COUNT( * ) -
302d0 20 2b 20 28 20 2d 20 2b 20 43 4f 55 4e 54 28 20   + ( - + COUNT( 
302e0 2a 20 29 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20  * ) ) col1 FROM 
302f0 74 61 62 31 20 57 48 45 52 45 20 33 37 20 49 53  tab1 WHERE 37 IS
30300 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   NULL..----..0..
30310 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
30320 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
30330 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
30340 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
30350 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
30360 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
30370 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
30380 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
30390 31 30 36 37 0d 0a 53 45 4c 45 43 54 20 44 49 53  1067..SELECT DIS
303a0 54 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 2a 20  TINCT COUNT ( * 
303b0 29 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ) - COUNT ( * ) 
303c0 2d 20 2b 20 28 20 2d 20 2b 20 43 4f 55 4e 54 20  - + ( - + COUNT 
303d0 28 20 2a 20 29 20 29 20 63 6f 6c 31 20 46 52 4f  ( * ) ) col1 FRO
303e0 4d 20 74 61 62 31 20 57 48 45 52 45 20 33 37 20  M tab1 WHERE 37 
303f0 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30  IS NULL..----..0
30400 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
30410 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
30420 35 36 20 2b 20 2b 20 36 20 41 53 20 63 6f 6c 30  56 + + 6 AS col0
30430 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
30440 0d 0a 36 32 0d 0a 36 32 0d 0a 36 32 0d 0a 0d 0a  ..62..62..62....
30450 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
30460 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
30470 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
30480 2d 20 38 38 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  - 88 IS NULL..--
30490 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
304a0 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
304b0 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
304c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
304d0 20 6c 61 62 65 6c 2d 31 30 37 30 0d 0a 53 45 4c   label-1070..SEL
304e0 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 2a  ECT ALL - col1 *
304f0 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   + CAST( NULL AS
30500 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c   SIGNED ) AS col
30510 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
30520 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
30530 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
30540 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
30550 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
30560 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 37 30  wsort label-1070
30570 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63  ..SELECT ALL - c
30580 6f 6c 31 20 2a 20 2b 20 43 41 53 54 20 28 20 4e  ol1 * + CAST ( N
30590 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
305a0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
305b0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b1..----..NULL..
305c0 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  NULL..NULL....qu
305d0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
305e0 53 45 4c 45 43 54 20 28 20 2b 20 2b 20 63 6f 6c  SELECT ( + + col
305f0 31 20 29 20 2a 20 2b 20 37 35 20 2b 20 63 6f 6c  1 ) * + 75 + col
30600 31 20 41 53 20 63 6f 6c 30 2c 20 2d 20 63 6f 6c  1 AS col0, - col
30610 31 20 2a 20 2b 20 31 35 20 2b 20 2b 20 2d 20 63  1 * + 15 + + - c
30620 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol0 AS col1 FROM
30630 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 30 36   tab1..----..106
30640 34 0d 0a 2d 32 36 31 0d 0a 33 35 37 32 0d 0a 2d  4..-261..3572..-
30650 37 39 36 0d 0a 33 38 30 0d 0a 2d 31 36 30 0d 0a  796..380..-160..
30660 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
30670 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
30680 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
30690 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 37 32 0d  sort label-1072.
306a0 0a 53 45 4c 45 43 54 20 4d 49 4e 28 20 41 4c 4c  .SELECT MIN( ALL
306b0 20 2b 20 2d 20 37 39 20 29 20 46 52 4f 4d 20 74   + - 79 ) FROM t
306c0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 39 0d 0a  ab2..----..-79..
306d0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
306e0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
306f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
30700 20 6c 61 62 65 6c 2d 31 30 37 32 0d 0a 53 45 4c   label-1072..SEL
30710 45 43 54 20 4d 49 4e 20 28 20 41 4c 4c 20 2b 20  ECT MIN ( ALL + 
30720 2d 20 37 39 20 29 20 46 52 4f 4d 20 74 61 62 32  - 79 ) FROM tab2
30730 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 39 0d 0a 0d 0a 71  ..----..-79....q
30740 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
30750 53 45 4c 45 43 54 20 2b 20 28 20 2b 20 2d 20 63  SELECT + ( + - c
30760 6f 6c 32 20 29 20 2d 20 2b 20 63 6f 6c 30 20 2a  ol2 ) - + col0 *
30770 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20   - col2 AS col2 
30780 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
30790 0a 34 38 30 30 0d 0a 34 39 35 36 0d 0a 36 31 32  .4800..4956..612
307a0 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
307b0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63  sort..SELECT - c
307c0 6f 6c 30 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 2d  ol0 + - col1 * -
307d0 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 35 31 20 2b   + col1 * - 51 +
307e0 20 2d 20 2b 20 35 20 2b 20 2d 20 37 39 20 41 53   - + 5 + - 79 AS
307f0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
30800 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
30810 31 33 32 37 38 31 0d 0a 2d 32 32 39 30 39 38 0d  132781..-229098.
30820 0a 2d 33 30 32 35 32 37 0d 0a 0d 0a 71 75 65 72  .-302527....quer
30830 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
30840 45 43 54 20 41 4c 4c 20 2d 20 2d 20 36 30 20 2d  ECT ALL - - 60 -
30850 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20   + col2 AS col0 
30860 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a  FROM tab1 cor0..
30870 2d 2d 2d 2d 0d 0a 2d 33 36 0d 0a 2d 38 0d 0a 31  ----..-36..-8..1
30880 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
30890 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  ort..SELECT + co
308a0 6c 31 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 2b 20  l1 + col0 * - + 
308b0 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f  col0 AS col0 FRO
308c0 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab1 cor0..---
308d0 2d 0d 0a 2d 32 35 38 37 0d 0a 2d 37 32 32 30 0d  -..-2587..-7220.
308e0 0a 2d 38 32 33 34 0d 0a 0d 0a 6f 6e 6c 79 69 66  .-8234....onlyif
308f0 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
30900 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
30910 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
30920 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 37 37 0d  sort label-1077.
30930 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
30940 20 2d 20 2b 20 36 33 20 2d 20 2b 20 63 6f 6c 31   - + 63 - + col1
30950 20 2a 20 63 6f 6c 32 20 44 49 56 20 2d 20 63 6f   * col2 DIV - co
30960 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
30970 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 32 0d  cor0..----..-42.
30980 0a 2d 36 32 0d 0a 31 38 0d 0a 0d 0a 73 6b 69 70  .-62..18....skip
30990 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
309a0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
309b0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
309c0 2d 31 30 37 37 0d 0a 53 45 4c 45 43 54 20 44 49  -1077..SELECT DI
309d0 53 54 49 4e 43 54 20 2d 20 2b 20 36 33 20 2d 20  STINCT - + 63 - 
309e0 2b 20 63 6f 6c 31 20 2a 20 63 6f 6c 32 20 2f 20  + col1 * col2 / 
309f0 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  - col2 FROM tab0
30a00 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
30a10 2d 34 32 0d 0a 2d 36 32 0d 0a 31 38 0d 0a 0d 0a  -42..-62..18....
30a20 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
30a30 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
30a40 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
30a50 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f  0 WHERE NOT - co
30a60 6c 30 20 4e 4f 54 20 49 4e 20 28 20 2d 20 63 6f  l0 NOT IN ( - co
30a70 6c 32 20 2d 20 2b 20 31 32 20 29 0d 0a 2d 2d 2d  l2 - + 12 )..---
30a80 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
30a90 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
30aa0 54 49 4e 43 54 20 2d 20 63 6f 6c 31 20 2d 20 2b  TINCT - col1 - +
30ab0 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 32   + col2 * + col2
30ac0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
30ad0 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b0 cor0..----..-
30ae0 31 32 31 0d 0a 2d 32 32 39 30 0d 0a 2d 39 38 30  121..-2290..-980
30af0 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  2....query I row
30b00 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
30b10 32 20 2a 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 2d  2 * - col1 * - -
30b20 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
30b30 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20  AS cor0 WHERE ( 
30b40 4e 55 4c 4c 20 29 20 49 53 20 4e 4f 54 20 4e 55  NULL ) IS NOT NU
30b50 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
30b60 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
30b70 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 38  ECT DISTINCT + 8
30b80 32 20 2d 20 2b 20 38 36 20 46 52 4f 4d 20 74 61  2 - + 86 FROM ta
30b90 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
30ba0 0d 0a 2d 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..-4....query II
30bb0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
30bc0 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53  T * FROM tab1 AS
30bd0 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 31 37   cor0 WHERE + 17
30be0 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
30bf0 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
30c00 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31  hing to c6c0a411
30c10 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31  1b36d04dbc811a11
30c20 65 34 64 35 34 63 61 64 0d 0a 0d 0a 6f 6e 6c 79  e4d54cad....only
30c30 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
30c40 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74  syntax: aggregat
30c50 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  e syntax: SIGNED
30c60 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
30c70 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
30c80 31 30 38 33 0d 0a 53 45 4c 45 43 54 20 44 49 53  1083..SELECT DIS
30c90 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a  TINCT - COUNT( *
30ca0 20 29 20 2a 20 2d 20 43 4f 55 4e 54 28 20 2a 20   ) * - COUNT( * 
30cb0 29 20 2a 20 2b 20 43 4f 55 4e 54 28 20 2d 20 43  ) * + COUNT( - C
30cc0 41 53 54 28 20 2b 20 34 36 20 41 53 20 53 49 47  AST( + 46 AS SIG
30cd0 4e 45 44 20 29 20 29 2c 20 32 37 20 46 52 4f 4d  NED ) ), 27 FROM
30ce0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
30cf0 2d 2d 2d 0d 0a 32 37 0d 0a 32 37 0d 0a 0d 0a 73  ---..27..27....s
30d00 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
30d10 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
30d20 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
30d30 61 62 65 6c 2d 31 30 38 33 0d 0a 53 45 4c 45 43  abel-1083..SELEC
30d40 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55  T DISTINCT - COU
30d50 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20 43 4f 55  NT ( * ) * - COU
30d60 4e 54 20 28 20 2a 20 29 20 2a 20 2b 20 43 4f 55  NT ( * ) * + COU
30d70 4e 54 20 28 20 2d 20 43 41 53 54 20 28 20 2b 20  NT ( - CAST ( + 
30d80 34 36 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  46 AS INTEGER ) 
30d90 29 2c 20 32 37 20 46 52 4f 4d 20 74 61 62 31 20  ), 27 FROM tab1 
30da0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  AS cor0..----..2
30db0 37 0d 0a 32 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  7..27....onlyif 
30dc0 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
30dd0 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
30de0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
30df0 6f 72 74 20 6c 61 62 65 6c 2d 31 30 38 34 0d 0a  ort label-1084..
30e00 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 44 49  SELECT - col1 DI
30e10 56 20 2b 20 36 39 20 41 53 20 63 6f 6c 30 20 46  V + 69 AS col0 F
30e20 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
30e30 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  0..0..0....skipi
30e40 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
30e50 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
30e60 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
30e70 31 30 38 34 0d 0a 53 45 4c 45 43 54 20 2d 20 63  1084..SELECT - c
30e80 6f 6c 31 20 2f 20 2b 20 36 39 20 41 53 20 63 6f  ol1 / + 69 AS co
30e90 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l0 FROM tab1..--
30ea0 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 6f  --..0..0..0....o
30eb0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
30ec0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
30ed0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
30ee0 74 20 6c 61 62 65 6c 2d 31 30 38 35 0d 0a 53 45  t label-1085..SE
30ef0 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54  LECT ALL - COUNT
30f00 28 20 44 49 53 54 49 4e 43 54 20 2b 20 28 20 2b  ( DISTINCT + ( +
30f10 20 31 36 20 29 20 29 20 41 53 20 63 6f 6c 30 20   16 ) ) AS col0 
30f20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
30f30 0a 2d 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .-1....skipif my
30f40 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
30f50 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
30f60 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 38 35  wsort label-1085
30f70 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43  ..SELECT ALL - C
30f80 4f 55 4e 54 20 28 20 44 49 53 54 49 4e 43 54 20  OUNT ( DISTINCT 
30f90 2b 20 28 20 2b 20 31 36 20 29 20 29 20 41 53 20  + ( + 16 ) ) AS 
30fa0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
30fb0 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 6f 6e 6c 79  ----..-1....only
30fc0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
30fd0 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74  syntax: aggregat
30fe0 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  e syntax: SIGNED
30ff0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
31000 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
31010 30 38 36 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f  086..SELECT + CO
31020 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20 43 41 53  UNT( * ) * + CAS
31030 54 28 20 39 31 20 41 53 20 53 49 47 4e 45 44 20  T( 91 AS SIGNED 
31040 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
31050 2d 0d 0a 32 37 33 0d 0a 0d 0a 73 6b 69 70 69 66  -..273....skipif
31060 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
31070 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
31080 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
31090 30 38 36 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f  086..SELECT + CO
310a0 55 4e 54 20 28 20 2a 20 29 20 2a 20 2b 20 43 41  UNT ( * ) * + CA
310b0 53 54 20 28 20 39 31 20 41 53 20 49 4e 54 45 47  ST ( 91 AS INTEG
310c0 45 52 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a  ER ) FROM tab0..
310d0 2d 2d 2d 2d 0d 0a 32 37 33 0d 0a 0d 0a 71 75 65  ----..273....que
310e0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
310f0 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2b 20  LECT ALL col1 + 
31100 2b 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  + - col1 FROM ta
31110 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 2d  b2 WHERE NOT - -
31120 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 31 20 49   col1 * + col1 I
31130 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
31140 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
31150 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
31160 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48  L * FROM tab1 WH
31170 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20 2a 20 33  ERE NOT col0 * 3
31180 31 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2d 20  1 NOT BETWEEN - 
31190 63 6f 6c 30 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d  col0 AND NULL..-
311a0 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
311b0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
311c0 20 63 6f 6c 30 20 2a 20 63 6f 6c 32 20 2a 20 2b   col0 * col2 * +
311d0 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20   + col1 AS col1 
311e0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
311f0 0a 31 38 32 37 30 0d 0a 35 37 31 30 35 0d 0a 39  .18270..57105..9
31200 36 30 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  603....query I r
31210 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
31220 4c 4c 20 2b 20 32 32 20 2a 20 2b 20 2b 20 63 6f  LL + 22 * + + co
31230 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l2 AS col2 FROM 
31240 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
31250 2d 2d 0d 0a 31 32 39 38 0d 0a 31 34 39 36 0d 0a  --..1298..1496..
31260 32 31 31 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49  2112....query II
31270 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
31280 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 33 35   DISTINCT - + 35
31290 20 41 53 20 63 6f 6c 30 2c 20 2b 20 63 6f 6c 30   AS col0, + col0
312a0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
312b0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
312c0 0d 0a 2d 33 35 0d 0a 35 31 0d 0a 2d 33 35 0d 0a  ..-35..51..-35..
312d0 38 35 0d 0a 2d 33 35 0d 0a 39 31 0d 0a 0d 0a 71  85..-35..91....q
312e0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
312f0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
31300 2b 20 63 6f 6c 32 20 2b 20 38 31 20 2b 20 2d 20  + col2 + 81 + - 
31310 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col2 FROM tab2..
31320 2d 2d 2d 2d 0d 0a 38 31 0d 0a 0d 0a 6f 6e 6c 79  ----..81....only
31330 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
31340 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
31350 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  ion: ..query II 
31360 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
31370 39 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  93..SELECT DISTI
31380 4e 43 54 20 63 6f 6c 30 20 2b 20 2b 20 2b 20 63  NCT col0 + + + c
31390 6f 6c 30 20 2a 20 2b 20 39 37 20 2b 20 2b 20 63  ol0 * + 97 + + c
313a0 6f 6c 30 20 44 49 56 20 63 6f 6c 31 2c 20 2d 20  ol0 DIV col1, - 
313b0 31 31 20 2a 20 2d 20 33 32 20 2b 20 34 30 20 41  11 * - 32 + 40 A
313c0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
313d0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
313e0 4f 54 20 39 38 20 2a 20 2d 20 35 33 20 2a 20 63  OT 98 * - 53 * c
313f0 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ol1 IS NULL..---
31400 2d 0d 0a 35 30 30 31 0d 0a 33 39 32 0d 0a 38 33  -..5001..392..83
31410 34 37 0d 0a 33 39 32 0d 0a 38 39 31 39 0d 0a 33  47..392..8919..3
31420 39 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  92....skipif mys
31430 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
31440 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
31450 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 39 33  wsort label-1093
31460 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
31470 54 20 63 6f 6c 30 20 2b 20 2b 20 2b 20 63 6f 6c  T col0 + + + col
31480 30 20 2a 20 2b 20 39 37 20 2b 20 2b 20 63 6f 6c  0 * + 97 + + col
31490 30 20 2f 20 63 6f 6c 31 2c 20 2d 20 31 31 20 2a  0 / col1, - 11 *
314a0 20 2d 20 33 32 20 2b 20 34 30 20 41 53 20 63 6f   - 32 + 40 AS co
314b0 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
314c0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 39  cor0 WHERE NOT 9
314d0 38 20 2a 20 2d 20 35 33 20 2a 20 63 6f 6c 31 20  8 * - 53 * col1 
314e0 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 35  IS NULL..----..5
314f0 30 30 31 0d 0a 33 39 32 0d 0a 38 33 34 37 0d 0a  001..392..8347..
31500 33 39 32 0d 0a 38 39 31 39 0d 0a 33 39 32 0d 0a  392..8919..392..
31510 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
31520 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
31530 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
31540 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
31550 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
31560 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
31570 43 54 20 2d 20 28 20 2d 20 2d 20 34 32 20 29 20  CT - ( - - 42 ) 
31580 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
31590 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34  S cor0..----..-4
315a0 32 0d 0a 2d 34 32 0d 0a 2d 34 32 0d 0a 0d 0a 71  2..-42..-42....q
315b0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
315c0 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 63  SELECT ALL + - c
315d0 6f 6c 30 20 2a 20 31 30 20 2b 20 2b 20 38 20 46  ol0 * 10 + + 8 F
315e0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
315f0 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 35 32 0d 0a 2d 36  ..----..-452..-6
31600 33 32 0d 0a 2d 37 34 32 0d 0a 0d 0a 71 75 65 72  32..-742....quer
31610 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
31620 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a  ELECT DISTINCT *
31630 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
31640 72 30 20 57 48 45 52 45 20 2b 20 63 6f 6c 30 20  r0 WHERE + col0 
31650 2a 20 2d 20 35 35 20 2d 20 2b 20 63 6f 6c 31 20  * - 55 - + col1 
31660 3c 3e 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 63 6f  <> + + col1 * co
31670 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  l2..----..9 valu
31680 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36  es hashing to c6
31690 63 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63  c0a4111b36d04dbc
316a0 38 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a  811a11e4d54cad..
316b0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
316c0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
316d0 63 6f 6c 30 20 2a 20 2d 20 38 32 20 41 53 20 63  col0 * - 82 AS c
316e0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
316f0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 31   cor0..----..-41
31700 38 32 0d 0a 2d 36 39 37 30 0d 0a 2d 37 34 36 32  82..-6970..-7462
31710 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
31720 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
31730 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
31740 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
31750 61 62 65 6c 2d 31 30 39 38 0d 0a 53 45 4c 45 43  abel-1098..SELEC
31760 54 20 2b 20 35 34 20 44 49 56 20 2d 20 63 6f 6c  T + 54 DIV - col
31770 30 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  0 FROM tab2 cor0
31780 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 30 0d 0a 30  ..----..-1..0..0
31790 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
317a0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
317b0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
317c0 72 74 20 6c 61 62 65 6c 2d 31 30 39 38 0d 0a 53  rt label-1098..S
317d0 45 4c 45 43 54 20 2b 20 35 34 20 2f 20 2d 20 63  ELECT + 54 / - c
317e0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol0 FROM tab2 co
317f0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 30 0d  r0..----..-1..0.
31800 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .0....onlyif mys
31810 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
31820 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
31830 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
31840 72 74 20 6c 61 62 65 6c 2d 31 30 39 39 0d 0a 53  rt label-1099..S
31850 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
31860 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
31870 63 6f 6c 32 20 2a 20 2d 20 2b 20 43 41 53 54 28  col2 * - + CAST(
31880 20 2b 20 35 31 20 41 53 20 53 49 47 4e 45 44 20   + 51 AS SIGNED 
31890 29 20 2a 20 2b 20 38 37 20 2b 20 63 6f 6c 31 20  ) * + 87 + col1 
318a0 2b 20 2b 20 63 6f 6c 32 20 2b 20 63 6f 6c 31 20  + + col2 + col1 
318b0 2a 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 38 35 20  * - col0 + - 85 
318c0 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
318d0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
318e0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
318f0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
31900 74 20 6c 61 62 65 6c 2d 31 30 39 39 0d 0a 53 45  t label-1099..SE
31910 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
31920 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 63   AS cor0 WHERE c
31930 6f 6c 32 20 2a 20 2d 20 2b 20 43 41 53 54 20 28  ol2 * - + CAST (
31940 20 2b 20 35 31 20 41 53 20 49 4e 54 45 47 45 52   + 51 AS INTEGER
31950 20 29 20 2a 20 2b 20 38 37 20 2b 20 63 6f 6c 31   ) * + 87 + col1
31960 20 2b 20 2b 20 63 6f 6c 32 20 2b 20 63 6f 6c 31   + + col2 + col1
31970 20 2a 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 38 35   * - col0 + - 85
31980 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
31990 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
319a0 74 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20 2d 20  t..SELECT - ( - 
319b0 2b 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 30  + col1 ) AS col0
319c0 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d   FROM tab1 cor0.
319d0 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 34 37 0d 0a 35  .----..14..47..5
319e0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
319f0 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
31a00 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
31a10 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
31a20 6c 61 62 65 6c 2d 31 31 30 31 0d 0a 53 45 4c 45  label-1101..SELE
31a30 43 54 20 2d 20 63 6f 6c 32 2c 20 63 6f 6c 31 20  CT - col2, col1 
31a40 2a 20 2d 20 63 6f 6c 31 20 2b 20 63 6f 6c 32 20  * - col1 + col2 
31a50 44 49 56 20 2b 20 33 30 20 41 53 20 63 6f 6c 31  DIV + 30 AS col1
31a60 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
31a70 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 2d  r0..----..-10..-
31a80 34 34 31 0d 0a 2d 34 37 0d 0a 2d 36 35 36 30 0d  441..-47..-6560.
31a90 0a 2d 39 39 0d 0a 32 0d 0a 0d 0a 73 6b 69 70 69  .-99..2....skipi
31aa0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
31ab0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
31ac0 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
31ad0 2d 31 31 30 31 0d 0a 53 45 4c 45 43 54 20 2d 20  -1101..SELECT - 
31ae0 63 6f 6c 32 2c 20 63 6f 6c 31 20 2a 20 2d 20 63  col2, col1 * - c
31af0 6f 6c 31 20 2b 20 63 6f 6c 32 20 2f 20 2b 20 33  ol1 + col2 / + 3
31b00 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  0 AS col1 FROM t
31b10 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
31b20 2d 0d 0a 2d 31 30 0d 0a 2d 34 34 31 0d 0a 2d 34  -..-10..-441..-4
31b30 37 0d 0a 2d 36 35 36 30 0d 0a 2d 39 39 0d 0a 32  7..-6560..-99..2
31b40 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
31b50 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
31b60 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
31b70 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 30  owsort label-110
31b80 32 0d 0a 53 45 4c 45 43 54 20 2d 20 4d 41 58 28  2..SELECT - MAX(
31b90 20 63 6f 6c 30 20 29 20 63 6f 6c 31 20 46 52 4f   col0 ) col1 FRO
31ba0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 37  M tab2..----..-7
31bb0 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  5....skipif mysq
31bc0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
31bd0 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
31be0 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
31bf0 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
31c00 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
31c10 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
31c20 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
31c30 65 6c 2d 31 31 30 32 0d 0a 53 45 4c 45 43 54 20  el-1102..SELECT 
31c40 2d 20 4d 41 58 20 28 20 63 6f 6c 30 20 29 20 63  - MAX ( col0 ) c
31c50 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
31c60 2d 2d 2d 0d 0a 2d 37 35 0d 0a 0d 0a 71 75 65 72  ---..-75....quer
31c70 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
31c80 45 43 54 20 41 4c 4c 20 30 20 2b 20 2d 20 63 6f  ECT ALL 0 + - co
31c90 6c 32 20 2b 20 2b 20 63 6f 6c 31 20 41 53 20 63  l2 + + col1 AS c
31ca0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
31cb0 2d 2d 2d 0d 0a 2d 32 31 0d 0a 2d 35 34 0d 0a 2d  ---..-21..-54..-
31cc0 38 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  82....onlyif mys
31cd0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
31ce0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
31cf0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
31d00 31 30 34 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20  104..SELECT - + 
31d10 28 20 2d 20 2b 20 28 20 4d 41 58 28 20 41 4c 4c  ( - + ( MAX( ALL
31d20 20 2b 20 63 6f 6c 32 20 29 20 29 20 29 20 2a 20   + col2 ) ) ) * 
31d30 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f  - COUNT( * ) FRO
31d40 4d 20 74 61 62 31 20 57 48 45 52 45 20 28 20 2d  M tab1 WHERE ( -
31d50 20 28 20 2b 20 33 20 29 20 29 20 4e 4f 54 20 42   ( + 3 ) ) NOT B
31d60 45 54 57 45 45 4e 20 2d 20 2d 20 63 6f 6c 31 20  ETWEEN - - col1 
31d70 2d 20 2b 20 63 6f 6c 32 20 41 4e 44 20 63 6f 6c  - + col2 AND col
31d80 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  0..----..NULL...
31d90 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
31da0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
31db0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
31dc0 6c 61 62 65 6c 2d 31 31 30 34 0d 0a 53 45 4c 45  label-1104..SELE
31dd0 43 54 20 2d 20 2b 20 28 20 2d 20 2b 20 28 20 4d  CT - + ( - + ( M
31de0 41 58 20 28 20 41 4c 4c 20 2b 20 63 6f 6c 32 20  AX ( ALL + col2 
31df0 29 20 29 20 29 20 2a 20 2d 20 43 4f 55 4e 54 20  ) ) ) * - COUNT 
31e00 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20  ( * ) FROM tab1 
31e10 57 48 45 52 45 20 28 20 2d 20 28 20 2b 20 33 20  WHERE ( - ( + 3 
31e20 29 20 29 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  ) ) NOT BETWEEN 
31e30 2d 20 2d 20 63 6f 6c 31 20 2d 20 2b 20 63 6f 6c  - - col1 - + col
31e40 32 20 41 4e 44 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d  2 AND col0..----
31e50 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..NULL....onlyif
31e60 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
31e70 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
31e80 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
31e90 65 6c 2d 31 31 30 35 0d 0a 53 45 4c 45 43 54 20  el-1105..SELECT 
31ea0 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b  - + COUNT( * ) +
31eb0 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20   + - COUNT( * ) 
31ec0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
31ed0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
31ee0 0a 2d 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .-6....skipif my
31ef0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
31f00 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
31f10 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 30 35  wsort label-1105
31f20 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 43 4f 55  ..SELECT - + COU
31f30 4e 54 20 28 20 2a 20 29 20 2b 20 2b 20 2d 20 43  NT ( * ) + + - C
31f40 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
31f50 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
31f60 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 0d 0a  cor0..----..-6..
31f70 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
31f80 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
31f90 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
31fa0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 30 36 0d  sort label-1106.
31fb0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 34 37 20 2b  .SELECT ALL 47 +
31fc0 20 34 34 20 2d 20 2b 20 43 4f 55 4e 54 28 20 2a   44 - + COUNT( *
31fd0 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
31fe0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 38 0d 0a  cor0..----..88..
31ff0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
32000 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
32010 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
32020 20 6c 61 62 65 6c 2d 31 31 30 36 0d 0a 53 45 4c   label-1106..SEL
32030 45 43 54 20 41 4c 4c 20 34 37 20 2b 20 34 34 20  ECT ALL 47 + 44 
32040 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  - + COUNT ( * ) 
32050 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
32060 30 0d 0a 2d 2d 2d 2d 0d 0a 38 38 0d 0a 0d 0a 6f  0..----..88....o
32070 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
32080 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
32090 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
320a0 74 20 6c 61 62 65 6c 2d 31 31 30 37 0d 0a 53 45  t label-1107..SE
320b0 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20  LECT + COUNT( * 
320c0 29 20 2b 20 2b 20 2b 20 30 20 2b 20 2b 20 2b 20  ) + + + 0 + + + 
320d0 34 37 20 2d 20 33 34 20 2b 20 39 38 20 46 52 4f  47 - 34 + 98 FRO
320e0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
320f0 2d 2d 2d 2d 0d 0a 31 31 34 0d 0a 0d 0a 73 6b 69  ----..114....ski
32100 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
32110 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
32120 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
32130 6c 2d 31 31 30 37 0d 0a 53 45 4c 45 43 54 20 2b  l-1107..SELECT +
32140 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2b   COUNT ( * ) + +
32150 20 2b 20 30 20 2b 20 2b 20 2b 20 34 37 20 2d 20   + 0 + + + 47 - 
32160 33 34 20 2b 20 39 38 20 46 52 4f 4d 20 74 61 62  34 + 98 FROM tab
32170 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
32180 0a 31 31 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .114....onlyif m
32190 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
321a0 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
321b0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
321c0 72 74 20 6c 61 62 65 6c 2d 31 31 30 38 0d 0a 53  rt label-1108..S
321d0 45 4c 45 43 54 20 32 33 20 2b 20 2b 20 63 6f 6c  ELECT 23 + + col
321e0 32 20 2b 20 2b 20 38 20 44 49 56 20 63 6f 6c 31  2 + + 8 DIV col1
321f0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
32200 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
32210 0d 0a 31 33 30 0d 0a 33 33 0d 0a 37 30 0d 0a 0d  ..130..33..70...
32220 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
32230 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
32240 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
32250 6c 61 62 65 6c 2d 31 31 30 38 0d 0a 53 45 4c 45  label-1108..SELE
32260 43 54 20 32 33 20 2b 20 2b 20 63 6f 6c 32 20 2b  CT 23 + + col2 +
32270 20 2b 20 38 20 2f 20 63 6f 6c 31 20 41 53 20 63   + 8 / col1 AS c
32280 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
32290 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 30   cor0..----..130
322a0 0d 0a 33 33 0d 0a 37 30 0d 0a 0d 0a 71 75 65 72  ..33..70....quer
322b0 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
322c0 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2b 20 2b 20  LECT + col2 + + 
322d0 35 33 20 41 53 20 63 6f 6c 31 2c 20 63 6f 6c 31  53 AS col1, col1
322e0 20 2a 20 63 6f 6c 32 20 2b 20 2d 20 2b 20 63 6f   * col2 + - + co
322f0 6c 30 20 2b 20 2d 20 2b 20 63 6f 6c 32 20 46 52  l0 + - + col2 FR
32300 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
32310 0a 2d 2d 2d 2d 0d 0a 31 31 31 0d 0a 33 37 35 33  .----..111..3753
32320 0d 0a 37 36 0d 0a 31 31 30 34 0d 0a 39 33 0d 0a  ..76..1104..93..
32330 32 39 37 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20  2976....query I 
32340 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
32350 63 6f 6c 31 20 2a 20 2d 20 39 32 20 41 53 20 63  col1 * - 92 AS c
32360 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
32370 2d 2d 2d 0d 0a 2d 31 32 38 38 0d 0a 2d 34 33 32  ---..-1288..-432
32380 34 0d 0a 2d 34 36 30 0d 0a 0d 0a 71 75 65 72 79  4..-460....query
32390 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
323a0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 41 56  CT DISTINCT + AV
323b0 47 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 2b  G ( DISTINCT - +
323c0 20 35 39 20 29 20 46 52 4f 4d 20 74 61 62 31 20   59 ) FROM tab1 
323d0 57 48 45 52 45 20 2d 20 2b 20 63 6f 6c 31 20 4e  WHERE - + col1 N
323e0 4f 54 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20  OT BETWEEN NULL 
323f0 41 4e 44 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d  AND + col0..----
32400 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20  ..NULL....query 
32410 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
32420 54 20 2b 20 2b 20 37 39 20 2a 20 2d 20 33 20 46  T + + 79 * - 3 F
32430 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
32440 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30   CROSS JOIN tab0
32450 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   cor1..----..9 v
32460 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
32470 20 32 65 65 31 33 32 32 33 34 37 35 66 31 39 36   2ee13223475f196
32480 62 65 30 65 34 65 61 63 36 37 65 31 32 65 62 31  be0e4eac67e12eb1
32490 66 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  f....query I row
324a0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63  sort..SELECT - c
324b0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
324c0 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 2b 20   cor0 WHERE ( + 
324d0 63 6f 6c 30 20 29 20 2a 20 38 38 20 2a 20 2d 20  col0 ) * 88 * - 
324e0 31 31 20 2b 20 2b 20 28 20 2d 20 38 33 20 29 20  11 + + ( - 83 ) 
324f0 2b 20 2d 20 28 20 2b 20 2b 20 63 6f 6c 31 20 29  + - ( + + col1 )
32500 20 2a 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 63 6f   * - col2 * + co
32510 6c 32 20 2a 20 2b 20 32 35 20 2f 20 2b 20 63 6f  l2 * + 25 / + co
32520 6c 30 20 2d 20 28 20 33 32 20 29 20 49 53 20 4e  l0 - ( 32 ) IS N
32530 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ULL..----....onl
32540 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
32550 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
32560 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
32570 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
32580 31 31 34 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  114..SELECT - co
32590 6c 31 20 41 53 20 63 6f 6c 31 2c 20 2d 20 63 6f  l1 AS col1, - co
325a0 6c 30 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 2b 20  l0 * + - col2 + 
325b0 2d 20 43 41 53 54 28 20 63 6f 6c 30 20 41 53 20  - CAST( col0 AS 
325c0 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61  SIGNED ) FROM ta
325d0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
325e0 0d 0a 2d 31 34 0d 0a 34 38 34 35 0d 0a 2d 34 37  ..-14..4845..-47
325f0 0d 0a 36 30 39 37 0d 0a 2d 35 0d 0a 34 39 33 30  ..6097..-5..4930
32600 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
32610 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
32620 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
32630 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31 34 0d 0a  ort label-1114..
32640 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 41 53  SELECT - col1 AS
32650 20 63 6f 6c 31 2c 20 2d 20 63 6f 6c 30 20 2a 20   col1, - col0 * 
32660 2b 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 43 41 53  + - col2 + - CAS
32670 54 20 28 20 63 6f 6c 30 20 41 53 20 49 4e 54 45  T ( col0 AS INTE
32680 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 31 20  GER ) FROM tab1 
32690 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
326a0 31 34 0d 0a 34 38 34 35 0d 0a 2d 34 37 0d 0a 36  14..4845..-47..6
326b0 30 39 37 0d 0a 2d 35 0d 0a 34 39 33 30 0d 0a 0d  097..-5..4930...
326c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
326d0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
326e0 54 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  T - col2 FROM ta
326f0 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
32700 20 4e 4f 54 20 4e 55 4c 4c 20 3e 3d 20 28 20 4e   NOT NULL >= ( N
32710 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71  ULL )..----....q
32720 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
32730 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
32740 2d 20 63 6f 6c 32 20 2a 20 2b 20 31 20 41 53 20  - col2 * + 1 AS 
32750 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col1 FROM tab1..
32760 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a 2d 36 38 0d 0a  ----..-59..-68..
32770 2d 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -96....onlyif my
32780 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
32790 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
327a0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
327b0 72 74 20 6c 61 62 65 6c 2d 31 31 31 37 0d 0a 53  rt label-1117..S
327c0 45 4c 45 43 54 20 2b 20 31 30 20 2a 20 2d 20 37  ELECT + 10 * - 7
327d0 32 20 41 53 20 63 6f 6c 30 2c 20 43 41 53 54 28  2 AS col0, CAST(
327e0 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
327f0 29 20 2a 20 31 32 20 41 53 20 63 6f 6c 32 20 46  ) * 12 AS col2 F
32800 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
32810 2d 37 32 30 0d 0a 4e 55 4c 4c 0d 0a 2d 37 32 30  -720..NULL..-720
32820 0d 0a 4e 55 4c 4c 0d 0a 2d 37 32 30 0d 0a 4e 55  ..NULL..-720..NU
32830 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
32840 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
32850 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
32860 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31 37  wsort label-1117
32870 0d 0a 53 45 4c 45 43 54 20 2b 20 31 30 20 2a 20  ..SELECT + 10 * 
32880 2d 20 37 32 20 41 53 20 63 6f 6c 30 2c 20 43 41  - 72 AS col0, CA
32890 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
328a0 45 47 45 52 20 29 20 2a 20 31 32 20 41 53 20 63  EGER ) * 12 AS c
328b0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
328c0 2d 2d 2d 0d 0a 2d 37 32 30 0d 0a 4e 55 4c 4c 0d  ---..-720..NULL.
328d0 0a 2d 37 32 30 0d 0a 4e 55 4c 4c 0d 0a 2d 37 32  .-720..NULL..-72
328e0 30 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79  0..NULL....query
328f0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
32900 43 54 20 31 35 20 2a 20 2d 20 2b 20 28 20 2b 20  CT 15 * - + ( + 
32910 63 6f 6c 32 20 29 20 2a 20 2b 20 2b 20 28 20 63  col2 ) * + + ( c
32920 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 31 0d  ol1 ) FROM tab1.
32930 0a 2d 2d 2d 2d 0d 0a 2d 32 30 31 36 30 0d 0a 2d  .----..-20160..-
32940 34 34 32 35 0d 0a 2d 34 37 39 34 30 0d 0a 0d 0a  4425..-47940....
32950 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
32960 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
32970 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
32980 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
32990 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
329a0 65 6c 2d 31 31 31 39 0d 0a 53 45 4c 45 43 54 20  el-1119..SELECT 
329b0 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 44 49 56  - COUNT( * ) DIV
329c0 20 2b 20 38 32 20 46 52 4f 4d 20 74 61 62 30 0d   + 82 FROM tab0.
329d0 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .----..0....skip
329e0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
329f0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
32a00 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
32a10 2d 31 31 31 39 0d 0a 53 45 4c 45 43 54 20 2d 20  -1119..SELECT - 
32a20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2f 20 2b 20  COUNT ( * ) / + 
32a30 38 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  82 FROM tab0..--
32a40 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49  --..0....query I
32a50 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
32a60 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57  CT * FROM tab0 W
32a70 48 45 52 45 20 4e 4f 54 20 28 20 2d 20 31 36 20  HERE NOT ( - 16 
32a80 2f 20 2b 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c  / + col0 IS NULL
32a90 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75   )..----..9 valu
32aa0 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34  es hashing to c4
32ab0 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34  b42765dff94eaaa4
32ac0 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a  6040e537fb43b7..
32ad0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
32ae0 74 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 2b 20  t..SELECT + ( + 
32af0 63 6f 6c 32 20 29 20 2a 20 2d 20 63 6f 6c 31 20  col2 ) * - col1 
32b00 2a 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46  * col0 AS col1 F
32b10 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
32b20 2d 32 35 30 37 35 0d 0a 2d 32 39 30 38 33 36 0d  -25075..-290836.
32b30 0a 2d 36 38 35 34 34 0d 0a 0d 0a 71 75 65 72 79  .-68544....query
32b40 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
32b50 43 54 20 41 4c 4c 20 2d 20 2b 20 39 30 20 46 52  CT ALL - + 90 FR
32b60 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
32b70 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20  CROSS JOIN tab1 
32b80 41 53 20 63 6f 72 31 20 57 48 45 52 45 20 4e 55  AS cor1 WHERE NU
32b90 4c 4c 20 3c 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d  LL < ( NULL )..-
32ba0 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
32bb0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
32bc0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
32bd0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
32be0 31 31 32 33 0d 0a 53 45 4c 45 43 54 20 2b 20 2d  1123..SELECT + -
32bf0 20 28 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20   ( + COUNT( * ) 
32c00 29 20 2a 20 39 39 20 2a 20 2b 20 2d 20 43 4f 55  ) * 99 * + - COU
32c10 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  NT( * ) FROM tab
32c20 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
32c30 0a 38 39 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .891....skipif m
32c40 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
32c50 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
32c60 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 32  owsort label-112
32c70 33 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 28 20  3..SELECT + - ( 
32c80 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29 20  + COUNT ( * ) ) 
32c90 2a 20 39 39 20 2a 20 2b 20 2d 20 43 4f 55 4e 54  * 99 * + - COUNT
32ca0 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31   ( * ) FROM tab1
32cb0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
32cc0 38 39 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  891....onlyif my
32cd0 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
32ce0 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
32cf0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
32d00 74 20 6c 61 62 65 6c 2d 31 31 32 34 0d 0a 53 45  t label-1124..SE
32d10 4c 45 43 54 20 32 33 20 44 49 56 20 2d 20 2d 20  LECT 23 DIV - - 
32d20 34 33 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  43 AS col0 FROM 
32d30 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
32d40 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .0..0..0....skip
32d50 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
32d60 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
32d70 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
32d80 2d 31 31 32 34 0d 0a 53 45 4c 45 43 54 20 32 33  -1124..SELECT 23
32d90 20 2f 20 2d 20 2d 20 34 33 20 41 53 20 63 6f 6c   / - - 43 AS col
32da0 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  0 FROM tab0 cor0
32db0 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d  ..----..0..0..0.
32dc0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
32dd0 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 63  rt..SELECT - + c
32de0 6f 6c 32 20 2b 20 2d 20 36 33 20 46 52 4f 4d 20  ol2 + - 63 FROM 
32df0 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
32e00 0a 2d 31 32 32 0d 0a 2d 31 33 31 0d 0a 2d 31 35  .-122..-131..-15
32e10 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  9....query III r
32e20 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
32e30 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
32e40 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
32e50 45 20 4e 4f 54 20 2b 20 28 20 2d 20 2b 20 33 34  E NOT + ( - + 34
32e60 20 29 20 2b 20 2d 20 2b 20 63 6f 6c 31 20 4e 4f   ) + - + col1 NO
32e70 54 20 42 45 54 57 45 45 4e 20 2d 20 2b 20 63 6f  T BETWEEN - + co
32e80 6c 30 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d  l0 AND NULL..---
32e90 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  -....skipif post
32ea0 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
32eb0 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
32ec0 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
32ed0 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
32ee0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
32ef0 45 4c 45 43 54 20 2d 20 2d 20 63 6f 6c 31 20 2b  ELECT - - col1 +
32f00 20 2d 20 35 37 20 63 6f 6c 30 20 46 52 4f 4d 20   - 57 col0 FROM 
32f10 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
32f20 2d 2d 0d 0a 2d 36 0d 0a 31 30 0d 0a 32 30 0d 0a  --..-6..10..20..
32f30 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
32f40 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28 20  t..SELECT ALL ( 
32f50 63 6f 6c 32 20 29 20 2a 20 2d 20 63 6f 6c 31 20  col2 ) * - col1 
32f60 2a 20 63 6f 6c 30 20 2d 20 63 6f 6c 30 20 41 53  * col0 - col0 AS
32f70 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
32f80 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
32f90 31 38 33 35 37 0d 0a 2d 35 37 31 32 30 0d 0a 2d  18357..-57120..-
32fa0 39 37 30 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  9700....onlyif m
32fb0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
32fc0 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65  ax: DECIMAL type
32fd0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
32fe0 6f 72 74 20 6c 61 62 65 6c 2d 31 31 32 39 0d 0a  ort label-1129..
32ff0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
33000 2b 20 28 20 2d 20 2b 20 43 41 53 54 28 20 4e 55  + ( - + CAST( NU
33010 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20  LL AS DECIMAL ) 
33020 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
33030 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
33040 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  -..NULL....skipi
33050 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
33060 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
33070 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
33080 31 31 32 39 0d 0a 53 45 4c 45 43 54 20 44 49 53  1129..SELECT DIS
33090 54 49 4e 43 54 20 2b 20 28 20 2d 20 2b 20 43 41  TINCT + ( - + CA
330a0 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41  ST ( NULL AS REA
330b0 4c 20 29 20 29 20 41 53 20 63 6f 6c 30 20 46 52  L ) ) AS col0 FR
330c0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
330d0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f  .----..NULL....o
330e0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
330f0 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
33100 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
33110 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
33120 31 31 33 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1130..SELECT ALL
33130 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 2b 20 63 6f   - col2 + - + co
33140 6c 32 20 2f 20 2b 20 2d 20 43 41 53 54 28 20 4e  l2 / + - CAST( N
33150 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
33160 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
33170 30 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29  0 WHERE ( NULL )
33180 20 3c 3d 20 2b 20 2b 20 63 6f 6c 30 20 2b 20 63   <= + + col0 + c
33190 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  ol0..----....ski
331a0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
331b0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
331c0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
331d0 6c 2d 31 31 33 30 0d 0a 53 45 4c 45 43 54 20 41  l-1130..SELECT A
331e0 4c 4c 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 2b 20  LL - col2 + - + 
331f0 63 6f 6c 32 20 2f 20 2b 20 2d 20 43 41 53 54 20  col2 / + - CAST 
33200 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
33210 52 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  R ) FROM tab1 AS
33220 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e 55   cor0 WHERE ( NU
33230 4c 4c 20 29 20 3c 3d 20 2b 20 2b 20 63 6f 6c 30  LL ) <= + + col0
33240 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d   + col0..----...
33250 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
33260 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
33270 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
33280 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
33290 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
332a0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
332b0 43 54 20 2d 20 63 6f 6c 30 20 2a 20 32 39 2c 20  CT - col0 * 29, 
332c0 2d 20 28 20 2d 20 63 6f 6c 30 20 29 20 2b 20 2d  - ( - col0 ) + -
332d0 20 33 31 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   31 col0 FROM ta
332e0 62 31 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f  b1 cor0 WHERE co
332f0 6c 31 20 2b 20 2b 20 2b 20 63 6f 6c 31 20 3c 20  l1 + + + col1 < 
33300 28 20 2b 20 2b 20 63 6f 6c 31 20 29 20 2b 20 2d  ( + + col1 ) + -
33310 20 2d 20 33 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34   - 30..----..-14
33320 37 39 0d 0a 32 30 0d 0a 2d 32 34 36 35 0d 0a 35  79..20..-2465..5
33330 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  4....query III r
33340 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
33350 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
33360 20 2b 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 63 6f   + - col1 + + co
33370 6c 31 20 2b 20 2b 20 63 6f 6c 30 20 2b 20 2b 20  l1 + + col0 + + 
33380 2b 20 32 37 20 3d 20 38 34 0d 0a 2d 2d 2d 2d 0d  + 27 = 84..----.
33390 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
333a0 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20  rt..SELECT col0 
333b0 2b 20 2d 20 63 6f 6c 31 20 2a 20 37 35 20 46 52  + - col1 * 75 FR
333c0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
333d0 32 39 30 0d 0a 2d 33 34 33 34 0d 0a 2d 39 39 39  290..-3434..-999
333e0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
333f0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
33400 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  L * FROM tab2 WH
33410 45 52 45 20 2b 20 2b 20 63 6f 6c 30 20 2b 20 2d  ERE + + col0 + -
33420 20 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c   col0 IS NOT NUL
33430 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  L..----..9 value
33440 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63  s hashing to 75c
33450 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62  998aa53ac83218cb
33460 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d  f2feb962d0a49...
33470 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
33480 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
33490 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
334a0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
334b0 6c 2d 31 31 33 35 0d 0a 53 45 4c 45 43 54 20 2d  l-1135..SELECT -
334c0 20 43 41 53 54 28 20 2b 20 43 41 53 54 28 20 2d   CAST( + CAST( -
334d0 20 39 34 20 41 53 20 53 49 47 4e 45 44 20 29 20   94 AS SIGNED ) 
334e0 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2b 20  AS SIGNED ) + + 
334f0 2d 20 38 34 20 2a 20 2d 20 63 6f 6c 30 20 41 53  - 84 * - col0 AS
33500 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d   col1 FROM tab0.
33510 0a 2d 2d 2d 2d 0d 0a 31 33 35 34 0d 0a 37 34 30  .----..1354..740
33520 32 0d 0a 38 32 34 32 0d 0a 0d 0a 73 6b 69 70 69  2..8242....skipi
33530 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
33540 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
33550 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
33560 31 31 33 35 0d 0a 53 45 4c 45 43 54 20 2d 20 43  1135..SELECT - C
33570 41 53 54 20 28 20 2b 20 43 41 53 54 20 28 20 2d  AST ( + CAST ( -
33580 20 39 34 20 41 53 20 49 4e 54 45 47 45 52 20 29   94 AS INTEGER )
33590 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20   AS INTEGER ) + 
335a0 2b 20 2d 20 38 34 20 2a 20 2d 20 63 6f 6c 30 20  + - 84 * - col0 
335b0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
335c0 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 35 34 0d 0a 37  0..----..1354..7
335d0 34 30 32 0d 0a 38 32 34 32 0d 0a 0d 0a 6f 6e 6c  402..8242....onl
335e0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
335f0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
33600 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
33610 6c 61 62 65 6c 2d 31 31 33 36 0d 0a 53 45 4c 45  label-1136..SELE
33620 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 32 33  CT DISTINCT - 23
33630 20 2a 20 2b 20 43 4f 55 4e 54 28 20 2b 20 2d 20   * + COUNT( + - 
33640 63 6f 6c 32 20 29 20 2b 20 2d 20 33 32 20 41 53  col2 ) + - 32 AS
33650 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d   col2 FROM tab2.
33660 0a 2d 2d 2d 2d 0d 0a 2d 31 30 31 0d 0a 0d 0a 73  .----..-101....s
33670 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
33680 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
33690 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
336a0 62 65 6c 2d 31 31 33 36 0d 0a 53 45 4c 45 43 54  bel-1136..SELECT
336b0 20 44 49 53 54 49 4e 43 54 20 2d 20 32 33 20 2a   DISTINCT - 23 *
336c0 20 2b 20 43 4f 55 4e 54 20 28 20 2b 20 2d 20 63   + COUNT ( + - c
336d0 6f 6c 32 20 29 20 2b 20 2d 20 33 32 20 41 53 20  ol2 ) + - 32 AS 
336e0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col2 FROM tab2..
336f0 2d 2d 2d 2d 0d 0a 2d 31 30 31 0d 0a 0d 0a 6f 6e  ----..-101....on
33700 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
33710 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
33720 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
33730 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
33740 31 31 33 37 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  1137..SELECT col
33750 30 2c 20 63 6f 6c 30 20 2b 20 43 41 53 54 28 20  0, col0 + CAST( 
33760 2d 20 2d 20 28 20 63 6f 6c 32 20 29 20 41 53 20  - - ( col2 ) AS 
33770 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61  SIGNED ) FROM ta
33780 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 31 34  b1..----..51..14
33790 37 0d 0a 38 35 0d 0a 31 34 34 0d 0a 39 31 0d 0a  7..85..144..91..
337a0 31 35 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  159....skipif my
337b0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
337c0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72  ible..query II r
337d0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33  owsort label-113
337e0 37 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 2c 20  7..SELECT col0, 
337f0 63 6f 6c 30 20 2b 20 43 41 53 54 20 28 20 2d 20  col0 + CAST ( - 
33800 2d 20 28 20 63 6f 6c 32 20 29 20 41 53 20 49 4e  - ( col2 ) AS IN
33810 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62  TEGER ) FROM tab
33820 31 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 31 34 37  1..----..51..147
33830 0d 0a 38 35 0d 0a 31 34 34 0d 0a 39 31 0d 0a 31  ..85..144..91..1
33840 35 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  59....query I ro
33850 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
33860 28 20 2d 20 2b 20 63 6f 6c 32 20 29 20 41 53 20  ( - + col2 ) AS 
33870 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col0 FROM tab1..
33880 2d 2d 2d 2d 0d 0a 35 39 0d 0a 36 38 0d 0a 39 36  ----..59..68..96
33890 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
338a0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
338b0 31 2c 20 34 35 20 46 52 4f 4d 20 74 61 62 32 0d  1, 45 FROM tab2.
338c0 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 34 35 0d 0a 36  .----..51..45..6
338d0 37 0d 0a 34 35 0d 0a 37 37 0d 0a 34 35 0d 0a 0d  7..45..77..45...
338e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
338f0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
33900 54 20 2b 20 38 20 2a 20 2d 20 2d 20 37 35 20 2b  T + 8 * - - 75 +
33910 20 33 33 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   33 AS col2 FROM
33920 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 36 33 33   tab0..----..633
33930 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
33940 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
33950 2b 20 63 6f 6c 31 20 2b 20 2b 20 2b 20 63 6f 6c  + col1 + + + col
33960 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  2 AS col1 FROM t
33970 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
33980 2d 0d 0a 31 31 37 0d 0a 31 32 35 0d 0a 37 34 0d  -..117..125..74.
33990 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
339a0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
339b0 4e 43 54 20 2b 20 34 36 20 2d 20 2b 20 63 6f 6c  NCT + 46 - + col
339c0 31 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  1 FROM tab2 cor0
339d0 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 0d 0a 2d 33 31  ..----..-21..-31
339e0 0d 0a 2d 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..-5....query II
339f0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
33a00 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
33a10 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
33a20 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20 42 45  HERE NOT col0 BE
33a30 54 57 45 45 4e 20 2d 20 63 6f 6c 31 20 41 4e 44  TWEEN - col1 AND
33a40 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
33a50 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
33a60 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
33a70 74 61 62 31 20 57 48 45 52 45 20 33 39 20 3c 3e  tab1 WHERE 39 <>
33a80 20 28 20 2d 20 2b 20 39 33 20 29 0d 0a 2d 2d 2d   ( - + 93 )..---
33a90 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
33aa0 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31  ing to c6c0a4111
33ab0 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65  b36d04dbc811a11e
33ac0 34 64 35 34 63 61 64 0d 0a 0d 0a 6f 6e 6c 79 69  4d54cad....onlyi
33ad0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
33ae0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
33af0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
33b00 62 65 6c 2d 31 31 34 35 0d 0a 53 45 4c 45 43 54  bel-1145..SELECT
33b10 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20   + COUNT( * ) + 
33b20 2b 20 37 37 20 41 53 20 63 6f 6c 31 20 46 52 4f  + 77 AS col1 FRO
33b30 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 38 30  M tab1..----..80
33b40 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
33b50 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
33b60 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
33b70 72 74 20 6c 61 62 65 6c 2d 31 31 34 35 0d 0a 53  rt label-1145..S
33b80 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20 28 20  ELECT + COUNT ( 
33b90 2a 20 29 20 2b 20 2b 20 37 37 20 41 53 20 63 6f  * ) + + 77 AS co
33ba0 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
33bb0 2d 2d 0d 0a 38 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  --..80....onlyif
33bc0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
33bd0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
33be0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
33bf0 65 6c 2d 31 31 34 36 0d 0a 53 45 4c 45 43 54 20  el-1146..SELECT 
33c00 41 4c 4c 20 2d 20 4d 49 4e 28 20 41 4c 4c 20 2d  ALL - MIN( ALL -
33c10 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62   col1 ) FROM tab
33c20 32 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  2 WHERE NOT NULL
33c30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
33c40 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
33c50 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
33c60 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
33c70 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 34  owsort label-114
33c80 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  6..SELECT ALL - 
33c90 4d 49 4e 20 28 20 41 4c 4c 20 2d 20 63 6f 6c 31  MIN ( ALL - col1
33ca0 20 29 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   ) FROM tab2 WHE
33cb0 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e  RE NOT NULL IS N
33cc0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ULL..----..NULL.
33cd0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
33ce0 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 33 30 20  rt..SELECT + 30 
33cf0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
33d00 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 30  1 cor0..----..30
33d10 0d 0a 33 30 0d 0a 33 30 0d 0a 0d 0a 71 75 65 72  ..30..30....quer
33d20 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
33d30 4c 45 43 54 20 28 20 63 6f 6c 32 20 29 20 2a 20  LECT ( col2 ) * 
33d40 2d 20 2d 20 34 30 20 41 53 20 63 6f 6c 31 2c 20  - - 40 AS col1, 
33d50 2b 20 35 35 20 46 52 4f 4d 20 74 61 62 32 0d 0a  + 55 FROM tab2..
33d60 2d 2d 2d 2d 0d 0a 31 36 30 30 0d 0a 35 35 0d 0a  ----..1600..55..
33d70 32 33 32 30 0d 0a 35 35 0d 0a 39 32 30 0d 0a 35  2320..55..920..5
33d80 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  5....onlyif mysq
33d90 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
33da0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
33db0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
33dc0 34 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  49..SELECT ALL -
33dd0 20 4d 41 58 28 20 2d 20 2b 20 63 6f 6c 32 20 29   MAX( - + col2 )
33de0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
33df0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
33e00 0d 0a 35 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..59....skipif m
33e10 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
33e20 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
33e30 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 34  owsort label-114
33e40 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  9..SELECT ALL - 
33e50 4d 41 58 20 28 20 2d 20 2b 20 63 6f 6c 32 20 29  MAX ( - + col2 )
33e60 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
33e70 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
33e80 0d 0a 35 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..59....onlyif m
33e90 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
33ea0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
33eb0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
33ec0 2d 31 31 35 30 0d 0a 53 45 4c 45 43 54 20 35 35  -1150..SELECT 55
33ed0 20 2a 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20   * - COUNT( * ) 
33ee0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
33ef0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 35 0d 0a 0d  0..----..-165...
33f00 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
33f10 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
33f20 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
33f30 6c 61 62 65 6c 2d 31 31 35 30 0d 0a 53 45 4c 45  label-1150..SELE
33f40 43 54 20 35 35 20 2a 20 2d 20 43 4f 55 4e 54 20  CT 55 * - COUNT 
33f50 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20  ( * ) FROM tab0 
33f60 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
33f70 31 36 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  165....onlyif my
33f80 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
33f90 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
33fa0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
33fb0 31 31 35 31 0d 0a 53 45 4c 45 43 54 20 44 49 53  1151..SELECT DIS
33fc0 54 49 4e 43 54 20 2b 20 28 20 2b 20 43 4f 55 4e  TINCT + ( + COUN
33fd0 54 28 20 2a 20 29 20 29 20 46 52 4f 4d 20 74 61  T( * ) ) FROM ta
33fe0 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33  b0 cor0..----..3
33ff0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
34000 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
34010 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
34020 72 74 20 6c 61 62 65 6c 2d 31 31 35 31 0d 0a 53  rt label-1151..S
34030 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
34040 20 28 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29   ( + COUNT ( * )
34050 20 29 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72   ) FROM tab0 cor
34060 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 6f 6e  0..----..3....on
34070 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
34080 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
34090 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
340a0 74 20 6c 61 62 65 6c 2d 31 31 35 32 0d 0a 53 45  t label-1152..SE
340b0 4c 45 43 54 20 36 32 20 41 53 20 63 6f 6c 31 2c  LECT 62 AS col1,
340c0 20 2b 20 4d 49 4e 28 20 63 6f 6c 31 20 29 20 46   + MIN( col1 ) F
340d0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
340e0 0d 0a 2d 2d 2d 2d 0d 0a 36 32 0d 0a 31 0d 0a 0d  ..----..62..1...
340f0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
34100 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
34110 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
34120 20 6c 61 62 65 6c 2d 31 31 35 32 0d 0a 53 45 4c   label-1152..SEL
34130 45 43 54 20 36 32 20 41 53 20 63 6f 6c 31 2c 20  ECT 62 AS col1, 
34140 2b 20 4d 49 4e 20 28 20 63 6f 6c 31 20 29 20 46  + MIN ( col1 ) F
34150 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
34160 0d 0a 2d 2d 2d 2d 0d 0a 36 32 0d 0a 31 0d 0a 0d  ..----..62..1...
34170 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
34180 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
34190 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54  M tab0 WHERE NOT
341a0 20 63 6f 6c 30 20 4e 4f 54 20 42 45 54 57 45 45   col0 NOT BETWEE
341b0 4e 20 28 20 2d 20 33 38 20 2a 20 2b 20 63 6f 6c  N ( - 38 * + col
341c0 30 20 29 20 41 4e 44 20 2d 20 63 6f 6c 30 20 2d  0 ) AND - col0 -
341d0 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   col1..----....q
341e0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
341f0 53 45 4c 45 43 54 20 36 31 20 41 53 20 63 6f 6c  SELECT 61 AS col
34200 30 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  0 FROM tab1 WHER
34210 45 20 4e 4f 54 20 2d 20 34 30 20 49 4e 20 28 20  E NOT - 40 IN ( 
34220 37 33 20 2d 20 2b 20 63 6f 6c 32 20 29 0d 0a 2d  73 - + col2 )..-
34230 2d 2d 2d 0d 0a 36 31 0d 0a 36 31 0d 0a 36 31 0d  ---..61..61..61.
34240 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
34250 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61  # CAST syntax: a
34260 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
34270 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
34280 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
34290 6c 61 62 65 6c 2d 31 31 35 35 0d 0a 53 45 4c 45  label-1155..SELE
342a0 43 54 20 35 30 20 2a 20 2d 20 4d 41 58 28 20 41  CT 50 * - MAX( A
342b0 4c 4c 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20  LL + CAST( NULL 
342c0 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2d 20  AS SIGNED ) * - 
342d0 34 36 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  46 ) AS col0 FRO
342e0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab0..----..NU
342f0 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
34300 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
34310 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
34320 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 35 35 0d  sort label-1155.
34330 0a 53 45 4c 45 43 54 20 35 30 20 2a 20 2d 20 4d  .SELECT 50 * - M
34340 41 58 20 28 20 41 4c 4c 20 2b 20 43 41 53 54 20  AX ( ALL + CAST 
34350 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
34360 52 20 29 20 2a 20 2d 20 34 36 20 29 20 41 53 20  R ) * - 46 ) AS 
34370 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
34380 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  ----..NULL....qu
34390 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
343a0 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
343b0 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 63 6f  ab1 WHERE NOT co
343c0 6c 31 20 3c 3d 20 2d 20 63 6f 6c 31 20 2a 20 2d  l1 <= - col1 * -
343d0 20 34 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65   42..----....que
343e0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
343f0 4c 45 43 54 20 63 6f 6c 31 20 46 52 4f 4d 20 74  LECT col1 FROM t
34400 61 62 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 42  ab1 WHERE NULL B
34410 45 54 57 45 45 4e 20 2b 20 63 6f 6c 31 20 2a 20  ETWEEN + col1 * 
34420 34 34 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d  44 AND NULL..---
34430 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
34440 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63  sort..SELECT + c
34450 6f 6c 31 20 2a 20 2b 20 39 36 20 46 52 4f 4d 20  ol1 * + 96 FROM 
34460 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 30 31 36  tab0..----..2016
34470 0d 0a 37 37 37 36 0d 0a 39 36 0d 0a 0d 0a 71 75  ..7776..96....qu
34480 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
34490 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
344a0 61 62 31 20 57 48 45 52 45 20 28 20 63 6f 6c 30  ab1 WHERE ( col0
344b0 20 2a 20 35 36 20 2b 20 2b 20 37 32 20 2f 20 33   * 56 + + 72 / 3
344c0 33 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  3 ) IS NULL..---
344d0 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
344e0 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
344f0 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
34500 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
34510 74 20 6c 61 62 65 6c 2d 31 31 36 30 0d 0a 53 45  t label-1160..SE
34520 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  LECT * FROM tab1
34530 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20   WHERE NOT col1 
34540 2b 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  + - CAST( NULL A
34550 53 20 53 49 47 4e 45 44 20 29 20 49 53 20 4e 55  S SIGNED ) IS NU
34560 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70  LL..----....skip
34570 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
34580 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
34590 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62   III rowsort lab
345a0 65 6c 2d 31 31 36 30 0d 0a 53 45 4c 45 43 54 20  el-1160..SELECT 
345b0 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  * FROM tab1 WHER
345c0 45 20 4e 4f 54 20 63 6f 6c 31 20 2b 20 2d 20 43  E NOT col1 + - C
345d0 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
345e0 54 45 47 45 52 20 29 20 49 53 20 4e 55 4c 4c 0d  TEGER ) IS NULL.
345f0 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
34600 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
34610 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
34620 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
34630 6c 2d 31 31 36 31 0d 0a 53 45 4c 45 43 54 20 44  l-1161..SELECT D
34640 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54 28  ISTINCT + COUNT(
34650 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57   * ) FROM tab1 W
34660 48 45 52 45 20 2d 20 36 34 20 4e 4f 54 20 42 45  HERE - 64 NOT BE
34670 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 37  TWEEN NULL AND 7
34680 32 20 2b 20 31 34 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  2 + 14..----..0.
34690 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
346a0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
346b0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
346c0 74 20 6c 61 62 65 6c 2d 31 31 36 31 0d 0a 53 45  t label-1161..SE
346d0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
346e0 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d  COUNT ( * ) FROM
346f0 20 74 61 62 31 20 57 48 45 52 45 20 2d 20 36 34   tab1 WHERE - 64
34700 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e 55 4c   NOT BETWEEN NUL
34710 4c 20 41 4e 44 20 37 32 20 2b 20 31 34 0d 0a 2d  L AND 72 + 14..-
34720 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20  ---..0....query 
34730 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
34740 54 20 44 49 53 54 49 4e 43 54 20 28 20 63 6f 6c  T DISTINCT ( col
34750 32 20 29 20 2a 20 63 6f 6c 32 20 41 53 20 63 6f  2 ) * col2 AS co
34760 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45  l2 FROM tab2 WHE
34770 52 45 20 4e 4f 54 20 63 6f 6c 31 20 4e 4f 54 20  RE NOT col1 NOT 
34780 49 4e 20 28 20 2b 20 34 36 20 2a 20 2b 20 63 6f  IN ( + 46 * + co
34790 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  l2 )..----....on
347a0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
347b0 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
347c0 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
347d0 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
347e0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
347f0 2d 31 31 36 33 0d 0a 53 45 4c 45 43 54 20 2b 20  -1163..SELECT + 
34800 43 4f 55 4e 54 28 20 44 49 53 54 49 4e 43 54 20  COUNT( DISTINCT 
34810 63 6f 6c 31 20 29 20 2f 20 43 41 53 54 28 20 4e  col1 ) / CAST( N
34820 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
34830 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f  - COUNT( * ) FRO
34840 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab1..----..NU
34850 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
34860 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
34870 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
34880 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 36 33 0d  sort label-1163.
34890 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20  .SELECT + COUNT 
348a0 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20  ( DISTINCT col1 
348b0 29 20 2f 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  ) / CAST ( NULL 
348c0 41 53 20 49 4e 54 45 47 45 52 20 29 20 2d 20 43  AS INTEGER ) - C
348d0 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20  OUNT ( * ) FROM 
348e0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab1..----..NULL
348f0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
34900 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
34910 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
34920 62 31 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  b1 WHERE NOT col
34930 31 20 2b 20 2d 20 63 6f 6c 30 20 49 53 20 4e 55  1 + - col0 IS NU
34940 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  LL..----..9 valu
34950 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36  es hashing to c6
34960 63 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63  c0a4111b36d04dbc
34970 38 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a  811a11e4d54cad..
34980 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
34990 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
349a0 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
349b0 45 20 4e 4f 54 20 2d 20 39 36 20 2b 20 2b 20 63  E NOT - 96 + + c
349c0 6f 6c 32 20 42 45 54 57 45 45 4e 20 28 20 2b 20  ol2 BETWEEN ( + 
349d0 35 20 29 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d  5 ) AND NULL..--
349e0 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
349f0 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35  hing to c4b42765
34a00 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35  dff94eaaa46040e5
34a10 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72  37fb43b7....quer
34a20 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
34a30 45 43 54 20 41 4c 4c 20 37 38 20 2a 20 63 6f 6c  ECT ALL 78 * col
34a40 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  0 AS col0 FROM t
34a50 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 35 38 38 0d  ab2..----..3588.
34a60 0a 34 39 39 32 0d 0a 35 38 35 30 0d 0a 0d 0a 71  .4992..5850....q
34a70 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
34a80 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 34 39 20  SELECT ALL + 49 
34a90 2a 20 35 37 20 46 52 4f 4d 20 74 61 62 31 0d 0a  * 57 FROM tab1..
34aa0 2d 2d 2d 2d 0d 0a 32 37 39 33 0d 0a 32 37 39 33  ----..2793..2793
34ab0 0d 0a 32 37 39 33 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..2793....onlyif
34ac0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
34ad0 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66  te syntax: DIV f
34ae0 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
34af0 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
34b00 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 36  owsort label-116
34b10 38 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28  8..SELECT COUNT(
34b20 20 2a 20 29 20 44 49 56 20 32 37 20 63 6f 6c 31   * ) DIV 27 col1
34b30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
34b40 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
34b50 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
34b60 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
34b70 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
34b80 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
34b90 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
34ba0 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
34bb0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
34bc0 61 62 65 6c 2d 31 31 36 38 0d 0a 53 45 4c 45 43  abel-1168..SELEC
34bd0 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2f 20  T COUNT ( * ) / 
34be0 32 37 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  27 col1 FROM tab
34bf0 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75  1..----..0....qu
34c00 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
34c10 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
34c20 6f 6c 31 20 2a 20 37 31 20 46 52 4f 4d 20 74 61  ol1 * 71 FROM ta
34c30 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 39 31 0d 0a  b0..----..1491..
34c40 35 37 35 31 0d 0a 37 31 0d 0a 0d 0a 71 75 65 72  5751..71....quer
34c50 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
34c60 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a  ELECT DISTINCT *
34c70 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
34c80 20 28 20 63 6f 6c 32 20 2b 20 2d 20 38 38 20 29   ( col2 + - 88 )
34c90 20 3e 3d 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c   >= col1 * + col
34ca0 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  2..----....onlyi
34cb0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
34cc0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
34cd0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
34ce0 62 65 6c 2d 31 31 37 31 0d 0a 53 45 4c 45 43 54  bel-1171..SELECT
34cf0 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d   COUNT( * ) FROM
34d00 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20   tab1 WHERE NOT 
34d10 4e 55 4c 4c 20 3c 3e 20 28 20 63 6f 6c 31 20 29  NULL <> ( col1 )
34d20 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69  ..----..0....ski
34d30 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
34d40 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
34d50 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
34d60 6c 2d 31 31 37 31 0d 0a 53 45 4c 45 43 54 20 43  l-1171..SELECT C
34d70 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20  OUNT ( * ) FROM 
34d80 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 4e  tab1 WHERE NOT N
34d90 55 4c 4c 20 3c 3e 20 28 20 63 6f 6c 31 20 29 0d  ULL <> ( col1 ).
34da0 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72  .----..0....quer
34db0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
34dc0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a  ELECT DISTINCT *
34dd0 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
34de0 20 28 20 63 6f 6c 32 20 2f 20 28 20 2b 20 63 6f   ( col2 / ( + co
34df0 6c 32 20 29 20 29 20 3e 20 63 6f 6c 31 20 2b 20  l2 ) ) > col1 + 
34e00 2b 20 32 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  + 20..----....qu
34e10 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
34e20 45 4c 45 43 54 20 2b 20 34 38 20 2a 20 63 6f 6c  ELECT + 48 * col
34e30 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  2 AS col2 FROM t
34e40 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 38 33 32 0d  ab1..----..2832.
34e50 0a 33 32 36 34 0d 0a 34 36 30 38 0d 0a 0d 0a 6f  .3264..4608....o
34e60 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
34e70 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
34e80 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
34e90 74 20 6c 61 62 65 6c 2d 31 31 37 34 0d 0a 53 45  t label-1174..SE
34ea0 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28 20 41 4c  LECT - COUNT( AL
34eb0 4c 20 63 6f 6c 32 20 29 20 2a 20 2b 20 37 35 20  L col2 ) * + 75 
34ec0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
34ed0 2d 2d 2d 2d 0d 0a 2d 32 32 35 0d 0a 0d 0a 73 6b  ----..-225....sk
34ee0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
34ef0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69   compatible..ski
34f00 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
34f10 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
34f20 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
34f30 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
34f40 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
34f50 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 37 34  wsort label-1174
34f60 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54  ..SELECT - COUNT
34f70 20 28 20 41 4c 4c 20 63 6f 6c 32 20 29 20 2a 20   ( ALL col2 ) * 
34f80 2b 20 37 35 20 63 6f 6c 32 20 46 52 4f 4d 20 74  + 75 col2 FROM t
34f90 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32 35 0d  ab0..----..-225.
34fa0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
34fb0 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 33 37 20  rt..SELECT - 37 
34fc0 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  + - col0 FROM ta
34fd0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 34 0d 0a  b0..----..-124..
34fe0 2d 31 33 34 0d 0a 2d 35 32 0d 0a 0d 0a 6f 6e 6c  -134..-52....onl
34ff0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
35000 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
35010 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
35020 6c 61 62 65 6c 2d 31 31 37 36 0d 0a 53 45 4c 45  label-1176..SELE
35030 43 54 20 2b 20 4d 41 58 28 20 63 6f 6c 30 20 29  CT + MAX( col0 )
35040 20 2a 20 38 38 20 46 52 4f 4d 20 74 61 62 32 0d   * 88 FROM tab2.
35050 0a 2d 2d 2d 2d 0d 0a 36 36 30 30 0d 0a 0d 0a 73  .----..6600....s
35060 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
35070 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
35080 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
35090 62 65 6c 2d 31 31 37 36 0d 0a 53 45 4c 45 43 54  bel-1176..SELECT
350a0 20 2b 20 4d 41 58 20 28 20 63 6f 6c 30 20 29 20   + MAX ( col0 ) 
350b0 2a 20 38 38 20 46 52 4f 4d 20 74 61 62 32 0d 0a  * 88 FROM tab2..
350c0 2d 2d 2d 2d 0d 0a 36 36 30 30 0d 0a 0d 0a 71 75  ----..6600....qu
350d0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
350e0 45 4c 45 43 54 20 41 4c 4c 20 37 34 20 2d 20 34  ELECT ALL 74 - 4
350f0 33 20 2a 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31  3 * col0 AS col1
35100 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
35110 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 36 36 37 0d  r0..----..-3667.
35120 0a 2d 34 30 39 37 0d 0a 2d 35 37 31 0d 0a 0d 0a  .-4097..-571....
35130 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
35140 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2a  .SELECT + col2 *
35150 20 63 6f 6c 30 20 2b 20 63 6f 6c 30 20 41 53 20   col0 + col0 AS 
35160 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
35170 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31  S cor0..----..11
35180 30 34 0d 0a 32 36 32 34 0d 0a 34 34 32 35 0d 0a  04..2624..4425..
35190 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
351a0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
351b0 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  INCT * FROM tab2
351c0 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 63 6f   cor0 WHERE + co
351d0 6c 32 20 2a 20 2d 20 36 39 20 3e 3d 20 36 36 0d  l2 * - 69 >= 66.
351e0 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
351f0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
35200 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 2d 20 2d 20   ALL - col2 - - 
35210 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 32 20 41 53  col1 * + col2 AS
35220 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
35230 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
35240 32 34 38 0d 0a 32 33 36 0d 0a 33 31 32 38 0d 0a  248..236..3128..
35250 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
35260 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
35270 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  INCT * FROM tab0
35280 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
35290 2b 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 32 20  + col0 * - col2 
352a0 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
352b0 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
352c0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
352d0 20 2b 20 32 20 41 53 20 63 6f 6c 30 20 46 52 4f   + 2 AS col0 FRO
352e0 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54  M tab1 WHERE NOT
352f0 20 4e 55 4c 4c 20 49 4e 20 28 20 2d 20 35 35 20   NULL IN ( - 55 
35300 2a 20 2d 20 39 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a  * - 91 )..----..
35310 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
35320 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
35330 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67  x: DIV for integ
35340 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
35350 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
35360 61 62 65 6c 2d 31 31 38 33 0d 0a 53 45 4c 45 43  abel-1183..SELEC
35370 54 20 44 49 53 54 49 4e 43 54 20 37 39 20 44 49  T DISTINCT 79 DI
35380 56 20 28 20 2b 20 4d 49 4e 28 20 63 6f 6c 30 20  V ( + MIN( col0 
35390 29 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ) ) FROM tab0..-
353a0 2d 2d 2d 0d 0a 35 0d 0a 0d 0a 73 6b 69 70 69 66  ---..5....skipif
353b0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
353c0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
353d0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
353e0 31 38 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  183..SELECT DIST
353f0 49 4e 43 54 20 37 39 20 2f 20 28 20 2b 20 4d 49  INCT 79 / ( + MI
35400 4e 20 28 20 63 6f 6c 30 20 29 20 29 20 46 52 4f  N ( col0 ) ) FRO
35410 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 35 0d  M tab0..----..5.
35420 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
35430 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
35440 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
35450 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
35460 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
35470 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
35480 45 43 54 20 2b 20 36 34 20 63 6f 6c 32 20 46 52  ECT + 64 col2 FR
35490 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
354a0 0a 2d 2d 2d 2d 0d 0a 36 34 0d 0a 36 34 0d 0a 36  .----..64..64..6
354b0 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  4....query I row
354c0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
354d0 54 49 4e 43 54 20 2d 20 33 39 20 2a 20 36 30 20  TINCT - 39 * 60 
354e0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
354f0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 34 30 0d 0a  0..----..-2340..
35500 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
35510 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
35520 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
35530 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 38 36 0d  sort label-1186.
35540 0a 53 45 4c 45 43 54 20 2b 20 53 55 4d 28 20 44  .SELECT + SUM( D
35550 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 29 20 46  ISTINCT col1 ) F
35560 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
35570 0d 0a 2d 2d 2d 2d 0d 0a 31 30 33 0d 0a 0d 0a 73  ..----..103....s
35580 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
35590 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
355a0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
355b0 62 65 6c 2d 31 31 38 36 0d 0a 53 45 4c 45 43 54  bel-1186..SELECT
355c0 20 2b 20 53 55 4d 20 28 20 44 49 53 54 49 4e 43   + SUM ( DISTINC
355d0 54 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61  T col1 ) FROM ta
355e0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
355f0 0d 0a 31 30 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..103....onlyif 
35600 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
35610 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73  tax: aggregate s
35620 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
35630 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
35640 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 38 37  wsort label-1187
35650 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55  ..SELECT ALL COU
35660 4e 54 28 20 2a 20 29 20 2d 20 2d 20 43 4f 55 4e  NT( * ) - - COUN
35670 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46  T( * ) AS col2 F
35680 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
35690 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 43 41 53   WHERE NOT + CAS
356a0 54 28 20 36 37 20 41 53 20 53 49 47 4e 45 44 20  T( 67 AS SIGNED 
356b0 29 20 3d 20 28 20 2d 20 34 30 20 29 0d 0a 2d 2d  ) = ( - 40 )..--
356c0 2d 2d 0d 0a 36 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..6....skipif 
356d0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
356e0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
356f0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
35700 38 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43  87..SELECT ALL C
35710 4f 55 4e 54 20 28 20 2a 20 29 20 2d 20 2d 20 43  OUNT ( * ) - - C
35720 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
35730 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
35740 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b  cor0 WHERE NOT +
35750 20 43 41 53 54 20 28 20 36 37 20 41 53 20 49 4e   CAST ( 67 AS IN
35760 54 45 47 45 52 20 29 20 3d 20 28 20 2d 20 34 30  TEGER ) = ( - 40
35770 20 29 0d 0a 2d 2d 2d 2d 0d 0a 36 0d 0a 0d 0a 71   )..----..6....q
35780 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
35790 53 45 4c 45 43 54 20 2b 20 2d 20 31 34 20 2a 20  SELECT + - 14 * 
357a0 2d 20 28 20 2b 20 63 6f 6c 31 20 2a 20 63 6f 6c  - ( + col1 * col
357b0 32 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  2 ) AS col2 FROM
357c0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
357d0 2d 2d 2d 0d 0a 31 36 34 32 32 0d 0a 34 33 31 32  ---..16422..4312
357e0 30 0d 0a 35 34 34 30 34 0d 0a 0d 0a 71 75 65 72  0..54404....quer
357f0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
35800 45 43 54 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20  ECT + col2 FROM 
35810 74 61 62 30 20 63 6f 72 30 20 57 48 45 52 45 20  tab0 cor0 WHERE 
35820 4e 4f 54 20 4e 55 4c 4c 20 3e 3d 20 28 20 4e 55  NOT NULL >= ( NU
35830 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  LL )..----....on
35840 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
35850 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
35860 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
35870 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
35880 31 39 30 0d 0a 53 45 4c 45 43 54 20 2b 20 33 37  190..SELECT + 37
35890 20 44 49 56 20 2d 20 63 6f 6c 32 20 41 53 20 63   DIV - col2 AS c
358a0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
358b0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d   cor0..----..-3.
358c0 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  .0..0....skipif 
358d0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
358e0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
358f0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
35900 39 30 0d 0a 53 45 4c 45 43 54 20 2b 20 33 37 20  90..SELECT + 37 
35910 2f 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31  / - col2 AS col1
35920 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
35930 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 30 0d  r0..----..-3..0.
35940 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .0....onlyif mys
35950 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
35960 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
35970 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
35980 20 6c 61 62 65 6c 2d 31 31 39 31 0d 0a 53 45 4c   label-1191..SEL
35990 45 43 54 20 43 41 53 54 28 20 2d 20 35 31 20 41  ECT CAST( - 51 A
359a0 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f  S SIGNED ) AS co
359b0 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l0 FROM tab2 AS 
359c0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d  cor0..----..-51.
359d0 0a 2d 35 31 0d 0a 2d 35 31 0d 0a 0d 0a 73 6b 69  .-51..-51....ski
359e0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
359f0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
35a00 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
35a10 6c 2d 31 31 39 31 0d 0a 53 45 4c 45 43 54 20 43  l-1191..SELECT C
35a20 41 53 54 20 28 20 2d 20 35 31 20 41 53 20 49 4e  AST ( - 51 AS IN
35a30 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 30 20  TEGER ) AS col0 
35a40 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
35a50 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 2d 35  0..----..-51..-5
35a60 31 0d 0a 2d 35 31 0d 0a 0d 0a 73 6b 69 70 69 66  1..-51....skipif
35a70 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
35a80 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
35a90 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
35aa0 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
35ab0 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
35ac0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
35ad0 20 2b 20 39 36 20 2a 20 2b 20 63 6f 6c 30 20 63   + 96 * + col0 c
35ae0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
35af0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 34   cor0..----..-44
35b00 31 36 0d 0a 2d 36 31 34 34 0d 0a 2d 37 32 30 30  16..-6144..-7200
35b10 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
35b20 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
35b30 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
35b40 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f  0 WHERE NOT + co
35b50 6c 30 20 2b 20 2d 20 63 6f 6c 32 20 3c 3d 20 63  l0 + - col2 <= c
35b60 6f 6c 31 20 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d  ol1 - col2..----
35b70 0d 0a 38 37 0d 0a 32 31 0d 0a 31 30 0d 0a 39 37  ..87..21..10..97
35b80 0d 0a 31 0d 0a 39 39 0d 0a 0d 0a 6f 6e 6c 79 69  ..1..99....onlyi
35b90 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
35ba0 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
35bb0 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
35bc0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 39 34  wsort label-1194
35bd0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43  ..SELECT ALL - C
35be0 41 53 54 28 20 2b 20 63 6f 6c 31 20 41 53 20 53  AST( + col1 AS S
35bf0 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 31 20  IGNED ) AS col1 
35c00 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57  FROM tab0 cor0 W
35c10 48 45 52 45 20 4e 55 4c 4c 20 49 4e 20 28 20 2b  HERE NULL IN ( +
35c20 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   col1 )..----...
35c30 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
35c40 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
35c50 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
35c60 6c 61 62 65 6c 2d 31 31 39 34 0d 0a 53 45 4c 45  label-1194..SELE
35c70 43 54 20 41 4c 4c 20 2d 20 43 41 53 54 20 28 20  CT ALL - CAST ( 
35c80 2b 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45  + col1 AS INTEGE
35c90 52 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  R ) AS col1 FROM
35ca0 20 74 61 62 30 20 63 6f 72 30 20 57 48 45 52 45   tab0 cor0 WHERE
35cb0 20 4e 55 4c 4c 20 49 4e 20 28 20 2b 20 63 6f 6c   NULL IN ( + col
35cc0 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  1 )..----....que
35cd0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
35ce0 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 46 52  LECT ALL col0 FR
35cf0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
35d00 57 48 45 52 45 20 2d 20 63 6f 6c 31 20 2a 20 2b  WHERE - col1 * +
35d10 20 63 6f 6c 32 20 42 45 54 57 45 45 4e 20 2d 20   col2 BETWEEN - 
35d20 33 32 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d  32 AND NULL..---
35d30 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
35d40 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
35d50 20 39 38 20 2a 20 2b 20 63 6f 6c 31 20 41 53 20   98 * + col1 AS 
35d60 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41  col2 FROM tab1 A
35d70 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c  S cor0 WHERE NUL
35d80 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  L IS NOT NULL..-
35d90 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
35da0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
35db0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
35dc0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
35dd0 74 20 6c 61 62 65 6c 2d 31 31 39 37 0d 0a 53 45  t label-1197..SE
35de0 4c 45 43 54 20 41 4c 4c 20 2b 20 43 41 53 54 28  LECT ALL + CAST(
35df0 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
35e00 29 20 2f 20 38 35 20 46 52 4f 4d 20 74 61 62 31  ) / 85 FROM tab1
35e10 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
35e20 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  LL..NULL....skip
35e30 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
35e40 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
35e50 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
35e60 2d 31 31 39 37 0d 0a 53 45 4c 45 43 54 20 41 4c  -1197..SELECT AL
35e70 4c 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  L + CAST ( NULL 
35e80 41 53 20 49 4e 54 45 47 45 52 20 29 20 2f 20 38  AS INTEGER ) / 8
35e90 35 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  5 FROM tab1..---
35ea0 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
35eb0 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ULL....query III
35ec0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
35ed0 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45   * FROM tab1 WHE
35ee0 52 45 20 4e 4f 54 20 28 20 2d 20 63 6f 6c 30 20  RE NOT ( - col0 
35ef0 29 20 42 45 54 57 45 45 4e 20 2d 20 28 20 63 6f  ) BETWEEN - ( co
35f00 6c 30 20 29 20 41 4e 44 20 37 30 0d 0a 2d 2d 2d  l0 ) AND 70..---
35f10 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
35f20 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
35f30 54 49 4e 43 54 20 63 6f 6c 31 20 2a 20 2b 20 63  TINCT col1 * + c
35f40 6f 6c 30 20 2a 20 2d 20 35 31 20 46 52 4f 4d 20  ol0 * - 51 FROM 
35f50 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 36  tab1..----..-216
35f60 37 35 0d 0a 2d 32 31 38 31 32 37 0d 0a 2d 33 36  75..-218127..-36
35f70 34 31 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  414....query I r
35f80 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
35f90 20 37 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45   7 FROM tab1 WHE
35fa0 52 45 20 4e 4f 54 20 37 30 20 49 53 20 4e 55 4c  RE NOT 70 IS NUL
35fb0 4c 0d 0a 2d 2d 2d 2d 0d 0a 37 0d 0a 37 0d 0a 37  L..----..7..7..7
35fc0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
35fd0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
35fe0 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46  - col1 AS col1 F
35ff0 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 28  ROM tab2 WHERE (
36000 20 4e 55 4c 4c 20 29 20 3e 3d 20 63 6f 6c 32 20   NULL ) >= col2 
36010 2f 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a  / + col0..----..
36020 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
36030 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
36040 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
36050 54 20 28 20 4e 55 4c 4c 20 29 20 4e 4f 54 20 49  T ( NULL ) NOT I
36060 4e 20 28 20 63 6f 6c 31 20 2a 20 2d 20 31 33 20  N ( col1 * - 13 
36070 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  )..----....onlyi
36080 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
36090 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
360a0 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20  pe: ..query III 
360b0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
360c0 30 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  03..SELECT DISTI
360d0 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  NCT * FROM tab1 
360e0 57 48 45 52 45 20 28 20 63 6f 6c 31 20 2a 20 43  WHERE ( col1 * C
360f0 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
36100 4e 45 44 20 29 20 29 20 3c 3d 20 2d 20 33 36 0d  NED ) ) <= - 36.
36110 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
36120 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
36130 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
36140 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
36150 31 32 30 33 0d 0a 53 45 4c 45 43 54 20 44 49 53  1203..SELECT DIS
36160 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
36170 31 20 57 48 45 52 45 20 28 20 63 6f 6c 31 20 2a  1 WHERE ( col1 *
36180 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
36190 49 4e 54 45 47 45 52 20 29 20 29 20 3c 3d 20 2d  INTEGER ) ) <= -
361a0 20 33 36 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c   36..----....onl
361b0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
361c0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
361d0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
361e0 6c 61 62 65 6c 2d 31 32 30 34 0d 0a 53 45 4c 45  label-1204..SELE
361f0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 4d 49  CT DISTINCT + MI
36200 4e 28 20 41 4c 4c 20 2d 20 2d 20 38 34 20 29 20  N( ALL - - 84 ) 
36210 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
36220 0a 38 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .84....skipif my
36230 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
36240 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
36250 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 30 34  wsort label-1204
36260 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
36270 54 20 2b 20 4d 49 4e 20 28 20 41 4c 4c 20 2d 20  T + MIN ( ALL - 
36280 2d 20 38 34 20 29 20 46 52 4f 4d 20 74 61 62 30  - 84 ) FROM tab0
36290 0d 0a 2d 2d 2d 2d 0d 0a 38 34 0d 0a 0d 0a 73 6b  ..----..84....sk
362a0 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
362b0 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
362c0 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
362d0 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
362e0 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
362f0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 28  owsort..SELECT (
36300 20 2b 20 28 20 63 6f 6c 31 20 29 20 29 20 2a 20   + ( col1 ) ) * 
36310 63 6f 6c 30 20 63 6f 6c 31 20 46 52 4f 4d 20 74  col0 col1 FROM t
36320 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 34 32 35 0d 0a  ab1..----..425..
36330 34 32 37 37 0d 0a 37 31 34 0d 0a 0d 0a 71 75 65  4277..714....que
36340 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
36350 4c 45 43 54 20 2d 20 36 35 20 2a 20 37 32 20 46  LECT - 65 * 72 F
36360 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
36370 2d 34 36 38 30 0d 0a 2d 34 36 38 30 0d 0a 2d 34  -4680..-4680..-4
36380 36 38 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  680....onlyif my
36390 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
363a0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
363b0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
363c0 31 32 30 37 0d 0a 53 45 4c 45 43 54 20 2b 20 4d  1207..SELECT + M
363d0 41 58 28 20 41 4c 4c 20 2b 20 34 31 20 29 20 46  AX( ALL + 41 ) F
363e0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
363f0 0d 0a 2d 2d 2d 2d 0d 0a 34 31 0d 0a 0d 0a 73 6b  ..----..41....sk
36400 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
36410 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
36420 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
36430 65 6c 2d 31 32 30 37 0d 0a 53 45 4c 45 43 54 20  el-1207..SELECT 
36440 2b 20 4d 41 58 20 28 20 41 4c 4c 20 2b 20 34 31  + MAX ( ALL + 41
36450 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
36460 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 31 0d 0a  cor0..----..41..
36470 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
36480 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
36490 43 54 20 2b 20 2d 20 36 35 20 41 53 20 63 6f 6c  CT + - 65 AS col
364a0 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
364b0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 35 0d 0a  or0..----..-65..
364c0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
364d0 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
364e0 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
364f0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
36500 65 6c 2d 31 32 30 39 0d 0a 53 45 4c 45 43 54 20  el-1209..SELECT 
36510 44 49 53 54 49 4e 43 54 20 2b 20 28 20 43 41 53  DISTINCT + ( CAS
36520 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
36530 44 20 29 20 29 20 46 52 4f 4d 20 28 20 74 61 62  D ) ) FROM ( tab
36540 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  2 AS cor0 CROSS 
36550 4a 4f 49 4e 20 74 61 62 31 20 41 53 20 63 6f 72  JOIN tab1 AS cor
36560 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  1 )..----..NULL.
36570 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
36580 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
36590 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
365a0 74 20 6c 61 62 65 6c 2d 31 32 30 39 0d 0a 53 45  t label-1209..SE
365b0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
365c0 28 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  ( CAST ( NULL AS
365d0 20 49 4e 54 45 47 45 52 20 29 20 29 20 46 52 4f   INTEGER ) ) FRO
365e0 4d 20 28 20 74 61 62 32 20 41 53 20 63 6f 72 30  M ( tab2 AS cor0
365f0 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31   CROSS JOIN tab1
36600 20 41 53 20 63 6f 72 31 20 29 0d 0a 2d 2d 2d 2d   AS cor1 )..----
36610 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..NULL....onlyif
36620 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
36630 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
36640 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
36650 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 31 30 0d  sort label-1210.
36660 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f  .SELECT ALL + co
36670 6c 30 20 2b 20 2b 20 2d 20 43 41 53 54 28 20 2b  l0 + + - CAST( +
36680 20 63 6f 6c 30 20 41 53 20 53 49 47 4e 45 44 20   col0 AS SIGNED 
36690 29 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  ) + CAST( NULL A
366a0 53 20 53 49 47 4e 45 44 20 29 20 2f 20 35 30 20  S SIGNED ) / 50 
366b0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
366c0 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
366d0 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
366e0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
366f0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
36700 6f 72 74 20 6c 61 62 65 6c 2d 31 32 31 30 0d 0a  ort label-1210..
36710 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c  SELECT ALL + col
36720 30 20 2b 20 2b 20 2d 20 43 41 53 54 20 28 20 2b  0 + + - CAST ( +
36730 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45 52   col0 AS INTEGER
36740 20 29 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c   ) + CAST ( NULL
36750 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2f 20   AS INTEGER ) / 
36760 35 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  50 FROM tab2..--
36770 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
36780 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  NULL....onlyif m
36790 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
367a0 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
367b0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
367c0 72 74 20 6c 61 62 65 6c 2d 31 32 31 31 0d 0a 53  rt label-1211..S
367d0 45 4c 45 43 54 20 2d 20 35 31 20 44 49 56 20 63  ELECT - 51 DIV c
367e0 6f 6c 30 20 2b 20 2b 20 2d 20 39 33 20 46 52 4f  ol0 + + - 93 FRO
367f0 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 39  M tab1..----..-9
36800 33 0d 0a 2d 39 33 0d 0a 2d 39 34 0d 0a 0d 0a 73  3..-93..-94....s
36810 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
36820 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
36830 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
36840 62 65 6c 2d 31 32 31 31 0d 0a 53 45 4c 45 43 54  bel-1211..SELECT
36850 20 2d 20 35 31 20 2f 20 63 6f 6c 30 20 2b 20 2b   - 51 / col0 + +
36860 20 2d 20 39 33 20 46 52 4f 4d 20 74 61 62 31 0d   - 93 FROM tab1.
36870 0a 2d 2d 2d 2d 0d 0a 2d 39 33 0d 0a 2d 39 33 0d  .----..-93..-93.
36880 0a 2d 39 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-94....onlyif m
36890 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
368a0 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72   syntax: DIV for
368b0 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
368c0 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
368d0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 31 32 0d  sort label-1212.
368e0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 31 20  .SELECT ALL - 1 
368f0 44 49 56 20 2b 20 37 38 20 2d 20 2b 20 43 4f 55  DIV + 78 - + COU
36900 4e 54 28 20 2a 20 29 20 44 49 56 20 43 4f 55 4e  NT( * ) DIV COUN
36910 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46  T( * ) AS col2 F
36920 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
36930 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 73 6b  ..----..-1....sk
36940 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
36950 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
36960 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
36970 65 6c 2d 31 32 31 32 0d 0a 53 45 4c 45 43 54 20  el-1212..SELECT 
36980 41 4c 4c 20 2d 20 31 20 2f 20 2b 20 37 38 20 2d  ALL - 1 / + 78 -
36990 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2f   + COUNT ( * ) /
369a0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
369b0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
369c0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
369d0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
369e0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
369f0 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74  tax: DIV for int
36a00 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
36a10 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
36a20 20 6c 61 62 65 6c 2d 31 32 31 33 0d 0a 53 45 4c   label-1213..SEL
36a30 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  ECT + COUNT( * )
36a40 20 44 49 56 20 37 36 20 46 52 4f 4d 20 74 61 62   DIV 76 FROM tab
36a50 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
36a60 33 20 2a 20 63 6f 6c 30 20 3c 20 28 20 2b 20 34  3 * col0 < ( + 4
36a70 36 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  6 )..----..0....
36a80 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
36a90 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
36aa0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
36ab0 61 62 65 6c 2d 31 32 31 33 0d 0a 53 45 4c 45 43  abel-1213..SELEC
36ac0 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  T + COUNT ( * ) 
36ad0 2f 20 37 36 20 46 52 4f 4d 20 74 61 62 32 20 41  / 76 FROM tab2 A
36ae0 53 20 63 6f 72 30 20 57 48 45 52 45 20 33 20 2a  S cor0 WHERE 3 *
36af0 20 63 6f 6c 30 20 3c 20 28 20 2b 20 34 36 20 29   col0 < ( + 46 )
36b00 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65  ..----..0....que
36b10 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
36b20 4c 45 43 54 20 2b 20 2b 20 63 6f 6c 30 20 2b 20  LECT + + col0 + 
36b30 2b 20 2b 20 63 6f 6c 32 20 2b 20 63 6f 6c 32 20  + + col2 + col2 
36b40 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46  - col1 AS col0 F
36b50 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
36b60 0d 0a 2d 2d 2d 2d 0d 0a 31 38 30 0d 0a 31 39 38  ..----..180..198
36b70 0d 0a 32 32 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..229....onlyif 
36b80 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
36b90 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
36ba0 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
36bb0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 31 35 0d  sort label-1215.
36bc0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f  .SELECT ALL - co
36bd0 6c 30 20 41 53 20 63 6f 6c 31 2c 20 43 41 53 54  l0 AS col1, CAST
36be0 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
36bf0 20 29 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72   ) FROM tab2 cor
36c00 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a 4e 55  0..----..-46..NU
36c10 4c 4c 0d 0a 2d 36 34 0d 0a 4e 55 4c 4c 0d 0a 2d  LL..-64..NULL..-
36c20 37 35 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  75..NULL....skip
36c30 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
36c40 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
36c50 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
36c60 6c 2d 31 32 31 35 0d 0a 53 45 4c 45 43 54 20 41  l-1215..SELECT A
36c70 4c 4c 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c  LL - col0 AS col
36c80 31 2c 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41  1, CAST ( NULL A
36c90 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d  S INTEGER ) FROM
36ca0 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
36cb0 0d 0a 2d 34 36 0d 0a 4e 55 4c 4c 0d 0a 2d 36 34  ..-46..NULL..-64
36cc0 0d 0a 4e 55 4c 4c 0d 0a 2d 37 35 0d 0a 4e 55 4c  ..NULL..-75..NUL
36cd0 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  L....query I row
36ce0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
36cf0 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
36d00 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 42  or0 WHERE NULL B
36d10 45 54 57 45 45 4e 20 2b 20 28 20 2b 20 63 6f 6c  ETWEEN + ( + col
36d20 30 20 29 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d  0 ) AND NULL..--
36d30 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  --....query III 
36d40 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
36d50 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ALL * FROM tab0 
36d60 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
36d70 54 20 2b 20 63 6f 6c 32 20 2f 20 2d 20 31 35 20  T + col2 / - 15 
36d80 2b 20 63 6f 6c 31 20 42 45 54 57 45 45 4e 20 28  + col1 BETWEEN (
36d90 20 32 20 2a 20 35 39 20 29 20 41 4e 44 20 4e 55   2 * 59 ) AND NU
36da0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  LL..----..9 valu
36db0 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34  es hashing to c4
36dc0 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34  b42765dff94eaaa4
36dd0 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a  6040e537fb43b7..
36de0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
36df0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28 20  t..SELECT ALL ( 
36e00 28 20 2d 20 2d 20 36 36 20 29 20 29 20 41 53 20  ( - - 66 ) ) AS 
36e10 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
36e20 2d 2d 2d 2d 0d 0a 36 36 0d 0a 36 36 0d 0a 36 36  ----..66..66..66
36e30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
36e40 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31  ort..SELECT col1
36e50 20 2a 20 2b 20 2b 20 31 32 20 46 52 4f 4d 20 74   * + + 12 FROM t
36e60 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 36 31 32 0d 0a  ab2..----..612..
36e70 38 30 34 0d 0a 39 32 34 0d 0a 0d 0a 71 75 65 72  804..924....quer
36e80 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
36e90 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63  ECT DISTINCT - c
36ea0 6f 6c 31 20 2a 20 38 33 20 2a 20 2b 20 63 6f 6c  ol1 * 83 * + col
36eb0 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  0 AS col2 FROM t
36ec0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 34 37  ab2..----..-1947
36ed0 31 38 0d 0a 2d 34 30 39 30 32 34 0d 0a 2d 34 31  18..-409024..-41
36ee0 37 30 37 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  7075....onlyif m
36ef0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
36f00 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79  ax: aggregate sy
36f10 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
36f20 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
36f30 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 32 31 0d  sort label-1221.
36f40 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54 28 20  .SELECT + CAST( 
36f50 2b 20 53 55 4d 28 20 44 49 53 54 49 4e 43 54 20  + SUM( DISTINCT 
36f60 63 6f 6c 32 20 29 20 41 53 20 53 49 47 4e 45 44  col2 ) AS SIGNED
36f70 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d   ) FROM tab1..--
36f80 2d 2d 0d 0a 32 32 33 0d 0a 0d 0a 73 6b 69 70 69  --..223....skipi
36f90 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
36fa0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
36fb0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
36fc0 31 32 32 31 0d 0a 53 45 4c 45 43 54 20 2b 20 43  1221..SELECT + C
36fd0 41 53 54 20 28 20 2b 20 53 55 4d 20 28 20 44 49  AST ( + SUM ( DI
36fe0 53 54 49 4e 43 54 20 63 6f 6c 32 20 29 20 41 53  STINCT col2 ) AS
36ff0 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20   INTEGER ) FROM 
37000 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 32 33 0d  tab1..----..223.
37010 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
37020 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 34  rt..SELECT ALL 4
37030 38 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  8 AS col0 FROM t
37040 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 28 20  ab2 WHERE NOT ( 
37050 4e 55 4c 4c 20 29 20 49 53 20 4e 55 4c 4c 0d 0a  NULL ) IS NULL..
37060 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
37070 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
37080 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48  T * FROM tab1 WH
37090 45 52 45 20 32 33 20 4e 4f 54 20 49 4e 20 28 20  ERE 23 NOT IN ( 
370a0 2b 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c  + - col1 + + col
370b0 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  0 )..----..9 val
370c0 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
370d0 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64 62  6c0a4111b36d04db
370e0 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64 0d  c811a11e4d54cad.
370f0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
37100 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 31  rt..SELECT + + 1
37110 30 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  0 FROM tab0 WHER
37120 45 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55  E NULL IS NOT NU
37130 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  LL..----....only
37140 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
37150 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
37160 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
37170 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 32  owsort label-122
37180 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f  5..SELECT ALL co
37190 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l0 AS col0 FROM 
371a0 74 61 62 30 20 57 48 45 52 45 20 2d 20 63 6f 6c  tab0 WHERE - col
371b0 32 20 3d 20 43 41 53 54 28 20 2d 20 63 6f 6c 32  2 = CAST( - col2
371c0 20 41 53 20 53 49 47 4e 45 44 20 29 0d 0a 2d 2d   AS SIGNED )..--
371d0 2d 2d 0d 0a 31 35 0d 0a 38 37 0d 0a 39 37 0d 0a  --..15..87..97..
371e0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
371f0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
37200 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
37210 20 6c 61 62 65 6c 2d 31 32 32 35 0d 0a 53 45 4c   label-1225..SEL
37220 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 41 53 20  ECT ALL col0 AS 
37230 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 57  col0 FROM tab0 W
37240 48 45 52 45 20 2d 20 63 6f 6c 32 20 3d 20 43 41  HERE - col2 = CA
37250 53 54 20 28 20 2d 20 63 6f 6c 32 20 41 53 20 49  ST ( - col2 AS I
37260 4e 54 45 47 45 52 20 29 0d 0a 2d 2d 2d 2d 0d 0a  NTEGER )..----..
37270 31 35 0d 0a 38 37 0d 0a 39 37 0d 0a 0d 0a 6f 6e  15..87..97....on
37280 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
37290 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
372a0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
372b0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
372c0 32 32 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  226..SELECT ALL 
372d0 2d 20 63 6f 6c 31 20 2b 20 2b 20 2d 20 43 41 53  - col1 + + - CAS
372e0 54 28 20 2d 20 2d 20 28 20 2d 20 31 30 20 29 20  T( - - ( - 10 ) 
372f0 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d  AS SIGNED ) FROM
37300 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31   tab0..----..-11
37310 0d 0a 2d 37 31 0d 0a 39 0d 0a 0d 0a 73 6b 69 70  ..-71..9....skip
37320 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
37330 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
37340 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
37350 2d 31 32 32 36 0d 0a 53 45 4c 45 43 54 20 41 4c  -1226..SELECT AL
37360 4c 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 2d 20 43  L - col1 + + - C
37370 41 53 54 20 28 20 2d 20 2d 20 28 20 2d 20 31 30  AST ( - - ( - 10
37380 20 29 20 41 53 20 49 4e 54 45 47 45 52 20 29 20   ) AS INTEGER ) 
37390 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
373a0 0a 2d 31 31 0d 0a 2d 37 31 0d 0a 39 0d 0a 0d 0a  .-11..-71..9....
373b0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
373c0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
373d0 20 63 6f 6c 31 20 2b 20 2b 20 2b 20 63 6f 6c 32   col1 + + + col2
373e0 20 2a 20 63 6f 6c 30 20 2b 20 32 36 20 41 53 20   * col0 + 26 AS 
373f0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col2 FROM tab1..
37400 2d 2d 2d 2d 0d 0a 34 39 33 36 0d 0a 35 30 34 36  ----..4936..5046
37410 0d 0a 36 32 36 31 0d 0a 0d 0a 71 75 65 72 79 20  ..6261....query 
37420 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
37430 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ECT * FROM tab2 
37440 57 48 45 52 45 20 2b 20 2b 20 28 20 2d 20 63 6f  WHERE + + ( - co
37450 6c 31 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  l1 ) IS NULL..--
37460 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
37470 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
37480 4c 20 63 6f 6c 30 20 2a 20 2b 20 2b 20 38 20 2b  L col0 * + + 8 +
37490 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20   - col1 AS col2 
374a0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
374b0 0a 33 39 0d 0a 36 37 35 0d 0a 37 37 35 0d 0a 0d  .39..675..775...
374c0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
374d0 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
374e0 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
374f0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
37500 6c 2d 31 32 33 30 0d 0a 53 45 4c 45 43 54 20 44  l-1230..SELECT D
37510 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20 46  ISTINCT + col2 F
37520 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
37530 20 57 48 45 52 45 20 63 6f 6c 32 20 2b 20 2d 20   WHERE col2 + - 
37540 2d 20 37 20 3e 3d 20 2b 20 2b 20 43 41 53 54 28  - 7 >= + + CAST(
37550 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
37560 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  )..----....skipi
37570 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
37580 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
37590 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
375a0 31 32 33 30 0d 0a 53 45 4c 45 43 54 20 44 49 53  1230..SELECT DIS
375b0 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20 46 52 4f  TINCT + col2 FRO
375c0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
375d0 48 45 52 45 20 63 6f 6c 32 20 2b 20 2d 20 2d 20  HERE col2 + - - 
375e0 37 20 3e 3d 20 2b 20 2b 20 43 41 53 54 20 28 20  7 >= + + CAST ( 
375f0 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
37600 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  )..----....onlyi
37610 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
37620 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
37630 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
37640 62 65 6c 2d 31 32 33 31 0d 0a 53 45 4c 45 43 54  bel-1231..SELECT
37650 20 44 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e   DISTINCT + COUN
37660 54 28 20 2b 20 63 6f 6c 31 20 29 20 2b 20 43 4f  T( + col1 ) + CO
37670 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 32  UNT( * ) AS col2
37680 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
37690 72 30 20 57 48 45 52 45 20 2d 20 39 38 20 2b 20  r0 WHERE - 98 + 
376a0 2b 20 28 20 2b 20 2b 20 34 33 20 29 20 2a 20 38  + ( + + 43 ) * 8
376b0 35 20 49 4e 20 28 20 2b 20 63 6f 6c 30 20 2a 20  5 IN ( + col0 * 
376c0 31 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  10 )..----..0...
376d0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
376e0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
376f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
37700 6c 61 62 65 6c 2d 31 32 33 31 0d 0a 53 45 4c 45  label-1231..SELE
37710 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 4f  CT DISTINCT + CO
37720 55 4e 54 20 28 20 2b 20 63 6f 6c 31 20 29 20 2b  UNT ( + col1 ) +
37730 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
37740 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41  col2 FROM tab1 A
37750 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20 39  S cor0 WHERE - 9
37760 38 20 2b 20 2b 20 28 20 2b 20 2b 20 34 33 20 29  8 + + ( + + 43 )
37770 20 2a 20 38 35 20 49 4e 20 28 20 2b 20 63 6f 6c   * 85 IN ( + col
37780 30 20 2a 20 31 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a  0 * 10 )..----..
37790 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  0....query III r
377a0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
377b0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
377c0 72 30 20 57 48 45 52 45 20 28 20 63 6f 6c 31 20  r0 WHERE ( col1 
377d0 29 20 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  ) = NULL..----..
377e0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
377f0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
37800 34 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  4 FROM tab0 AS c
37810 6f 72 30 20 57 48 45 52 45 20 2b 20 63 6f 6c 31  or0 WHERE + col1
37820 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
37830 2d 2d 0d 0a 2d 34 0d 0a 2d 34 0d 0a 2d 34 0d 0a  --..-4..-4..-4..
37840 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
37850 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
37860 38 33 20 2a 20 2b 20 2b 20 36 34 20 2b 20 2b 20  83 * + + 64 + + 
37870 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
37880 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 33  S cor0..----..53
37890 35 38 0d 0a 35 33 37 36 0d 0a 35 33 38 37 0d 0a  58..5376..5387..
378a0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
378b0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
378c0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
378d0 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 32  WHERE NOT - col2
378e0 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e 55 4c   NOT BETWEEN NUL
378f0 4c 20 41 4e 44 20 2b 20 2d 20 63 6f 6c 30 20 2b  L AND + - col0 +
37900 20 2d 20 37 39 20 2a 20 63 6f 6c 31 0d 0a 2d 2d   - 79 * col1..--
37910 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  --....query III 
37920 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
37930 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  * FROM tab0 AS c
37940 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  or0 WHERE NOT + 
37950 39 33 20 2a 20 2d 20 2b 20 63 6f 6c 30 20 2f 20  93 * - + col0 / 
37960 2d 20 2b 20 63 6f 6c 30 20 2d 20 2d 20 28 20 63  - + col0 - - ( c
37970 6f 6c 30 20 29 20 4e 4f 54 20 42 45 54 57 45 45  ol0 ) NOT BETWEE
37980 4e 20 2d 20 63 6f 6c 30 20 41 4e 44 20 28 20 2b  N - col0 AND ( +
37990 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   col2 )..----...
379a0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
379b0 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2a 20  ..SELECT col0 * 
379c0 2b 20 2b 20 37 31 20 2a 20 35 33 20 46 52 4f 4d  + + 71 * 53 FROM
379d0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 37 33   tab2..----..173
379e0 30 39 38 0d 0a 32 34 30 38 33 32 0d 0a 32 38 32  098..240832..282
379f0 32 32 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  225....onlyif my
37a00 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
37a10 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
37a20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
37a30 74 20 6c 61 62 65 6c 2d 31 32 33 38 0d 0a 53 45  t label-1238..SE
37a40 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
37a50 2b 20 63 6f 6c 31 20 2a 20 63 6f 6c 32 20 44 49  + col1 * col2 DI
37a60 56 20 2b 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f  V + + col1 AS co
37a70 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
37a80 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d  cor0..----..-10.
37a90 0a 2d 34 37 0d 0a 2d 39 39 0d 0a 0d 0a 73 6b 69  .-47..-99....ski
37aa0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
37ab0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
37ac0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
37ad0 6c 2d 31 32 33 38 0d 0a 53 45 4c 45 43 54 20 44  l-1238..SELECT D
37ae0 49 53 54 49 4e 43 54 20 2d 20 2b 20 63 6f 6c 31  ISTINCT - + col1
37af0 20 2a 20 63 6f 6c 32 20 2f 20 2b 20 2b 20 63 6f   * col2 / + + co
37b00 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l1 AS col0 FROM 
37b10 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
37b20 2d 2d 0d 0a 2d 31 30 0d 0a 2d 34 37 0d 0a 2d 39  --..-10..-47..-9
37b30 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  9....onlyif mysq
37b40 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
37b50 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
37b60 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
37b70 33 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  39..SELECT ALL -
37b80 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 36 39   COUNT( * ) * 69
37b90 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
37ba0 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 4e  r0 WHERE NULL IN
37bb0 20 28 20 37 30 20 2f 20 34 32 20 2a 20 2d 20 63   ( 70 / 42 * - c
37bc0 6f 6c 30 20 2f 20 63 6f 6c 31 20 2a 20 63 6f 6c  ol0 / col1 * col
37bd0 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  2 )..----..0....
37be0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
37bf0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
37c00 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
37c10 61 62 65 6c 2d 31 32 33 39 0d 0a 53 45 4c 45 43  abel-1239..SELEC
37c20 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 20 28 20  T ALL - COUNT ( 
37c30 2a 20 29 20 2a 20 36 39 20 46 52 4f 4d 20 74 61  * ) * 69 FROM ta
37c40 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
37c50 20 4e 55 4c 4c 20 49 4e 20 28 20 37 30 20 2f 20   NULL IN ( 70 / 
37c60 34 32 20 2a 20 2d 20 63 6f 6c 30 20 2f 20 63 6f  42 * - col0 / co
37c70 6c 31 20 2a 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d  l1 * col2 )..---
37c80 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -..0....query I 
37c90 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
37ca0 41 4c 4c 20 2b 20 38 38 20 2a 20 2d 20 33 38 20  ALL + 88 * - 38 
37cb0 2a 20 63 6f 6c 30 20 2b 20 63 6f 6c 31 20 46 52  * col0 + col1 FR
37cc0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
37cd0 0a 2d 2d 2d 2d 0d 0a 2d 31 37 30 35 33 30 0d 0a  .----..-170530..
37ce0 2d 32 38 34 32 33 35 0d 0a 2d 33 30 34 32 35 37  -284235..-304257
37cf0 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
37d00 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
37d10 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
37d20 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
37d30 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
37d40 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
37d50 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
37d60 6c 30 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  l0 col2 FROM tab
37d70 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
37d80 2d 20 33 37 20 2a 20 2d 20 63 6f 6c 32 20 3c 20  - 37 * - col2 < 
37d90 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  col2..----....qu
37da0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
37db0 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 32 35  ELECT ALL - - 25
37dc0 20 2a 20 2b 20 36 36 20 41 53 20 63 6f 6c 31 20   * + 66 AS col1 
37dd0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
37de0 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 35 30 0d 0a 31  0..----..1650..1
37df0 36 35 30 0d 0a 31 36 35 30 0d 0a 0d 0a 6f 6e 6c  650..1650....onl
37e00 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
37e10 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
37e20 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
37e30 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
37e40 34 33 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  43..SELECT - col
37e50 31 20 44 49 56 20 2b 20 37 32 20 41 53 20 63 6f  1 DIV + 72 AS co
37e60 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l2 FROM tab0 cor
37e70 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 30 0d 0a  0..----..-1..0..
37e80 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
37e90 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
37ea0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
37eb0 6f 72 74 20 6c 61 62 65 6c 2d 31 32 34 33 0d 0a  ort label-1243..
37ec0 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2f 20  SELECT - col1 / 
37ed0 2b 20 37 32 20 41 53 20 63 6f 6c 32 20 46 52 4f  + 72 AS col2 FRO
37ee0 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
37ef0 2d 0d 0a 2d 31 0d 0a 30 0d 0a 30 0d 0a 0d 0a 71  -..-1..0..0....q
37f00 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
37f10 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 41 53 20  .SELECT col2 AS 
37f20 63 6f 6c 31 2c 20 2d 20 33 37 20 2b 20 2b 20 28  col1, - 37 + + (
37f30 20 2b 20 2d 20 35 34 20 29 20 41 53 20 63 6f 6c   + - 54 ) AS col
37f40 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
37f50 2d 0d 0a 32 33 0d 0a 2d 39 31 0d 0a 34 30 0d 0a  -..23..-91..40..
37f60 2d 39 31 0d 0a 35 38 0d 0a 2d 39 31 0d 0a 0d 0a  -91..58..-91....
37f70 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
37f80 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
37f90 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 32 20 2a   col1 + - col2 *
37fa0 20 34 38 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d   48 FROM tab1..-
37fb0 2d 2d 2d 0d 0a 2d 32 38 32 37 0d 0a 2d 33 32 31  ---..-2827..-321
37fc0 37 0d 0a 2d 34 35 39 34 0d 0a 0d 0a 71 75 65 72  7..-4594....quer
37fd0 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
37fe0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
37ff0 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 32 20 41 53  col1 + + col2 AS
38000 20 63 6f 6c 30 2c 20 2b 20 28 20 2b 20 2b 20 63   col0, + ( + + c
38010 6f 6c 31 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ol1 ) AS col2 FR
38020 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
38030 30 30 0d 0a 31 0d 0a 31 32 38 0d 0a 38 31 0d 0a  00..1..128..81..
38040 33 31 0d 0a 32 31 0d 0a 0d 0a 6f 6e 6c 79 69 66  31..21....onlyif
38050 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
38060 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
38070 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
38080 65 6c 2d 31 32 34 37 0d 0a 53 45 4c 45 43 54 20  el-1247..SELECT 
38090 44 49 53 54 49 4e 43 54 20 2b 20 37 39 20 2a 20  DISTINCT + 79 * 
380a0 2d 20 33 35 20 2b 20 2b 20 43 4f 55 4e 54 28 20  - 35 + + COUNT( 
380b0 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57 48  * ) FROM tab1 WH
380c0 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20  ERE NOT NULL IS 
380d0 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
380e0 2d 32 37 36 32 0d 0a 0d 0a 73 6b 69 70 69 66 20  -2762....skipif 
380f0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
38100 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
38110 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
38120 34 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  47..SELECT DISTI
38130 4e 43 54 20 2b 20 37 39 20 2a 20 2d 20 33 35 20  NCT + 79 * - 35 
38140 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  + + COUNT ( * ) 
38150 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
38160 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20  NOT NULL IS NOT 
38170 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 37 36  NULL..----..-276
38180 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  2....onlyif mysq
38190 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
381a0 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
381b0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
381c0 20 6c 61 62 65 6c 2d 31 32 34 38 0d 0a 53 45 4c   label-1248..SEL
381d0 45 43 54 20 41 4c 4c 20 2d 20 37 38 20 44 49 56  ECT ALL - 78 DIV
381e0 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 2c 20 63   col2 AS col0, c
381f0 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol0 AS col1 FROM
38200 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
38210 2d 2d 2d 0d 0a 2d 31 0d 0a 36 34 0d 0a 2d 31 0d  ---..-1..64..-1.
38220 0a 37 35 0d 0a 2d 33 0d 0a 34 36 0d 0a 0d 0a 73  .75..-3..46....s
38230 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
38240 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
38250 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
38260 61 62 65 6c 2d 31 32 34 38 0d 0a 53 45 4c 45 43  abel-1248..SELEC
38270 54 20 41 4c 4c 20 2d 20 37 38 20 2f 20 63 6f 6c  T ALL - 78 / col
38280 32 20 41 53 20 63 6f 6c 30 2c 20 63 6f 6c 30 20  2 AS col0, col0 
38290 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
382a0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
382b0 0a 2d 31 0d 0a 36 34 0d 0a 2d 31 0d 0a 37 35 0d  .-1..64..-1..75.
382c0 0a 2d 33 0d 0a 34 36 0d 0a 0d 0a 6f 6e 6c 79 69  .-3..46....onlyi
382d0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
382e0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
382f0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
38300 62 65 6c 2d 31 32 34 39 0d 0a 53 45 4c 45 43 54  bel-1249..SELECT
38310 20 2b 20 34 31 20 2b 20 2b 20 2d 20 43 4f 55 4e   + 41 + + - COUN
38320 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46  T( * ) AS col2 F
38330 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
38340 0d 0a 2d 2d 2d 2d 0d 0a 33 38 0d 0a 0d 0a 73 6b  ..----..38....sk
38350 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
38360 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
38370 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
38380 65 6c 2d 31 32 34 39 0d 0a 53 45 4c 45 43 54 20  el-1249..SELECT 
38390 2b 20 34 31 20 2b 20 2b 20 2d 20 43 4f 55 4e 54  + 41 + + - COUNT
383a0 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46   ( * ) AS col2 F
383b0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
383c0 0d 0a 2d 2d 2d 2d 0d 0a 33 38 0d 0a 0d 0a 6f 6e  ..----..38....on
383d0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
383e0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
383f0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
38400 74 20 6c 61 62 65 6c 2d 31 32 35 30 0d 0a 53 45  t label-1250..SE
38410 4c 45 43 54 20 41 4c 4c 20 2b 20 31 39 20 41 53  LECT ALL + 19 AS
38420 20 63 6f 6c 32 2c 20 43 4f 55 4e 54 28 20 2a 20   col2, COUNT( * 
38430 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  ) FROM tab0 AS c
38440 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 0d 0a 33  or0..----..19..3
38450 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
38460 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
38470 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
38480 6f 72 74 20 6c 61 62 65 6c 2d 31 32 35 30 0d 0a  ort label-1250..
38490 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 31 39 20  SELECT ALL + 19 
384a0 41 53 20 63 6f 6c 32 2c 20 43 4f 55 4e 54 20 28  AS col2, COUNT (
384b0 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41   * ) FROM tab0 A
384c0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39  S cor0..----..19
384d0 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ..3....query I r
384e0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
384f0 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 2b 20 2b  ISTINCT col0 + +
38500 20 35 34 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   54 AS col0 FROM
38510 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 31   tab0..----..141
38520 0d 0a 31 35 31 0d 0a 36 39 0d 0a 0d 0a 6f 6e 6c  ..151..69....onl
38530 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
38540 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
38550 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
38560 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
38570 35 32 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53  52..SELECT + CAS
38580 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
38590 44 20 29 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 2b  D ) * + - col2 +
385a0 20 28 20 2b 20 63 6f 6c 32 20 29 20 2f 20 2d 20   ( + col2 ) / - 
385b0 36 34 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  64 col0 FROM tab
385c0 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  0..----..NULL..N
385d0 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ULL..NULL....ski
385e0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
385f0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70  compatible..skip
38600 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
38610 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
38620 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
38630 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
38640 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
38650 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 35 32 0d  sort label-1252.
38660 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54 20 28  .SELECT + CAST (
38670 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
38680 20 29 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 2b 20   ) * + - col2 + 
38690 28 20 2b 20 63 6f 6c 32 20 29 20 2f 20 2d 20 36  ( + col2 ) / - 6
386a0 34 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  4 col0 FROM tab0
386b0 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
386c0 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72  LL..NULL....quer
386d0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
386e0 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 2b  ECT ALL - col2 +
386f0 20 2d 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c   - + col1 AS col
38700 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
38710 2d 0d 0a 2d 31 31 37 0d 0a 2d 31 32 35 0d 0a 2d  -..-117..-125..-
38720 37 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  74....onlyif mys
38730 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
38740 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
38750 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
38760 20 6c 61 62 65 6c 2d 31 32 35 34 0d 0a 53 45 4c   label-1254..SEL
38770 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  ECT DISTINCT col
38780 32 20 44 49 56 20 2d 20 37 35 20 2b 20 63 6f 6c  2 DIV - 75 + col
38790 32 20 44 49 56 20 2b 20 63 6f 6c 31 20 46 52 4f  2 DIV + col1 FRO
387a0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab0..----..0.
387b0 0a 39 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .98....skipif my
387c0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
387d0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
387e0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 35 34  wsort label-1254
387f0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
38800 54 20 63 6f 6c 32 20 2f 20 2d 20 37 35 20 2b 20  T col2 / - 75 + 
38810 63 6f 6c 32 20 2f 20 2b 20 63 6f 6c 31 20 46 52  col2 / + col1 FR
38820 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30  OM tab0..----..0
38830 0d 0a 39 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..98....query I 
38840 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
38850 41 4c 4c 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 28  ALL - col2 * - (
38860 20 2d 20 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d   - - col0 ) FROM
38870 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 30 35   tab2..----..105
38880 38 0d 0a 32 35 36 30 0d 0a 34 33 35 30 0d 0a 0d  8..2560..4350...
38890 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
388a0 0d 0a 53 45 4c 45 43 54 20 31 20 2a 20 2b 20 63  ..SELECT 1 * + c
388b0 6f 6c 30 20 2b 20 2b 20 63 6f 6c 32 20 46 52 4f  ol0 + + col2 FRO
388c0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
388d0 2d 2d 2d 2d 0d 0a 31 30 34 0d 0a 31 33 33 0d 0a  ----..104..133..
388e0 36 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  69....query I ro
388f0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
38900 63 6f 6c 31 20 2a 20 63 6f 6c 32 20 2a 20 2b 20  col1 * col2 * + 
38910 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  - col1 FROM tab1
38920 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
38930 2d 31 34 37 35 0d 0a 2d 31 35 30 32 31 32 0d 0a  -1475..-150212..
38940 2d 31 38 38 31 36 0d 0a 0d 0a 71 75 65 72 79 20  -18816....query 
38950 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
38960 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ECT * FROM tab1 
38970 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20  AS cor0 WHERE + 
38980 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 32 20 2d 20  col0 + - col2 - 
38990 2b 20 63 6f 6c 31 20 3c 3e 20 28 20 2d 20 63 6f  + col1 <> ( - co
389a0 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  l1 )..----..9 va
389b0 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
389c0 63 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64  c6c0a4111b36d04d
389d0 62 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64  bc811a11e4d54cad
389e0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
389f0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
38a00 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
38a10 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
38a20 20 4e 4f 54 20 28 20 63 6f 6c 30 20 2f 20 2d 20   NOT ( col0 / - 
38a30 2b 20 39 39 20 3c 3d 20 2b 20 34 32 20 29 0d 0a  + 99 <= + 42 )..
38a40 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
38a50 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
38a60 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 41 53  DISTINCT col2 AS
38a70 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
38a80 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
38a90 54 20 2d 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c  T - col1 IS NULL
38aa0 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 36 38 0d 0a  ..----..59..68..
38ab0 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  96....onlyif mys
38ac0 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
38ad0 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
38ae0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
38af0 74 20 6c 61 62 65 6c 2d 31 32 36 31 0d 0a 53 45  t label-1261..SE
38b00 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30 2c 20 2b  LECT ALL col0, +
38b10 20 63 6f 6c 32 20 44 49 56 20 2d 20 63 6f 6c 30   col2 DIV - col0
38b20 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
38b30 0d 0a 34 36 0d 0a 30 0d 0a 36 34 0d 0a 30 0d 0a  ..46..0..64..0..
38b40 37 35 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  75..0....skipif 
38b50 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
38b60 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
38b70 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
38b80 32 36 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  261..SELECT ALL 
38b90 63 6f 6c 30 2c 20 2b 20 63 6f 6c 32 20 2f 20 2d  col0, + col2 / -
38ba0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
38bb0 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 30 0d 0a 36 34  .----..46..0..64
38bc0 0d 0a 30 0d 0a 37 35 0d 0a 30 0d 0a 0d 0a 71 75  ..0..75..0....qu
38bd0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
38be0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
38bf0 20 63 6f 6c 31 20 2a 20 32 30 20 41 53 20 63 6f   col1 * 20 AS co
38c00 6c 30 20 46 52 4f 4d 20 74 61