sqllogictest
Hex Artifact Content
Not logged in

Artifact d1eb157f12f0b50def65943ebbe516c1f6a7dbfb:


0000: 68 61 73 68 2d 74 68 72 65 73 68 6f 6c 64 20 38  hash-threshold 8
0010: 0d 0a 0d 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b  ....statement ok
0020: 0d 0a 43 52 45 41 54 45 20 54 41 42 4c 45 20 74  ..CREATE TABLE t
0030: 61 62 30 28 63 6f 6c 30 20 49 4e 54 45 47 45 52  ab0(col0 INTEGER
0040: 2c 20 63 6f 6c 31 20 49 4e 54 45 47 45 52 2c 20  , col1 INTEGER, 
0050: 63 6f 6c 32 20 49 4e 54 45 47 45 52 29 0d 0a 0d  col2 INTEGER)...
0060: 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 43  .statement ok..C
0070: 52 45 41 54 45 20 54 41 42 4c 45 20 74 61 62 31  REATE TABLE tab1
0080: 28 63 6f 6c 30 20 49 4e 54 45 47 45 52 2c 20 63  (col0 INTEGER, c
0090: 6f 6c 31 20 49 4e 54 45 47 45 52 2c 20 63 6f 6c  ol1 INTEGER, col
00a0: 32 20 49 4e 54 45 47 45 52 29 0d 0a 0d 0a 73 74  2 INTEGER)....st
00b0: 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 43 52 45 41  atement ok..CREA
00c0: 54 45 20 54 41 42 4c 45 20 74 61 62 32 28 63 6f  TE TABLE tab2(co
00d0: 6c 30 20 49 4e 54 45 47 45 52 2c 20 63 6f 6c 31  l0 INTEGER, col1
00e0: 20 49 4e 54 45 47 45 52 2c 20 63 6f 6c 32 20 49   INTEGER, col2 I
00f0: 4e 54 45 47 45 52 29 0d 0a 0d 0a 73 74 61 74 65  NTEGER)....state
0100: 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45 52 54 20  ment ok..INSERT 
0110: 49 4e 54 4f 20 74 61 62 30 20 56 41 4c 55 45 53  INTO tab0 VALUES
0120: 28 39 37 2c 31 2c 39 39 29 0d 0a 0d 0a 73 74 61  (97,1,99)....sta
0130: 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45 52  tement ok..INSER
0140: 54 20 49 4e 54 4f 20 74 61 62 30 20 56 41 4c 55  T INTO tab0 VALU
0150: 45 53 28 31 35 2c 38 31 2c 34 37 29 0d 0a 0d 0a  ES(15,81,47)....
0160: 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49 4e  statement ok..IN
0170: 53 45 52 54 20 49 4e 54 4f 20 74 61 62 30 20 56  SERT INTO tab0 V
0180: 41 4c 55 45 53 28 38 37 2c 32 31 2c 31 30 29 0d  ALUES(87,21,10).
0190: 0a 0d 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d  ...statement ok.
01a0: 0a 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 61 62  .INSERT INTO tab
01b0: 31 20 56 41 4c 55 45 53 28 35 31 2c 31 34 2c 39  1 VALUES(51,14,9
01c0: 36 29 0d 0a 0d 0a 73 74 61 74 65 6d 65 6e 74 20  6)....statement 
01d0: 6f 6b 0d 0a 49 4e 53 45 52 54 20 49 4e 54 4f 20  ok..INSERT INTO 
01e0: 74 61 62 31 20 56 41 4c 55 45 53 28 38 35 2c 35  tab1 VALUES(85,5
01f0: 2c 35 39 29 0d 0a 0d 0a 73 74 61 74 65 6d 65 6e  ,59)....statemen
0200: 74 20 6f 6b 0d 0a 49 4e 53 45 52 54 20 49 4e 54  t ok..INSERT INT
0210: 4f 20 74 61 62 31 20 56 41 4c 55 45 53 28 39 31  O tab1 VALUES(91
0220: 2c 34 37 2c 36 38 29 0d 0a 0d 0a 73 74 61 74 65  ,47,68)....state
0230: 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45 52 54 20  ment ok..INSERT 
0240: 49 4e 54 4f 20 74 61 62 32 20 56 41 4c 55 45 53  INTO tab2 VALUES
0250: 28 36 34 2c 37 37 2c 34 30 29 0d 0a 0d 0a 73 74  (64,77,40)....st
0260: 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45  atement ok..INSE
0270: 52 54 20 49 4e 54 4f 20 74 61 62 32 20 56 41 4c  RT INTO tab2 VAL
0280: 55 45 53 28 37 35 2c 36 37 2c 35 38 29 0d 0a 0d  UES(75,67,58)...
0290: 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49  .statement ok..I
02a0: 4e 53 45 52 54 20 49 4e 54 4f 20 74 61 62 32 20  NSERT INTO tab2 
02b0: 56 41 4c 55 45 53 28 34 36 2c 35 31 2c 32 33 29  VALUES(46,51,23)
02c0: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
02d0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
02e0: 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53  L * FROM tab2 AS
02f0: 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 30   cor0 WHERE col0
0300: 20 3e 20 2d 20 36 36 0d 0a 2d 2d 2d 2d 0d 0a 39   > - 66..----..9
0310: 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
0320: 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38  to 75c998aa53ac8
0330: 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30  3218cbf2feb962d0
0340: 61 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  a49....onlyif my
0350: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
0360: 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e  x: aggregate syn
0370: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
0380: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
0390: 6f 72 74 20 6c 61 62 65 6c 2d 31 0d 0a 53 45 4c  ort label-1..SEL
03a0: 45 43 54 20 43 41 53 54 28 20 2d 20 43 4f 55 4e  ECT CAST( - COUN
03b0: 54 28 20 2a 20 29 20 41 53 20 53 49 47 4e 45 44  T( * ) AS SIGNED
03c0: 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   ) col2 FROM tab
03d0: 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  1 cor0..----..-3
03e0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
03f0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
0400: 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
0410: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
0420: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
0430: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
0440: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
0450: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
0460: 6c 2d 31 0d 0a 53 45 4c 45 43 54 20 43 41 53 54  l-1..SELECT CAST
0470: 20 28 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29   ( - COUNT ( * )
0480: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 63 6f   AS INTEGER ) co
0490: 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  l2 FROM tab1 cor
04a0: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 71  0..----..-3....q
04b0: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
04c0: 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
04d0: 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
04e0: 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 30 20 2b 20  RE NOT - col0 + 
04f0: 2b 20 63 6f 6c 32 20 2a 20 33 20 49 53 20 4e 4f  + col2 * 3 IS NO
0500: 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  T NULL..----....
0510: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
0520: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
0530: 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
0540: 28 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 3e 20 2d  ( NOT ( NULL > -
0550: 20 33 36 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 63   36 + col2 * + c
0560: 6f 6c 32 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d  ol2 ) )..----...
0570: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
0580: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
0590: 54 20 2b 20 36 34 20 41 53 20 63 6f 6c 31 20 46  T + 64 AS col1 F
05a0: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
05b0: 20 57 48 45 52 45 20 4e 4f 54 20 38 36 20 42 45   WHERE NOT 86 BE
05c0: 54 57 45 45 4e 20 28 20 4e 55 4c 4c 20 29 20 41  TWEEN ( NULL ) A
05d0: 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  ND NULL..----...
05e0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
05f0: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
0600: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
0610: 6f 72 74 20 6c 61 62 65 6c 2d 35 0d 0a 53 45 4c  ort label-5..SEL
0620: 45 43 54 20 41 4c 4c 20 2b 20 37 34 20 2b 20 2d  ECT ALL + 74 + -
0630: 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d   COUNT( * ) FROM
0640: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
0650: 2d 2d 2d 0d 0a 37 31 0d 0a 0d 0a 73 6b 69 70 69  ---..71....skipi
0660: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
0670: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
0680: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
0690: 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  5..SELECT ALL + 
06a0: 37 34 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a  74 + - COUNT ( *
06b0: 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
06c0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 31 0d 0a  cor0..----..71..
06d0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
06e0: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
06f0: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
0700: 73 6f 72 74 20 6c 61 62 65 6c 2d 36 0d 0a 53 45  sort label-6..SE
0710: 4c 45 43 54 20 41 4c 4c 20 4d 49 4e 28 20 2d 20  LECT ALL MIN( - 
0720: 37 36 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  76 ) AS col2 FRO
0730: 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
0740: 2d 0d 0a 2d 37 36 0d 0a 0d 0a 73 6b 69 70 69 66  -..-76....skipif
0750: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
0760: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
0770: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
0780: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 4d 49 4e  ..SELECT ALL MIN
0790: 20 28 20 2d 20 37 36 20 29 20 41 53 20 63 6f 6c   ( - 76 ) AS col
07a0: 32 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  2 FROM tab0 cor0
07b0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 36 0d 0a 0d 0a 6f  ..----..-76....o
07c0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
07d0: 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
07e0: 44 20 74 79 70 65 3a 20 44 45 43 49 4d 41 4c 20  D type: DECIMAL 
07f0: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
0800: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 0d  rowsort label-7.
0810: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 38 32 20 2a  .SELECT ALL 82 *
0820: 20 2b 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20   + - CAST( NULL 
0830: 41 53 20 44 45 43 49 4d 41 4c 20 29 20 46 52 4f  AS DECIMAL ) FRO
0840: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
0850: 48 45 52 45 20 2b 20 35 33 20 2d 20 63 6f 6c 31  HERE + 53 - col1
0860: 20 3c 3d 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c   <= + CAST( NULL
0870: 20 41 53 20 53 49 47 4e 45 44 20 29 0d 0a 2d 2d   AS SIGNED )..--
0880: 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
0890: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
08a0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
08b0: 73 6f 72 74 20 6c 61 62 65 6c 2d 37 0d 0a 53 45  sort label-7..SE
08c0: 4c 45 43 54 20 41 4c 4c 20 38 32 20 2a 20 2b 20  LECT ALL 82 * + 
08d0: 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
08e0: 20 52 45 41 4c 20 29 20 46 52 4f 4d 20 74 61 62   REAL ) FROM tab
08f0: 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
0900: 2b 20 35 33 20 2d 20 63 6f 6c 31 20 3c 3d 20 2b  + 53 - col1 <= +
0910: 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
0920: 49 4e 54 45 47 45 52 20 29 0d 0a 2d 2d 2d 2d 0d  INTEGER )..----.
0930: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
0940: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
0950: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
0960: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 0d 0a 53  wsort label-8..S
0970: 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28 20 44  ELECT - COUNT( D
0980: 49 53 54 49 4e 43 54 20 2b 20 2d 20 63 6f 6c 31  ISTINCT + - col1
0990: 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
09a0: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a  tab2..----..-3..
09b0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
09c0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
09d0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
09e0: 20 6c 61 62 65 6c 2d 38 0d 0a 53 45 4c 45 43 54   label-8..SELECT
09f0: 20 2d 20 43 4f 55 4e 54 20 28 20 44 49 53 54 49   - COUNT ( DISTI
0a00: 4e 43 54 20 2b 20 2d 20 63 6f 6c 31 20 29 20 41  NCT + - col1 ) A
0a10: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
0a20: 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75  ..----..-3....qu
0a30: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
0a40: 53 45 4c 45 43 54 20 41 4c 4c 20 28 20 2d 20 31  SELECT ALL ( - 1
0a50: 32 20 29 20 41 53 20 63 6f 6c 32 2c 20 63 6f 6c  2 ) AS col2, col
0a60: 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
0a70: 2d 0d 0a 2d 31 32 0d 0a 31 35 0d 0a 2d 31 32 0d  -..-12..15..-12.
0a80: 0a 38 37 0d 0a 2d 31 32 0d 0a 39 37 0d 0a 0d 0a  .87..-12..97....
0a90: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
0aa0: 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
0ab0: 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
0ac0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
0ad0: 2d 31 30 0d 0a 53 45 4c 45 43 54 20 28 20 2b 20  -10..SELECT ( + 
0ae0: 32 33 20 29 20 44 49 56 20 2b 20 63 6f 6c 31 20  23 ) DIV + col1 
0af0: 2d 20 35 36 20 41 53 20 63 6f 6c 30 20 46 52 4f  - 56 AS col0 FRO
0b00: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  M tab1..----..-5
0b10: 32 0d 0a 2d 35 35 0d 0a 2d 35 36 0d 0a 0d 0a 73  2..-55..-56....s
0b20: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
0b30: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
0b40: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
0b50: 62 65 6c 2d 31 30 0d 0a 53 45 4c 45 43 54 20 28  bel-10..SELECT (
0b60: 20 2b 20 32 33 20 29 20 2f 20 2b 20 63 6f 6c 31   + 23 ) / + col1
0b70: 20 2d 20 35 36 20 41 53 20 63 6f 6c 30 20 46 52   - 56 AS col0 FR
0b80: 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
0b90: 35 32 0d 0a 2d 35 35 0d 0a 2d 35 36 0d 0a 0d 0a  52..-55..-56....
0ba0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
0bb0: 0a 53 45 4c 45 43 54 20 2b 20 2b 20 63 6f 6c 30  .SELECT + + col0
0bc0: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
0bd0: 62 31 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e  b1 WHERE NOT ( N
0be0: 55 4c 4c 20 29 20 4e 4f 54 20 42 45 54 57 45 45  ULL ) NOT BETWEE
0bf0: 4e 20 4e 55 4c 4c 20 41 4e 44 20 2d 20 36 33 20  N NULL AND - 63 
0c00: 41 4e 44 20 4e 4f 54 20 4e 55 4c 4c 20 3c 3d 20  AND NOT NULL <= 
0c10: 39 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  92..----....quer
0c20: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
0c30: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
0c40: 30 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29  0 WHERE ( NULL )
0c50: 20 3c 3d 20 33 33 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a   <= 33..----....
0c60: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
0c70: 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
0c80: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
0c90: 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
0ca0: 6c 2d 31 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  l-13..SELECT ALL
0cb0: 20 2d 20 35 30 20 2a 20 43 41 53 54 28 20 2d 20   - 50 * CAST( - 
0cc0: 2d 20 38 33 20 41 53 20 53 49 47 4e 45 44 20 29  - 83 AS SIGNED )
0cd0: 20 2a 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 2b 20   * - col1 * + + 
0ce0: 32 37 2c 20 63 6f 6c 32 20 2a 20 2d 20 31 36 20  27, col2 * - 16 
0cf0: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
0d00: 31 0d 0a 2d 2d 2d 2d 0d 0a 31 35 36 38 37 30 30  1..----..1568700
0d10: 0d 0a 2d 31 35 33 36 0d 0a 35 32 36 36 33 35 30  ..-1536..5266350
0d20: 0d 0a 2d 31 30 38 38 0d 0a 35 36 30 32 35 30 0d  ..-1088..560250.
0d30: 0a 2d 39 34 34 0d 0a 0d 0a 73 6b 69 70 69 66 20  .-944....skipif 
0d40: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
0d50: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
0d60: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
0d70: 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  3..SELECT ALL - 
0d80: 35 30 20 2a 20 43 41 53 54 20 28 20 2d 20 2d 20  50 * CAST ( - - 
0d90: 38 33 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  83 AS INTEGER ) 
0da0: 2a 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 2b 20 32  * - col1 * + + 2
0db0: 37 2c 20 63 6f 6c 32 20 2a 20 2d 20 31 36 20 41  7, col2 * - 16 A
0dc0: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
0dd0: 0d 0a 2d 2d 2d 2d 0d 0a 31 35 36 38 37 30 30 0d  ..----..1568700.
0de0: 0a 2d 31 35 33 36 0d 0a 35 32 36 36 33 35 30 0d  .-1536..5266350.
0df0: 0a 2d 31 30 38 38 0d 0a 35 36 30 32 35 30 0d 0a  .-1088..560250..
0e00: 2d 39 34 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -944....query I 
0e10: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
0e20: 44 49 53 54 49 4e 43 54 20 35 39 20 2a 20 35 34  DISTINCT 59 * 54
0e30: 20 2a 20 2b 20 2d 20 63 6f 6c 31 20 41 53 20 63   * + - col1 AS c
0e40: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  ol1 FROM tab0 co
0e50: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35 38 30 36  r0..----..-25806
0e60: 36 0d 0a 2d 33 31 38 36 0d 0a 2d 36 36 39 30 36  6..-3186..-66906
0e70: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
0e80: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63  sort..SELECT + c
0e90: 6f 6c 32 2c 20 32 38 20 2b 20 2d 20 63 6f 6c 30  ol2, 28 + - col0
0ea0: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
0eb0: 0d 0a 31 30 0d 0a 2d 35 39 0d 0a 34 37 0d 0a 31  ..10..-59..47..1
0ec0: 33 0d 0a 39 39 0d 0a 2d 36 39 0d 0a 0d 0a 71 75  3..99..-69....qu
0ed0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
0ee0: 45 4c 45 43 54 20 2b 20 32 35 20 2b 20 2d 20 36  ELECT + 25 + - 6
0ef0: 35 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  5 FROM tab0 WHER
0f00: 45 20 4e 4f 54 20 37 38 20 3c 20 4e 55 4c 4c 0d  E NOT 78 < NULL.
0f10: 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
0f20: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
0f30: 54 20 44 49 53 54 49 4e 43 54 20 2d 20 39 31 20  T DISTINCT - 91 
0f40: 2a 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c  * - col2 * - col
0f50: 32 20 41 53 20 63 6f 6c 30 2c 20 31 39 20 46 52  2 AS col0, 19 FR
0f60: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
0f70: 0a 2d 2d 2d 2d 0d 0a 2d 31 34 35 36 30 30 0d 0a  .----..-145600..
0f80: 31 39 0d 0a 2d 33 30 36 31 32 34 0d 0a 31 39 0d  19..-306124..19.
0f90: 0a 2d 34 38 31 33 39 0d 0a 31 39 0d 0a 0d 0a 71  .-48139..19....q
0fa0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
0fb0: 53 45 4c 45 43 54 20 2b 20 2d 20 28 20 63 6f 6c  SELECT + - ( col
0fc0: 30 20 29 20 2a 20 2d 20 63 6f 6c 30 20 41 53 20  0 ) * - col0 AS 
0fd0: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 63  col2 FROM tab1 c
0fe0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 36 30 31 0d  or0..----..2601.
0ff0: 0a 37 32 32 35 0d 0a 38 32 38 31 0d 0a 0d 0a 6f  .7225..8281....o
1000: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
1010: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
1020: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1030: 74 20 6c 61 62 65 6c 2d 31 39 0d 0a 53 45 4c 45  t label-19..SELE
1040: 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 28 20  CT DISTINCT + ( 
1050: 2d 20 4d 49 4e 28 20 2d 20 2b 20 32 35 20 29 20  - MIN( - + 25 ) 
1060: 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
1070: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
1080: 2d 0d 0a 32 35 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..25....skipif 
1090: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
10a0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
10b0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 39  rowsort label-19
10c0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
10d0: 54 20 2b 20 28 20 2d 20 4d 49 4e 20 28 20 2d 20  T + ( - MIN ( - 
10e0: 2b 20 32 35 20 29 20 29 20 41 53 20 63 6f 6c 30  + 25 ) ) AS col0
10f0: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
1100: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 35 0d 0a 0d 0a  r0..----..25....
1110: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1120: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1130: 20 2b 20 39 38 20 2a 20 63 6f 6c 30 20 41 53 20   + 98 * col0 AS 
1140: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
1150: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 39  S cor0..----..49
1160: 39 38 0d 0a 38 33 33 30 0d 0a 38 39 31 38 0d 0a  98..8330..8918..
1170: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
1180: 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 2c  rt..SELECT col1,
1190: 20 2d 20 34 38 20 41 53 20 63 6f 6c 32 20 46 52   - 48 AS col2 FR
11a0: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35  OM tab2..----..5
11b0: 31 0d 0a 2d 34 38 0d 0a 36 37 0d 0a 2d 34 38 0d  1..-48..67..-48.
11c0: 0a 37 37 0d 0a 2d 34 38 0d 0a 0d 0a 6f 6e 6c 79  .77..-48....only
11d0: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
11e0: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
11f0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1200: 61 62 65 6c 2d 32 32 0d 0a 53 45 4c 45 43 54 20  abel-22..SELECT 
1210: 2b 20 4d 41 58 28 20 33 34 20 29 20 41 53 20 63  + MAX( 34 ) AS c
1220: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
1230: 2d 2d 2d 0d 0a 33 34 0d 0a 0d 0a 73 6b 69 70 69  ---..34....skipi
1240: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1250: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
1260: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1270: 32 32 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 41 58  22..SELECT + MAX
1280: 20 28 20 33 34 20 29 20 41 53 20 63 6f 6c 31 20   ( 34 ) AS col1 
1290: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
12a0: 0a 33 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .34....query I r
12b0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
12c0: 6f 6c 32 20 2a 20 2d 20 63 6f 6c 30 20 41 53 20  ol2 * - col0 AS 
12d0: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 57  col0 FROM tab0 W
12e0: 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 30 20  HERE NOT + col0 
12f0: 2b 20 63 6f 6c 30 20 42 45 54 57 45 45 4e 20 2b  + col0 BETWEEN +
1300: 20 39 32 20 2a 20 2d 20 34 35 20 41 4e 44 20 4e   92 * - 45 AND N
1310: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
1320: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
1330: 45 4c 45 43 54 20 63 6f 6c 31 2c 20 2b 20 31 39  ELECT col1, + 19
1340: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
1350: 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  b0 cor0..----..1
1360: 0d 0a 31 39 0d 0a 32 31 0d 0a 31 39 0d 0a 38 31  ..19..21..19..81
1370: 0d 0a 31 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..19....query I 
1380: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1390: 2b 20 2d 20 35 34 20 41 53 20 63 6f 6c 31 20 46  + - 54 AS col1 F
13a0: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
13b0: 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30   CROSS JOIN tab0
13c0: 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
13d0: 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
13e0: 20 74 6f 20 34 65 63 64 62 30 66 31 62 38 35 66   to 4ecdb0f1b85f
13f0: 30 64 34 66 64 63 33 61 38 32 36 65 66 64 39 66  0d4fdc3a826efd9f
1400: 32 33 34 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49  2342....query II
1410: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1420: 20 33 30 20 41 53 20 63 6f 6c 31 2c 20 63 6f 6c   30 AS col1, col
1430: 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
1440: 6f 72 30 20 57 48 45 52 45 20 28 20 2d 20 63 6f  or0 WHERE ( - co
1450: 6c 32 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e  l2 NOT BETWEEN N
1460: 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c 20 29 0d 0a  ULL AND NULL )..
1470: 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
1480: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
1490: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
14a0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
14b0: 2d 32 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  -27..SELECT DIST
14c0: 49 4e 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20  INCT - COUNT( * 
14d0: 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
14e0: 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  or0 WHERE NOT + 
14f0: 63 6f 6c 30 20 2f 20 2b 20 63 6f 6c 30 20 2b 20  col0 / + col0 + 
1500: 2b 20 39 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  + 90 IS NOT NULL
1510: 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69  ..----..0....ski
1520: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1530: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1540: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1550: 6c 2d 32 37 0d 0a 53 45 4c 45 43 54 20 44 49 53  l-27..SELECT DIS
1560: 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 20 28 20  TINCT - COUNT ( 
1570: 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  * ) FROM tab1 AS
1580: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
1590: 2b 20 63 6f 6c 30 20 2f 20 2b 20 63 6f 6c 30 20  + col0 / + col0 
15a0: 2b 20 2b 20 39 30 20 49 53 20 4e 4f 54 20 4e 55  + + 90 IS NOT NU
15b0: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73  LL..----..0....s
15c0: 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
15d0: 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
15e0: 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
15f0: 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
1600: 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
1610: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1620: 2d 20 63 6f 6c 32 20 63 6f 6c 32 20 46 52 4f 4d  - col2 col2 FROM
1630: 20 74 61 62 30 20 63 6f 72 30 20 57 48 45 52 45   tab0 cor0 WHERE
1640: 20 28 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 32   ( col0 * + col2
1650: 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 20 29 0d 0a   IS NOT NULL )..
1660: 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 2d 34 37 0d 0a  ----..-10..-47..
1670: 2d 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -99....onlyif my
1680: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
1690: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
16a0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
16b0: 32 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 39  29..SELECT ALL 9
16c0: 20 2b 20 2b 20 4d 41 58 28 20 2d 20 2b 20 63 6f   + + MAX( - + co
16d0: 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41  l1 ) FROM tab2 A
16e0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34  S cor0..----..-4
16f0: 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  2....skipif mysq
1700: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1710: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1720: 6f 72 74 20 6c 61 62 65 6c 2d 32 39 0d 0a 53 45  ort label-29..SE
1730: 4c 45 43 54 20 41 4c 4c 20 39 20 2b 20 2b 20 4d  LECT ALL 9 + + M
1740: 41 58 20 28 20 2d 20 2b 20 63 6f 6c 31 20 29 20  AX ( - + col1 ) 
1750: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
1760: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 32 0d 0a 0d 0a  0..----..-42....
1770: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
1780: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
1790: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
17a0: 72 74 20 6c 61 62 65 6c 2d 33 30 0d 0a 53 45 4c  rt label-30..SEL
17b0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 4d 41 58  ECT DISTINCT MAX
17c0: 28 20 41 4c 4c 20 2d 20 2b 20 35 37 20 29 20 2b  ( ALL - + 57 ) +
17d0: 20 2b 20 2b 20 31 38 20 2b 20 2d 20 33 38 20 46   + + 18 + - 38 F
17e0: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
17f0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 37 0d 0a 0d 0a 73  ..----..-77....s
1800: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1810: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1820: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1830: 62 65 6c 2d 33 30 0d 0a 53 45 4c 45 43 54 20 44  bel-30..SELECT D
1840: 49 53 54 49 4e 43 54 20 4d 41 58 20 28 20 41 4c  ISTINCT MAX ( AL
1850: 4c 20 2d 20 2b 20 35 37 20 29 20 2b 20 2b 20 2b  L - + 57 ) + + +
1860: 20 31 38 20 2b 20 2d 20 33 38 20 46 52 4f 4d 20   18 + - 38 FROM 
1870: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
1880: 2d 2d 0d 0a 2d 37 37 0d 0a 0d 0a 6f 6e 6c 79 69  --..-77....onlyi
1890: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
18a0: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
18b0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
18c0: 62 65 6c 2d 33 31 0d 0a 53 45 4c 45 43 54 20 44  bel-31..SELECT D
18d0: 49 53 54 49 4e 43 54 20 32 31 20 2b 20 43 4f 55  ISTINCT 21 + COU
18e0: 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20  NT( * ) AS col1 
18f0: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
1900: 0a 32 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .24....skipif my
1910: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1920: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1930: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 31 0d 0a  wsort label-31..
1940: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1950: 32 31 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29  21 + COUNT ( * )
1960: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
1970: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 34 0d 0a 0d 0a  b0..----..24....
1980: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1990: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
19a0: 20 2d 20 32 33 20 2d 20 2d 20 2b 20 34 35 20 41   - 23 - - + 45 A
19b0: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
19c0: 0d 0a 2d 2d 2d 2d 0d 0a 32 32 0d 0a 0d 0a 73 6b  ..----..22....sk
19d0: 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
19e0: 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
19f0: 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
1a00: 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
1a10: 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
1a20: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
1a30: 20 63 6f 6c 30 20 2b 20 2b 20 2b 20 36 35 20 63   col0 + + + 65 c
1a40: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 57 48  ol1 FROM tab1 WH
1a50: 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 49 53 20  ERE ( NULL ) IS 
1a60: 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
1a70: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1a80: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
1a90: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
1aa0: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 34 0d 0a 53  sort label-34..S
1ab0: 45 4c 45 43 54 20 4d 49 4e 28 20 44 49 53 54 49  ELECT MIN( DISTI
1ac0: 4e 43 54 20 2b 20 2d 20 28 20 63 6f 6c 32 20 29  NCT + - ( col2 )
1ad0: 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
1ae0: 2d 2d 0d 0a 2d 39 39 0d 0a 0d 0a 73 6b 69 70 69  --..-99....skipi
1af0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1b00: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
1b10: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1b20: 33 34 0d 0a 53 45 4c 45 43 54 20 4d 49 4e 20 28  34..SELECT MIN (
1b30: 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 28 20   DISTINCT + - ( 
1b40: 63 6f 6c 32 20 29 20 29 20 46 52 4f 4d 20 74 61  col2 ) ) FROM ta
1b50: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 39 0d 0a 0d  b0..----..-99...
1b60: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1b70: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1b80: 54 20 28 20 2b 20 2d 20 63 6f 6c 31 20 29 20 2d  T ( + - col1 ) -
1b90: 20 28 20 2b 20 63 6f 6c 32 20 29 20 46 52 4f 4d   ( + col2 ) FROM
1ba0: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31   tab1..----..-11
1bb0: 30 0d 0a 2d 31 31 35 0d 0a 2d 36 34 0d 0a 0d 0a  0..-115..-64....
1bc0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
1bd0: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
1be0: 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
1bf0: 6f 72 74 20 6c 61 62 65 6c 2d 33 36 0d 0a 53 45  ort label-36..SE
1c00: 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 2c  LECT COUNT( * ),
1c10: 20 2d 20 33 32 20 41 53 20 63 6f 6c 30 20 46 52   - 32 AS col0 FR
1c20: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33  OM tab0..----..3
1c30: 0d 0a 2d 33 32 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-32....skipif 
1c40: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1c50: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
1c60: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
1c70: 36 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20  6..SELECT COUNT 
1c80: 28 20 2a 20 29 2c 20 2d 20 33 32 20 41 53 20 63  ( * ), - 32 AS c
1c90: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol0 FROM tab0..-
1ca0: 2d 2d 2d 0d 0a 33 0d 0a 2d 33 32 0d 0a 0d 0a 6f  ---..3..-32....o
1cb0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
1cc0: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
1cd0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1ce0: 74 20 6c 61 62 65 6c 2d 33 37 0d 0a 53 45 4c 45  t label-37..SELE
1cf0: 43 54 20 36 36 20 2d 20 2d 20 39 32 20 2b 20 4d  CT 66 - - 92 + M
1d00: 41 58 28 20 44 49 53 54 49 4e 43 54 20 2b 20 36  AX( DISTINCT + 6
1d10: 38 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  8 ) AS col0 FROM
1d20: 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab0 cor0..----
1d30: 0d 0a 32 32 36 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..226....skipif 
1d40: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1d50: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1d60: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 37  rowsort label-37
1d70: 0d 0a 53 45 4c 45 43 54 20 36 36 20 2d 20 2d 20  ..SELECT 66 - - 
1d80: 39 32 20 2b 20 4d 41 58 20 28 20 44 49 53 54 49  92 + MAX ( DISTI
1d90: 4e 43 54 20 2b 20 36 38 20 29 20 41 53 20 63 6f  NCT + 68 ) AS co
1da0: 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l0 FROM tab0 cor
1db0: 30 0d 0a 2d 2d 2d 2d 0d 0a 32 32 36 0d 0a 0d 0a  0..----..226....
1dc0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1dd0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1de0: 20 2b 20 28 20 2d 20 35 36 20 29 20 46 52 4f 4d   + ( - 56 ) FROM
1df0: 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab0 cor0..----
1e00: 0d 0a 2d 35 36 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-56....query I
1e10: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1e20: 20 2b 20 38 30 20 46 52 4f 4d 20 74 61 62 32 20   + 80 FROM tab2 
1e30: 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
1e40: 49 4e 20 74 61 62 31 20 41 53 20 63 6f 72 31 0d  IN tab1 AS cor1.
1e50: 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
1e60: 68 61 73 68 69 6e 67 20 74 6f 20 38 37 38 66 30  hashing to 878f0
1e70: 31 32 64 37 30 37 61 61 62 31 31 33 63 65 64 61  12d707aab113ceda
1e80: 66 35 36 65 36 63 35 32 65 39 34 0d 0a 0d 0a 71  f56e6c52e94....q
1e90: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
1ea0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1eb0: 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48  T * FROM tab0 WH
1ec0: 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54  ERE NULL NOT BET
1ed0: 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2b 20  WEEN NULL AND + 
1ee0: 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  col2..----....qu
1ef0: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
1f00: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1f10: 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   * FROM tab2 WHE
1f20: 52 45 20 2d 20 63 6f 6c 31 20 2b 20 63 6f 6c 31  RE - col1 + col1
1f30: 20 3e 20 2d 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d   > - - col1..---
1f40: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
1f50: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
1f60: 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20   - col1 AS col2 
1f70: 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
1f80: 28 20 28 20 4e 55 4c 4c 20 29 20 49 53 20 4e 4f  ( ( NULL ) IS NO
1f90: 54 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a  T NULL )..----..
1fa0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1fb0: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
1fc0: 43 54 20 2b 20 28 20 39 38 20 29 20 41 53 20 63  CT + ( 98 ) AS c
1fd0: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
1fe0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 38 0d   cor0..----..98.
1ff0: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
2000: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
2010: 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
2020: 63 6f 72 30 20 57 48 45 52 45 20 2d 20 28 20 2b  cor0 WHERE - ( +
2030: 20 2d 20 35 39 20 29 20 49 53 20 4e 4f 54 20 4e   - 59 ) IS NOT N
2040: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  ULL..----..9 val
2050: 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
2060: 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61  4b42765dff94eaaa
2070: 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d  46040e537fb43b7.
2080: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2090: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
20a0: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
20b0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 35 0d 0a  wsort label-45..
20c0: 53 45 4c 45 43 54 20 2d 20 4d 49 4e 28 20 44 49  SELECT - MIN( DI
20d0: 53 54 49 4e 43 54 20 28 20 36 34 20 29 20 29 20  STINCT ( 64 ) ) 
20e0: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
20f0: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 34 0d 0a 0d 0a  0..----..-64....
2100: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2110: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2120: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2130: 61 62 65 6c 2d 34 35 0d 0a 53 45 4c 45 43 54 20  abel-45..SELECT 
2140: 2d 20 4d 49 4e 20 28 20 44 49 53 54 49 4e 43 54  - MIN ( DISTINCT
2150: 20 28 20 36 34 20 29 20 29 20 46 52 4f 4d 20 74   ( 64 ) ) FROM t
2160: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
2170: 2d 0d 0a 2d 36 34 0d 0a 0d 0a 71 75 65 72 79 20  -..-64....query 
2180: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
2190: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
21a0: 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48  ROM tab2 cor0 WH
21b0: 45 52 45 20 63 6f 6c 31 20 2a 20 2d 20 2d 20 63  ERE col1 * - - c
21c0: 6f 6c 30 20 2a 20 2d 20 2b 20 63 6f 6c 30 20 2a  ol0 * - + col0 *
21d0: 20 2d 20 36 37 20 49 53 20 4e 55 4c 4c 0d 0a 2d   - 67 IS NULL..-
21e0: 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
21f0: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
2200: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
2210: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
2220: 6f 72 74 20 6c 61 62 65 6c 2d 34 37 0d 0a 53 45  ort label-47..SE
2230: 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
2240: 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
2250: 52 45 20 4e 4f 54 20 28 20 43 41 53 54 28 20 4e  RE NOT ( CAST( N
2260: 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
2270: 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  ) IS NULL..----.
2280: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2290: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
22a0: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
22b0: 6f 72 74 20 6c 61 62 65 6c 2d 34 37 0d 0a 53 45  ort label-47..SE
22c0: 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
22d0: 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
22e0: 52 45 20 4e 4f 54 20 28 20 43 41 53 54 20 28 20  RE NOT ( CAST ( 
22f0: 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
2300: 29 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ) ) IS NULL..---
2310: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
2320: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b  sort..SELECT - +
2330: 20 63 6f 6c 32 20 2a 20 28 20 63 6f 6c 31 20 29   col2 * ( col1 )
2340: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
2350: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
2360: 0d 0a 2d 31 31 37 33 0d 0a 2d 33 30 38 30 0d 0a  ..-1173..-3080..
2370: 2d 33 38 38 36 0d 0a 0d 0a 71 75 65 72 79 20 49  -3886....query I
2380: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2390: 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 2a   DISTINCT col0 *
23a0: 20 2b 20 34 32 20 41 53 20 63 6f 6c 31 20 46 52   + 42 AS col1 FR
23b0: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33  OM tab0..----..3
23c0: 36 35 34 0d 0a 34 30 37 34 0d 0a 36 33 30 0d 0a  654..4074..630..
23d0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
23e0: 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
23f0: 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
2400: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2410: 65 6c 2d 35 30 0d 0a 53 45 4c 45 43 54 20 41 4c  el-50..SELECT AL
2420: 4c 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  L CAST( NULL AS 
2430: 53 49 47 4e 45 44 20 29 20 2a 20 2d 20 63 6f 6c  SIGNED ) * - col
2440: 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
2450: 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
2460: 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
2470: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2480: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
2490: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 30 0d 0a  wsort label-50..
24a0: 53 45 4c 45 43 54 20 41 4c 4c 20 43 41 53 54 20  SELECT ALL CAST 
24b0: 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
24c0: 52 20 29 20 2a 20 2d 20 63 6f 6c 30 20 46 52 4f  R ) * - col0 FRO
24d0: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab0..----..NU
24e0: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
24f0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2500: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2510: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
2520: 73 6f 72 74 20 6c 61 62 65 6c 2d 35 31 0d 0a 53  sort label-51..S
2530: 45 4c 45 43 54 20 41 4c 4c 20 33 38 20 2a 20 2b  ELECT ALL 38 * +
2540: 20 4d 41 58 28 20 2d 20 63 6f 6c 31 20 29 20 2b   MAX( - col1 ) +
2550: 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52   - COUNT( * ) FR
2560: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
2570: 0a 2d 2d 2d 2d 0d 0a 2d 31 39 34 31 0d 0a 0d 0a  .----..-1941....
2580: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2590: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
25a0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
25b0: 61 62 65 6c 2d 35 31 0d 0a 53 45 4c 45 43 54 20  abel-51..SELECT 
25c0: 41 4c 4c 20 33 38 20 2a 20 2b 20 4d 41 58 20 28  ALL 38 * + MAX (
25d0: 20 2d 20 63 6f 6c 31 20 29 20 2b 20 2d 20 43 4f   - col1 ) + - CO
25e0: 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
25f0: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
2600: 2d 0d 0a 2d 31 39 34 31 0d 0a 0d 0a 73 6b 69 70  -..-1941....skip
2610: 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
2620: 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
2630: 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
2640: 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
2650: 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
2660: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
2670: 20 2b 20 63 6f 6c 32 20 2b 20 31 36 20 2a 20 63   + col2 + 16 * c
2680: 6f 6c 32 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  ol2 col2 FROM ta
2690: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
26a0: 0d 0a 33 39 31 0d 0a 36 38 30 0d 0a 39 38 36 0d  ..391..680..986.
26b0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
26c0: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
26d0: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
26e0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 33 0d 0a  wsort label-53..
26f0: 53 45 4c 45 43 54 20 4d 41 58 28 20 2b 20 38 30  SELECT MAX( + 80
2700: 20 29 20 2b 20 2d 20 2b 20 4d 41 58 28 20 33 31   ) + - + MAX( 31
2710: 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
2720: 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
2730: 2d 2d 0d 0a 34 39 0d 0a 0d 0a 73 6b 69 70 69 66  --..49....skipif
2740: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2750: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2760: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
2770: 33 0d 0a 53 45 4c 45 43 54 20 4d 41 58 20 28 20  3..SELECT MAX ( 
2780: 2b 20 38 30 20 29 20 2b 20 2d 20 2b 20 4d 41 58  + 80 ) + - + MAX
2790: 20 28 20 33 31 20 29 20 41 53 20 63 6f 6c 31 20   ( 31 ) AS col1 
27a0: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
27b0: 30 0d 0a 2d 2d 2d 2d 0d 0a 34 39 0d 0a 0d 0a 71  0..----..49....q
27c0: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
27d0: 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
27e0: 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
27f0: 52 45 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20  RE NULL BETWEEN 
2800: 4e 55 4c 4c 20 41 4e 44 20 38 33 0d 0a 2d 2d 2d  NULL AND 83..---
2810: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
2820: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 31  sort..SELECT - 1
2830: 33 20 2b 20 2d 20 2b 20 35 34 20 2a 20 2b 20 63  3 + - + 54 * + c
2840: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol0 FROM tab0..-
2850: 2d 2d 2d 0d 0a 2d 34 37 31 31 0d 0a 2d 35 32 35  ---..-4711..-525
2860: 31 0d 0a 2d 38 32 33 0d 0a 0d 0a 71 75 65 72 79  1..-823....query
2870: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2880: 43 54 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 31  CT col1 + + col1
2890: 20 2a 20 32 30 20 2b 20 2d 20 36 20 41 53 20 63   * 20 + - 6 AS c
28a0: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
28b0: 2d 2d 2d 0d 0a 31 30 36 35 0d 0a 31 34 30 31 0d  ---..1065..1401.
28c0: 0a 31 36 31 31 0d 0a 0d 0a 71 75 65 72 79 20 49  .1611....query I
28d0: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
28e0: 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
28f0: 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f  OM tab1 WHERE NO
2900: 54 20 2d 20 63 6f 6c 31 20 3d 20 2b 20 2b 20 63  T - col1 = + + c
2910: 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  ol2..----..9 val
2920: 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
2930: 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64 62  6c0a4111b36d04db
2940: 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64 0d  c811a11e4d54cad.
2950: 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
2960: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
2970: 49 4e 43 54 20 2d 20 31 32 2c 20 28 20 63 6f 6c  INCT - 12, ( col
2980: 32 20 29 20 2a 20 38 20 41 53 20 63 6f 6c 31 20  2 ) * 8 AS col1 
2990: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
29a0: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 0d 0a 31 38  0..----..-12..18
29b0: 34 0d 0a 2d 31 32 0d 0a 33 32 30 0d 0a 2d 31 32  4..-12..320..-12
29c0: 0d 0a 34 36 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..464....onlyif 
29d0: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
29e0: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
29f0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2a00: 6c 2d 35 39 0d 0a 53 45 4c 45 43 54 20 2b 20 2b  l-59..SELECT + +
2a10: 20 4d 49 4e 28 20 44 49 53 54 49 4e 43 54 20 63   MIN( DISTINCT c
2a20: 6f 6c 32 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ol2 ) AS col2 FR
2a30: 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d  OM tab2 cor0..--
2a40: 2d 2d 0d 0a 32 33 0d 0a 0d 0a 73 6b 69 70 69 66  --..23....skipif
2a50: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2a60: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2a70: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
2a80: 39 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 4d 49  9..SELECT + + MI
2a90: 4e 20 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  N ( DISTINCT col
2aa0: 32 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  2 ) AS col2 FROM
2ab0: 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
2ac0: 0d 0a 32 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..23....onlyif m
2ad0: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
2ae0: 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
2af0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2b00: 72 74 20 6c 61 62 65 6c 2d 36 30 0d 0a 53 45 4c  rt label-60..SEL
2b10: 45 43 54 20 41 4c 4c 20 43 41 53 54 28 20 2d 20  ECT ALL CAST( - 
2b20: 41 56 47 20 28 20 41 4c 4c 20 63 6f 6c 32 20 29  AVG ( ALL col2 )
2b30: 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2d   AS SIGNED ) + -
2b40: 20 34 34 20 46 52 4f 4d 20 74 61 62 32 20 41 53   44 FROM tab2 AS
2b50: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 34   cor0..----..-84
2b60: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2b70: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2b80: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
2b90: 72 74 20 6c 61 62 65 6c 2d 36 30 0d 0a 53 45 4c  rt label-60..SEL
2ba0: 45 43 54 20 41 4c 4c 20 43 41 53 54 20 28 20 2d  ECT ALL CAST ( -
2bb0: 20 41 56 47 20 28 20 41 4c 4c 20 63 6f 6c 32 20   AVG ( ALL col2 
2bc0: 29 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b  ) AS INTEGER ) +
2bd0: 20 2d 20 34 34 20 46 52 4f 4d 20 74 61 62 32 20   - 44 FROM tab2 
2be0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
2bf0: 38 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  84....onlyif mys
2c00: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
2c10: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
2c20: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
2c30: 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f  1..SELECT ALL CO
2c40: 55 4e 54 28 20 2a 20 29 20 2b 20 2d 20 2d 20 33  UNT( * ) + - - 3
2c50: 32 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  2 col0 FROM tab1
2c60: 0d 0a 2d 2d 2d 2d 0d 0a 33 35 0d 0a 0d 0a 73 6b  ..----..35....sk
2c70: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2c80: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69   compatible..ski
2c90: 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
2ca0: 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
2cb0: 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
2cc0: 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
2cd0: 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
2ce0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 31 0d 0a  wsort label-61..
2cf0: 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54  SELECT ALL COUNT
2d00: 20 28 20 2a 20 29 20 2b 20 2d 20 2d 20 33 32 20   ( * ) + - - 32 
2d10: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col0 FROM tab1..
2d20: 2d 2d 2d 2d 0d 0a 33 35 0d 0a 0d 0a 71 75 65 72  ----..35....quer
2d30: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2d40: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63  ECT DISTINCT - c
2d50: 6f 6c 32 20 2d 20 2d 20 2d 20 63 6f 6c 30 20 46  ol2 - - - col0 F
2d60: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
2d70: 2d 31 39 36 0d 0a 2d 36 32 0d 0a 2d 39 37 0d 0a  -196..-62..-97..
2d80: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2d90: 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2a  t..SELECT col2 *
2da0: 20 2b 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 2b 20   + + col0 + + + 
2db0: 28 20 28 20 2b 20 39 32 20 29 20 29 20 41 53 20  ( ( + 92 ) ) AS 
2dc0: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
2dd0: 2d 2d 2d 2d 0d 0a 37 39 37 0d 0a 39 36 32 0d 0a  ----..797..962..
2de0: 39 36 39 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20  9695....query I 
2df0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2e00: 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 2d 20  DISTINCT col0 - 
2e10: 2d 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 32 20  - col0 * - col2 
2e20: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
2e30: 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 31 32 0d 0a  2..----..-1012..
2e40: 2d 32 34 39 36 0d 0a 2d 34 32 37 35 0d 0a 0d 0a  -2496..-4275....
2e50: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2e60: 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2a  .SELECT + col1 *
2e70: 20 2d 20 2d 20 39 32 20 2b 20 63 6f 6c 31 20 46   - - 92 + col1 F
2e80: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
2e90: 34 37 34 33 0d 0a 36 32 33 31 0d 0a 37 31 36 31  4743..6231..7161
2ea0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2eb0: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
2ec0: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
2ed0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 36 0d  owsort label-66.
2ee0: 0a 53 45 4c 45 43 54 20 2b 20 4d 41 58 28 20 41  .SELECT + MAX( A
2ef0: 4c 4c 20 34 32 20 29 20 2a 20 2d 20 32 31 20 63  LL 42 ) * - 21 c
2f00: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 57 48  ol2 FROM tab0 WH
2f10: 45 52 45 20 2b 20 63 6f 6c 32 20 2a 20 63 6f 6c  ERE + col2 * col
2f20: 30 20 2b 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c  0 + col1 IS NULL
2f30: 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
2f40: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2f50: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73  ot compatible..s
2f60: 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
2f70: 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
2f80: 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
2f90: 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
2fa0: 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
2fb0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 36  rowsort label-66
2fc0: 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 41 58 20 28  ..SELECT + MAX (
2fd0: 20 41 4c 4c 20 34 32 20 29 20 2a 20 2d 20 32 31   ALL 42 ) * - 21
2fe0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
2ff0: 57 48 45 52 45 20 2b 20 63 6f 6c 32 20 2a 20 63  WHERE + col2 * c
3000: 6f 6c 30 20 2b 20 63 6f 6c 31 20 49 53 20 4e 55  ol0 + col1 IS NU
3010: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  LL..----..NULL..
3020: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
3030: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
3040: 43 54 20 63 6f 6c 31 20 2d 20 63 6f 6c 32 20 2b  CT col1 - col2 +
3050: 20 2d 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c   - + col1 AS col
3060: 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
3070: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a  or0..----..-59..
3080: 2d 36 38 0d 0a 2d 39 36 0d 0a 0d 0a 6f 6e 6c 79  -68..-96....only
3090: 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
30a0: 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
30b0: 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
30c0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38 0d  owsort label-68.
30d0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 39 36  .SELECT ALL - 96
30e0: 20 2d 20 63 6f 6c 30 20 2b 20 63 6f 6c 30 20 44   - col0 + col0 D
30f0: 49 56 20 2b 20 2d 20 28 20 2d 20 63 6f 6c 31 20  IV + - ( - col1 
3100: 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  ) FROM tab0 AS c
3110: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 31 0d  or0..----..-111.
3120: 0a 2d 31 37 39 0d 0a 2d 39 36 0d 0a 0d 0a 73 6b  .-179..-96....sk
3130: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
3140: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
3150: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
3160: 65 6c 2d 36 38 0d 0a 53 45 4c 45 43 54 20 41 4c  el-68..SELECT AL
3170: 4c 20 2d 20 39 36 20 2d 20 63 6f 6c 30 20 2b 20  L - 96 - col0 + 
3180: 63 6f 6c 30 20 2f 20 2b 20 2d 20 28 20 2d 20 63  col0 / + - ( - c
3190: 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 30 20  ol1 ) FROM tab0 
31a0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
31b0: 31 31 31 0d 0a 2d 31 37 39 0d 0a 2d 39 36 0d 0a  111..-179..-96..
31c0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
31d0: 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
31e0: 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
31f0: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
3200: 62 65 6c 2d 36 39 0d 0a 53 45 4c 45 43 54 20 28  bel-69..SELECT (
3210: 20 2b 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c   + col1 ) AS col
3220: 32 2c 20 38 30 20 2a 20 63 6f 6c 31 20 44 49 56  2, 80 * col1 DIV
3230: 20 2d 20 2d 20 34 34 20 63 6f 6c 31 20 46 52 4f   - - 44 col1 FRO
3240: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
3250: 2d 2d 2d 2d 0d 0a 31 0d 0a 31 0d 0a 32 31 0d 0a  ----..1..1..21..
3260: 33 38 0d 0a 38 31 0d 0a 31 34 37 0d 0a 0d 0a 73  38..81..147....s
3270: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
3280: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
3290: 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
32a0: 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
32b0: 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
32c0: 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
32d0: 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20  lumns..query II 
32e0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39  rowsort label-69
32f0: 0d 0a 53 45 4c 45 43 54 20 28 20 2b 20 63 6f 6c  ..SELECT ( + col
3300: 31 20 29 20 41 53 20 63 6f 6c 32 2c 20 38 30 20  1 ) AS col2, 80 
3310: 2a 20 63 6f 6c 31 20 2f 20 2d 20 2d 20 34 34 20  * col1 / - - 44 
3320: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
3330: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d  S cor0..----..1.
3340: 0a 31 0d 0a 32 31 0d 0a 33 38 0d 0a 38 31 0d 0a  .1..21..38..81..
3350: 31 34 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  147....onlyif my
3360: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
3370: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
3380: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
3390: 37 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  70..SELECT DISTI
33a0: 4e 43 54 20 4d 49 4e 28 20 44 49 53 54 49 4e 43  NCT MIN( DISTINC
33b0: 54 20 2d 20 63 6f 6c 31 20 29 20 41 53 20 63 6f  T - col1 ) AS co
33c0: 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
33d0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 31 0d  cor0..----..-81.
33e0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
33f0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
3400: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
3410: 74 20 6c 61 62 65 6c 2d 37 30 0d 0a 53 45 4c 45  t label-70..SELE
3420: 43 54 20 44 49 53 54 49 4e 43 54 20 4d 49 4e 20  CT DISTINCT MIN 
3430: 28 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  ( DISTINCT - col
3440: 31 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  1 ) AS col0 FROM
3450: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
3460: 2d 2d 2d 0d 0a 2d 38 31 0d 0a 0d 0a 71 75 65 72  ---..-81....quer
3470: 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
3480: 4c 45 43 54 20 41 4c 4c 20 2d 20 37 32 2c 20 2b  LECT ALL - 72, +
3490: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
34a0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
34b0: 37 32 0d 0a 35 31 0d 0a 2d 37 32 0d 0a 38 35 0d  72..51..-72..85.
34c0: 0a 2d 37 32 0d 0a 39 31 0d 0a 0d 0a 71 75 65 72  .-72..91....quer
34d0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
34e0: 45 43 54 20 2b 20 36 35 20 2a 20 2b 20 63 6f 6c  ECT + 65 * + col
34f0: 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
3500: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 36 35 35 0d  or0..----..5655.
3510: 0a 36 33 30 35 0d 0a 39 37 35 0d 0a 0d 0a 6f 6e  .6305..975....on
3520: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
3530: 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
3540: 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
3550: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
3560: 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f  3..SELECT ALL co
3570: 6c 31 20 44 49 56 20 2b 20 63 6f 6c 30 20 41 53  l1 DIV + col0 AS
3580: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
3590: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20  AS cor0 WHERE ( 
35a0: 2d 20 2b 20 38 36 20 49 53 20 4e 4f 54 20 4e 55  - + 86 IS NOT NU
35b0: 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30  LL )..----..0..0
35c0: 0d 0a 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..5....skipif my
35d0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
35e0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
35f0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 33 0d 0a  wsort label-73..
3600: 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20  SELECT ALL col1 
3610: 2f 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32  / + col0 AS col2
3620: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
3630: 72 30 20 57 48 45 52 45 20 28 20 2d 20 2b 20 38  r0 WHERE ( - + 8
3640: 36 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 20 29 0d  6 IS NOT NULL ).
3650: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 35 0d 0a  .----..0..0..5..
3660: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
3670: 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
3680: 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
3690: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
36a0: 62 65 6c 2d 37 34 0d 0a 53 45 4c 45 43 54 20 44  bel-74..SELECT D
36b0: 49 53 54 49 4e 43 54 20 2d 20 2b 20 43 41 53 54  ISTINCT - + CAST
36c0: 28 20 2d 20 28 20 2d 20 2b 20 63 6f 6c 31 20 29  ( - ( - + col1 )
36d0: 20 41 53 20 53 49 47 4e 45 44 20 29 20 63 6f 6c   AS SIGNED ) col
36e0: 30 2c 20 43 41 53 54 28 20 2b 20 32 38 20 41 53  0, CAST( + 28 AS
36f0: 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74   SIGNED ) FROM t
3700: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
3710: 2d 0d 0a 2d 31 0d 0a 32 38 0d 0a 2d 32 31 0d 0a  -..-1..28..-21..
3720: 32 38 0d 0a 2d 38 31 0d 0a 32 38 0d 0a 0d 0a 73  28..-81..28....s
3730: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
3740: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
3750: 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
3760: 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
3770: 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
3780: 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
3790: 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20  lumns..query II 
37a0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 34  rowsort label-74
37b0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
37c0: 54 20 2d 20 2b 20 43 41 53 54 20 28 20 2d 20 28  T - + CAST ( - (
37d0: 20 2d 20 2b 20 63 6f 6c 31 20 29 20 41 53 20 49   - + col1 ) AS I
37e0: 4e 54 45 47 45 52 20 29 20 63 6f 6c 30 2c 20 43  NTEGER ) col0, C
37f0: 41 53 54 20 28 20 2b 20 32 38 20 41 53 20 49 4e  AST ( + 28 AS IN
3800: 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62  TEGER ) FROM tab
3810: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
3820: 0a 2d 31 0d 0a 32 38 0d 0a 2d 32 31 0d 0a 32 38  .-1..28..-21..28
3830: 0d 0a 2d 38 31 0d 0a 32 38 0d 0a 0d 0a 71 75 65  ..-81..28....que
3840: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
3850: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
3860: 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
3870: 20 4e 4f 54 20 63 6f 6c 30 20 2b 20 2d 20 63 6f   NOT col0 + - co
3880: 6c 32 20 2a 20 2b 20 2d 20 63 6f 6c 31 20 2b 20  l2 * + - col1 + 
3890: 2b 20 2b 20 63 6f 6c 30 20 3d 20 4e 55 4c 4c 0d  + + col0 = NULL.
38a0: 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
38b0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
38c0: 20 41 4c 4c 20 37 38 20 46 52 4f 4d 20 74 61 62   ALL 78 FROM tab
38d0: 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
38e0: 39 30 20 2a 20 2b 20 28 20 2d 20 2d 20 63 6f 6c  90 * + ( - - col
38f0: 32 20 29 20 2b 20 63 6f 6c 31 20 49 53 20 4e 4f  2 ) + col1 IS NO
3900: 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 37 38  T NULL..----..78
3910: 0d 0a 37 38 0d 0a 37 38 0d 0a 0d 0a 6f 6e 6c 79  ..78..78....only
3920: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
3930: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
3940: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
3950: 61 62 65 6c 2d 37 37 0d 0a 53 45 4c 45 43 54 20  abel-77..SELECT 
3960: 28 20 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  ( - + COUNT( * )
3970: 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   ) col1 FROM tab
3980: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
3990: 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .-3....skipif my
39a0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
39b0: 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
39c0: 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
39d0: 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
39e0: 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
39f0: 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
3a00: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
3a10: 61 62 65 6c 2d 37 37 0d 0a 53 45 4c 45 43 54 20  abel-77..SELECT 
3a20: 28 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  ( - + COUNT ( * 
3a30: 29 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  ) ) col1 FROM ta
3a40: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
3a50: 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..-3....query I 
3a60: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
3a70: 41 4c 4c 20 2b 20 37 33 20 2a 20 2d 20 63 6f 6c  ALL + 73 * - col
3a80: 31 20 2a 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f  1 * + col0 AS co
3a90: 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
3aa0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 31 30  cor0..----..-310
3ab0: 32 35 0d 0a 2d 33 31 32 32 32 31 0d 0a 2d 35 32  25..-312221..-52
3ac0: 31 32 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  122....query III
3ad0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
3ae0: 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32   ALL * FROM tab2
3af0: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b   AS cor0 WHERE +
3b00: 20 34 32 20 2b 20 33 37 20 49 53 20 4e 4f 54 20   42 + 37 IS NOT 
3b10: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  NULL..----..9 va
3b20: 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
3b30: 37 35 63 39 39 38 61 61 35 33 61 63 38 33 32 31  75c998aa53ac8321
3b40: 38 63 62 66 32 66 65 62 39 36 32 64 30 61 34 39  8cbf2feb962d0a49
3b50: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
3b60: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  ort..SELECT - co
3b70: 6c 30 20 2a 20 2b 20 2d 20 63 6f 6c 31 20 2a 20  l0 * + - col1 * 
3b80: 2b 20 63 6f 6c 30 20 2d 20 2b 20 2b 20 35 39 20  + col0 - + + 59 
3b90: 2a 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  * + col1 FROM ta
3ba0: 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33  b1 cor0..----..3
3bb0: 35 35 38 38 0d 0a 33 35 38 33 30 0d 0a 33 38 36  5588..35830..386
3bc0: 34 33 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  434....query I r
3bd0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
3be0: 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 2b 20 34 39   + col2 * + + 49
3bf0: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
3c00: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 30 33 0d  r0..----..-2303.
3c10: 0a 2d 34 38 35 31 0d 0a 2d 34 39 30 0d 0a 0d 0a  .-4851..-490....
3c20: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
3c30: 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72  AST syntax: aggr
3c40: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49  egate syntax: SI
3c50: 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
3c60: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
3c70: 65 6c 2d 38 32 0d 0a 53 45 4c 45 43 54 20 41 4c  el-82..SELECT AL
3c80: 4c 20 2d 20 34 20 2a 20 2d 20 4d 41 58 28 20 43  L - 4 * - MAX( C
3c90: 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
3ca0: 4e 45 44 20 29 20 29 20 46 52 4f 4d 20 74 61 62  NED ) ) FROM tab
3cb0: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
3cc0: 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
3cd0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
3ce0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
3cf0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 32  rowsort label-82
3d00: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 34  ..SELECT ALL - 4
3d10: 20 2a 20 2d 20 4d 41 58 20 28 20 43 41 53 54 20   * - MAX ( CAST 
3d20: 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
3d30: 52 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31 20  R ) ) FROM tab1 
3d40: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
3d50: 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ULL....query I r
3d60: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
3d70: 6f 6c 32 20 2b 20 34 20 41 53 20 63 6f 6c 31 20  ol2 + 4 AS col1 
3d80: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
3d90: 0a 31 30 33 0d 0a 31 34 0d 0a 35 31 0d 0a 0d 0a  .103..14..51....
3da0: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
3db0: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
3dc0: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57  CT * FROM tab1 W
3dd0: 48 45 52 45 20 4e 4f 54 20 2b 20 31 38 20 2a 20  HERE NOT + 18 * 
3de0: 2b 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 31 20  + col0 * - col1 
3df0: 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
3e00: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  -....query II ro
3e10: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
3e20: 6c 30 20 2b 20 2b 20 2d 20 39 20 41 53 20 63 6f  l0 + + - 9 AS co
3e30: 6c 31 2c 20 2d 20 38 35 20 46 52 4f 4d 20 74 61  l1, - 85 FROM ta
3e40: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 36 0d 0a 2d 38 35  b0..----..6..-85
3e50: 0d 0a 37 38 0d 0a 2d 38 35 0d 0a 38 38 0d 0a 2d  ..78..-85..88..-
3e60: 38 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  85....query III 
3e70: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
3e80: 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ALL * FROM tab2 
3e90: 57 48 45 52 45 20 2d 20 36 34 20 49 53 20 4e 55  WHERE - 64 IS NU
3ea0: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
3eb0: 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
3ec0: 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20  LECT ALL - col2 
3ed0: 2b 20 2b 20 34 38 2c 20 63 6f 6c 32 20 46 52 4f  + + 48, col2 FRO
3ee0: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
3ef0: 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 35 38 0d 0a 32  ----..-10..58..2
3f00: 35 0d 0a 32 33 0d 0a 38 0d 0a 34 30 0d 0a 0d 0a  5..23..8..40....
3f10: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
3f20: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31  .SELECT ALL col1
3f30: 20 2b 20 39 34 20 46 52 4f 4d 20 74 61 62 31 0d   + 94 FROM tab1.
3f40: 0a 2d 2d 2d 2d 0d 0a 31 30 38 0d 0a 31 34 31 0d  .----..108..141.
3f50: 0a 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .99....query I r
3f60: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
3f70: 4c 4c 20 2b 20 2b 20 33 31 20 41 53 20 63 6f 6c  LL + + 31 AS col
3f80: 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
3f90: 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
3fa0: 61 62 31 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d  ab1 AS cor1..---
3fb0: 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
3fc0: 69 6e 67 20 74 6f 20 64 31 65 62 64 31 63 65 61  ing to d1ebd1cea
3fd0: 34 61 39 37 37 33 30 36 39 61 66 33 34 66 62 66  4a9773069af34fbf
3fe0: 38 65 61 33 35 34 30 0d 0a 0d 0a 71 75 65 72 79  8ea3540....query
3ff0: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
4000: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  LECT * FROM tab1
4010: 20 57 48 45 52 45 20 28 20 38 35 20 49 53 20 4e   WHERE ( 85 IS N
4020: 4f 54 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d  OT NULL )..----.
4030: 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
4040: 67 20 74 6f 20 63 36 63 30 61 34 31 31 31 62 33  g to c6c0a4111b3
4050: 36 64 30 34 64 62 63 38 31 31 61 31 31 65 34 64  6d04dbc811a11e4d
4060: 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20 49  54cad....query I
4070: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
4080: 20 44 49 53 54 49 4e 43 54 20 28 20 2b 20 36 37   DISTINCT ( + 67
4090: 20 29 20 2a 20 2d 20 63 6f 6c 31 20 41 53 20 63   ) * - col1 AS c
40a0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
40b0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34   cor0..----..-14
40c0: 30 37 0d 0a 2d 35 34 32 37 0d 0a 2d 36 37 0d 0a  07..-5427..-67..
40d0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
40e0: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
40f0: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
4100: 73 6f 72 74 20 6c 61 62 65 6c 2d 39 32 0d 0a 53  sort label-92..S
4110: 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a  ELECT + COUNT( *
4120: 20 29 20 2b 20 4d 41 58 28 20 2b 20 63 6f 6c 32   ) + MAX( + col2
4130: 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
4140: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 39 0d 0a  cor0..----..99..
4150: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
4160: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
4170: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
4180: 20 6c 61 62 65 6c 2d 39 32 0d 0a 53 45 4c 45 43   label-92..SELEC
4190: 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  T + COUNT ( * ) 
41a0: 2b 20 4d 41 58 20 28 20 2b 20 63 6f 6c 32 20 29  + MAX ( + col2 )
41b0: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
41c0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 39 0d 0a 0d 0a  r0..----..99....
41d0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
41e0: 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
41f0: 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
4200: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
4210: 2d 39 33 0d 0a 53 45 4c 45 43 54 20 2d 20 31 31  -93..SELECT - 11
4220: 20 44 49 56 20 39 39 20 2b 20 2b 20 63 6f 6c 31   DIV 99 + + col1
4230: 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   + col2 FROM tab
4240: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
4250: 0a 31 31 30 0d 0a 31 31 35 0d 0a 36 34 0d 0a 0d  .110..115..64...
4260: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
4270: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
4280: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
4290: 6c 61 62 65 6c 2d 39 33 0d 0a 53 45 4c 45 43 54  label-93..SELECT
42a0: 20 2d 20 31 31 20 2f 20 39 39 20 2b 20 2b 20 63   - 11 / 99 + + c
42b0: 6f 6c 31 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20  ol1 + col2 FROM 
42c0: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
42d0: 2d 2d 0d 0a 31 31 30 0d 0a 31 31 35 0d 0a 36 34  --..110..115..64
42e0: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
42f0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  ort..SELECT + co
4300: 6c 31 20 2b 20 37 34 20 2b 20 2d 20 63 6f 6c 32  l1 + 74 + - col2
4310: 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d   FROM tab2 cor0.
4320: 0a 2d 2d 2d 2d 0d 0a 31 30 32 0d 0a 31 31 31 0d  .----..102..111.
4330: 0a 38 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .83....query I r
4340: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
4350: 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 31   + col0 + + col1
4360: 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74   + - col0 FROM t
4370: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
4380: 2d 0d 0a 2d 31 35 33 0d 0a 2d 31 39 33 0d 0a 35  -..-153..-193..5
4390: 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
43a0: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
43b0: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
43c0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 36  rowsort label-96
43d0: 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 4d 41 58  ..SELECT + - MAX
43e0: 28 20 2d 20 33 35 20 29 20 2b 20 2d 20 43 4f 55  ( - 35 ) + - COU
43f0: 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  NT( * ) FROM tab
4400: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
4410: 0a 33 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .32....skipif my
4420: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
4430: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
4440: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 36 0d 0a  wsort label-96..
4450: 53 45 4c 45 43 54 20 2b 20 2d 20 4d 41 58 20 28  SELECT + - MAX (
4460: 20 2d 20 33 35 20 29 20 2b 20 2d 20 43 4f 55 4e   - 35 ) + - COUN
4470: 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  T ( * ) FROM tab
4480: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
4490: 0a 33 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .32....onlyif my
44a0: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
44b0: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
44c0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
44d0: 39 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  97..SELECT DISTI
44e0: 4e 43 54 20 34 32 20 2a 20 43 4f 55 4e 54 28 20  NCT 42 * COUNT( 
44f0: 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53  * ) FROM tab2 AS
4500: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 36   cor0..----..126
4510: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
4520: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
4530: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
4540: 72 74 20 6c 61 62 65 6c 2d 39 37 0d 0a 53 45 4c  rt label-97..SEL
4550: 45 43 54 20 44 49 53 54 49 4e 43 54 20 34 32 20  ECT DISTINCT 42 
4560: 2a 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52  * COUNT ( * ) FR
4570: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
4580: 0a 2d 2d 2d 2d 0d 0a 31 32 36 0d 0a 0d 0a 6f 6e  .----..126....on
4590: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
45a0: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
45b0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
45c0: 20 6c 61 62 65 6c 2d 39 38 0d 0a 53 45 4c 45 43   label-98..SELEC
45d0: 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b  T - COUNT( * ) +
45e0: 20 2b 20 2b 20 38 33 20 2b 20 33 37 20 46 52 4f   + + 83 + 37 FRO
45f0: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
4600: 2d 2d 2d 2d 0d 0a 31 31 37 0d 0a 0d 0a 73 6b 69  ----..117....ski
4610: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
4620: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
4630: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
4640: 6c 2d 39 38 0d 0a 53 45 4c 45 43 54 20 2d 20 43  l-98..SELECT - C
4650: 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2b 20 2b  OUNT ( * ) + + +
4660: 20 38 33 20 2b 20 33 37 20 46 52 4f 4d 20 74 61   83 + 37 FROM ta
4670: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
4680: 0d 0a 31 31 37 0d 0a 0d 0a 71 75 65 72 79 20 49  ..117....query I
4690: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
46a0: 20 2d 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 31 37   - + col0 + - 17
46b0: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
46c0: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
46d0: 0d 0a 2d 31 30 32 0d 0a 2d 31 30 38 0d 0a 2d 36  ..-102..-108..-6
46e0: 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  8....onlyif mysq
46f0: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
4700: 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
4710: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
4720: 6c 61 62 65 6c 2d 31 30 30 0d 0a 53 45 4c 45 43  label-100..SELEC
4730: 54 20 41 4c 4c 20 38 32 20 2b 20 35 31 20 41 53  T ALL 82 + 51 AS
4740: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
4750: 57 48 45 52 45 20 2d 20 2d 20 63 6f 6c 31 20 4e  WHERE - - col1 N
4760: 4f 54 20 42 45 54 57 45 45 4e 20 2b 20 43 41 53  OT BETWEEN + CAS
4770: 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
4780: 44 20 29 20 2a 20 2d 20 2b 20 63 6f 6c 32 20 41  D ) * - + col2 A
4790: 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  ND NULL..----...
47a0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
47b0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
47c0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
47d0: 6c 61 62 65 6c 2d 31 30 30 0d 0a 53 45 4c 45 43  label-100..SELEC
47e0: 54 20 41 4c 4c 20 38 32 20 2b 20 35 31 20 41 53  T ALL 82 + 51 AS
47f0: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
4800: 57 48 45 52 45 20 2d 20 2d 20 63 6f 6c 31 20 4e  WHERE - - col1 N
4810: 4f 54 20 42 45 54 57 45 45 4e 20 2b 20 43 41 53  OT BETWEEN + CAS
4820: 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
4830: 47 45 52 20 29 20 2a 20 2d 20 2b 20 63 6f 6c 32  GER ) * - + col2
4840: 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   AND NULL..----.
4850: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
4860: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
4870: 20 35 34 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20   54 + col0 FROM 
4880: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 30 30 0d  tab2..----..100.
4890: 0a 31 31 38 0d 0a 31 32 39 0d 0a 0d 0a 6f 6e 6c  .118..129....onl
48a0: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
48b0: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
48c0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
48d0: 6c 61 62 65 6c 2d 31 30 32 0d 0a 53 45 4c 45 43  label-102..SELEC
48e0: 54 20 44 49 53 54 49 4e 43 54 20 2b 20 36 31 20  T DISTINCT + 61 
48f0: 2b 20 43 4f 55 4e 54 28 20 63 6f 6c 30 20 29 20  + COUNT( col0 ) 
4900: 2b 20 2d 20 32 36 20 46 52 4f 4d 20 74 61 62 31  + - 26 FROM tab1
4910: 0d 0a 2d 2d 2d 2d 0d 0a 33 38 0d 0a 0d 0a 73 6b  ..----..38....sk
4920: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
4930: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
4940: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
4950: 65 6c 2d 31 30 32 0d 0a 53 45 4c 45 43 54 20 44  el-102..SELECT D
4960: 49 53 54 49 4e 43 54 20 2b 20 36 31 20 2b 20 43  ISTINCT + 61 + C
4970: 4f 55 4e 54 20 28 20 63 6f 6c 30 20 29 20 2b 20  OUNT ( col0 ) + 
4980: 2d 20 32 36 20 46 52 4f 4d 20 74 61 62 31 0d 0a  - 26 FROM tab1..
4990: 2d 2d 2d 2d 0d 0a 33 38 0d 0a 0d 0a 6f 6e 6c 79  ----..38....only
49a0: 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
49b0: 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
49c0: 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
49d0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 33  owsort label-103
49e0: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c  ..SELECT ALL col
49f0: 30 20 44 49 56 20 2b 20 2d 20 32 36 20 2d 20 2b  0 DIV + - 26 - +
4a00: 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52   col0 AS col2 FR
4a10: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
4a20: 31 30 30 0d 0a 2d 31 35 0d 0a 2d 39 30 0d 0a 0d  100..-15..-90...
4a30: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
4a40: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
4a50: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
4a60: 6c 61 62 65 6c 2d 31 30 33 0d 0a 53 45 4c 45 43  label-103..SELEC
4a70: 54 20 41 4c 4c 20 63 6f 6c 30 20 2f 20 2b 20 2d  T ALL col0 / + -
4a80: 20 32 36 20 2d 20 2b 20 63 6f 6c 30 20 41 53 20   26 - + col0 AS 
4a90: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
4aa0: 2d 2d 2d 2d 0d 0a 2d 31 30 30 0d 0a 2d 31 35 0d  ----..-100..-15.
4ab0: 0a 2d 39 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .-90....query II
4ac0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
4ad0: 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
4ae0: 4d 20 74 61 62 30 20 57 48 45 52 45 20 2b 20 28  M tab0 WHERE + (
4af0: 20 2b 20 63 6f 6c 31 20 29 20 2d 20 34 37 20 3c   + col1 ) - 47 <
4b00: 3d 20 28 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d  = ( col1 )..----
4b10: 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
4b20: 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35 64 66  ng to c4b42765df
4b30: 66 39 34 65 61 61 61 34 36 30 34 30 65 35 33 37  f94eaaa46040e537
4b40: 66 62 34 33 62 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  fb43b7....onlyif
4b50: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
4b60: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
4b70: 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
4b80: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35 0d 0a  sort label-105..
4b90: 53 45 4c 45 43 54 20 63 6f 6c 31 20 2a 20 43 41  SELECT col1 * CA
4ba0: 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
4bb0: 45 44 20 29 20 2a 20 2d 20 2b 20 34 20 46 52 4f  ED ) * - + 4 FRO
4bc0: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
4bd0: 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
4be0: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
4bf0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
4c00: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
4c10: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
4c20: 30 35 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20  05..SELECT col1 
4c30: 2a 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  * CAST ( NULL AS
4c40: 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2d 20 2b   INTEGER ) * - +
4c50: 20 34 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   4 FROM tab2 AS 
4c60: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
4c70: 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
4c80: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
4c90: 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
4ca0: 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
4cb0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
4cc0: 2d 31 30 36 0d 0a 53 45 4c 45 43 54 20 44 49 53  -106..SELECT DIS
4cd0: 54 49 4e 43 54 20 38 32 20 44 49 56 20 2b 20 2b  TINCT 82 DIV + +
4ce0: 20 34 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   4 col1 FROM tab
4cf0: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
4d00: 0a 32 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .20....skipif my
4d10: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
4d20: 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
4d30: 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
4d40: 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
4d50: 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
4d60: 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
4d70: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
4d80: 61 62 65 6c 2d 31 30 36 0d 0a 53 45 4c 45 43 54  abel-106..SELECT
4d90: 20 44 49 53 54 49 4e 43 54 20 38 32 20 2f 20 2b   DISTINCT 82 / +
4da0: 20 2b 20 34 20 63 6f 6c 31 20 46 52 4f 4d 20 74   + 4 col1 FROM t
4db0: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
4dc0: 2d 0d 0a 32 30 0d 0a 0d 0a 71 75 65 72 79 20 49  -..20....query I
4dd0: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
4de0: 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
4df0: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
4e00: 57 48 45 52 45 20 2b 20 37 34 20 3c 20 28 20 63  WHERE + 74 < ( c
4e10: 6f 6c 31 20 2f 20 63 6f 6c 30 20 2a 20 2b 20 35  ol1 / col0 * + 5
4e20: 39 20 2d 20 2b 20 30 20 29 0d 0a 2d 2d 2d 2d 0d  9 - + 0 )..----.
4e30: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
4e40: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
4e50: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
4e60: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 38 0d  wsort label-108.
4e70: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
4e80: 20 2d 20 43 4f 55 4e 54 28 20 2d 20 2b 20 28 20   - COUNT( - + ( 
4e90: 2d 20 2d 20 63 6f 6c 30 20 29 20 29 20 41 53 20  - - col0 ) ) AS 
4ea0: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
4eb0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  S cor0..----..-3
4ec0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
4ed0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
4ee0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
4ef0: 72 74 20 6c 61 62 65 6c 2d 31 30 38 0d 0a 53 45  rt label-108..SE
4f00: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
4f10: 43 4f 55 4e 54 20 28 20 2d 20 2b 20 28 20 2d 20  COUNT ( - + ( - 
4f20: 2d 20 63 6f 6c 30 20 29 20 29 20 41 53 20 63 6f  - col0 ) ) AS co
4f30: 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
4f40: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a  cor0..----..-3..
4f50: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
4f60: 74 0d 0a 53 45 4c 45 43 54 20 32 37 20 2a 20 2b  t..SELECT 27 * +
4f70: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
4f80: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 34 32  cor0..----..1242
4f90: 0d 0a 31 37 32 38 0d 0a 32 30 32 35 0d 0a 0d 0a  ..1728..2025....
4fa0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
4fb0: 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
4fc0: 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
4fd0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
4fe0: 2d 31 31 30 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  -110..SELECT col
4ff0: 30 20 44 49 56 20 2d 20 2b 20 63 6f 6c 31 20 46  0 DIV - + col1 F
5000: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
5010: 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
5020: 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
5030: 2d 0d 0a 2d 31 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73  -..-1..0..0....s
5040: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
5050: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
5060: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
5070: 62 65 6c 2d 31 31 30 0d 0a 53 45 4c 45 43 54 20  bel-110..SELECT 
5080: 63 6f 6c 30 20 2f 20 2d 20 2b 20 63 6f 6c 31 20  col0 / - + col1 
5090: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
50a0: 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  0 WHERE NOT NULL
50b0: 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
50c0: 2d 2d 0d 0a 2d 31 0d 0a 30 0d 0a 30 0d 0a 0d 0a  --..-1..0..0....
50d0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
50e0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
50f0: 20 2d 20 36 20 2a 20 2b 20 34 20 41 53 20 63 6f   - 6 * + 4 AS co
5100: 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  l1 FROM tab1 cor
5110: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 34 0d 0a 0d 0a  0..----..-24....
5120: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
5130: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
5140: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41  CT * FROM tab2 A
5150: 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
5160: 20 4e 55 4c 4c 20 3c 20 2d 20 63 6f 6c 30 0d 0a   NULL < - col0..
5170: 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
5180: 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
5190: 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
51a0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
51b0: 72 74 20 6c 61 62 65 6c 2d 31 31 33 0d 0a 53 45  rt label-113..SE
51c0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
51d0: 2b 20 33 31 20 44 49 56 20 2b 20 63 6f 6c 32 20  + 31 DIV + col2 
51e0: 2b 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  + + col2 FROM ta
51f0: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
5200: 0d 0a 31 33 0d 0a 34 37 0d 0a 39 39 0d 0a 0d 0a  ..13..47..99....
5210: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
5220: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
5230: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
5240: 61 62 65 6c 2d 31 31 33 0d 0a 53 45 4c 45 43 54  abel-113..SELECT
5250: 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 33 31   DISTINCT + + 31
5260: 20 2f 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 63 6f   / + col2 + + co
5270: 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
5280: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 0d 0a  cor0..----..13..
5290: 34 37 0d 0a 39 39 0d 0a 0d 0a 71 75 65 72 79 20  47..99....query 
52a0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
52b0: 54 20 41 4c 4c 20 28 20 33 30 20 29 20 2b 20 2d  T ALL ( 30 ) + -
52c0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
52d0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
52e0: 35 31 0d 0a 32 39 0d 0a 39 0d 0a 0d 0a 71 75 65  51..29..9....que
52f0: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
5300: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
5310: 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 2b  b1 WHERE NOT + +
5320: 20 63 6f 6c 31 20 2f 20 2b 20 2b 20 32 38 20 49   col1 / + + 28 I
5330: 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
5340: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
5350: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
5360: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
5370: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 36  owsort label-116
5380: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 28  ..SELECT ALL + (
5390: 20 53 55 4d 28 20 44 49 53 54 49 4e 43 54 20 63   SUM( DISTINCT c
53a0: 6f 6c 30 20 29 20 29 20 46 52 4f 4d 20 74 61 62  ol0 ) ) FROM tab
53b0: 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 39 0d 0a 0d 0a  0..----..199....
53c0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
53d0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
53e0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
53f0: 61 62 65 6c 2d 31 31 36 0d 0a 53 45 4c 45 43 54  abel-116..SELECT
5400: 20 41 4c 4c 20 2b 20 28 20 53 55 4d 20 28 20 44   ALL + ( SUM ( D
5410: 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 29 20 29  ISTINCT col0 ) )
5420: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
5430: 0d 0a 31 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49  ..199....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 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32  T - col1 AS col2
5460: 2c 20 2b 20 31 34 20 41 53 20 63 6f 6c 32 20 46  , + 14 AS col2 F
5470: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
5480: 2d 31 0d 0a 31 34 0d 0a 2d 32 31 0d 0a 31 34 0d  -1..14..-21..14.
5490: 0a 2d 38 31 0d 0a 31 34 0d 0a 0d 0a 6f 6e 6c 79  .-81..14....only
54a0: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
54b0: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
54c0: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
54d0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 38  owsort label-118
54e0: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41 53  ..SELECT ALL CAS
54f0: 54 28 20 2d 20 28 20 2b 20 63 6f 6c 32 20 29 20  T( - ( + col2 ) 
5500: 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d  AS SIGNED ) FROM
5510: 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30   tab0..----..-10
5520: 0d 0a 2d 34 37 0d 0a 2d 39 39 0d 0a 0d 0a 73 6b  ..-47..-99....sk
5530: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
5540: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
5550: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
5560: 65 6c 2d 31 31 38 0d 0a 53 45 4c 45 43 54 20 41  el-118..SELECT A
5570: 4c 4c 20 43 41 53 54 20 28 20 2d 20 28 20 2b 20  LL CAST ( - ( + 
5580: 63 6f 6c 32 20 29 20 41 53 20 49 4e 54 45 47 45  col2 ) AS INTEGE
5590: 52 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  R ) FROM tab0..-
55a0: 2d 2d 2d 0d 0a 2d 31 30 0d 0a 2d 34 37 0d 0a 2d  ---..-10..-47..-
55b0: 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  99....onlyif mys
55c0: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
55d0: 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69  yntax: DIV for i
55e0: 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
55f0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
5600: 72 74 20 6c 61 62 65 6c 2d 31 31 39 0d 0a 53 45  rt label-119..SE
5610: 4c 45 43 54 20 43 4f 55 4e 54 28 20 2d 20 31 39  LECT COUNT( - 19
5620: 20 29 20 44 49 56 20 2d 20 2d 20 31 34 20 41 53   ) DIV - - 14 AS
5630: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
5640: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .----..0....skip
5650: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
5660: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
5670: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
5680: 2d 31 31 39 0d 0a 53 45 4c 45 43 54 20 43 4f 55  -119..SELECT COU
5690: 4e 54 20 28 20 2d 20 31 39 20 29 20 2f 20 2d 20  NT ( - 19 ) / - 
56a0: 2d 20 31 34 20 41 53 20 63 6f 6c 30 20 46 52 4f  - 14 AS col0 FRO
56b0: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab1..----..0.
56c0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
56d0: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
56e0: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
56f0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 30 0d  wsort label-120.
5700: 0a 53 45 4c 45 43 54 20 2d 20 4d 49 4e 28 20 44  .SELECT - MIN( D
5710: 49 53 54 49 4e 43 54 20 34 30 20 29 20 41 53 20  ISTINCT 40 ) AS 
5720: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col2 FROM tab2..
5730: 2d 2d 2d 2d 0d 0a 2d 34 30 0d 0a 0d 0a 73 6b 69  ----..-40....ski
5740: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
5750: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
5760: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
5770: 6c 2d 31 32 30 0d 0a 53 45 4c 45 43 54 20 2d 20  l-120..SELECT - 
5780: 4d 49 4e 20 28 20 44 49 53 54 49 4e 43 54 20 34  MIN ( DISTINCT 4
5790: 30 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  0 ) AS col2 FROM
57a0: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 30   tab2..----..-40
57b0: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
57c0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
57d0: 20 2d 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c 32 20   - col1, + col2 
57e0: 2a 20 34 35 20 41 53 20 63 6f 6c 32 20 46 52 4f  * 45 AS col2 FRO
57f0: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab1..----..-1
5800: 34 0d 0a 34 33 32 30 0d 0a 2d 34 37 0d 0a 33 30  4..4320..-47..30
5810: 36 30 0d 0a 2d 35 0d 0a 32 36 35 35 0d 0a 0d 0a  60..-5..2655....
5820: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
5830: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
5840: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
5850: 72 74 20 6c 61 62 65 6c 2d 31 32 32 0d 0a 53 45  rt label-122..SE
5860: 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20  LECT ALL COUNT( 
5870: 2a 20 29 20 2a 20 2b 20 2d 20 37 39 20 41 53 20  * ) * + - 79 AS 
5880: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
5890: 2d 2d 2d 2d 0d 0a 2d 32 33 37 0d 0a 0d 0a 73 6b  ----..-237....sk
58a0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
58b0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
58c0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
58d0: 65 6c 2d 31 32 32 0d 0a 53 45 4c 45 43 54 20 41  el-122..SELECT A
58e0: 4c 4c 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a  LL COUNT ( * ) *
58f0: 20 2b 20 2d 20 37 39 20 41 53 20 63 6f 6c 32 20   + - 79 AS col2 
5900: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
5910: 0a 2d 32 33 37 0d 0a 0d 0a 73 6b 69 70 69 66 20  .-237....skipif 
5920: 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
5930: 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
5940: 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
5950: 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
5960: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
5970: 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 37 33 20  rt..SELECT + 73 
5980: 63 6f 6c 30 2c 20 63 6f 6c 31 20 2b 20 2d 20 2b  col0, col1 + - +
5990: 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52   col0 AS col2 FR
59a0: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
59b0: 57 48 45 52 45 20 63 6f 6c 32 20 49 53 20 4e 4f  WHERE col2 IS NO
59c0: 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 37 33  T NULL..----..73
59d0: 0d 0a 2d 33 37 0d 0a 37 33 0d 0a 2d 34 34 0d 0a  ..-37..73..-44..
59e0: 37 33 0d 0a 2d 38 30 0d 0a 0d 0a 71 75 65 72 79  73..-80....query
59f0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
5a00: 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20  CT DISTINCT - + 
5a10: 34 32 20 2a 20 2b 20 63 6f 6c 30 20 46 52 4f 4d  42 * + col0 FROM
5a20: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
5a30: 2d 2d 2d 0d 0a 2d 31 39 33 32 0d 0a 2d 32 36 38  ---..-1932..-268
5a40: 38 0d 0a 2d 33 31 35 30 0d 0a 0d 0a 6f 6e 6c 79  8..-3150....only
5a50: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
5a60: 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20  syntax: DECIMAL 
5a70: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
5a80: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
5a90: 35 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2b  5..SELECT col0 +
5aa0: 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44   CAST( NULL AS D
5ab0: 45 43 49 4d 41 4c 20 29 20 41 53 20 63 6f 6c 30  ECIMAL ) AS col0
5ac0: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
5ad0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
5ae0: 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  NULL..NULL....sk
5af0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
5b00: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
5b10: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
5b20: 65 6c 2d 31 32 35 0d 0a 53 45 4c 45 43 54 20 63  el-125..SELECT c
5b30: 6f 6c 30 20 2b 20 43 41 53 54 20 28 20 4e 55 4c  ol0 + CAST ( NUL
5b40: 4c 20 41 53 20 52 45 41 4c 20 29 20 41 53 20 63  L AS REAL ) AS c
5b50: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
5b60: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
5b70: 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
5b80: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
5b90: 0d 0a 53 45 4c 45 43 54 20 2d 20 35 30 20 2a 20  ..SELECT - 50 * 
5ba0: 36 34 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  64 FROM tab1..--
5bb0: 2d 2d 0d 0a 2d 33 32 30 30 0d 0a 2d 33 32 30 30  --..-3200..-3200
5bc0: 0d 0a 2d 33 32 30 30 0d 0a 0d 0a 6f 6e 6c 79 69  ..-3200....onlyi
5bd0: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
5be0: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
5bf0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
5c00: 62 65 6c 2d 31 32 37 0d 0a 53 45 4c 45 43 54 20  bel-127..SELECT 
5c10: 2b 20 4d 49 4e 28 20 41 4c 4c 20 2d 20 33 39 20  + MIN( ALL - 39 
5c20: 29 20 2a 20 2b 20 33 34 20 41 53 20 63 6f 6c 31  ) * + 34 AS col1
5c30: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
5c40: 0d 0a 2d 31 33 32 36 0d 0a 0d 0a 73 6b 69 70 69  ..-1326....skipi
5c50: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
5c60: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
5c70: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
5c80: 31 32 37 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 49  127..SELECT + MI
5c90: 4e 20 28 20 41 4c 4c 20 2d 20 33 39 20 29 20 2a  N ( ALL - 39 ) *
5ca0: 20 2b 20 33 34 20 41 53 20 63 6f 6c 31 20 46 52   + 34 AS col1 FR
5cb0: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
5cc0: 31 33 32 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  1326....onlyif m
5cd0: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
5ce0: 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79  ax: aggregate sy
5cf0: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
5d00: 65 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67  e: DIV for integ
5d10: 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
5d20: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
5d30: 61 62 65 6c 2d 31 32 38 0d 0a 53 45 4c 45 43 54  abel-128..SELECT
5d40: 20 41 4c 4c 20 2d 20 43 41 53 54 28 20 2d 20 53   ALL - CAST( - S
5d50: 55 4d 28 20 44 49 53 54 49 4e 43 54 20 2d 20 33  UM( DISTINCT - 3
5d60: 37 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20  7 ) AS SIGNED ) 
5d70: 44 49 56 20 33 35 20 46 52 4f 4d 20 74 61 62 32  DIV 35 FROM tab2
5d80: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 73 6b  ..----..-1....sk
5d90: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
5da0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
5db0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
5dc0: 65 6c 2d 31 32 38 0d 0a 53 45 4c 45 43 54 20 41  el-128..SELECT A
5dd0: 4c 4c 20 2d 20 43 41 53 54 20 28 20 2d 20 53 55  LL - CAST ( - SU
5de0: 4d 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 33  M ( DISTINCT - 3
5df0: 37 20 29 20 41 53 20 49 4e 54 45 47 45 52 20 29  7 ) AS INTEGER )
5e00: 20 2f 20 33 35 20 46 52 4f 4d 20 74 61 62 32 0d   / 35 FROM tab2.
5e10: 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 71 75 65  .----..-1....que
5e20: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
5e30: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
5e40: 37 20 2a 20 2b 20 33 39 20 41 53 20 63 6f 6c 32  7 * + 39 AS col2
5e50: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
5e60: 0d 0a 32 37 33 0d 0a 0d 0a 71 75 65 72 79 20 49  ..273....query I
5e70: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
5e80: 20 2b 20 32 33 20 2d 20 63 6f 6c 30 20 46 52 4f   + 23 - col0 FRO
5e90: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36  M tab0..----..-6
5ea0: 34 0d 0a 2d 37 34 0d 0a 38 0d 0a 0d 0a 71 75 65  4..-74..8....que
5eb0: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
5ec0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
5ed0: 62 31 20 57 48 45 52 45 20 28 20 2d 20 63 6f 6c  b1 WHERE ( - col
5ee0: 31 20 2b 20 63 6f 6c 31 20 29 20 49 53 20 4e 55  1 + col1 ) IS NU
5ef0: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
5f00: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
5f10: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
5f20: 31 20 57 48 45 52 45 20 28 20 2b 20 28 20 2b 20  1 WHERE ( + ( + 
5f30: 63 6f 6c 31 20 29 20 29 20 42 45 54 57 45 45 4e  col1 ) ) BETWEEN
5f40: 20 2d 20 31 31 20 41 4e 44 20 28 20 4e 55 4c 4c   - 11 AND ( NULL
5f50: 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72   )..----....quer
5f60: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
5f70: 45 43 54 20 41 4c 4c 20 2d 20 37 30 20 46 52 4f  ECT ALL - 70 FRO
5f80: 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
5f90: 20 28 20 63 6f 6c 32 20 2b 20 2d 20 31 32 20 29   ( col2 + - 12 )
5fa0: 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
5fb0: 2d 37 30 0d 0a 2d 37 30 0d 0a 2d 37 30 0d 0a 0d  -70..-70..-70...
5fc0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
5fd0: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
5fe0: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
5ff0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
6000: 6c 2d 31 33 34 0d 0a 53 45 4c 45 43 54 20 44 49  l-134..SELECT DI
6010: 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 63 6f  STINCT + col1 co
6020: 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45  l0 FROM tab2 WHE
6030: 52 45 20 4e 4f 54 20 2b 20 28 20 43 41 53 54 28  RE NOT + ( CAST(
6040: 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
6050: 29 20 29 20 2a 20 38 36 20 3d 20 2b 20 63 6f 6c  ) ) * 86 = + col
6060: 30 20 2b 20 36 31 20 2a 20 38 39 0d 0a 2d 2d 2d  0 + 61 * 89..---
6070: 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  -....skipif mysq
6080: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
6090: 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
60a0: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
60b0: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
60c0: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
60d0: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
60e0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
60f0: 65 6c 2d 31 33 34 0d 0a 53 45 4c 45 43 54 20 44  el-134..SELECT D
6100: 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 63  ISTINCT + col1 c
6110: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 57 48  ol0 FROM tab2 WH
6120: 45 52 45 20 4e 4f 54 20 2b 20 28 20 43 41 53 54  ERE NOT + ( CAST
6130: 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
6140: 45 52 20 29 20 29 20 2a 20 38 36 20 3d 20 2b 20  ER ) ) * 86 = + 
6150: 63 6f 6c 30 20 2b 20 36 31 20 2a 20 38 39 0d 0a  col0 + 61 * 89..
6160: 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
6170: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
6180: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
6190: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
61a0: 2d 31 33 35 0d 0a 53 45 4c 45 43 54 20 44 49 53  -135..SELECT DIS
61b0: 54 49 4e 43 54 20 4d 41 58 28 20 2b 20 63 6f 6c  TINCT MAX( + col
61c0: 30 20 29 20 2b 20 33 38 20 41 53 20 63 6f 6c 30  0 ) + 38 AS col0
61d0: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
61e0: 0d 0a 31 32 39 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..129....skipif 
61f0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
6200: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
6210: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 33  rowsort label-13
6220: 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  5..SELECT DISTIN
6230: 43 54 20 4d 41 58 20 28 20 2b 20 63 6f 6c 30 20  CT MAX ( + col0 
6240: 29 20 2b 20 33 38 20 41 53 20 63 6f 6c 30 20 46  ) + 38 AS col0 F
6250: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
6260: 31 32 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  129....onlyif my
6270: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
6280: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
6290: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
62a0: 31 33 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  136..SELECT ALL 
62b0: 2d 20 38 37 20 2a 20 43 4f 55 4e 54 28 20 2a 20  - 87 * COUNT( * 
62c0: 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  ) FROM tab2..---
62d0: 2d 0d 0a 2d 32 36 31 0d 0a 0d 0a 73 6b 69 70 69  -..-261....skipi
62e0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
62f0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
6300: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
6310: 31 33 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  136..SELECT ALL 
6320: 2d 20 38 37 20 2a 20 43 4f 55 4e 54 20 28 20 2a  - 87 * COUNT ( *
6330: 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d   ) FROM tab2..--
6340: 2d 2d 0d 0a 2d 32 36 31 0d 0a 0d 0a 71 75 65 72  --..-261....quer
6350: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
6360: 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
6370: 20 74 61 62 32 20 57 48 45 52 45 20 63 6f 6c 30   tab2 WHERE col0
6380: 20 2a 20 2d 20 63 6f 6c 31 20 49 53 20 4e 55 4c   * - col1 IS NUL
6390: 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  L..----....onlyi
63a0: 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
63b0: 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
63c0: 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
63d0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 33 38 0d  wsort label-138.
63e0: 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 44  .SELECT + col0 D
63f0: 49 56 20 33 37 20 41 53 20 63 6f 6c 32 20 46 52  IV 37 AS col2 FR
6400: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30  OM tab0..----..0
6410: 0d 0a 32 0d 0a 32 0d 0a 0d 0a 73 6b 69 70 69 66  ..2..2....skipif
6420: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
6430: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
6440: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
6450: 33 38 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c  38..SELECT + col
6460: 30 20 2f 20 33 37 20 41 53 20 63 6f 6c 32 20 46  0 / 37 AS col2 F
6470: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
6480: 30 0d 0a 32 0d 0a 32 0d 0a 0d 0a 71 75 65 72 79  0..2..2....query
6490: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
64a0: 43 54 20 41 4c 4c 20 34 30 20 46 52 4f 4d 20 74  CT ALL 40 FROM t
64b0: 61 62 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 3e  ab1 WHERE NULL >
64c0: 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d   ( NULL )..----.
64d0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
64e0: 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
64f0: 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
6500: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
6510: 62 65 6c 2d 31 34 30 0d 0a 53 45 4c 45 43 54 20  bel-140..SELECT 
6520: 63 6f 6c 30 20 44 49 56 20 2d 20 28 20 2d 20 63  col0 DIV - ( - c
6530: 6f 6c 30 20 2a 20 63 6f 6c 31 20 29 20 41 53 20  ol0 * col1 ) AS 
6540: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col0 FROM tab1..
6550: 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d  ----..0..0..0...
6560: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
6570: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
6580: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
6590: 6c 61 62 65 6c 2d 31 34 30 0d 0a 53 45 4c 45 43  label-140..SELEC
65a0: 54 20 63 6f 6c 30 20 2f 20 2d 20 28 20 2d 20 63  T col0 / - ( - c
65b0: 6f 6c 30 20 2a 20 63 6f 6c 31 20 29 20 41 53 20  ol0 * col1 ) AS 
65c0: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col0 FROM tab1..
65d0: 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d  ----..0..0..0...
65e0: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
65f0: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
6600: 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
6610: 20 2b 20 37 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d   + 7 IS NULL..--
6620: 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
6630: 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
6640: 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
6650: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
6660: 20 6c 61 62 65 6c 2d 31 34 32 0d 0a 53 45 4c 45   label-142..SELE
6670: 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30  CT DISTINCT col0
6680: 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
6690: 20 33 34 20 4e 4f 54 20 42 45 54 57 45 45 4e 20   34 NOT BETWEEN 
66a0: 4e 55 4c 4c 20 41 4e 44 20 63 6f 6c 32 20 2a 20  NULL AND col2 * 
66b0: 2b 20 63 6f 6c 32 20 2b 20 2d 20 43 41 53 54 28  + col2 + - CAST(
66c0: 20 2d 20 63 6f 6c 32 20 41 53 20 53 49 47 4e 45   - col2 AS SIGNE
66d0: 44 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  D )..----....ski
66e0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
66f0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
6700: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
6710: 6c 2d 31 34 32 0d 0a 53 45 4c 45 43 54 20 44 49  l-142..SELECT DI
6720: 53 54 49 4e 43 54 20 63 6f 6c 30 20 46 52 4f 4d  STINCT col0 FROM
6730: 20 74 61 62 31 20 57 48 45 52 45 20 33 34 20 4e   tab1 WHERE 34 N
6740: 4f 54 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20  OT BETWEEN NULL 
6750: 41 4e 44 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c  AND col2 * + col
6760: 32 20 2b 20 2d 20 43 41 53 54 20 28 20 2d 20 63  2 + - CAST ( - c
6770: 6f 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20 29  ol2 AS INTEGER )
6780: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
6790: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
67a0: 54 20 34 32 20 2b 20 63 6f 6c 30 20 2a 20 2b 20  T 42 + col0 * + 
67b0: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
67c0: 2d 2d 2d 2d 0d 0a 31 32 35 37 0d 0a 31 33 39 0d  ----..1257..139.
67d0: 0a 31 38 36 39 0d 0a 0d 0a 71 75 65 72 79 20 49  .1869....query I
67e0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
67f0: 20 2d 20 35 32 20 2b 20 2b 20 63 6f 6c 31 20 46   - 52 + + col1 F
6800: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
6810: 2d 31 0d 0a 31 35 0d 0a 32 35 0d 0a 0d 0a 6f 6e  -1..15..25....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 53 49 47 4e 45 44  T syntax: SIGNED
6840: 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
6850: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
6860: 34 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  45..SELECT DISTI
6870: 4e 43 54 20 43 41 53 54 28 20 2d 20 31 39 20 41  NCT CAST( - 19 A
6880: 53 20 53 49 47 4e 45 44 20 29 20 2b 20 63 6f 6c  S SIGNED ) + col
6890: 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
68a0: 2d 0d 0a 32 37 0d 0a 34 35 0d 0a 35 36 0d 0a 0d  -..27..45..56...
68b0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
68c0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
68d0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
68e0: 6c 61 62 65 6c 2d 31 34 35 0d 0a 53 45 4c 45 43  label-145..SELEC
68f0: 54 20 44 49 53 54 49 4e 43 54 20 43 41 53 54 20  T DISTINCT CAST 
6900: 28 20 2d 20 31 39 20 41 53 20 49 4e 54 45 47 45  ( - 19 AS INTEGE
6910: 52 20 29 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20  R ) + col0 FROM 
6920: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 37 0d 0a  tab2..----..27..
6930: 34 35 0d 0a 35 36 0d 0a 0d 0a 71 75 65 72 79 20  45..56....query 
6940: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
6950: 54 20 41 4c 4c 20 2b 20 35 33 20 41 53 20 63 6f  T ALL + 53 AS co
6960: 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  l2 FROM tab1 WHE
6970: 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20  RE NOT ( NULL ) 
6980: 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
6990: 2d 0d 0a 35 33 0d 0a 35 33 0d 0a 35 33 0d 0a 0d  -..53..53..53...
69a0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
69b0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
69c0: 54 20 38 34 20 41 53 20 63 6f 6c 31 20 46 52 4f  T 84 AS col1 FRO
69d0: 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54  M tab1 WHERE NOT
69e0: 20 2b 20 38 31 20 49 53 20 4e 4f 54 20 4e 55 4c   + 81 IS NOT NUL
69f0: 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
6a00: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
6a10: 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 28 20  CT DISTINCT - ( 
6a20: 36 35 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  65 ) AS col2 FRO
6a30: 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54  M tab0 WHERE NOT
6a40: 20 2d 20 34 38 20 2b 20 2d 20 63 6f 6c 31 20 49   - 48 + - col1 I
6a50: 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
6a60: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
6a70: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  ort..SELECT + co
6a80: 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  l1 FROM tab1 WHE
6a90: 52 45 20 2b 20 63 6f 6c 32 20 4e 4f 54 20 42 45  RE + col2 NOT BE
6aa0: 54 57 45 45 4e 20 28 20 37 31 20 2a 20 2b 20 38  TWEEN ( 71 * + 8
6ab0: 20 29 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d   ) AND NULL..---
6ac0: 2d 0d 0a 31 34 0d 0a 34 37 0d 0a 35 0d 0a 0d 0a  -..14..47..5....
6ad0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
6ae0: 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2a 20 2d  .SELECT col1 * -
6af0: 20 39 36 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   96 AS col0 FROM
6b00: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
6b10: 2d 2d 2d 0d 0a 2d 34 38 39 36 0d 0a 2d 36 34 33  ---..-4896..-643
6b20: 32 0d 0a 2d 37 33 39 32 0d 0a 0d 0a 6f 6e 6c 79  2..-7392....only
6b30: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
6b40: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
6b50: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
6b60: 61 62 65 6c 2d 31 35 31 0d 0a 53 45 4c 45 43 54  abel-151..SELECT
6b70: 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 28 20 41 4c   ALL + COUNT( AL
6b80: 4c 20 33 20 29 20 46 52 4f 4d 20 74 61 62 31 20  L 3 ) FROM tab1 
6b90: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d  cor0..----..3...
6ba0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
6bb0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
6bc0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
6bd0: 6c 61 62 65 6c 2d 31 35 31 0d 0a 53 45 4c 45 43  label-151..SELEC
6be0: 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 20 28 20  T ALL + COUNT ( 
6bf0: 41 4c 4c 20 33 20 29 20 46 52 4f 4d 20 74 61 62  ALL 3 ) FROM tab
6c00: 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  1 cor0..----..3.
6c10: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
6c20: 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20  rt..SELECT col0 
6c30: 2a 20 2b 20 37 37 20 46 52 4f 4d 20 74 61 62 32  * + 77 FROM tab2
6c40: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
6c50: 33 35 34 32 0d 0a 34 39 32 38 0d 0a 35 37 37 35  3542..4928..5775
6c60: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
6c70: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32  ort..SELECT col2
6c80: 20 2a 20 2b 20 32 38 20 41 53 20 63 6f 6c 31 20   * + 28 AS col1 
6c90: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
6ca0: 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 35 32 0d 0a 31  0..----..1652..1
6cb0: 39 30 34 0d 0a 32 36 38 38 0d 0a 0d 0a 6f 6e 6c  904..2688....onl
6cc0: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
6cd0: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49  egate syntax: DI
6ce0: 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
6cf0: 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
6d00: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
6d10: 31 35 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  154..SELECT ALL 
6d20: 2b 20 38 33 20 44 49 56 20 2d 20 43 4f 55 4e 54  + 83 DIV - COUNT
6d30: 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ( * ) AS col1 FR
6d40: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
6d50: 32 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  27....skipif mys
6d60: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
6d70: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
6d80: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 35 34 0d 0a  sort label-154..
6d90: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 38 33 20  SELECT ALL + 83 
6da0: 2f 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  / - COUNT ( * ) 
6db0: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
6dc0: 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 37 0d 0a 0d 0a  2..----..-27....
6dd0: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
6de0: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
6df0: 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
6e00: 4e 4f 54 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 35  NOT - col2 + - 5
6e10: 36 20 2a 20 2d 20 36 33 20 4e 4f 54 20 42 45 54  6 * - 63 NOT BET
6e20: 57 45 45 4e 20 63 6f 6c 32 20 41 4e 44 20 2d 20  WEEN col2 AND - 
6e30: 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  col0..----....on
6e40: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
6e50: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
6e60: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
6e70: 20 6c 61 62 65 6c 2d 31 35 36 0d 0a 53 45 4c 45   label-156..SELE
6e80: 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 28 20  CT DISTINCT + ( 
6e90: 2d 20 53 55 4d 28 20 44 49 53 54 49 4e 43 54 20  - SUM( DISTINCT 
6ea0: 2d 20 63 6f 6c 32 20 29 20 29 20 41 53 20 63 6f  - col2 ) ) AS co
6eb0: 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l2 FROM tab1..--
6ec0: 2d 2d 0d 0a 32 32 33 0d 0a 0d 0a 73 6b 69 70 69  --..223....skipi
6ed0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
6ee0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
6ef0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
6f00: 31 35 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  156..SELECT DIST
6f10: 49 4e 43 54 20 2b 20 28 20 2d 20 53 55 4d 20 28  INCT + ( - SUM (
6f20: 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32   DISTINCT - col2
6f30: 20 29 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f   ) ) AS col2 FRO
6f40: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 32  M tab1..----..22
6f50: 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  3....query I row
6f60: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
6f70: 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  0 AS col2 FROM t
6f80: 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
6f90: 45 20 4e 4f 54 20 28 20 2d 20 33 30 20 2f 20 2b  E NOT ( - 30 / +
6fa0: 20 63 6f 6c 30 20 29 20 4e 4f 54 20 42 45 54 57   col0 ) NOT BETW
6fb0: 45 45 4e 20 28 20 4e 55 4c 4c 20 29 20 41 4e 44  EEN ( NULL ) AND
6fc0: 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d   ( NULL )..----.
6fd0: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
6fe0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
6ff0: 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   * FROM tab1 AS 
7000: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28  cor0 WHERE NOT (
7010: 20 2b 20 31 36 20 29 20 49 53 20 4e 55 4c 4c 0d   + 16 ) IS NULL.
7020: 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
7030: 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61  hashing to c6c0a
7040: 34 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31  4111b36d04dbc811
7050: 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 6f  a11e4d54cad....o
7060: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
7070: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
7080: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
7090: 74 20 6c 61 62 65 6c 2d 31 35 39 0d 0a 53 45 4c  t label-159..SEL
70a0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2b  ECT DISTINCT + +
70b0: 20 4d 49 4e 28 20 63 6f 6c 30 20 29 20 46 52 4f   MIN( col0 ) FRO
70c0: 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
70d0: 2d 0d 0a 31 35 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..15....skipif 
70e0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
70f0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
7100: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 35  rowsort label-15
7110: 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  9..SELECT DISTIN
7120: 43 54 20 2b 20 2b 20 4d 49 4e 20 28 20 63 6f 6c  CT + + MIN ( col
7130: 30 20 29 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  0 ) FROM tab0 co
7140: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 0d 0a  r0..----..15....
7150: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
7160: 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72  AST syntax: aggr
7170: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49  egate syntax: SI
7180: 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
7190: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
71a0: 65 6c 2d 31 36 30 0d 0a 53 45 4c 45 43 54 20 2d  el-160..SELECT -
71b0: 20 43 41 53 54 28 20 2b 20 43 4f 55 4e 54 28 20   CAST( + COUNT( 
71c0: 2a 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20  * ) AS SIGNED ) 
71d0: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
71e0: 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  0 WHERE NOT NULL
71f0: 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
7200: 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66  --..-3....skipif
7210: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
7220: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
7230: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
7240: 36 30 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53  60..SELECT - CAS
7250: 54 20 28 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  T ( + COUNT ( * 
7260: 29 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 46  ) AS INTEGER ) F
7270: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
7280: 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
7290: 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
72a0: 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79 20 49  -..-3....query I
72b0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
72c0: 20 2b 20 31 31 20 2a 20 2b 20 63 6f 6c 32 20 41   + 11 * + col2 A
72d0: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
72e0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
72f0: 32 35 33 0d 0a 34 34 30 0d 0a 36 33 38 0d 0a 0d  253..440..638...
7300: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
7310: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
7320: 54 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  T + col1 FROM ta
7330: 62 32 20 57 48 45 52 45 20 4e 4f 54 20 28 20 34  b2 WHERE NOT ( 4
7340: 37 20 2a 20 63 6f 6c 32 20 29 20 4e 4f 54 20 49  7 * col2 ) NOT I
7350: 4e 20 28 20 63 6f 6c 32 20 2b 20 63 6f 6c 31 20  N ( col2 + col1 
7360: 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  )..----....onlyi
7370: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
7380: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
7390: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
73a0: 62 65 6c 2d 31 36 33 0d 0a 53 45 4c 45 43 54 20  bel-163..SELECT 
73b0: 41 4c 4c 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  ALL - COUNT( * )
73c0: 20 2b 20 2b 20 2b 20 33 31 20 2d 20 34 34 20 46   + + + 31 - 44 F
73d0: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
73e0: 2d 31 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -16....skipif my
73f0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
7400: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
7410: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 36 33 0d  wsort label-163.
7420: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f  .SELECT ALL - CO
7430: 55 4e 54 20 28 20 2a 20 29 20 2b 20 2b 20 2b 20  UNT ( * ) + + + 
7440: 33 31 20 2d 20 34 34 20 46 52 4f 4d 20 74 61 62  31 - 44 FROM tab
7450: 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 0d 0a 0d 0a  2..----..-16....
7460: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
7470: 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
7480: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
7490: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
74a0: 2d 31 36 34 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  -164..SELECT col
74b0: 31 20 2b 20 63 6f 6c 31 20 2b 20 63 6f 6c 30 20  1 + col1 + col0 
74c0: 2a 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  * CAST( NULL AS 
74d0: 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61  SIGNED ) FROM ta
74e0: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b1..----..NULL..
74f0: 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  NULL..NULL....sk
7500: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
7510: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
7520: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
7530: 65 6c 2d 31 36 34 0d 0a 53 45 4c 45 43 54 20 63  el-164..SELECT c
7540: 6f 6c 31 20 2b 20 63 6f 6c 31 20 2b 20 63 6f 6c  ol1 + col1 + col
7550: 30 20 2a 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  0 * CAST ( NULL 
7560: 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f  AS INTEGER ) FRO
7570: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab1..----..NU
7580: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
7590: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
75a0: 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
75b0: 47 4e 45 44 20 74 79 70 65 3a 20 44 45 43 49 4d  GNED type: DECIM
75c0: 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  AL type: ..query
75d0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
75e0: 2d 31 36 35 0d 0a 53 45 4c 45 43 54 20 44 49 53  -165..SELECT DIS
75f0: 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20 2a 20 2b  TINCT - col0 * +
7600: 20 43 41 53 54 28 20 2b 20 43 41 53 54 28 20 4e   CAST( + CAST( N
7610: 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
7620: 2f 20 33 37 20 41 53 20 44 45 43 49 4d 41 4c 20  / 37 AS DECIMAL 
7630: 29 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  ) FROM tab2 WHER
7640: 45 20 4e 4f 54 20 4e 55 4c 4c 20 42 45 54 57 45  E NOT NULL BETWE
7650: 45 4e 20 63 6f 6c 31 20 41 4e 44 20 4e 55 4c 4c  EN col1 AND NULL
7660: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
7670: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
7680: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
7690: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
76a0: 36 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  65..SELECT DISTI
76b0: 4e 43 54 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 43  NCT - col0 * + C
76c0: 41 53 54 20 28 20 2b 20 43 41 53 54 20 28 20 4e  AST ( + CAST ( N
76d0: 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
76e0: 20 2f 20 33 37 20 41 53 20 52 45 41 4c 20 29 20   / 37 AS REAL ) 
76f0: 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
7700: 4e 4f 54 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e  NOT NULL BETWEEN
7710: 20 63 6f 6c 31 20 41 4e 44 20 4e 55 4c 4c 0d 0a   col1 AND NULL..
7720: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
7730: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
7740: 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48  T * FROM tab1 WH
7750: 45 52 45 20 28 20 2b 20 34 36 20 29 20 4e 4f 54  ERE ( + 46 ) NOT
7760: 20 42 45 54 57 45 45 4e 20 32 34 20 2a 20 2d 20   BETWEEN 24 * - 
7770: 63 6f 6c 30 20 41 4e 44 20 38 31 0d 0a 2d 2d 2d  col0 AND 81..---
7780: 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
7790: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
77a0: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
77b0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 36  rowsort label-16
77c0: 37 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 43 4f  7..SELECT - + CO
77d0: 55 4e 54 28 20 41 4c 4c 20 2d 20 2b 20 63 6f 6c  UNT( ALL - + col
77e0: 31 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  1 ) AS col0 FROM
77f0: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
7800: 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69  ---..-3....skipi
7810: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
7820: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
7830: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
7840: 31 36 37 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20  167..SELECT - + 
7850: 43 4f 55 4e 54 20 28 20 41 4c 4c 20 2d 20 2b 20  COUNT ( ALL - + 
7860: 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 30 20 46  col1 ) AS col0 F
7870: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
7880: 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 6f 6e  ..----..-3....on
7890: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
78a0: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
78b0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
78c0: 20 6c 61 62 65 6c 2d 31 36 38 0d 0a 53 45 4c 45   label-168..SELE
78d0: 43 54 20 2d 20 2b 20 43 4f 55 4e 54 28 20 44 49  CT - + COUNT( DI
78e0: 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 29 20  STINCT - col2 ) 
78f0: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
7900: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
7910: 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .-3....skipif my
7920: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
7930: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
7940: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 36 38 0d  wsort label-168.
7950: 0a 53 45 4c 45 43 54 20 2d 20 2b 20 43 4f 55 4e  .SELECT - + COUN
7960: 54 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 63  T ( DISTINCT - c
7970: 6f 6c 32 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ol2 ) AS col0 FR
7980: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
7990: 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75 65  .----..-3....que
79a0: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
79b0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
79c0: 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
79d0: 45 20 2d 20 35 20 49 4e 20 28 20 2b 20 63 6f 6c  E - 5 IN ( + col
79e0: 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  2 )..----....onl
79f0: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
7a00: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
7a10: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
7a20: 6c 61 62 65 6c 2d 31 37 30 0d 0a 53 45 4c 45 43  label-170..SELEC
7a30: 54 20 41 4c 4c 20 33 20 2d 20 2d 20 43 4f 55 4e  T ALL 3 - - COUN
7a40: 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46  T( * ) AS col2 F
7a50: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
7a60: 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  6....skipif mysq
7a70: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
7a80: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
7a90: 6f 72 74 20 6c 61 62 65 6c 2d 31 37 30 0d 0a 53  ort label-170..S
7aa0: 45 4c 45 43 54 20 41 4c 4c 20 33 20 2d 20 2d 20  ELECT ALL 3 - - 
7ab0: 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63  COUNT ( * ) AS c
7ac0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
7ad0: 2d 2d 2d 0d 0a 36 0d 0a 0d 0a 6f 6e 6c 79 69 66  ---..6....onlyif
7ae0: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
7af0: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
7b00: 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
7b10: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37 31 0d 0a  sort label-171..
7b20: 53 45 4c 45 43 54 20 2d 20 43 41 53 54 28 20 4e  SELECT - CAST( N
7b30: 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
7b40: 2b 20 2d 20 2d 20 63 6f 6c 30 20 2d 20 2d 20 43  + - - col0 - - C
7b50: 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
7b60: 4e 45 44 20 29 20 2d 20 2b 20 63 6f 6c 32 20 46  NED ) - + col2 F
7b70: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
7b80: 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
7b90: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
7ba0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
7bb0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
7bc0: 72 74 20 6c 61 62 65 6c 2d 31 37 31 0d 0a 53 45  rt label-171..SE
7bd0: 4c 45 43 54 20 2d 20 43 41 53 54 20 28 20 4e 55  LECT - CAST ( NU
7be0: 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
7bf0: 2b 20 2d 20 2d 20 63 6f 6c 30 20 2d 20 2d 20 43  + - - col0 - - C
7c00: 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
7c10: 54 45 47 45 52 20 29 20 2d 20 2b 20 63 6f 6c 32  TEGER ) - + col2
7c20: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
7c30: 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
7c40: 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  LL....onlyif mys
7c50: 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
7c60: 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
7c70: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
7c80: 20 6c 61 62 65 6c 2d 31 37 32 0d 0a 53 45 4c 45   label-172..SELE
7c90: 43 54 20 43 41 53 54 28 20 43 41 53 54 28 20 63  CT CAST( CAST( c
7ca0: 6f 6c 30 20 41 53 20 53 49 47 4e 45 44 20 29 20  ol0 AS SIGNED ) 
7cb0: 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63  AS SIGNED ) AS c
7cc0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48  ol2 FROM tab1 WH
7cd0: 45 52 45 20 2d 20 33 39 20 42 45 54 57 45 45 4e  ERE - 39 BETWEEN
7ce0: 20 4e 55 4c 4c 20 41 4e 44 20 28 20 63 6f 6c 32   NULL AND ( col2
7cf0: 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70   )..----....skip
7d00: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
7d10: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
7d20: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
7d30: 2d 31 37 32 0d 0a 53 45 4c 45 43 54 20 43 41 53  -172..SELECT CAS
7d40: 54 20 28 20 43 41 53 54 20 28 20 63 6f 6c 30 20  T ( CAST ( col0 
7d50: 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20  AS INTEGER ) AS 
7d60: 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c  INTEGER ) AS col
7d70: 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  2 FROM tab1 WHER
7d80: 45 20 2d 20 33 39 20 42 45 54 57 45 45 4e 20 4e  E - 39 BETWEEN N
7d90: 55 4c 4c 20 41 4e 44 20 28 20 63 6f 6c 32 20 29  ULL AND ( col2 )
7da0: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
7db0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
7dc0: 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 2a 20 2d  T ALL - col0 * -
7dd0: 20 31 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53   12 FROM tab0 AS
7de0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 34   cor0..----..104
7df0: 34 0d 0a 31 31 36 34 0d 0a 31 38 30 0d 0a 0d 0a  4..1164..180....
7e00: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
7e10: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
7e20: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
7e30: 72 74 20 6c 61 62 65 6c 2d 31 37 34 0d 0a 53 45  rt label-174..SE
7e40: 4c 45 43 54 20 2b 20 39 36 20 2b 20 2d 20 4d 49  LECT + 96 + - MI
7e50: 4e 28 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74  N( col0 ) FROM t
7e60: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
7e70: 2d 0d 0a 34 35 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..45....skipif 
7e80: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
7e90: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
7ea0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37  rowsort label-17
7eb0: 34 0d 0a 53 45 4c 45 43 54 20 2b 20 39 36 20 2b  4..SELECT + 96 +
7ec0: 20 2d 20 4d 49 4e 20 28 20 63 6f 6c 30 20 29 20   - MIN ( col0 ) 
7ed0: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
7ee0: 30 0d 0a 2d 2d 2d 2d 0d 0a 34 35 0d 0a 0d 0a 71  0..----..45....q
7ef0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
7f00: 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2b 20  SELECT - col1 + 
7f10: 2b 20 38 30 20 41 53 20 63 6f 6c 30 20 46 52 4f  + 80 AS col0 FRO
7f20: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
7f30: 2d 2d 2d 2d 0d 0a 31 33 0d 0a 32 39 0d 0a 33 0d  ----..13..29..3.
7f40: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
7f50: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
7f60: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
7f70: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37 36 0d  wsort label-176.
7f80: 0a 53 45 4c 45 43 54 20 2b 20 31 20 2b 20 2b 20  .SELECT + 1 + + 
7f90: 35 33 20 2b 20 2b 20 2d 20 4d 41 58 28 20 41 4c  53 + + - MAX( AL
7fa0: 4c 20 37 33 20 29 20 46 52 4f 4d 20 74 61 62 30  L 73 ) FROM tab0
7fb0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
7fc0: 2d 31 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -19....skipif my
7fd0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
7fe0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
7ff0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37 36 0d  wsort label-176.
8000: 0a 53 45 4c 45 43 54 20 2b 20 31 20 2b 20 2b 20  .SELECT + 1 + + 
8010: 35 33 20 2b 20 2b 20 2d 20 4d 41 58 20 28 20 41  53 + + - MAX ( A
8020: 4c 4c 20 37 33 20 29 20 46 52 4f 4d 20 74 61 62  LL 73 ) FROM tab
8030: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
8040: 0a 2d 31 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-19....onlyif m
8050: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
8060: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
8070: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
8080: 2d 31 37 37 0d 0a 53 45 4c 45 43 54 20 44 49 53  -177..SELECT DIS
8090: 54 49 4e 43 54 20 4d 41 58 28 20 35 38 20 29 20  TINCT MAX( 58 ) 
80a0: 2a 20 43 4f 55 4e 54 28 20 34 33 20 29 20 46 52  * COUNT( 43 ) FR
80b0: 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d  OM tab2 cor0..--
80c0: 2d 2d 0d 0a 31 37 34 0d 0a 0d 0a 73 6b 69 70 69  --..174....skipi
80d0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
80e0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
80f0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
8100: 31 37 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  177..SELECT DIST
8110: 49 4e 43 54 20 4d 41 58 20 28 20 35 38 20 29 20  INCT MAX ( 58 ) 
8120: 2a 20 43 4f 55 4e 54 20 28 20 34 33 20 29 20 46  * COUNT ( 43 ) F
8130: 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d  ROM tab2 cor0..-
8140: 2d 2d 2d 0d 0a 31 37 34 0d 0a 0d 0a 71 75 65 72  ---..174....quer
8150: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
8160: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 35  ECT DISTINCT + 5
8170: 30 20 2b 20 2d 20 2b 20 63 6f 6c 31 20 46 52 4f  0 + - + col1 FRO
8180: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
8190: 2d 2d 2d 2d 0d 0a 2d 33 31 0d 0a 32 39 0d 0a 34  ----..-31..29..4
81a0: 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  9....query I row
81b0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
81c0: 20 2d 20 31 36 20 46 52 4f 4d 20 74 61 62 31 20   - 16 FROM tab1 
81d0: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
81e0: 54 20 2d 20 38 36 20 49 53 20 4e 55 4c 4c 0d 0a  T - 86 IS NULL..
81f0: 2d 2d 2d 2d 0d 0a 2d 31 36 0d 0a 2d 31 36 0d 0a  ----..-16..-16..
8200: 2d 31 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -16....onlyif my
8210: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
8220: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
8230: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
8240: 31 38 30 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f  180..SELECT + CO
8250: 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31  UNT( * ) AS col1
8260: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
8270: 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  r0 WHERE NOT col
8280: 30 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  0 < NULL..----..
8290: 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
82a0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
82b0: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
82c0: 6f 72 74 20 6c 61 62 65 6c 2d 31 38 30 0d 0a 53  ort label-180..S
82d0: 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20 28 20  ELECT + COUNT ( 
82e0: 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  * ) AS col1 FROM
82f0: 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
8300: 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20 3c 20 4e  ERE NOT col0 < N
8310: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  ULL..----..0....
8320: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
8330: 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
8340: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
8350: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
8360: 2d 31 38 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -181..SELECT ALL
8370: 20 63 6f 6c 30 20 2a 20 43 41 53 54 28 20 4e 55   col0 * CAST( NU
8380: 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a  LL AS SIGNED ) *
8390: 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20   - col0 AS col2 
83a0: 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
83b0: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
83c0: 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
83d0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
83e0: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
83f0: 6f 72 74 20 6c 61 62 65 6c 2d 31 38 31 0d 0a 53  ort label-181..S
8400: 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 2a  ELECT ALL col0 *
8410: 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
8420: 49 4e 54 45 47 45 52 20 29 20 2a 20 2d 20 63 6f  INTEGER ) * - co
8430: 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l0 AS col2 FROM 
8440: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab2..----..NULL
8450: 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
8460: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
8470: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
8480: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57  CT * FROM tab0 W
8490: 48 45 52 45 20 4e 4f 54 20 2b 20 2b 20 32 36 20  HERE NOT + + 26 
84a0: 42 45 54 57 45 45 4e 20 2b 20 63 6f 6c 30 20 41  BETWEEN + col0 A
84b0: 4e 44 20 28 20 39 31 20 29 0d 0a 2d 2d 2d 2d 0d  ND ( 91 )..----.
84c0: 0a 38 37 0d 0a 32 31 0d 0a 31 30 0d 0a 39 37 0d  .87..21..10..97.
84d0: 0a 31 0d 0a 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66  .1..99....onlyif
84e0: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
84f0: 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20  ntax: aggregate 
8500: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
8510: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
8520: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 38 33  owsort label-183
8530: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
8540: 54 20 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  T - + COUNT( * )
8550: 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
8560: 20 28 20 4e 55 4c 4c 20 29 20 42 45 54 57 45 45   ( NULL ) BETWEE
8570: 4e 20 4e 55 4c 4c 20 41 4e 44 20 43 41 53 54 28  N NULL AND CAST(
8580: 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
8590: 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b  )..----..0....sk
85a0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
85b0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
85c0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
85d0: 65 6c 2d 31 38 33 0d 0a 53 45 4c 45 43 54 20 44  el-183..SELECT D
85e0: 49 53 54 49 4e 43 54 20 2d 20 2b 20 43 4f 55 4e  ISTINCT - + COUN
85f0: 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  T ( * ) FROM tab
8600: 32 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29  2 WHERE ( NULL )
8610: 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e   BETWEEN NULL AN
8620: 44 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  D CAST ( NULL AS
8630: 20 49 4e 54 45 47 45 52 20 29 0d 0a 2d 2d 2d 2d   INTEGER )..----
8640: 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..0....onlyif my
8650: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
8660: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
8670: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
8680: 31 38 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  184..SELECT DIST
8690: 49 4e 43 54 20 28 20 2d 20 2d 20 32 20 29 20 2a  INCT ( - - 2 ) *
86a0: 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20   + - COUNT( * ) 
86b0: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
86c0: 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 0d 0a 0d 0a 73  2..----..-6....s
86d0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
86e0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
86f0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
8700: 62 65 6c 2d 31 38 34 0d 0a 53 45 4c 45 43 54 20  bel-184..SELECT 
8710: 44 49 53 54 49 4e 43 54 20 28 20 2d 20 2d 20 32  DISTINCT ( - - 2
8720: 20 29 20 2a 20 2b 20 2d 20 43 4f 55 4e 54 20 28   ) * + - COUNT (
8730: 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f   * ) AS col0 FRO
8740: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 36  M tab2..----..-6
8750: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
8760: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
8770: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
8780: 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
8790: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
87a0: 74 20 6c 61 62 65 6c 2d 31 38 35 0d 0a 53 45 4c  t label-185..SEL
87b0: 45 43 54 20 41 4c 4c 20 2d 20 38 33 20 2a 20 2b  ECT ALL - 83 * +
87c0: 20 2b 20 31 35 2c 20 43 4f 55 4e 54 28 20 2a 20   + 15, COUNT( * 
87d0: 29 20 2a 20 2d 20 2b 20 43 41 53 54 28 20 4e 55  ) * - + CAST( NU
87e0: 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 41  LL AS SIGNED ) A
87f0: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
8800: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 34 35 0d 0a 4e  ..----..-1245..N
8810: 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
8820: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
8830: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72  ible..query II r
8840: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 38 35  owsort label-185
8850: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 38  ..SELECT ALL - 8
8860: 33 20 2a 20 2b 20 2b 20 31 35 2c 20 43 4f 55 4e  3 * + + 15, COUN
8870: 54 20 28 20 2a 20 29 20 2a 20 2d 20 2b 20 43 41  T ( * ) * - + CA
8880: 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
8890: 45 47 45 52 20 29 20 41 53 20 63 6f 6c 31 20 46  EGER ) AS col1 F
88a0: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
88b0: 2d 31 32 34 35 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f  -1245..NULL....o
88c0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
88d0: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
88e0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
88f0: 74 20 6c 61 62 65 6c 2d 31 38 36 0d 0a 53 45 4c  t label-186..SEL
8900: 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20 2a  ECT ALL COUNT( *
8910: 20 29 20 2a 20 32 31 20 46 52 4f 4d 20 74 61 62   ) * 21 FROM tab
8920: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
8930: 0a 36 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .63....skipif my
8940: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
8950: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
8960: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 38 36 0d  wsort label-186.
8970: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e  .SELECT ALL COUN
8980: 54 20 28 20 2a 20 29 20 2a 20 32 31 20 46 52 4f  T ( * ) * 21 FRO
8990: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
89a0: 2d 2d 2d 2d 0d 0a 36 33 0d 0a 0d 0a 6f 6e 6c 79  ----..63....only
89b0: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
89c0: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
89d0: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
89e0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 38 37  owsort label-187
89f0: 0d 0a 53 45 4c 45 43 54 20 32 34 20 46 52 4f 4d  ..SELECT 24 FROM
8a00: 20 74 61 62 31 20 63 6f 72 30 20 57 48 45 52 45   tab1 cor0 WHERE
8a10: 20 4e 4f 54 20 28 20 2d 20 2d 20 43 41 53 54 28   NOT ( - - CAST(
8a20: 20 2d 20 38 33 20 41 53 20 53 49 47 4e 45 44 20   - 83 AS SIGNED 
8a30: 29 20 49 53 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d  ) IS NULL )..---
8a40: 2d 0d 0a 32 34 0d 0a 32 34 0d 0a 32 34 0d 0a 0d  -..24..24..24...
8a50: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
8a60: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
8a70: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
8a80: 6c 61 62 65 6c 2d 31 38 37 0d 0a 53 45 4c 45 43  label-187..SELEC
8a90: 54 20 32 34 20 46 52 4f 4d 20 74 61 62 31 20 63  T 24 FROM tab1 c
8aa0: 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20  or0 WHERE NOT ( 
8ab0: 2d 20 2d 20 43 41 53 54 20 28 20 2d 20 38 33 20  - - CAST ( - 83 
8ac0: 41 53 20 49 4e 54 45 47 45 52 20 29 20 49 53 20  AS INTEGER ) IS 
8ad0: 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 32 34  NULL )..----..24
8ae0: 0d 0a 32 34 0d 0a 32 34 0d 0a 0d 0a 71 75 65 72  ..24..24....quer
8af0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
8b00: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2b  ECT DISTINCT - +
8b10: 20 35 39 20 46 52 4f 4d 20 28 20 74 61 62 30 20   59 FROM ( tab0 
8b20: 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
8b30: 49 4e 20 74 61 62 32 20 41 53 20 63 6f 72 31 20  IN tab2 AS cor1 
8b40: 29 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a 0d 0a  )..----..-59....
8b50: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
8b60: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
8b70: 20 2b 20 32 32 20 2a 20 2b 20 63 6f 6c 31 20 41   + 22 * + col1 A
8b80: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
8b90: 0d 0a 2d 2d 2d 2d 0d 0a 31 30 33 34 0d 0a 31 31  ..----..1034..11
8ba0: 30 0d 0a 33 30 38 0d 0a 0d 0a 6f 6e 6c 79 69 66  0..308....onlyif
8bb0: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
8bc0: 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66  te syntax: DIV f
8bd0: 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
8be0: 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
8bf0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 39 30  owsort label-190
8c00: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
8c10: 54 20 2b 20 37 32 20 44 49 56 20 43 4f 55 4e 54  T + 72 DIV COUNT
8c20: 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ( * ) AS col0 FR
8c30: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32  OM tab0..----..2
8c40: 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  4....skipif mysq
8c50: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
8c60: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
8c70: 6f 72 74 20 6c 61 62 65 6c 2d 31 39 30 0d 0a 53  ort label-190..S
8c80: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
8c90: 20 37 32 20 2f 20 43 4f 55 4e 54 20 28 20 2a 20   72 / COUNT ( * 
8ca0: 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
8cb0: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 34 0d 0a 0d  ab0..----..24...
8cc0: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
8cd0: 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
8ce0: 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
8cf0: 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 20 4f 52   NULL IS NULL OR
8d00: 20 4e 4f 54 20 39 20 49 53 20 4e 4f 54 20 4e 55   NOT 9 IS NOT NU
8d10: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
8d20: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
8d30: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
8d40: 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 32 35  0 WHERE NOT - 25
8d50: 20 2a 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d   * col0 IS NULL.
8d60: 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
8d70: 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32  hashing to c4b42
8d80: 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34  765dff94eaaa4604
8d90: 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71  0e537fb43b7....q
8da0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
8db0: 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2a 20  SELECT + col1 * 
8dc0: 2d 20 28 20 2d 20 37 34 20 29 20 2b 20 2b 20 2d  - ( - 74 ) + + -
8dd0: 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52   col0 AS col2 FR
8de0: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
8df0: 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a 31 34 36 37  .----..-23..1467
8e00: 0d 0a 35 39 37 39 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..5979....onlyif
8e10: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
8e20: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
8e30: 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
8e40: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 39 34 0d 0a  sort label-194..
8e50: 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 41 53  SELECT ALL - CAS
8e60: 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
8e70: 44 20 29 20 2b 20 32 35 20 41 53 20 63 6f 6c 31  D ) + 25 AS col1
8e80: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
8e90: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
8ea0: 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  NULL..NULL....sk
8eb0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
8ec0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
8ed0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
8ee0: 65 6c 2d 31 39 34 0d 0a 53 45 4c 45 43 54 20 41  el-194..SELECT A
8ef0: 4c 4c 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c  LL - CAST ( NULL
8f00: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20   AS INTEGER ) + 
8f10: 32 35 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  25 AS col1 FROM 
8f20: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
8f30: 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
8f40: 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20  NULL....query I 
8f50: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
8f60: 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 2b 20  DISTINCT col0 + 
8f70: 2b 20 2b 20 34 36 20 41 53 20 63 6f 6c 30 20 46  + + 46 AS col0 F
8f80: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
8f90: 0d 0a 2d 2d 2d 2d 0d 0a 31 33 33 0d 0a 31 34 33  ..----..133..143
8fa0: 0d 0a 36 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..61....query I 
8fb0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
8fc0: 41 4c 4c 20 2b 20 28 20 2d 20 38 36 20 29 20 46  ALL + ( - 86 ) F
8fd0: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
8fe0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 36 0d 0a 2d 38 36  ..----..-86..-86
8ff0: 0d 0a 2d 38 36 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-86....query I
9000: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
9010: 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
9020: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
9030: 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3e  WHERE NOT NULL >
9040: 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 35 38 20 2f   - col2 + + 58 /
9050: 20 2d 20 33 30 20 2d 20 2b 20 2b 20 36 30 0d 0a   - 30 - + + 60..
9060: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
9070: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
9080: 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
9090: 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 42 45 54  1 WHERE NULL BET
90a0: 57 45 45 4e 20 2b 20 34 36 20 41 4e 44 20 2d 20  WEEN + 46 AND - 
90b0: 63 6f 6c 30 20 2f 20 2b 20 2d 20 63 6f 6c 30 0d  col0 / + - col0.
90c0: 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
90d0: 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
90e0: 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
90f0: 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
9100: 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
9110: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
9120: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
9130: 43 54 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 37 30  CT - col1 + + 70
9140: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d   col1 FROM tab0.
9150: 0a 2d 2d 2d 2d 0d 0a 2d 31 31 0d 0a 34 39 0d 0a  .----..-11..49..
9160: 36 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  69....query I ro
9170: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
9180: 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  - col1 FROM tab1
9190: 20 57 48 45 52 45 20 4e 55 4c 4c 20 3e 20 28 20   WHERE NULL > ( 
91a0: 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  col0 )..----....
91b0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
91c0: 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
91d0: 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
91e0: 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
91f0: 6c 2d 32 30 31 0d 0a 53 45 4c 45 43 54 20 36 39  l-201..SELECT 69
9200: 20 44 49 56 20 37 39 20 41 53 20 63 6f 6c 32 2c   DIV 79 AS col2,
9210: 20 63 6f 6c 32 20 2a 20 63 6f 6c 32 20 2b 20 2d   col2 * col2 + -
9220: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
9230: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31 35 33 36 0d 0a  .----..0..1536..
9240: 30 0d 0a 33 32 38 39 0d 0a 30 0d 0a 34 38 33 0d  0..3289..0..483.
9250: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
9260: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
9270: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
9280: 72 74 20 6c 61 62 65 6c 2d 32 30 31 0d 0a 53 45  rt label-201..SE
9290: 4c 45 43 54 20 36 39 20 2f 20 37 39 20 41 53 20  LECT 69 / 79 AS 
92a0: 63 6f 6c 32 2c 20 63 6f 6c 32 20 2a 20 63 6f 6c  col2, col2 * col
92b0: 32 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20  2 + - col0 FROM 
92c0: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31  tab2..----..0..1
92d0: 35 33 36 0d 0a 30 0d 0a 33 32 38 39 0d 0a 30 0d  536..0..3289..0.
92e0: 0a 34 38 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .483....onlyif m
92f0: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
9300: 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72   syntax: DIV for
9310: 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
9320: 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
9330: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 30 32 0d 0a  sort label-202..
9340: 53 45 4c 45 43 54 20 4d 49 4e 28 20 2d 20 2d 20  SELECT MIN( - - 
9350: 63 6f 6c 30 20 29 20 2a 20 2d 20 2d 20 43 4f 55  col0 ) * - - COU
9360: 4e 54 28 20 2a 20 29 20 44 49 56 20 2b 20 28 20  NT( * ) DIV + ( 
9370: 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 41  - COUNT( * ) ) A
9380: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
9390: 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a 0d 0a 73  ..----..-46....s
93a0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
93b0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
93c0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
93d0: 62 65 6c 2d 32 30 32 0d 0a 53 45 4c 45 43 54 20  bel-202..SELECT 
93e0: 4d 49 4e 20 28 20 2d 20 2d 20 63 6f 6c 30 20 29  MIN ( - - col0 )
93f0: 20 2a 20 2d 20 2d 20 43 4f 55 4e 54 20 28 20 2a   * - - COUNT ( *
9400: 20 29 20 2f 20 2b 20 28 20 2d 20 43 4f 55 4e 54   ) / + ( - COUNT
9410: 20 28 20 2a 20 29 20 29 20 41 53 20 63 6f 6c 31   ( * ) ) AS col1
9420: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
9430: 0d 0a 2d 34 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-46....onlyif 
9440: 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
9450: 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
9460: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
9470: 6f 72 74 20 6c 61 62 65 6c 2d 32 30 33 0d 0a 53  ort label-203..S
9480: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
9490: 6f 6c 31 20 44 49 56 20 2d 20 33 20 2b 20 2b 20  ol1 DIV - 3 + + 
94a0: 2b 20 35 36 20 2b 20 2d 20 28 20 2b 20 2b 20 63  + 56 + - ( + + c
94b0: 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 32 0d  ol2 ) FROM tab2.
94c0: 0a 2d 2d 2d 2d 0d 0a 2d 32 34 0d 0a 2d 39 0d 0a  .----..-24..-9..
94d0: 31 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  16....skipif mys
94e0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
94f0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
9500: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 30 33 0d 0a  sort label-203..
9510: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
9520: 63 6f 6c 31 20 2f 20 2d 20 33 20 2b 20 2b 20 2b  col1 / - 3 + + +
9530: 20 35 36 20 2b 20 2d 20 28 20 2b 20 2b 20 63 6f   56 + - ( + + co
9540: 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a  l2 ) FROM tab2..
9550: 2d 2d 2d 2d 0d 0a 2d 32 34 0d 0a 2d 39 0d 0a 31  ----..-24..-9..1
9560: 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  6....query II ro
9570: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
9580: 53 54 49 4e 43 54 20 31 38 20 41 53 20 63 6f 6c  STINCT 18 AS col
9590: 31 2c 20 2b 20 35 34 20 41 53 20 63 6f 6c 32 20  1, + 54 AS col2 
95a0: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
95b0: 0a 31 38 0d 0a 35 34 0d 0a 0d 0a 6f 6e 6c 79 69  .18..54....onlyi
95c0: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
95d0: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
95e0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
95f0: 62 65 6c 2d 32 30 35 0d 0a 53 45 4c 45 43 54 20  bel-205..SELECT 
9600: 43 4f 55 4e 54 28 20 2a 20 29 20 2d 20 2d 20 53  COUNT( * ) - - S
9610: 55 4d 28 20 2b 20 63 6f 6c 32 20 29 20 41 53 20  UM( + col2 ) AS 
9620: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 57  col1 FROM tab2 W
9630: 48 45 52 45 20 4e 55 4c 4c 20 42 45 54 57 45 45  HERE NULL BETWEE
9640: 4e 20 37 30 20 41 4e 44 20 2b 20 31 31 20 2a 20  N 70 AND + 11 * 
9650: 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  + col1..----..NU
9660: 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
9670: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
9680: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
9690: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 30 35 0d 0a  sort label-205..
96a0: 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 2a  SELECT COUNT ( *
96b0: 20 29 20 2d 20 2d 20 53 55 4d 20 28 20 2b 20 63   ) - - SUM ( + c
96c0: 6f 6c 32 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ol2 ) AS col1 FR
96d0: 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 55  OM tab2 WHERE NU
96e0: 4c 4c 20 42 45 54 57 45 45 4e 20 37 30 20 41 4e  LL BETWEEN 70 AN
96f0: 44 20 2b 20 31 31 20 2a 20 2b 20 63 6f 6c 31 0d  D + 11 * + col1.
9700: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  .----..NULL....q
9710: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
9720: 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 2a 20  SELECT + col0 * 
9730: 2d 20 34 38 20 2b 20 2d 20 63 6f 6c 32 20 2b 20  - 48 + - col2 + 
9740: 2d 20 35 36 20 2a 20 2b 20 38 30 20 41 53 20 63  - 56 * + 80 AS c
9750: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
9760: 2d 2d 2d 0d 0a 2d 37 30 32 34 0d 0a 2d 38 36 31  ---..-7024..-861
9770: 39 0d 0a 2d 38 39 31 36 0d 0a 0d 0a 6f 6e 6c 79  9..-8916....only
9780: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
9790: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
97a0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
97b0: 61 62 65 6c 2d 32 30 37 0d 0a 53 45 4c 45 43 54  abel-207..SELECT
97c0: 20 41 4c 4c 20 2b 20 2b 20 4d 49 4e 28 20 2d 20   ALL + + MIN( - 
97d0: 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 32  col2 ) FROM tab2
97e0: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
97f0: 4f 54 20 2d 20 28 20 2d 20 63 6f 6c 30 20 29 20  OT - ( - col0 ) 
9800: 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
9810: 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  -..NULL....skipi
9820: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
9830: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
9840: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
9850: 32 30 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  207..SELECT ALL 
9860: 2b 20 2b 20 4d 49 4e 20 28 20 2d 20 63 6f 6c 32  + + MIN ( - col2
9870: 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
9880: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d  cor0 WHERE NOT -
9890: 20 28 20 2d 20 63 6f 6c 30 20 29 20 49 53 20 4e   ( - col0 ) IS N
98a0: 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e  OT NULL..----..N
98b0: 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ULL....onlyif my
98c0: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
98d0: 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20  syntax: DIV for 
98e0: 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
98f0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
9900: 6f 72 74 20 6c 61 62 65 6c 2d 32 30 38 0d 0a 53  ort label-208..S
9910: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
9920: 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 44 49   - COUNT( * ) DI
9930: 56 20 2b 20 2d 20 4d 41 58 28 20 44 49 53 54 49  V + - MAX( DISTI
9940: 4e 43 54 20 2b 20 63 6f 6c 31 20 29 20 2b 20 2b  NCT + col1 ) + +
9950: 20 38 34 20 46 52 4f 4d 20 74 61 62 31 20 41 53   84 FROM tab1 AS
9960: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 34 0d   cor0..----..84.
9970: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
9980: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
9990: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
99a0: 74 20 6c 61 62 65 6c 2d 32 30 38 0d 0a 53 45 4c  t label-208..SEL
99b0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2d  ECT DISTINCT - -
99c0: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2f 20 2b   COUNT ( * ) / +
99d0: 20 2d 20 4d 41 58 20 28 20 44 49 53 54 49 4e 43   - MAX ( DISTINC
99e0: 54 20 2b 20 63 6f 6c 31 20 29 20 2b 20 2b 20 38  T + col1 ) + + 8
99f0: 34 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  4 FROM tab1 AS c
9a00: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 34 0d 0a 0d  or0..----..84...
9a10: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
9a20: 0d 0a 53 45 4c 45 43 54 20 2d 20 36 20 2b 20 2b  ..SELECT - 6 + +
9a30: 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   + col0 FROM tab
9a40: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
9a50: 0a 38 31 0d 0a 39 0d 0a 39 31 0d 0a 0d 0a 6f 6e  .81..9..91....on
9a60: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
9a70: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
9a80: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
9a90: 20 6c 61 62 65 6c 2d 32 31 30 0d 0a 53 45 4c 45   label-210..SELE
9aa0: 43 54 20 44 49 53 54 49 4e 43 54 20 34 35 20 2d  CT DISTINCT 45 -
9ab0: 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20   + - COUNT( * ) 
9ac0: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
9ad0: 32 0d 0a 2d 2d 2d 2d 0d 0a 34 38 0d 0a 0d 0a 73  2..----..48....s
9ae0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
9af0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
9b00: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
9b10: 62 65 6c 2d 32 31 30 0d 0a 53 45 4c 45 43 54 20  bel-210..SELECT 
9b20: 44 49 53 54 49 4e 43 54 20 34 35 20 2d 20 2b 20  DISTINCT 45 - + 
9b30: 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53  - COUNT ( * ) AS
9b40: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
9b50: 0a 2d 2d 2d 2d 0d 0a 34 38 0d 0a 0d 0a 71 75 65  .----..48....que
9b60: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
9b70: 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
9b80: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
9b90: 48 45 52 45 20 34 31 20 2a 20 2d 20 2b 20 32 35  HERE 41 * - + 25
9ba0: 20 2b 20 2d 20 2d 20 63 6f 6c 30 20 2d 20 63 6f   + - - col0 - co
9bb0: 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  l1 IS NOT NULL..
9bc0: 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
9bd0: 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34  ashing to c6c0a4
9be0: 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61  111b36d04dbc811a
9bf0: 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 6f 6e  11e4d54cad....on
9c00: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
9c10: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
9c20: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
9c30: 20 6c 61 62 65 6c 2d 32 31 32 0d 0a 53 45 4c 45   label-212..SELE
9c40: 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20 2a 20  CT ALL COUNT( * 
9c50: 29 20 2a 20 2b 20 33 32 20 46 52 4f 4d 20 74 61  ) * + 32 FROM ta
9c60: 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
9c70: 20 4e 55 4c 4c 20 3e 20 2d 20 28 20 39 34 20 29   NULL > - ( 94 )
9c80: 20 2b 20 2d 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d   + - + col0..---
9c90: 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..0....skipif m
9ca0: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
9cb0: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
9cc0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 31 32  owsort label-212
9cd0: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55  ..SELECT ALL COU
9ce0: 4e 54 20 28 20 2a 20 29 20 2a 20 2b 20 33 32 20  NT ( * ) * + 32 
9cf0: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
9d00: 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 3e 20 2d  0 WHERE NULL > -
9d10: 20 28 20 39 34 20 29 20 2b 20 2d 20 2b 20 63 6f   ( 94 ) + - + co
9d20: 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f  l0..----..0....o
9d30: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
9d40: 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
9d50: 44 20 74 79 70 65 3a 20 44 49 56 20 66 6f 72 20  D type: DIV for 
9d60: 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
9d70: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
9d80: 6f 72 74 20 6c 61 62 65 6c 2d 32 31 33 0d 0a 53  ort label-213..S
9d90: 45 4c 45 43 54 20 2b 20 2b 20 37 38 20 44 49 56  ELECT + + 78 DIV
9da0: 20 2b 20 43 41 53 54 28 20 63 6f 6c 32 20 41 53   + CAST( col2 AS
9db0: 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74   SIGNED ) FROM t
9dc0: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
9dd0: 2d 0d 0a 31 0d 0a 31 0d 0a 33 0d 0a 0d 0a 73 6b  -..1..1..3....sk
9de0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
9df0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
9e00: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
9e10: 65 6c 2d 32 31 33 0d 0a 53 45 4c 45 43 54 20 2b  el-213..SELECT +
9e20: 20 2b 20 37 38 20 2f 20 2b 20 43 41 53 54 20 28   + 78 / + CAST (
9e30: 20 63 6f 6c 32 20 41 53 20 49 4e 54 45 47 45 52   col2 AS INTEGER
9e40: 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
9e50: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31  cor0..----..1..1
9e60: 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  ..3....skipif po
9e70: 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
9e80: 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
9e90: 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
9ea0: 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
9eb0: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
9ec0: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63  ..SELECT ALL - c
9ed0: 6f 6c 31 20 2a 20 2d 20 63 6f 6c 31 20 2a 20 2d  ol1 * - col1 * -
9ee0: 20 34 31 2c 20 38 35 20 63 6f 6c 32 20 46 52 4f   41, 85 col2 FRO
9ef0: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
9f00: 2d 2d 2d 2d 0d 0a 2d 31 38 30 38 31 0d 0a 38 35  ----..-18081..85
9f10: 0d 0a 2d 32 36 39 30 30 31 0d 0a 38 35 0d 0a 2d  ..-269001..85..-
9f20: 34 31 0d 0a 38 35 0d 0a 0d 0a 6f 6e 6c 79 69 66  41..85....onlyif
9f30: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
9f40: 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79  ntax: DECIMAL ty
9f50: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
9f60: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 31 35 0d  wsort label-215.
9f70: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41 53 54  .SELECT ALL CAST
9f80: 28 20 2b 20 2b 20 28 20 2b 20 35 20 29 20 41 53  ( + + ( + 5 ) AS
9f90: 20 44 45 43 49 4d 41 4c 20 29 20 2d 20 2b 20 2b   DECIMAL ) - + +
9fa0: 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52   col1 AS col1 FR
9fb0: 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45  OM tab0 cor0 WHE
9fc0: 52 45 20 4e 55 4c 4c 20 3e 20 4e 55 4c 4c 0d 0a  RE NULL > NULL..
9fd0: 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ----....skipif m
9fe0: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
9ff0: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
a000: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 31 35  owsort label-215
a010: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41 53  ..SELECT ALL CAS
a020: 54 20 28 20 2b 20 2b 20 28 20 2b 20 35 20 29 20  T ( + + ( + 5 ) 
a030: 41 53 20 52 45 41 4c 20 29 20 2d 20 2b 20 2b 20  AS REAL ) - + + 
a040: 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f  col1 AS col1 FRO
a050: 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45 52  M tab0 cor0 WHER
a060: 45 20 4e 55 4c 4c 20 3e 20 4e 55 4c 4c 0d 0a 2d  E NULL > NULL..-
a070: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
a080: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
a090: 20 2b 20 28 20 2b 20 63 6f 6c 30 20 29 20 2a 20   + ( + col0 ) * 
a0a0: 2b 20 2d 20 32 37 20 41 53 20 63 6f 6c 30 20 46  + - 27 AS col0 F
a0b0: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
a0c0: 0d 0a 2d 2d 2d 2d 0d 0a 32 33 34 39 0d 0a 32 36  ..----..2349..26
a0d0: 31 39 0d 0a 34 30 35 0d 0a 0d 0a 6f 6e 6c 79 69  19..405....onlyi
a0e0: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
a0f0: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
a100: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
a110: 61 62 65 6c 2d 32 31 37 0d 0a 53 45 4c 45 43 54  abel-217..SELECT
a120: 20 34 37 20 63 6f 6c 30 2c 20 2d 20 43 4f 55 4e   47 col0, - COUN
a130: 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46  T( * ) AS col1 F
a140: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
a150: 34 37 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66  47..-3....skipif
a160: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
a170: 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
a180: 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
a190: 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
a1a0: 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
a1b0: 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
a1c0: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
a1d0: 72 74 20 6c 61 62 65 6c 2d 32 31 37 0d 0a 53 45  rt label-217..SE
a1e0: 4c 45 43 54 20 34 37 20 63 6f 6c 30 2c 20 2d 20  LECT 47 col0, - 
a1f0: 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63  COUNT ( * ) AS c
a200: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
a210: 2d 2d 2d 0d 0a 34 37 0d 0a 2d 33 0d 0a 0d 0a 6f  ---..47..-3....o
a220: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
a230: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
a240: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
a250: 74 20 6c 61 62 65 6c 2d 32 31 38 0d 0a 53 45 4c  t label-218..SEL
a260: 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 28  ECT ALL + COUNT(
a270: 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20 57   * ) FROM tab0 W
a280: 48 45 52 45 20 4e 4f 54 20 33 30 20 49 53 20 4e  HERE NOT 30 IS N
a290: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a  ULL..----..3....
a2a0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
a2b0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
a2c0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
a2d0: 61 62 65 6c 2d 32 31 38 0d 0a 53 45 4c 45 43 54  abel-218..SELECT
a2e0: 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 20 28 20 2a   ALL + COUNT ( *
a2f0: 20 29 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   ) FROM tab0 WHE
a300: 52 45 20 4e 4f 54 20 33 30 20 49 53 20 4e 55 4c  RE NOT 30 IS NUL
a310: 4c 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 6f 6e  L..----..3....on
a320: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
a330: 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
a340: 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
a350: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
a360: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
a370: 2d 32 31 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -219..SELECT ALL
a380: 20 43 4f 55 4e 54 28 20 2b 20 2b 20 43 41 53 54   COUNT( + + CAST
a390: 28 20 2b 20 2d 20 32 39 20 41 53 20 53 49 47 4e  ( + - 29 AS SIGN
a3a0: 45 44 20 29 20 29 20 2a 20 2b 20 28 20 2b 20 33  ED ) ) * + ( + 3
a3b0: 36 20 29 20 2a 20 2b 20 2b 20 32 34 20 41 53 20  6 ) * + + 24 AS 
a3c0: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col2 FROM tab2..
a3d0: 2d 2d 2d 2d 0d 0a 32 35 39 32 0d 0a 0d 0a 73 6b  ----..2592....sk
a3e0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
a3f0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
a400: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
a410: 65 6c 2d 32 31 39 0d 0a 53 45 4c 45 43 54 20 41  el-219..SELECT A
a420: 4c 4c 20 43 4f 55 4e 54 20 28 20 2b 20 2b 20 43  LL COUNT ( + + C
a430: 41 53 54 20 28 20 2b 20 2d 20 32 39 20 41 53 20  AST ( + - 29 AS 
a440: 49 4e 54 45 47 45 52 20 29 20 29 20 2a 20 2b 20  INTEGER ) ) * + 
a450: 28 20 2b 20 33 36 20 29 20 2a 20 2b 20 2b 20 32  ( + 36 ) * + + 2
a460: 34 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  4 AS col2 FROM t
a470: 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 35 39 32 0d  ab2..----..2592.
a480: 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
a490: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
a4a0: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
a4b0: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
a4c0: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
a4d0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
a4e0: 45 43 54 20 28 20 2b 20 2d 20 32 36 20 29 20 63  ECT ( + - 26 ) c
a4f0: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol0 FROM tab2..-
a500: 2d 2d 2d 0d 0a 2d 32 36 0d 0a 2d 32 36 0d 0a 2d  ---..-26..-26..-
a510: 32 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  26....query III 
a520: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
a530: 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  * FROM tab2 WHER
a540: 45 20 4e 4f 54 20 2b 20 2d 20 35 36 20 49 53 20  E NOT + - 56 IS 
a550: 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
a560: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
a570: 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
a580: 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
a590: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
a5a0: 65 6c 2d 32 32 32 0d 0a 53 45 4c 45 43 54 20 2d  el-222..SELECT -
a5b0: 20 43 41 53 54 28 20 28 20 63 6f 6c 31 20 29 20   CAST( ( col1 ) 
a5c0: 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d  AS SIGNED ) FROM
a5d0: 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20   tab1 WHERE NOT 
a5e0: 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  NULL IS NOT NULL
a5f0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 0d 0a 2d 34 37  ..----..-14..-47
a600: 0d 0a 2d 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..-5....skipif m
a610: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
a620: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
a630: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 32 32  owsort label-222
a640: 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53 54 20  ..SELECT - CAST 
a650: 28 20 28 20 63 6f 6c 31 20 29 20 41 53 20 49 4e  ( ( col1 ) AS IN
a660: 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62  TEGER ) FROM tab
a670: 31 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  1 WHERE NOT NULL
a680: 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
a690: 2d 2d 0d 0a 2d 31 34 0d 0a 2d 34 37 0d 0a 2d 35  --..-14..-47..-5
a6a0: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
a6b0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
a6c0: 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
a6d0: 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
a6e0: 20 28 20 28 20 63 6f 6c 32 20 29 20 2f 20 2b 20   ( ( col2 ) / + 
a6f0: 33 32 20 2b 20 2d 20 63 6f 6c 32 20 29 20 49 53  32 + - col2 ) IS
a700: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73   NULL..----....s
a710: 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
a720: 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
a730: 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
a740: 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
a750: 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
a760: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
a770: 41 4c 4c 20 38 20 2b 20 2d 20 63 6f 6c 30 20 63  ALL 8 + - col0 c
a780: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
a790: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
a7a0: 28 20 2b 20 63 6f 6c 31 20 29 20 49 53 20 4e 55  ( + col1 ) IS NU
a7b0: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 38 0d 0a 2d  LL..----..-38..-
a7c0: 35 36 0d 0a 2d 36 37 0d 0a 0d 0a 71 75 65 72 79  56..-67....query
a7d0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
a7e0: 43 54 20 2d 20 2d 20 28 20 63 6f 6c 30 20 29 20  CT - - ( col0 ) 
a7f0: 2a 20 2d 20 2b 20 37 32 20 46 52 4f 4d 20 74 61  * - + 72 FROM ta
a800: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
a810: 0d 0a 2d 33 33 31 32 0d 0a 2d 34 36 30 38 0d 0a  ..-3312..-4608..
a820: 2d 35 34 30 30 0d 0a 0d 0a 71 75 65 72 79 20 49  -5400....query I
a830: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
a840: 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
a850: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
a860: 57 48 45 52 45 20 4e 4f 54 20 28 20 2d 20 38 35  WHERE NOT ( - 85
a870: 20 29 20 2a 20 63 6f 6c 31 20 2a 20 2d 20 37 20   ) * col1 * - 7 
a880: 2a 20 2b 20 2b 20 63 6f 6c 30 20 49 53 20 4e 55  * + + col0 IS NU
a890: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  LL..----..9 valu
a8a0: 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36  es hashing to c6
a8b0: 63 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63  c0a4111b36d04dbc
a8c0: 38 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a  811a11e4d54cad..
a8d0: 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
a8e0: 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
a8f0: 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
a900: 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
a910: 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
a920: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
a930: 43 54 20 2b 20 2b 20 34 30 20 63 6f 6c 32 20 46  CT + + 40 col2 F
a940: 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 43 52  ROM tab0 cor0 CR
a950: 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53  OSS JOIN tab0 AS
a960: 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   cor1..----..9 v
a970: 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
a980: 20 62 31 65 38 66 66 65 65 66 33 33 34 62 34 61   b1e8ffeef334b4a
a990: 32 62 30 31 62 32 66 39 31 65 36 34 39 63 32 64  2b01b2f91e649c2d
a9a0: 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  3....query I row
a9b0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d  sort..SELECT - -
a9c0: 20 63 6f 6c 30 20 2a 20 2d 20 36 34 20 2d 20 63   col0 * - 64 - c
a9d0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 57 48  ol2 FROM tab2 WH
a9e0: 45 52 45 20 2b 20 63 6f 6c 30 20 49 53 20 4e 55  ERE + col0 IS NU
a9f0: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  LL..----....only
aa00: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
aa10: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
aa20: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
aa30: 61 62 65 6c 2d 32 32 39 0d 0a 53 45 4c 45 43 54  abel-229..SELECT
aa40: 20 44 49 53 54 49 4e 43 54 20 28 20 2b 20 31 31   DISTINCT ( + 11
aa50: 20 29 20 2a 20 2d 20 2b 20 53 55 4d 28 20 35 37   ) * - + SUM( 57
aa60: 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
aa70: 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
aa80: 74 61 62 31 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d  tab1 cor1..----.
aa90: 0a 2d 35 36 34 33 0d 0a 0d 0a 73 6b 69 70 69 66  .-5643....skipif
aaa0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
aab0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
aac0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
aad0: 32 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  29..SELECT DISTI
aae0: 4e 43 54 20 28 20 2b 20 31 31 20 29 20 2a 20 2d  NCT ( + 11 ) * -
aaf0: 20 2b 20 53 55 4d 20 28 20 35 37 20 29 20 46 52   + SUM ( 57 ) FR
ab00: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
ab10: 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20  CROSS JOIN tab1 
ab20: 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 36 34  cor1..----..-564
ab30: 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
ab40: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
ab50: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
ab60: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 33  rowsort label-23
ab70: 30 0d 0a 53 45 4c 45 43 54 20 2d 20 4d 49 4e 28  0..SELECT - MIN(
ab80: 20 44 49 53 54 49 4e 43 54 20 2b 20 37 38 20 29   DISTINCT + 78 )
ab90: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
aba0: 0d 0a 2d 37 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-78....skipif 
abb0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
abc0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
abd0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 33  rowsort label-23
abe0: 30 0d 0a 53 45 4c 45 43 54 20 2d 20 4d 49 4e 20  0..SELECT - MIN 
abf0: 28 20 44 49 53 54 49 4e 43 54 20 2b 20 37 38 20  ( DISTINCT + 78 
ac00: 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
ac10: 2d 0d 0a 2d 37 38 0d 0a 0d 0a 71 75 65 72 79 20  -..-78....query 
ac20: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
ac30: 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 39  T DISTINCT + - 9
ac40: 38 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  8 AS col0 FROM t
ac50: 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
ac60: 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 49  E NOT ( NULL ) I
ac70: 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  S NULL..----....
ac80: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
ac90: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
aca0: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
acb0: 30 20 57 48 45 52 45 20 63 6f 6c 32 20 2f 20 2d  0 WHERE col2 / -
acc0: 20 37 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d   7 IS NULL..----
acd0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
ace0: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
acf0: 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
ad00: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
ad10: 61 62 65 6c 2d 32 33 33 0d 0a 53 45 4c 45 43 54  abel-233..SELECT
ad20: 20 2b 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 43 41   + + col2 + - CA
ad30: 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
ad40: 45 44 20 29 20 46 52 4f 4d 20 74 61 62 30 20 63  ED ) FROM tab0 c
ad50: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
ad60: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .NULL..NULL....s
ad70: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
ad80: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
ad90: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
ada0: 62 65 6c 2d 32 33 33 0d 0a 53 45 4c 45 43 54 20  bel-233..SELECT 
adb0: 2b 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 43 41 53  + + col2 + - CAS
adc0: 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
add0: 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 30 20  GER ) FROM tab0 
ade0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
adf0: 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
ae00: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
ae10: 0a 53 45 4c 45 43 54 20 2d 20 34 37 20 2b 20 35  .SELECT - 47 + 5
ae20: 38 20 2a 20 2b 20 63 6f 6c 31 20 2a 20 63 6f 6c  8 * + col1 * col
ae30: 30 20 2a 20 2b 20 2b 20 32 32 20 46 52 4f 4d 20  0 * + + 22 FROM 
ae40: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
ae50: 2d 2d 0d 0a 35 34 32 32 35 33 0d 0a 35 34 35 37  --..542253..5457
ae60: 34 30 35 0d 0a 39 31 31 30 31 37 0d 0a 0d 0a 6f  405..911017....o
ae70: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
ae80: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
ae90: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
aea0: 74 20 6c 61 62 65 6c 2d 32 33 35 0d 0a 53 45 4c  t label-235..SEL
aeb0: 45 43 54 20 2d 20 35 31 20 2b 20 2d 20 43 4f 55  ECT - 51 + - COU
aec0: 4e 54 28 20 41 4c 4c 20 2b 20 37 20 29 20 46 52  NT( ALL + 7 ) FR
aed0: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
aee0: 0a 2d 2d 2d 2d 0d 0a 2d 35 34 0d 0a 0d 0a 73 6b  .----..-54....sk
aef0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
af00: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
af10: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
af20: 65 6c 2d 32 33 35 0d 0a 53 45 4c 45 43 54 20 2d  el-235..SELECT -
af30: 20 35 31 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20   51 + - COUNT ( 
af40: 41 4c 4c 20 2b 20 37 20 29 20 46 52 4f 4d 20 74  ALL + 7 ) FROM t
af50: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
af60: 2d 0d 0a 2d 35 34 0d 0a 0d 0a 71 75 65 72 79 20  -..-54....query 
af70: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
af80: 43 54 20 2d 20 2b 20 63 6f 6c 30 20 2b 20 2d 20  CT - + col0 + - 
af90: 63 6f 6c 30 20 41 53 20 63 6f 6c 31 2c 20 63 6f  col0 AS col1, co
afa0: 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
afb0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 32  cor0..----..-102
afc0: 0d 0a 35 31 0d 0a 2d 31 37 30 0d 0a 38 35 0d 0a  ..51..-170..85..
afd0: 2d 31 38 32 0d 0a 39 31 0d 0a 0d 0a 71 75 65 72  -182..91....quer
afe0: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
aff0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
b000: 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
b010: 28 20 2d 20 37 31 20 2a 20 2b 20 63 6f 6c 30 20  ( - 71 * + col0 
b020: 29 20 3c 3e 20 2b 20 63 6f 6c 32 20 2f 20 2b 20  ) <> + col2 / + 
b030: 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  col2..----..9 va
b040: 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
b050: 37 35 63 39 39 38 61 61 35 33 61 63 38 33 32 31  75c998aa53ac8321
b060: 38 63 62 66 32 66 65 62 39 36 32 64 30 61 34 39  8cbf2feb962d0a49
b070: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
b080: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
b090: 49 4e 43 54 20 63 6f 6c 30 20 2b 20 31 38 20 41  INCT col0 + 18 A
b0a0: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
b0b0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
b0c0: 36 34 0d 0a 38 32 0d 0a 39 33 0d 0a 0d 0a 71 75  64..82..93....qu
b0d0: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
b0e0: 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
b0f0: 61 62 32 20 57 48 45 52 45 20 37 31 20 2a 20 63  ab2 WHERE 71 * c
b100: 6f 6c 30 20 2f 20 2d 20 2b 20 39 20 49 53 20 4e  ol0 / - + 9 IS N
b110: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
b120: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
b130: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
b140: 20 63 6f 6c 31 2c 20 28 20 2d 20 63 6f 6c 30 20   col1, ( - col0 
b150: 29 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  ) FROM tab1 WHER
b160: 45 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c  E - col1 * - col
b170: 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  0 IS NOT NULL..-
b180: 2d 2d 2d 0d 0a 31 34 0d 0a 2d 35 31 0d 0a 34 37  ---..14..-51..47
b190: 0d 0a 2d 39 31 0d 0a 35 0d 0a 2d 38 35 0d 0a 0d  ..-91..5..-85...
b1a0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
b1b0: 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
b1c0: 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
b1d0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
b1e0: 6c 2d 32 34 31 0d 0a 53 45 4c 45 43 54 20 41 4c  l-241..SELECT AL
b1f0: 4c 20 28 20 2d 20 36 36 20 29 20 2d 20 2b 20 2b  L ( - 66 ) - + +
b200: 20 63 6f 6c 32 20 44 49 56 20 2b 20 63 6f 6c 32   col2 DIV + col2
b210: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
b220: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 37 0d 0a 2d  b0..----..-67..-
b230: 36 37 0d 0a 2d 36 37 0d 0a 0d 0a 73 6b 69 70 69  67..-67....skipi
b240: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
b250: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
b260: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
b270: 32 34 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  241..SELECT ALL 
b280: 28 20 2d 20 36 36 20 29 20 2d 20 2b 20 2b 20 63  ( - 66 ) - + + c
b290: 6f 6c 32 20 2f 20 2b 20 63 6f 6c 32 20 41 53 20  ol2 / + col2 AS 
b2a0: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
b2b0: 2d 2d 2d 2d 0d 0a 2d 36 37 0d 0a 2d 36 37 0d 0a  ----..-67..-67..
b2c0: 2d 36 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -67....onlyif my
b2d0: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
b2e0: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
b2f0: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
b300: 6f 72 74 20 6c 61 62 65 6c 2d 32 34 32 0d 0a 53  ort label-242..S
b310: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a  ELECT DISTINCT *
b320: 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
b330: 20 4e 4f 54 20 28 20 63 6f 6c 32 20 2a 20 63 6f   NOT ( col2 * co
b340: 6c 32 20 2a 20 2b 20 35 33 20 2f 20 63 6f 6c 30  l2 * + 53 / col0
b350: 20 29 20 49 4e 20 28 20 2b 20 43 41 53 54 28 20   ) IN ( + CAST( 
b360: 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
b370: 2c 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a  , col1 )..----..
b380: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
b390: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
b3a0: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
b3b0: 72 74 20 6c 61 62 65 6c 2d 32 34 32 0d 0a 53 45  rt label-242..SE
b3c0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
b3d0: 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
b3e0: 4e 4f 54 20 28 20 63 6f 6c 32 20 2a 20 63 6f 6c  NOT ( col2 * col
b3f0: 32 20 2a 20 2b 20 35 33 20 2f 20 63 6f 6c 30 20  2 * + 53 / col0 
b400: 29 20 49 4e 20 28 20 2b 20 43 41 53 54 20 28 20  ) IN ( + CAST ( 
b410: 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
b420: 29 2c 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d  ), col1 )..----.
b430: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
b440: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
b450: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
b460: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 34 33 0d  wsort label-243.
b470: 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28  .SELECT + COUNT(
b480: 20 44 49 53 54 49 4e 43 54 20 2d 20 36 39 20 29   DISTINCT - 69 )
b490: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
b4a0: 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..1....skipif my
b4b0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
b4c0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
b4d0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 34 33 0d  wsort label-243.
b4e0: 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20  .SELECT + COUNT 
b4f0: 28 20 44 49 53 54 49 4e 43 54 20 2d 20 36 39 20  ( DISTINCT - 69 
b500: 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
b510: 2d 0d 0a 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49  -..1....query II
b520: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
b530: 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48  T * FROM tab0 WH
b540: 45 52 45 20 35 32 20 49 53 20 4e 4f 54 20 4e 55  ERE 52 IS NOT NU
b550: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  LL..----..9 valu
b560: 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34  es hashing to c4
b570: 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34  b42765dff94eaaa4
b580: 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a  6040e537fb43b7..
b590: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
b5a0: 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20 28  rt..SELECT - ( (
b5b0: 20 38 32 20 29 20 29 20 41 53 20 63 6f 6c 32 2c   82 ) ) AS col2,
b5c0: 20 28 20 32 37 20 29 20 2a 20 2d 20 31 20 46 52   ( 27 ) * - 1 FR
b5d0: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
b5e0: 38 32 0d 0a 2d 32 37 0d 0a 2d 38 32 0d 0a 2d 32  82..-27..-82..-2
b5f0: 37 0d 0a 2d 38 32 0d 0a 2d 32 37 0d 0a 0d 0a 6f  7..-82..-27....o
b600: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
b610: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
b620: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
b630: 74 20 6c 61 62 65 6c 2d 32 34 36 0d 0a 53 45 4c  t label-246..SEL
b640: 45 43 54 20 53 55 4d 28 20 44 49 53 54 49 4e 43  ECT SUM( DISTINC
b650: 54 20 37 30 20 29 20 41 53 20 63 6f 6c 30 20 46  T 70 ) AS col0 F
b660: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
b670: 0d 0a 2d 2d 2d 2d 0d 0a 37 30 0d 0a 0d 0a 73 6b  ..----..70....sk
b680: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
b690: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
b6a0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
b6b0: 65 6c 2d 32 34 36 0d 0a 53 45 4c 45 43 54 20 53  el-246..SELECT S
b6c0: 55 4d 20 28 20 44 49 53 54 49 4e 43 54 20 37 30  UM ( DISTINCT 70
b6d0: 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
b6e0: 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
b6f0: 2d 2d 0d 0a 37 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  --..70....onlyif
b700: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
b710: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
b720: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
b730: 65 6c 2d 32 34 37 0d 0a 53 45 4c 45 43 54 20 2d  el-247..SELECT -
b740: 20 31 31 20 2a 20 2d 20 43 4f 55 4e 54 28 20 2a   11 * - COUNT( *
b750: 20 29 20 2a 20 2b 20 2d 20 37 30 20 46 52 4f 4d   ) * + - 70 FROM
b760: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
b770: 2d 2d 2d 0d 0a 2d 32 33 31 30 0d 0a 0d 0a 73 6b  ---..-2310....sk
b780: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
b790: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
b7a0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
b7b0: 65 6c 2d 32 34 37 0d 0a 53 45 4c 45 43 54 20 2d  el-247..SELECT -
b7c0: 20 31 31 20 2a 20 2d 20 43 4f 55 4e 54 20 28 20   11 * - COUNT ( 
b7d0: 2a 20 29 20 2a 20 2b 20 2d 20 37 30 20 46 52 4f  * ) * + - 70 FRO
b7e0: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
b7f0: 2d 2d 2d 2d 0d 0a 2d 32 33 31 30 0d 0a 0d 0a 71  ----..-2310....q
b800: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
b810: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
b820: 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  T * FROM tab2 WH
b830: 45 52 45 20 2b 20 63 6f 6c 30 20 2d 20 2d 20 63  ERE + col0 - - c
b840: 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ol2 IS NOT NULL.
b850: 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
b860: 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39  hashing to 75c99
b870: 38 61 61 35 33 61 63 38 33 32 31 38 63 62 66 32  8aa53ac83218cbf2
b880: 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 71  feb962d0a49....q
b890: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
b8a0: 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
b8b0: 74 61 62 31 20 57 48 45 52 45 20 2b 20 2d 20 28  tab1 WHERE + - (
b8c0: 20 2d 20 63 6f 6c 32 20 29 20 49 53 20 4e 55 4c   - col2 ) IS NUL
b8d0: 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  L..----....onlyi
b8e0: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
b8f0: 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
b900: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
b910: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 35 30 0d  wsort label-250.
b920: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 41  .SELECT ALL - CA
b930: 53 54 28 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20  ST( + + col0 AS 
b940: 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61  SIGNED ) FROM ta
b950: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 2d  b1..----..-51..-
b960: 38 35 0d 0a 2d 39 31 0d 0a 0d 0a 73 6b 69 70 69  85..-91....skipi
b970: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
b980: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
b990: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
b9a0: 32 35 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  250..SELECT ALL 
b9b0: 2d 20 43 41 53 54 20 28 20 2b 20 2b 20 63 6f 6c  - CAST ( + + col
b9c0: 30 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 46  0 AS INTEGER ) F
b9d0: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
b9e0: 2d 35 31 0d 0a 2d 38 35 0d 0a 2d 39 31 0d 0a 0d  -51..-85..-91...
b9f0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
ba00: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
ba10: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
ba20: 6f 72 74 20 6c 61 62 65 6c 2d 32 35 31 0d 0a 53  ort label-251..S
ba30: 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 43 4f  ELECT ALL - + CO
ba40: 55 4e 54 28 20 2a 20 29 20 2a 20 30 20 46 52 4f  UNT( * ) * 0 FRO
ba50: 4d 20 74 61 62 31 20 57 48 45 52 45 20 63 6f 6c  M tab1 WHERE col
ba60: 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  0 IS NULL..----.
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 35 31 0d 0a  sort label-251..
bab0: 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 43  SELECT ALL - + C
bac0: 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 30 20 46  OUNT ( * ) * 0 F
bad0: 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 63  ROM tab1 WHERE c
bae0: 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ol0 IS NULL..---
baf0: 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -..0....query I 
bb00: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
bb10: 31 30 20 2a 20 2b 20 2d 20 63 6f 6c 31 20 2a 20  10 * + - col1 * 
bb20: 2b 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  + - col2 FROM ta
bb30: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 33 34 34 30 0d  b1..----..13440.
bb40: 0a 32 39 35 30 0d 0a 33 31 39 36 30 0d 0a 0d 0a  .2950..31960....
bb50: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
bb60: 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72  AST syntax: aggr
bb70: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49  egate syntax: SI
bb80: 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
bb90: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
bba0: 65 6c 2d 32 35 33 0d 0a 53 45 4c 45 43 54 20 41  el-253..SELECT A
bbb0: 4c 4c 20 2d 20 4d 41 58 28 20 44 49 53 54 49 4e  LL - MAX( DISTIN
bbc0: 43 54 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20  CT + CAST( NULL 
bbd0: 41 53 20 53 49 47 4e 45 44 20 29 20 29 20 41 53  AS SIGNED ) ) AS
bbe0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
bbf0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
bc00: 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
bc10: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
bc20: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
bc30: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 35 33 0d  wsort label-253.
bc40: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 4d 41  .SELECT ALL - MA
bc50: 58 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20 43  X ( DISTINCT + C
bc60: 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
bc70: 54 45 47 45 52 20 29 20 29 20 41 53 20 63 6f 6c  TEGER ) ) AS col
bc80: 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
bc90: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
bca0: 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
bcb0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
bcc0: 49 4e 43 54 20 2b 20 2d 20 63 6f 6c 31 2c 20 2d  INCT + - col1, -
bcd0: 20 35 35 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   55 AS col2 FROM
bce0: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
bcf0: 2d 2d 2d 0d 0a 2d 35 31 0d 0a 2d 35 35 0d 0a 2d  ---..-51..-55..-
bd00: 36 37 0d 0a 2d 35 35 0d 0a 2d 37 37 0d 0a 2d 35  67..-55..-77..-5
bd10: 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  5....skipif post
bd20: 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
bd30: 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
bd40: 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
bd50: 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
bd60: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
bd70: 53 45 4c 45 43 54 20 37 36 20 63 6f 6c 31 2c 20  SELECT 76 col1, 
bd80: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 63  col2 FROM tab0 c
bd90: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 36 0d 0a 31  or0..----..76..1
bda0: 30 0d 0a 37 36 0d 0a 34 37 0d 0a 37 36 0d 0a 39  0..76..47..76..9
bdb0: 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  9....onlyif mysq
bdc0: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
bdd0: 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
bde0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
bdf0: 6c 61 62 65 6c 2d 32 35 36 0d 0a 53 45 4c 45 43  label-256..SELEC
be00: 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 41 53  T DISTINCT + CAS
be10: 54 28 20 2d 20 36 20 41 53 20 53 49 47 4e 45 44  T( - 6 AS SIGNED
be20: 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
be30: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  cor0 WHERE NOT N
be40: 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ULL IS NOT NULL.
be50: 0a 2d 2d 2d 2d 0d 0a 2d 36 0d 0a 0d 0a 73 6b 69  .----..-6....ski
be60: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
be70: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
be80: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
be90: 6c 2d 32 35 36 0d 0a 53 45 4c 45 43 54 20 44 49  l-256..SELECT DI
bea0: 53 54 49 4e 43 54 20 2b 20 43 41 53 54 20 28 20  STINCT + CAST ( 
beb0: 2d 20 36 20 41 53 20 49 4e 54 45 47 45 52 20 29  - 6 AS INTEGER )
bec0: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
bed0: 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  r0 WHERE NOT NUL
bee0: 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  L IS NOT NULL..-
bef0: 2d 2d 2d 0d 0a 2d 36 0d 0a 0d 0a 6f 6e 6c 79 69  ---..-6....onlyi
bf00: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
bf10: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
bf20: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
bf30: 61 62 65 6c 2d 32 35 37 0d 0a 53 45 4c 45 43 54  abel-257..SELECT
bf40: 20 44 49 53 54 49 4e 43 54 20 2b 20 35 37 20 41   DISTINCT + 57 A
bf50: 53 20 63 6f 6c 31 2c 20 2d 20 43 4f 55 4e 54 28  S col1, - COUNT(
bf60: 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 30 20   col2 ) AS col0 
bf70: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
bf80: 30 0d 0a 2d 2d 2d 2d 0d 0a 35 37 0d 0a 2d 33 0d  0..----..57..-3.
bf90: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
bfa0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
bfb0: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
bfc0: 72 74 20 6c 61 62 65 6c 2d 32 35 37 0d 0a 53 45  rt label-257..SE
bfd0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
bfe0: 35 37 20 41 53 20 63 6f 6c 31 2c 20 2d 20 43 4f  57 AS col1, - CO
bff0: 55 4e 54 20 28 20 63 6f 6c 32 20 29 20 41 53 20  UNT ( col2 ) AS 
c000: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
c010: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 37  S cor0..----..57
c020: 0d 0a 2d 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..-3....onlyif m
c030: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
c040: 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79  ax: aggregate sy
c050: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
c060: 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
c070: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 35 38 0d 0a  sort label-258..
c080: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
c090: 2d 20 2d 20 37 39 20 2a 20 43 41 53 54 28 20 2b  - - 79 * CAST( +
c0a0: 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 53   COUNT( * ) AS S
c0b0: 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62  IGNED ) FROM tab
c0c0: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
c0d0: 0a 32 33 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .237....skipif m
c0e0: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
c0f0: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
c100: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 35 38  owsort label-258
c110: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
c120: 54 20 2d 20 2d 20 37 39 20 2a 20 43 41 53 54 20  T - - 79 * CAST 
c130: 28 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ( + COUNT ( * ) 
c140: 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f  AS INTEGER ) FRO
c150: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
c160: 2d 2d 2d 2d 0d 0a 32 33 37 0d 0a 0d 0a 71 75 65  ----..237....que
c170: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
c180: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
c190: 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  * FROM tab1 AS c
c1a0: 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20  or0 WHERE NOT ( 
c1b0: 2d 20 2d 20 32 34 20 29 20 2a 20 34 35 20 49 53  - - 24 ) * 45 IS
c1c0: 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
c1d0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
c1e0: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
c1f0: 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
c200: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
c210: 62 65 6c 2d 32 36 30 0d 0a 53 45 4c 45 43 54 20  bel-260..SELECT 
c220: 33 38 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45  38 FROM tab0 WHE
c230: 52 45 20 4e 4f 54 20 63 6f 6c 32 20 2a 20 2b 20  RE NOT col2 * + 
c240: 63 6f 6c 32 20 2f 20 2b 20 2d 20 43 41 53 54 28  col2 / + - CAST(
c250: 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
c260: 29 20 2a 20 2b 20 35 35 20 2d 20 2d 20 2d 20 63  ) * + 55 - - - c
c270: 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ol1 IS NULL..---
c280: 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  -....skipif mysq
c290: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
c2a0: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
c2b0: 6f 72 74 20 6c 61 62 65 6c 2d 32 36 30 0d 0a 53  ort label-260..S
c2c0: 45 4c 45 43 54 20 33 38 20 46 52 4f 4d 20 74 61  ELECT 38 FROM ta
c2d0: 62 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  b0 WHERE NOT col
c2e0: 32 20 2a 20 2b 20 63 6f 6c 32 20 2f 20 2b 20 2d  2 * + col2 / + -
c2f0: 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
c300: 49 4e 54 45 47 45 52 20 29 20 2a 20 2b 20 35 35  INTEGER ) * + 55
c310: 20 2d 20 2d 20 2d 20 63 6f 6c 31 20 49 53 20 4e   - - - col1 IS N
c320: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
c330: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
c340: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
c350: 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
c360: 45 20 4e 4f 54 20 2d 20 39 37 20 2d 20 2b 20 63  E NOT - 97 - + c
c370: 6f 6c 31 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ol1 <> NULL..---
c380: 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
c390: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
c3a0: 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e  ntax: DIV for in
c3b0: 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
c3c0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
c3d0: 74 20 6c 61 62 65 6c 2d 32 36 32 0d 0a 53 45 4c  t label-262..SEL
c3e0: 45 43 54 20 2d 20 4d 41 58 28 20 44 49 53 54 49  ECT - MAX( DISTI
c3f0: 4e 43 54 20 63 6f 6c 31 20 29 20 44 49 56 20 2d  NCT col1 ) DIV -
c400: 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52   - COUNT( * ) FR
c410: 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
c420: 31 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  15....skipif mys
c430: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
c440: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
c450: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 36 32 0d 0a  sort label-262..
c460: 53 45 4c 45 43 54 20 2d 20 4d 41 58 20 28 20 44  SELECT - MAX ( D
c470: 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 29 20 2f  ISTINCT col1 ) /
c480: 20 2d 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29   - - COUNT ( * )
c490: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
c4a0: 0d 0a 2d 31 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-15....onlyif 
c4b0: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
c4c0: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
c4d0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
c4e0: 6c 2d 32 36 33 0d 0a 53 45 4c 45 43 54 20 38 38  l-263..SELECT 88
c4f0: 20 2a 20 2d 20 4d 49 4e 28 20 41 4c 4c 20 2b 20   * - MIN( ALL + 
c500: 36 33 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  63 ) AS col2 FRO
c510: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  M tab0..----..-5
c520: 35 34 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  544....skipif my
c530: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
c540: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
c550: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 36 33 0d  wsort label-263.
c560: 0a 53 45 4c 45 43 54 20 38 38 20 2a 20 2d 20 4d  .SELECT 88 * - M
c570: 49 4e 20 28 20 41 4c 4c 20 2b 20 36 33 20 29 20  IN ( ALL + 63 ) 
c580: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
c590: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 35 34 34 0d 0a  0..----..-5544..
c5a0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
c5b0: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
c5c0: 43 54 20 2d 20 2d 20 63 6f 6c 31 20 2a 20 2d 20  CT - - col1 * - 
c5d0: 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 32 20 2b 20  col0 + + col2 + 
c5e0: 2d 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 2b 20 63  - - col0 + + + c
c5f0: 6f 6c 31 20 2d 20 34 38 20 2a 20 2d 20 63 6f 6c  ol1 - 48 * - col
c600: 31 20 2b 20 2b 20 2d 20 63 6f 6c 32 20 46 52 4f  1 + + - col2 FRO
c610: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
c620: 2d 2d 2d 2d 0d 0a 2d 31 30 39 31 0d 0a 2d 31 36  ----..-1091..-16
c630: 36 37 0d 0a 31 39 39 0d 0a 0d 0a 71 75 65 72 79  67..199....query
c640: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
c650: 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
c660: 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
c670: 52 45 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 63 6f  RE - col1 + - co
c680: 6c 31 20 2a 20 31 34 20 49 53 20 4e 4f 54 20 4e  l1 * 14 IS NOT N
c690: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  ULL..----..9 val
c6a0: 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
c6b0: 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61  4b42765dff94eaaa
c6c0: 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d  46040e537fb43b7.
c6d0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
c6e0: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
c6f0: 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
c700: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
c710: 62 65 6c 2d 32 36 36 0d 0a 53 45 4c 45 43 54 20  bel-266..SELECT 
c720: 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
c730: 47 4e 45 44 20 29 20 2b 20 2d 20 2d 20 63 6f 6c  GNED ) + - - col
c740: 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  2 AS col2 FROM t
c750: 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
c760: 45 20 4e 4f 54 20 37 38 20 4e 4f 54 20 42 45 54  E NOT 78 NOT BET
c770: 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e 55  WEEN NULL AND NU
c780: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70  LL..----....skip
c790: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
c7a0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
c7b0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
c7c0: 2d 32 36 36 0d 0a 53 45 4c 45 43 54 20 43 41 53  -266..SELECT CAS
c7d0: 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
c7e0: 47 45 52 20 29 20 2b 20 2d 20 2d 20 63 6f 6c 32  GER ) + - - col2
c7f0: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
c800: 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
c810: 20 4e 4f 54 20 37 38 20 4e 4f 54 20 42 45 54 57   NOT 78 NOT BETW
c820: 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c  EEN NULL AND NUL
c830: 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  L..----....onlyi
c840: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
c850: 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65  yntax: aggregate
c860: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
c870: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
c880: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 36  rowsort label-26
c890: 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  7..SELECT DISTIN
c8a0: 43 54 20 2b 20 53 55 4d 28 20 41 4c 4c 20 43 41  CT + SUM( ALL CA
c8b0: 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
c8c0: 45 44 20 29 20 29 20 41 53 20 63 6f 6c 32 20 46  ED ) ) AS col2 F
c8d0: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
c8e0: 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
c8f0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
c900: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
c910: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
c920: 61 62 65 6c 2d 32 36 37 0d 0a 53 45 4c 45 43 54  abel-267..SELECT
c930: 20 44 49 53 54 49 4e 43 54 20 2b 20 53 55 4d 20   DISTINCT + SUM 
c940: 28 20 41 4c 4c 20 43 41 53 54 20 28 20 4e 55 4c  ( ALL CAST ( NUL
c950: 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29  L AS INTEGER ) )
c960: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
c970: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
c980: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20  ..NULL....query 
c990: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
c9a0: 54 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 34 30 20  T - col1 * - 40 
c9b0: 2b 20 2b 20 2b 20 34 20 41 53 20 63 6f 6c 30 20  + + + 4 AS col0 
c9c0: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
c9d0: 30 0d 0a 2d 2d 2d 2d 0d 0a 32 30 34 34 0d 0a 32  0..----..2044..2
c9e0: 36 38 34 0d 0a 33 30 38 34 0d 0a 0d 0a 71 75 65  684..3084....que
c9f0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
ca00: 4c 45 43 54 20 41 4c 4c 20 2b 20 35 39 20 41 53  LECT ALL + 59 AS
ca10: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
ca20: 57 48 45 52 45 20 4e 55 4c 4c 20 49 4e 20 28 20  WHERE NULL IN ( 
ca30: 2b 20 63 6f 6c 32 2c 20 63 6f 6c 31 20 2b 20 63  + col2, col1 + c
ca40: 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71  ol1 )..----....q
ca50: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
ca60: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
ca70: 2d 20 28 20 32 32 20 29 20 46 52 4f 4d 20 74 61  - ( 22 ) FROM ta
ca80: 62 30 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53  b0 AS cor0 CROSS
ca90: 20 4a 4f 49 4e 20 74 61 62 31 20 41 53 20 63 6f   JOIN tab1 AS co
caa0: 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32 0d 0a 0d  r1..----..-22...
cab0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
cac0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
cad0: 54 20 63 6f 6c 30 20 2b 20 2b 20 28 20 63 6f 6c  T col0 + + ( col
cae0: 32 20 29 20 46 52 4f 4d 20 74 61 62 32 20 57 48  2 ) FROM tab2 WH
caf0: 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 32 20 49  ERE NOT - col2 I
cb00: 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 30  S NULL..----..10
cb10: 34 0d 0a 31 33 33 0d 0a 36 39 0d 0a 0d 0a 71 75  4..133..69....qu
cb20: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
cb30: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
cb40: 20 2b 20 31 36 20 2b 20 38 35 20 46 52 4f 4d 20   + 16 + 85 FROM 
cb50: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
cb60: 2d 2d 0d 0a 31 30 31 0d 0a 0d 0a 71 75 65 72 79  --..101....query
cb70: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
cb80: 43 54 20 2d 20 35 38 20 2a 20 2b 20 63 6f 6c 32  CT - 58 * + col2
cb90: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
cba0: 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b0 cor0..----..-
cbb0: 32 37 32 36 0d 0a 2d 35 37 34 32 0d 0a 2d 35 38  2726..-5742..-58
cbc0: 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
cbd0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
cbe0: 54 49 4e 43 54 20 2d 20 2d 20 32 35 20 41 53 20  TINCT - - 25 AS 
cbf0: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 63  col1 FROM tab1 c
cc00: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 35 0d 0a 0d  or0..----..25...
cc10: 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
cc20: 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
cc30: 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
cc40: 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
cc50: 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
cc60: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
cc70: 54 20 41 4c 4c 20 2b 20 28 20 2d 20 2b 20 63 6f  T ALL + ( - + co
cc80: 6c 31 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74  l1 ) col1 FROM t
cc90: 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
cca0: 45 20 4e 4f 54 20 4e 55 4c 4c 20 3e 3d 20 2b 20  E NOT NULL >= + 
ccb0: 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  col2..----....qu
ccc0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
ccd0: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
cce0: 20 35 31 20 2a 20 2d 20 63 6f 6c 32 20 41 53 20   51 * - col2 AS 
ccf0: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
cd00: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33  S cor0..----..23
cd10: 39 37 0d 0a 35 30 34 39 0d 0a 35 31 30 0d 0a 0d  97..5049..510...
cd20: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
cd30: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
cd40: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
cd50: 6f 72 74 20 6c 61 62 65 6c 2d 32 37 37 0d 0a 53  ort label-277..S
cd60: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 32  ELECT DISTINCT 2
cd70: 36 20 2b 20 2b 20 53 55 4d 28 20 41 4c 4c 20 39  6 + + SUM( ALL 9
cd80: 30 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  0 ) FROM tab0 AS
cd90: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
cda0: 63 6f 6c 30 20 4e 4f 54 20 49 4e 20 28 20 63 6f  col0 NOT IN ( co
cdb0: 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  l2 )..----..NULL
cdc0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
cdd0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
cde0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
cdf0: 72 74 20 6c 61 62 65 6c 2d 32 37 37 0d 0a 53 45  rt label-277..SE
ce00: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 32 36  LECT DISTINCT 26
ce10: 20 2b 20 2b 20 53 55 4d 20 28 20 41 4c 4c 20 39   + + SUM ( ALL 9
ce20: 30 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  0 ) FROM tab0 AS
ce30: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
ce40: 63 6f 6c 30 20 4e 4f 54 20 49 4e 20 28 20 63 6f  col0 NOT IN ( co
ce50: 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  l2 )..----..NULL
ce60: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
ce70: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
ce80: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
ce90: 30 20 57 48 45 52 45 20 63 6f 6c 30 20 2a 20 2d  0 WHERE col0 * -
cea0: 20 36 32 20 2b 20 33 32 20 49 4e 20 28 20 2b 20   62 + 32 IN ( + 
ceb0: 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a  + col1 )..----..
cec0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
ced0: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
cee0: 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46  - col2 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: 20 57 48 45 52 45 20 63 6f 6c 32 20 49 53 20 4e   WHERE col2 IS N
cf10: 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d  OT NULL..----..-
cf20: 32 33 0d 0a 2d 34 30 0d 0a 2d 35 38 0d 0a 0d 0a  23..-40..-58....
cf30: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
cf40: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
cf50: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
cf60: 72 74 20 6c 61 62 65 6c 2d 32 38 30 0d 0a 53 45  rt label-280..SE
cf70: 4c 45 43 54 20 2d 20 53 55 4d 28 20 63 6f 6c 31  LECT - SUM( col1
cf80: 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
cf90: 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e 55 4c  cor0 WHERE ( NUL
cfa0: 4c 20 29 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  L ) NOT BETWEEN 
cfb0: 2d 20 63 6f 6c 32 20 41 4e 44 20 2d 20 2b 20 63  - col2 AND - + c
cfc0: 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ol2..----..NULL.
cfd0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
cfe0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
cff0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
d000: 74 20 6c 61 62 65 6c 2d 32 38 30 0d 0a 53 45 4c  t label-280..SEL
d010: 45 43 54 20 2d 20 53 55 4d 20 28 20 63 6f 6c 31  ECT - SUM ( col1
d020: 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
d030: 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e 55 4c  cor0 WHERE ( NUL
d040: 4c 20 29 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  L ) NOT BETWEEN 
d050: 2d 20 63 6f 6c 32 20 41 4e 44 20 2d 20 2b 20 63  - col2 AND - + c
d060: 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ol2..----..NULL.
d070: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
d080: 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
d090: 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
d0a0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
d0b0: 62 65 6c 2d 32 38 31 0d 0a 53 45 4c 45 43 54 20  bel-281..SELECT 
d0c0: 36 39 20 2a 20 63 6f 6c 31 20 2d 20 2d 20 2d 20  69 * col1 - - - 
d0d0: 31 39 20 44 49 56 20 2d 20 2d 20 28 20 2d 20 63  19 DIV - - ( - c
d0e0: 6f 6c 30 20 29 20 2a 20 2d 20 36 35 20 46 52 4f  ol0 ) * - 65 FRO
d0f0: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 32  M tab1..----..32
d100: 34 33 0d 0a 33 34 35 0d 0a 39 36 36 0d 0a 0d 0a  43..345..966....
d110: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
d120: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
d130: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
d140: 61 62 65 6c 2d 32 38 31 0d 0a 53 45 4c 45 43 54  abel-281..SELECT
d150: 20 36 39 20 2a 20 63 6f 6c 31 20 2d 20 2d 20 2d   69 * col1 - - -
d160: 20 31 39 20 2f 20 2d 20 2d 20 28 20 2d 20 63 6f   19 / - - ( - co
d170: 6c 30 20 29 20 2a 20 2d 20 36 35 20 46 52 4f 4d  l0 ) * - 65 FROM
d180: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 32 34   tab1..----..324
d190: 33 0d 0a 33 34 35 0d 0a 39 36 36 0d 0a 0d 0a 71  3..345..966....q
d1a0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
d1b0: 53 45 4c 45 43 54 20 38 30 20 2b 20 63 6f 6c 30  SELECT 80 + col0
d1c0: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
d1d0: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 37 0d 0a 31  b0..----..167..1
d1e0: 37 37 0d 0a 39 35 0d 0a 0d 0a 71 75 65 72 79 20  77..95....query 
d1f0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
d200: 54 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 2d 20 63  T - col2 * + - c
d210: 6f 6c 31 20 2b 20 2d 20 33 30 20 41 53 20 63 6f  ol1 + - 30 AS co
d220: 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l2 FROM tab0..--
d230: 2d 2d 0d 0a 31 38 30 0d 0a 33 37 37 37 0d 0a 36  --..180..3777..6
d240: 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  9....query III r
d250: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
d260: 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
d270: 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55  ab0 WHERE NOT NU
d280: 4c 4c 20 3e 3d 20 2b 20 2d 20 37 39 20 2a 20 34  LL >= + - 79 * 4
d290: 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  1..----....query
d2a0: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
d2b0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  LECT * FROM tab1
d2c0: 20 57 48 45 52 45 20 2d 20 2b 20 36 36 20 3c 20   WHERE - + 66 < 
d2d0: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
d2e0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
d2f0: 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
d300: 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
d310: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
d320: 38 36 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53  86..SELECT - CAS
d330: 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
d340: 44 20 29 20 2a 20 2d 20 2d 20 37 39 20 2a 20 2b  D ) * - - 79 * +
d350: 20 31 33 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d   13 FROM tab2..-
d360: 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
d370: 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
d380: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
d390: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
d3a0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38  rowsort label-28
d3b0: 36 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53 54  6..SELECT - CAST
d3c0: 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
d3d0: 45 52 20 29 20 2a 20 2d 20 2d 20 37 39 20 2a 20  ER ) * - - 79 * 
d3e0: 2b 20 31 33 20 46 52 4f 4d 20 74 61 62 32 0d 0a  + 13 FROM tab2..
d3f0: 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
d400: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..NULL....onlyif
d410: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
d420: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
d430: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
d440: 65 6c 2d 32 38 37 0d 0a 53 45 4c 45 43 54 20 2d  el-287..SELECT -
d450: 20 53 55 4d 28 20 44 49 53 54 49 4e 43 54 20 2b   SUM( DISTINCT +
d460: 20 2d 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c   - col0 ) AS col
d470: 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
d480: 2d 0d 0a 31 39 39 0d 0a 0d 0a 73 6b 69 70 69 66  -..199....skipif
d490: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
d4a0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
d4b0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
d4c0: 38 37 0d 0a 53 45 4c 45 43 54 20 2d 20 53 55 4d  87..SELECT - SUM
d4d0: 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20   ( DISTINCT + - 
d4e0: 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 32 20 46  col0 ) AS col2 F
d4f0: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
d500: 31 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  199....query III
d510: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
d520: 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   * FROM tab1 AS 
d530: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d  cor0 WHERE NOT -
d540: 20 28 20 2b 20 2d 20 32 35 20 29 20 49 4e 20 28   ( + - 25 ) IN (
d550: 20 2d 20 63 6f 6c 31 2c 20 28 20 2d 20 38 31 20   - col1, ( - 81 
d560: 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  ) )..----..9 val
d570: 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
d580: 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64 62  6c0a4111b36d04db
d590: 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64 0d  c811a11e4d54cad.
d5a0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
d5b0: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
d5c0: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
d5d0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38 39 0d  wsort label-289.
d5e0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
d5f0: 20 2b 20 43 4f 55 4e 54 28 20 2d 20 2d 20 38 37   + COUNT( - - 87
d600: 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
d610: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d  cor0..----..3...
d620: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
d630: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
d640: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
d650: 6c 61 62 65 6c 2d 32 38 39 0d 0a 53 45 4c 45 43  label-289..SELEC
d660: 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 4f 55  T DISTINCT + COU
d670: 4e 54 20 28 20 2d 20 2d 20 38 37 20 29 20 46 52  NT ( - - 87 ) FR
d680: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
d690: 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79  .----..3....only
d6a0: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
d6b0: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56  gate syntax: DIV
d6c0: 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
d6d0: 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
d6e0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
d6f0: 39 30 0d 0a 53 45 4c 45 43 54 20 2d 20 4d 49 4e  90..SELECT - MIN
d700: 28 20 63 6f 6c 32 20 29 20 44 49 56 20 2d 20 2d  ( col2 ) DIV - -
d710: 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d   COUNT( * ) FROM
d720: 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
d730: 0d 0a 2d 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..-7....skipif m
d740: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
d750: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
d760: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 39 30  owsort label-290
d770: 0d 0a 53 45 4c 45 43 54 20 2d 20 4d 49 4e 20 28  ..SELECT - MIN (
d780: 20 63 6f 6c 32 20 29 20 2f 20 2d 20 2d 20 43 4f   col2 ) / - - CO
d790: 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
d7a0: 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab2 cor0..----..
d7b0: 2d 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  -7....onlyif mys
d7c0: 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
d7d0: 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
d7e0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
d7f0: 20 6c 61 62 65 6c 2d 32 39 31 0d 0a 53 45 4c 45   label-291..SELE
d800: 43 54 20 41 4c 4c 20 63 6f 6c 32 20 46 52 4f 4d  CT ALL col2 FROM
d810: 20 74 61 62 30 20 63 6f 72 30 20 57 48 45 52 45   tab0 cor0 WHERE
d820: 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 49 4e   NOT ( NULL ) IN
d830: 20 28 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 43 41   ( + col2 * + CA
d840: 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
d850: 45 44 20 29 20 2b 20 2b 20 34 2c 20 2d 20 38 37  ED ) + + 4, - 87
d860: 2c 20 38 34 20 2a 20 2d 20 2b 20 31 38 20 29 0d  , 84 * - + 18 ).
d870: 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
d880: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
d890: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
d8a0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 39  rowsort label-29
d8b0: 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f  1..SELECT ALL co
d8c0: 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l2 FROM tab0 cor
d8d0: 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55  0 WHERE NOT ( NU
d8e0: 4c 4c 20 29 20 49 4e 20 28 20 2b 20 63 6f 6c 32  LL ) IN ( + col2
d8f0: 20 2a 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c   * + CAST ( NULL
d900: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20   AS INTEGER ) + 
d910: 2b 20 34 2c 20 2d 20 38 37 2c 20 38 34 20 2a 20  + 4, - 87, 84 * 
d920: 2d 20 2b 20 31 38 20 29 0d 0a 2d 2d 2d 2d 0d 0a  - + 18 )..----..
d930: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
d940: 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
d950: 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
d960: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
d970: 65 6c 2d 32 39 32 0d 0a 53 45 4c 45 43 54 20 2b  el-292..SELECT +
d980: 20 2d 20 28 20 32 39 20 29 20 44 49 56 20 2b 20   - ( 29 ) DIV + 
d990: 2d 20 32 31 20 41 53 20 63 6f 6c 32 20 46 52 4f  - 21 AS col2 FRO
d9a0: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
d9b0: 2d 2d 2d 2d 0d 0a 31 0d 0a 31 0d 0a 31 0d 0a 0d  ----..1..1..1...
d9c0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
d9d0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
d9e0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
d9f0: 6c 61 62 65 6c 2d 32 39 32 0d 0a 53 45 4c 45 43  label-292..SELEC
da00: 54 20 2b 20 2d 20 28 20 32 39 20 29 20 2f 20 2b  T + - ( 29 ) / +
da10: 20 2d 20 32 31 20 41 53 20 63 6f 6c 32 20 46 52   - 21 AS col2 FR
da20: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
da30: 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31 0d 0a 31 0d 0a  .----..1..1..1..
da40: 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
da50: 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
da60: 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
da70: 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
da80: 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
da90: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
daa0: 43 54 20 2d 20 2d 20 38 30 20 2a 20 2b 20 63 6f  CT - - 80 * + co
dab0: 6c 30 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  l0 col1 FROM tab
dac0: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
dad0: 0a 31 32 30 30 0d 0a 36 39 36 30 0d 0a 37 37 36  .1200..6960..776
dae0: 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
daf0: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
db00: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
db10: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 39  rowsort label-29
db20: 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  4..SELECT ALL - 
db30: 28 20 2b 20 43 4f 55 4e 54 28 20 2b 20 63 6f 6c  ( + COUNT( + col
db40: 31 20 29 20 29 20 46 52 4f 4d 20 74 61 62 32 20  1 ) ) FROM tab2 
db50: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
db60: 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
db70: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
db80: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
db90: 6f 72 74 20 6c 61 62 65 6c 2d 32 39 34 0d 0a 53  ort label-294..S
dba0: 45 4c 45 43 54 20 41 4c 4c 20 2d 20 28 20 2b 20  ELECT ALL - ( + 
dbb0: 43 4f 55 4e 54 20 28 20 2b 20 63 6f 6c 31 20 29  COUNT ( + col1 )
dbc0: 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
dbd0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a  cor0..----..-3..
dbe0: 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
dbf0: 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
dc00: 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
dc10: 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
dc20: 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
dc30: 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
dc40: 45 43 54 20 41 4c 4c 20 37 20 63 6f 6c 31 2c 20  ECT ALL 7 col1, 
dc50: 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46  - col2 AS col2 F
dc60: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
dc70: 37 0d 0a 2d 31 30 0d 0a 37 0d 0a 2d 34 37 0d 0a  7..-10..7..-47..
dc80: 37 0d 0a 2d 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66  7..-99....onlyif
dc90: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
dca0: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
dcb0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
dcc0: 65 6c 2d 32 39 36 0d 0a 53 45 4c 45 43 54 20 41  el-296..SELECT A
dcd0: 4c 4c 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20  LL COUNT( * ) + 
dce0: 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20  COUNT( * ) FROM 
dcf0: 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 4e  tab1 WHERE NOT N
dd00: 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ULL IS NOT NULL.
dd10: 0a 2d 2d 2d 2d 0d 0a 36 0d 0a 0d 0a 73 6b 69 70  .----..6....skip
dd20: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
dd30: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
dd40: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
dd50: 2d 32 39 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -296..SELECT ALL
dd60: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 43   COUNT ( * ) + C
dd70: 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20  OUNT ( * ) FROM 
dd80: 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 4e  tab1 WHERE NOT N
dd90: 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ULL IS NOT NULL.
dda0: 0a 2d 2d 2d 2d 0d 0a 36 0d 0a 0d 0a 6f 6e 6c 79  .----..6....only
ddb0: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
ddc0: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
ddd0: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
dde0: 6c 61 62 65 6c 2d 32 39 37 0d 0a 53 45 4c 45 43  label-297..SELEC
ddf0: 54 20 41 4c 4c 20 36 34 20 41 53 20 63 6f 6c 32  T ALL 64 AS col2
de00: 2c 20 2b 20 38 39 20 2d 20 2d 20 43 4f 55 4e 54  , + 89 - - COUNT
de10: 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 0d  ( * ) FROM tab0.
de20: 0a 2d 2d 2d 2d 0d 0a 36 34 0d 0a 39 32 0d 0a 0d  .----..64..92...
de30: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
de40: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
de50: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
de60: 20 6c 61 62 65 6c 2d 32 39 37 0d 0a 53 45 4c 45   label-297..SELE
de70: 43 54 20 41 4c 4c 20 36 34 20 41 53 20 63 6f 6c  CT ALL 64 AS col
de80: 32 2c 20 2b 20 38 39 20 2d 20 2d 20 43 4f 55 4e  2, + 89 - - COUN
de90: 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  T ( * ) FROM tab
dea0: 30 0d 0a 2d 2d 2d 2d 0d 0a 36 34 0d 0a 39 32 0d  0..----..64..92.
deb0: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
dec0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
ded0: 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
dee0: 31 20 57 48 45 52 45 20 2d 20 63 6f 6c 30 20 49  1 WHERE - col0 I
def0: 4e 20 28 20 2d 20 2b 20 63 6f 6c 30 20 29 0d 0a  N ( - + col0 )..
df00: 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
df10: 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34  ashing to c6c0a4
df20: 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61  111b36d04dbc811a
df30: 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 6f 6e  11e4d54cad....on
df40: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
df50: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
df60: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
df70: 20 6c 61 62 65 6c 2d 32 39 39 0d 0a 53 45 4c 45   label-299..SELE
df80: 43 54 20 41 4c 4c 20 38 31 20 2b 20 53 55 4d 28  CT ALL 81 + SUM(
df90: 20 2b 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c   + col1 ) AS col
dfa0: 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
dfb0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 38 34 0d 0a  or0..----..184..
dfc0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
dfd0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
dfe0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
dff0: 20 6c 61 62 65 6c 2d 32 39 39 0d 0a 53 45 4c 45   label-299..SELE
e000: 43 54 20 41 4c 4c 20 38 31 20 2b 20 53 55 4d 20  CT ALL 81 + SUM 
e010: 28 20 2b 20 63 6f 6c 31 20 29 20 41 53 20 63 6f  ( + col1 ) AS co
e020: 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
e030: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 38 34 0d  cor0..----..184.
e040: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
e050: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
e060: 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
e070: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
e080: 61 62 65 6c 2d 33 30 30 0d 0a 53 45 4c 45 43 54  abel-300..SELECT
e090: 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 2c 20 2d   col2 AS col2, -
e0a0: 20 63 6f 6c 32 20 2a 20 2b 20 2b 20 43 41 53 54   col2 * + + CAST
e0b0: 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
e0c0: 20 29 20 2a 20 33 32 20 46 52 4f 4d 20 74 61 62   ) * 32 FROM tab
e0d0: 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 39  1 cor0..----..59
e0e0: 0d 0a 4e 55 4c 4c 0d 0a 36 38 0d 0a 4e 55 4c 4c  ..NULL..68..NULL
e0f0: 0d 0a 39 36 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  ..96..NULL....sk
e100: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
e110: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
e120: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
e130: 62 65 6c 2d 33 30 30 0d 0a 53 45 4c 45 43 54 20  bel-300..SELECT 
e140: 63 6f 6c 32 20 41 53 20 63 6f 6c 32 2c 20 2d 20  col2 AS col2, - 
e150: 63 6f 6c 32 20 2a 20 2b 20 2b 20 43 41 53 54 20  col2 * + + CAST 
e160: 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
e170: 52 20 29 20 2a 20 33 32 20 46 52 4f 4d 20 74 61  R ) * 32 FROM ta
e180: 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35  b1 cor0..----..5
e190: 39 0d 0a 4e 55 4c 4c 0d 0a 36 38 0d 0a 4e 55 4c  9..NULL..68..NUL
e1a0: 4c 0d 0a 39 36 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f  L..96..NULL....o
e1b0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
e1c0: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
e1d0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
e1e0: 74 20 6c 61 62 65 6c 2d 33 30 31 0d 0a 53 45 4c  t label-301..SEL
e1f0: 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 28  ECT ALL + COUNT(
e200: 20 2a 20 29 20 2a 20 2d 20 2b 20 33 30 20 2b 20   * ) * - + 30 + 
e210: 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 63  - + COUNT( * ) c
e220: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
e230: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 33   cor0..----..-93
e240: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
e250: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
e260: 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
e270: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
e280: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
e290: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
e2a0: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
e2b0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
e2c0: 6c 2d 33 30 31 0d 0a 53 45 4c 45 43 54 20 41 4c  l-301..SELECT AL
e2d0: 4c 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  L + COUNT ( * ) 
e2e0: 2a 20 2d 20 2b 20 33 30 20 2b 20 2d 20 2b 20 43  * - + 30 + - + C
e2f0: 4f 55 4e 54 20 28 20 2a 20 29 20 63 6f 6c 32 20  OUNT ( * ) col2 
e300: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
e310: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 33 0d 0a 0d 0a  0..----..-93....
e320: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
e330: 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
e340: 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
e350: 45 52 45 20 4e 4f 54 20 2b 20 32 36 20 49 53 20  ERE NOT + 26 IS 
e360: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  NULL..----..9 va
e370: 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
e380: 63 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61  c4b42765dff94eaa
e390: 61 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37  a46040e537fb43b7
e3a0: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
e3b0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20  ort..SELECT + - 
e3c0: 63 6f 6c 32 20 2b 20 2d 20 38 38 20 41 53 20 63  col2 + - 88 AS c
e3d0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
e3e0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34   cor0..----..-14
e3f0: 37 0d 0a 2d 31 35 36 0d 0a 2d 31 38 34 0d 0a 0d  7..-156..-184...
e400: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
e410: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
e420: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
e430: 6f 72 74 20 6c 61 62 65 6c 2d 33 30 34 0d 0a 53  ort label-304..S
e440: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 4d  ELECT DISTINCT M
e450: 41 58 28 20 63 6f 6c 32 20 29 20 2b 20 2d 20 37  AX( col2 ) + - 7
e460: 34 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  4 AS col2 FROM t
e470: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
e480: 2d 0d 0a 32 32 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..22....skipif 
e490: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
e4a0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
e4b0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 30  rowsort label-30
e4c0: 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  4..SELECT DISTIN
e4d0: 43 54 20 4d 41 58 20 28 20 63 6f 6c 32 20 29 20  CT MAX ( col2 ) 
e4e0: 2b 20 2d 20 37 34 20 41 53 20 63 6f 6c 32 20 46  + - 74 AS col2 F
e4f0: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
e500: 0d 0a 2d 2d 2d 2d 0d 0a 32 32 0d 0a 0d 0a 71 75  ..----..22....qu
e510: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
e520: 45 4c 45 43 54 20 2d 20 2d 20 31 35 20 2b 20 2b  ELECT - - 15 + +
e530: 20 28 20 2b 20 28 20 2b 20 63 6f 6c 32 20 29 20   ( + ( + col2 ) 
e540: 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
e550: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
e560: 2d 0d 0a 31 31 31 0d 0a 37 34 0d 0a 38 33 0d 0a  -..111..74..83..
e570: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
e580: 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 63 6f  t..SELECT - + co
e590: 6c 31 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 63 6f  l1 + col1 * + co
e5a0: 6c 31 20 2a 20 2d 20 63 6f 6c 30 20 41 53 20 63  l1 * - col0 AS c
e5b0: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
e5c0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 38   cor0..----..-38
e5d0: 33 38 38 0d 0a 2d 39 38 0d 0a 2d 39 38 34 39 36  388..-98..-98496
e5e0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
e5f0: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
e600: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
e610: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
e620: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
e630: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
e640: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
e650: 63 6f 6c 30 20 63 6f 6c 32 20 46 52 4f 4d 20 74  col0 col2 FROM t
e660: 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
e670: 45 20 4e 4f 54 20 4e 55 4c 4c 20 3c 3d 20 28 20  E NOT NULL <= ( 
e680: 2b 20 2b 20 63 6f 6c 30 20 29 20 2b 20 63 6f 6c  + + col0 ) + col
e690: 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  1..----....onlyi
e6a0: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
e6b0: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
e6c0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
e6d0: 62 65 6c 2d 33 30 38 0d 0a 53 45 4c 45 43 54 20  bel-308..SELECT 
e6e0: 2b 20 43 4f 55 4e 54 28 20 44 49 53 54 49 4e 43  + COUNT( DISTINC
e6f0: 54 20 63 6f 6c 30 20 29 20 2b 20 2b 20 2b 20 28  T col0 ) + + + (
e700: 20 2b 20 36 31 20 29 20 41 53 20 63 6f 6c 30 20   + 61 ) AS col0 
e710: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
e720: 30 0d 0a 2d 2d 2d 2d 0d 0a 36 34 0d 0a 0d 0a 73  0..----..64....s
e730: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
e740: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
e750: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
e760: 62 65 6c 2d 33 30 38 0d 0a 53 45 4c 45 43 54 20  bel-308..SELECT 
e770: 2b 20 43 4f 55 4e 54 20 28 20 44 49 53 54 49 4e  + COUNT ( DISTIN
e780: 43 54 20 63 6f 6c 30 20 29 20 2b 20 2b 20 2b 20  CT col0 ) + + + 
e790: 28 20 2b 20 36 31 20 29 20 41 53 20 63 6f 6c 30  ( + 61 ) AS col0
e7a0: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
e7b0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 34 0d 0a 0d 0a  r0..----..64....
e7c0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
e7d0: 0a 53 45 4c 45 43 54 20 2b 20 36 36 20 2a 20 2d  .SELECT + 66 * -
e7e0: 20 63 6f 6c 32 20 2a 20 63 6f 6c 30 20 2b 20 2b   col2 * col0 + +
e7f0: 20 2d 20 35 36 20 46 52 4f 4d 20 74 61 62 30 20   - 56 FROM tab0 
e800: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
e810: 34 36 35 38 36 0d 0a 2d 35 37 34 37 36 0d 0a 2d  46586..-57476..-
e820: 36 33 33 38 35 34 0d 0a 0d 0a 71 75 65 72 79 20  633854....query 
e830: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
e840: 43 54 20 2d 20 63 6f 6c 32 2c 20 2d 20 63 6f 6c  CT - col2, - col
e850: 32 20 2a 20 35 34 20 2a 20 35 39 20 2a 20 2d 20  2 * 54 * 59 * - 
e860: 2d 20 36 36 20 41 53 20 63 6f 6c 32 20 46 52 4f  - 66 AS col2 FRO
e870: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  M tab1..----..-5
e880: 39 0d 0a 2d 31 32 34 30 36 32 38 34 0d 0a 2d 36  9..-12406284..-6
e890: 38 0d 0a 2d 31 34 32 39 38 37 36 38 0d 0a 2d 39  8..-14298768..-9
e8a0: 36 0d 0a 2d 32 30 31 38 36 34 39 36 0d 0a 0d 0a  6..-20186496....
e8b0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
e8c0: 0a 53 45 4c 45 43 54 20 2d 20 38 36 20 46 52 4f  .SELECT - 86 FRO
e8d0: 4d 20 74 61 62 32 2c 20 74 61 62 32 20 41 53 20  M tab2, tab2 AS 
e8e0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  cor0..----..9 va
e8f0: 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
e900: 39 61 63 38 30 36 37 39 33 63 30 33 64 33 61 36  9ac806793c03d3a6
e910: 62 35 65 33 61 33 30 32 39 64 32 30 65 34 64 61  b5e3a3029d20e4da
e920: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
e930: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
e940: 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  L * FROM tab2 WH
e950: 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 30 20 3d  ERE NOT + col0 =
e960: 20 2b 20 2b 20 28 20 2d 20 63 6f 6c 30 20 29 20   + + ( - col0 ) 
e970: 2f 20 2d 20 31 35 20 2b 20 2d 20 63 6f 6c 31 0d  / - 15 + - col1.
e980: 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
e990: 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39  hashing to 75c99
e9a0: 38 61 61 35 33 61 63 38 33 32 31 38 63 62 66 32  8aa53ac83218cbf2
e9b0: 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 71  feb962d0a49....q
e9c0: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
e9d0: 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 2c 20  .SELECT - col2, 
e9e0: 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f  col2 AS col0 FRO
e9f0: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  M tab1..----..-5
ea00: 39 0d 0a 35 39 0d 0a 2d 36 38 0d 0a 36 38 0d 0a  9..59..-68..68..
ea10: 2d 39 36 0d 0a 39 36 0d 0a 0d 0a 71 75 65 72 79  -96..96....query
ea20: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
ea30: 43 54 20 2b 20 28 20 2d 20 2d 20 63 6f 6c 31 20  CT + ( - - col1 
ea40: 29 20 2a 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f  ) * + col0 AS co
ea50: 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
ea60: 2d 2d 0d 0a 31 32 31 35 0d 0a 31 38 32 37 0d 0a  --..1215..1827..
ea70: 39 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  97....query I ro
ea80: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
ea90: 4c 20 63 6f 6c 32 20 2d 20 2d 20 2d 20 36 35 20  L col2 - - - 65 
eaa0: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
eab0: 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35 0d 0a 2d 34  2..----..-25..-4
eac0: 32 0d 0a 2d 37 0d 0a 0d 0a 71 75 65 72 79 20 49  2..-7....query I
ead0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
eae0: 20 38 20 2d 20 2d 20 2b 20 36 30 20 41 53 20 63   8 - - + 60 AS c
eaf0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
eb00: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 38 0d   cor0..----..68.
eb10: 0a 36 38 0d 0a 36 38 0d 0a 0d 0a 71 75 65 72 79  .68..68....query
eb20: 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
eb30: 45 43 54 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30  ECT col0 AS col0
eb40: 2c 20 2b 20 39 38 20 41 53 20 63 6f 6c 31 20 46  , + 98 AS col1 F
eb50: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
eb60: 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 39 38 0d 0a  ..----..51..98..
eb70: 38 35 0d 0a 39 38 0d 0a 39 31 0d 0a 39 38 0d 0a  85..98..91..98..
eb80: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
eb90: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
eba0: 43 54 20 2d 20 31 20 2a 20 63 6f 6c 30 20 2a 20  CT - 1 * col0 * 
ebb0: 39 30 20 2b 20 2d 20 28 20 63 6f 6c 31 20 29 20  90 + - ( col1 ) 
ebc0: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
ebd0: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
ebe0: 0a 2d 34 31 39 31 0d 0a 2d 35 38 33 37 0d 0a 2d  .-4191..-5837..-
ebf0: 36 38 31 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20  6817....query I 
ec00: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
ec10: 2b 20 36 31 20 2a 20 2d 20 2d 20 63 6f 6c 30 20  + 61 * - - col0 
ec20: 2a 20 2b 20 63 6f 6c 31 20 2d 20 2d 20 63 6f 6c  * + col1 - - col
ec30: 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
ec40: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 35 39 38 34  or0..----..25984
ec50: 0d 0a 32 36 30 39 36 35 0d 0a 34 33 36 35 30 0d  ..260965..43650.
ec60: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
ec70: 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
ec80: 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
ec90: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
eca0: 62 65 6c 2d 33 32 30 0d 0a 53 45 4c 45 43 54 20  bel-320..SELECT 
ecb0: 41 4c 4c 20 63 6f 6c 30 20 44 49 56 20 2d 20 2d  ALL col0 DIV - -
ecc0: 20 39 37 20 46 52 4f 4d 20 74 61 62 31 20 63 6f   97 FROM tab1 co
ecd0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a  r0..----..0..0..
ece0: 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
ecf0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
ed00: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
ed10: 6f 72 74 20 6c 61 62 65 6c 2d 33 32 30 0d 0a 53  ort label-320..S
ed20: 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 2f  ELECT ALL col0 /
ed30: 20 2d 20 2d 20 39 37 20 46 52 4f 4d 20 74 61 62   - - 97 FROM tab
ed40: 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  1 cor0..----..0.
ed50: 0a 30 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .0..0....onlyif 
ed60: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
ed70: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
ed80: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
ed90: 6f 72 74 20 6c 61 62 65 6c 2d 33 32 31 0d 0a 53  ort label-321..S
eda0: 45 4c 45 43 54 20 41 4c 4c 20 2d 20 33 33 20 41  ELECT ALL - 33 A
edb0: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
edc0: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
edd0: 4f 54 20 63 6f 6c 30 20 3c 3e 20 2b 20 43 41 53  OT col0 <> + CAS
ede0: 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
edf0: 44 20 29 20 2a 20 2d 20 2d 20 43 41 53 54 28 20  D ) * - - CAST( 
ee00: 2d 20 2b 20 63 6f 6c 30 20 41 53 20 53 49 47 4e  - + col0 AS SIGN
ee10: 45 44 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b  ED )..----....sk
ee20: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
ee30: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
ee40: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
ee50: 65 6c 2d 33 32 31 0d 0a 53 45 4c 45 43 54 20 41  el-321..SELECT A
ee60: 4c 4c 20 2d 20 33 33 20 41 53 20 63 6f 6c 32 20  LL - 33 AS col2 
ee70: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
ee80: 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30  0 WHERE NOT col0
ee90: 20 3c 3e 20 2b 20 43 41 53 54 20 28 20 4e 55 4c   <> + CAST ( NUL
eea0: 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a  L AS INTEGER ) *
eeb0: 20 2d 20 2d 20 43 41 53 54 20 28 20 2d 20 2b 20   - - CAST ( - + 
eec0: 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45 52 20  col0 AS INTEGER 
eed0: 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  )..----....skipi
eee0: 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
eef0: 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
ef00: 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
ef10: 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
ef20: 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
ef30: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  ort..SELECT - co
ef40: 6c 30 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 2b 20  l0 * - - col0 + 
ef50: 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 31 20 63 6f  col1 + + col1 co
ef60: 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
ef70: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30 31  cor0..----..-201
ef80: 34 0d 0a 2d 33 39 34 32 0d 0a 2d 35 34 39 31 0d  4..-3942..-5491.
ef90: 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
efa0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 36 39  ort..SELECT - 69
efb0: 20 2a 20 2b 20 2b 20 31 20 41 53 20 63 6f 6c 30   * + + 1 AS col0
efc0: 2c 20 33 20 2a 20 2d 20 34 20 2d 20 2d 20 63 6f  , 3 * - 4 - - co
efd0: 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
efe0: 2d 2d 0d 0a 2d 36 39 0d 0a 2d 37 0d 0a 2d 36 39  --..-69..-7..-69
eff0: 0d 0a 32 0d 0a 2d 36 39 0d 0a 33 35 0d 0a 0d 0a  ..2..-69..35....
f000: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
f010: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
f020: 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
f030: 6f 72 74 20 6c 61 62 65 6c 2d 33 32 34 0d 0a 53  ort label-324..S
f040: 45 4c 45 43 54 20 28 20 2d 20 43 4f 55 4e 54 28  ELECT ( - COUNT(
f050: 20 2a 20 29 20 29 20 41 53 20 63 6f 6c 32 2c 20   * ) ) AS col2, 
f060: 2b 20 28 20 2b 20 43 4f 55 4e 54 28 20 41 4c 4c  + ( + COUNT( ALL
f070: 20 2b 20 2b 20 34 38 20 29 20 29 20 46 52 4f 4d   + + 48 ) ) FROM
f080: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d   tab2..----..-3.
f090: 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .3....skipif mys
f0a0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
f0b0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
f0c0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 32 34 0d  wsort label-324.
f0d0: 0a 53 45 4c 45 43 54 20 28 20 2d 20 43 4f 55 4e  .SELECT ( - COUN
f0e0: 54 20 28 20 2a 20 29 20 29 20 41 53 20 63 6f 6c  T ( * ) ) AS col
f0f0: 32 2c 20 2b 20 28 20 2b 20 43 4f 55 4e 54 20 28  2, + ( + COUNT (
f100: 20 41 4c 4c 20 2b 20 2b 20 34 38 20 29 20 29 20   ALL + + 48 ) ) 
f110: 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
f120: 0a 2d 33 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20  .-3..3....query 
f130: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
f140: 54 20 2d 20 31 30 20 41 53 20 63 6f 6c 32 20 46  T - 10 AS col2 F
f150: 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48  ROM tab2 cor0 WH
f160: 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20 2b 20 2d  ERE NOT col2 + -
f170: 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d   col2 IS NULL..-
f180: 2d 2d 2d 0d 0a 2d 31 30 0d 0a 2d 31 30 0d 0a 2d  ---..-10..-10..-
f190: 31 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  10....query I ro
f1a0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
f1b0: 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20 2a 20  STINCT + col2 * 
f1c0: 2d 20 2d 20 33 30 20 46 52 4f 4d 20 74 61 62 30  - - 30 FROM tab0
f1d0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
f1e0: 31 34 31 30 0d 0a 32 39 37 30 0d 0a 33 30 30 0d  1410..2970..300.
f1f0: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
f200: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
f210: 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
f220: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b  cor0 WHERE NOT +
f230: 20 63 6f 6c 32 20 2a 20 63 6f 6c 30 20 3e 3d 20   col2 * col0 >= 
f240: 2d 20 34 33 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  - 43..----....on
f250: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
f260: 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41  T syntax: DECIMA
f270: 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  L type: ..query 
f280: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
f290: 2d 33 32 38 0d 0a 53 45 4c 45 43 54 20 44 49 53  -328..SELECT DIS
f2a0: 54 49 4e 43 54 20 28 20 2b 20 43 41 53 54 28 20  TINCT ( + CAST( 
f2b0: 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20  NULL AS DECIMAL 
f2c0: 29 20 29 20 41 53 20 63 6f 6c 30 2c 20 63 6f 6c  ) ) AS col0, col
f2d0: 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  2 AS col2 FROM t
f2e0: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
f2f0: 2d 0d 0a 4e 55 4c 4c 0d 0a 32 33 0d 0a 4e 55 4c  -..NULL..23..NUL
f300: 4c 0d 0a 34 30 0d 0a 4e 55 4c 4c 0d 0a 35 38 0d  L..40..NULL..58.
f310: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
f320: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
f330: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
f340: 72 74 20 6c 61 62 65 6c 2d 33 32 38 0d 0a 53 45  rt label-328..SE
f350: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 28 20  LECT DISTINCT ( 
f360: 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
f370: 20 52 45 41 4c 20 29 20 29 20 41 53 20 63 6f 6c   REAL ) ) AS col
f380: 30 2c 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20  0, col2 AS col2 
f390: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
f3a0: 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 32  0..----..NULL..2
f3b0: 33 0d 0a 4e 55 4c 4c 0d 0a 34 30 0d 0a 4e 55 4c  3..NULL..40..NUL
f3c0: 4c 0d 0a 35 38 0d 0a 0d 0a 71 75 65 72 79 20 49  L..58....query I
f3d0: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
f3e0: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41  CT * FROM tab0 A
f3f0: 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
f400: 20 28 20 4e 4f 54 20 2d 20 63 6f 6c 31 20 2a 20   ( NOT - col1 * 
f410: 2b 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 31 20  + col2 * + col1 
f420: 2b 20 2d 20 2d 20 63 6f 6c 32 20 2b 20 36 38 20  + - - col2 + 68 
f430: 2f 20 2b 20 2d 20 38 39 20 2a 20 2b 20 28 20 2b  / + - 89 * + ( +
f440: 20 2b 20 35 36 20 29 20 49 53 20 4e 55 4c 4c 20   + 56 ) IS NULL 
f450: 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  )..----....query
f460: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
f470: 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20  CT DISTINCT - - 
f480: 39 20 2a 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 35  9 * - col0 * - 5
f490: 20 2b 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74   + + col2 FROM t
f4a0: 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
f4b0: 45 20 4e 4f 54 20 2d 20 37 36 20 2a 20 2d 20 63  E NOT - 76 * - c
f4c0: 6f 6c 31 20 3e 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d  ol1 > col0..----
f4d0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
f4e0: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
f4f0: 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a  DECIMAL type: ..
f500: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
f510: 6c 61 62 65 6c 2d 33 33 31 0d 0a 53 45 4c 45 43  label-331..SELEC
f520: 54 20 41 4c 4c 20 2d 20 2b 20 32 32 20 63 6f 6c  T ALL - + 22 col
f530: 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
f540: 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20  or0 WHERE NOT ( 
f550: 4e 55 4c 4c 20 29 20 4e 4f 54 20 49 4e 20 28 20  NULL ) NOT IN ( 
f560: 2b 20 2b 20 63 6f 6c 31 2c 20 43 41 53 54 28 20  + + col1, CAST( 
f570: 2b 20 2b 20 32 37 20 41 53 20 44 45 43 49 4d 41  + + 27 AS DECIMA
f580: 4c 20 29 20 2b 20 2b 20 36 39 20 29 0d 0a 2d 2d  L ) + + 69 )..--
f590: 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
f5a0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
f5b0: 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  ble..skipif post
f5c0: 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
f5d0: 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
f5e0: 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
f5f0: 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
f600: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
f610: 62 65 6c 2d 33 33 31 0d 0a 53 45 4c 45 43 54 20  bel-331..SELECT 
f620: 41 4c 4c 20 2d 20 2b 20 32 32 20 63 6f 6c 31 20  ALL - + 22 col1 
f630: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
f640: 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55  0 WHERE NOT ( NU
f650: 4c 4c 20 29 20 4e 4f 54 20 49 4e 20 28 20 2b 20  LL ) NOT IN ( + 
f660: 2b 20 63 6f 6c 31 2c 20 43 41 53 54 20 28 20 2b  + col1, CAST ( +
f670: 20 2b 20 32 37 20 41 53 20 52 45 41 4c 20 29 20   + 27 AS REAL ) 
f680: 2b 20 2b 20 36 39 20 29 0d 0a 2d 2d 2d 2d 0d 0a  + + 69 )..----..
f690: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
f6a0: 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
f6b0: 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
f6c0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
f6d0: 65 6c 2d 33 33 32 0d 0a 53 45 4c 45 43 54 20 63  el-332..SELECT c
f6e0: 6f 6c 30 20 44 49 56 20 32 39 20 41 53 20 63 6f  ol0 DIV 29 AS co
f6f0: 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l0 FROM tab1..--
f700: 2d 2d 0d 0a 31 0d 0a 32 0d 0a 33 0d 0a 0d 0a 73  --..1..2..3....s
f710: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
f720: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
f730: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
f740: 62 65 6c 2d 33 33 32 0d 0a 53 45 4c 45 43 54 20  bel-332..SELECT 
f750: 63 6f 6c 30 20 2f 20 32 39 20 41 53 20 63 6f 6c  col0 / 29 AS col
f760: 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  0 FROM tab1..---
f770: 2d 0d 0a 31 0d 0a 32 0d 0a 33 0d 0a 0d 0a 71 75  -..1..2..3....qu
f780: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
f790: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
f7a0: 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   * FROM tab2 WHE
f7b0: 52 45 20 2b 20 63 6f 6c 32 20 2d 20 2b 20 2d 20  RE + col2 - + - 
f7c0: 35 36 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  56 IS NULL..----
f7d0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
f7e0: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
f7f0: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
f800: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 33 34  owsort label-334
f810: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 53  ..SELECT ALL - S
f820: 55 4d 28 20 33 31 20 29 20 2b 20 2b 20 2b 20 33  UM( 31 ) + + + 3
f830: 39 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  9 FROM tab0 cor0
f840: 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 34 0d 0a 0d 0a 73  ..----..-54....s
f850: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
f860: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
f870: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
f880: 62 65 6c 2d 33 33 34 0d 0a 53 45 4c 45 43 54 20  bel-334..SELECT 
f890: 41 4c 4c 20 2d 20 53 55 4d 20 28 20 33 31 20 29  ALL - SUM ( 31 )
f8a0: 20 2b 20 2b 20 2b 20 33 39 20 46 52 4f 4d 20 74   + + + 39 FROM t
f8b0: 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab0 cor0..----..
f8c0: 2d 35 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  -54....query I r
f8d0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
f8e0: 4c 4c 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 38 31  LL + col0 * - 81
f8f0: 20 2d 20 2b 20 2b 20 32 30 20 2a 20 2b 20 2d 20   - + + 20 * + - 
f900: 28 20 2b 20 2d 20 34 31 20 29 20 2b 20 63 6f 6c  ( + - 41 ) + col
f910: 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  0 AS col2 FROM t
f920: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
f930: 2d 0d 0a 2d 32 30 32 30 0d 0a 2d 37 37 38 30 0d  -..-2020..-7780.
f940: 0a 2d 38 35 38 30 0d 0a 0d 0a 71 75 65 72 79 20  .-8580....query 
f950: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
f960: 54 20 41 4c 4c 20 34 33 20 2b 20 2d 20 2b 20 63  T ALL 43 + - + c
f970: 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol0 AS col0 FROM
f980: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
f990: 2d 2d 2d 0d 0a 2d 32 31 0d 0a 2d 33 0d 0a 2d 33  ---..-21..-3..-3
f9a0: 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  2....onlyif mysq
f9b0: 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
f9c0: 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
f9d0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
f9e0: 6c 61 62 65 6c 2d 33 33 37 0d 0a 53 45 4c 45 43  label-337..SELEC
f9f0: 54 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 39 35 20  T + col0 * - 95 
fa00: 2b 20 2d 20 2d 20 28 20 2d 20 63 6f 6c 31 20 29  + - - ( - col1 )
fa10: 20 44 49 56 20 63 6f 6c 30 20 2d 20 2d 20 63 6f   DIV col0 - - co
fa20: 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
fa30: 2d 2d 0d 0a 2d 34 33 32 30 0d 0a 2d 36 30 30 34  --..-4320..-6004
fa40: 0d 0a 2d 37 30 35 38 0d 0a 0d 0a 73 6b 69 70 69  ..-7058....skipi
fa50: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
fa60: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
fa70: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
fa80: 33 33 37 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  337..SELECT + co
fa90: 6c 30 20 2a 20 2d 20 39 35 20 2b 20 2d 20 2d 20  l0 * - 95 + - - 
faa0: 28 20 2d 20 63 6f 6c 31 20 29 20 2f 20 63 6f 6c  ( - col1 ) / col
fab0: 30 20 2d 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20  0 - - col1 FROM 
fac0: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 33 32  tab2..----..-432
fad0: 30 0d 0a 2d 36 30 30 34 0d 0a 2d 37 30 35 38 0d  0..-6004..-7058.
fae0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
faf0: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
fb00: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
fb10: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 33 38 0d  wsort label-338.
fb20: 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a  .SELECT COUNT( *
fb30: 20 29 20 2a 20 2d 20 2b 20 43 4f 55 4e 54 28 20   ) * - + COUNT( 
fb40: 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53  * ) FROM tab2 AS
fb50: 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
fb60: 20 74 61 62 30 20 41 53 20 63 6f 72 31 0d 0a 2d   tab0 AS cor1..-
fb70: 2d 2d 2d 0d 0a 2d 38 31 0d 0a 0d 0a 73 6b 69 70  ---..-81....skip
fb80: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
fb90: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
fba0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
fbb0: 2d 33 33 38 0d 0a 53 45 4c 45 43 54 20 43 4f 55  -338..SELECT COU
fbc0: 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20 2b 20 43  NT ( * ) * - + C
fbd0: 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20  OUNT ( * ) FROM 
fbe0: 74 61 62 32 20 41 53 20 63 6f 72 30 20 43 52 4f  tab2 AS cor0 CRO
fbf0: 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20  SS JOIN tab0 AS 
fc00: 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 31 0d  cor1..----..-81.
fc10: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
fc20: 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20  rt..SELECT col1 
fc30: 2a 20 2d 20 2b 20 31 36 20 2a 20 63 6f 6c 30 20  * - + 16 * col0 
fc40: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
fc50: 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 37 35 33 36 0d  2..----..-37536.
fc60: 0a 2d 37 38 38 34 38 0d 0a 2d 38 30 34 30 30 0d  .-78848..-80400.
fc70: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
fc80: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
fc90: 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   * FROM tab1 AS 
fca0: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b  cor0 WHERE NOT +
fcb0: 20 28 20 2b 20 34 35 20 29 20 49 53 20 4e 4f 54   ( + 45 ) IS NOT
fcc0: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
fcd0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
fce0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
fcf0: 2d 20 28 20 2b 20 2b 20 63 6f 6c 31 20 29 20 2a  - ( + + col1 ) *
fd00: 20 2b 20 2d 20 36 39 20 2d 20 2b 20 63 6f 6c 30   + - 69 - + col0
fd10: 20 2b 20 2b 20 63 6f 6c 32 20 2b 20 28 20 2b 20   + + col2 + ( + 
fd20: 28 20 2d 20 63 6f 6c 31 20 29 20 29 20 41 53 20  ( - col1 ) ) AS 
fd30: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
fd40: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 34  S cor0..----..34
fd50: 34 35 0d 0a 34 35 33 39 0d 0a 35 32 31 32 0d 0a  45..4539..5212..
fd60: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
fd70: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
fd80: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
fd90: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 34 32 0d 0a  sort label-342..
fda0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
fdb0: 2d 20 28 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  - ( + COUNT( * )
fdc0: 20 29 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72   ) FROM tab0 cor
fdd0: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73  0..----..-3....s
fde0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
fdf0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
fe00: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
fe10: 62 65 6c 2d 33 34 32 0d 0a 53 45 4c 45 43 54 20  bel-342..SELECT 
fe20: 44 49 53 54 49 4e 43 54 20 2d 20 28 20 2b 20 43  DISTINCT - ( + C
fe30: 4f 55 4e 54 20 28 20 2a 20 29 20 29 20 46 52 4f  OUNT ( * ) ) FRO
fe40: 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
fe50: 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79 20 49  -..-3....query I
fe60: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
fe70: 20 2b 20 63 6f 6c 30 20 2d 20 33 30 20 41 53 20   + col0 - 30 AS 
fe80: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
fe90: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
fea0: 35 0d 0a 35 37 0d 0a 36 37 0d 0a 0d 0a 73 6b 69  5..57..67....ski
feb0: 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
fec0: 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
fed0: 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
fee0: 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
fef0: 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
ff00: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
ff10: 53 54 49 4e 43 54 20 63 6f 6c 30 20 2b 20 2d 20  STINCT col0 + - 
ff20: 2d 20 63 6f 6c 32 20 2b 20 2b 20 38 32 20 63 6f  - col2 + + 82 co
ff30: 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
ff40: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 34 0d  cor0..----..144.
ff50: 0a 31 37 39 0d 0a 32 37 38 0d 0a 0d 0a 6f 6e 6c  .179..278....onl
ff60: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
ff70: 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61   syntax: aggrega
ff80: 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  te syntax: SIGNE
ff90: 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
ffa0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
ffb0: 33 34 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  345..SELECT DIST
ffc0: 49 4e 43 54 20 43 41 53 54 28 20 2d 20 2b 20 28  INCT CAST( - + (
ffd0: 20 2b 20 41 56 47 20 28 20 2d 20 63 6f 6c 32 20   + AVG ( - col2 
ffe0: 29 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20  ) ) AS SIGNED ) 
fff0: 2d 20 4d 41 58 28 20 41 4c 4c 20 2d 20 2d 20 31  - MAX( ALL - - 1
10000 30 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  0 ) AS col1 FROM
10010 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
10020 2d 2d 2d 0d 0a 33 30 0d 0a 0d 0a 73 6b 69 70 69  ---..30....skipi
10030 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
10040 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
10050 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
10060 33 34 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  345..SELECT DIST
10070 49 4e 43 54 20 43 41 53 54 20 28 20 2d 20 2b 20  INCT CAST ( - + 
10080 28 20 2b 20 41 56 47 20 28 20 2d 20 63 6f 6c 32  ( + AVG ( - col2
10090 20 29 20 29 20 41 53 20 49 4e 54 45 47 45 52 20   ) ) AS INTEGER 
100a0 29 20 2d 20 4d 41 58 20 28 20 41 4c 4c 20 2d 20  ) - MAX ( ALL - 
100b0 2d 20 31 30 20 29 20 41 53 20 63 6f 6c 31 20 46  - 10 ) AS col1 F
100c0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
100d0 0d 0a 2d 2d 2d 2d 0d 0a 33 30 0d 0a 0d 0a 71 75  ..----..30....qu
100e0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
100f0 45 4c 45 43 54 20 2d 20 32 32 20 2b 20 2d 20 63  ELECT - 22 + - c
10100 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 57 48  ol1 FROM tab1 WH
10110 45 52 45 20 2d 20 38 32 20 2a 20 2b 20 2b 20 63  ERE - 82 * + + c
10120 6f 6c 30 20 3e 20 39 30 0d 0a 2d 2d 2d 2d 0d 0a  ol0 > 90..----..
10130 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
10140 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
10150 43 54 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 2d 20  CT - col2 + - - 
10160 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f  col1 AS col1 FRO
10170 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 38  M tab2..----..28
10180 0d 0a 33 37 0d 0a 39 0d 0a 0d 0a 6f 6e 6c 79 69  ..37..9....onlyi
10190 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
101a0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
101b0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
101c0 62 65 6c 2d 33 34 38 0d 0a 53 45 4c 45 43 54 20  bel-348..SELECT 
101d0 41 4c 4c 20 28 20 2b 20 43 4f 55 4e 54 28 20 2a  ALL ( + COUNT( *
101e0 20 29 20 29 20 2d 20 2d 20 4d 41 58 28 20 32 34   ) ) - - MAX( 24
101f0 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d   ) FROM tab1..--
10200 2d 2d 0d 0a 32 37 0d 0a 0d 0a 73 6b 69 70 69 66  --..27....skipif
10210 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
10220 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
10230 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
10240 34 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28  48..SELECT ALL (
10250 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29   + COUNT ( * ) )
10260 20 2d 20 2d 20 4d 41 58 20 28 20 32 34 20 29 20   - - MAX ( 24 ) 
10270 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
10280 0a 32 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  .27....query II 
10290 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
102a0 2b 20 63 6f 6c 31 20 2b 20 2b 20 2b 20 38 31 2c  + col1 + + + 81,
102b0 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52   col1 AS col2 FR
102c0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
102d0 30 32 0d 0a 32 31 0d 0a 31 36 32 0d 0a 38 31 0d  02..21..162..81.
102e0 0a 38 32 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66  .82..1....skipif
102f0 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
10300 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
10310 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
10320 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
10330 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
10340 72 74 0d 0a 53 45 4c 45 43 54 20 28 20 2d 20 2b  rt..SELECT ( - +
10350 20 63 6f 6c 32 20 29 20 2b 20 2d 20 63 6f 6c 31   col2 ) + - col1
10360 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
10370 0a 2d 2d 2d 2d 0d 0a 2d 31 31 37 0d 0a 2d 31 32  .----..-117..-12
10380 35 0d 0a 2d 37 34 0d 0a 0d 0a 73 6b 69 70 69 66  5..-74....skipif
10390 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
103a0 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
103b0 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
103c0 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
103d0 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
103e0 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  rt..SELECT - col
103f0 32 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  2 col0 FROM tab2
10400 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
10410 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
10420 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
10430 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
10440 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
10450 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
10460 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
10470 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
10480 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 36 34  CT DISTINCT - 64
10490 20 2a 20 2d 20 28 20 2b 20 31 30 20 29 2c 20 33   * - ( + 10 ), 3
104a0 33 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  3 col0 FROM tab2
104b0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
104c0 36 34 30 0d 0a 33 33 0d 0a 0d 0a 71 75 65 72 79  640..33....query
104d0 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
104e0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 28  ECT DISTINCT + (
104f0 20 63 6f 6c 30 20 29 2c 20 37 38 20 2a 20 63 6f   col0 ), 78 * co
10500 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l0 FROM tab2 AS 
10510 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a  cor0..----..46..
10520 33 35 38 38 0d 0a 36 34 0d 0a 34 39 39 32 0d 0a  3588..64..4992..
10530 37 35 0d 0a 35 38 35 30 0d 0a 0d 0a 71 75 65 72  75..5850....quer
10540 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
10550 45 43 54 20 63 6f 6c 32 20 2a 20 37 39 20 2b 20  ECT col2 * 79 + 
10560 2b 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 32 20  + col0 * - col2 
10570 2a 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20  * + - col0 FROM 
10580 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
10590 2d 2d 0d 0a 32 35 37 32 38 30 0d 0a 34 33 30 39  --..257280..4309
105a0 33 36 0d 0a 35 36 38 34 38 30 0d 0a 0d 0a 71 75  36..568480....qu
105b0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
105c0 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 32 30  ELECT ALL - + 20
105d0 20 2f 20 2b 20 2b 20 63 6f 6c 30 20 46 52 4f 4d   / + + col0 FROM
105e0 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20   tab0 WHERE NOT 
105f0 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  NULL IS NULL..--
10600 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  --....query III 
10610 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
10620 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
10630 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 4e  tab1 WHERE NOT N
10640 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  ULL NOT BETWEEN 
10650 4e 55 4c 4c 20 41 4e 44 20 63 6f 6c 31 20 2b 20  NULL AND col1 + 
10660 2b 20 2d 20 35 35 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  + - 55..----....
10670 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
10680 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
10690 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
106a0 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
106b0 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
106c0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
106d0 20 41 4c 4c 20 34 31 20 63 6f 6c 32 20 46 52 4f   ALL 41 col2 FRO
106e0 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab2 cor0..---
106f0 2d 0d 0a 34 31 0d 0a 34 31 0d 0a 34 31 0d 0a 0d  -..41..41..41...
10700 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
10710 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 63 6f  t..SELECT + + co
10720 6c 31 2c 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  l1, col1 FROM ta
10730 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
10740 0d 0a 35 31 0d 0a 35 31 0d 0a 36 37 0d 0a 36 37  ..51..51..67..67
10750 0d 0a 37 37 0d 0a 37 37 0d 0a 0d 0a 71 75 65 72  ..77..77....quer
10760 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
10770 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
10780 2d 20 38 30 2c 20 2d 20 37 36 20 41 53 20 63 6f  - 80, - 76 AS co
10790 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
107a0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 30 0d  cor0..----..-80.
107b0 0a 2d 37 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-76....query I 
107c0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
107d0 41 4c 4c 20 2b 20 2d 20 39 36 20 2a 20 32 31 20  ALL + - 96 * 21 
107e0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
107f0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30 31 36 0d 0a  0..----..-2016..
10800 2d 32 30 31 36 0d 0a 2d 32 30 31 36 0d 0a 0d 0a  -2016..-2016....
10810 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
10820 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2b 20 2d  .SELECT col2 + -
10830 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 34 38 20 41   - col0 * + 48 A
10840 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
10850 0d 0a 2d 2d 2d 2d 0d 0a 32 35 34 34 0d 0a 34 31  ..----..2544..41
10860 33 39 0d 0a 34 34 33 36 0d 0a 0d 0a 71 75 65 72  39..4436....quer
10870 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
10880 45 43 54 20 41 4c 4c 20 2b 20 36 30 20 41 53 20  ECT ALL + 60 AS 
10890 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 57  col2 FROM tab2 W
108a0 48 45 52 45 20 2b 20 33 34 20 2a 20 2d 20 2b 20  HERE + 34 * - + 
108b0 63 6f 6c 30 20 42 45 54 57 45 45 4e 20 4e 55 4c  col0 BETWEEN NUL
108c0 4c 20 41 4e 44 20 2d 20 2d 20 63 6f 6c 30 0d 0a  L AND - - col0..
108d0 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
108e0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
108f0 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72   syntax: DIV for
10900 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
10910 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  n: ..query II ro
10920 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 36 33 0d  wsort label-363.
10930 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 38 34  .SELECT ALL - 84
10940 20 44 49 56 20 2d 20 2b 20 35 34 2c 20 43 4f 55   DIV - + 54, COU
10950 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20  NT( * ) AS col1 
10960 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
10970 0a 31 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  .1..3....skipif 
10980 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
10990 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
109a0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
109b0 36 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  63..SELECT ALL -
109c0 20 38 34 20 2f 20 2d 20 2b 20 35 34 2c 20 43 4f   84 / - + 54, CO
109d0 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c  UNT ( * ) AS col
109e0 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
109f0 2d 0d 0a 31 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69  -..1..3....onlyi
10a00 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
10a10 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
10a20 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
10a30 61 62 65 6c 2d 33 36 34 0d 0a 53 45 4c 45 43 54  abel-364..SELECT
10a40 20 2b 20 2d 20 4d 49 4e 28 20 44 49 53 54 49 4e   + - MIN( DISTIN
10a50 43 54 20 34 37 20 29 2c 20 2d 20 43 4f 55 4e 54  CT 47 ), - COUNT
10a60 28 20 2a 20 29 20 2a 20 2d 20 43 4f 55 4e 54 28  ( * ) * - COUNT(
10a70 20 2a 20 29 20 2b 20 2d 20 43 4f 55 4e 54 28 20   * ) + - COUNT( 
10a80 2a 20 29 20 2a 20 2b 20 43 4f 55 4e 54 28 20 2a  * ) * + COUNT( *
10a90 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   ) col1 FROM tab
10aa0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
10ab0 0a 2d 34 37 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  .-47..0....skipi
10ac0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
10ad0 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66  mpatible..skipif
10ae0 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
10af0 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
10b00 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
10b10 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
10b20 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  s..query II rows
10b30 6f 72 74 20 6c 61 62 65 6c 2d 33 36 34 0d 0a 53  ort label-364..S
10b40 45 4c 45 43 54 20 2b 20 2d 20 4d 49 4e 20 28 20  ELECT + - MIN ( 
10b50 44 49 53 54 49 4e 43 54 20 34 37 20 29 2c 20 2d  DISTINCT 47 ), -
10b60 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d   COUNT ( * ) * -
10b70 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2d   COUNT ( * ) + -
10b80 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2b   COUNT ( * ) * +
10b90 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 63 6f 6c   COUNT ( * ) col
10ba0 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
10bb0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 37 0d 0a  or0..----..-47..
10bc0 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
10bd0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
10be0 54 49 4e 43 54 20 2b 20 36 30 20 2b 20 2b 20 2b  TINCT + 60 + + +
10bf0 20 37 37 20 46 52 4f 4d 20 74 61 62 32 20 41 53   77 FROM tab2 AS
10c00 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 37   cor0..----..137
10c10 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
10c20 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
10c30 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
10c40 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 36 36  owsort label-366
10c50 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 43 4f 55  ..SELECT - + COU
10c60 4e 54 28 20 44 49 53 54 49 4e 43 54 20 2b 20 32  NT( DISTINCT + 2
10c70 33 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53  3 ) FROM tab2 AS
10c80 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d   cor0..----..-1.
10c90 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
10ca0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
10cb0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
10cc0 74 20 6c 61 62 65 6c 2d 33 36 36 0d 0a 53 45 4c  t label-366..SEL
10cd0 45 43 54 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20  ECT - + COUNT ( 
10ce0 44 49 53 54 49 4e 43 54 20 2b 20 32 33 20 29 20  DISTINCT + 23 ) 
10cf0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
10d00 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 6f  0..----..-1....o
10d10 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
10d20 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
10d30 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
10d40 74 20 6c 61 62 65 6c 2d 33 36 37 0d 0a 53 45 4c  t label-367..SEL
10d50 45 43 54 20 2b 20 28 20 43 4f 55 4e 54 28 20 2a  ECT + ( COUNT( *
10d60 20 29 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74   ) ) col2 FROM t
10d70 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
10d80 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..3....skipif m
10d90 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
10da0 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
10db0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
10dc0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
10dd0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
10de0 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
10df0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
10e00 6c 61 62 65 6c 2d 33 36 37 0d 0a 53 45 4c 45 43  label-367..SELEC
10e10 54 20 2b 20 28 20 43 4f 55 4e 54 20 28 20 2a 20  T + ( COUNT ( * 
10e20 29 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  ) ) col2 FROM ta
10e30 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
10e40 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ..3....query III
10e50 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
10e60 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   * FROM tab1 AS 
10e70 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 31 20  cor0 WHERE col1 
10e80 2a 20 2d 20 36 30 20 3e 20 2b 20 63 6f 6c 30 20  * - 60 > + col0 
10e90 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  - col2..----....
10ea0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
10eb0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
10ec0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
10ed0 72 74 20 6c 61 62 65 6c 2d 33 36 39 0d 0a 53 45  rt label-369..SE
10ee0 4c 45 43 54 20 41 4c 4c 20 4d 49 4e 28 20 44 49  LECT ALL MIN( DI
10ef0 53 54 49 4e 43 54 20 2d 20 34 30 20 29 20 46 52  STINCT - 40 ) FR
10f00 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
10f10 34 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  40....skipif mys
10f20 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
10f30 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
10f40 73 6f 72 74 20 6c 61 62 65 6c 2d 33 36 39 0d 0a  sort label-369..
10f50 53 45 4c 45 43 54 20 41 4c 4c 20 4d 49 4e 20 28  SELECT ALL MIN (
10f60 20 44 49 53 54 49 4e 43 54 20 2d 20 34 30 20 29   DISTINCT - 40 )
10f70 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
10f80 0d 0a 2d 34 30 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-40....query I
10f90 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
10fa0 20 2b 20 31 30 20 2a 20 63 6f 6c 31 20 2b 20 2d   + 10 * col1 + -
10fb0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
10fc0 0a 2d 2d 2d 2d 0d 0a 34 36 34 0d 0a 35 39 35 0d  .----..464..595.
10fd0 0a 37 30 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .706....query I 
10fe0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
10ff0 63 6f 6c 31 20 2a 20 2b 20 33 34 20 2b 20 63 6f  col1 * + 34 + co
11000 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l0 AS col1 FROM 
11010 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 36 38 39  tab1..----..1689
11020 0d 0a 32 35 35 0d 0a 35 32 37 0d 0a 0d 0a 71 75  ..255..527....qu
11030 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
11040 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2a 20 63  ELECT + col1 * c
11050 6f 6c 30 20 2b 20 2d 20 2b 20 63 6f 6c 32 20 2a  ol0 + - + col2 *
11060 20 2b 20 2d 20 33 34 20 41 53 20 63 6f 6c 32 20   + - 34 AS col2 
11070 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
11080 30 0d 0a 2d 2d 2d 2d 0d 0a 32 34 33 31 0d 0a 33  0..----..2431..3
11090 39 37 38 0d 0a 36 35 38 39 0d 0a 0d 0a 6f 6e 6c  978..6589....onl
110a0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
110b0 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
110c0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
110d0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 37  rowsort label-37
110e0 33 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31  3..SELECT + col1
110f0 20 2f 20 63 6f 6c 31 20 2b 20 33 38 20 2b 20 2d   / col1 + 38 + -
11100 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
11110 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62  IGNED ) FROM tab
11120 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
11130 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
11140 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
11150 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
11160 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
11170 6f 72 74 20 6c 61 62 65 6c 2d 33 37 33 0d 0a 53  ort label-373..S
11180 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2f 20 63  ELECT + col1 / c
11190 6f 6c 31 20 2b 20 33 38 20 2b 20 2d 20 43 41 53  ol1 + 38 + - CAS
111a0 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
111b0 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 30 20  GER ) FROM tab0 
111c0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
111d0 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
111e0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
111f0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
11200 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
11210 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
11220 6c 61 62 65 6c 2d 33 37 34 0d 0a 53 45 4c 45 43  label-374..SELEC
11230 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53  T * FROM tab1 AS
11240 20 63 6f 72 30 20 57 48 45 52 45 20 43 41 53 54   cor0 WHERE CAST
11250 28 20 2b 20 63 6f 6c 31 20 41 53 20 53 49 47 4e  ( + col1 AS SIGN
11260 45 44 20 29 20 42 45 54 57 45 45 4e 20 2b 20 2d  ED ) BETWEEN + -
11270 20 63 6f 6c 31 20 41 4e 44 20 63 6f 6c 30 0d 0a   col1 AND col0..
11280 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
11290 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34  ashing to c6c0a4
112a0 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61  111b36d04dbc811a
112b0 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 73 6b  11e4d54cad....sk
112c0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
112d0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
112e0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
112f0 61 62 65 6c 2d 33 37 34 0d 0a 53 45 4c 45 43 54  abel-374..SELECT
11300 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   * FROM tab1 AS 
11310 63 6f 72 30 20 57 48 45 52 45 20 43 41 53 54 20  cor0 WHERE CAST 
11320 28 20 2b 20 63 6f 6c 31 20 41 53 20 49 4e 54 45  ( + col1 AS INTE
11330 47 45 52 20 29 20 42 45 54 57 45 45 4e 20 2b 20  GER ) BETWEEN + 
11340 2d 20 63 6f 6c 31 20 41 4e 44 20 63 6f 6c 30 0d  - col1 AND col0.
11350 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
11360 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61  hashing to c6c0a
11370 34 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31  4111b36d04dbc811
11380 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71  a11e4d54cad....q
11390 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
113a0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
113b0 2d 20 2b 20 28 20 2d 20 2d 20 37 39 20 29 20 46  - + ( - - 79 ) F
113c0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
113d0 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 39 0d 0a 0d 0a 6f  ..----..-79....o
113e0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
113f0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
11400 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
11410 74 20 6c 61 62 65 6c 2d 33 37 36 0d 0a 53 45 4c  t label-376..SEL
11420 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55  ECT DISTINCT COU
11430 4e 54 28 20 2b 20 63 6f 6c 32 20 29 20 2a 20 2d  NT( + col2 ) * -
11440 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d   COUNT( * ) FROM
11450 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d   tab0..----..-9.
11460 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
11470 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
11480 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
11490 74 20 6c 61 62 65 6c 2d 33 37 36 0d 0a 53 45 4c  t label-376..SEL
114a0 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55  ECT DISTINCT COU
114b0 4e 54 20 28 20 2b 20 63 6f 6c 32 20 29 20 2a 20  NT ( + col2 ) * 
114c0 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52  - COUNT ( * ) FR
114d0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
114e0 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  9....onlyif mysq
114f0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
11500 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
11510 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 37  rowsort label-37
11520 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  7..SELECT DISTIN
11530 43 54 20 43 4f 55 4e 54 28 20 44 49 53 54 49 4e  CT COUNT( DISTIN
11540 43 54 20 63 6f 6c 31 20 29 20 2a 20 2d 20 28 20  CT col1 ) * - ( 
11550 2d 20 2b 20 38 38 20 29 20 46 52 4f 4d 20 74 61  - + 88 ) FROM ta
11560 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 36 34 0d 0a 0d  b0..----..264...
11570 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
11580 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
11590 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
115a0 6c 61 62 65 6c 2d 33 37 37 0d 0a 53 45 4c 45 43  label-377..SELEC
115b0 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54  T DISTINCT COUNT
115c0 20 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31   ( DISTINCT col1
115d0 20 29 20 2a 20 2d 20 28 20 2d 20 2b 20 38 38 20   ) * - ( - + 88 
115e0 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
115f0 2d 0d 0a 32 36 34 0d 0a 0d 0a 6f 6e 6c 79 69 66  -..264....onlyif
11600 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
11610 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
11620 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
11630 62 65 6c 2d 33 37 38 0d 0a 53 45 4c 45 43 54 20  bel-378..SELECT 
11640 2d 20 4d 41 58 28 20 41 4c 4c 20 2b 20 63 6f 6c  - MAX( ALL + col
11650 32 20 29 20 41 53 20 63 6f 6c 31 2c 20 31 35 20  2 ) AS col1, 15 
11660 2a 20 2b 20 2b 20 43 4f 55 4e 54 28 20 44 49 53  * + + COUNT( DIS
11670 54 49 4e 43 54 20 2d 20 28 20 2b 20 32 20 29 20  TINCT - ( + 2 ) 
11680 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
11690 2d 0d 0a 2d 39 39 0d 0a 31 35 0d 0a 0d 0a 73 6b  -..-99..15....sk
116a0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
116b0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
116c0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
116d0 62 65 6c 2d 33 37 38 0d 0a 53 45 4c 45 43 54 20  bel-378..SELECT 
116e0 2d 20 4d 41 58 20 28 20 41 4c 4c 20 2b 20 63 6f  - MAX ( ALL + co
116f0 6c 32 20 29 20 41 53 20 63 6f 6c 31 2c 20 31 35  l2 ) AS col1, 15
11700 20 2a 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20 44   * + + COUNT ( D
11710 49 53 54 49 4e 43 54 20 2d 20 28 20 2b 20 32 20  ISTINCT - ( + 2 
11720 29 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ) ) FROM tab0..-
11730 2d 2d 2d 0d 0a 2d 39 39 0d 0a 31 35 0d 0a 0d 0a  ---..-99..15....
11740 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
11750 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
11760 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
11770 72 74 20 6c 61 62 65 6c 2d 33 37 39 0d 0a 53 45  rt label-379..SE
11780 4c 45 43 54 20 2d 20 53 55 4d 28 20 2b 20 2b 20  LECT - SUM( + + 
11790 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 32 20 46  col2 ) AS col2 F
117a0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
117b0 2d 31 35 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -156....skipif m
117c0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
117d0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
117e0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 37 39  owsort label-379
117f0 0d 0a 53 45 4c 45 43 54 20 2d 20 53 55 4d 20 28  ..SELECT - SUM (
11800 20 2b 20 2b 20 63 6f 6c 32 20 29 20 41 53 20 63   + + col2 ) AS c
11810 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
11820 2d 2d 2d 0d 0a 2d 31 35 36 0d 0a 0d 0a 6f 6e 6c  ---..-156....onl
11830 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
11840 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
11850 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
11860 6c 61 62 65 6c 2d 33 38 30 0d 0a 53 45 4c 45 43  label-380..SELEC
11870 54 20 2d 20 43 4f 55 4e 54 28 20 41 4c 4c 20 2d  T - COUNT( ALL -
11880 20 32 31 20 29 20 41 53 20 63 6f 6c 30 20 46 52   21 ) AS col0 FR
11890 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
118a0 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
118b0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
118c0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
118d0 6f 72 74 20 6c 61 62 65 6c 2d 33 38 30 0d 0a 53  ort label-380..S
118e0 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 20 28 20  ELECT - COUNT ( 
118f0 41 4c 4c 20 2d 20 32 31 20 29 20 41 53 20 63 6f  ALL - 21 ) AS co
11900 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l0 FROM tab1..--
11910 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 6f 6e 6c 79 69 66  --..-3....onlyif
11920 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
11930 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20  ntax: aggregate 
11940 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
11950 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  ype: ..query II 
11960 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 38  rowsort label-38
11970 31 0d 0a 53 45 4c 45 43 54 20 2b 20 36 31 2c 20  1..SELECT + 61, 
11980 43 41 53 54 28 20 2d 20 43 4f 55 4e 54 28 20 41  CAST( - COUNT( A
11990 4c 4c 20 63 6f 6c 30 20 29 20 41 53 20 53 49 47  LL col0 ) AS SIG
119a0 4e 45 44 20 29 20 41 53 20 63 6f 6c 31 20 46 52  NED ) AS col1 FR
119b0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 36  OM tab1..----..6
119c0 31 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  1..-3....skipif 
119d0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
119e0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
119f0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
11a00 38 31 0d 0a 53 45 4c 45 43 54 20 2b 20 36 31 2c  81..SELECT + 61,
11a10 20 43 41 53 54 20 28 20 2d 20 43 4f 55 4e 54 20   CAST ( - COUNT 
11a20 28 20 41 4c 4c 20 63 6f 6c 30 20 29 20 41 53 20  ( ALL col0 ) AS 
11a30 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c  INTEGER ) AS col
11a40 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
11a50 2d 0d 0a 36 31 0d 0a 2d 33 0d 0a 0d 0a 71 75 65  -..61..-3....que
11a60 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
11a70 4c 45 43 54 20 41 4c 4c 20 28 20 2d 20 63 6f 6c  LECT ALL ( - col
11a80 30 20 29 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20  0 ) + + col2 AS 
11a90 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63  col1 FROM tab0 c
11aa0 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20  or0 WHERE NOT ( 
11ab0 4e 55 4c 4c 20 29 20 49 53 20 4e 55 4c 4c 0d 0a  NULL ) IS NULL..
11ac0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
11ad0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
11ae0 44 49 53 54 49 4e 43 54 20 2b 20 31 34 20 46 52  DISTINCT + 14 FR
11af0 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 43 52 4f  OM tab2 cor0 CRO
11b00 53 53 20 4a 4f 49 4e 20 74 61 62 31 20 41 53 20  SS JOIN tab1 AS 
11b10 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a  cor1..----..14..
11b20 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
11b30 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
11b40 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  x: ..query II ro
11b50 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 38 34 0d  wsort label-384.
11b60 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
11b70 20 2d 20 2d 20 34 30 20 2b 20 4d 49 4e 28 20 41   - - 40 + MIN( A
11b80 4c 4c 20 63 6f 6c 30 20 29 20 2a 20 2b 20 4d 49  LL col0 ) * + MI
11b90 4e 28 20 33 30 20 29 2c 20 4d 49 4e 28 20 2d 20  N( 30 ), MIN( - 
11ba0 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 32 20 46  col2 ) AS col2 F
11bb0 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48  ROM tab0 cor0 WH
11bc0 45 52 45 20 2d 20 63 6f 6c 32 20 49 53 20 4e 4f  ERE - col2 IS NO
11bd0 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 34 39  T NULL..----..49
11be0 30 0d 0a 2d 39 39 0d 0a 0d 0a 73 6b 69 70 69 66  0..-99....skipif
11bf0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
11c00 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
11c10 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
11c20 33 38 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  384..SELECT DIST
11c30 49 4e 43 54 20 2d 20 2d 20 34 30 20 2b 20 4d 49  INCT - - 40 + MI
11c40 4e 20 28 20 41 4c 4c 20 63 6f 6c 30 20 29 20 2a  N ( ALL col0 ) *
11c50 20 2b 20 4d 49 4e 20 28 20 33 30 20 29 2c 20 4d   + MIN ( 30 ), M
11c60 49 4e 20 28 20 2d 20 63 6f 6c 32 20 29 20 41 53  IN ( - col2 ) AS
11c70 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
11c80 63 6f 72 30 20 57 48 45 52 45 20 2d 20 63 6f 6c  cor0 WHERE - col
11c90 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  2 IS NOT NULL..-
11ca0 2d 2d 2d 0d 0a 34 39 30 0d 0a 2d 39 39 0d 0a 0d  ---..490..-99...
11cb0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
11cc0 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
11cd0 4d 20 74 61 62 31 20 63 6f 72 30 20 57 48 45 52  M tab1 cor0 WHER
11ce0 45 20 4e 4f 54 20 31 38 20 42 45 54 57 45 45 4e  E NOT 18 BETWEEN
11cf0 20 63 6f 6c 31 20 2b 20 2d 20 39 39 20 2a 20 2d   col1 + - 99 * -
11d00 20 63 6f 6c 31 20 41 4e 44 20 2b 20 33 39 0d 0a   col1 AND + 39..
11d10 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
11d20 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34  ashing to c6c0a4
11d30 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61  111b36d04dbc811a
11d40 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75  11e4d54cad....qu
11d50 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
11d60 45 4c 45 43 54 20 41 4c 4c 20 2d 20 34 33 20 2a  ELECT ALL - 43 *
11d70 20 28 20 2b 20 2d 20 63 6f 6c 32 20 29 20 2b 20   ( + - col2 ) + 
11d80 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46  - col0 AS col0 F
11d90 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
11da0 0d 0a 2d 2d 2d 2d 0d 0a 32 34 35 32 0d 0a 32 38  ..----..2452..28
11db0 33 33 0d 0a 34 30 37 37 0d 0a 0d 0a 6f 6e 6c 79  33..4077....only
11dc0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
11dd0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
11de0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
11df0 61 62 65 6c 2d 33 38 37 0d 0a 53 45 4c 45 43 54  abel-387..SELECT
11e00 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 28   DISTINCT COUNT(
11e10 20 2a 20 29 20 2a 20 2d 20 2b 20 4d 41 58 28 20   * ) * - + MAX( 
11e20 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61  - col0 ) FROM ta
11e30 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
11e40 0d 0a 34 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..45....skipif m
11e50 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
11e60 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
11e70 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 38 37  owsort label-387
11e80 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
11e90 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20  T COUNT ( * ) * 
11ea0 2d 20 2b 20 4d 41 58 20 28 20 2d 20 63 6f 6c 30  - + MAX ( - col0
11eb0 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
11ec0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 35 0d 0a  cor0..----..45..
11ed0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
11ee0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
11ef0 4e 43 54 20 2b 20 2d 20 63 6f 6c 30 20 2b 20 2d  NCT + - col0 + -
11f00 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 2c 20 63   col2 AS col2, c
11f10 6f 6c 30 20 2a 20 2b 20 63 6f 6c 32 20 2a 20 2b  ol0 * + col2 * +
11f20 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20   - col2 AS col2 
11f30 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
11f40 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 36 0d 0a 2d  0..----..-196..-
11f50 39 35 30 36 39 37 0d 0a 2d 36 32 0d 0a 2d 33 33  950697..-62..-33
11f60 31 33 35 0d 0a 2d 39 37 0d 0a 2d 38 37 30 30 0d  135..-97..-8700.
11f70 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
11f80 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 63  rt..SELECT + ( c
11f90 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ol1 ) FROM tab2 
11fa0 57 48 45 52 45 20 2d 20 63 6f 6c 32 20 49 53 20  WHERE - col2 IS 
11fb0 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
11fc0 35 31 0d 0a 36 37 0d 0a 37 37 0d 0a 0d 0a 71 75  51..67..77....qu
11fd0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
11fe0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
11ff0 6f 6c 32 20 2a 20 2d 20 2b 20 63 6f 6c 31 20 2a  ol2 * - + col1 *
12000 20 2d 20 39 31 20 41 53 20 63 6f 6c 30 20 46 52   - 91 AS col0 FR
12010 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab2..----..1
12020 30 36 37 34 33 0d 0a 32 38 30 32 38 30 0d 0a 33  06743..280280..3
12030 35 33 36 32 36 0d 0a 0d 0a 71 75 65 72 79 20 49  53626....query I
12040 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
12050 54 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c 32 20 2a  T col1, + col2 *
12060 20 2d 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74   - - col2 FROM t
12070 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 35  ab2..----..51..5
12080 32 39 0d 0a 36 37 0d 0a 33 33 36 34 0d 0a 37 37  29..67..3364..77
12090 0d 0a 31 36 30 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..1600....onlyif
120a0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
120b0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
120c0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
120d0 65 6c 2d 33 39 32 0d 0a 53 45 4c 45 43 54 20 41  el-392..SELECT A
120e0 4c 4c 20 37 31 20 2a 20 2b 20 33 30 20 2b 20 2d  LL 71 * + 30 + -
120f0 20 28 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20   ( - COUNT( * ) 
12100 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  ) FROM tab2..---
12110 2d 0d 0a 32 31 33 33 0d 0a 0d 0a 73 6b 69 70 69  -..2133....skipi
12120 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
12130 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
12140 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
12150 33 39 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  392..SELECT ALL 
12160 37 31 20 2a 20 2b 20 33 30 20 2b 20 2d 20 28 20  71 * + 30 + - ( 
12170 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29 20  - COUNT ( * ) ) 
12180 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
12190 0a 32 31 33 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .2133....onlyif 
121a0 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
121b0 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73  tax: aggregate s
121c0 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
121d0 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
121e0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39 33 0d  wsort label-393.
121f0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
12200 20 2d 20 34 33 20 2a 20 2d 20 2d 20 43 4f 55 4e   - 43 * - - COUN
12210 54 28 20 2a 20 29 20 2f 20 4d 41 58 28 20 2d 20  T( * ) / MAX( - 
12220 63 6f 6c 32 20 29 20 2b 20 2b 20 43 4f 55 4e 54  col2 ) + + COUNT
12230 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ( * ) FROM tab2 
12240 57 48 45 52 45 20 2d 20 63 6f 6c 30 20 2b 20 63  WHERE - col0 + c
12250 6f 6c 30 20 2a 20 2d 20 28 20 2d 20 2b 20 31 30  ol0 * - ( - + 10
12260 20 29 20 49 4e 20 28 20 43 41 53 54 28 20 4e 55   ) IN ( CAST( NU
12270 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 2c 20  LL AS SIGNED ), 
12280 63 6f 6c 32 2c 20 2d 20 28 20 63 6f 6c 32 20 29  col2, - ( col2 )
12290 20 2b 20 2d 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d   + - col1 )..---
122a0 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  -..NULL....skipi
122b0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
122c0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
122d0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
122e0 33 39 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  393..SELECT DIST
122f0 49 4e 43 54 20 2d 20 34 33 20 2a 20 2d 20 2d 20  INCT - 43 * - - 
12300 43 4f 55 4e 54 20 28 20 2a 20 29 20 2f 20 4d 41  COUNT ( * ) / MA
12310 58 20 28 20 2d 20 63 6f 6c 32 20 29 20 2b 20 2b  X ( - col2 ) + +
12320 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f   COUNT ( * ) FRO
12330 4d 20 74 61 62 32 20 57 48 45 52 45 20 2d 20 63  M tab2 WHERE - c
12340 6f 6c 30 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 28  ol0 + col0 * - (
12350 20 2d 20 2b 20 31 30 20 29 20 49 4e 20 28 20 43   - + 10 ) IN ( C
12360 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
12370 54 45 47 45 52 20 29 2c 20 63 6f 6c 32 2c 20 2d  TEGER ), col2, -
12380 20 28 20 63 6f 6c 32 20 29 20 2b 20 2d 20 63 6f   ( col2 ) + - co
12390 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  l1 )..----..NULL
123a0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
123b0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  ort..SELECT - co
123c0 6c 30 20 2a 20 2b 20 2d 20 34 37 20 41 53 20 63  l0 * + - 47 AS c
123d0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
123e0 2d 2d 2d 0d 0a 32 31 36 32 0d 0a 33 30 30 38 0d  ---..2162..3008.
123f0 0a 33 35 32 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .3525....onlyif 
12400 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
12410 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
12420 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
12430 6f 72 74 20 6c 61 62 65 6c 2d 33 39 35 0d 0a 53  ort label-395..S
12440 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 44 49 56  ELECT + col1 DIV
12450 20 28 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74   ( col0 ) FROM t
12460 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d  ab1..----..0..0.
12470 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
12480 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
12490 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
124a0 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39 35 0d 0a  sort label-395..
124b0 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2f 20  SELECT + col1 / 
124c0 28 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61  ( col0 ) FROM ta
124d0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a  b1..----..0..0..
124e0 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
124f0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
12500 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
12510 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39  rowsort label-39
12520 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  6..SELECT DISTIN
12530 43 54 20 43 4f 55 4e 54 28 20 2b 20 63 6f 6c 32  CT COUNT( + col2
12540 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
12550 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
12560 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20 28  RE NULL NOT IN (
12570 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 33 33 2c 20   - col1 + + 33, 
12580 2b 20 63 6f 6c 30 2c 20 2d 20 63 6f 6c 30 2c 20  + col0, - col0, 
12590 2d 20 63 6f 6c 32 20 2a 20 2b 20 2d 20 63 6f 6c  - col2 * + - col
125a0 32 2c 20 2b 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d  2, + col0 )..---
125b0 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..0....skipif m
125c0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
125d0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
125e0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39 36  owsort label-396
125f0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
12600 54 20 43 4f 55 4e 54 20 28 20 2b 20 63 6f 6c 32  T COUNT ( + col2
12610 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
12620 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
12630 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20 28  RE NULL NOT IN (
12640 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 33 33 2c 20   - col1 + + 33, 
12650 2b 20 63 6f 6c 30 2c 20 2d 20 63 6f 6c 30 2c 20  + col0, - col0, 
12660 2d 20 63 6f 6c 32 20 2a 20 2b 20 2d 20 63 6f 6c  - col2 * + - col
12670 32 2c 20 2b 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d  2, + col0 )..---
12680 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -..0....onlyif m
12690 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
126a0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
126b0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
126c0 2d 33 39 37 0d 0a 53 45 4c 45 43 54 20 44 49 53  -397..SELECT DIS
126d0 54 49 4e 43 54 20 53 55 4d 28 20 41 4c 4c 20 2b  TINCT SUM( ALL +
126e0 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62   col0 ) FROM tab
126f0 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 32  1 cor0..----..22
12700 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  7....skipif mysq
12710 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
12720 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
12730 6f 72 74 20 6c 61 62 65 6c 2d 33 39 37 0d 0a 53  ort label-397..S
12740 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 53  ELECT DISTINCT S
12750 55 4d 20 28 20 41 4c 4c 20 2b 20 63 6f 6c 30 20  UM ( ALL + col0 
12760 29 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  ) FROM tab1 cor0
12770 0d 0a 2d 2d 2d 2d 0d 0a 32 32 37 0d 0a 0d 0a 71  ..----..227....q
12780 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
12790 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2b 20  SELECT + col1 + 
127a0 31 33 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  13 FROM tab0 AS 
127b0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a  cor0..----..14..
127c0 33 34 0d 0a 39 34 0d 0a 0d 0a 73 6b 69 70 69 66  34..94....skipif
127d0 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
127e0 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
127f0 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
12800 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
12810 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
12820 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
12830 4e 43 54 20 2b 20 31 33 20 2b 20 2b 20 2d 20 63  NCT + 13 + + - c
12840 6f 6c 31 20 2d 20 2d 20 63 6f 6c 30 20 63 6f 6c  ol1 - - col0 col
12850 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
12860 2d 0d 0a 2d 35 33 0d 0a 31 30 39 0d 0a 37 39 0d  -..-53..109..79.
12870 0a 0d 0a 71 75 65 72 79 20 49 49 49 49 49 49 20  ...query IIIIII 
12880 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
12890 2a 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  * FROM tab2 cor0
128a0 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30   CROSS JOIN tab0
128b0 20 41 53 20 63 6f 72 31 20 57 48 45 52 45 20 4e   AS cor1 WHERE N
128c0 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  ULL NOT BETWEEN 
128d0 28 20 4e 55 4c 4c 20 29 20 41 4e 44 20 4e 55 4c  ( NULL ) AND NUL
128e0 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
128f0 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
12900 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  LECT * FROM tab1
12910 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
12920 55 4c 4c 20 42 45 54 57 45 45 4e 20 36 32 20 2b  ULL BETWEEN 62 +
12930 20 2b 20 63 6f 6c 32 20 41 4e 44 20 4e 55 4c 4c   + col2 AND NULL
12940 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
12950 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
12960 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
12970 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
12980 65 6c 2d 34 30 32 0d 0a 53 45 4c 45 43 54 20 2d  el-402..SELECT -
12990 20 4d 49 4e 28 20 2d 20 2d 20 63 6f 6c 31 20 29   MIN( - - col1 )
129a0 20 2d 20 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20   - - + COUNT( * 
129b0 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
129c0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 0d  or0..----..-2...
129d0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
129e0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
129f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
12a00 6c 61 62 65 6c 2d 34 30 32 0d 0a 53 45 4c 45 43  label-402..SELEC
12a10 54 20 2d 20 4d 49 4e 20 28 20 2d 20 2d 20 63 6f  T - MIN ( - - co
12a20 6c 31 20 29 20 2d 20 2d 20 2b 20 43 4f 55 4e 54  l1 ) - - + COUNT
12a30 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31   ( * ) FROM tab1
12a40 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
12a50 2d 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  -2....skipif pos
12a60 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
12a70 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
12a80 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
12a90 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
12aa0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
12ab0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
12ac0 2d 20 2b 20 28 20 2d 20 35 36 20 29 20 63 6f 6c  - + ( - 56 ) col
12ad0 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
12ae0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 36 0d 0a 0d  or0..----..56...
12af0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
12b00 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20  ..SELECT - col1 
12b10 2a 20 2d 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 38  * - + col2 + + 8
12b20 34 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  4 AS col1 FROM t
12b30 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
12b40 2d 0d 0a 31 34 32 38 0d 0a 33 32 38 30 0d 0a 33  -..1428..3280..3
12b50 37 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  79....query I ro
12b60 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
12b70 53 54 49 4e 43 54 20 2d 20 2b 20 32 30 20 41 53  STINCT - + 20 AS
12b80 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
12b90 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30 0d  cor0..----..-20.
12ba0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
12bb0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
12bc0 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
12bd0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
12be0 62 65 6c 2d 34 30 36 0d 0a 53 45 4c 45 43 54 20  bel-406..SELECT 
12bf0 41 4c 4c 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  ALL col2 FROM ta
12c00 62 30 20 57 48 45 52 45 20 2d 20 43 41 53 54 28  b0 WHERE - CAST(
12c10 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
12c20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  ) IS NOT NULL..-
12c30 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ---....skipif my
12c40 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
12c50 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
12c60 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 30 36 0d  wsort label-406.
12c70 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32  .SELECT ALL col2
12c80 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
12c90 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   - CAST ( NULL A
12ca0 53 20 49 4e 54 45 47 45 52 20 29 20 49 53 20 4e  S INTEGER ) IS N
12cb0 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  OT NULL..----...
12cc0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
12cd0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
12ce0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
12cf0 6f 72 74 20 6c 61 62 65 6c 2d 34 30 37 0d 0a 53  ort label-407..S
12d00 45 4c 45 43 54 20 2d 20 28 20 2b 20 4d 41 58 28  ELECT - ( + MAX(
12d10 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 63 6f   DISTINCT - - co
12d20 6c 30 20 29 20 29 20 41 53 20 63 6f 6c 32 20 46  l0 ) ) AS col2 F
12d30 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
12d40 2d 39 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -97....skipif my
12d50 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
12d60 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
12d70 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 30 37 0d  wsort label-407.
12d80 0a 53 45 4c 45 43 54 20 2d 20 28 20 2b 20 4d 41  .SELECT - ( + MA
12d90 58 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 2d  X ( DISTINCT - -
12da0 20 63 6f 6c 30 20 29 20 29 20 41 53 20 63 6f 6c   col0 ) ) AS col
12db0 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
12dc0 2d 0d 0a 2d 39 37 0d 0a 0d 0a 73 6b 69 70 69 66  -..-97....skipif
12dd0 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
12de0 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
12df0 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
12e00 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
12e10 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
12e20 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
12e30 4e 43 54 20 33 39 20 63 6f 6c 31 20 46 52 4f 4d  NCT 39 col1 FROM
12e40 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
12e50 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20  ERE NOT NULL IS 
12e60 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
12e70 33 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  39....onlyif mys
12e80 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
12e90 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
12ea0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
12eb0 74 20 6c 61 62 65 6c 2d 34 30 39 0d 0a 53 45 4c  t label-409..SEL
12ec0 45 43 54 20 39 32 2c 20 43 41 53 54 28 20 4e 55  ECT 92, CAST( NU
12ed0 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 46  LL AS SIGNED ) F
12ee0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
12ef0 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c   WHERE NOT ( NUL
12f00 4c 20 29 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  L ) < NULL..----
12f10 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
12f20 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
12f30 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
12f40 6f 72 74 20 6c 61 62 65 6c 2d 34 30 39 0d 0a 53  ort label-409..S
12f50 45 4c 45 43 54 20 39 32 2c 20 43 41 53 54 20 28  ELECT 92, CAST (
12f60 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
12f70 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
12f80 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28  cor0 WHERE NOT (
12f90 20 4e 55 4c 4c 20 29 20 3c 20 4e 55 4c 4c 0d 0a   NULL ) < NULL..
12fa0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
12fb0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
12fc0 2b 20 37 31 20 2a 20 2b 20 2d 20 35 35 20 2a 20  + 71 * + - 55 * 
12fd0 2b 20 28 20 2d 20 34 38 20 29 20 41 53 20 63 6f  + ( - 48 ) AS co
12fe0 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l2 FROM tab0 cor
12ff0 30 0d 0a 2d 2d 2d 2d 0d 0a 31 38 37 34 34 30 0d  0..----..187440.
13000 0a 31 38 37 34 34 30 0d 0a 31 38 37 34 34 30 0d  .187440..187440.
13010 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
13020 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
13030 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
13040 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
13050 6c 61 62 65 6c 2d 34 31 31 0d 0a 53 45 4c 45 43  label-411..SELEC
13060 54 20 41 4c 4c 20 43 41 53 54 28 20 4e 55 4c 4c  T ALL CAST( NULL
13070 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20   AS SIGNED ) AS 
13080 63 6f 6c 31 2c 20 63 6f 6c 30 20 2b 20 2d 20 2d  col1, col0 + - -
13090 20 39 35 2c 20 2b 20 63 6f 6c 32 20 2a 20 2d 20   95, + col2 * - 
130a0 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f  col0 AS col0 FRO
130b0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
130c0 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
130d0 61 73 68 69 6e 67 20 74 6f 20 64 30 62 61 36 39  ashing to d0ba69
130e0 39 36 39 36 33 35 64 65 31 64 32 62 36 65 36 36  969635de1d2b6e66
130f0 62 31 39 36 36 37 61 32 35 64 0d 0a 0d 0a 73 6b  b19667a25d....sk
13100 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
13110 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
13120 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
13130 61 62 65 6c 2d 34 31 31 0d 0a 53 45 4c 45 43 54  abel-411..SELECT
13140 20 41 4c 4c 20 43 41 53 54 20 28 20 4e 55 4c 4c   ALL CAST ( NULL
13150 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53   AS INTEGER ) AS
13160 20 63 6f 6c 31 2c 20 63 6f 6c 30 20 2b 20 2d 20   col1, col0 + - 
13170 2d 20 39 35 2c 20 2b 20 63 6f 6c 32 20 2a 20 2d  - 95, + col2 * -
13180 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52   col0 AS col0 FR
13190 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
131a0 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
131b0 68 61 73 68 69 6e 67 20 74 6f 20 64 30 62 61 36  hashing to d0ba6
131c0 39 39 36 39 36 33 35 64 65 31 64 32 62 36 65 36  9969635de1d2b6e6
131d0 36 62 31 39 36 36 37 61 32 35 64 0d 0a 0d 0a 6f  6b19667a25d....o
131e0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
131f0 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
13200 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
13210 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
13220 2d 34 31 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -412..SELECT ALL
13230 20 63 6f 6c 32 2c 20 2b 20 28 20 43 41 53 54 28   col2, + ( CAST(
13240 20 2d 20 2b 20 63 6f 6c 31 20 41 53 20 53 49 47   - + col1 AS SIG
13250 4e 45 44 20 29 20 29 20 41 53 20 63 6f 6c 31 20  NED ) ) AS col1 
13260 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
13270 0a 35 39 0d 0a 2d 35 0d 0a 36 38 0d 0a 2d 34 37  .59..-5..68..-47
13280 0d 0a 39 36 0d 0a 2d 31 34 0d 0a 0d 0a 73 6b 69  ..96..-14....ski
13290 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
132a0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
132b0 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
132c0 65 6c 2d 34 31 32 0d 0a 53 45 4c 45 43 54 20 41  el-412..SELECT A
132d0 4c 4c 20 63 6f 6c 32 2c 20 2b 20 28 20 43 41 53  LL col2, + ( CAS
132e0 54 20 28 20 2d 20 2b 20 63 6f 6c 31 20 41 53 20  T ( - + col1 AS 
132f0 49 4e 54 45 47 45 52 20 29 20 29 20 41 53 20 63  INTEGER ) ) AS c
13300 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
13310 2d 2d 2d 0d 0a 35 39 0d 0a 2d 35 0d 0a 36 38 0d  ---..59..-5..68.
13320 0a 2d 34 37 0d 0a 39 36 0d 0a 2d 31 34 0d 0a 0d  .-47..96..-14...
13330 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
13340 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
13350 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
13360 6f 72 74 20 6c 61 62 65 6c 2d 34 31 33 0d 0a 53  ort label-413..S
13370 45 4c 45 43 54 20 41 4c 4c 20 2b 20 34 34 20 2b  ELECT ALL + 44 +
13380 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
13390 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol1 FROM tab1 AS
133a0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 37 0d   cor0..----..47.
133b0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
133c0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
133d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
133e0 74 20 6c 61 62 65 6c 2d 34 31 33 0d 0a 53 45 4c  t label-413..SEL
133f0 45 43 54 20 41 4c 4c 20 2b 20 34 34 20 2b 20 43  ECT ALL + 44 + C
13400 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
13410 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
13420 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 37 0d 0a  cor0..----..47..
13430 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
13440 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
13450 31 35 20 2b 20 2d 20 2d 20 63 6f 6c 31 20 41 53  15 + - - col1 AS
13460 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
13470 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 0d 0a  cor0..----..16..
13480 33 36 0d 0a 39 36 0d 0a 0d 0a 73 6b 69 70 69 66  36..96....skipif
13490 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
134a0 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
134b0 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
134c0 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
134d0 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
134e0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63  rt..SELECT ALL c
134f0 6f 6c 32 20 2a 20 2d 20 2b 20 33 33 20 63 6f 6c  ol2 * - + 33 col
13500 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
13510 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 35 31  or0..----..-1551
13520 0d 0a 2d 33 32 36 37 0d 0a 2d 33 33 30 0d 0a 0d  ..-3267..-330...
13530 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
13540 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67  CAST syntax: agg
13550 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53  regate syntax: S
13560 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
13570 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
13580 61 62 65 6c 2d 34 31 36 0d 0a 53 45 4c 45 43 54  abel-416..SELECT
13590 20 2d 20 31 33 20 2b 20 2b 20 43 4f 55 4e 54 28   - 13 + + COUNT(
135a0 20 41 4c 4c 20 2d 20 43 41 53 54 28 20 2d 20 2d   ALL - CAST( - -
135b0 20 34 35 20 41 53 20 53 49 47 4e 45 44 20 29 20   45 AS SIGNED ) 
135c0 29 20 41 53 20 63 6f 6c 30 2c 20 53 55 4d 28 20  ) AS col0, SUM( 
135d0 41 4c 4c 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20  ALL col2 ) FROM 
135e0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
135f0 2d 2d 0d 0a 2d 31 30 0d 0a 31 32 31 0d 0a 0d 0a  --..-10..121....
13600 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
13610 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
13620 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
13630 6c 61 62 65 6c 2d 34 31 36 0d 0a 53 45 4c 45 43  label-416..SELEC
13640 54 20 2d 20 31 33 20 2b 20 2b 20 43 4f 55 4e 54  T - 13 + + COUNT
13650 20 28 20 41 4c 4c 20 2d 20 43 41 53 54 20 28 20   ( ALL - CAST ( 
13660 2d 20 2d 20 34 35 20 41 53 20 49 4e 54 45 47 45  - - 45 AS INTEGE
13670 52 20 29 20 29 20 41 53 20 63 6f 6c 30 2c 20 53  R ) ) AS col0, S
13680 55 4d 20 28 20 41 4c 4c 20 63 6f 6c 32 20 29 20  UM ( ALL col2 ) 
13690 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
136a0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 31 32  0..----..-10..12
136b0 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  1....query I row
136c0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63  sort..SELECT - c
136d0 6f 6c 31 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 63  ol1 + col2 * + c
136e0 6f 6c 31 20 2b 20 2d 20 2b 20 63 6f 6c 30 20 41  ol1 + - + col0 A
136f0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
13700 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
13710 31 30 37 36 0d 0a 32 39 33 39 0d 0a 33 37 34 34  1076..2939..3744
13720 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
13730 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
13740 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
13750 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
13760 61 62 65 6c 2d 34 31 38 0d 0a 53 45 4c 45 43 54  abel-418..SELECT
13770 20 41 4c 4c 20 2b 20 32 31 20 2b 20 36 37 20 44   ALL + 21 + 67 D
13780 49 56 20 2d 20 2d 20 63 6f 6c 32 20 41 53 20 63  IV - - col2 AS c
13790 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
137a0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 32 0d   cor0..----..22.
137b0 0a 32 32 0d 0a 32 33 0d 0a 0d 0a 73 6b 69 70 69  .22..23....skipi
137c0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
137d0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
137e0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
137f0 34 31 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  418..SELECT ALL 
13800 2b 20 32 31 20 2b 20 36 37 20 2f 20 2d 20 2d 20  + 21 + 67 / - - 
13810 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f  col2 AS col1 FRO
13820 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
13830 2d 2d 2d 2d 0d 0a 32 32 0d 0a 32 32 0d 0a 32 33  ----..22..22..23
13840 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
13850 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
13860 49 4e 43 54 20 2d 20 63 6f 6c 32 20 2b 20 2d 20  INCT - col2 + - 
13870 2d 20 28 20 2d 20 63 6f 6c 30 20 29 20 46 52 4f  - ( - col0 ) FRO
13880 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
13890 2d 2d 2d 2d 0d 0a 2d 31 30 34 0d 0a 2d 31 33 33  ----..-104..-133
138a0 0d 0a 2d 36 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-69....onlyif 
138b0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
138c0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
138d0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
138e0 6c 2d 34 32 30 0d 0a 53 45 4c 45 43 54 20 2d 20  l-420..SELECT - 
138f0 2d 20 43 4f 55 4e 54 28 20 2b 20 63 6f 6c 31 20  - COUNT( + col1 
13900 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  ) FROM tab2 AS c
13910 6f 72 30 20 57 48 45 52 45 20 2b 20 63 6f 6c 32  or0 WHERE + col2
13920 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
13930 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..3....skipif 
13940 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
13950 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
13960 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 32  rowsort label-42
13970 30 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 43 4f  0..SELECT - - CO
13980 55 4e 54 20 28 20 2b 20 63 6f 6c 31 20 29 20 46  UNT ( + col1 ) F
13990 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
139a0 20 57 48 45 52 45 20 2b 20 63 6f 6c 32 20 49 53   WHERE + col2 IS
139b0 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
139c0 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .3....query I ro
139d0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
139e0 38 35 20 2b 20 2b 20 2b 20 63 6f 6c 30 20 2d 20  85 + + + col0 - 
139f0 2b 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 28 20 2b  + + col0 + + ( +
13a00 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 30 20   col2 ) AS col0 
13a10 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
13a20 0a 31 30 38 0d 0a 31 32 35 0d 0a 31 34 33 0d 0a  .108..125..143..
13a30 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
13a40 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
13a50 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
13a60 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
13a70 65 6c 2d 34 32 32 0d 0a 53 45 4c 45 43 54 20 35  el-422..SELECT 5
13a80 34 20 2a 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 63  4 * - col2 + + c
13a90 6f 6c 31 20 44 49 56 20 2d 20 63 6f 6c 31 20 46  ol1 DIV - col1 F
13aa0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
13ab0 2d 32 35 33 39 0d 0a 2d 35 33 34 37 0d 0a 2d 35  -2539..-5347..-5
13ac0 34 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  41....skipif mys
13ad0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
13ae0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
13af0 73 6f 72 74 20 6c 61 62 65 6c 2d 34 32 32 0d 0a  sort label-422..
13b00 53 45 4c 45 43 54 20 35 34 20 2a 20 2d 20 63 6f  SELECT 54 * - co
13b10 6c 32 20 2b 20 2b 20 63 6f 6c 31 20 2f 20 2d 20  l2 + + col1 / - 
13b20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
13b30 2d 2d 2d 2d 0d 0a 2d 32 35 33 39 0d 0a 2d 35 33  ----..-2539..-53
13b40 34 37 0d 0a 2d 35 34 31 0d 0a 0d 0a 6f 6e 6c 79  47..-541....only
13b50 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
13b60 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20  syntax: DECIMAL 
13b70 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
13b80 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 32  rowsort label-42
13b90 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f  3..SELECT ALL co
13ba0 6c 30 20 2b 20 2d 20 43 41 53 54 28 20 63 6f 6c  l0 + - CAST( col
13bb0 30 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20 2a  0 AS DECIMAL ) *
13bc0 20 28 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20   ( - CAST( NULL 
13bd0 41 53 20 44 45 43 49 4d 41 4c 20 29 20 29 20 46  AS DECIMAL ) ) F
13be0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
13bf0 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
13c00 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
13c10 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
13c20 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
13c30 72 74 20 6c 61 62 65 6c 2d 34 32 33 0d 0a 53 45  rt label-423..SE
13c40 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 2b 20  LECT ALL col0 + 
13c50 2d 20 43 41 53 54 20 28 20 63 6f 6c 30 20 41 53  - CAST ( col0 AS
13c60 20 52 45 41 4c 20 29 20 2a 20 28 20 2d 20 43 41   REAL ) * ( - CA
13c70 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41  ST ( NULL AS REA
13c80 4c 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30 0d  L ) ) FROM tab0.
13c90 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
13ca0 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79  L..NULL....query
13cb0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
13cc0 43 54 20 2d 20 39 33 20 2a 20 2d 20 63 6f 6c 32  CT - 93 * - col2
13cd0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
13ce0 0d 0a 32 31 33 39 0d 0a 33 37 32 30 0d 0a 35 33  ..2139..3720..53
13cf0 39 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  94....skipif pos
13d00 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
13d10 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
13d20 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
13d30 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
13d40 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
13d50 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c  SELECT ALL + col
13d60 32 20 2a 20 2b 20 63 6f 6c 30 20 63 6f 6c 32 20  2 * + col0 col2 
13d70 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
13d80 0a 37 30 35 0d 0a 38 37 30 0d 0a 39 36 30 33 0d  .705..870..9603.
13d90 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
13da0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
13db0 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
13dc0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
13dd0 62 65 6c 2d 34 32 36 0d 0a 53 45 4c 45 43 54 20  bel-426..SELECT 
13de0 2b 20 28 20 2d 20 2b 20 37 35 20 29 20 2a 20 2d  + ( - + 75 ) * -
13df0 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
13e00 49 47 4e 45 44 20 29 20 2a 20 2b 20 2d 20 63 6f  IGNED ) * + - co
13e10 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
13e20 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
13e30 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
13e40 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
13e50 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
13e60 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 32 36  owsort label-426
13e70 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 2d 20 2b  ..SELECT + ( - +
13e80 20 37 35 20 29 20 2a 20 2d 20 43 41 53 54 20 28   75 ) * - CAST (
13e90 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
13ea0 20 29 20 2a 20 2b 20 2d 20 63 6f 6c 30 20 46 52   ) * + - col0 FR
13eb0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab0..----..N
13ec0 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
13ed0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
13ee0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
13ef0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
13f00 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 32 37 0d  wsort label-427.
13f10 0a 53 45 4c 45 43 54 20 2b 20 36 30 20 2a 20 2d  .SELECT + 60 * -
13f20 20 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20 2b   MAX( DISTINCT +
13f30 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62   col1 ) FROM tab
13f40 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 32 30 0d 0a  2..----..-4620..
13f50 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
13f60 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
13f70 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
13f80 20 6c 61 62 65 6c 2d 34 32 37 0d 0a 53 45 4c 45   label-427..SELE
13f90 43 54 20 2b 20 36 30 20 2a 20 2d 20 4d 41 58 20  CT + 60 * - MAX 
13fa0 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  ( DISTINCT + col
13fb0 31 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  1 ) FROM tab2..-
13fc0 2d 2d 2d 0d 0a 2d 34 36 32 30 0d 0a 0d 0a 71 75  ---..-4620....qu
13fd0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
13fe0 45 4c 45 43 54 20 63 6f 6c 32 20 2a 20 2b 20 35  ELECT col2 * + 5
13ff0 30 20 2a 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f  0 * - col2 AS co
14000 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
14010 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 30  cor0..----..-110
14020 34 35 30 0d 0a 2d 34 39 30 30 35 30 0d 0a 2d 35  450..-490050..-5
14030 30 30 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  000....query III
14040 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
14050 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
14060 20 74 61 62 31 20 63 6f 72 30 20 57 48 45 52 45   tab1 cor0 WHERE
14070 20 63 6f 6c 31 20 3c 3e 20 2b 20 2d 20 63 6f 6c   col1 <> + - col
14080 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  1..----..9 value
14090 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63  s hashing to c6c
140a0 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38  0a4111b36d04dbc8
140b0 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d  11a11e4d54cad...
140c0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
140d0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
140e0 43 54 20 2b 20 2b 20 28 20 2d 20 2b 20 36 34 20  CT + + ( - + 64 
140f0 29 20 41 53 20 63 6f 6c 32 2c 20 2b 20 39 31 20  ) AS col2, + 91 
14100 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
14110 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62  0 CROSS JOIN tab
14120 32 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d  2 AS cor1..----.
14130 0a 2d 36 34 0d 0a 39 31 0d 0a 0d 0a 71 75 65 72  .-64..91....quer
14140 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
14150 45 43 54 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20  ECT - col1 FROM 
14160 74 61 62 32 20 57 48 45 52 45 20 2d 20 2b 20 38  tab2 WHERE - + 8
14170 31 20 3c 3e 20 2b 20 2b 20 63 6f 6c 30 0d 0a 2d  1 <> + + col0..-
14180 2d 2d 2d 0d 0a 2d 35 31 0d 0a 2d 36 37 0d 0a 2d  ---..-51..-67..-
14190 37 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  77....onlyif mys
141a0 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
141b0 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
141c0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
141d0 74 20 6c 61 62 65 6c 2d 34 33 32 0d 0a 53 45 4c  t label-432..SEL
141e0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 37  ECT DISTINCT - 7
141f0 30 20 2a 20 2d 20 28 20 2b 20 63 6f 6c 31 20 29  0 * - ( + col1 )
14200 20 63 6f 6c 32 2c 20 2d 20 43 41 53 54 28 20 4e   col2, - CAST( N
14210 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
14220 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
14230 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
14240 0a 33 32 39 30 0d 0a 4e 55 4c 4c 0d 0a 33 35 30  .3290..NULL..350
14250 0d 0a 4e 55 4c 4c 0d 0a 39 38 30 0d 0a 4e 55 4c  ..NULL..980..NUL
14260 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
14270 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
14280 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
14290 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
142a0 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
142b0 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
142c0 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
142d0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
142e0 62 65 6c 2d 34 33 32 0d 0a 53 45 4c 45 43 54 20  bel-432..SELECT 
142f0 44 49 53 54 49 4e 43 54 20 2d 20 37 30 20 2a 20  DISTINCT - 70 * 
14300 2d 20 28 20 2b 20 63 6f 6c 31 20 29 20 63 6f 6c  - ( + col1 ) col
14310 32 2c 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c  2, - CAST ( NULL
14320 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53   AS INTEGER ) AS
14330 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
14340 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33  AS cor0..----..3
14350 32 39 30 0d 0a 4e 55 4c 4c 0d 0a 33 35 30 0d 0a  290..NULL..350..
14360 4e 55 4c 4c 0d 0a 39 38 30 0d 0a 4e 55 4c 4c 0d  NULL..980..NULL.
14370 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
14380 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
14390 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
143a0 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
143b0 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
143c0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
143d0 45 43 54 20 2b 20 34 30 20 63 6f 6c 31 20 46 52  ECT + 40 col1 FR
143e0 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d  OM tab1 cor0..--
143f0 2d 2d 0d 0a 34 30 0d 0a 34 30 0d 0a 34 30 0d 0a  --..40..40..40..
14400 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
14410 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67   CAST syntax: ag
14420 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
14430 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
14440 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
14450 61 62 65 6c 2d 34 33 34 0d 0a 53 45 4c 45 43 54  abel-434..SELECT
14460 20 41 4c 4c 20 2d 20 4d 41 58 28 20 2d 20 2d 20   ALL - MAX( - - 
14470 43 41 53 54 28 20 2b 20 2d 20 63 6f 6c 32 20 41  CAST( + - col2 A
14480 53 20 53 49 47 4e 45 44 20 29 20 29 20 46 52 4f  S SIGNED ) ) FRO
14490 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
144a0 2d 2d 2d 2d 0d 0a 31 30 0d 0a 0d 0a 73 6b 69 70  ----..10....skip
144b0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
144c0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
144d0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
144e0 2d 34 33 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -434..SELECT ALL
144f0 20 2d 20 4d 41 58 20 28 20 2d 20 2d 20 43 41 53   - MAX ( - - CAS
14500 54 20 28 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20  T ( + - col2 AS 
14510 49 4e 54 45 47 45 52 20 29 20 29 20 46 52 4f 4d  INTEGER ) ) FROM
14520 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
14530 2d 2d 2d 0d 0a 31 30 0d 0a 0d 0a 71 75 65 72 79  ---..10....query
14540 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
14550 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 2a 20  CT ALL + col2 * 
14560 2d 20 2d 20 37 30 20 46 52 4f 4d 20 74 61 62 32  - - 70 FROM tab2
14570 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
14580 31 36 31 30 0d 0a 32 38 30 30 0d 0a 34 30 36 30  1610..2800..4060
14590 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
145a0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
145b0 54 49 4e 43 54 20 32 35 2c 20 2b 20 63 6f 6c 31  TINCT 25, + col1
145c0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
145d0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 35 0d 0a 31 34  r0..----..25..14
145e0 0d 0a 32 35 0d 0a 34 37 0d 0a 32 35 0d 0a 35 0d  ..25..47..25..5.
145f0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
14600 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
14610 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
14620 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
14630 61 62 65 6c 2d 34 33 37 0d 0a 53 45 4c 45 43 54  abel-437..SELECT
14640 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 2c 20   DISTINCT col1, 
14650 63 6f 6c 30 20 2d 20 2d 20 2b 20 63 6f 6c 32 20  col0 - - + col2 
14660 2a 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  * + CAST( NULL A
14670 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f  S SIGNED ) AS co
14680 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
14690 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 4e  cor0..----..1..N
146a0 55 4c 4c 0d 0a 32 31 0d 0a 4e 55 4c 4c 0d 0a 38  ULL..21..NULL..8
146b0 31 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  1..NULL....skipi
146c0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
146d0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
146e0 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
146f0 2d 34 33 37 0d 0a 53 45 4c 45 43 54 20 44 49 53  -437..SELECT DIS
14700 54 49 4e 43 54 20 63 6f 6c 31 2c 20 63 6f 6c 30  TINCT col1, col0
14710 20 2d 20 2d 20 2b 20 63 6f 6c 32 20 2a 20 2b 20   - - + col2 * + 
14720 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
14730 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 30  NTEGER ) AS col0
14740 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
14750 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 4e 55 4c  r0..----..1..NUL
14760 4c 0d 0a 32 31 0d 0a 4e 55 4c 4c 0d 0a 38 31 0d  L..21..NULL..81.
14770 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
14780 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
14790 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41  CT * FROM tab0 A
147a0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
147b0 20 2d 20 28 20 2d 20 39 35 20 29 20 49 53 20 4e   - ( - 95 ) IS N
147c0 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  OT NULL..----...
147d0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
147e0 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 46 52  ..SELECT col1 FR
147f0 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48 45  OM tab2 cor0 WHE
14800 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 4e 20 28  RE NOT NULL IN (
14810 20 63 6f 6c 31 20 2d 20 2d 20 36 32 2c 20 2d 20   col1 - - 62, - 
14820 33 32 2c 20 39 37 20 2b 20 2b 20 63 6f 6c 31 20  32, 97 + + col1 
14830 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  )..----....query
14840 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
14850 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
14860 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2b 20 63   WHERE NOT ( + c
14870 6f 6c 32 20 29 20 3c 3e 20 2b 20 63 6f 6c 31 0d  ol2 ) <> + col1.
14880 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
14890 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
148a0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
148b0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
148c0 6c 2d 34 34 31 0d 0a 53 45 4c 45 43 54 20 44 49  l-441..SELECT DI
148d0 53 54 49 4e 43 54 20 28 20 2d 20 4d 41 58 28 20  STINCT ( - MAX( 
148e0 2b 20 2b 20 37 33 20 29 20 29 20 63 6f 6c 32 20  + + 73 ) ) col2 
148f0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
14900 0a 2d 37 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-73....skipif m
14910 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
14920 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
14930 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
14940 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
14950 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
14960 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
14970 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
14980 6c 61 62 65 6c 2d 34 34 31 0d 0a 53 45 4c 45 43  label-441..SELEC
14990 54 20 44 49 53 54 49 4e 43 54 20 28 20 2d 20 4d  T DISTINCT ( - M
149a0 41 58 20 28 20 2b 20 2b 20 37 33 20 29 20 29 20  AX ( + + 73 ) ) 
149b0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
149c0 2d 2d 2d 2d 0d 0a 2d 37 33 0d 0a 0d 0a 71 75 65  ----..-73....que
149d0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
149e0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
149f0 6c 32 20 2a 20 36 31 20 46 52 4f 4d 20 74 61 62  l2 * 61 FROM tab
14a00 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 34 33  0 WHERE NOT + 43
14a10 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
14a20 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
14a30 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
14a40 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69  yntax: DIV for i
14a50 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
14a60 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
14a70 72 74 20 6c 61 62 65 6c 2d 34 34 33 0d 0a 53 45  rt label-443..SE
14a80 4c 45 43 54 20 41 4c 4c 20 4d 41 58 28 20 2b 20  LECT ALL MAX( + 
14a90 2d 20 63 6f 6c 32 20 29 20 44 49 56 20 2b 20 28  - col2 ) DIV + (
14aa0 20 2d 20 35 32 20 29 20 2b 20 2d 20 37 30 20 46   - 52 ) + - 70 F
14ab0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
14ac0 2d 36 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -69....skipif my
14ad0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
14ae0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
14af0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 34 33 0d  wsort label-443.
14b00 0a 53 45 4c 45 43 54 20 41 4c 4c 20 4d 41 58 20  .SELECT ALL MAX 
14b10 28 20 2b 20 2d 20 63 6f 6c 32 20 29 20 2f 20 2b  ( + - col2 ) / +
14b20 20 28 20 2d 20 35 32 20 29 20 2b 20 2d 20 37 30   ( - 52 ) + - 70
14b30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
14b40 0d 0a 2d 36 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-69....onlyif 
14b50 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
14b60 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
14b70 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
14b80 6c 2d 34 34 34 0d 0a 53 45 4c 45 43 54 20 4d 41  l-444..SELECT MA
14b90 58 28 20 2d 20 63 6f 6c 30 20 29 20 63 6f 6c 32  X( - col0 ) col2
14ba0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
14bb0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a 0d  r0..----..-46...
14bc0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
14bd0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
14be0 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
14bf0 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
14c00 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
14c10 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
14c20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
14c30 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
14c40 34 34 0d 0a 53 45 4c 45 43 54 20 4d 41 58 20 28  44..SELECT MAX (
14c50 20 2d 20 63 6f 6c 30 20 29 20 63 6f 6c 32 20 46   - col0 ) col2 F
14c60 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
14c70 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a 0d 0a 73  ..----..-46....s
14c80 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
14c90 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
14ca0 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
14cb0 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
14cc0 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
14cd0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
14ce0 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 63 6f 6c  DISTINCT + + col
14cf0 30 20 2a 20 2b 20 2d 20 63 6f 6c 30 20 2b 20 2b  0 * + - col0 + +
14d00 20 63 6f 6c 30 20 2b 20 2d 20 2d 20 37 35 20 63   col0 + - - 75 c
14d10 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
14d20 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39   cor0..----..-19
14d30 39 35 0d 0a 2d 33 39 35 37 0d 0a 2d 35 34 37 35  95..-3957..-5475
14d40 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
14d50 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
14d60 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
14d70 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 34 36  owsort label-446
14d80 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 53 55 4d  ..SELECT ALL SUM
14d90 28 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 63  ( DISTINCT + - c
14da0 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 31 20  ol0 ) FROM tab1 
14db0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
14dc0 32 32 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  227....skipif my
14dd0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
14de0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
14df0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 34 36 0d  wsort label-446.
14e00 0a 53 45 4c 45 43 54 20 41 4c 4c 20 53 55 4d 20  .SELECT ALL SUM 
14e10 28 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 63  ( DISTINCT + - c
14e20 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 31 20  ol0 ) FROM tab1 
14e30 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
14e40 32 32 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  227....query III
14e50 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
14e60 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
14e70 52 4f 4d 20 28 20 74 61 62 31 20 41 53 20 63 6f  ROM ( tab1 AS co
14e80 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
14e90 62 31 20 41 53 20 63 6f 72 31 20 29 20 57 48 45  b1 AS cor1 ) WHE
14ea0 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e  RE NOT NULL IS N
14eb0 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 35  OT NULL..----..5
14ec0 34 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  4 values hashing
14ed0 20 74 6f 20 33 37 35 66 33 37 32 38 34 33 30 38   to 375f37284308
14ee0 39 62 30 33 66 32 33 62 30 30 31 36 30 30 30 37  9b03f23b00160007
14ef0 35 32 37 61 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  527a....onlyif m
14f00 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
14f10 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
14f20 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
14f30 2d 34 34 38 0d 0a 53 45 4c 45 43 54 20 2b 20 43  -448..SELECT + C
14f40 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20 4d 49  OUNT( * ) * + MI
14f50 4e 28 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20  N( DISTINCT + + 
14f60 33 35 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  35 ) AS col0 FRO
14f70 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 30  M tab2..----..10
14f80 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  5....skipif mysq
14f90 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
14fa0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
14fb0 6f 72 74 20 6c 61 62 65 6c 2d 34 34 38 0d 0a 53  ort label-448..S
14fc0 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20 28 20  ELECT + COUNT ( 
14fd0 2a 20 29 20 2a 20 2b 20 4d 49 4e 20 28 20 44 49  * ) * + MIN ( DI
14fe0 53 54 49 4e 43 54 20 2b 20 2b 20 33 35 20 29 20  STINCT + + 35 ) 
14ff0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
15000 32 0d 0a 2d 2d 2d 2d 0d 0a 31 30 35 0d 0a 0d 0a  2..----..105....
15010 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
15020 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
15030 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
15040 72 74 20 6c 61 62 65 6c 2d 34 34 39 0d 0a 53 45  rt label-449..SE
15050 4c 45 43 54 20 4d 41 58 28 20 44 49 53 54 49 4e  LECT MAX( DISTIN
15060 43 54 20 2b 20 35 34 20 29 20 41 53 20 63 6f 6c  CT + 54 ) AS col
15070 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
15080 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 34 0d 0a 0d  or0..----..54...
15090 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
150a0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
150b0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
150c0 6c 61 62 65 6c 2d 34 34 39 0d 0a 53 45 4c 45 43  label-449..SELEC
150d0 54 20 4d 41 58 20 28 20 44 49 53 54 49 4e 43 54  T MAX ( DISTINCT
150e0 20 2b 20 35 34 20 29 20 41 53 20 63 6f 6c 32 20   + 54 ) AS col2 
150f0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
15100 30 0d 0a 2d 2d 2d 2d 0d 0a 35 34 0d 0a 0d 0a 71  0..----..54....q
15110 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
15120 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
15130 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
15140 52 45 20 63 6f 6c 31 20 4e 4f 54 20 49 4e 20 28  RE col1 NOT IN (
15150 20 35 31 20 2f 20 2b 20 63 6f 6c 32 20 2f 20 2b   51 / + col2 / +
15160 20 31 33 2c 20 2d 20 63 6f 6c 32 20 2d 20 63 6f   13, - col2 - co
15170 6c 32 2c 20 2d 20 2d 20 34 33 20 2b 20 2d 20 2b  l2, - - 43 + - +
15180 20 63 6f 6c 30 2c 20 2b 20 63 6f 6c 32 20 29 0d   col0, + col2 ).
15190 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
151a0 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61  hashing to c6c0a
151b0 34 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31  4111b36d04dbc811
151c0 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71  a11e4d54cad....q
151d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
151e0 53 45 4c 45 43 54 20 2b 20 32 39 20 2f 20 2d 20  SELECT + 29 / - 
151f0 63 6f 6c 31 20 2b 20 63 6f 6c 32 20 46 52 4f 4d  col1 + col2 FROM
15200 20 74 61 62 30 20 63 6f 72 30 20 57 48 45 52 45   tab0 cor0 WHERE
15210 20 2b 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d   + col1 IS NULL.
15220 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
15230 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
15240 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
15250 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
15260 6c 2d 34 35 32 0d 0a 53 45 4c 45 43 54 20 2b 20  l-452..SELECT + 
15270 4d 41 58 28 20 41 4c 4c 20 2d 20 35 35 20 29 20  MAX( ALL - 55 ) 
15280 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
15290 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 35 0d 0a 0d 0a  0..----..-55....
152a0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
152b0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
152c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
152d0 61 62 65 6c 2d 34 35 32 0d 0a 53 45 4c 45 43 54  abel-452..SELECT
152e0 20 2b 20 4d 41 58 20 28 20 41 4c 4c 20 2d 20 35   + MAX ( ALL - 5
152f0 35 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53  5 ) FROM tab2 AS
15300 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 35   cor0..----..-55
15310 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
15320 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
15330 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
15340 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
15350 61 62 65 6c 2d 34 35 33 0d 0a 53 45 4c 45 43 54  abel-453..SELECT
15360 20 41 4c 4c 20 2d 20 28 20 2b 20 2b 20 63 6f 6c   ALL - ( + + col
15370 32 20 29 20 2b 20 43 41 53 54 28 20 2b 20 2d 20  2 ) + CAST( + - 
15380 39 37 20 41 53 20 53 49 47 4e 45 44 20 29 20 46  97 AS SIGNED ) F
15390 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
153a0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 37 0d 0a 2d 31  ..----..-107..-1
153b0 34 34 0d 0a 2d 31 39 36 0d 0a 0d 0a 73 6b 69 70  44..-196....skip
153c0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
153d0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
153e0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
153f0 2d 34 35 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -453..SELECT ALL
15400 20 2d 20 28 20 2b 20 2b 20 63 6f 6c 32 20 29 20   - ( + + col2 ) 
15410 2b 20 43 41 53 54 20 28 20 2b 20 2d 20 39 37 20  + CAST ( + - 97 
15420 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f  AS INTEGER ) FRO
15430 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
15440 2d 2d 2d 2d 0d 0a 2d 31 30 37 0d 0a 2d 31 34 34  ----..-107..-144
15450 0d 0a 2d 31 39 36 0d 0a 0d 0a 71 75 65 72 79 20  ..-196....query 
15460 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
15470 54 20 35 34 20 41 53 20 63 6f 6c 32 20 46 52 4f  T 54 AS col2 FRO
15480 4d 20 74 61 62 32 20 57 48 45 52 45 20 63 6f 6c  M tab2 WHERE col
15490 31 20 2a 20 63 6f 6c 32 20 2b 20 2d 20 36 39 20  1 * col2 + - 69 
154a0 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
154b0 2d 0d 0a 35 34 0d 0a 35 34 0d 0a 35 34 0d 0a 0d  -..54..54..54...
154c0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
154d0 74 0d 0a 53 45 4c 45 43 54 20 2b 20 32 31 20 2d  t..SELECT + 21 -
154e0 20 2b 20 2d 20 32 31 2c 20 2b 20 63 6f 6c 32 20   + - 21, + col2 
154f0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
15500 31 0d 0a 2d 2d 2d 2d 0d 0a 34 32 0d 0a 35 39 0d  1..----..42..59.
15510 0a 34 32 0d 0a 36 38 0d 0a 34 32 0d 0a 39 36 0d  .42..68..42..96.
15520 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
15530 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  rt..SELECT - col
15540 32 20 2d 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 32  2 - - col1 + + 2
15550 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
15560 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 31 0d 0a 33 30  b2..----..11..30
15570 0d 0a 33 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..39....query I 
15580 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
15590 38 31 20 2b 20 2d 20 2d 20 63 6f 6c 32 20 2b 20  81 + - - col2 + 
155a0 2b 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 32 20  + col1 + - col2 
155b0 2a 20 2b 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f  * + - col0 AS co
155c0 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
155d0 2d 2d 0d 0a 31 32 31 33 0d 0a 32 37 35 38 0d 0a  --..1213..2758..
155e0 34 35 35 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20  4556....query I 
155f0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
15600 41 4c 4c 20 2b 20 34 37 20 2b 20 2d 20 2b 20 37  ALL + 47 + - + 7
15610 34 20 2a 20 2b 20 2b 20 33 38 20 2a 20 2d 20 2d  4 * + + 38 * - -
15620 20 28 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74   ( col1 ) FROM t
15630 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32 37 37  ab0..----..-2277
15640 32 35 0d 0a 2d 32 37 36 35 0d 0a 2d 35 39 30 30  25..-2765..-5900
15650 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  5....onlyif mysq
15660 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
15670 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
15680 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 35  rowsort label-45
15690 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  9..SELECT ALL - 
156a0 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 33 35 20  COUNT( * ) * 35 
156b0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
156c0 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 35 0d 0a 0d  2..----..-105...
156d0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
156e0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
156f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
15700 6c 61 62 65 6c 2d 34 35 39 0d 0a 53 45 4c 45 43  label-459..SELEC
15710 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 20 28 20  T ALL - COUNT ( 
15720 2a 20 29 20 2a 20 33 35 20 41 53 20 63 6f 6c 31  * ) * 35 AS col1
15730 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
15740 0d 0a 2d 31 30 35 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..-105....onlyif
15750 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
15760 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
15770 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
15780 65 6c 2d 34 36 30 0d 0a 53 45 4c 45 43 54 20 36  el-460..SELECT 6
15790 30 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41  0 + COUNT( * ) A
157a0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
157b0 0d 0a 2d 2d 2d 2d 0d 0a 36 33 0d 0a 0d 0a 73 6b  ..----..63....sk
157c0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
157d0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
157e0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
157f0 65 6c 2d 34 36 30 0d 0a 53 45 4c 45 43 54 20 36  el-460..SELECT 6
15800 30 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  0 + COUNT ( * ) 
15810 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
15820 32 0d 0a 2d 2d 2d 2d 0d 0a 36 33 0d 0a 0d 0a 71  2..----..63....q
15830 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
15840 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
15850 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 2c 20 28   col0 AS col2, (
15860 20 2b 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63   + + col0 ) AS c
15870 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol2 FROM tab1..-
15880 2d 2d 2d 0d 0a 35 31 0d 0a 35 31 0d 0a 38 35 0d  ---..51..51..85.
15890 0a 38 35 0d 0a 39 31 0d 0a 39 31 0d 0a 0d 0a 6f  .85..91..91....o
158a0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
158b0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
158c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
158d0 74 20 6c 61 62 65 6c 2d 34 36 32 0d 0a 53 45 4c  t label-462..SEL
158e0 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 28  ECT ALL - COUNT(
158f0 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57   * ) FROM tab1 W
15900 48 45 52 45 20 4e 4f 54 20 2d 20 34 34 20 49 53  HERE NOT - 44 IS
15910 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d   NULL..----..-3.
15920 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
15930 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
15940 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
15950 74 20 6c 61 62 65 6c 2d 34 36 32 0d 0a 53 45 4c  t label-462..SEL
15960 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 20  ECT ALL - COUNT 
15970 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20  ( * ) FROM tab1 
15980 57 48 45 52 45 20 4e 4f 54 20 2d 20 34 34 20 49  WHERE NOT - 44 I
15990 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  S NULL..----..-3
159a0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
159b0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 31 20 2b 20  ort..SELECT 1 + 
159c0 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46  - col1 AS col2 F
159d0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
159e0 2d 35 30 0d 0a 2d 36 36 0d 0a 2d 37 36 0d 0a 0d  -50..-66..-76...
159f0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
15a00 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
15a10 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
15a20 6f 72 74 20 6c 61 62 65 6c 2d 34 36 34 0d 0a 53  ort label-464..S
15a30 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
15a40 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20   + COUNT( * ) + 
15a50 2d 20 36 35 20 41 53 20 63 6f 6c 31 20 46 52 4f  - 65 AS col1 FRO
15a60 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
15a70 2d 0d 0a 2d 36 32 0d 0a 0d 0a 73 6b 69 70 69 66  -..-62....skipif
15a80 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
15a90 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
15aa0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
15ab0 36 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  64..SELECT DISTI
15ac0 4e 43 54 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20  NCT + + COUNT ( 
15ad0 2a 20 29 20 2b 20 2d 20 36 35 20 41 53 20 63 6f  * ) + - 65 AS co
15ae0 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l1 FROM tab0 cor
15af0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 32 0d 0a 0d 0a  0..----..-62....
15b00 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
15b10 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
15b20 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   - col0 FROM tab
15b30 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
15b40 4e 4f 54 20 63 6f 6c 30 20 4e 4f 54 20 42 45 54  NOT col0 NOT BET
15b50 57 45 45 4e 20 2d 20 2b 20 63 6f 6c 32 20 41 4e  WEEN - + col2 AN
15b60 44 20 2d 20 2b 20 38 38 0d 0a 2d 2d 2d 2d 0d 0a  D - + 88..----..
15b70 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
15b80 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 33 33 2c  rt..SELECT - 33,
15b90 20 37 30 20 2a 20 2d 20 63 6f 6c 31 20 41 53 20   70 * - col1 AS 
15ba0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
15bb0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  S cor0..----..-3
15bc0 33 0d 0a 2d 31 34 37 30 0d 0a 2d 33 33 0d 0a 2d  3..-1470..-33..-
15bd0 35 36 37 30 0d 0a 2d 33 33 0d 0a 2d 37 30 0d 0a  5670..-33..-70..
15be0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
15bf0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
15c00 43 54 20 2d 20 32 35 20 2b 20 63 6f 6c 30 20 46  CT - 25 + col0 F
15c10 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d  ROM tab0 cor0..-
15c20 2d 2d 2d 0d 0a 2d 31 30 0d 0a 36 32 0d 0a 37 32  ---..-10..62..72
15c30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
15c40 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  ort..SELECT + co
15c50 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l2 AS col1 FROM 
15c60 74 61 62 31 20 57 48 45 52 45 20 2d 20 36 33 20  tab1 WHERE - 63 
15c70 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
15c80 2d 0d 0a 35 39 0d 0a 36 38 0d 0a 39 36 0d 0a 0d  -..59..68..96...
15c90 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
15ca0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
15cb0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
15cc0 6f 72 74 20 6c 61 62 65 6c 2d 34 36 39 0d 0a 53  ort label-469..S
15cd0 45 4c 45 43 54 20 2b 20 4d 49 4e 28 20 2d 20 33  ELECT + MIN( - 3
15ce0 32 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  2 ) AS col1 FROM
15cf0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 32   tab0..----..-32
15d00 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
15d10 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
15d20 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
15d30 72 74 20 6c 61 62 65 6c 2d 34 36 39 0d 0a 53 45  rt label-469..SE
15d40 4c 45 43 54 20 2b 20 4d 49 4e 20 28 20 2d 20 33  LECT + MIN ( - 3
15d50 32 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  2 ) AS col1 FROM
15d60 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 32   tab0..----..-32
15d70 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
15d80 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
15d90 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
15da0 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
15db0 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
15dc0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
15dd0 4c 45 43 54 20 41 4c 4c 20 2d 20 38 38 20 63 6f  LECT ALL - 88 co
15de0 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
15df0 2d 2d 0d 0a 2d 38 38 0d 0a 2d 38 38 0d 0a 2d 38  --..-88..-88..-8
15e00 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  8....onlyif mysq
15e10 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
15e20 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
15e30 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 37  rowsort label-47
15e40 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  1..SELECT DISTIN
15e50 43 54 20 2b 20 4d 49 4e 28 20 63 6f 6c 30 20 29  CT + MIN( col0 )
15e60 20 2a 20 2b 20 4d 41 58 28 20 2d 20 63 6f 6c 32   * + MAX( - col2
15e70 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
15e80 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 30  tab0..----..-150
15e90 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
15ea0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
15eb0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
15ec0 72 74 20 6c 61 62 65 6c 2d 34 37 31 0d 0a 53 45  rt label-471..SE
15ed0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
15ee0 4d 49 4e 20 28 20 63 6f 6c 30 20 29 20 2a 20 2b  MIN ( col0 ) * +
15ef0 20 4d 41 58 20 28 20 2d 20 63 6f 6c 32 20 29 20   MAX ( - col2 ) 
15f00 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
15f10 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 30 0d 0a 0d  0..----..-150...
15f20 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
15f30 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
15f40 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
15f50 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
15f60 6c 2d 34 37 32 0d 0a 53 45 4c 45 43 54 20 44 49  l-472..SELECT DI
15f70 53 54 49 4e 43 54 20 2d 20 43 41 53 54 28 20 2d  STINCT - CAST( -
15f80 20 38 37 20 41 53 20 53 49 47 4e 45 44 20 29 20   87 AS SIGNED ) 
15f90 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
15fa0 30 0d 0a 2d 2d 2d 2d 0d 0a 38 37 0d 0a 0d 0a 73  0..----..87....s
15fb0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
15fc0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
15fd0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
15fe0 62 65 6c 2d 34 37 32 0d 0a 53 45 4c 45 43 54 20  bel-472..SELECT 
15ff0 44 49 53 54 49 4e 43 54 20 2d 20 43 41 53 54 20  DISTINCT - CAST 
16000 28 20 2d 20 38 37 20 41 53 20 49 4e 54 45 47 45  ( - 87 AS INTEGE
16010 52 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53  R ) FROM tab2 AS
16020 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 37 0d   cor0..----..87.
16030 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
16040 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
16050 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
16060 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 37 33 0d  wsort label-473.
16070 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d 49  .SELECT ALL + MI
16080 4e 28 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20  N( DISTINCT + - 
16090 38 30 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41  80 ) FROM tab0 A
160a0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38  S cor0..----..-8
160b0 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
160c0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
160d0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
160e0 6f 72 74 20 6c 61 62 65 6c 2d 34 37 33 0d 0a 53  ort label-473..S
160f0 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d 49 4e 20  ELECT ALL + MIN 
16100 28 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 38  ( DISTINCT + - 8
16110 30 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  0 ) FROM tab0 AS
16120 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 30   cor0..----..-80
16130 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
16140 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
16150 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
16160 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
16170 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
16180 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
16190 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 2a 20  LECT ALL col0 * 
161a0 2d 20 63 6f 6c 31 20 2d 20 2b 20 32 34 20 63 6f  - col1 - + 24 co
161b0 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
161c0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 33 30  cor0..----..-430
161d0 31 0d 0a 2d 34 34 39 0d 0a 2d 37 33 38 0d 0a 0d  1..-449..-738...
161e0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
161f0 74 0d 0a 53 45 4c 45 43 54 20 35 39 20 41 53 20  t..SELECT 59 AS 
16200 63 6f 6c 30 2c 20 2d 20 63 6f 6c 32 20 41 53 20  col0, - col2 AS 
16210 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col1 FROM tab1..
16220 2d 2d 2d 2d 0d 0a 35 39 0d 0a 2d 35 39 0d 0a 35  ----..59..-59..5
16230 39 0d 0a 2d 36 38 0d 0a 35 39 0d 0a 2d 39 36 0d  9..-68..59..-96.
16240 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
16250 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
16260 4e 43 54 20 2d 20 34 35 20 2a 20 2b 20 63 6f 6c  NCT - 45 * + col
16270 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
16280 2d 0d 0a 2d 32 31 31 35 0d 0a 2d 32 32 35 0d 0a  -..-2115..-225..
16290 2d 36 33 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -630....onlyif m
162a0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
162b0 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72   syntax: DIV for
162c0 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
162d0 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
162e0 73 6f 72 74 20 6c 61 62 65 6c 2d 34 37 37 0d 0a  sort label-477..
162f0 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54  SELECT ALL COUNT
16300 28 20 2a 20 29 20 44 49 56 20 2b 20 43 4f 55 4e  ( * ) DIV + COUN
16310 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46  T( * ) AS col1 F
16320 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
16330 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
16340 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
16350 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
16360 6f 72 74 20 6c 61 62 65 6c 2d 34 37 37 0d 0a 53  ort label-477..S
16370 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20  ELECT ALL COUNT 
16380 28 20 2a 20 29 20 2f 20 2b 20 43 4f 55 4e 54 20  ( * ) / + COUNT 
16390 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ( * ) AS col1 FR
163a0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
163b0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
163c0 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
163d0 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
163e0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
163f0 61 62 65 6c 2d 34 37 38 0d 0a 53 45 4c 45 43 54  abel-478..SELECT
16400 20 41 4c 4c 20 63 6f 6c 32 20 44 49 56 20 2b 20   ALL col2 DIV + 
16410 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46  + col1 AS col2 F
16420 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d  ROM tab0 cor0..-
16430 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 39 39 0d 0a 0d  ---..0..0..99...
16440 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
16450 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
16460 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
16470 6c 61 62 65 6c 2d 34 37 38 0d 0a 53 45 4c 45 43  label-478..SELEC
16480 54 20 41 4c 4c 20 63 6f 6c 32 20 2f 20 2b 20 2b  T ALL col2 / + +
16490 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52   col1 AS col2 FR
164a0 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d  OM tab0 cor0..--
164b0 2d 2d 0d 0a 30 0d 0a 30 0d 0a 39 39 0d 0a 0d 0a  --..0..0..99....
164c0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
164d0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
164e0 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
164f0 6f 72 74 20 6c 61 62 65 6c 2d 34 37 39 0d 0a 53  ort label-479..S
16500 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
16510 20 28 20 2d 20 2d 20 4d 49 4e 28 20 41 4c 4c 20   ( - - MIN( ALL 
16520 2b 20 63 6f 6c 31 20 29 20 29 20 41 53 20 63 6f  + col1 ) ) AS co
16530 6c 30 2c 20 2b 20 32 32 20 2b 20 43 4f 55 4e 54  l0, + 22 + COUNT
16540 28 20 2d 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20  ( - col1 ) FROM 
16550 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
16560 2d 2d 0d 0a 2d 35 31 0d 0a 32 35 0d 0a 0d 0a 73  --..-51..25....s
16570 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
16580 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
16590 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
165a0 61 62 65 6c 2d 34 37 39 0d 0a 53 45 4c 45 43 54  abel-479..SELECT
165b0 20 44 49 53 54 49 4e 43 54 20 2d 20 28 20 2d 20   DISTINCT - ( - 
165c0 2d 20 4d 49 4e 20 28 20 41 4c 4c 20 2b 20 63 6f  - MIN ( ALL + co
165d0 6c 31 20 29 20 29 20 41 53 20 63 6f 6c 30 2c 20  l1 ) ) AS col0, 
165e0 2b 20 32 32 20 2b 20 43 4f 55 4e 54 20 28 20 2d  + 22 + COUNT ( -
165f0 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62   col1 ) FROM tab
16600 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
16610 0a 2d 35 31 0d 0a 32 35 0d 0a 0d 0a 71 75 65 72  .-51..25....quer
16620 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
16630 45 43 54 20 41 4c 4c 20 2d 20 32 36 20 2b 20 2b  ECT ALL - 26 + +
16640 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20   + col0 AS col0 
16650 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
16660 30 0d 0a 2d 2d 2d 2d 0d 0a 32 30 0d 0a 33 38 0d  0..----..20..38.
16670 0a 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .49....query I r
16680 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
16690 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 46 52 4f  ISTINCT col1 FRO
166a0 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54  M tab1 WHERE NOT
166b0 20 4e 55 4c 4c 20 3e 20 2b 20 36 33 0d 0a 2d 2d   NULL > + 63..--
166c0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
166d0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
166e0 2d 20 38 38 20 46 52 4f 4d 20 74 61 62 30 2c 20  - 88 FROM tab0, 
166f0 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
16700 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e  RE NOT NULL IS N
16710 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  OT NULL..----..9
16720 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
16730 74 6f 20 36 62 65 31 37 62 38 32 65 63 62 33 65  to 6be17b82ecb3e
16740 38 62 32 36 38 66 63 62 34 62 61 36 31 30 64 64  8b268fcb4ba610dd
16750 62 33 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  b37....onlyif my
16760 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
16770 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
16780 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
16790 34 38 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  483..SELECT DIST
167a0 49 4e 43 54 20 53 55 4d 28 20 41 4c 4c 20 2d 20  INCT SUM( ALL - 
167b0 2d 20 28 20 2d 20 2d 20 63 6f 6c 32 20 29 20 29  - ( - - col2 ) )
167c0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
167d0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 32 31 0d 0a 0d  b2..----..121...
167e0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
167f0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
16800 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
16810 6c 61 62 65 6c 2d 34 38 33 0d 0a 53 45 4c 45 43  label-483..SELEC
16820 54 20 44 49 53 54 49 4e 43 54 20 53 55 4d 20 28  T DISTINCT SUM (
16830 20 41 4c 4c 20 2d 20 2d 20 28 20 2d 20 2d 20 63   ALL - - ( - - c
16840 6f 6c 32 20 29 20 29 20 41 53 20 63 6f 6c 32 20  ol2 ) ) AS col2 
16850 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
16860 0a 31 32 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .121....query II
16870 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
16880 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
16890 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 55 4c  M tab1 WHERE NUL
168a0 4c 20 42 45 54 57 45 45 4e 20 2d 20 63 6f 6c 31  L BETWEEN - col1
168b0 20 41 4e 44 20 2b 20 2b 20 63 6f 6c 32 20 2a 20   AND + + col2 * 
168c0 2b 20 2d 20 63 6f 6c 32 20 2f 20 2b 20 63 6f 6c  + - col2 / + col
168d0 32 20 2b 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d  2 + - col1..----
168e0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
168f0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32  ort..SELECT col2
16900 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
16910 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
16920 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d   NULL IS NULL..-
16930 2d 2d 2d 0d 0a 31 30 0d 0a 34 37 0d 0a 39 39 0d  ---..10..47..99.
16940 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
16950 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20  ort..SELECT + + 
16960 32 35 20 2b 20 2b 20 63 6f 6c 30 2c 20 2b 20 35  25 + + col0, + 5
16970 30 20 2a 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f  0 * + col1 AS co
16980 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
16990 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 30 0d  cor0..----..110.
169a0 0a 32 35 30 0d 0a 31 31 36 0d 0a 32 33 35 30 0d  .250..116..2350.
169b0 0a 37 36 0d 0a 37 30 30 0d 0a 0d 0a 71 75 65 72  .76..700....quer
169c0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
169d0 45 43 54 20 2d 20 2b 20 63 6f 6c 31 20 2a 20 2b  ECT - + col1 * +
169e0 20 63 6f 6c 32 20 2b 20 63 6f 6c 31 20 41 53 20   col2 + col1 AS 
169f0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
16a00 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
16a10 33 33 30 0d 0a 2d 32 39 30 0d 0a 2d 33 31 34 39  330..-290..-3149
16a20 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
16a30 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
16a40 2b 20 63 6f 6c 30 20 2b 20 2b 20 37 20 41 53 20  + col0 + + 7 AS 
16a50 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
16a60 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 33  S cor0..----..53
16a70 0d 0a 37 31 0d 0a 38 32 0d 0a 0d 0a 71 75 65 72  ..71..82....quer
16a80 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
16a90 45 43 54 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c  ECT col1 * - col
16aa0 30 20 2a 20 2b 20 63 6f 6c 30 20 2b 20 63 6f 6c  0 * + col0 + col
16ab0 32 20 2b 20 2d 20 35 32 20 2b 20 39 38 20 2a 20  2 + - 52 + 98 * 
16ac0 37 30 20 2b 20 2d 20 36 37 20 46 52 4f 4d 20 74  70 + - 67 FROM t
16ad0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
16ae0 2d 0d 0a 2d 31 30 31 31 35 32 0d 0a 2d 33 30 38  -..-101152..-308
16af0 36 31 31 0d 0a 2d 33 37 30 30 37 36 0d 0a 0d 0a  611..-370076....
16b00 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
16b10 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
16b20 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
16b30 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
16b40 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
16b50 65 6c 2d 34 39 30 0d 0a 53 45 4c 45 43 54 20 44  el-490..SELECT D
16b60 49 53 54 49 4e 43 54 20 2d 20 2b 20 43 4f 55 4e  ISTINCT - + COUN
16b70 54 28 20 2a 20 29 20 44 49 56 20 2b 20 36 31 20  T( * ) DIV + 61 
16b80 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
16b90 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
16ba0 63 6f 6c 30 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d 2d  col0 < NULL..---
16bb0 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..0....skipif m
16bc0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
16bd0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
16be0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 39 30  owsort label-490
16bf0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
16c00 54 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  T - + COUNT ( * 
16c10 29 20 2f 20 2b 20 36 31 20 41 53 20 63 6f 6c 30  ) / + 61 AS col0
16c20 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
16c30 72 30 20 57 48 45 52 45 20 63 6f 6c 30 20 3c 20  r0 WHERE col0 < 
16c40 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  NULL..----..0...
16c50 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
16c60 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
16c70 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
16c80 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
16c90 6c 2d 34 39 31 0d 0a 53 45 4c 45 43 54 20 41 4c  l-491..SELECT AL
16ca0 4c 20 35 34 20 2a 20 2d 20 36 38 20 2b 20 2d 20  L 54 * - 68 + - 
16cb0 63 6f 6c 30 20 44 49 56 20 63 6f 6c 30 20 46 52  col0 DIV col0 FR
16cc0 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d  OM tab0 cor0..--
16cd0 2d 2d 0d 0a 2d 33 36 37 33 0d 0a 2d 33 36 37 33  --..-3673..-3673
16ce0 0d 0a 2d 33 36 37 33 0d 0a 0d 0a 73 6b 69 70 69  ..-3673....skipi
16cf0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
16d00 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
16d10 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
16d20 34 39 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  491..SELECT ALL 
16d30 35 34 20 2a 20 2d 20 36 38 20 2b 20 2d 20 63 6f  54 * - 68 + - co
16d40 6c 30 20 2f 20 63 6f 6c 30 20 46 52 4f 4d 20 74  l0 / col0 FROM t
16d50 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab0 cor0..----..
16d60 2d 33 36 37 33 0d 0a 2d 33 36 37 33 0d 0a 2d 33  -3673..-3673..-3
16d70 36 37 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  673....onlyif my
16d80 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
16d90 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
16da0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
16db0 74 20 6c 61 62 65 6c 2d 34 39 32 0d 0a 53 45 4c  t label-492..SEL
16dc0 45 43 54 20 44 49 53 54 49 4e 43 54 20 31 33 20  ECT DISTINCT 13 
16dd0 2b 20 2b 20 43 41 53 54 28 20 2b 20 63 6f 6c 30  + + CAST( + col0
16de0 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2d   AS SIGNED ) + -
16df0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d   col1 FROM tab0.
16e00 0a 2d 2d 2d 2d 0d 0a 2d 35 33 0d 0a 31 30 39 0d  .----..-53..109.
16e10 0a 37 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .79....skipif my
16e20 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
16e30 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
16e40 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 39 32 0d  wsort label-492.
16e50 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
16e60 20 31 33 20 2b 20 2b 20 43 41 53 54 20 28 20 2b   13 + + CAST ( +
16e70 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45 52   col0 AS INTEGER
16e80 20 29 20 2b 20 2d 20 63 6f 6c 31 20 46 52 4f 4d   ) + - col1 FROM
16e90 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 33   tab0..----..-53
16ea0 0d 0a 31 30 39 0d 0a 37 39 0d 0a 0d 0a 71 75 65  ..109..79....que
16eb0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
16ec0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 28 20  LECT DISTINCT ( 
16ed0 63 6f 6c 31 20 29 20 2d 20 2d 20 63 6f 6c 32 20  col1 ) - - col2 
16ee0 2a 20 2b 20 2b 20 34 30 20 41 53 20 63 6f 6c 31  * + + 40 AS col1
16ef0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
16f00 0d 0a 31 36 37 37 0d 0a 32 33 38 37 0d 0a 39 37  ..1677..2387..97
16f10 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
16f20 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
16f30 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
16f40 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
16f50 6c 61 62 65 6c 2d 34 39 34 0d 0a 53 45 4c 45 43  label-494..SELEC
16f60 54 20 41 4c 4c 20 2d 20 43 41 53 54 28 20 4e 55  T ALL - CAST( NU
16f70 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b  LL AS SIGNED ) +
16f80 20 2d 20 63 6f 6c 31 20 63 6f 6c 31 20 46 52 4f   - col1 col1 FRO
16f90 4d 20 74 61 62 31 20 57 48 45 52 45 20 2b 20 38  M tab1 WHERE + 8
16fa0 37 20 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  7 > NULL..----..
16fb0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
16fc0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
16fd0 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
16fe0 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
16ff0 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
17000 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
17010 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
17020 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
17030 34 39 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  494..SELECT ALL 
17040 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
17050 20 49 4e 54 45 47 45 52 20 29 20 2b 20 2d 20 63   INTEGER ) + - c
17060 6f 6c 31 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  ol1 col1 FROM ta
17070 62 31 20 57 48 45 52 45 20 2b 20 38 37 20 3e 20  b1 WHERE + 87 > 
17080 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
17090 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
170a0 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
170b0 61 62 30 20 57 48 45 52 45 20 2d 20 63 6f 6c 31  ab0 WHERE - col1
170c0 20 2b 20 2b 20 63 6f 6c 32 20 4e 4f 54 20 49 4e   + + col2 NOT IN
170d0 20 28 20 2d 20 63 6f 6c 31 20 2b 20 63 6f 6c 31   ( - col1 + col1
170e0 20 2a 20 2b 20 2d 20 63 6f 6c 32 2c 20 39 36 20   * + - col2, 96 
170f0 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  )..----..9 value
17100 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62  s hashing to c4b
17110 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36  42765dff94eaaa46
17120 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d  040e537fb43b7...
17130 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
17140 0d 0a 53 45 4c 45 43 54 20 2d 20 32 36 20 46 52  ..SELECT - 26 FR
17150 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 55  OM tab2 WHERE NU
17160 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  LL IS NULL..----
17170 0d 0a 2d 32 36 0d 0a 2d 32 36 0d 0a 2d 32 36 0d  ..-26..-26..-26.
17180 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
17190 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
171a0 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 2c 20  + col2 AS col2, 
171b0 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
171c0 2d 0d 0a 35 39 0d 0a 31 0d 0a 36 38 0d 0a 31 0d  -..59..1..68..1.
171d0 0a 39 36 0d 0a 31 0d 0a 0d 0a 71 75 65 72 79 20  .96..1....query 
171e0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
171f0 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
17200 57 48 45 52 45 20 2d 20 36 39 20 2a 20 2b 20 2b  WHERE - 69 * + +
17210 20 38 34 20 2f 20 2b 20 2d 20 38 37 20 42 45 54   84 / + - 87 BET
17220 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e 55  WEEN NULL AND NU
17230 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
17240 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
17250 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a  ELECT DISTINCT *
17260 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
17270 20 2b 20 63 6f 6c 31 20 2b 20 34 36 20 3c 3d 20   + col1 + 46 <= 
17280 2b 20 35 31 0d 0a 2d 2d 2d 2d 0d 0a 39 37 0d 0a  + 51..----..97..
17290 31 0d 0a 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49  1..99....query I
172a0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
172b0 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 41   DISTINCT col2 A
172c0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
172d0 20 57 48 45 52 45 20 2b 20 2b 20 63 6f 6c 30 20   WHERE + + col0 
172e0 2b 20 2d 20 63 6f 6c 31 20 4e 4f 54 20 42 45 54  + - col1 NOT BET
172f0 57 45 45 4e 20 63 6f 6c 31 20 41 4e 44 20 36 35  WEEN col1 AND 65
17300 20 2b 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 63 6f   + - col2 * + co
17310 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 34 37  l2..----..10..47
17320 0d 0a 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..99....query I 
17330 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
17340 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  - col1 FROM tab2
17350 20 57 48 45 52 45 20 2d 20 2b 20 63 6f 6c 32 20   WHERE - + col2 
17360 42 45 54 57 45 45 4e 20 2d 20 28 20 2d 20 28 20  BETWEEN - ( - ( 
17370 2d 20 63 6f 6c 31 20 29 20 29 20 2b 20 2d 20 2d  - col1 ) ) + - -
17380 20 63 6f 6c 31 20 2d 20 2d 20 28 20 2d 20 38 30   col1 - - ( - 80
17390 20 29 20 2b 20 2d 20 63 6f 6c 32 20 2b 20 2d 20   ) + - col2 + - 
173a0 34 36 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d  46 AND NULL..---
173b0 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
173c0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 31  sort..SELECT - 1
173d0 33 20 2d 20 36 39 20 2b 20 2b 20 32 37 20 41 53  3 - 69 + + 27 AS
173e0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
173f0 0a 2d 2d 2d 2d 0d 0a 2d 35 35 0d 0a 2d 35 35 0d  .----..-55..-55.
17400 0a 2d 35 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-55....query I 
17410 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
17420 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 63 6f 6c  DISTINCT + + col
17430 30 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30  0 + col2 AS col0
17440 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20   FROM tab2 cor0 
17450 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20 49  WHERE NOT col2 I
17460 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
17470 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
17480 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 39 37  ort..SELECT + 97
17490 20 2a 20 2b 20 63 6f 6c 32 20 2d 20 2b 20 63 6f   * + col2 - + co
174a0 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
174b0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 38 30  cor0..----..2180
174c0 0d 0a 33 38 30 33 0d 0a 35 35 35 39 0d 0a 0d 0a  ..3803..5559....
174d0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
174e0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
174f0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
17500 72 74 20 6c 61 62 65 6c 2d 35 30 35 0d 0a 53 45  rt label-505..SE
17510 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20  LECT + COUNT( * 
17520 29 20 2a 20 43 4f 55 4e 54 28 20 2a 20 29 20 41  ) * COUNT( * ) A
17530 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
17540 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e 55   cor0 WHERE ( NU
17550 4c 4c 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  LL ) IS NOT NULL
17560 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69  ..----..0....ski
17570 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
17580 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
17590 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
175a0 6c 2d 35 30 35 0d 0a 53 45 4c 45 43 54 20 2b 20  l-505..SELECT + 
175b0 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 43 4f  COUNT ( * ) * CO
175c0 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c  UNT ( * ) AS col
175d0 30 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  0 FROM tab2 cor0
175e0 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20   WHERE ( NULL ) 
175f0 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
17600 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49  -..0....query II
17610 49 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  IIII rowsort..SE
17620 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
17630 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
17640 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62  0 CROSS JOIN tab
17650 30 20 41 53 20 63 6f 72 31 20 57 48 45 52 45 20  0 AS cor1 WHERE 
17660 28 20 4e 55 4c 4c 20 29 20 3d 20 2d 20 31 37 0d  ( NULL ) = - 17.
17670 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
17680 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
17690 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
176a0 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
176b0 73 6f 72 74 20 6c 61 62 65 6c 2d 35 30 37 0d 0a  sort label-507..
176c0 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 2c 20 63  SELECT + col2, c
176d0 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol2 AS col1 FROM
176e0 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
176f0 45 52 45 20 4e 4f 54 20 43 41 53 54 28 20 4e 55  ERE NOT CAST( NU
17700 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b  LL AS SIGNED ) +
17710 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c   col1 IS NOT NUL
17720 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 31 30 0d  L..----..10..10.
17730 0a 34 37 0d 0a 34 37 0d 0a 39 39 0d 0a 39 39 0d  .47..47..99..99.
17740 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
17750 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
17760 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
17770 72 74 20 6c 61 62 65 6c 2d 35 30 37 0d 0a 53 45  rt label-507..SE
17780 4c 45 43 54 20 2b 20 63 6f 6c 32 2c 20 63 6f 6c  LECT + col2, col
17790 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  2 AS col1 FROM t
177a0 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
177b0 45 20 4e 4f 54 20 43 41 53 54 20 28 20 4e 55 4c  E NOT CAST ( NUL
177c0 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b  L AS INTEGER ) +
177d0 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c   col1 IS NOT NUL
177e0 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 31 30 0d  L..----..10..10.
177f0 0a 34 37 0d 0a 34 37 0d 0a 39 39 0d 0a 39 39 0d  .47..47..99..99.
17800 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
17810 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
17820 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
17830 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 30 38 0d  wsort label-508.
17840 0a 53 45 4c 45 43 54 20 2b 20 2b 20 43 4f 55 4e  .SELECT + + COUN
17850 54 28 20 2b 20 2d 20 63 6f 6c 30 20 29 20 41 53  T( + - col0 ) AS
17860 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
17870 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33  AS cor0..----..3
17880 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
17890 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
178a0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
178b0 72 74 20 6c 61 62 65 6c 2d 35 30 38 0d 0a 53 45  rt label-508..SE
178c0 4c 45 43 54 20 2b 20 2b 20 43 4f 55 4e 54 20 28  LECT + + COUNT (
178d0 20 2b 20 2d 20 63 6f 6c 30 20 29 20 41 53 20 63   + - col0 ) AS c
178e0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
178f0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   cor0..----..3..
17900 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
17910 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
17920 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  x: ..query II ro
17930 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 30 39 0d  wsort label-509.
17940 0a 53 45 4c 45 43 54 20 2d 20 2b 20 43 4f 55 4e  .SELECT - + COUN
17950 54 28 20 2b 20 2b 20 35 20 29 2c 20 2d 20 37 32  T( + + 5 ), - 72
17960 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
17970 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
17980 33 0d 0a 2d 37 32 0d 0a 0d 0a 73 6b 69 70 69 66  3..-72....skipif
17990 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
179a0 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
179b0 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
179c0 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
179d0 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
179e0 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
179f0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
17a00 72 74 20 6c 61 62 65 6c 2d 35 30 39 0d 0a 53 45  rt label-509..SE
17a10 4c 45 43 54 20 2d 20 2b 20 43 4f 55 4e 54 20 28  LECT - + COUNT (
17a20 20 2b 20 2b 20 35 20 29 2c 20 2d 20 37 32 20 63   + + 5 ), - 72 c
17a30 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
17a40 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d   cor0..----..-3.
17a50 0a 2d 37 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  .-72....skipif p
17a60 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
17a70 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
17a80 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
17a90 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
17aa0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
17ab0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63  ..SELECT ALL + c
17ac0 6f 6c 31 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  ol1 col2 FROM ta
17ad0 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
17ae0 20 4e 4f 54 20 2b 20 63 6f 6c 30 20 42 45 54 57   NOT + col0 BETW
17af0 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 63 6f 6c  EEN NULL AND col
17b00 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 34 37 0d  1..----..14..47.
17b10 0a 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .5....onlyif mys
17b20 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
17b30 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  : aggregate synt
17b40 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
17b50 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
17b60 72 74 20 6c 61 62 65 6c 2d 35 31 31 0d 0a 53 45  rt label-511..SE
17b70 4c 45 43 54 20 41 4c 4c 20 43 41 53 54 28 20 43  LECT ALL CAST( C
17b80 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 53 49 47  OUNT( * ) AS SIG
17b90 4e 45 44 20 29 20 2a 20 2d 20 2b 20 39 33 20 46  NED ) * - + 93 F
17ba0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
17bb0 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 37 39 0d 0a 0d 0a  ..----..-279....
17bc0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
17bd0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
17be0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
17bf0 61 62 65 6c 2d 35 31 31 0d 0a 53 45 4c 45 43 54  abel-511..SELECT
17c00 20 41 4c 4c 20 43 41 53 54 20 28 20 43 4f 55 4e   ALL CAST ( COUN
17c10 54 20 28 20 2a 20 29 20 41 53 20 49 4e 54 45 47  T ( * ) AS INTEG
17c20 45 52 20 29 20 2a 20 2d 20 2b 20 39 33 20 46 52  ER ) * - + 93 FR
17c30 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
17c40 0a 2d 2d 2d 2d 0d 0a 2d 32 37 39 0d 0a 0d 0a 71  .----..-279....q
17c50 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
17c60 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
17c70 2b 20 41 56 47 20 28 20 39 37 20 29 20 46 52 4f  + AVG ( 97 ) FRO
17c80 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
17c90 48 45 52 45 20 63 6f 6c 30 20 2d 20 2d 20 2b 20  HERE col0 - - + 
17ca0 37 31 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e  71 NOT BETWEEN N
17cb0 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d  ULL AND NULL..--
17cc0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79  --..NULL....only
17cd0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
17ce0 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74  syntax: aggregat
17cf0 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  e syntax: SIGNED
17d00 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
17d10 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
17d20 31 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  13..SELECT ALL +
17d30 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2d 20   COUNT( * ) * - 
17d40 53 55 4d 28 20 41 4c 4c 20 43 41 53 54 28 20 4e  SUM( ALL CAST( N
17d50 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
17d60 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
17d70 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
17d80 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  -..NULL....skipi
17d90 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
17da0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
17db0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
17dc0 35 31 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  513..SELECT ALL 
17dd0 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20  + COUNT ( * ) * 
17de0 2d 20 53 55 4d 20 28 20 41 4c 4c 20 43 41 53 54  - SUM ( ALL CAST
17df0 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
17e00 45 52 20 29 20 29 20 41 53 20 63 6f 6c 32 20 46  ER ) ) AS col2 F
17e10 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
17e20 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
17e30 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
17e40 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2a 20 28  .SELECT col0 * (
17e50 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 31 20   col1 ) AS col1 
17e60 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
17e70 0a 34 32 35 0d 0a 34 32 37 37 0d 0a 37 31 34 0d  .425..4277..714.
17e80 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
17e90 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
17ea0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
17eb0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 31 35 0d  wsort label-515.
17ec0 0a 53 45 4c 45 43 54 20 4d 41 58 28 20 44 49 53  .SELECT MAX( DIS
17ed0 54 49 4e 43 54 20 2b 20 35 35 20 29 20 2a 20 32  TINCT + 55 ) * 2
17ee0 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  0 AS col2 FROM t
17ef0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 31 30 30 0d  ab1..----..1100.
17f00 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
17f10 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
17f20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
17f30 74 20 6c 61 62 65 6c 2d 35 31 35 0d 0a 53 45 4c  t label-515..SEL
17f40 45 43 54 20 4d 41 58 20 28 20 44 49 53 54 49 4e  ECT MAX ( DISTIN
17f50 43 54 20 2b 20 35 35 20 29 20 2a 20 32 30 20 41  CT + 55 ) * 20 A
17f60 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
17f70 0d 0a 2d 2d 2d 2d 0d 0a 31 31 30 30 0d 0a 0d 0a  ..----..1100....
17f80 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
17f90 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
17fa0 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
17fb0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
17fc0 2d 35 31 36 0d 0a 53 45 4c 45 43 54 20 44 49 53  -516..SELECT DIS
17fd0 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 2b 20 2b  TINCT - col2 + +
17fe0 20 2d 20 63 6f 6c 30 20 2b 20 63 6f 6c 30 20 2a   - col0 + col0 *
17ff0 20 2b 20 35 30 20 2d 20 43 41 53 54 28 20 4e 55   + 50 - CAST( NU
18000 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 41  LL AS SIGNED ) A
18010 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
18020 20 57 48 45 52 45 20 2d 20 38 38 20 3e 3d 20 2b   WHERE - 88 >= +
18030 20 2b 20 31 34 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73   + 14..----....s
18040 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
18050 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
18060 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
18070 62 65 6c 2d 35 31 36 0d 0a 53 45 4c 45 43 54 20  bel-516..SELECT 
18080 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20  DISTINCT - col2 
18090 2b 20 2b 20 2d 20 63 6f 6c 30 20 2b 20 63 6f 6c  + + - col0 + col
180a0 30 20 2a 20 2b 20 35 30 20 2d 20 43 41 53 54 20  0 * + 50 - CAST 
180b0 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
180c0 52 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  R ) AS col1 FROM
180d0 20 74 61 62 32 20 57 48 45 52 45 20 2d 20 38 38   tab2 WHERE - 88
180e0 20 3e 3d 20 2b 20 2b 20 31 34 0d 0a 2d 2d 2d 2d   >= + + 14..----
180f0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
18100 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
18110 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
18120 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
18130 61 62 65 6c 2d 35 31 37 0d 0a 53 45 4c 45 43 54  abel-517..SELECT
18140 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 2a   DISTINCT col0 *
18150 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   - CAST( NULL AS
18160 20 53 49 47 4e 45 44 20 29 20 2a 20 2b 20 43 41   SIGNED ) * + CA
18170 53 54 28 20 63 6f 6c 30 20 41 53 20 53 49 47 4e  ST( col0 AS SIGN
18180 45 44 20 29 20 2f 20 2d 20 63 6f 6c 30 20 46 52  ED ) / - col0 FR
18190 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab0..----..N
181a0 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
181b0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
181c0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
181d0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 31 37 0d  wsort label-517.
181e0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
181f0 20 63 6f 6c 30 20 2a 20 2d 20 43 41 53 54 20 28   col0 * - CAST (
18200 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
18210 20 29 20 2a 20 2b 20 43 41 53 54 20 28 20 63 6f   ) * + CAST ( co
18220 6c 30 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  l0 AS INTEGER ) 
18230 2f 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  / - col0 FROM ta
18240 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b0..----..NULL..
18250 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
18260 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
18270 20 63 6f 6c 30 20 2b 20 63 6f 6c 30 20 41 53 20   col0 + col0 AS 
18280 63 6f 6c 31 2c 20 37 31 20 41 53 20 63 6f 6c 30  col1, 71 AS col0
18290 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
182a0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 38 0d 0a 37  r0..----..128..7
182b0 31 0d 0a 31 35 30 0d 0a 37 31 0d 0a 39 32 0d 0a  1..150..71..92..
182c0 37 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  71....onlyif mys
182d0 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
182e0 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
182f0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
18300 72 74 20 6c 61 62 65 6c 2d 35 31 39 0d 0a 53 45  rt label-519..SE
18310 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
18320 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
18330 30 20 57 48 45 52 45 20 28 20 2d 20 2b 20 63 6f  0 WHERE ( - + co
18340 6c 30 20 29 20 42 45 54 57 45 45 4e 20 2b 20 43  l0 ) BETWEEN + C
18350 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
18360 4e 45 44 20 29 20 41 4e 44 20 4e 55 4c 4c 0d 0a  NED ) AND NULL..
18370 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ----....skipif m
18380 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
18390 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49  tible..query III
183a0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
183b0 31 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  19..SELECT DISTI
183c0 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  NCT * FROM tab1 
183d0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20  AS cor0 WHERE ( 
183e0 2d 20 2b 20 63 6f 6c 30 20 29 20 42 45 54 57 45  - + col0 ) BETWE
183f0 45 4e 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c  EN + CAST ( NULL
18400 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 4e   AS INTEGER ) AN
18410 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  D NULL..----....
18420 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
18430 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
18440 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
18450 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
18460 2d 35 32 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -520..SELECT ALL
18470 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
18480 49 47 4e 45 44 20 29 20 2a 20 35 39 20 2a 20 2d  IGNED ) * 59 * -
18490 20 28 20 2b 20 63 6f 6c 31 20 29 20 2d 20 2d 20   ( + col1 ) - - 
184a0 63 6f 6c 31 20 2a 20 2b 20 2b 20 63 6f 6c 30 20  col1 * + + col0 
184b0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
184c0 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
184d0 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
184e0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
184f0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
18500 6f 72 74 20 6c 61 62 65 6c 2d 35 32 30 0d 0a 53  ort label-520..S
18510 45 4c 45 43 54 20 41 4c 4c 20 43 41 53 54 20 28  ELECT ALL CAST (
18520 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
18530 20 29 20 2a 20 35 39 20 2a 20 2d 20 28 20 2b 20   ) * 59 * - ( + 
18540 63 6f 6c 31 20 29 20 2d 20 2d 20 63 6f 6c 31 20  col1 ) - - col1 
18550 2a 20 2b 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20  * + + col0 FROM 
18560 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab0..----..NULL
18570 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
18580 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
18590 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
185a0 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
185b0 45 52 45 20 28 20 4e 55 4c 4c 20 3c 20 2b 20 63  ERE ( NULL < + c
185c0 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71  ol1 )..----....q
185d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
185e0 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2b 20  SELECT + col2 + 
185f0 2b 20 37 31 20 46 52 4f 4d 20 74 61 62 30 20 41  + 71 FROM tab0 A
18600 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e  S cor0 WHERE ( N
18610 4f 54 20 28 20 28 20 4e 55 4c 4c 20 29 20 4e 4f  OT ( ( NULL ) NO
18620 54 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41  T BETWEEN NULL A
18630 4e 44 20 2d 20 31 35 20 29 20 29 0d 0a 2d 2d 2d  ND - 15 ) )..---
18640 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
18650 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
18660 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d   DECIMAL type: .
18670 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
18680 20 6c 61 62 65 6c 2d 35 32 33 0d 0a 53 45 4c 45   label-523..SELE
18690 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20  CT DISTINCT - - 
186a0 36 31 20 2b 20 2d 20 43 41 53 54 28 20 4e 55 4c  61 + - CAST( NUL
186b0 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20 46  L AS DECIMAL ) F
186c0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
186d0 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
186e0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
186f0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
18700 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
18710 61 62 65 6c 2d 35 32 33 0d 0a 53 45 4c 45 43 54  abel-523..SELECT
18720 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 36 31   DISTINCT - - 61
18730 20 2b 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c   + - CAST ( NULL
18740 20 41 53 20 52 45 41 4c 20 29 20 46 52 4f 4d 20   AS REAL ) FROM 
18750 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
18760 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72  --..NULL....quer
18770 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
18780 45 43 54 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  ECT col2 FROM ta
18790 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
187a0 20 28 20 2d 20 63 6f 6c 31 20 49 53 20 4e 55 4c   ( - col1 IS NUL
187b0 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  L )..----....que
187c0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
187d0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
187e0 6c 31 20 2b 20 2d 20 2b 20 38 20 2d 20 2d 20 63  l1 + - + 8 - - c
187f0 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol1 AS col0 FROM
18800 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
18810 2d 2d 2d 0d 0a 31 32 36 0d 0a 31 34 36 0d 0a 39  ---..126..146..9
18820 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  4....onlyif mysq
18830 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
18840 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
18850 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
18860 6c 61 62 65 6c 2d 35 32 36 0d 0a 53 45 4c 45 43  label-526..SELEC
18870 54 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  T CAST( NULL AS 
18880 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61  SIGNED ) FROM ta
18890 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
188a0 20 4e 55 4c 4c 20 3d 20 28 20 4e 55 4c 4c 20 29   NULL = ( NULL )
188b0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
188c0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
188d0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
188e0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
188f0 32 36 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 20  26..SELECT CAST 
18900 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
18910 52 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  R ) FROM tab0 AS
18920 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c   cor0 WHERE NULL
18930 20 3d 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d   = ( NULL )..---
18940 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
18950 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 32  sort..SELECT + 2
18960 36 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  6 - col2 FROM ta
18970 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b2 cor0..----..-
18980 31 34 0d 0a 2d 33 32 0d 0a 33 0d 0a 0d 0a 71 75  14..-32..3....qu
18990 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
189a0 53 45 4c 45 43 54 20 63 6f 6c 31 20 2d 20 2b 20  SELECT col1 - + 
189b0 63 6f 6c 32 20 41 53 20 63 6f 6c 31 2c 20 63 6f  col2 AS col1, co
189c0 6c 30 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20 63  l0 + + col0 AS c
189d0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol2 FROM tab1..-
189e0 2d 2d 2d 0d 0a 2d 32 31 0d 0a 31 38 32 0d 0a 2d  ---..-21..182..-
189f0 35 34 0d 0a 31 37 30 0d 0a 2d 38 32 0d 0a 31 30  54..170..-82..10
18a00 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  2....onlyif mysq
18a10 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
18a20 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
18a30 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 32  rowsort label-52
18a40 39 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e  9..SELECT - COUN
18a50 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46  T( * ) AS col1 F
18a60 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 63  ROM tab2 WHERE c
18a70 6f 6c 32 20 2a 20 2b 20 63 6f 6c 32 20 2a 20 2b  ol2 * + col2 * +
18a80 20 39 31 20 2b 20 2b 20 2d 20 63 6f 6c 31 20 2b   91 + + - col1 +
18a90 20 2d 20 34 37 20 2d 20 31 39 20 42 45 54 57 45   - 47 - 19 BETWE
18aa0 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c  EN NULL AND NULL
18ab0 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69  ..----..0....ski
18ac0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
18ad0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
18ae0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
18af0 6c 2d 35 32 39 0d 0a 53 45 4c 45 43 54 20 2d 20  l-529..SELECT - 
18b00 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63  COUNT ( * ) AS c
18b10 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 57 48  ol1 FROM tab2 WH
18b20 45 52 45 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c  ERE col2 * + col
18b30 32 20 2a 20 2b 20 39 31 20 2b 20 2b 20 2d 20 63  2 * + 91 + + - c
18b40 6f 6c 31 20 2b 20 2d 20 34 37 20 2d 20 31 39 20  ol1 + - 47 - 19 
18b50 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44  BETWEEN NULL AND
18b60 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   NULL..----..0..
18b70 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
18b80 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
18b90 43 54 20 2b 20 37 38 20 2b 20 2d 20 2d 20 63 6f  CT + 78 + - - co
18ba0 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l0 FROM tab1..--
18bb0 2d 2d 0d 0a 31 32 39 0d 0a 31 36 33 0d 0a 31 36  --..129..163..16
18bc0 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  9....skipif post
18bd0 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
18be0 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
18bf0 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
18c00 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
18c10 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
18c20 45 4c 45 43 54 20 41 4c 4c 20 2d 20 34 30 20 2d  ELECT ALL - 40 -
18c30 20 2d 20 2d 20 63 6f 6c 32 20 63 6f 6c 32 20 46   - - col2 col2 F
18c40 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
18c50 2d 36 33 0d 0a 2d 38 30 0d 0a 2d 39 38 0d 0a 0d  -63..-80..-98...
18c60 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
18c70 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
18c80 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
18c90 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
18ca0 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
18cb0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
18cc0 43 54 20 35 32 20 2a 20 2d 20 2b 20 28 20 63 6f  CT 52 * - + ( co
18cd0 6c 30 20 29 20 2b 20 63 6f 6c 31 20 41 53 20 63  l0 ) + col1 AS c
18ce0 6f 6c 31 2c 20 63 6f 6c 32 20 63 6f 6c 30 20 46  ol1, col2 col0 F
18cf0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
18d00 2d 34 35 30 33 0d 0a 31 30 0d 0a 2d 35 30 34 33  -4503..10..-5043
18d10 0d 0a 39 39 0d 0a 2d 36 39 39 0d 0a 34 37 0d 0a  ..99..-699..47..
18d20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
18d30 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
18d40 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 2b 20  OM tab0 WHERE + 
18d50 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 31 20 49 53  col1 * - col1 IS
18d60 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
18d70 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
18d80 67 20 74 6f 20 63 34 62 34 32 37 36 35 64 66 66  g to c4b42765dff
18d90 39 34 65 61 61 61 34 36 30 34 30 65 35 33 37 66  94eaaa46040e537f
18da0 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72 79 20 49  b43b7....query I
18db0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
18dc0 20 44 49 53 54 49 4e 43 54 20 39 35 20 2d 20 2d   DISTINCT 95 - -
18dd0 20 28 20 2b 20 63 6f 6c 31 20 29 20 2a 20 2d 20   ( + col1 ) * - 
18de0 2b 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 30 20  + col1 + + col0 
18df0 2b 20 63 6f 6c 31 20 2b 20 2b 20 28 20 2d 20 2b  + col1 + + ( - +
18e00 20 37 39 20 29 20 46 52 4f 4d 20 74 61 62 31 0d   79 ) FROM tab1.
18e10 0a 2d 2d 2d 2d 0d 0a 2d 31 31 35 0d 0a 2d 32 30  .----..-115..-20
18e20 35 35 0d 0a 38 31 0d 0a 0d 0a 6f 6e 6c 79 69 66  55..81....onlyif
18e30 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
18e40 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
18e50 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
18e60 65 6c 2d 35 33 35 0d 0a 53 45 4c 45 43 54 20 41  el-535..SELECT A
18e70 4c 4c 20 4d 41 58 28 20 44 49 53 54 49 4e 43 54  LL MAX( DISTINCT
18e80 20 2b 20 2d 20 63 6f 6c 31 20 29 20 63 6f 6c 32   + - col1 ) col2
18e90 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
18ea0 0d 0a 2d 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..-1....skipif m
18eb0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
18ec0 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
18ed0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
18ee0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
18ef0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
18f00 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
18f10 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
18f20 6c 61 62 65 6c 2d 35 33 35 0d 0a 53 45 4c 45 43  label-535..SELEC
18f30 54 20 41 4c 4c 20 4d 41 58 20 28 20 44 49 53 54  T ALL MAX ( DIST
18f40 49 4e 43 54 20 2b 20 2d 20 63 6f 6c 31 20 29 20  INCT + - col1 ) 
18f50 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
18f60 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 71 75 65 72  ----..-1....quer
18f70 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
18f80 45 43 54 20 44 49 53 54 49 4e 43 54 20 28 20 2b  ECT DISTINCT ( +
18f90 20 2d 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c   - col0 ) AS col
18fa0 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
18fb0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a  or0..----..-46..
18fc0 2d 36 34 0d 0a 2d 37 35 0d 0a 0d 0a 71 75 65 72  -64..-75....quer
18fd0 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
18fe0 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 2c  LECT ALL + col1,
18ff0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
19000 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
19010 54 20 2d 20 63 6f 6c 30 20 3e 20 2d 20 63 6f 6c  T - col0 > - col
19020 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 34 36 0d  0..----..51..46.
19030 0a 36 37 0d 0a 37 35 0d 0a 37 37 0d 0a 36 34 0d  .67..75..77..64.
19040 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
19050 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
19060 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
19070 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
19080 62 65 6c 2d 35 33 38 0d 0a 53 45 4c 45 43 54 20  bel-538..SELECT 
19090 2b 20 32 33 20 44 49 56 20 2d 20 39 35 20 41 53  + 23 DIV - 95 AS
190a0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
190b0 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
190c0 49 4e 20 74 61 62 32 20 41 53 20 63 6f 72 31 0d  IN tab2 AS cor1.
190d0 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
190e0 68 61 73 68 69 6e 67 20 74 6f 20 38 62 37 35 31  hashing to 8b751
190f0 33 36 62 32 62 35 31 63 37 37 33 34 35 63 30 33  36b2b51c77345c03
19100 38 30 34 65 63 31 63 64 61 35 63 0d 0a 0d 0a 73  804ec1cda5c....s
19110 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
19120 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
19130 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
19140 62 65 6c 2d 35 33 38 0d 0a 53 45 4c 45 43 54 20  bel-538..SELECT 
19150 2b 20 32 33 20 2f 20 2d 20 39 35 20 41 53 20 63  + 23 / - 95 AS c
19160 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
19170 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
19180 20 74 61 62 32 20 41 53 20 63 6f 72 31 0d 0a 2d   tab2 AS cor1..-
19190 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
191a0 73 68 69 6e 67 20 74 6f 20 38 62 37 35 31 33 36  shing to 8b75136
191b0 62 32 62 35 31 63 37 37 33 34 35 63 30 33 38 30  b2b51c77345c0380
191c0 34 65 63 31 63 64 61 35 63 0d 0a 0d 0a 71 75 65  4ec1cda5c....que
191d0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
191e0 45 4c 45 43 54 20 2b 20 2b 20 63 6f 6c 31 20 41  ELECT + + col1 A
191f0 53 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c 31 20 41  S col1, + col1 A
19200 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
19210 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
19220 31 0d 0a 31 0d 0a 32 31 0d 0a 32 31 0d 0a 38 31  1..1..21..21..81
19230 0d 0a 38 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..81....onlyif m
19240 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
19250 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
19260 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
19270 72 74 20 6c 61 62 65 6c 2d 35 34 30 0d 0a 53 45  rt label-540..SE
19280 4c 45 43 54 20 2b 20 43 41 53 54 28 20 2b 20 2d  LECT + CAST( + -
19290 20 63 6f 6c 32 20 41 53 20 53 49 47 4e 45 44 20   col2 AS SIGNED 
192a0 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
192b0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
192c0 2d 0d 0a 2d 31 30 0d 0a 2d 34 37 0d 0a 2d 39 39  -..-10..-47..-99
192d0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
192e0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
192f0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
19300 72 74 20 6c 61 62 65 6c 2d 35 34 30 0d 0a 53 45  rt label-540..SE
19310 4c 45 43 54 20 2b 20 43 41 53 54 20 28 20 2b 20  LECT + CAST ( + 
19320 2d 20 63 6f 6c 32 20 41 53 20 49 4e 54 45 47 45  - col2 AS INTEGE
19330 52 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  R ) AS col2 FROM
19340 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
19350 2d 2d 2d 0d 0a 2d 31 30 0d 0a 2d 34 37 0d 0a 2d  ---..-10..-47..-
19360 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  99....onlyif mys
19370 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
19380 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
19390 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
193a0 34 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  41..SELECT DISTI
193b0 4e 43 54 20 2d 20 4d 49 4e 28 20 2b 20 2b 20 63  NCT - MIN( + + c
193c0 6f 6c 32 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ol2 ) AS col0 FR
193d0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
193e0 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a 0d 0a 73 6b  .----..-59....sk
193f0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
19400 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
19410 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
19420 65 6c 2d 35 34 31 0d 0a 53 45 4c 45 43 54 20 44  el-541..SELECT D
19430 49 53 54 49 4e 43 54 20 2d 20 4d 49 4e 20 28 20  ISTINCT - MIN ( 
19440 2b 20 2b 20 63 6f 6c 32 20 29 20 41 53 20 63 6f  + + col2 ) AS co
19450 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
19460 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d  cor0..----..-59.
19470 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
19480 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
19490 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
194a0 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
194b0 28 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 33 34 20  ( - col2 * - 34 
194c0 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  ) IS NOT NULL..-
194d0 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
194e0 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31  shing to c6c0a41
194f0 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31  11b36d04dbc811a1
19500 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65  1e4d54cad....que
19510 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
19520 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
19530 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45 52  M tab0 cor0 WHER
19540 45 20 4e 4f 54 20 2b 20 28 20 63 6f 6c 31 20 29  E NOT + ( col1 )
19550 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
19560 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
19570 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
19580 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
19590 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
195a0 34 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  44..SELECT ALL -
195b0 20 38 32 20 2a 20 2b 20 43 4f 55 4e 54 28 20 2a   82 * + COUNT( *
195c0 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
195d0 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
195e0 2d 2d 0d 0a 2d 32 34 36 0d 0a 0d 0a 73 6b 69 70  --..-246....skip
195f0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
19600 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
19610 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
19620 2d 35 34 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -544..SELECT ALL
19630 20 2d 20 38 32 20 2a 20 2b 20 43 4f 55 4e 54 20   - 82 * + COUNT 
19640 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ( * ) AS col0 FR
19650 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
19660 0a 2d 2d 2d 2d 0d 0a 2d 32 34 36 0d 0a 0d 0a 6f  .----..-246....o
19670 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
19680 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
19690 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
196a0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
196b0 35 34 35 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31  545..SELECT col1
196c0 20 2b 20 2b 20 2b 20 43 41 53 54 28 20 2d 20 39   + + + CAST( - 9
196d0 37 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20  7 AS SIGNED ) + 
196e0 2d 20 2d 20 63 6f 6c 30 20 63 6f 6c 32 20 46 52  - - col0 col2 FR
196f0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30  OM tab2..----..0
19700 0d 0a 34 34 0d 0a 34 35 0d 0a 0d 0a 73 6b 69 70  ..44..45....skip
19710 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
19720 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
19730 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
19740 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
19750 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
19760 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
19770 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
19780 6f 72 74 20 6c 61 62 65 6c 2d 35 34 35 0d 0a 53  ort label-545..S
19790 45 4c 45 43 54 20 63 6f 6c 31 20 2b 20 2b 20 2b  ELECT col1 + + +
197a0 20 43 41 53 54 20 28 20 2d 20 39 37 20 41 53 20   CAST ( - 97 AS 
197b0 49 4e 54 45 47 45 52 20 29 20 2b 20 2d 20 2d 20  INTEGER ) + - - 
197c0 63 6f 6c 30 20 63 6f 6c 32 20 46 52 4f 4d 20 74  col0 col2 FROM t
197d0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 34 34  ab2..----..0..44
197e0 0d 0a 34 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..45....onlyif m
197f0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
19800 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
19810 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
19820 2d 35 34 36 0d 0a 53 45 4c 45 43 54 20 44 49 53  -546..SELECT DIS
19830 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a  TINCT - COUNT( *
19840 20 29 20 2a 20 2d 20 2d 20 38 31 20 46 52 4f 4d   ) * - - 81 FROM
19850 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 34   tab2..----..-24
19860 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
19870 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
19880 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
19890 6f 72 74 20 6c 61 62 65 6c 2d 35 34 36 0d 0a 53  ort label-546..S
198a0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
198b0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d   COUNT ( * ) * -
198c0 20 2d 20 38 31 20 46 52 4f 4d 20 74 61 62 32 0d   - 81 FROM tab2.
198d0 0a 2d 2d 2d 2d 0d 0a 2d 32 34 33 0d 0a 0d 0a 71  .----..-243....q
198e0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
198f0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
19900 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48  T * FROM tab0 WH
19910 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20 2a 20 2d  ERE NOT col1 * -
19920 20 34 36 20 3c 3e 20 2d 20 2b 20 32 39 20 2a 20   46 <> - + 29 * 
19930 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  - col1..----....
19940 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
19950 0a 53 45 4c 45 43 54 20 2d 20 28 20 2d 20 32 37  .SELECT - ( - 27
19960 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
19970 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 37 0d 0a  tab1..----..27..
19980 32 37 0d 0a 32 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  27..27....onlyif
19990 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
199a0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
199b0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
199c0 65 6c 2d 35 34 39 0d 0a 53 45 4c 45 43 54 20 4d  el-549..SELECT M
199d0 49 4e 28 20 44 49 53 54 49 4e 43 54 20 2d 20 36  IN( DISTINCT - 6
199e0 39 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  9 ) FROM tab1..-
199f0 2d 2d 2d 0d 0a 2d 36 39 0d 0a 0d 0a 73 6b 69 70  ---..-69....skip
19a00 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
19a10 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
19a20 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
19a30 2d 35 34 39 0d 0a 53 45 4c 45 43 54 20 4d 49 4e  -549..SELECT MIN
19a40 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 36 39   ( DISTINCT - 69
19a50 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d   ) FROM tab1..--
19a60 2d 2d 0d 0a 2d 36 39 0d 0a 0d 0a 6f 6e 6c 79 69  --..-69....onlyi
19a70 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
19a80 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
19a90 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
19aa0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 35 30 0d  wsort label-550.
19ab0 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 44  .SELECT - col1 D
19ac0 49 56 20 2d 20 2d 20 63 6f 6c 30 20 63 6f 6c 30  IV - - col0 col0
19ad0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
19ae0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 31  r0..----..-1..-1
19af0 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
19b00 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
19b10 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
19b20 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
19b30 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
19b40 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
19b50 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
19b60 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
19b70 61 62 65 6c 2d 35 35 30 0d 0a 53 45 4c 45 43 54  abel-550..SELECT
19b80 20 2d 20 63 6f 6c 31 20 2f 20 2d 20 2d 20 63 6f   - col1 / - - co
19b90 6c 30 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  l0 col0 FROM tab
19ba0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
19bb0 0a 2d 31 0d 0a 2d 31 0d 0a 30 0d 0a 0d 0a 71 75  .-1..-1..0....qu
19bc0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
19bd0 45 4c 45 43 54 20 41 4c 4c 20 2d 20 41 56 47 20  ELECT ALL - AVG 
19be0 28 20 2b 20 2b 20 63 6f 6c 32 20 29 20 46 52 4f  ( + + col2 ) FRO
19bf0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
19c00 48 45 52 45 20 4e 4f 54 20 33 32 20 3c 3e 20 4e  HERE NOT 32 <> N
19c10 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ULL..----..NULL.
19c20 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
19c30 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
19c40 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
19c50 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
19c60 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
19c70 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
19c80 4c 45 43 54 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c  LECT col1, + col
19c90 31 20 2b 20 63 6f 6c 31 20 63 6f 6c 30 20 46 52  1 + col1 col0 FR
19ca0 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d  OM tab2 cor0..--
19cb0 2d 2d 0d 0a 35 31 0d 0a 31 30 32 0d 0a 36 37 0d  --..51..102..67.
19cc0 0a 31 33 34 0d 0a 37 37 0d 0a 31 35 34 0d 0a 0d  .134..77..154...
19cd0 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
19ce0 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
19cf0 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
19d00 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
19d10 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
19d20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
19d30 54 20 41 4c 4c 20 2d 20 33 30 20 63 6f 6c 32 20  T ALL - 30 col2 
19d40 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
19d50 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 30 0d 0a 2d 33  0..----..-30..-3
19d60 30 0d 0a 2d 33 30 0d 0a 0d 0a 71 75 65 72 79 20  0..-30....query 
19d70 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
19d80 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
19d90 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
19da0 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 3d  E NOT ( NULL ) =
19db0 20 2b 20 32 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   + 22..----....o
19dc0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
19dd0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
19de0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
19df0 74 20 6c 61 62 65 6c 2d 35 35 35 0d 0a 53 45 4c  t label-555..SEL
19e00 45 43 54 20 34 35 20 2b 20 2d 20 2b 20 28 20 2b  ECT 45 + - + ( +
19e10 20 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 41 53   COUNT( * ) ) AS
19e20 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
19e30 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34  AS cor0..----..4
19e40 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  2....skipif mysq
19e50 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
19e60 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
19e70 6f 72 74 20 6c 61 62 65 6c 2d 35 35 35 0d 0a 53  ort label-555..S
19e80 45 4c 45 43 54 20 34 35 20 2b 20 2d 20 2b 20 28  ELECT 45 + - + (
19e90 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29   + COUNT ( * ) )
19ea0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
19eb0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
19ec0 0d 0a 34 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..42....query I 
19ed0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
19ee0 41 4c 4c 20 63 6f 6c 30 20 2b 20 2b 20 2b 20 37  ALL col0 + + + 7
19ef0 33 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  3 FROM tab1 AS c
19f00 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 34 0d 0a  or0..----..124..
19f10 31 35 38 0d 0a 31 36 34 0d 0a 0d 0a 71 75 65 72  158..164....quer
19f20 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
19f30 45 43 54 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 2d  ECT - col1 + - -
19f40 20 63 6f 6c 32 20 2a 20 63 6f 6c 30 20 46 52 4f   col2 * col0 FRO
19f50 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
19f60 2d 2d 2d 2d 0d 0a 34 38 38 32 0d 0a 35 30 31 30  ----..4882..5010
19f70 0d 0a 36 31 34 31 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..6141....onlyif
19f80 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
19f90 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20  ntax: aggregate 
19fa0 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
19fb0 79 70 65 3a 20 44 49 56 20 66 6f 72 20 69 6e 74  ype: DIV for int
19fc0 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
19fd0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
19fe0 20 6c 61 62 65 6c 2d 35 35 38 0d 0a 53 45 4c 45   label-558..SELE
19ff0 43 54 20 2d 20 2d 20 39 37 20 44 49 56 20 43 4f  CT - - 97 DIV CO
1a000 55 4e 54 28 20 2a 20 29 20 2b 20 2d 20 2d 20 31  UNT( * ) + - - 1
1a010 32 20 2a 20 2d 20 2b 20 43 41 53 54 28 20 31 31  2 * - + CAST( 11
1a020 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2d   AS SIGNED ) + -
1a030 20 31 33 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   13 AS col1 FROM
1a040 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
1a050 2d 2d 2d 0d 0a 2d 31 31 33 0d 0a 0d 0a 73 6b 69  ---..-113....ski
1a060 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1a070 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1a080 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1a090 6c 2d 35 35 38 0d 0a 53 45 4c 45 43 54 20 2d 20  l-558..SELECT - 
1a0a0 2d 20 39 37 20 2f 20 43 4f 55 4e 54 20 28 20 2a  - 97 / COUNT ( *
1a0b0 20 29 20 2b 20 2d 20 2d 20 31 32 20 2a 20 2d 20   ) + - - 12 * - 
1a0c0 2b 20 43 41 53 54 20 28 20 31 31 20 41 53 20 49  + CAST ( 11 AS I
1a0d0 4e 54 45 47 45 52 20 29 20 2b 20 2d 20 31 33 20  NTEGER ) + - 13 
1a0e0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
1a0f0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
1a100 0a 2d 31 31 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .-113....onlyif 
1a110 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
1a120 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
1a130 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
1a140 73 6f 72 74 20 6c 61 62 65 6c 2d 35 35 39 0d 0a  sort label-559..
1a150 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20  SELECT ALL col1 
1a160 2b 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31  + + col0 AS col1
1a170 2c 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 43 41 53  , + col0 * - CAS
1a180 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
1a190 44 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  D ) FROM tab0 AS
1a1a0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 38   cor0..----..108
1a1b0 0d 0a 4e 55 4c 4c 0d 0a 39 36 0d 0a 4e 55 4c 4c  ..NULL..96..NULL
1a1c0 0d 0a 39 38 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  ..98..NULL....sk
1a1d0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1a1e0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1a1f0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
1a200 62 65 6c 2d 35 35 39 0d 0a 53 45 4c 45 43 54 20  bel-559..SELECT 
1a210 41 4c 4c 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c  ALL col1 + + col
1a220 30 20 41 53 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c  0 AS col1, + col
1a230 30 20 2a 20 2d 20 43 41 53 54 20 28 20 4e 55 4c  0 * - CAST ( NUL
1a240 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 46  L AS INTEGER ) F
1a250 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
1a260 0d 0a 2d 2d 2d 2d 0d 0a 31 30 38 0d 0a 4e 55 4c  ..----..108..NUL
1a270 4c 0d 0a 39 36 0d 0a 4e 55 4c 4c 0d 0a 39 38 0d  L..96..NULL..98.
1a280 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
1a290 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1a2a0 20 44 49 53 54 49 4e 43 54 20 2b 20 34 30 20 2a   DISTINCT + 40 *
1a2b0 20 2b 20 2b 20 31 30 20 2d 20 31 38 20 41 53 20   + + 10 - 18 AS 
1a2c0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
1a2d0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 38  S cor0..----..38
1a2e0 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  2....onlyif mysq
1a2f0 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
1a300 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
1a310 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1a320 6c 61 62 65 6c 2d 35 36 31 0d 0a 53 45 4c 45 43  label-561..SELEC
1a330 54 20 2b 20 2b 20 63 6f 6c 30 20 44 49 56 20 2d  T + + col0 DIV -
1a340 20 31 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53   10 FROM tab1 AS
1a350 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 0d   cor0..----..-5.
1a360 0a 2d 38 0d 0a 2d 39 0d 0a 0d 0a 73 6b 69 70 69  .-8..-9....skipi
1a370 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1a380 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
1a390 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1a3a0 35 36 31 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20  561..SELECT + + 
1a3b0 63 6f 6c 30 20 2f 20 2d 20 31 30 20 46 52 4f 4d  col0 / - 10 FROM
1a3c0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
1a3d0 2d 2d 2d 0d 0a 2d 35 0d 0a 2d 38 0d 0a 2d 39 0d  ---..-5..-8..-9.
1a3e0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1a3f0 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
1a400 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
1a410 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
1a420 6c 61 62 65 6c 2d 35 36 32 0d 0a 53 45 4c 45 43  label-562..SELEC
1a430 54 20 44 49 53 54 49 4e 43 54 20 2d 20 37 39 20  T DISTINCT - 79 
1a440 2b 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 34 34 20  + - col0 + - 44 
1a450 41 53 20 63 6f 6c 31 2c 20 63 6f 6c 30 20 44 49  AS col1, col0 DI
1a460 56 20 2b 20 63 6f 6c 31 20 2b 20 63 6f 6c 32 20  V + col1 + col2 
1a470 41 53 20 63 6f 6c 32 2c 20 2b 20 28 20 2d 20 33  AS col2, + ( - 3
1a480 33 20 29 20 44 49 56 20 35 32 20 44 49 56 20 2b  3 ) DIV 52 DIV +
1a490 20 37 36 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 63   76 + + col1 + c
1a4a0 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol2 AS col2 FROM
1a4b0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   tab2..----..9 v
1a4c0 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
1a4d0 20 61 37 38 33 39 39 32 31 30 30 39 66 34 34 32   a7839921009f442
1a4e0 33 32 35 62 32 36 39 36 63 62 37 37 32 64 64 30  325b2696cb772dd0
1a4f0 62 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  b....skipif mysq
1a500 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1a510 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  le..query III ro
1a520 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 36 32 0d  wsort label-562.
1a530 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1a540 20 2d 20 37 39 20 2b 20 2d 20 63 6f 6c 30 20 2b   - 79 + - col0 +
1a550 20 2d 20 34 34 20 41 53 20 63 6f 6c 31 2c 20 63   - 44 AS col1, c
1a560 6f 6c 30 20 2f 20 2b 20 63 6f 6c 31 20 2b 20 63  ol0 / + col1 + c
1a570 6f 6c 32 20 41 53 20 63 6f 6c 32 2c 20 2b 20 28  ol2 AS col2, + (
1a580 20 2d 20 33 33 20 29 20 2f 20 35 32 20 2f 20 2b   - 33 ) / 52 / +
1a590 20 37 36 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 63   76 + + col1 + c
1a5a0 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol2 AS col2 FROM
1a5b0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   tab2..----..9 v
1a5c0 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
1a5d0 20 61 37 38 33 39 39 32 31 30 30 39 66 34 34 32   a7839921009f442
1a5e0 33 32 35 62 32 36 39 36 63 62 37 37 32 64 64 30  325b2696cb772dd0
1a5f0 62 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  b....onlyif mysq
1a600 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
1a610 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
1a620 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
1a630 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1a640 74 20 6c 61 62 65 6c 2d 35 36 33 0d 0a 53 45 4c  t label-563..SEL
1a650 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43  ECT DISTINCT - C
1a660 41 53 54 28 20 2d 20 43 4f 55 4e 54 28 20 2a 20  AST( - COUNT( * 
1a670 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53  ) AS SIGNED ) AS
1a680 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
1a690 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70  .----..3....skip
1a6a0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1a6b0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1a6c0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1a6d0 2d 35 36 33 0d 0a 53 45 4c 45 43 54 20 44 49 53  -563..SELECT DIS
1a6e0 54 49 4e 43 54 20 2d 20 43 41 53 54 20 28 20 2d  TINCT - CAST ( -
1a6f0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
1a700 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c  INTEGER ) AS col
1a710 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
1a720 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49  -..3....query II
1a730 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1a740 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  T * FROM tab2 WH
1a750 45 52 45 20 4e 4f 54 20 2b 20 28 20 2d 20 2b 20  ERE NOT + ( - + 
1a760 63 6f 6c 32 20 29 20 3d 20 2b 20 63 6f 6c 32 0d  col2 ) = + col2.
1a770 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
1a780 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39  hashing to 75c99
1a790 38 61 61 35 33 61 63 38 33 32 31 38 63 62 66 32  8aa53ac83218cbf2
1a7a0 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 6f  feb962d0a49....o
1a7b0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
1a7c0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
1a7d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1a7e0 74 20 6c 61 62 65 6c 2d 35 36 35 0d 0a 53 45 4c  t label-565..SEL
1a7f0 45 43 54 20 2d 20 53 55 4d 28 20 44 49 53 54 49  ECT - SUM( DISTI
1a800 4e 43 54 20 2d 20 2b 20 63 6f 6c 32 20 29 20 46  NCT - + col2 ) F
1a810 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
1a820 31 32 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  121....skipif my
1a830 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1a840 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1a850 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 36 35 0d  wsort label-565.
1a860 0a 53 45 4c 45 43 54 20 2d 20 53 55 4d 20 28 20  .SELECT - SUM ( 
1a870 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 63 6f 6c  DISTINCT - + col
1a880 32 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  2 ) FROM tab2..-
1a890 2d 2d 2d 0d 0a 31 32 31 0d 0a 0d 0a 71 75 65 72  ---..121....quer
1a8a0 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
1a8b0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
1a8c0 63 6f 6c 32 2c 20 2b 20 28 20 2d 20 2b 20 63 6f  col2, + ( - + co
1a8d0 6c 32 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  l2 ) AS col0 FRO
1a8e0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 33  M tab2..----..23
1a8f0 0d 0a 2d 32 33 0d 0a 34 30 0d 0a 2d 34 30 0d 0a  ..-23..40..-40..
1a900 35 38 0d 0a 2d 35 38 0d 0a 0d 0a 71 75 65 72 79  58..-58....query
1a910 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
1a920 45 43 54 20 2b 20 34 34 2c 20 2d 20 63 6f 6c 30  ECT + 44, - col0
1a930 20 2d 20 2d 20 2d 20 63 6f 6c 30 20 2b 20 2b 20   - - - col0 + + 
1a940 35 35 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  55 AS col1 FROM 
1a950 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 34 34 0d 0a  tab1..----..44..
1a960 2d 31 31 35 0d 0a 34 34 0d 0a 2d 31 32 37 0d 0a  -115..44..-127..
1a970 34 34 0d 0a 2d 34 37 0d 0a 0d 0a 6f 6e 6c 79 69  44..-47....onlyi
1a980 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
1a990 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
1a9a0 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
1a9b0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 36 38 0d  wsort label-568.
1a9c0 0a 53 45 4c 45 43 54 20 2d 20 43 41 53 54 28 20  .SELECT - CAST( 
1a9d0 2d 20 63 6f 6c 31 20 41 53 20 53 49 47 4e 45 44  - col1 AS SIGNED
1a9e0 20 29 20 2a 20 63 6f 6c 32 20 2a 20 2d 20 63 6f   ) * col2 * - co
1a9f0 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l1 FROM tab0..--
1aa00 2d 2d 0d 0a 2d 33 30 38 33 36 37 0d 0a 2d 34 34  --..-308367..-44
1aa10 31 30 0d 0a 2d 39 39 0d 0a 0d 0a 73 6b 69 70 69  10..-99....skipi
1aa20 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1aa30 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
1aa40 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1aa50 35 36 38 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41  568..SELECT - CA
1aa60 53 54 20 28 20 2d 20 63 6f 6c 31 20 41 53 20 49  ST ( - col1 AS I
1aa70 4e 54 45 47 45 52 20 29 20 2a 20 63 6f 6c 32 20  NTEGER ) * col2 
1aa80 2a 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  * - col1 FROM ta
1aa90 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 30 38 33 36  b0..----..-30836
1aaa0 37 0d 0a 2d 34 34 31 30 0d 0a 2d 39 39 0d 0a 0d  7..-4410..-99...
1aab0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1aac0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1aad0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1aae0 6f 72 74 20 6c 61 62 65 6c 2d 35 36 39 0d 0a 53  ort label-569..S
1aaf0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
1ab00 20 4d 41 58 28 20 2b 20 32 34 20 29 20 41 53 20   MAX( + 24 ) AS 
1ab10 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 57  col1 FROM tab1 W
1ab20 48 45 52 45 20 4e 4f 54 20 37 39 20 3e 3d 20 32  HERE NOT 79 >= 2
1ab30 33 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  3..----..NULL...
1ab40 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1ab50 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1ab60 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1ab70 6c 61 62 65 6c 2d 35 36 39 0d 0a 53 45 4c 45 43  label-569..SELEC
1ab80 54 20 44 49 53 54 49 4e 43 54 20 2d 20 4d 41 58  T DISTINCT - MAX
1ab90 20 28 20 2b 20 32 34 20 29 20 41 53 20 63 6f 6c   ( + 24 ) AS col
1aba0 31 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  1 FROM tab1 WHER
1abb0 45 20 4e 4f 54 20 37 39 20 3e 3d 20 32 33 0d 0a  E NOT 79 >= 23..
1abc0 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  ----..NULL....qu
1abd0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1abe0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 37  ELECT DISTINCT 7
1abf0 35 20 2a 20 2d 20 39 36 20 46 52 4f 4d 20 74 61  5 * - 96 FROM ta
1ac00 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
1ac10 0d 0a 2d 37 32 30 30 0d 0a 0d 0a 71 75 65 72 79  ..-7200....query
1ac20 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1ac30 43 54 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 63 6f  CT + + col2 * co
1ac40 6c 31 20 2b 20 2b 20 2d 20 63 6f 6c 31 20 2d 20  l1 + + - col1 - 
1ac50 2d 20 63 6f 6c 30 20 2d 20 2d 20 34 31 20 2a 20  - col0 - - 41 * 
1ac60 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  - col2 FROM tab2
1ac70 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1ac80 31 34 32 37 0d 0a 31 35 31 36 0d 0a 32 32 35 0d  1427..1516..225.
1ac90 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
1aca0 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
1acb0 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
1acc0 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
1acd0 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
1ace0 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
1acf0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 38 31  LECT DISTINCT 81
1ad00 20 63 6f 6c 31 2c 20 35 35 20 63 6f 6c 30 20 46   col1, 55 col0 F
1ad10 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
1ad20 0d 0a 2d 2d 2d 2d 0d 0a 38 31 0d 0a 35 35 0d 0a  ..----..81..55..
1ad30 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
1ad40 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
1ad50 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  INCT * FROM tab1
1ad60 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 36 34 20   WHERE NOT - 64 
1ad70 2b 20 2d 20 63 6f 6c 30 20 3c 3d 20 4e 55 4c 4c  + - col0 <= NULL
1ad80 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
1ad90 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
1ada0 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
1adb0 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 36 30  ab2 WHERE NOT 60
1adc0 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
1add0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  --....query III 
1ade0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1adf0 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ALL * FROM tab2 
1ae00 57 48 45 52 45 20 4e 4f 54 20 34 35 20 3c 3e 20  WHERE NOT 45 <> 
1ae10 28 20 2b 20 28 20 2d 20 38 30 20 29 20 2b 20 63  ( + ( - 80 ) + c
1ae20 6f 6c 31 20 2a 20 63 6f 6c 30 20 29 0d 0a 2d 2d  ol1 * col0 )..--
1ae30 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
1ae40 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 32 39  wsort..SELECT 29
1ae50 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
1ae60 20 4e 4f 54 20 63 6f 6c 31 20 3d 20 63 6f 6c 32   NOT col1 = col2
1ae70 0d 0a 2d 2d 2d 2d 0d 0a 32 39 0d 0a 32 39 0d 0a  ..----..29..29..
1ae80 32 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  29....query III 
1ae90 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1aea0 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
1aeb0 45 20 28 20 63 6f 6c 32 20 2a 20 2b 20 36 30 20  E ( col2 * + 60 
1aec0 29 20 42 45 54 57 45 45 4e 20 2b 20 63 6f 6c 31  ) BETWEEN + col1
1aed0 20 41 4e 44 20 2b 20 63 6f 6c 30 20 2f 20 2b 20   AND + col0 / + 
1aee0 63 6f 6c 30 20 2d 20 2d 20 63 6f 6c 30 20 2a 20  col0 - - col0 * 
1aef0 2d 20 35 35 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  - 55..----....qu
1af00 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
1af10 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
1af20 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55  ab0 WHERE NOT NU
1af30 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 28  LL NOT BETWEEN (
1af40 20 63 6f 6c 31 20 29 20 41 4e 44 20 28 20 2d 20   col1 ) AND ( - 
1af50 34 39 20 2a 20 2b 20 34 33 20 29 0d 0a 2d 2d 2d  49 * + 43 )..---
1af60 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  -....query III r
1af70 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
1af80 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57  LL * FROM tab0 W
1af90 48 45 52 45 20 28 20 63 6f 6c 30 20 29 20 42 45  HERE ( col0 ) BE
1afa0 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 28  TWEEN NULL AND (
1afb0 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   NULL )..----...
1afc0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
1afd0 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
1afe0 4d 20 74 61 62 31 20 57 48 45 52 45 20 28 20 38  M tab1 WHERE ( 8
1aff0 30 20 2a 20 2b 20 63 6f 6c 32 20 29 20 3e 20 4e  0 * + col2 ) > N
1b000 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ULL..----....onl
1b010 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
1b020 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
1b030 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
1b040 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 38  rowsort label-58
1b050 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  1..SELECT DISTIN
1b060 43 54 20 34 20 2f 20 2d 20 63 6f 6c 30 20 2b 20  CT 4 / - col0 + 
1b070 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f  col1 AS col1 FRO
1b080 4d 20 74 61 62 31 20 57 48 45 52 45 20 35 36 20  M tab1 WHERE 56 
1b090 42 45 54 57 45 45 4e 20 2d 20 63 6f 6c 31 20 41  BETWEEN - col1 A
1b0a0 4e 44 20 2d 20 43 41 53 54 28 20 2b 20 63 6f 6c  ND - CAST( + col
1b0b0 30 20 41 53 20 53 49 47 4e 45 44 20 29 20 2f 20  0 AS SIGNED ) / 
1b0c0 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b  col2..----....sk
1b0d0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1b0e0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1b0f0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1b100 65 6c 2d 35 38 31 0d 0a 53 45 4c 45 43 54 20 44  el-581..SELECT D
1b110 49 53 54 49 4e 43 54 20 34 20 2f 20 2d 20 63 6f  ISTINCT 4 / - co
1b120 6c 30 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c  l0 + col1 AS col
1b130 31 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  1 FROM tab1 WHER
1b140 45 20 35 36 20 42 45 54 57 45 45 4e 20 2d 20 63  E 56 BETWEEN - c
1b150 6f 6c 31 20 41 4e 44 20 2d 20 43 41 53 54 20 28  ol1 AND - CAST (
1b160 20 2b 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47   + col0 AS INTEG
1b170 45 52 20 29 20 2f 20 63 6f 6c 32 0d 0a 2d 2d 2d  ER ) / col2..---
1b180 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
1b190 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
1b1a0 20 36 31 20 2b 20 2d 20 33 33 20 2a 20 2d 20 63   61 + - 33 * - c
1b1b0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
1b1c0 2d 2d 2d 0d 0a 32 37 33 34 0d 0a 37 35 34 0d 0a  ---..2734..754..
1b1d0 39 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  94....query III 
1b1e0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1b1f0 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ALL * FROM tab2 
1b200 57 48 45 52 45 20 37 36 20 42 45 54 57 45 45 4e  WHERE 76 BETWEEN
1b210 20 28 20 36 37 20 2b 20 2d 20 32 31 20 29 20 41   ( 67 + - 21 ) A
1b220 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  ND NULL..----...
1b230 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1b240 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1b250 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1b260 6f 72 74 20 6c 61 62 65 6c 2d 35 38 34 0d 0a 53  ort label-584..S
1b270 45 4c 45 43 54 20 41 4c 4c 20 4d 41 58 28 20 2d  ELECT ALL MAX( -
1b280 20 33 33 20 29 20 46 52 4f 4d 20 74 61 62 32 0d   33 ) FROM tab2.
1b290 0a 2d 2d 2d 2d 0d 0a 2d 33 33 0d 0a 0d 0a 73 6b  .----..-33....sk
1b2a0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1b2b0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1b2c0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1b2d0 65 6c 2d 35 38 34 0d 0a 53 45 4c 45 43 54 20 41  el-584..SELECT A
1b2e0 4c 4c 20 4d 41 58 20 28 20 2d 20 33 33 20 29 20  LL MAX ( - 33 ) 
1b2f0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
1b300 0a 2d 33 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  .-33....skipif p
1b310 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
1b320 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
1b330 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
1b340 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
1b350 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1b360 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 39 31 20  ..SELECT ALL 91 
1b370 2a 20 2b 20 28 20 31 31 20 29 20 2b 20 2b 20 28  * + ( 11 ) + + (
1b380 20 63 6f 6c 30 20 2b 20 2d 20 39 36 20 29 20 63   col0 + - 96 ) c
1b390 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
1b3a0 2d 2d 2d 0d 0a 39 35 36 0d 0a 39 39 30 0d 0a 39  ---..956..990..9
1b3b0 39 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  96....query III 
1b3c0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1b3d0 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  * FROM tab2 WHER
1b3e0 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 4e 20 28 20  E NOT NULL IN ( 
1b3f0 2b 20 39 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f  + 9 )..----....o
1b400 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
1b410 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
1b420 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
1b430 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1b440 35 38 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  587..SELECT ALL 
1b450 63 6f 6c 30 20 2a 20 2b 20 28 20 63 6f 6c 30 20  col0 * + ( col0 
1b460 2a 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  * CAST( NULL AS 
1b470 53 49 47 4e 45 44 20 29 20 29 20 2b 20 39 33 20  SIGNED ) ) + 93 
1b480 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
1b490 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  1..----..NULL..N
1b4a0 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ULL..NULL....ski
1b4b0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1b4c0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1b4d0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1b4e0 6c 2d 35 38 37 0d 0a 53 45 4c 45 43 54 20 41 4c  l-587..SELECT AL
1b4f0 4c 20 63 6f 6c 30 20 2a 20 2b 20 28 20 63 6f 6c  L col0 * + ( col
1b500 30 20 2a 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  0 * CAST ( NULL 
1b510 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20 2b  AS INTEGER ) ) +
1b520 20 39 33 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   93 AS col0 FROM
1b530 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   tab1..----..NUL
1b540 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
1b550 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1b560 0d 0a 53 45 4c 45 43 54 20 33 30 20 2d 20 2d 20  ..SELECT 30 - - 
1b570 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
1b580 2d 2d 2d 2d 0d 0a 31 30 35 0d 0a 37 36 0d 0a 39  ----..105..76..9
1b590 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  4....query III r
1b5a0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
1b5b0 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
1b5c0 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20 63 6f   NULL BETWEEN co
1b5d0 6c 32 20 2a 20 2d 20 63 6f 6c 32 20 41 4e 44 20  l2 * - col2 AND 
1b5e0 33 38 20 2b 20 39 30 20 2a 20 2d 20 63 6f 6c 32  38 + 90 * - col2
1b5f0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
1b600 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
1b610 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ECT * FROM tab2 
1b620 57 48 45 52 45 20 4e 55 4c 4c 20 49 4e 20 28 20  WHERE NULL IN ( 
1b630 35 34 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  54 )..----....qu
1b640 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1b650 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
1b660 20 39 37 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20   97 + col0 FROM 
1b670 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 0d  tab1..----..-12.
1b680 0a 2d 34 36 0d 0a 2d 36 0d 0a 0d 0a 71 75 65 72  .-46..-6....quer
1b690 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1b6a0 45 43 54 20 39 32 20 2a 20 2b 20 35 36 20 46 52  ECT 92 * + 56 FR
1b6b0 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 55  OM tab2 WHERE NU
1b6c0 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  LL IS NULL..----
1b6d0 0d 0a 35 31 35 32 0d 0a 35 31 35 32 0d 0a 35 31  ..5152..5152..51
1b6e0 35 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  52....query I ro
1b6f0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 33 20  wsort..SELECT 3 
1b700 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
1b710 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  NULL IS NULL..--
1b720 2d 2d 0d 0a 33 0d 0a 33 0d 0a 33 0d 0a 0d 0a 71  --..3..3..3....q
1b730 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
1b740 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
1b750 74 61 62 30 20 57 48 45 52 45 20 63 6f 6c 31 20  tab0 WHERE col1 
1b760 4e 4f 54 20 49 4e 20 28 20 2b 20 63 6f 6c 31 20  NOT IN ( + col1 
1b770 2b 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a  + col2 )..----..
1b780 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
1b790 20 74 6f 20 63 34 62 34 32 37 36 35 64 66 66 39   to c4b42765dff9
1b7a0 34 65 61 61 61 34 36 30 34 30 65 35 33 37 66 62  4eaaa46040e537fb
1b7b0 34 33 62 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  43b7....onlyif m
1b7c0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
1b7d0 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65  ax: DECIMAL type
1b7e0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1b7f0 6f 72 74 20 6c 61 62 65 6c 2d 35 39 35 0d 0a 53  ort label-595..S
1b800 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2b 20 2b  ELECT + col2 + +
1b810 20 63 6f 6c 32 20 2a 20 2b 20 43 41 53 54 28 20   col2 * + CAST( 
1b820 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20  NULL AS DECIMAL 
1b830 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  ) col0 FROM tab1
1b840 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
1b850 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  LL..NULL....skip
1b860 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1b870 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
1b880 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
1b890 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
1b8a0 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
1b8b0 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
1b8c0 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
1b8d0 6f 72 74 20 6c 61 62 65 6c 2d 35 39 35 0d 0a 53  ort label-595..S
1b8e0 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2b 20 2b  ELECT + col2 + +
1b8f0 20 63 6f 6c 32 20 2a 20 2b 20 43 41 53 54 20 28   col2 * + CAST (
1b900 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20   NULL AS REAL ) 
1b910 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col0 FROM tab1..
1b920 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
1b930 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20  ..NULL....query 
1b940 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1b950 54 20 44 49 53 54 49 4e 43 54 20 2d 20 33 35 20  T DISTINCT - 35 
1b960 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
1b970 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 63 6f  0 WHERE NOT ( co
1b980 6c 31 20 29 20 3c 3d 20 2b 20 63 6f 6c 31 0d 0a  l1 ) <= + col1..
1b990 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
1b9a0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1b9b0 2d 20 33 36 20 46 52 4f 4d 20 74 61 62 30 20 57  - 36 FROM tab0 W
1b9c0 48 45 52 45 20 2d 20 63 6f 6c 31 20 49 53 20 4e  HERE - col1 IS N
1b9d0 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d  OT NULL..----..-
1b9e0 33 36 0d 0a 2d 33 36 0d 0a 2d 33 36 0d 0a 0d 0a  36..-36..-36....
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 2d 20 63 6f 6c 30 20 2b  .SELECT - col0 +
1ba10 20 37 34 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   74 AS col1 FROM
1ba20 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d   tab2..----..-1.
1ba30 0a 31 30 0d 0a 32 38 0d 0a 0d 0a 6f 6e 6c 79 69  .10..28....onlyi
1ba40 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
1ba50 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
1ba60 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1ba70 62 65 6c 2d 35 39 39 0d 0a 53 45 4c 45 43 54 20  bel-599..SELECT 
1ba80 44 49 53 54 49 4e 43 54 20 53 55 4d 28 20 44 49  DISTINCT SUM( DI
1ba90 53 54 49 4e 43 54 20 63 6f 6c 31 20 29 20 46 52  STINCT col1 ) FR
1baa0 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f  OM tab1 WHERE NO
1bab0 54 20 28 20 2d 20 33 39 20 2f 20 2b 20 63 6f 6c  T ( - 39 / + col
1bac0 31 20 2d 20 2b 20 37 34 20 29 20 42 45 54 57 45  1 - + 74 ) BETWE
1bad0 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2b 20 63 6f  EN NULL AND + co
1bae0 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  l2..----..NULL..
1baf0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1bb00 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1bb10 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1bb20 20 6c 61 62 65 6c 2d 35 39 39 0d 0a 53 45 4c 45   label-599..SELE
1bb30 43 54 20 44 49 53 54 49 4e 43 54 20 53 55 4d 20  CT DISTINCT SUM 
1bb40 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20  ( DISTINCT col1 
1bb50 29 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  ) FROM tab1 WHER
1bb60 45 20 4e 4f 54 20 28 20 2d 20 33 39 20 2f 20 2b  E NOT ( - 39 / +
1bb70 20 63 6f 6c 31 20 2d 20 2b 20 37 34 20 29 20 42   col1 - + 74 ) B
1bb80 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20  ETWEEN NULL AND 
1bb90 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  + col2..----..NU
1bba0 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  LL....query I ro
1bbb0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
1bbc0 28 20 2b 20 63 6f 6c 32 20 29 20 2a 20 2b 20 63  ( + col2 ) * + c
1bbd0 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol0 AS col1 FROM
1bbe0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30   tab2..----..-10
1bbf0 35 38 0d 0a 2d 32 35 36 30 0d 0a 2d 34 33 35 30  58..-2560..-4350
1bc00 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
1bc10 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
1bc20 49 4e 43 54 20 28 20 28 20 2d 20 63 6f 6c 32 20  INCT ( ( - col2 
1bc30 29 20 29 20 2b 20 2b 20 63 6f 6c 31 20 41 53 20  ) ) + + col1 AS 
1bc40 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
1bc50 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 38  S cor0..----..28
1bc60 0d 0a 33 37 0d 0a 39 0d 0a 0d 0a 6f 6e 6c 79 69  ..37..9....onlyi
1bc70 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
1bc80 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
1bc90 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1bca0 62 65 6c 2d 36 30 32 0d 0a 53 45 4c 45 43 54 20  bel-602..SELECT 
1bcb0 44 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54  DISTINCT + COUNT
1bcc0 28 20 2a 20 29 20 2a 20 2b 20 39 34 20 46 52 4f  ( * ) * + 94 FRO
1bcd0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
1bce0 2d 2d 2d 2d 0d 0a 32 38 32 0d 0a 0d 0a 73 6b 69  ----..282....ski
1bcf0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1bd00 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1bd10 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1bd20 6c 2d 36 30 32 0d 0a 53 45 4c 45 43 54 20 44 49  l-602..SELECT DI
1bd30 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54 20 28  STINCT + COUNT (
1bd40 20 2a 20 29 20 2a 20 2b 20 39 34 20 46 52 4f 4d   * ) * + 94 FROM
1bd50 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
1bd60 2d 2d 2d 0d 0a 32 38 32 0d 0a 0d 0a 71 75 65 72  ---..282....quer
1bd70 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1bd80 45 43 54 20 44 49 53 54 49 4e 43 54 20 39 36 20  ECT DISTINCT 96 
1bd90 2b 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 28 20 2d  + + col2 * + ( -
1bda0 20 36 38 20 29 20 41 53 20 63 6f 6c 32 20 46 52   68 ) AS col2 FR
1bdb0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
1bdc0 0a 2d 2d 2d 2d 0d 0a 2d 33 39 31 36 0d 0a 2d 34  .----..-3916..-4
1bdd0 35 32 38 0d 0a 2d 36 34 33 32 0d 0a 0d 0a 71 75  528..-6432....qu
1bde0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1bdf0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
1be00 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
1be10 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 2b 20   cor0 WHERE ( + 
1be20 63 6f 6c 31 20 2b 20 63 6f 6c 31 20 29 20 49 53  col1 + col1 ) IS
1be30 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
1be40 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
1be50 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
1be60 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
1be70 52 45 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 63 6f  RE + col1 + - co
1be80 6c 31 20 2a 20 2d 20 63 6f 6c 32 20 49 4e 20 28  l1 * - col2 IN (
1be90 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   col0 )..----...
1bea0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1beb0 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67  CAST syntax: agg
1bec0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53  regate syntax: S
1bed0 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
1bee0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1bef0 62 65 6c 2d 36 30 36 0d 0a 53 45 4c 45 43 54 20  bel-606..SELECT 
1bf00 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54  DISTINCT - COUNT
1bf10 28 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  ( CAST( NULL AS 
1bf20 53 49 47 4e 45 44 20 29 20 29 20 2b 20 53 55 4d  SIGNED ) ) + SUM
1bf30 28 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 30 20  ( col1 + - col0 
1bf40 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  ) FROM tab0 AS c
1bf50 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 36 0d 0a  or0..----..-96..
1bf60 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1bf70 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1bf80 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1bf90 20 6c 61 62 65 6c 2d 36 30 36 0d 0a 53 45 4c 45   label-606..SELE
1bfa0 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43 4f  CT DISTINCT - CO
1bfb0 55 4e 54 20 28 20 43 41 53 54 20 28 20 4e 55 4c  UNT ( CAST ( NUL
1bfc0 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29  L AS INTEGER ) )
1bfd0 20 2b 20 53 55 4d 20 28 20 63 6f 6c 31 20 2b 20   + SUM ( col1 + 
1bfe0 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61  - col0 ) FROM ta
1bff0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
1c000 0d 0a 2d 39 36 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-96....query I
1c010 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1c020 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
1c030 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
1c040 20 28 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 30   ( col0 * + col0
1c050 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d   ) IS NULL..----
1c060 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
1c070 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
1c080 2b 20 63 6f 6c 31 20 2a 20 63 6f 6c 31 20 2b 20  + col1 * col1 + 
1c090 2b 20 63 6f 6c 30 20 2f 20 63 6f 6c 30 20 46 52  + col0 / col0 FR
1c0a0 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 28 20  OM tab2 WHERE ( 
1c0b0 63 6f 6c 31 20 2b 20 2d 20 38 32 20 29 20 3e 20  col1 + - 82 ) > 
1c0c0 2b 20 63 6f 6c 31 20 2a 20 36 32 0d 0a 2d 2d 2d  + col1 * 62..---
1c0d0 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
1c0e0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
1c0f0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
1c100 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 30  rowsort label-60
1c110 39 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 49 4e 28  9..SELECT + MIN(
1c120 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 29 20 46 52   ALL - col2 ) FR
1c130 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
1c140 35 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  58....skipif mys
1c150 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1c160 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1c170 73 6f 72 74 20 6c 61 62 65 6c 2d 36 30 39 0d 0a  sort label-609..
1c180 53 45 4c 45 43 54 20 2b 20 4d 49 4e 20 28 20 41  SELECT + MIN ( A
1c190 4c 4c 20 2d 20 63 6f 6c 32 20 29 20 46 52 4f 4d  LL - col2 ) FROM
1c1a0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 38   tab2..----..-58
1c1b0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1c1c0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
1c1d0 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74  tax: DIV for int
1c1e0 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
1c1f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1c200 20 6c 61 62 65 6c 2d 36 31 30 0d 0a 53 45 4c 45   label-610..SELE
1c210 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 35 34  CT DISTINCT - 54
1c220 20 44 49 56 20 43 4f 55 4e 54 28 20 31 36 20 29   DIV COUNT( 16 )
1c230 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
1c240 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
1c250 0d 0a 2d 31 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-18....skipif 
1c260 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1c270 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1c280 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 31  rowsort label-61
1c290 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  0..SELECT DISTIN
1c2a0 43 54 20 2d 20 35 34 20 2f 20 43 4f 55 4e 54 20  CT - 54 / COUNT 
1c2b0 28 20 31 36 20 29 20 41 53 20 63 6f 6c 30 20 46  ( 16 ) AS col0 F
1c2c0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1c2d0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38 0d 0a 0d 0a 71  ..----..-18....q
1c2e0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1c2f0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1c300 2d 20 31 34 20 2d 20 31 36 20 46 52 4f 4d 20 74  - 14 - 16 FROM t
1c310 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab2 cor0..----..
1c320 2d 33 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  -30....query III
1c330 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1c340 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
1c350 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
1c360 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54  ERE NOT NULL NOT
1c370 20 49 4e 20 28 20 35 30 20 29 0d 0a 2d 2d 2d 2d   IN ( 50 )..----
1c380 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
1c390 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
1c3a0 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
1c3b0 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
1c3c0 20 4e 4f 54 20 4e 55 4c 4c 20 3e 20 2d 20 63 6f   NOT NULL > - co
1c3d0 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  l1..----....quer
1c3e0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1c3f0 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2a 20 2b  ECT ALL col1 * +
1c400 20 31 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53   12 FROM tab2 AS
1c410 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 32   cor0 WHERE col2
1c420 20 2f 20 35 32 20 3e 20 28 20 2b 20 63 6f 6c 32   / 52 > ( + col2
1c430 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72   )..----....quer
1c440 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1c450 45 43 54 20 2d 20 2d 20 63 6f 6c 30 20 2d 20 36  ECT - - col0 - 6
1c460 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
1c470 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 0d 0a  or0..----..-16..
1c480 31 33 0d 0a 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  13..2....onlyif 
1c490 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
1c4a0 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73  tax: aggregate s
1c4b0 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
1c4c0 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
1c4d0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 31 36 0d  wsort label-616.
1c4e0 0a 53 45 4c 45 43 54 20 43 41 53 54 28 20 4e 55  .SELECT CAST( NU
1c4f0 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a  LL AS SIGNED ) *
1c500 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d   COUNT( * ) FROM
1c510 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
1c520 45 52 45 20 2d 20 63 6f 6c 30 20 49 53 20 4e 4f  ERE - col0 IS NO
1c530 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  T NULL..----..NU
1c540 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
1c550 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1c560 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1c570 73 6f 72 74 20 6c 61 62 65 6c 2d 36 31 36 0d 0a  sort label-616..
1c580 53 45 4c 45 43 54 20 43 41 53 54 20 28 20 4e 55  SELECT CAST ( NU
1c590 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
1c5a0 2a 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52  * COUNT ( * ) FR
1c5b0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
1c5c0 57 48 45 52 45 20 2d 20 63 6f 6c 30 20 49 53 20  WHERE - col0 IS 
1c5d0 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
1c5e0 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20  NULL....query I 
1c5f0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1c600 2b 20 2d 20 28 20 2d 20 34 35 20 29 20 2a 20 36  + - ( - 45 ) * 6
1c610 35 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  5 - col2 FROM ta
1c620 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
1c630 0d 0a 32 38 32 39 0d 0a 32 38 35 37 0d 0a 32 38  ..2829..2857..28
1c640 36 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  66....query I ro
1c650 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 34 30  wsort..SELECT 40
1c660 20 2a 20 2b 20 34 38 20 2b 20 2b 20 38 35 20 46   * + 48 + + 85 F
1c670 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
1c680 0d 0a 2d 2d 2d 2d 0d 0a 32 30 30 35 0d 0a 32 30  ..----..2005..20
1c690 30 35 0d 0a 32 30 30 35 0d 0a 0d 0a 6f 6e 6c 79  05..2005....only
1c6a0 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
1c6b0 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
1c6c0 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
1c6d0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 31 39  owsort label-619
1c6e0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1c6f0 54 20 63 6f 6c 30 20 44 49 56 20 2b 20 63 6f 6c  T col0 DIV + col
1c700 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  1 AS col0 FROM t
1c710 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
1c720 2d 0d 0a 31 0d 0a 31 37 0d 0a 33 0d 0a 0d 0a 73  -..1..17..3....s
1c730 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1c740 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1c750 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1c760 62 65 6c 2d 36 31 39 0d 0a 53 45 4c 45 43 54 20  bel-619..SELECT 
1c770 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 2f 20  DISTINCT col0 / 
1c780 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46  + col1 AS col0 F
1c790 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1c7a0 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31 37 0d 0a 33  ..----..1..17..3
1c7b0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
1c7c0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  ort..SELECT + co
1c7d0 6c 30 20 2a 20 63 6f 6c 30 20 2b 20 2d 20 63 6f  l0 * col0 + - co
1c7e0 6c 31 20 2a 20 2d 20 34 30 20 41 53 20 63 6f 6c  l1 * - 40 AS col
1c7f0 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  0 FROM tab0 cor0
1c800 0d 0a 2d 2d 2d 2d 0d 0a 33 34 36 35 0d 0a 38 34  ..----..3465..84
1c810 30 39 0d 0a 39 34 34 39 0d 0a 0d 0a 6f 6e 6c 79  09..9449....only
1c820 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
1c830 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
1c840 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49  ype: ..query III
1c850 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1c860 32 31 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  21..SELECT * FRO
1c870 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54  M tab0 WHERE NOT
1c880 20 28 20 43 41 53 54 28 20 63 6f 6c 31 20 41 53   ( CAST( col1 AS
1c890 20 53 49 47 4e 45 44 20 29 20 2f 20 2d 20 63 6f   SIGNED ) / - co
1c8a0 6c 31 20 2b 20 2b 20 63 6f 6c 31 20 29 20 49 4e  l1 + + col1 ) IN
1c8b0 20 28 20 2b 20 34 38 20 29 0d 0a 2d 2d 2d 2d 0d   ( + 48 )..----.
1c8c0 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
1c8d0 67 20 74 6f 20 63 34 62 34 32 37 36 35 64 66 66  g to c4b42765dff
1c8e0 39 34 65 61 61 61 34 36 30 34 30 65 35 33 37 66  94eaaa46040e537f
1c8f0 62 34 33 62 37 0d 0a 0d 0a 73 6b 69 70 69 66 20  b43b7....skipif 
1c900 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1c910 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
1c920 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1c930 36 32 31 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  621..SELECT * FR
1c940 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
1c950 54 20 28 20 43 41 53 54 20 28 20 63 6f 6c 31 20  T ( CAST ( col1 
1c960 41 53 20 49 4e 54 45 47 45 52 20 29 20 2f 20 2d  AS INTEGER ) / -
1c970 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 31 20 29   col1 + + col1 )
1c980 20 49 4e 20 28 20 2b 20 34 38 20 29 0d 0a 2d 2d   IN ( + 48 )..--
1c990 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
1c9a0 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35  hing to c4b42765
1c9b0 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35  dff94eaaa46040e5
1c9c0 33 37 66 62 34 33 62 37 0d 0a 0d 0a 6f 6e 6c 79  37fb43b7....only
1c9d0 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
1c9e0 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
1c9f0 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
1ca00 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32 32  owsort label-622
1ca10 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20  ..SELECT + col1 
1ca20 44 49 56 20 2b 20 2d 20 34 32 20 46 52 4f 4d 20  DIV + - 42 FROM 
1ca30 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a  tab2..----..-1..
1ca40 2d 31 0d 0a 2d 31 0d 0a 0d 0a 73 6b 69 70 69 66  -1..-1....skipif
1ca50 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1ca60 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1ca70 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1ca80 32 32 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c  22..SELECT + col
1ca90 31 20 2f 20 2b 20 2d 20 34 32 20 46 52 4f 4d 20  1 / + - 42 FROM 
1caa0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a  tab2..----..-1..
1cab0 2d 31 0d 0a 2d 31 0d 0a 0d 0a 6f 6e 6c 79 69 66  -1..-1....onlyif
1cac0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
1cad0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
1cae0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1caf0 65 6c 2d 36 32 33 0d 0a 53 45 4c 45 43 54 20 2b  el-623..SELECT +
1cb00 20 28 20 2d 20 2d 20 43 4f 55 4e 54 28 20 63 6f   ( - - COUNT( co
1cb10 6c 32 20 29 20 29 20 41 53 20 63 6f 6c 32 20 46  l2 ) ) AS col2 F
1cb20 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
1cb30 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
1cb40 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1cb50 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1cb60 6f 72 74 20 6c 61 62 65 6c 2d 36 32 33 0d 0a 53  ort label-623..S
1cb70 45 4c 45 43 54 20 2b 20 28 20 2d 20 2d 20 43 4f  ELECT + ( - - CO
1cb80 55 4e 54 20 28 20 63 6f 6c 32 20 29 20 29 20 41  UNT ( col2 ) ) A
1cb90 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
1cba0 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c  ..----..3....onl
1cbb0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
1cbc0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
1cbd0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1cbe0 6c 61 62 65 6c 2d 36 32 34 0d 0a 53 45 4c 45 43  label-624..SELEC
1cbf0 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 28 20 2a  T ALL - COUNT( *
1cc00 20 29 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   ) FROM tab0 WHE
1cc10 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 31 20 2a 20  RE NOT + col1 * 
1cc20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 31 20 49 53  col2 + + col1 IS
1cc30 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d   NULL..----..-3.
1cc40 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1cc50 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1cc60 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1cc70 74 20 6c 61 62 65 6c 2d 36 32 34 0d 0a 53 45 4c  t label-624..SEL
1cc80 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 20  ECT ALL - COUNT 
1cc90 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20  ( * ) FROM tab0 
1cca0 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 31  WHERE NOT + col1
1ccb0 20 2a 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 31   * col2 + + col1
1ccc0 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
1ccd0 2d 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  -3....query I ro
1cce0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
1ccf0 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45  l0 FROM tab2 WHE
1cd00 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20  RE NOT ( NULL ) 
1cd10 3c 3d 20 2b 20 33 38 0d 0a 2d 2d 2d 2d 0d 0a 0d  <= + 38..----...
1cd20 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1cd30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c  ..SELECT ALL col
1cd40 30 20 2a 20 63 6f 6c 31 20 2a 20 2d 20 36 33 20  0 * col1 * - 63 
1cd50 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
1cd60 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 35 31 30 31  0..----..-115101
1cd70 0d 0a 2d 36 31 31 31 0d 0a 2d 37 36 35 34 35 0d  ..-6111..-76545.
1cd80 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1cd90 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
1cda0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
1cdb0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32 37 0d  wsort label-627.
1cdc0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1cdd0 20 2b 20 38 39 20 2a 20 2d 20 2b 20 43 4f 55 4e   + 89 * - + COUN
1cde0 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30  T( * ) FROM tab0
1cdf0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1ce00 2d 32 36 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -267....skipif m
1ce10 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1ce20 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1ce30 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32 37  owsort label-627
1ce40 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1ce50 54 20 2b 20 38 39 20 2a 20 2d 20 2b 20 43 4f 55  T + 89 * - + COU
1ce60 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  NT ( * ) FROM ta
1ce70 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
1ce80 0d 0a 2d 32 36 37 0d 0a 0d 0a 71 75 65 72 79 20  ..-267....query 
1ce90 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1cea0 54 20 41 4c 4c 20 63 6f 6c 31 20 2a 20 2b 20 63  T ALL col1 * + c
1ceb0 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol0 AS col0 FROM
1cec0 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
1ced0 0d 0a 32 33 34 36 0d 0a 34 39 32 38 0d 0a 35 30  ..2346..4928..50
1cee0 32 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  25....query III 
1cef0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1cf00 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
1cf10 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
1cf20 52 45 20 28 20 2d 20 63 6f 6c 30 20 29 20 4e 4f  RE ( - col0 ) NO
1cf30 54 20 49 4e 20 28 20 63 6f 6c 30 20 29 0d 0a 2d  T IN ( col0 )..-
1cf40 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
1cf50 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31  shing to c6c0a41
1cf60 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31  11b36d04dbc811a1
1cf70 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 6f 6e 6c  1e4d54cad....onl
1cf80 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
1cf90 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
1cfa0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1cfb0 6c 61 62 65 6c 2d 36 33 30 0d 0a 53 45 4c 45 43  label-630..SELEC
1cfc0 54 20 2d 20 4d 49 4e 28 20 41 4c 4c 20 34 31 20  T - MIN( ALL 41 
1cfd0 29 20 2a 20 31 38 20 2b 20 43 4f 55 4e 54 28 20  ) * 18 + COUNT( 
1cfe0 2a 20 29 20 2a 20 41 56 47 20 28 20 41 4c 4c 20  * ) * AVG ( ALL 
1cff0 37 37 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  77 ) AS col0 FRO
1d000 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
1d010 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 32 20  HERE NOT - col2 
1d020 2f 20 38 39 20 2b 20 63 6f 6c 32 20 49 53 20 4e  / 89 + col2 IS N
1d030 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e  OT NULL..----..N
1d040 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
1d050 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1d060 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1d070 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 33 30 0d  wsort label-630.
1d080 0a 53 45 4c 45 43 54 20 2d 20 4d 49 4e 20 28 20  .SELECT - MIN ( 
1d090 41 4c 4c 20 34 31 20 29 20 2a 20 31 38 20 2b 20  ALL 41 ) * 18 + 
1d0a0 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 41 56  COUNT ( * ) * AV
1d0b0 47 20 28 20 41 4c 4c 20 37 37 20 29 20 41 53 20  G ( ALL 77 ) AS 
1d0c0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
1d0d0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
1d0e0 20 2d 20 63 6f 6c 32 20 2f 20 38 39 20 2b 20 63   - col2 / 89 + c
1d0f0 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ol2 IS NOT NULL.
1d100 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  .----..NULL....q
1d110 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1d120 53 45 4c 45 43 54 20 2d 20 28 20 2b 20 2b 20 36  SELECT - ( + + 6
1d130 34 20 29 20 2a 20 63 6f 6c 32 20 41 53 20 63 6f  4 ) * col2 AS co
1d140 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
1d150 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 37  cor0..----..-147
1d160 32 0d 0a 2d 32 35 36 30 0d 0a 2d 33 37 31 32 0d  2..-2560..-3712.
1d170 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1d180 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
1d190 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
1d1a0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 33 32 0d  wsort label-632.
1d1b0 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28  .SELECT + COUNT(
1d1c0 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   * ) AS col1 FRO
1d1d0 4d 20 28 20 74 61 62 31 20 41 53 20 63 6f 72 30  M ( tab1 AS cor0
1d1e0 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32   CROSS JOIN tab2
1d1f0 20 41 53 20 63 6f 72 31 20 29 0d 0a 2d 2d 2d 2d   AS cor1 )..----
1d200 0d 0a 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..9....skipif my
1d210 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1d220 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1d230 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 33 32 0d  wsort label-632.
1d240 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20  .SELECT + COUNT 
1d250 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ( * ) AS col1 FR
1d260 4f 4d 20 28 20 74 61 62 31 20 41 53 20 63 6f 72  OM ( tab1 AS cor
1d270 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62  0 CROSS JOIN tab
1d280 32 20 41 53 20 63 6f 72 31 20 29 0d 0a 2d 2d 2d  2 AS cor1 )..---
1d290 2d 0d 0a 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -..9....query I 
1d2a0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1d2b0 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  - col0 FROM tab2
1d2c0 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 4f 54   WHERE NOT ( NOT
1d2d0 20 34 32 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 63   42 + + col2 * c
1d2e0 6f 6c 31 20 49 53 20 4e 55 4c 4c 20 29 0d 0a 2d  ol1 IS NULL )..-
1d2f0 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
1d300 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
1d310 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
1d320 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1d330 36 33 34 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f  634..SELECT - CO
1d340 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 32  UNT( * ) AS col2
1d350 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
1d360 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
1d370 62 30 20 41 53 20 63 6f 72 31 20 57 48 45 52 45  b0 AS cor1 WHERE
1d380 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54   NOT NULL IS NOT
1d390 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d   NULL..----..-9.
1d3a0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1d3b0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1d3c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1d3d0 74 20 6c 61 62 65 6c 2d 36 33 34 0d 0a 53 45 4c  t label-634..SEL
1d3e0 45 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  ECT - COUNT ( * 
1d3f0 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
1d400 61 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f 53  ab1 AS cor0 CROS
1d410 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63  S JOIN tab0 AS c
1d420 6f 72 31 20 57 48 45 52 45 20 4e 4f 54 20 4e 55  or1 WHERE NOT NU
1d430 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  LL IS NOT NULL..
1d440 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 71 75 65 72  ----..-9....quer
1d450 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1d460 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 33  ECT DISTINCT - 3
1d470 38 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f  8 + - col2 AS co
1d480 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45  l0 FROM tab0 WHE
1d490 52 45 20 4e 55 4c 4c 20 3e 20 28 20 2b 20 63 6f  RE NULL > ( + co
1d4a0 6c 30 20 2a 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d  l0 * col0 )..---
1d4b0 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
1d4c0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
1d4d0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
1d4e0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 33  rowsort label-63
1d4f0 36 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 53 55  6..SELECT - + SU
1d500 4d 28 20 2d 20 31 33 20 29 20 41 53 20 63 6f 6c  M( - 13 ) AS col
1d510 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
1d520 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 39 0d 0a 0d  or0..----..39...
1d530 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1d540 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1d550 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1d560 6c 61 62 65 6c 2d 36 33 36 0d 0a 53 45 4c 45 43  label-636..SELEC
1d570 54 20 2d 20 2b 20 53 55 4d 20 28 20 2d 20 31 33  T - + SUM ( - 13
1d580 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
1d590 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
1d5a0 2d 2d 0d 0a 33 39 0d 0a 0d 0a 71 75 65 72 79 20  --..39....query 
1d5b0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
1d5c0 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ECT * FROM tab2 
1d5d0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
1d5e0 54 20 28 20 2d 20 63 6f 6c 31 20 2a 20 63 6f 6c  T ( - col1 * col
1d5f0 30 20 2a 20 31 30 20 29 20 49 53 20 4e 4f 54 20  0 * 10 ) IS NOT 
1d600 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
1d610 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1d620 45 4c 45 43 54 20 2b 20 41 56 47 20 28 20 44 49  ELECT + AVG ( DI
1d630 53 54 49 4e 43 54 20 63 6f 6c 31 20 29 20 46 52  STINCT col1 ) FR
1d640 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
1d650 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20 4e  WHERE NOT col0 N
1d660 4f 54 20 42 45 54 57 45 45 4e 20 28 20 4e 55 4c  OT BETWEEN ( NUL
1d670 4c 20 29 20 41 4e 44 20 28 20 4e 55 4c 4c 20 29  L ) AND ( NULL )
1d680 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
1d690 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
1d6a0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 32 2c 20  ..SELECT ALL 2, 
1d6b0 33 37 20 2a 20 2d 20 2d 20 63 6f 6c 31 20 41 53  37 * - - col1 AS
1d6c0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
1d6d0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  AS cor0..----..2
1d6e0 0d 0a 31 38 38 37 0d 0a 32 0d 0a 32 34 37 39 0d  ..1887..2..2479.
1d6f0 0a 32 0d 0a 32 38 34 39 0d 0a 0d 0a 71 75 65 72  .2..2849....quer
1d700 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1d710 45 43 54 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f  ECT + col1 AS co
1d720 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72  l0 FROM tab2 cor
1d730 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2d 20  0 WHERE NOT ( - 
1d740 63 6f 6c 32 20 29 20 49 53 20 4e 55 4c 4c 0d 0a  col2 ) IS NULL..
1d750 2d 2d 2d 2d 0d 0a 35 31 0d 0a 36 37 0d 0a 37 37  ----..51..67..77
1d760 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
1d770 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32  ort..SELECT col2
1d780 20 2a 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 32 30   * + col0 + - 20
1d790 20 2b 20 2b 20 28 20 63 6f 6c 30 20 2d 20 2b 20   + + ( col0 - + 
1d7a0 63 6f 6c 31 20 29 20 2a 20 2b 20 63 6f 6c 31 20  col1 ) * + col1 
1d7b0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
1d7c0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
1d7d0 0a 2d 34 36 36 31 0d 0a 32 32 33 36 0d 0a 39 36  .-4661..2236..96
1d7e0 37 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  79....onlyif mys
1d7f0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
1d800 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
1d810 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1d820 34 32 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 28  42..SELECT + - (
1d830 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 29 20   - COUNT( * ) ) 
1d840 2a 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  * - - COUNT( * )
1d850 20 2b 20 2d 20 32 30 20 41 53 20 63 6f 6c 30 20   + - 20 AS col0 
1d860 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
1d870 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 0d 0a 0d 0a  0..----..-11....
1d880 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1d890 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1d8a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1d8b0 61 62 65 6c 2d 36 34 32 0d 0a 53 45 4c 45 43 54  abel-642..SELECT
1d8c0 20 2b 20 2d 20 28 20 2d 20 43 4f 55 4e 54 20 28   + - ( - COUNT (
1d8d0 20 2a 20 29 20 29 20 2a 20 2d 20 2d 20 43 4f 55   * ) ) * - - COU
1d8e0 4e 54 20 28 20 2a 20 29 20 2b 20 2d 20 32 30 20  NT ( * ) + - 20 
1d8f0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
1d900 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
1d910 0a 2d 31 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-11....onlyif m
1d920 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
1d930 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
1d940 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1d950 72 74 20 6c 61 62 65 6c 2d 36 34 33 0d 0a 53 45  rt label-643..SE
1d960 4c 45 43 54 20 2b 20 38 37 20 44 49 56 20 37 31  LECT + 87 DIV 71
1d970 20 2a 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 33 31   * - col2 + - 31
1d980 20 2a 20 38 36 20 41 53 20 63 6f 6c 32 20 46 52   * 86 AS col2 FR
1d990 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
1d9a0 0a 2d 2d 2d 2d 0d 0a 2d 32 36 38 39 0d 0a 2d 32  .----..-2689..-2
1d9b0 37 30 36 0d 0a 2d 32 37 32 34 0d 0a 0d 0a 73 6b  706..-2724....sk
1d9c0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1d9d0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1d9e0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1d9f0 65 6c 2d 36 34 33 0d 0a 53 45 4c 45 43 54 20 2b  el-643..SELECT +
1da00 20 38 37 20 2f 20 37 31 20 2a 20 2d 20 63 6f 6c   87 / 71 * - col
1da10 32 20 2b 20 2d 20 33 31 20 2a 20 38 36 20 41 53  2 + - 31 * 86 AS
1da20 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
1da30 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
1da40 32 36 38 39 0d 0a 2d 32 37 30 36 0d 0a 2d 32 37  2689..-2706..-27
1da50 32 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  24....query I ro
1da60 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
1da70 36 32 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c  62 + col0 AS col
1da80 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
1da90 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 39 0d 0a  or0..----..149..
1daa0 31 35 39 0d 0a 37 37 0d 0a 0d 0a 71 75 65 72 79  159..77....query
1dab0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1dac0 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 2b 20  CT ALL - col2 + 
1dad0 2b 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 31 20  + col2 * - col1 
1dae0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
1daf0 0a 2d 31 31 39 36 0d 0a 2d 33 31 32 30 0d 0a 2d  .-1196..-3120..-
1db00 33 39 34 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20  3944....query I 
1db10 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1db20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20  DISTINCT + col1 
1db30 2a 20 2b 20 38 35 20 41 53 20 63 6f 6c 30 20 46  * + 85 AS col0 F
1db40 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
1db50 31 37 38 35 0d 0a 36 38 38 35 0d 0a 38 35 0d 0a  1785..6885..85..
1db60 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1db70 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 63 6f  t..SELECT - - co
1db80 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l2 AS col0 FROM 
1db90 74 61 62 31 20 57 48 45 52 45 20 4e 55 4c 4c 20  tab1 WHERE NULL 
1dba0 3e 3d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d  >= col2..----...
1dbb0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1dbc0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1dbd0 54 20 2b 20 38 30 20 2b 20 2b 20 63 6f 6c 32 20  T + 80 + + col2 
1dbe0 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
1dbf0 4e 4f 54 20 2b 20 63 6f 6c 30 20 49 53 20 4e 4f  NOT + col0 IS NO
1dc00 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  T NULL..----....
1dc10 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
1dc20 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
1dc30 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  CT * FROM tab2 W
1dc40 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 42 45  HERE NOT NULL BE
1dc50 54 57 45 45 4e 20 2b 20 2b 20 34 35 20 41 4e 44  TWEEN + + 45 AND
1dc60 20 2b 20 2d 20 37 33 20 2b 20 2d 20 33 31 0d 0a   + - 73 + - 31..
1dc70 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
1dc80 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1dc90 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  T * FROM tab2 WH
1dca0 45 52 45 20 2d 20 63 6f 6c 32 20 3d 20 28 20 63  ERE - col2 = ( c
1dcb0 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f  ol2 )..----....o
1dcc0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
1dcd0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
1dce0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1dcf0 74 20 6c 61 62 65 6c 2d 36 35 31 0d 0a 53 45 4c  t label-651..SEL
1dd00 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 32 36 20  ECT + COUNT( 26 
1dd10 29 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  ) FROM tab2 WHER
1dd20 45 20 28 20 2d 20 32 33 20 2a 20 2d 20 38 35 20  E ( - 23 * - 85 
1dd30 29 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 28 20  ) NOT BETWEEN ( 
1dd40 2b 20 63 6f 6c 30 20 29 20 41 4e 44 20 28 20 2b  + col0 ) AND ( +
1dd50 20 32 36 20 29 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   26 )..----..3..
1dd60 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1dd70 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1dd80 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1dd90 20 6c 61 62 65 6c 2d 36 35 31 0d 0a 53 45 4c 45   label-651..SELE
1dda0 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 32 36 20  CT + COUNT ( 26 
1ddb0 29 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  ) FROM tab2 WHER
1ddc0 45 20 28 20 2d 20 32 33 20 2a 20 2d 20 38 35 20  E ( - 23 * - 85 
1ddd0 29 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 28 20  ) NOT BETWEEN ( 
1dde0 2b 20 63 6f 6c 30 20 29 20 41 4e 44 20 28 20 2b  + col0 ) AND ( +
1ddf0 20 32 36 20 29 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   26 )..----..3..
1de00 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
1de10 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
1de20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  * FROM tab2 WHER
1de30 45 20 4e 4f 54 20 28 20 2d 20 2b 20 39 38 20 2b  E NOT ( - + 98 +
1de40 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 30   + col1 + + col0
1de50 20 2a 20 2d 20 63 6f 6c 32 20 2a 20 34 37 20 29   * - col2 * 47 )
1de60 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
1de70 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
1de80 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63   to 75c998aa53ac
1de90 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64  83218cbf2feb962d
1dea0 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20  0a49....query I 
1deb0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1dec0 63 6f 6c 31 20 2a 20 2b 20 2d 20 63 6f 6c 32 20  col1 * + - col2 
1ded0 2b 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32  + - col1 AS col2
1dee0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
1def0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 30 0d 0a  r0..----..-100..
1df00 2d 32 33 31 0d 0a 2d 33 38 38 38 0d 0a 0d 0a 71  -231..-3888....q
1df10 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1df20 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1df30 2b 20 38 37 20 2b 20 2d 20 33 39 20 46 52 4f 4d  + 87 + - 39 FROM
1df40 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
1df50 2d 2d 2d 0d 0a 34 38 0d 0a 0d 0a 71 75 65 72 79  ---..48....query
1df60 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1df70 43 54 20 31 37 20 2a 20 63 6f 6c 32 20 2a 20 2b  CT 17 * col2 * +
1df80 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
1df90 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
1dfa0 35 36 36 37 32 0d 0a 35 39 31 37 37 0d 0a 37 38  56672..59177..78
1dfb0 36 30 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  608....query I r
1dfc0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
1dfd0 4c 4c 20 2d 20 2b 20 28 20 63 6f 6c 32 20 29 20  LL - + ( col2 ) 
1dfe0 2b 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  + + col1 FROM ta
1dff0 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  b2 cor0..----..2
1e000 38 0d 0a 33 37 0d 0a 39 0d 0a 0d 0a 6f 6e 6c 79  8..37..9....only
1e010 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
1e020 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
1e030 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
1e040 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35 37  owsort label-657
1e050 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20  ..SELECT + col2 
1e060 44 49 56 20 2b 20 2b 20 63 6f 6c 30 20 2d 20 63  DIV + + col0 - c
1e070 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  ol0 FROM tab1 co
1e080 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 30 0d 0a 2d  r0..----..-50..-
1e090 38 35 0d 0a 2d 39 31 0d 0a 0d 0a 73 6b 69 70 69  85..-91....skipi
1e0a0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1e0b0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
1e0c0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1e0d0 36 35 37 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  657..SELECT + co
1e0e0 6c 32 20 2f 20 2b 20 2b 20 63 6f 6c 30 20 2d 20  l2 / + + col0 - 
1e0f0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 63  col0 FROM tab1 c
1e100 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 30 0d 0a  or0..----..-50..
1e110 2d 38 35 0d 0a 2d 39 31 0d 0a 0d 0a 73 6b 69 70  -85..-91....skip
1e120 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
1e130 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
1e140 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
1e150 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
1e160 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
1e170 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
1e180 20 31 33 20 2b 20 2b 20 31 20 2b 20 2d 20 63 6f   13 + + 1 + - co
1e190 6c 31 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  l1 col1 FROM tab
1e1a0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
1e1b0 0a 2d 33 33 0d 0a 30 0d 0a 39 0d 0a 0d 0a 6f 6e  .-33..0..9....on
1e1c0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
1e1d0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
1e1e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1e1f0 20 6c 61 62 65 6c 2d 36 35 39 0d 0a 53 45 4c 45   label-659..SELE
1e200 43 54 20 4d 41 58 28 20 44 49 53 54 49 4e 43 54  CT MAX( DISTINCT
1e210 20 34 39 20 29 20 46 52 4f 4d 20 74 61 62 31 20   49 ) FROM tab1 
1e220 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
1e230 74 61 62 31 20 41 53 20 63 6f 72 31 0d 0a 2d 2d  tab1 AS cor1..--
1e240 2d 2d 0d 0a 34 39 0d 0a 0d 0a 73 6b 69 70 69 66  --..49....skipif
1e250 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1e260 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1e270 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1e280 35 39 0d 0a 53 45 4c 45 43 54 20 4d 41 58 20 28  59..SELECT MAX (
1e290 20 44 49 53 54 49 4e 43 54 20 34 39 20 29 20 46   DISTINCT 49 ) F
1e2a0 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 20 43 52  ROM tab1 cor0 CR
1e2b0 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20 41 53  OSS JOIN tab1 AS
1e2c0 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 34 39 0d   cor1..----..49.
1e2d0 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
1e2e0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
1e2f0 2d 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32  - + col2 AS col2
1e300 2c 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46  , col1 AS col0 F
1e310 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1e320 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a 35 0d 0a  ..----..-59..5..
1e330 2d 36 38 0d 0a 34 37 0d 0a 2d 39 36 0d 0a 31 34  -68..47..-96..14
1e340 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1e350 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
1e360 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  tax: ..query II 
1e370 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 36  rowsort label-66
1e380 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  1..SELECT ALL - 
1e390 34 32 20 2d 20 2b 20 4d 49 4e 28 20 2b 20 63 6f  42 - + MIN( + co
1e3a0 6c 30 20 29 2c 20 2b 20 4d 49 4e 28 20 2b 20 63  l0 ), + MIN( + c
1e3b0 6f 6c 32 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20  ol2 ) col0 FROM 
1e3c0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
1e3d0 2d 2d 0d 0a 2d 38 38 0d 0a 32 33 0d 0a 0d 0a 73  --..-88..23....s
1e3e0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1e3f0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
1e400 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
1e410 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
1e420 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
1e430 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
1e440 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20  lumns..query II 
1e450 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 36  rowsort label-66
1e460 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  1..SELECT ALL - 
1e470 34 32 20 2d 20 2b 20 4d 49 4e 20 28 20 2b 20 63  42 - + MIN ( + c
1e480 6f 6c 30 20 29 2c 20 2b 20 4d 49 4e 20 28 20 2b  ol0 ), + MIN ( +
1e490 20 63 6f 6c 32 20 29 20 63 6f 6c 30 20 46 52 4f   col2 ) col0 FRO
1e4a0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
1e4b0 2d 2d 2d 2d 0d 0a 2d 38 38 0d 0a 32 33 0d 0a 0d  ----..-88..23...
1e4c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1e4d0 0d 0a 53 45 4c 45 43 54 20 2b 20 36 39 20 2a 20  ..SELECT + 69 * 
1e4e0 2b 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32  + - col0 AS col2
1e4f0 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d   FROM tab0 cor0.
1e500 0a 2d 2d 2d 2d 0d 0a 2d 31 30 33 35 0d 0a 2d 36  .----..-1035..-6
1e510 30 30 33 0d 0a 2d 36 36 39 33 0d 0a 0d 0a 71 75  003..-6693....qu
1e520 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
1e530 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
1e540 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
1e550 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 49  E NOT NULL NOT I
1e560 4e 20 28 20 35 35 20 29 0d 0a 2d 2d 2d 2d 0d 0a  N ( 55 )..----..
1e570 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1e580 74 0d 0a 53 45 4c 45 43 54 20 28 20 2d 20 63 6f  t..SELECT ( - co
1e590 6c 32 20 29 20 2a 20 2d 20 63 6f 6c 31 20 41 53  l2 ) * - col1 AS
1e5a0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
1e5b0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
1e5c0 54 20 28 20 4e 55 4c 4c 20 29 20 4e 4f 54 20 49  T ( NULL ) NOT I
1e5d0 4e 20 28 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d  N ( col2 )..----
1e5e0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1e5f0 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
1e600 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
1e610 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
1e620 6c 61 62 65 6c 2d 36 36 35 0d 0a 53 45 4c 45 43  label-665..SELEC
1e630 54 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31  T - col2 AS col1
1e640 2c 20 2b 20 28 20 36 35 20 29 20 2d 20 2d 20 63  , + ( 65 ) - - c
1e650 6f 6c 30 20 44 49 56 20 63 6f 6c 31 20 2b 20 63  ol0 DIV col1 + c
1e660 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol1 AS col1 FROM
1e670 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
1e680 2d 2d 2d 0d 0a 2d 31 30 0d 0a 39 30 0d 0a 2d 34  ---..-10..90..-4
1e690 37 0d 0a 31 34 36 0d 0a 2d 39 39 0d 0a 31 36 33  7..146..-99..163
1e6a0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1e6b0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1e6c0 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
1e6d0 6f 72 74 20 6c 61 62 65 6c 2d 36 36 35 0d 0a 53  ort label-665..S
1e6e0 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 41 53 20  ELECT - col2 AS 
1e6f0 63 6f 6c 31 2c 20 2b 20 28 20 36 35 20 29 20 2d  col1, + ( 65 ) -
1e700 20 2d 20 63 6f 6c 30 20 2f 20 63 6f 6c 31 20 2b   - col0 / col1 +
1e710 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52   col1 AS col1 FR
1e720 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
1e730 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 39 30 0d 0a  .----..-10..90..
1e740 2d 34 37 0d 0a 31 34 36 0d 0a 2d 39 39 0d 0a 31  -47..146..-99..1
1e750 36 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  63....onlyif mys
1e760 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
1e770 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
1e780 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1e790 36 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  66..SELECT ALL -
1e7a0 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2d 20   COUNT( * ) * - 
1e7b0 37 33 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  73 FROM tab1 AS 
1e7c0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 39 0d  cor0..----..219.
1e7d0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1e7e0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1e7f0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1e800 74 20 6c 61 62 65 6c 2d 36 36 36 0d 0a 53 45 4c  t label-666..SEL
1e810 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 20  ECT ALL - COUNT 
1e820 28 20 2a 20 29 20 2a 20 2d 20 37 33 20 46 52 4f  ( * ) * - 73 FRO
1e830 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
1e840 2d 2d 2d 2d 0d 0a 32 31 39 0d 0a 0d 0a 6f 6e 6c  ----..219....onl
1e850 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
1e860 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
1e870 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
1e880 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 36  rowsort label-66
1e890 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41  7..SELECT ALL CA
1e8a0 53 54 28 20 2b 20 28 20 2b 20 63 6f 6c 30 20 29  ST( + ( + col0 )
1e8b0 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2d   AS SIGNED ) * -
1e8c0 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20   + col1 AS col0 
1e8d0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
1e8e0 0a 2d 32 33 34 36 0d 0a 2d 34 39 32 38 0d 0a 2d  .-2346..-4928..-
1e8f0 35 30 32 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  5025....skipif m
1e900 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1e910 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1e920 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 36 37  owsort label-667
1e930 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41 53  ..SELECT ALL CAS
1e940 54 20 28 20 2b 20 28 20 2b 20 63 6f 6c 30 20 29  T ( + ( + col0 )
1e950 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20   AS INTEGER ) * 
1e960 2d 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30  - + col1 AS col0
1e970 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
1e980 0d 0a 2d 32 33 34 36 0d 0a 2d 34 39 32 38 0d 0a  ..-2346..-4928..
1e990 2d 35 30 32 35 0d 0a 0d 0a 71 75 65 72 79 20 49  -5025....query I
1e9a0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1e9b0 54 20 35 39 2c 20 32 33 20 41 53 20 63 6f 6c 32  T 59, 23 AS col2
1e9c0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
1e9d0 0d 0a 35 39 0d 0a 32 33 0d 0a 35 39 0d 0a 32 33  ..59..23..59..23
1e9e0 0d 0a 35 39 0d 0a 32 33 0d 0a 0d 0a 71 75 65 72  ..59..23....quer
1e9f0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1ea00 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63  ECT DISTINCT + c
1ea10 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 57 48  ol0 FROM tab2 WH
1ea20 45 52 45 20 2b 20 2b 20 63 6f 6c 32 20 3c 3e 20  ERE + + col2 <> 
1ea30 2b 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a  + + col0..----..
1ea40 34 36 0d 0a 36 34 0d 0a 37 35 0d 0a 0d 0a 71 75  46..64..75....qu
1ea50 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1ea60 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
1ea70 20 38 20 2a 20 2d 20 2b 20 34 30 20 46 52 4f 4d   8 * - + 40 FROM
1ea80 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 32   tab1..----..-32
1ea90 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
1eaa0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
1eab0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49  ntax: ..query II
1eac0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1ead0 37 31 0d 0a 53 45 4c 45 43 54 20 37 37 20 41 53  71..SELECT 77 AS
1eae0 20 63 6f 6c 31 2c 20 4d 41 58 28 20 2b 20 2d 20   col1, MAX( + - 
1eaf0 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 31  col0 ) FROM tab1
1eb00 0d 0a 2d 2d 2d 2d 0d 0a 37 37 0d 0a 2d 35 31 0d  ..----..77..-51.
1eb10 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1eb20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1eb30 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
1eb40 72 74 20 6c 61 62 65 6c 2d 36 37 31 0d 0a 53 45  rt label-671..SE
1eb50 4c 45 43 54 20 37 37 20 41 53 20 63 6f 6c 31 2c  LECT 77 AS col1,
1eb60 20 4d 41 58 20 28 20 2b 20 2d 20 63 6f 6c 30 20   MAX ( + - col0 
1eb70 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  ) FROM tab1..---
1eb80 2d 0d 0a 37 37 0d 0a 2d 35 31 0d 0a 0d 0a 71 75  -..77..-51....qu
1eb90 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
1eba0 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
1ebb0 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
1ebc0 45 20 4e 4f 54 20 63 6f 6c 31 20 2b 20 63 6f 6c  E NOT col1 + col
1ebd0 30 20 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  0 > NULL..----..
1ebe0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1ebf0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
1ec00 2d 20 63 6f 6c 31 20 2b 20 63 6f 6c 31 20 2a 20  - col1 + col1 * 
1ec10 2b 20 39 36 20 2a 20 39 35 20 2b 20 63 6f 6c 30  + 96 * 95 + col0
1ec20 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
1ec30 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63  b1 WHERE NOT + c
1ec40 6f 6c 32 20 2b 20 34 37 20 49 53 20 4e 4f 54 20  ol2 + 47 IS NOT 
1ec50 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
1ec60 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
1ec70 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
1ec80 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
1ec90 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1eca0 37 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  74..SELECT ALL -
1ecb0 20 2d 20 33 38 20 44 49 56 20 2b 20 63 6f 6c 32   - 38 DIV + col2
1ecc0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
1ecd0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a  r0..----..0..0..
1ece0 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
1ecf0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1ed00 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1ed10 6f 72 74 20 6c 61 62 65 6c 2d 36 37 34 0d 0a 53  ort label-674..S
1ed20 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 33 38  ELECT ALL - - 38
1ed30 20 2f 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74   / + col2 FROM t
1ed40 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
1ed50 2d 0d 0a 30 0d 0a 30 0d 0a 31 0d 0a 0d 0a 6f 6e  -..0..0..1....on
1ed60 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
1ed70 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
1ed80 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
1ed90 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1eda0 37 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  75..SELECT ALL +
1edb0 20 38 39 20 2a 20 63 6f 6c 31 20 44 49 56 20 2b   89 * col1 DIV +
1edc0 20 2b 20 34 39 20 2b 20 2b 20 63 6f 6c 32 20 2a   + 49 + + col2 *
1edd0 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 2d 20 32 30   + col1 + + - 20
1ede0 20 2a 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c   * - col2 AS col
1edf0 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
1ee00 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 30 38 30 0d  or0..----..2080.
1ee10 0a 34 34 38 0d 0a 34 38 39 34 0d 0a 0d 0a 73 6b  .448..4894....sk
1ee20 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1ee30 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1ee40 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1ee50 65 6c 2d 36 37 35 0d 0a 53 45 4c 45 43 54 20 41  el-675..SELECT A
1ee60 4c 4c 20 2b 20 38 39 20 2a 20 63 6f 6c 31 20 2f  LL + 89 * col1 /
1ee70 20 2b 20 2b 20 34 39 20 2b 20 2b 20 63 6f 6c 32   + + 49 + + col2
1ee80 20 2a 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 2d 20   * + col1 + + - 
1ee90 32 30 20 2a 20 2d 20 63 6f 6c 32 20 41 53 20 63  20 * - col2 AS c
1eea0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
1eeb0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 30 38   cor0..----..208
1eec0 30 0d 0a 34 34 38 0d 0a 34 38 39 34 0d 0a 0d 0a  0..448..4894....
1eed0 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
1eee0 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
1eef0 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
1ef00 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
1ef10 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
1ef20 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1ef30 20 2d 20 28 20 2b 20 36 30 20 29 20 63 6f 6c 30   - ( + 60 ) col0
1ef40 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
1ef50 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 30 0d 0a 2d  r0..----..-60..-
1ef60 36 30 0d 0a 2d 36 30 0d 0a 0d 0a 71 75 65 72 79  60..-60....query
1ef70 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1ef80 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 41 53  CT ALL - col1 AS
1ef90 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
1efa0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20  AS cor0 WHERE - 
1efb0 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 32 20 2a 20  col0 * - col2 * 
1efc0 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  col1 IS NULL..--
1efd0 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
1efe0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
1eff0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
1f000 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1f010 37 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  78..SELECT DISTI
1f020 4e 43 54 20 2b 20 4d 49 4e 28 20 41 4c 4c 20 2b  NCT + MIN( ALL +
1f030 20 32 37 20 29 20 2b 20 2b 20 2d 20 36 32 20 46   27 ) + + - 62 F
1f040 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d  ROM tab2 cor0..-
1f050 2d 2d 2d 0d 0a 2d 33 35 0d 0a 0d 0a 73 6b 69 70  ---..-35....skip
1f060 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1f070 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1f080 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1f090 2d 36 37 38 0d 0a 53 45 4c 45 43 54 20 44 49 53  -678..SELECT DIS
1f0a0 54 49 4e 43 54 20 2b 20 4d 49 4e 20 28 20 41 4c  TINCT + MIN ( AL
1f0b0 4c 20 2b 20 32 37 20 29 20 2b 20 2b 20 2d 20 36  L + 27 ) + + - 6
1f0c0 32 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  2 FROM tab2 cor0
1f0d0 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 35 0d 0a 0d 0a 71  ..----..-35....q
1f0e0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
1f0f0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
1f100 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1f110 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c   WHERE NOT - col
1f120 32 20 2a 20 2d 20 63 6f 6c 31 20 49 4e 20 28 20  2 * - col1 IN ( 
1f130 2d 20 2d 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d  - - col0 )..----
1f140 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
1f150 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31 62  ng to c6c0a4111b
1f160 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65 34  36d04dbc811a11e4
1f170 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20  d54cad....query 
1f180 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
1f190 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
1f1a0 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
1f1b0 45 20 2b 20 63 6f 6c 31 20 3c 3e 20 2d 20 63 6f  E + col1 <> - co
1f1c0 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  l1..----..9 valu
1f1d0 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36  es hashing to c6
1f1e0 63 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63  c0a4111b36d04dbc
1f1f0 38 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a  811a11e4d54cad..
1f200 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
1f210 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
1f220 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
1f230 57 48 45 52 45 20 31 31 20 3c 3d 20 4e 55 4c 4c  WHERE 11 <= NULL
1f240 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
1f250 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1f260 54 20 44 49 53 54 49 4e 43 54 20 36 30 20 2b 20  T DISTINCT 60 + 
1f270 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  - col1 FROM tab1
1f280 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1f290 31 33 0d 0a 34 36 0d 0a 35 35 0d 0a 0d 0a 71 75  13..46..55....qu
1f2a0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1f2b0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
1f2c0 20 63 6f 6c 31 20 2a 20 2b 20 2b 20 63 6f 6c 30   col1 * + + col0
1f2d0 20 2a 20 31 31 20 46 52 4f 4d 20 74 61 62 31 20   * 11 FROM tab1 
1f2e0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20  AS cor0 WHERE ( 
1f2f0 4e 55 4c 4c 20 29 20 49 4e 20 28 20 63 6f 6c 31  NULL ) IN ( col1
1f300 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72   )..----....quer
1f310 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
1f320 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
1f330 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
1f340 45 52 45 20 4e 55 4c 4c 20 3c 3e 20 2b 20 35 33  ERE NULL <> + 53
1f350 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
1f360 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
1f370 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
1f380 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
1f390 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38 35 0d 0a  sort label-685..
1f3a0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1f3b0 2d 20 31 20 44 49 56 20 2d 20 63 6f 6c 31 20 41  - 1 DIV - col1 A
1f3c0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
1f3d0 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69  ..----..0....ski
1f3e0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1f3f0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1f400 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1f410 6c 2d 36 38 35 0d 0a 53 45 4c 45 43 54 20 44 49  l-685..SELECT DI
1f420 53 54 49 4e 43 54 20 2d 20 31 20 2f 20 2d 20 63  STINCT - 1 / - c
1f430 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol1 AS col0 FROM
1f440 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   tab2..----..0..
1f450 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1f460 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
1f470 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
1f480 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38 36 0d 0a  sort label-686..
1f490 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54  SELECT ALL COUNT
1f4a0 28 20 2a 20 29 20 2b 20 2b 20 2d 20 34 36 20 63  ( * ) + + - 46 c
1f4b0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
1f4c0 2d 2d 2d 0d 0a 2d 34 33 0d 0a 0d 0a 73 6b 69 70  ---..-43....skip
1f4d0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1f4e0 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
1f4f0 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
1f500 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
1f510 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
1f520 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
1f530 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
1f540 6f 72 74 20 6c 61 62 65 6c 2d 36 38 36 0d 0a 53  ort label-686..S
1f550 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20  ELECT ALL COUNT 
1f560 28 20 2a 20 29 20 2b 20 2b 20 2d 20 34 36 20 63  ( * ) + + - 46 c
1f570 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
1f580 2d 2d 2d 0d 0a 2d 34 33 0d 0a 0d 0a 6f 6e 6c 79  ---..-43....only
1f590 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
1f5a0 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
1f5b0 79 70 65 3a 20 44 49 56 20 66 6f 72 20 69 6e 74  ype: DIV for int
1f5c0 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
1f5d0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1f5e0 20 6c 61 62 65 6c 2d 36 38 37 0d 0a 53 45 4c 45   label-687..SELE
1f5f0 43 54 20 44 49 53 54 49 4e 43 54 20 43 41 53 54  CT DISTINCT CAST
1f600 28 20 2d 20 63 6f 6c 32 20 41 53 20 53 49 47 4e  ( - col2 AS SIGN
1f610 45 44 20 29 20 44 49 56 20 2d 20 2b 20 63 6f 6c  ED ) DIV - + col
1f620 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  1 AS col0 FROM t
1f630 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31 31  ab1..----..1..11
1f640 0d 0a 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..6....skipif my
1f650 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1f660 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1f670 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38 37 0d  wsort label-687.
1f680 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1f690 20 43 41 53 54 20 28 20 2d 20 63 6f 6c 32 20 41   CAST ( - col2 A
1f6a0 53 20 49 4e 54 45 47 45 52 20 29 20 2f 20 2d 20  S INTEGER ) / - 
1f6b0 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46  + col1 AS col0 F
1f6c0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
1f6d0 31 0d 0a 31 31 0d 0a 36 0d 0a 0d 0a 71 75 65 72  1..11..6....quer
1f6e0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1f6f0 45 43 54 20 63 6f 6c 30 20 2b 20 36 20 46 52 4f  ECT col0 + 6 FRO
1f700 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30  M tab0..----..10
1f710 33 0d 0a 32 31 0d 0a 39 33 0d 0a 0d 0a 71 75 65  3..21..93....que
1f720 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1f730 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 31 39  LECT DISTINCT 19
1f740 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20   - col1 AS col2 
1f750 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
1f760 0a 2d 32 38 0d 0a 31 34 0d 0a 35 0d 0a 0d 0a 6f  .-28..14..5....o
1f770 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
1f780 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
1f790 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
1f7a0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1f7b0 36 39 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  690..SELECT ALL 
1f7c0 43 41 53 54 28 20 2d 20 39 39 20 41 53 20 53 49  CAST( - 99 AS SI
1f7d0 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62 30  GNED ) FROM tab0
1f7e0 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 39 0d 0a 2d 39 39  ..----..-99..-99
1f7f0 0d 0a 2d 39 39 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-99....skipif 
1f800 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1f810 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1f820 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39  rowsort label-69
1f830 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41  0..SELECT ALL CA
1f840 53 54 20 28 20 2d 20 39 39 20 41 53 20 49 4e 54  ST ( - 99 AS INT
1f850 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 30  EGER ) FROM tab0
1f860 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 39 0d 0a 2d 39 39  ..----..-99..-99
1f870 0d 0a 2d 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-99....onlyif 
1f880 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
1f890 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
1f8a0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1f8b0 6c 2d 36 39 31 0d 0a 53 45 4c 45 43 54 20 44 49  l-691..SELECT DI
1f8c0 53 54 49 4e 43 54 20 2b 20 2d 20 43 4f 55 4e 54  STINCT + - COUNT
1f8d0 28 20 31 36 20 29 20 46 52 4f 4d 20 74 61 62 30  ( 16 ) FROM tab0
1f8e0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1f8f0 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  -3....skipif mys
1f900 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1f910 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1f920 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39 31 0d 0a  sort label-691..
1f930 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1f940 2b 20 2d 20 43 4f 55 4e 54 20 28 20 31 36 20 29  + - COUNT ( 16 )
1f950 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
1f960 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a  r0..----..-3....
1f970 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
1f980 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63  ..SELECT ALL + c
1f990 6f 6c 30 20 41 53 20 63 6f 6c 31 2c 20 39 36 20  ol0 AS col1, 96 
1f9a0 2a 20 2d 20 2d 20 63 6f 6c 30 20 2d 20 2b 20 2d  * - - col0 - + -
1f9b0 20 35 30 20 46 52 4f 4d 20 74 61 62 32 20 63 6f   50 FROM tab2 co
1f9c0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 34 34  r0..----..46..44
1f9d0 36 36 0d 0a 36 34 0d 0a 36 31 39 34 0d 0a 37 35  66..64..6194..75
1f9e0 0d 0a 37 32 35 30 0d 0a 0d 0a 71 75 65 72 79 20  ..7250....query 
1f9f0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1fa00 54 20 2d 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 63  T - - col1 * + c
1fa10 6f 6c 30 20 2a 20 63 6f 6c 30 20 2a 20 31 37 20  ol0 * col0 * 17 
1fa20 2b 20 2d 20 2d 20 37 31 20 2a 20 2b 20 63 6f 6c  + - - 71 * + col
1fa30 31 20 2a 20 2b 20 2b 20 31 39 20 2b 20 63 6f 6c  1 * + + 19 + col
1fa40 31 20 2b 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20  1 + + col2 FROM 
1fa50 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
1fa60 2d 2d 0d 0a 36 32 30 39 33 34 0d 0a 36 33 38 30  --..620934..6380
1fa70 33 34 0d 0a 36 36 38 30 30 33 37 0d 0a 0d 0a 6f  34..6680037....o
1fa80 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
1fa90 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
1faa0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
1fab0 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
1fac0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1fad0 6c 2d 36 39 34 0d 0a 53 45 4c 45 43 54 20 2b 20  l-694..SELECT + 
1fae0 43 41 53 54 28 20 2b 20 4d 41 58 28 20 2b 20 63  CAST( + MAX( + c
1faf0 6f 6c 32 20 29 20 41 53 20 53 49 47 4e 45 44 20  ol2 ) AS SIGNED 
1fb00 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
1fb10 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
1fb20 2d 0d 0a 35 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..58....skipif 
1fb30 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1fb40 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1fb50 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39  rowsort label-69
1fb60 34 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54  4..SELECT + CAST
1fb70 20 28 20 2b 20 4d 41 58 20 28 20 2b 20 63 6f 6c   ( + MAX ( + col
1fb80 32 20 29 20 41 53 20 49 4e 54 45 47 45 52 20 29  2 ) AS INTEGER )
1fb90 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
1fba0 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
1fbb0 0d 0a 35 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..58....onlyif m
1fbc0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
1fbd0 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
1fbe0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1fbf0 72 74 20 6c 61 62 65 6c 2d 36 39 35 0d 0a 53 45  rt label-695..SE
1fc00 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 2a 20  LECT ALL col0 * 
1fc10 2b 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  + + CAST( NULL A
1fc20 53 20 53 49 47 4e 45 44 20 29 20 2d 20 2d 20 63  S SIGNED ) - - c
1fc30 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol0 FROM tab2..-
1fc40 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
1fc50 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
1fc60 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1fc70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1fc80 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39  rowsort label-69
1fc90 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f  5..SELECT ALL co
1fca0 6c 30 20 2a 20 2b 20 2b 20 43 41 53 54 20 28 20  l0 * + + CAST ( 
1fcb0 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
1fcc0 29 20 2d 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20  ) - - col0 FROM 
1fcd0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab2..----..NULL
1fce0 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
1fcf0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
1fd00 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
1fd10 20 74 61 62 31 20 57 48 45 52 45 20 4e 55 4c 4c   tab1 WHERE NULL
1fd20 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2d 20 63   NOT BETWEEN - c
1fd30 6f 6c 30 20 2d 20 2d 20 2b 20 32 36 20 41 4e 44  ol0 - - + 26 AND
1fd40 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73   NULL..----....s
1fd50 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
1fd60 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
1fd70 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
1fd80 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
1fd90 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
1fda0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1fdb0 41 4c 4c 20 2b 20 63 6f 6c 32 20 63 6f 6c 30 20  ALL + col2 col0 
1fdc0 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
1fdd0 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c  NOT NULL IS NULL
1fde0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
1fdf0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1fe00 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 2a 20 37  T ALL - col0 * 7
1fe10 39 20 2b 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20  9 + + col0 FROM 
1fe20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
1fe30 52 45 20 4e 4f 54 20 28 20 39 20 29 20 2f 20 63  RE NOT ( 9 ) / c
1fe40 6f 6c 32 20 2f 20 2d 20 35 39 20 2a 20 2d 20 2d  ol2 / - 59 * - -
1fe50 20 63 6f 6c 30 20 2d 20 2b 20 63 6f 6c 32 20 2f   col0 - + col2 /
1fe60 20 2b 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d   + col2 IS NULL.
1fe70 0a 2d 2d 2d 2d 0d 0a 2d 33 39 37 38 0d 0a 2d 36  .----..-3978..-6
1fe80 36 33 30 0d 0a 2d 37 30 39 38 0d 0a 0d 0a 6f 6e  630..-7098....on
1fe90 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
1fea0 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
1feb0 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
1fec0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1fed0 39 39 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20  99..SELECT col1 
1fee0 2a 20 2b 20 63 6f 6c 32 20 44 49 56 20 2d 20 2d  * + col2 DIV - -
1fef0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
1ff00 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35  AS cor0..----..5
1ff10 31 0d 0a 36 37 0d 0a 37 37 0d 0a 0d 0a 73 6b 69  1..67..77....ski
1ff20 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1ff30 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1ff40 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1ff50 6c 2d 36 39 39 0d 0a 53 45 4c 45 43 54 20 63 6f  l-699..SELECT co
1ff60 6c 31 20 2a 20 2b 20 63 6f 6c 32 20 2f 20 2d 20  l1 * + col2 / - 
1ff70 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  - col2 FROM tab2
1ff80 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1ff90 35 31 0d 0a 36 37 0d 0a 37 37 0d 0a 0d 0a 71 75  51..67..77....qu
1ffa0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1ffb0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
1ffc0 20 37 37 20 2a 20 32 30 20 46 52 4f 4d 20 74 61   77 * 20 FROM ta
1ffd0 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
1ffe0 0d 0a 31 35 34 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..1540....onlyif
1fff0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
20000 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
20010 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72  e: ..query III r
20020 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 30 31  owsort label-701
20030 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
20040 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
20050 52 45 20 4e 4f 54 20 63 6f 6c 31 20 2f 20 2d 20  RE NOT col1 / - 
20060 28 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  ( - CAST( NULL A
20070 53 20 53 49 47 4e 45 44 20 29 20 29 20 2d 20 2b  S SIGNED ) ) - +
20080 20 2d 20 63 6f 6c 31 20 3e 20 4e 55 4c 4c 0d 0a   - col1 > NULL..
20090 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ----....skipif m
200a0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
200b0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49  tible..query III
200c0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
200d0 30 31 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  01..SELECT * FRO
200e0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
200f0 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20 2f 20  HERE NOT col1 / 
20100 2d 20 28 20 2d 20 43 41 53 54 20 28 20 4e 55 4c  - ( - CAST ( NUL
20110 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29  L AS INTEGER ) )
20120 20 2d 20 2b 20 2d 20 63 6f 6c 31 20 3e 20 4e 55   - + - col1 > NU
20130 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
20140 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
20150 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a  ELECT DISTINCT *
20160 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
20170 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20 28 20 2d   NULL NOT IN ( -
20180 20 2d 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c 30 20   - col2, + col0 
20190 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  )..----....onlyi
201a0 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
201b0 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
201c0 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
201d0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 30 33 0d  wsort label-703.
201e0 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 44 49 56  .SELECT col1 DIV
201f0 20 2b 20 32 32 20 46 52 4f 4d 20 74 61 62 31 0d   + 22 FROM tab1.
20200 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 32 0d 0a  .----..0..0..2..
20210 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
20220 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
20230 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
20240 20 6c 61 62 65 6c 2d 37 30 33 0d 0a 53 45 4c 45   label-703..SELE
20250 43 54 20 63 6f 6c 31 20 2f 20 2b 20 32 32 20 46  CT col1 / + 22 F
20260 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
20270 30 0d 0a 30 0d 0a 32 0d 0a 0d 0a 6f 6e 6c 79 69  0..0..2....onlyi
20280 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
20290 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
202a0 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
202b0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 30 34 0d  wsort label-704.
202c0 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54 28 20  .SELECT + CAST( 
202d0 2d 20 2b 20 28 20 63 6f 6c 32 20 29 20 41 53 20  - + ( col2 ) AS 
202e0 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61  SIGNED ) FROM ta
202f0 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63  b0 WHERE NOT + c
20300 6f 6c 31 20 2b 20 2d 20 63 6f 6c 30 20 49 53 20  ol1 + - col0 IS 
20310 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d  NULL..----..-10.
20320 0a 2d 34 37 0d 0a 2d 39 39 0d 0a 0d 0a 73 6b 69  .-47..-99....ski
20330 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
20340 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
20350 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
20360 6c 2d 37 30 34 0d 0a 53 45 4c 45 43 54 20 2b 20  l-704..SELECT + 
20370 43 41 53 54 20 28 20 2d 20 2b 20 28 20 63 6f 6c  CAST ( - + ( col
20380 32 20 29 20 41 53 20 49 4e 54 45 47 45 52 20 29  2 ) AS INTEGER )
20390 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
203a0 20 4e 4f 54 20 2b 20 63 6f 6c 31 20 2b 20 2d 20   NOT + col1 + - 
203b0 63 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  col0 IS NULL..--
203c0 2d 2d 0d 0a 2d 31 30 0d 0a 2d 34 37 0d 0a 2d 39  --..-10..-47..-9
203d0 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  9....query I row
203e0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
203f0 20 63 6f 6c 32 20 2a 20 28 20 2b 20 28 20 2d 20   col2 * ( + ( - 
20400 2b 20 30 20 29 20 29 20 46 52 4f 4d 20 74 61 62  + 0 ) ) FROM tab
20410 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30  1..----..0..0..0
20420 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
20430 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
20440 49 4e 43 54 20 31 30 20 2a 20 2b 20 32 34 20 41  INCT 10 * + 24 A
20450 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
20460 0d 0a 2d 2d 2d 2d 0d 0a 32 34 30 0d 0a 0d 0a 6f  ..----..240....o
20470 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
20480 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
20490 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
204a0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
204b0 37 30 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  707..SELECT ALL 
204c0 2b 20 63 6f 6c 32 20 44 49 56 20 2d 20 2d 20 39  + col2 DIV - - 9
204d0 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
204e0 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b  -..0..0..0....sk
204f0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
20500 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
20510 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
20520 65 6c 2d 37 30 37 0d 0a 53 45 4c 45 43 54 20 41  el-707..SELECT A
20530 4c 4c 20 2b 20 63 6f 6c 32 20 2f 20 2d 20 2d 20  LL + col2 / - - 
20540 39 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  91 FROM tab2..--
20550 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 71  --..0..0..0....q
20560 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
20570 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20  SELECT ALL col0 
20580 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
20590 32 20 57 48 45 52 45 20 2b 20 63 6f 6c 32 20 2b  2 WHERE + col2 +
205a0 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 31   + col0 * - col1
205b0 20 2b 20 2b 20 2d 20 28 20 2d 20 63 6f 6c 31 20   + + - ( - col1 
205c0 29 20 3e 3d 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d  ) >= ( NULL )..-
205d0 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
205e0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
205f0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
20600 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
20610 37 30 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  709..SELECT DIST
20620 49 4e 43 54 20 2d 20 4d 49 4e 28 20 44 49 53 54  INCT - MIN( DIST
20630 49 4e 43 54 20 2b 20 35 32 20 29 20 41 53 20 63  INCT + 52 ) AS c
20640 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
20650 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 32   cor0..----..-52
20660 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
20670 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
20680 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
20690 72 74 20 6c 61 62 65 6c 2d 37 30 39 0d 0a 53 45  rt label-709..SE
206a0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
206b0 4d 49 4e 20 28 20 44 49 53 54 49 4e 43 54 20 2b  MIN ( DISTINCT +
206c0 20 35 32 20 29 20 41 53 20 63 6f 6c 31 20 46 52   52 ) AS col1 FR
206d0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
206e0 0a 2d 2d 2d 2d 0d 0a 2d 35 32 0d 0a 0d 0a 71 75  .----..-52....qu
206f0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
20700 45 4c 45 43 54 20 2d 20 28 20 28 20 2d 20 63 6f  ELECT - ( ( - co
20710 6c 31 20 29 20 29 20 2a 20 2d 20 63 6f 6c 31 20  l1 ) ) * - col1 
20720 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
20730 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 36 30 31 0d 0a  0..----..-2601..
20740 2d 34 34 38 39 0d 0a 2d 35 39 32 39 0d 0a 0d 0a  -4489..-5929....
20750 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
20760 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
20770 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
20780 72 74 20 6c 61 62 65 6c 2d 37 31 31 0d 0a 53 45  rt label-711..SE
20790 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
207a0 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  - COUNT( * ) AS 
207b0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
207c0 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  S cor0 CROSS JOI
207d0 4e 20 74 61 62 31 20 41 53 20 63 6f 72 31 0d 0a  N tab1 AS cor1..
207e0 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 73 6b 69 70  ----..-9....skip
207f0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
20800 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
20810 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
20820 2d 37 31 31 0d 0a 53 45 4c 45 43 54 20 44 49 53  -711..SELECT DIS
20830 54 49 4e 43 54 20 2b 20 2d 20 43 4f 55 4e 54 20  TINCT + - COUNT 
20840 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ( * ) AS col2 FR
20850 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
20860 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20  CROSS JOIN tab1 
20870 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor1..----..-
20880 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  9....query I row
20890 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
208a0 20 2b 20 36 20 41 53 20 63 6f 6c 30 20 46 52 4f   + 6 AS col0 FRO
208b0 4d 20 74 61 62 31 20 63 6f 72 30 20 43 52 4f 53  M tab1 cor0 CROS
208c0 53 20 4a 4f 49 4e 20 74 61 62 31 20 41 53 20 63  S JOIN tab1 AS c
208d0 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  or1..----..9 val
208e0 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 35  ues hashing to 5
208f0 64 31 63 62 39 30 65 64 35 38 66 61 37 35 37 33  d1cb90ed58fa7573
20900 38 39 35 64 32 66 39 35 62 32 31 31 38 32 31 0d  895d2f95b211821.
20910 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
20920 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
20930 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
20940 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
20950 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
20960 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
20970 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
20980 32 38 20 63 6f 6c 31 2c 20 2d 20 63 6f 6c 32 20  28 col1, - col2 
20990 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
209a0 0a 2d 32 38 0d 0a 2d 31 30 0d 0a 2d 32 38 0d 0a  .-28..-10..-28..
209b0 2d 34 37 0d 0a 2d 32 38 0d 0a 2d 39 39 0d 0a 0d  -47..-28..-99...
209c0 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
209d0 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
209e0 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
209f0 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
20a00 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
20a10 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
20a20 54 20 44 49 53 54 49 4e 43 54 20 32 39 20 2b 20  T DISTINCT 29 + 
20a30 2b 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c  + - col2 * - col
20a40 30 20 2b 20 2b 20 63 6f 6c 31 20 63 6f 6c 32 20  0 + + col1 col2 
20a50 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
20a60 30 0d 0a 2d 2d 2d 2d 0d 0a 34 39 33 39 0d 0a 35  0..----..4939..5
20a70 30 34 39 0d 0a 36 32 36 34 0d 0a 0d 0a 71 75 65  049..6264....que
20a80 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
20a90 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
20aa0 2b 20 63 6f 6c 32 20 2a 20 63 6f 6c 30 20 2b 20  + col2 * col0 + 
20ab0 63 6f 6c 30 20 2b 20 63 6f 6c 32 20 41 53 20 63  col0 + col2 AS c
20ac0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol1 FROM tab1 AS
20ad0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 37   cor0..----..-47
20ae0 34 39 0d 0a 2d 34 38 37 31 0d 0a 2d 36 30 32 39  49..-4871..-6029
20af0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
20b00 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31  ort..SELECT col1
20b10 20 2b 20 2b 20 2b 20 37 34 20 46 52 4f 4d 20 74   + + + 74 FROM t
20b20 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
20b30 2d 0d 0a 31 35 35 0d 0a 37 35 0d 0a 39 35 0d 0a  -..155..75..95..
20b40 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
20b50 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 41  t..SELECT col1 A
20b60 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
20b70 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d   AS cor0 WHERE -
20b80 20 63 6f 6c 32 20 2a 20 2b 20 37 20 2b 20 2b 20   col2 * + 7 + + 
20b90 33 37 20 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  37 > NULL..----.
20ba0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
20bb0 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
20bc0 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
20bd0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
20be0 61 62 65 6c 2d 37 31 38 0d 0a 53 45 4c 45 43 54  abel-718..SELECT
20bf0 20 2d 20 63 6f 6c 31 20 2b 20 36 39 20 2b 20 2b   - col1 + 69 + +
20c00 20 63 6f 6c 32 20 44 49 56 20 63 6f 6c 31 2c 20   col2 DIV col1, 
20c10 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46  + col1 AS col2 F
20c20 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
20c30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 0d 0a 38 31 0d  ..----..-12..81.
20c40 0a 31 36 37 0d 0a 31 0d 0a 34 38 0d 0a 32 31 0d  .167..1..48..21.
20c50 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
20c60 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
20c70 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
20c80 72 74 20 6c 61 62 65 6c 2d 37 31 38 0d 0a 53 45  rt label-718..SE
20c90 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2b 20 36 39  LECT - col1 + 69
20ca0 20 2b 20 2b 20 63 6f 6c 32 20 2f 20 63 6f 6c 31   + + col2 / col1
20cb0 2c 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32  , + col1 AS col2
20cc0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
20cd0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 0d 0a 38  r0..----..-12..8
20ce0 31 0d 0a 31 36 37 0d 0a 31 0d 0a 34 38 0d 0a 32  1..167..1..48..2
20cf0 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
20d00 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
20d10 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
20d20 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
20d30 6c 61 62 65 6c 2d 37 31 39 0d 0a 53 45 4c 45 43  label-719..SELEC
20d40 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 33  T DISTINCT - - 3
20d50 38 20 2b 20 28 20 2b 20 2d 20 63 6f 6c 31 20 29  8 + ( + - col1 )
20d60 20 2b 20 2b 20 32 38 20 2b 20 2b 20 63 6f 6c 31   + + 28 + + col1
20d70 20 44 49 56 20 2b 20 33 39 20 46 52 4f 4d 20 74   DIV + 39 FROM t
20d80 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
20d90 2d 0d 0a 2d 31 30 0d 0a 30 0d 0a 31 36 0d 0a 0d  -..-10..0..16...
20da0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
20db0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
20dc0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
20dd0 6c 61 62 65 6c 2d 37 31 39 0d 0a 53 45 4c 45 43  label-719..SELEC
20de0 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 33  T DISTINCT - - 3
20df0 38 20 2b 20 28 20 2b 20 2d 20 63 6f 6c 31 20 29  8 + ( + - col1 )
20e00 20 2b 20 2b 20 32 38 20 2b 20 2b 20 63 6f 6c 31   + + 28 + + col1
20e10 20 2f 20 2b 20 33 39 20 46 52 4f 4d 20 74 61 62   / + 39 FROM tab
20e20 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
20e30 0a 2d 31 30 0d 0a 30 0d 0a 31 36 0d 0a 0d 0a 6f  .-10..0..16....o
20e40 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
20e50 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
20e60 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
20e70 74 20 6c 61 62 65 6c 2d 37 32 30 0d 0a 53 45 4c  t label-720..SEL
20e80 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  ECT + COUNT( * )
20e90 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
20ea0 20 2d 20 63 6f 6c 32 20 4e 4f 54 20 42 45 54 57   - col2 NOT BETW
20eb0 45 45 4e 20 2b 20 38 36 20 41 4e 44 20 2b 20 63  EEN + 86 AND + c
20ec0 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a  ol0..----..3....
20ed0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
20ee0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
20ef0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
20f00 61 62 65 6c 2d 37 32 30 0d 0a 53 45 4c 45 43 54  abel-720..SELECT
20f10 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46   + COUNT ( * ) F
20f20 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 2d  ROM tab1 WHERE -
20f30 20 63 6f 6c 32 20 4e 4f 54 20 42 45 54 57 45 45   col2 NOT BETWEE
20f40 4e 20 2b 20 38 36 20 41 4e 44 20 2b 20 63 6f 6c  N + 86 AND + col
20f50 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75  0..----..3....qu
20f60 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
20f70 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
20f80 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
20f90 54 20 32 32 20 3c 3d 20 4e 55 4c 4c 0d 0a 2d 2d  T 22 <= NULL..--
20fa0 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
20fb0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
20fc0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
20fd0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
20fe0 32 32 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55  22..SELECT + COU
20ff0 4e 54 28 20 37 37 20 29 20 41 53 20 63 6f 6c 30  NT( 77 ) AS col0
21000 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
21010 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..3....skipif my
21020 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
21030 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
21040 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 32 32 0d  wsort label-722.
21050 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20  .SELECT + COUNT 
21060 28 20 37 37 20 29 20 41 53 20 63 6f 6c 30 20 46  ( 77 ) AS col0 F
21070 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
21080 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
21090 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
210a0 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
210b0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
210c0 6c 61 62 65 6c 2d 37 32 33 0d 0a 53 45 4c 45 43  label-723..SELEC
210d0 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43 41 53  T DISTINCT - CAS
210e0 54 28 20 2b 20 2d 20 33 37 20 41 53 20 53 49 47  T( + - 37 AS SIG
210f0 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62 31 0d  NED ) FROM tab1.
21100 0a 2d 2d 2d 2d 0d 0a 33 37 0d 0a 0d 0a 73 6b 69  .----..37....ski
21110 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
21120 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
21130 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
21140 6c 2d 37 32 33 0d 0a 53 45 4c 45 43 54 20 44 49  l-723..SELECT DI
21150 53 54 49 4e 43 54 20 2d 20 43 41 53 54 20 28 20  STINCT - CAST ( 
21160 2b 20 2d 20 33 37 20 41 53 20 49 4e 54 45 47 45  + - 37 AS INTEGE
21170 52 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  R ) FROM tab1..-
21180 2d 2d 2d 0d 0a 33 37 0d 0a 0d 0a 71 75 65 72 79  ---..37....query
21190 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
211a0 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  LECT * FROM tab1
211b0 20 57 48 45 52 45 20 63 6f 6c 32 20 2d 20 2b 20   WHERE col2 - + 
211c0 63 6f 6c 32 20 2b 20 2b 20 2b 20 63 6f 6c 32 20  col2 + + + col2 
211d0 2a 20 2d 20 2d 20 63 6f 6c 31 20 49 53 20 4e 55  * - - col1 IS NU
211e0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
211f0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
21200 45 43 54 20 2b 20 63 6f 6c 31 20 2a 20 38 30 20  ECT + col1 * 80 
21210 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
21220 28 20 4e 55 4c 4c 20 29 20 49 53 20 4e 55 4c 4c  ( NULL ) IS NULL
21230 0d 0a 2d 2d 2d 2d 0d 0a 31 36 38 30 0d 0a 36 34  ..----..1680..64
21240 38 30 0d 0a 38 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  80..80....onlyif
21250 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
21260 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
21270 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
21280 73 6f 72 74 20 6c 61 62 65 6c 2d 37 32 36 0d 0a  sort label-726..
21290 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2d 20  SELECT - col0 - 
212a0 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
212b0 47 4e 45 44 20 29 20 2f 20 2d 20 2b 20 63 6f 6c  GNED ) / - + col
212c0 30 20 2b 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20  0 + + + col0 AS 
212d0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
212e0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
212f0 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
21300 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
21310 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
21320 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
21330 20 6c 61 62 65 6c 2d 37 32 36 0d 0a 53 45 4c 45   label-726..SELE
21340 43 54 20 2d 20 63 6f 6c 30 20 2d 20 43 41 53 54  CT - col0 - CAST
21350 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
21360 45 52 20 29 20 2f 20 2d 20 2b 20 63 6f 6c 30 20  ER ) / - + col0 
21370 2b 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f  + + + col0 AS co
21380 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
21390 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
213a0 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
213b0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
213c0 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
213d0 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20   tab2 WHERE NOT 
213e0 63 6f 6c 30 20 2b 20 2b 20 2b 20 34 39 20 2b 20  col0 + + + 49 + 
213f0 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 31 20 2b 20  col1 + + col1 + 
21400 2b 20 2b 20 36 30 20 2f 20 2b 20 63 6f 6c 30 20  + + 60 / + col0 
21410 2a 20 2d 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c  * - col1 IS NULL
21420 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
21430 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39   hashing to 75c9
21440 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62 66  98aa53ac83218cbf
21450 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a  2feb962d0a49....
21460 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
21470 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72  AST syntax: aggr
21480 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49  egate syntax: SI
21490 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
214a0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
214b0 65 6c 2d 37 32 38 0d 0a 53 45 4c 45 43 54 20 2b  el-728..SELECT +
214c0 20 2d 20 53 55 4d 28 20 44 49 53 54 49 4e 43 54   - SUM( DISTINCT
214d0 20 2b 20 31 37 20 29 20 2a 20 4d 41 58 28 20 41   + 17 ) * MAX( A
214e0 4c 4c 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20  LL - CAST( NULL 
214f0 41 53 20 53 49 47 4e 45 44 20 29 20 29 20 41 53  AS SIGNED ) ) AS
21500 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
21510 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
21520 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
21530 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
21540 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
21550 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 32 38 0d  wsort label-728.
21560 0a 53 45 4c 45 43 54 20 2b 20 2d 20 53 55 4d 20  .SELECT + - SUM 
21570 28 20 44 49 53 54 49 4e 43 54 20 2b 20 31 37 20  ( DISTINCT + 17 
21580 29 20 2a 20 4d 41 58 20 28 20 41 4c 4c 20 2d 20  ) * MAX ( ALL - 
21590 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
215a0 4e 54 45 47 45 52 20 29 20 29 20 41 53 20 63 6f  NTEGER ) ) AS co
215b0 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
215c0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
215d0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
215e0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
215f0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
21600 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 32 39  owsort label-729
21610 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
21620 54 20 4d 49 4e 28 20 2b 20 2b 20 63 6f 6c 30 20  T MIN( + + col0 
21630 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
21640 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
21650 2d 0d 0a 35 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..51....skipif 
21660 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
21670 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
21680 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 32  rowsort label-72
21690 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  9..SELECT DISTIN
216a0 43 54 20 4d 49 4e 20 28 20 2b 20 2b 20 63 6f 6c  CT MIN ( + + col
216b0 30 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  0 ) AS col2 FROM
216c0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
216d0 2d 2d 2d 0d 0a 35 31 0d 0a 0d 0a 6f 6e 6c 79 69  ---..51....onlyi
216e0 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
216f0 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
21700 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
21710 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 33 30 0d  wsort label-730.
21720 0a 53 45 4c 45 43 54 20 2d 20 28 20 63 6f 6c 30  .SELECT - ( col0
21730 20 29 20 44 49 56 20 63 6f 6c 31 20 63 6f 6c 32   ) DIV col1 col2
21740 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
21750 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 30 0d  r0..----..-1..0.
21760 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
21770 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
21780 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  ble..skipif post
21790 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
217a0 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
217b0 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
217c0 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
217d0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
217e0 62 65 6c 2d 37 33 30 0d 0a 53 45 4c 45 43 54 20  bel-730..SELECT 
217f0 2d 20 28 20 63 6f 6c 30 20 29 20 2f 20 63 6f 6c  - ( col0 ) / col
21800 31 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  1 col2 FROM tab2
21810 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
21820 2d 31 0d 0a 30 0d 0a 30 0d 0a 0d 0a 71 75 65 72  -1..0..0....quer
21830 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
21840 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
21850 2b 20 33 37 20 2a 20 2b 20 63 6f 6c 31 20 2a 20  + 37 * + col1 * 
21860 2b 20 34 30 20 41 53 20 63 6f 6c 32 2c 20 63 6f  + 40 AS col2, co
21870 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l0 AS col0 FROM 
21880 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
21890 2d 2d 0d 0a 2d 31 31 33 39 36 30 0d 0a 36 34 0d  --..-113960..64.
218a0 0a 2d 37 35 34 38 30 0d 0a 34 36 0d 0a 2d 39 39  .-75480..46..-99
218b0 31 36 30 0d 0a 37 35 0d 0a 0d 0a 73 6b 69 70 69  160..75....skipi
218c0 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
218d0 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
218e0 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
218f0 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
21900 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ns..query II row
21910 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
21920 20 38 30 20 63 6f 6c 31 2c 20 35 38 20 63 6f 6c   80 col1, 58 col
21930 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
21940 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 30 0d 0a 35  or0..----..80..5
21950 38 0d 0a 38 30 0d 0a 35 38 0d 0a 38 30 0d 0a 35  8..80..58..80..5
21960 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  8....onlyif mysq
21970 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
21980 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
21990 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
219a0 6c 61 62 65 6c 2d 37 33 33 0d 0a 53 45 4c 45 43  label-733..SELEC
219b0 54 20 2b 20 43 41 53 54 28 20 2b 20 2d 20 28 20  T + CAST( + - ( 
219c0 2d 20 28 20 63 6f 6c 32 20 29 20 29 20 41 53 20  - ( col2 ) ) AS 
219d0 53 49 47 4e 45 44 20 29 20 63 6f 6c 32 20 46 52  SIGNED ) col2 FR
219e0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
219f0 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 34 30 0d 0a 35  .----..23..40..5
21a00 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  8....skipif mysq
21a10 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
21a20 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
21a30 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
21a40 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
21a50 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
21a60 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
21a70 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
21a80 65 6c 2d 37 33 33 0d 0a 53 45 4c 45 43 54 20 2b  el-733..SELECT +
21a90 20 43 41 53 54 20 28 20 2b 20 2d 20 28 20 2d 20   CAST ( + - ( - 
21aa0 28 20 63 6f 6c 32 20 29 20 29 20 41 53 20 49 4e  ( col2 ) ) AS IN
21ab0 54 45 47 45 52 20 29 20 63 6f 6c 32 20 46 52 4f  TEGER ) col2 FRO
21ac0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
21ad0 2d 2d 2d 2d 0d 0a 32 33 0d 0a 34 30 0d 0a 35 38  ----..23..40..58
21ae0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
21af0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
21b00 49 4e 43 54 20 28 20 2b 20 35 39 20 29 20 46 52  INCT ( + 59 ) FR
21b10 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d  OM tab2 cor0..--
21b20 2d 2d 0d 0a 35 39 0d 0a 0d 0a 6f 6e 6c 79 69 66  --..59....onlyif
21b30 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
21b40 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
21b50 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
21b60 62 65 6c 2d 37 33 35 0d 0a 53 45 4c 45 43 54 20  bel-735..SELECT 
21b70 41 4c 4c 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  ALL + COUNT( * )
21b80 20 41 53 20 63 6f 6c 31 2c 20 2b 20 43 4f 55 4e   AS col1, + COUN
21b90 54 28 20 2d 20 2b 20 33 32 20 29 20 46 52 4f 4d  T( - + 32 ) FROM
21ba0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
21bb0 2d 2d 2d 0d 0a 33 0d 0a 33 0d 0a 0d 0a 73 6b 69  ---..3..3....ski
21bc0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
21bd0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
21be0 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
21bf0 65 6c 2d 37 33 35 0d 0a 53 45 4c 45 43 54 20 41  el-735..SELECT A
21c00 4c 4c 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29  LL + COUNT ( * )
21c10 20 41 53 20 63 6f 6c 31 2c 20 2b 20 43 4f 55 4e   AS col1, + COUN
21c20 54 20 28 20 2d 20 2b 20 33 32 20 29 20 46 52 4f  T ( - + 32 ) FRO
21c30 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
21c40 2d 2d 2d 2d 0d 0a 33 0d 0a 33 0d 0a 0d 0a 71 75  ----..3..3....qu
21c50 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
21c60 45 4c 45 43 54 20 41 4c 4c 20 2d 20 28 20 2b 20  ELECT ALL - ( + 
21c70 2d 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 32  - col0 ) AS col2
21c80 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
21c90 0d 0a 34 36 0d 0a 36 34 0d 0a 37 35 0d 0a 0d 0a  ..46..64..75....
21ca0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
21cb0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
21cc0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
21cd0 72 74 20 6c 61 62 65 6c 2d 37 33 37 0d 0a 53 45  rt label-737..SE
21ce0 4c 45 43 54 20 2b 20 4d 41 58 28 20 63 6f 6c 30  LECT + MAX( col0
21cf0 20 29 20 2a 20 28 20 2b 20 43 4f 55 4e 54 28 20   ) * ( + COUNT( 
21d00 2a 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52  * ) ) AS col1 FR
21d10 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32  OM tab1..----..2
21d20 37 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  73....skipif mys
21d30 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
21d40 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
21d50 73 6f 72 74 20 6c 61 62 65 6c 2d 37 33 37 0d 0a  sort label-737..
21d60 53 45 4c 45 43 54 20 2b 20 4d 41 58 20 28 20 63  SELECT + MAX ( c
21d70 6f 6c 30 20 29 20 2a 20 28 20 2b 20 43 4f 55 4e  ol0 ) * ( + COUN
21d80 54 20 28 20 2a 20 29 20 29 20 41 53 20 63 6f 6c  T ( * ) ) AS col
21d90 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
21da0 2d 0d 0a 32 37 33 0d 0a 0d 0a 71 75 65 72 79 20  -..273....query 
21db0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
21dc0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 36 35  CT DISTINCT + 65
21dd0 20 2a 20 63 6f 6c 32 2c 20 35 20 41 53 20 63 6f   * col2, 5 AS co
21de0 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l2 FROM tab0..--
21df0 2d 2d 0d 0a 33 30 35 35 0d 0a 35 0d 0a 36 34 33  --..3055..5..643
21e00 35 0d 0a 35 0d 0a 36 35 30 0d 0a 35 0d 0a 0d 0a  5..5..650..5....
21e10 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
21e20 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 38 38  .SELECT ALL + 88
21e30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
21e40 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38  b2 cor0..----..8
21e50 38 0d 0a 38 38 0d 0a 38 38 0d 0a 0d 0a 73 6b 69  8..88..88....ski
21e60 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
21e70 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
21e80 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
21e90 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
21ea0 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
21eb0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
21ec0 53 54 49 4e 43 54 20 36 34 20 2b 20 63 6f 6c 31  STINCT 64 + col1
21ed0 20 2a 20 2d 20 63 6f 6c 31 20 63 6f 6c 31 20 46   * - col1 col1 F
21ee0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
21ef0 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 37 37 0d 0a 2d 36  ..----..-377..-6
21f00 34 39 37 0d 0a 36 33 0d 0a 0d 0a 71 75 65 72 79  497..63....query
21f10 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
21f20 43 54 20 2d 20 37 20 46 52 4f 4d 20 28 20 74 61  CT - 7 FROM ( ta
21f30 62 31 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  b1 cor0 CROSS JO
21f40 49 4e 20 74 61 62 31 20 41 53 20 63 6f 72 31 20  IN tab1 AS cor1 
21f50 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  )..----..9 value
21f60 73 20 68 61 73 68 69 6e 67 20 74 6f 20 62 61 39  s hashing to ba9
21f70 34 30 63 64 36 36 65 32 31 65 39 34 65 39 35 61  40cd66e21e94e95a
21f80 61 64 61 35 66 32 38 65 31 66 61 66 35 0d 0a 0d  ada5f28e1faf5...
21f90 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
21fa0 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20  ..SELECT - col0 
21fb0 2a 20 2b 20 34 37 20 2b 20 2b 20 2b 20 36 31 20  * + 47 + + + 61 
21fc0 2a 20 2b 20 2d 20 34 34 20 46 52 4f 4d 20 74 61  * + - 44 FROM ta
21fd0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 38 34 36 0d  b2..----..-4846.
21fe0 0a 2d 35 36 39 32 0d 0a 2d 36 32 30 39 0d 0a 0d  .-5692..-6209...
21ff0 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
22000 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
22010 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
22020 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
22030 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
22040 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
22050 54 20 44 49 53 54 49 4e 43 54 20 2d 20 37 34 20  T DISTINCT - 74 
22060 2a 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 2d 20 34  * + col1 + + - 4
22070 33 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  3 col1 FROM tab0
22080 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31   cor0..----..-11
22090 37 0d 0a 2d 31 35 39 37 0d 0a 2d 36 30 33 37 0d  7..-1597..-6037.
220a0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
220b0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44  # CAST syntax: D
220c0 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71  ECIMAL type: ..q
220d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
220e0 61 62 65 6c 2d 37 34 34 0d 0a 53 45 4c 45 43 54  abel-744..SELECT
220f0 20 41 4c 4c 20 43 41 53 54 28 20 4e 55 4c 4c 20   ALL CAST( NULL 
22100 41 53 20 44 45 43 49 4d 41 4c 20 29 20 2a 20 2d  AS DECIMAL ) * -
22110 20 41 56 47 20 28 20 44 49 53 54 49 4e 43 54 20   AVG ( DISTINCT 
22120 2d 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61  - col2 ) FROM ta
22130 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
22140 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
22150 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
22160 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
22170 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
22180 34 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43  44..SELECT ALL C
22190 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45  AST ( NULL AS RE
221a0 41 4c 20 29 20 2a 20 2d 20 41 56 47 20 28 20 44  AL ) * - AVG ( D
221b0 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 29  ISTINCT - col2 )
221c0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
221d0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
221e0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
221f0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
22200 31 36 20 2a 20 2b 20 34 35 20 2b 20 2b 20 2b 20  16 * + 45 + + + 
22210 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
22220 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36  S cor0..----..-6
22230 34 35 0d 0a 2d 36 35 36 0d 0a 2d 36 37 34 0d 0a  45..-656..-674..
22240 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
22250 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
22260 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
22270 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
22280 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
22290 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
222a0 43 54 20 2d 20 31 32 20 2a 20 2b 20 2d 20 63 6f  CT - 12 * + - co
222b0 6c 31 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  l1 col1 FROM tab
222c0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
222d0 0a 31 36 38 0d 0a 35 36 34 0d 0a 36 30 0d 0a 0d  .168..564..60...
222e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
222f0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
22300 54 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 2d 20 63  T + col0 + - - c
22310 6f 6c 32 20 2a 20 2b 20 63 6f 6c 31 20 46 52 4f  ol2 * + col1 FRO
22320 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
22330 2d 2d 2d 2d 0d 0a 31 33 39 35 0d 0a 33 32 38 37  ----..1395..3287
22340 0d 0a 33 38 30 0d 0a 0d 0a 71 75 65 72 79 20 49  ..380....query I
22350 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
22360 20 41 4c 4c 20 2d 20 31 20 2b 20 2b 20 28 20 2b   ALL - 1 + + ( +
22370 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62   col2 ) FROM tab
22380 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
22390 0a 34 36 0d 0a 39 0d 0a 39 38 0d 0a 0d 0a 71 75  .46..9..98....qu
223a0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
223b0 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
223c0 61 62 32 20 57 48 45 52 45 20 2b 20 63 6f 6c 30  ab2 WHERE + col0
223d0 20 49 53 20 4e 55 4c 4c 20 41 4e 44 20 4e 4f 54   IS NULL AND NOT
223e0 20 63 6f 6c 30 20 2a 20 2d 20 2b 20 31 30 20 49   col0 * - + 10 I
223f0 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
22400 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
22410 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
22420 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
22430 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
22440 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
22450 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
22460 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
22470 63 6f 6c 30 20 2b 20 2d 20 2d 20 63 6f 6c 31 20  col0 + - - col1 
22480 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col1 FROM tab2..
22490 2d 2d 2d 2d 0d 0a 2d 38 0d 0a 31 33 0d 0a 35 0d  ----..-8..13..5.
224a0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
224b0 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  rt..SELECT - col
224c0 30 20 2b 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 63  0 + - col2 * - c
224d0 6f 6c 30 20 2a 20 2d 20 63 6f 6c 32 20 46 52 4f  ol0 * - col2 FRO
224e0 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  M tab1..----..-2
224f0 39 35 39 37 30 0d 0a 2d 34 32 30 38 37 35 0d 0a  95970..-420875..
22500 2d 34 37 30 30 36 37 0d 0a 0d 0a 6f 6e 6c 79 69  -470067....onlyi
22510 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
22520 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
22530 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
22540 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 35 32 0d  wsort label-752.
22550 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2a  .SELECT - col2 *
22560 20 2b 20 63 6f 6c 32 20 44 49 56 20 2b 20 63 6f   + col2 DIV + co
22570 6c 32 20 2b 20 2d 20 28 20 33 20 29 20 63 6f 6c  l2 + - ( 3 ) col
22580 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
22590 2d 0d 0a 2d 31 30 32 0d 0a 2d 31 33 0d 0a 2d 35  -..-102..-13..-5
225a0 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
225b0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
225c0 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
225d0 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
225e0 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
225f0 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
22600 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
22610 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
22620 65 6c 2d 37 35 32 0d 0a 53 45 4c 45 43 54 20 2d  el-752..SELECT -
22630 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 32 20 2f   col2 * + col2 /
22640 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 28 20 33 20   + col2 + - ( 3 
22650 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  ) col0 FROM tab0
22660 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 32 0d 0a 2d 31  ..----..-102..-1
22670 33 0d 0a 2d 35 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  3..-50....onlyif
22680 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
22690 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
226a0 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
226b0 73 6f 72 74 20 6c 61 62 65 6c 2d 37 35 33 0d 0a  sort label-753..
226c0 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20  SELECT ALL col1 
226d0 2d 20 2b 20 2b 20 35 39 20 2b 20 63 6f 6c 32 20  - + + 59 + col2 
226e0 2a 20 63 6f 6c 30 20 2b 20 2d 20 2d 20 63 6f 6c  * col0 + - - col
226f0 31 20 2a 20 2b 20 2b 20 43 41 53 54 28 20 2b 20  1 * + + CAST( + 
22700 34 31 20 41 53 20 53 49 47 4e 45 44 20 29 20 46  41 AS SIGNED ) F
22710 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
22720 35 31 36 36 0d 0a 35 34 32 35 0d 0a 38 31 30 33  5166..5425..8103
22730 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
22740 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
22750 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
22760 72 74 20 6c 61 62 65 6c 2d 37 35 33 0d 0a 53 45  rt label-753..SE
22770 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2d 20  LECT ALL col1 - 
22780 2b 20 2b 20 35 39 20 2b 20 63 6f 6c 32 20 2a 20  + + 59 + col2 * 
22790 63 6f 6c 30 20 2b 20 2d 20 2d 20 63 6f 6c 31 20  col0 + - - col1 
227a0 2a 20 2b 20 2b 20 43 41 53 54 20 28 20 2b 20 34  * + + CAST ( + 4
227b0 31 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 46  1 AS INTEGER ) F
227c0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
227d0 35 31 36 36 0d 0a 35 34 32 35 0d 0a 38 31 30 33  5166..5425..8103
227e0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
227f0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
22800 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
22810 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
22820 6c 61 62 65 6c 2d 37 35 34 0d 0a 53 45 4c 45 43  label-754..SELEC
22830 54 20 44 49 53 54 49 4e 43 54 20 43 41 53 54 28  T DISTINCT CAST(
22840 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
22850 29 20 41 53 20 63 6f 6c 30 2c 20 63 6f 6c 31 20  ) AS col0, col1 
22860 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
22870 0a 4e 55 4c 4c 0d 0a 35 31 0d 0a 4e 55 4c 4c 0d  .NULL..51..NULL.
22880 0a 36 37 0d 0a 4e 55 4c 4c 0d 0a 37 37 0d 0a 0d  .67..NULL..77...
22890 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
228a0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
228b0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
228c0 20 6c 61 62 65 6c 2d 37 35 34 0d 0a 53 45 4c 45   label-754..SELE
228d0 43 54 20 44 49 53 54 49 4e 43 54 20 43 41 53 54  CT DISTINCT CAST
228e0 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
228f0 45 52 20 29 20 41 53 20 63 6f 6c 30 2c 20 63 6f  ER ) AS col0, co
22900 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
22910 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 35 31 0d 0a 4e 55  --..NULL..51..NU
22920 4c 4c 0d 0a 36 37 0d 0a 4e 55 4c 4c 0d 0a 37 37  LL..67..NULL..77
22930 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
22940 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
22950 2b 20 33 30 20 2a 20 2d 20 2b 20 63 6f 6c 32 20  + 30 * - + col2 
22960 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
22970 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 30 30 0d 0a  2..----..-1200..
22980 2d 31 37 34 30 0d 0a 2d 36 39 30 0d 0a 0d 0a 6f  -1740..-690....o
22990 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
229a0 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
229b0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
229c0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
229d0 37 35 36 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20  756..SELECT + + 
229e0 43 41 53 54 28 20 63 6f 6c 31 20 41 53 20 53 49  CAST( col1 AS SI
229f0 47 4e 45 44 20 29 20 2a 20 2d 20 2d 20 63 6f 6c  GNED ) * - - col
22a00 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  1 AS col0 FROM t
22a10 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
22a20 2d 0d 0a 31 39 36 0d 0a 32 32 30 39 0d 0a 32 35  -..196..2209..25
22a30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
22a40 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
22a50 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
22a60 72 74 20 6c 61 62 65 6c 2d 37 35 36 0d 0a 53 45  rt label-756..SE
22a70 4c 45 43 54 20 2b 20 2b 20 43 41 53 54 20 28 20  LECT + + CAST ( 
22a80 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45 52 20  col1 AS INTEGER 
22a90 29 20 2a 20 2d 20 2d 20 63 6f 6c 31 20 41 53 20  ) * - - col1 AS 
22aa0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
22ab0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39  S cor0..----..19
22ac0 36 0d 0a 32 32 30 39 0d 0a 32 35 0d 0a 0d 0a 71  6..2209..25....q
22ad0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
22ae0 53 45 4c 45 43 54 20 63 6f 6c 32 20 2a 20 2b 20  SELECT col2 * + 
22af0 34 35 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  45 FROM tab1 AS 
22b00 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 36 35 35  cor0..----..2655
22b10 0d 0a 33 30 36 30 0d 0a 34 33 32 30 0d 0a 0d 0a  ..3060..4320....
22b20 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
22b30 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
22b40 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
22b50 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
22b60 2d 37 35 38 0d 0a 53 45 4c 45 43 54 20 2b 20 63  -758..SELECT + c
22b70 6f 6c 32 20 2b 20 2b 20 63 6f 6c 32 20 2b 20 2d  ol2 + + col2 + -
22b80 20 28 20 2b 20 63 6f 6c 31 20 29 20 2d 20 63 6f   ( + col1 ) - co
22b90 6c 32 20 2a 20 2b 20 2d 20 43 41 53 54 28 20 4e  l2 * + - CAST( N
22ba0 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
22bb0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
22bc0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
22bd0 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d   NULL IS NULL..-
22be0 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ---....skipif my
22bf0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
22c00 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
22c10 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
22c20 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
22c30 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
22c40 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
22c50 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
22c60 61 62 65 6c 2d 37 35 38 0d 0a 53 45 4c 45 43 54  abel-758..SELECT
22c70 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 32   + col2 + + col2
22c80 20 2b 20 2d 20 28 20 2b 20 63 6f 6c 31 20 29 20   + - ( + col1 ) 
22c90 2d 20 63 6f 6c 32 20 2a 20 2b 20 2d 20 43 41 53  - col2 * + - CAS
22ca0 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
22cb0 47 45 52 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20  GER ) col1 FROM 
22cc0 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
22cd0 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e  RE NOT NULL IS N
22ce0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
22cf0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
22d00 4c 45 43 54 20 2d 20 34 36 20 2a 20 2b 20 32 39  LECT - 46 * + 29
22d10 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
22d20 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
22d30 0d 0a 2d 31 33 33 34 0d 0a 2d 31 33 33 34 0d 0a  ..-1334..-1334..
22d40 2d 31 33 33 34 0d 0a 0d 0a 71 75 65 72 79 20 49  -1334....query I
22d50 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
22d60 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57  CT * FROM tab1 W
22d70 48 45 52 45 20 4e 4f 54 20 2b 20 39 30 20 49 53  HERE NOT + 90 IS
22d80 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
22d90 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
22da0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
22db0 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e  ROM tab1 WHERE N
22dc0 4f 54 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 31  OT col1 + + col1
22dd0 20 3c 3d 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c   <= col2 * + col
22de0 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  2..----....query
22df0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
22e00 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f  CT DISTINCT - co
22e10 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  l1 FROM tab1 WHE
22e20 52 45 20 2d 20 63 6f 6c 30 20 42 45 54 57 45 45  RE - col0 BETWEE
22e30 4e 20 2b 20 63 6f 6c 31 20 41 4e 44 20 2d 20 63  N + col1 AND - c
22e40 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ol0..----....onl
22e50 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
22e60 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
22e70 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
22e80 6c 61 62 65 6c 2d 37 36 33 0d 0a 53 45 4c 45 43  label-763..SELEC
22e90 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 28 20 2a  T ALL + COUNT( *
22ea0 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
22eb0 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
22ec0 52 45 20 4e 4f 54 20 63 6f 6c 30 20 2a 20 63 6f  RE NOT col0 * co
22ed0 6c 32 20 3c 3e 20 2d 20 63 6f 6c 32 20 2d 20 2b  l2 <> - col2 - +
22ee0 20 32 36 20 2b 20 2b 20 2b 20 38 31 0d 0a 2d 2d   26 + + + 81..--
22ef0 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..0....skipif 
22f00 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
22f10 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
22f20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 36  rowsort label-76
22f30 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  3..SELECT ALL + 
22f40 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63  COUNT ( * ) AS c
22f50 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
22f60 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
22f70 63 6f 6c 30 20 2a 20 63 6f 6c 32 20 3c 3e 20 2d  col0 * col2 <> -
22f80 20 63 6f 6c 32 20 2d 20 2b 20 32 36 20 2b 20 2b   col2 - + 26 + +
22f90 20 2b 20 38 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   + 81..----..0..
22fa0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
22fb0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
22fc0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
22fd0 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20 42  WHERE NOT col0 B
22fe0 45 54 57 45 45 4e 20 2d 20 63 6f 6c 31 20 41 4e  ETWEEN - col1 AN
22ff0 44 20 36 36 20 2f 20 2d 20 2b 20 34 38 20 2a 20  D 66 / - + 48 * 
23000 2b 20 63 6f 6c 32 20 2a 20 2b 20 2b 20 63 6f 6c  + col2 * + + col
23010 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  1..----..9 value
23020 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63  s hashing to c6c
23030 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38  0a4111b36d04dbc8
23040 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d  11a11e4d54cad...
23050 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
23060 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
23070 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
23080 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 30 20  HERE NOT + col0 
23090 2a 20 2d 20 2d 20 32 30 20 49 53 20 4e 4f 54 20  * - - 20 IS NOT 
230a0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
230b0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
230c0 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
230d0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
230e0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
230f0 37 36 36 0d 0a 53 45 4c 45 43 54 20 43 41 53 54  766..SELECT CAST
23100 28 20 2b 20 63 6f 6c 30 20 41 53 20 53 49 47 4e  ( + col0 AS SIGN
23110 45 44 20 29 2c 20 2b 20 63 6f 6c 32 20 46 52 4f  ED ), + col2 FRO
23120 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab1 cor0..---
23130 2d 0d 0a 35 31 0d 0a 39 36 0d 0a 38 35 0d 0a 35  -..51..96..85..5
23140 39 0d 0a 39 31 0d 0a 36 38 0d 0a 0d 0a 73 6b 69  9..91..68....ski
23150 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
23160 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
23170 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
23180 65 6c 2d 37 36 36 0d 0a 53 45 4c 45 43 54 20 43  el-766..SELECT C
23190 41 53 54 20 28 20 2b 20 63 6f 6c 30 20 41 53 20  AST ( + col0 AS 
231a0 49 4e 54 45 47 45 52 20 29 2c 20 2b 20 63 6f 6c  INTEGER ), + col
231b0 32 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  2 FROM tab1 cor0
231c0 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 39 36 0d 0a  ..----..51..96..
231d0 38 35 0d 0a 35 39 0d 0a 39 31 0d 0a 36 38 0d 0a  85..59..91..68..
231e0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
231f0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
23200 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
23210 73 6f 72 74 20 6c 61 62 65 6c 2d 37 36 37 0d 0a  sort label-767..
23220 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
23230 2d 20 2b 20 4d 41 58 28 20 28 20 63 6f 6c 32 20  - + MAX( ( col2 
23240 29 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ) ) AS col2 FROM
23250 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
23260 2d 2d 2d 0d 0a 2d 39 36 0d 0a 0d 0a 73 6b 69 70  ---..-96....skip
23270 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
23280 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
23290 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
232a0 2d 37 36 37 0d 0a 53 45 4c 45 43 54 20 44 49 53  -767..SELECT DIS
232b0 54 49 4e 43 54 20 2d 20 2b 20 4d 41 58 20 28 20  TINCT - + MAX ( 
232c0 28 20 63 6f 6c 32 20 29 20 29 20 41 53 20 63 6f  ( col2 ) ) AS co
232d0 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
232e0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 36 0d  cor0..----..-96.
232f0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III 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 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
23320 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
23330 4e 4f 54 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 31  NOT + col1 + + 1
23340 39 20 2a 20 2d 20 2d 20 36 37 20 49 53 20 4e 55  9 * - - 67 IS NU
23350 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  LL..----..9 valu
23360 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35  es hashing to 75
23370 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63  c998aa53ac83218c
23380 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a  bf2feb962d0a49..
23390 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
233a0 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32  t..SELECT + col2
233b0 20 2a 20 2b 20 33 36 20 46 52 4f 4d 20 74 61 62   * + 36 FROM tab
233c0 32 0d 0a 2d 2d 2d 2d 0d 0a 31 34 34 30 0d 0a 32  2..----..1440..2
233d0 30 38 38 0d 0a 38 32 38 0d 0a 0d 0a 6f 6e 6c 79  088..828....only
233e0 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
233f0 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
23400 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
23410 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 37 30  owsort label-770
23420 0d 0a 53 45 4c 45 43 54 20 2b 20 36 34 20 44 49  ..SELECT + 64 DI
23430 56 20 28 20 2b 20 2d 20 63 6f 6c 31 20 29 20 41  V ( + - col1 ) A
23440 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
23450 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 31 32 0d  ..----..-1..-12.
23460 0a 2d 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .-4....skipif my
23470 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
23480 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
23490 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 37 30 0d  wsort label-770.
234a0 0a 53 45 4c 45 43 54 20 2b 20 36 34 20 2f 20 28  .SELECT + 64 / (
234b0 20 2b 20 2d 20 63 6f 6c 31 20 29 20 41 53 20 63   + - col1 ) AS c
234c0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
234d0 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 31 32 0d 0a 2d 34  ---..-1..-12..-4
234e0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
234f0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  ort..SELECT + co
23500 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l1 AS col1 FROM 
23510 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 28  tab1 WHERE NOT (
23520 20 4e 4f 54 20 33 36 20 42 45 54 57 45 45 4e 20   NOT 36 BETWEEN 
23530 2b 20 63 6f 6c 31 20 41 4e 44 20 4e 55 4c 4c 20  + col1 AND NULL 
23540 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  )..----....onlyi
23550 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
23560 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
23570 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
23580 62 65 6c 2d 37 37 32 0d 0a 53 45 4c 45 43 54 20  bel-772..SELECT 
23590 4d 41 58 28 20 2d 20 35 20 29 20 41 53 20 63 6f  MAX( - 5 ) AS co
235a0 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45  l1 FROM tab2 WHE
235b0 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3e 3d 20 4e  RE NOT NULL >= N
235c0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ULL..----..NULL.
235d0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
235e0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
235f0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
23600 74 20 6c 61 62 65 6c 2d 37 37 32 0d 0a 53 45 4c  t label-772..SEL
23610 45 43 54 20 4d 41 58 20 28 20 2d 20 35 20 29 20  ECT MAX ( - 5 ) 
23620 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
23630 32 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  2 WHERE NOT NULL
23640 20 3e 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   >= NULL..----..
23650 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49  NULL....query II
23660 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
23670 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 2b   DISTINCT col2 +
23680 20 2d 20 28 20 2d 20 2b 20 63 6f 6c 30 20 29 2c   - ( - + col0 ),
23690 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
236a0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
236b0 30 34 0d 0a 37 37 0d 0a 31 33 33 0d 0a 36 37 0d  04..77..133..67.
236c0 0a 36 39 0d 0a 35 31 0d 0a 0d 0a 6f 6e 6c 79 69  .69..51....onlyi
236d0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
236e0 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20  ate syntax: DIV 
236f0 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
23700 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
23710 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 37  rowsort label-77
23720 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  4..SELECT ALL + 
23730 32 20 44 49 56 20 4d 49 4e 28 20 2d 20 63 6f 6c  2 DIV MIN( - col
23740 30 20 29 20 2b 20 2b 20 35 30 20 63 6f 6c 32 20  0 ) + + 50 col2 
23750 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
23760 30 0d 0a 2d 2d 2d 2d 0d 0a 35 30 0d 0a 0d 0a 73  0..----..50....s
23770 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
23780 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
23790 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
237a0 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
237b0 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
237c0 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
237d0 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
237e0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 37 34  owsort label-774
237f0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 32  ..SELECT ALL + 2
23800 20 2f 20 4d 49 4e 20 28 20 2d 20 63 6f 6c 30 20   / MIN ( - col0 
23810 29 20 2b 20 2b 20 35 30 20 63 6f 6c 32 20 46 52  ) + + 50 col2 FR
23820 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
23830 0a 2d 2d 2d 2d 0d 0a 35 30 0d 0a 0d 0a 6f 6e 6c  .----..50....onl
23840 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
23850 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
23860 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
23870 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 37  rowsort label-77
23880 35 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 34 39  5..SELECT + - 49
23890 20 2f 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 63 6f   / - col2 * + co
238a0 6c 32 20 2d 20 2b 20 43 41 53 54 28 20 4e 55 4c  l2 - + CAST( NUL
238b0 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20  L AS SIGNED ) + 
238c0 36 38 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  68 AS col0 FROM 
238d0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
238e0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
238f0 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
23900 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
23910 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
23920 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 37 35  owsort label-775
23930 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 34 39 20  ..SELECT + - 49 
23940 2f 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c  / - col2 * + col
23950 32 20 2d 20 2b 20 43 41 53 54 20 28 20 4e 55 4c  2 - + CAST ( NUL
23960 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b  L AS INTEGER ) +
23970 20 36 38 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   68 AS col0 FROM
23980 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
23990 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
239a0 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .NULL....onlyif 
239b0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
239c0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
239d0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
239e0 6c 2d 37 37 36 0d 0a 53 45 4c 45 43 54 20 41 4c  l-776..SELECT AL
239f0 4c 20 53 55 4d 28 20 41 4c 4c 20 2b 20 2d 20 33  L SUM( ALL + - 3
23a00 35 20 29 20 2b 20 2b 20 34 20 41 53 20 63 6f 6c  5 ) + + 4 AS col
23a10 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
23a20 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 31 0d  or0..----..-101.
23a30 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
23a40 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
23a50 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
23a60 74 20 6c 61 62 65 6c 2d 37 37 36 0d 0a 53 45 4c  t label-776..SEL
23a70 45 43 54 20 41 4c 4c 20 53 55 4d 20 28 20 41 4c  ECT ALL SUM ( AL
23a80 4c 20 2b 20 2d 20 33 35 20 29 20 2b 20 2b 20 34  L + - 35 ) + + 4
23a90 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
23aa0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
23ab0 0d 0a 2d 31 30 31 0d 0a 0d 0a 71 75 65 72 79 20  ..-101....query 
23ac0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
23ad0 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31  CT DISTINCT col1
23ae0 2c 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32  , + col2 AS col2
23af0 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20   FROM tab0 cor0 
23b00 57 48 45 52 45 20 2d 20 63 6f 6c 32 20 2a 20 2b  WHERE - col2 * +
23b10 20 35 36 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d   56 IS NOT NULL.
23b20 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 39 39 0d 0a 32 31  .----..1..99..21
23b30 0d 0a 31 30 0d 0a 38 31 0d 0a 34 37 0d 0a 0d 0a  ..10..81..47....
23b40 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
23b50 0a 53 45 4c 45 43 54 20 2b 20 2d 20 63 6f 6c 32  .SELECT + - col2
23b60 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 32   + col2 * + col2
23b70 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
23b80 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 34 32 32 0d 0a  r0..----..3422..
23b90 34 35 35 36 0d 0a 39 31 32 30 0d 0a 0d 0a 71 75  4556..9120....qu
23ba0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
23bb0 45 4c 45 43 54 20 2d 20 28 20 2b 20 63 6f 6c 31  ELECT - ( + col1
23bc0 20 29 20 2b 20 28 20 2b 20 63 6f 6c 31 20 29 20   ) + ( + col1 ) 
23bd0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
23be0 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30  0..----..0..0..0
23bf0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
23c00 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
23c10 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 30   - col0 * + col0
23c20 2c 20 2d 20 37 20 41 53 20 63 6f 6c 30 20 46 52  , - 7 AS col0 FR
23c30 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
23c40 0a 2d 2d 2d 2d 0d 0a 2d 32 32 35 0d 0a 2d 37 0d  .----..-225..-7.
23c50 0a 2d 37 35 36 39 0d 0a 2d 37 0d 0a 2d 39 34 30  .-7569..-7..-940
23c60 39 0d 0a 2d 37 0d 0a 0d 0a 71 75 65 72 79 20 49  9..-7....query I
23c70 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
23c80 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30   DISTINCT + col0
23c90 20 2b 20 28 20 2b 20 2b 20 63 6f 6c 30 20 29 20   + ( + + col0 ) 
23ca0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
23cb0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
23cc0 0a 31 32 38 0d 0a 31 35 30 0d 0a 39 32 0d 0a 0d  .128..150..92...
23cd0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
23ce0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 28  ..SELECT ALL - (
23cf0 20 2b 20 2b 20 63 6f 6c 31 20 29 20 2a 20 2b 20   + + col1 ) * + 
23d00 35 30 20 2b 20 2b 20 2d 20 63 6f 6c 31 20 2b 20  50 + + - col1 + 
23d10 2d 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 39 20 46  - + col2 + - 9 F
23d20 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
23d30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 36 33 33 0d 0a 2d  ..----..-2633..-
23d40 33 34 38 34 0d 0a 2d 33 39 37 36 0d 0a 0d 0a 71  3484..-3976....q
23d50 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
23d60 53 45 4c 45 43 54 20 2d 20 38 33 20 2b 20 35 32  SELECT - 83 + 52
23d70 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
23d80 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 31 0d 0a 2d  r0..----..-31..-
23d90 33 31 0d 0a 2d 33 31 0d 0a 0d 0a 71 75 65 72 79  31..-31....query
23da0 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
23db0 45 43 54 20 2d 20 2d 20 39 36 20 41 53 20 63 6f  ECT - - 96 AS co
23dc0 6c 31 2c 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  l1, col2 FROM ta
23dd0 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
23de0 20 63 6f 6c 30 20 2d 20 63 6f 6c 30 20 49 53 20   col0 - col0 IS 
23df0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
23e00 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
23e10 45 4c 45 43 54 20 41 4c 4c 20 2d 20 39 38 20 2d  ELECT ALL - 98 -
23e20 20 2d 20 2d 20 34 30 20 2d 20 2d 20 2d 20 63 6f   - - 40 - - - co
23e30 6c 32 20 2b 20 2b 20 31 30 20 2a 20 2b 20 2d 20  l2 + + 10 * + - 
23e40 63 6f 6c 31 20 2b 20 2d 20 28 20 2b 20 31 30 20  col1 + - ( + 10 
23e50 29 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20  ) + - col0 FROM 
23e60 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 32  tab0..----..-102
23e70 30 0d 0a 2d 33 35 34 0d 0a 2d 34 35 35 0d 0a 0d  0..-354..-455...
23e80 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
23e90 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
23ea0 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
23eb0 20 2d 20 2d 20 39 30 20 49 53 20 4e 4f 54 20 4e   - - 90 IS NOT N
23ec0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  ULL..----..9 val
23ed0 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37  ues hashing to 7
23ee0 35 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38  5c998aa53ac83218
23ef0 63 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d  cbf2feb962d0a49.
23f00 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
23f10 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
23f20 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
23f30 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 38 37 0d  wsort label-787.
23f40 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 53 55  .SELECT ALL - SU
23f50 4d 28 20 35 33 20 29 20 2a 20 2b 20 2b 20 32 31  M( 53 ) * + + 21
23f60 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
23f70 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 33 33 39 0d  b1..----..-3339.
23f80 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
23f90 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
23fa0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
23fb0 74 20 6c 61 62 65 6c 2d 37 38 37 0d 0a 53 45 4c  t label-787..SEL
23fc0 45 43 54 20 41 4c 4c 20 2d 20 53 55 4d 20 28 20  ECT ALL - SUM ( 
23fd0 35 33 20 29 20 2a 20 2b 20 2b 20 32 31 20 41 53  53 ) * + + 21 AS
23fe0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
23ff0 0a 2d 2d 2d 2d 0d 0a 2d 33 33 33 39 0d 0a 0d 0a  .----..-3339....
24000 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
24010 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2d 20 2b  .SELECT col2 - +
24020 20 34 36 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   46 AS col2 FROM
24030 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 33 0d   tab1..----..13.
24040 0a 32 32 0d 0a 35 30 0d 0a 0d 0a 6f 6e 6c 79 69  .22..50....onlyi
24050 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
24060 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
24070 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
24080 62 65 6c 2d 37 38 39 0d 0a 53 45 4c 45 43 54 20  bel-789..SELECT 
24090 41 4c 4c 20 32 30 20 2d 20 2d 20 43 4f 55 4e 54  ALL 20 - - COUNT
240a0 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ( * ) AS col0 FR
240b0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32  OM tab0..----..2
240c0 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
240d0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
240e0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
240f0 6f 72 74 20 6c 61 62 65 6c 2d 37 38 39 0d 0a 53  ort label-789..S
24100 45 4c 45 43 54 20 41 4c 4c 20 32 30 20 2d 20 2d  ELECT ALL 20 - -
24110 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
24120 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
24130 2d 2d 2d 2d 0d 0a 32 33 0d 0a 0d 0a 71 75 65 72  ----..23....quer
24140 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
24150 45 43 54 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  ECT + col2 AS co
24160 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
24170 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63  cor0 WHERE NOT c
24180 6f 6c 32 20 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  ol2 > NULL..----
24190 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
241a0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  ort..SELECT + co
241b0 6c 32 20 2a 20 2d 20 39 30 20 2a 20 2d 20 2d 20  l2 * - 90 * - - 
241c0 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f  col2 AS col2 FRO
241d0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
241e0 2d 2d 2d 2d 0d 0a 2d 31 34 34 30 30 30 0d 0a 2d  ----..-144000..-
241f0 33 30 32 37 36 30 0d 0a 2d 34 37 36 31 30 0d 0a  302760..-47610..
24200 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
24210 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
24220 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67  x: DIV for integ
24230 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
24240 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
24250 61 62 65 6c 2d 37 39 32 0d 0a 53 45 4c 45 43 54  abel-792..SELECT
24260 20 41 4c 4c 20 2b 20 53 55 4d 28 20 41 4c 4c 20   ALL + SUM( ALL 
24270 63 6f 6c 30 20 29 20 44 49 56 20 34 20 46 52 4f  col0 ) DIV 4 FRO
24280 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
24290 2d 2d 2d 2d 0d 0a 34 36 0d 0a 0d 0a 73 6b 69 70  ----..46....skip
242a0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
242b0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
242c0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
242d0 2d 37 39 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -792..SELECT ALL
242e0 20 2b 20 53 55 4d 20 28 20 41 4c 4c 20 63 6f 6c   + SUM ( ALL col
242f0 30 20 29 20 2f 20 34 20 46 52 4f 4d 20 74 61 62  0 ) / 4 FROM tab
24300 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
24310 0a 34 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  .46....query III
24320 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
24330 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
24340 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
24350 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29  ERE NOT ( NULL )
24360 20 3c 3e 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a   <> col2..----..
24370 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
24380 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2a  t..SELECT col1 *
24390 20 2d 20 34 34 20 2a 20 2b 20 63 6f 6c 30 20 46   - 44 * + col0 F
243a0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
243b0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38 37 30 30 0d 0a  ..----..-18700..
243c0 2d 31 38 38 31 38 38 0d 0a 2d 33 31 34 31 36 0d  -188188..-31416.
243d0 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
243e0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
243f0 49 4e 43 54 20 63 6f 6c 32 20 2a 20 33 36 2c 20  INCT col2 * 36, 
24400 2b 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 31 20  + col0 + - col1 
24410 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
24420 31 0d 0a 2d 2d 2d 2d 0d 0a 32 31 32 34 0d 0a 38  1..----..2124..8
24430 30 0d 0a 32 34 34 38 0d 0a 34 34 0d 0a 33 34 35  0..2448..44..345
24440 36 0d 0a 33 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  6..37....onlyif 
24450 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
24460 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
24470 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
24480 6c 2d 37 39 36 0d 0a 53 45 4c 45 43 54 20 2d 20  l-796..SELECT - 
24490 4d 49 4e 28 20 44 49 53 54 49 4e 43 54 20 2d 20  MIN( DISTINCT - 
244a0 2d 20 30 20 29 20 46 52 4f 4d 20 74 61 62 32 20  - 0 ) FROM tab2 
244b0 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
244c0 49 4e 20 74 61 62 30 20 41 53 20 63 6f 72 31 0d  IN tab0 AS cor1.
244d0 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .----..0....skip
244e0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
244f0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
24500 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
24510 2d 37 39 36 0d 0a 53 45 4c 45 43 54 20 2d 20 4d  -796..SELECT - M
24520 49 4e 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20  IN ( DISTINCT - 
24530 2d 20 30 20 29 20 46 52 4f 4d 20 74 61 62 32 20  - 0 ) FROM tab2 
24540 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
24550 49 4e 20 74 61 62 30 20 41 53 20 63 6f 72 31 0d  IN tab0 AS cor1.
24560 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72  .----..0....quer
24570 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
24580 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 41 53  LECT ALL col1 AS
24590 20 63 6f 6c 30 2c 20 35 38 20 41 53 20 63 6f 6c   col0, 58 AS col
245a0 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
245b0 2d 0d 0a 35 31 0d 0a 35 38 0d 0a 36 37 0d 0a 35  -..51..58..67..5
245c0 38 0d 0a 37 37 0d 0a 35 38 0d 0a 0d 0a 73 6b 69  8..77..58....ski
245d0 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
245e0 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
245f0 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
24600 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
24610 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
24620 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
24630 53 54 49 4e 43 54 20 2b 20 32 37 20 63 6f 6c 30  STINCT + 27 col0
24640 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
24650 0d 0a 32 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..27....onlyif m
24660 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
24670 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
24680 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
24690 2d 37 39 39 0d 0a 53 45 4c 45 43 54 20 44 49 53  -799..SELECT DIS
246a0 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a  TINCT - COUNT( *
246b0 20 29 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   ) FROM tab2 WHE
246c0 52 45 20 2d 20 37 31 20 2b 20 28 20 2d 20 63 6f  RE - 71 + ( - co
246d0 6c 31 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  l1 ) IS NULL..--
246e0 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..0....skipif 
246f0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
24700 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
24710 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 39  rowsort label-79
24720 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  9..SELECT DISTIN
24730 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29  CT - COUNT ( * )
24740 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
24750 20 2d 20 37 31 20 2b 20 28 20 2d 20 63 6f 6c 31   - 71 + ( - col1
24760 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d   ) IS NULL..----
24770 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..0....onlyif my
24780 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
24790 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
247a0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
247b0 38 30 30 0d 0a 53 45 4c 45 43 54 20 4d 49 4e 28  800..SELECT MIN(
247c0 20 2d 20 2d 20 32 30 20 29 20 41 53 20 63 6f 6c   - - 20 ) AS col
247d0 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  0 FROM tab1..---
247e0 2d 0d 0a 32 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..20....skipif 
247f0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
24800 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
24810 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 30  rowsort label-80
24820 30 0d 0a 53 45 4c 45 43 54 20 4d 49 4e 20 28 20  0..SELECT MIN ( 
24830 2d 20 2d 20 32 30 20 29 20 41 53 20 63 6f 6c 30  - - 20 ) AS col0
24840 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
24850 0d 0a 32 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..20....query II
24860 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
24870 54 20 2d 20 63 6f 6c 32 2c 20 63 6f 6c 30 2c 20  T - col2, col0, 
24880 2b 20 63 6f 6c 30 20 2d 20 2b 20 34 38 20 41 53  + col0 - + 48 AS
24890 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
248a0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  cor0..----..9 va
248b0 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
248c0 61 37 64 39 62 39 35 62 35 37 30 35 62 37 31 37  a7d9b95b5705b717
248d0 34 62 35 31 39 63 64 34 61 63 65 32 63 31 63 64  4b519cd4ace2c1cd
248e0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
248f0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
24900 36 31 20 2a 20 2d 20 63 6f 6c 30 20 46 52 4f 4d  61 * - col0 FROM
24910 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
24920 2d 2d 2d 0d 0a 2d 33 31 31 31 0d 0a 2d 35 31 38  ---..-3111..-518
24930 35 0d 0a 2d 35 35 35 31 0d 0a 0d 0a 6f 6e 6c 79  5..-5551....only
24940 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
24950 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
24960 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49  ype: ..query III
24970 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
24980 30 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  03..SELECT DISTI
24990 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  NCT * FROM tab0 
249a0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f  AS cor0 WHERE co
249b0 6c 32 20 2a 20 43 41 53 54 28 20 63 6f 6c 31 20  l2 * CAST( col1 
249c0 41 53 20 53 49 47 4e 45 44 20 29 20 2f 20 63 6f  AS SIGNED ) / co
249d0 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  l1 IS NOT NULL..
249e0 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
249f0 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37  ashing to c4b427
24a00 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30  65dff94eaaa46040
24a10 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 73 6b  e537fb43b7....sk
24a20 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
24a30 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
24a40 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
24a50 61 62 65 6c 2d 38 30 33 0d 0a 53 45 4c 45 43 54  abel-803..SELECT
24a60 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
24a70 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
24a80 45 52 45 20 63 6f 6c 32 20 2a 20 43 41 53 54 20  ERE col2 * CAST 
24a90 28 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45  ( col1 AS INTEGE
24aa0 52 20 29 20 2f 20 63 6f 6c 31 20 49 53 20 4e 4f  R ) / col1 IS NO
24ab0 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20  T NULL..----..9 
24ac0 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
24ad0 6f 20 63 34 62 34 32 37 36 35 64 66 66 39 34 65  o c4b42765dff94e
24ae0 61 61 61 34 36 30 34 30 65 35 33 37 66 62 34 33  aaa46040e537fb43
24af0 62 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  b7....onlyif mys
24b00 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
24b10 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
24b20 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
24b30 30 34 0d 0a 53 45 4c 45 43 54 20 4d 41 58 28 20  04..SELECT MAX( 
24b40 2d 20 32 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20  - 2 ) col1 FROM 
24b50 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
24b60 2d 2d 0d 0a 2d 32 0d 0a 0d 0a 73 6b 69 70 69 66  --..-2....skipif
24b70 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
24b80 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
24b90 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
24ba0 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
24bb0 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
24bc0 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
24bd0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
24be0 74 20 6c 61 62 65 6c 2d 38 30 34 0d 0a 53 45 4c  t label-804..SEL
24bf0 45 43 54 20 4d 41 58 20 28 20 2d 20 32 20 29 20  ECT MAX ( - 2 ) 
24c00 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
24c10 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  S cor0..----..-2
24c20 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
24c30 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
24c40 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
24c50 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
24c60 61 62 65 6c 2d 38 30 35 0d 0a 53 45 4c 45 43 54  abel-805..SELECT
24c70 20 44 49 53 54 49 4e 43 54 20 2b 20 37 39 20 44   DISTINCT + 79 D
24c80 49 56 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  IV col2 FROM tab
24c90 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
24ca0 0a 30 0d 0a 31 0d 0a 37 0d 0a 0d 0a 73 6b 69 70  .0..1..7....skip
24cb0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
24cc0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
24cd0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
24ce0 2d 38 30 35 0d 0a 53 45 4c 45 43 54 20 44 49 53  -805..SELECT DIS
24cf0 54 49 4e 43 54 20 2b 20 37 39 20 2f 20 63 6f 6c  TINCT + 79 / col
24d00 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
24d10 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31 0d  or0..----..0..1.
24d20 0a 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .7....onlyif mys
24d30 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
24d40 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69  yntax: DIV for i
24d50 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
24d60 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
24d70 72 74 20 6c 61 62 65 6c 2d 38 30 36 0d 0a 53 45  rt label-806..SE
24d80 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 37 34  LECT DISTINCT 74
24d90 20 44 49 56 20 2d 20 4d 41 58 28 20 41 4c 4c 20   DIV - MAX( ALL 
24da0 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 32  col1 ) FROM tab2
24db0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
24dc0 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
24dd0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
24de0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
24df0 6f 72 74 20 6c 61 62 65 6c 2d 38 30 36 0d 0a 53  ort label-806..S
24e00 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 37  ELECT DISTINCT 7
24e10 34 20 2f 20 2d 20 4d 41 58 20 28 20 41 4c 4c 20  4 / - MAX ( ALL 
24e20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 32  col1 ) FROM tab2
24e30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
24e40 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  0....query II ro
24e50 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
24e60 4c 20 39 35 20 41 53 20 63 6f 6c 31 2c 20 39 30  L 95 AS col1, 90
24e70 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
24e80 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 35 0d 0a 39 30  r0..----..95..90
24e90 0d 0a 39 35 0d 0a 39 30 0d 0a 39 35 0d 0a 39 30  ..95..90..95..90
24ea0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
24eb0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
24ec0 20 2d 20 34 30 20 41 53 20 63 6f 6c 31 2c 20 2d   - 40 AS col1, -
24ed0 20 36 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53   61 FROM tab0 AS
24ee0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 30   cor0..----..-40
24ef0 0d 0a 2d 36 31 0d 0a 2d 34 30 0d 0a 2d 36 31 0d  ..-61..-40..-61.
24f00 0a 2d 34 30 0d 0a 2d 36 31 0d 0a 0d 0a 6f 6e 6c  .-40..-61....onl
24f10 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
24f20 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
24f30 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
24f40 6c 61 62 65 6c 2d 38 30 39 0d 0a 53 45 4c 45 43  label-809..SELEC
24f50 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54  T DISTINCT COUNT
24f60 28 20 2a 20 29 20 2b 20 2d 20 2d 20 38 37 20 46  ( * ) + - - 87 F
24f70 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
24f80 0d 0a 2d 2d 2d 2d 0d 0a 39 30 0d 0a 0d 0a 73 6b  ..----..90....sk
24f90 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
24fa0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
24fb0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
24fc0 65 6c 2d 38 30 39 0d 0a 53 45 4c 45 43 54 20 44  el-809..SELECT D
24fd0 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 20 28 20  ISTINCT COUNT ( 
24fe0 2a 20 29 20 2b 20 2d 20 2d 20 38 37 20 46 52 4f  * ) + - - 87 FRO
24ff0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
25000 2d 2d 2d 2d 0d 0a 39 30 0d 0a 0d 0a 6f 6e 6c 79  ----..90....only
25010 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
25020 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
25030 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
25040 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 31 30  owsort label-810
25050 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
25060 54 20 2b 20 2d 20 43 41 53 54 28 20 2b 20 2d 20  T + - CAST( + - 
25070 63 6f 6c 32 20 41 53 20 53 49 47 4e 45 44 20 29  col2 AS SIGNED )
25080 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
25090 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 34 30  r0..----..23..40
250a0 0d 0a 35 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..58....skipif m
250b0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
250c0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
250d0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 31 30  owsort label-810
250e0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
250f0 54 20 2b 20 2d 20 43 41 53 54 20 28 20 2b 20 2d  T + - CAST ( + -
25100 20 63 6f 6c 32 20 41 53 20 49 4e 54 45 47 45 52   col2 AS INTEGER
25110 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
25120 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a  cor0..----..23..
25130 34 30 0d 0a 35 38 0d 0a 0d 0a 6f 6e 6c 79 69 66  40..58....onlyif
25140 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
25150 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
25160 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
25170 62 65 6c 2d 38 31 31 0d 0a 53 45 4c 45 43 54 20  bel-811..SELECT 
25180 2d 20 4d 41 58 28 20 63 6f 6c 32 20 29 2c 20 2b  - MAX( col2 ), +
25190 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
251a0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
251b0 2d 2d 2d 0d 0a 2d 39 36 0d 0a 33 0d 0a 0d 0a 73  ---..-96..3....s
251c0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
251d0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
251e0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
251f0 61 62 65 6c 2d 38 31 31 0d 0a 53 45 4c 45 43 54  abel-811..SELECT
25200 20 2d 20 4d 41 58 20 28 20 63 6f 6c 32 20 29 2c   - MAX ( col2 ),
25210 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41   + COUNT ( * ) A
25220 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
25230 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 36 0d 0a 33 0d 0a  ..----..-96..3..
25240 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
25250 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2a  t..SELECT col0 *
25260 20 2b 20 37 31 20 46 52 4f 4d 20 74 61 62 31 20   + 71 FROM tab1 
25270 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 32  WHERE NOT + col2
25280 20 2a 20 34 37 20 4e 4f 54 20 42 45 54 57 45 45   * 47 NOT BETWEE
25290 4e 20 37 35 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d  N 75 AND NULL..-
252a0 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ---....query III
252b0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
252c0 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31   ALL * FROM tab1
252d0 20 57 48 45 52 45 20 4e 4f 54 20 35 30 20 2b 20   WHERE NOT 50 + 
252e0 63 6f 6c 32 20 4e 4f 54 20 42 45 54 57 45 45 4e  col2 NOT BETWEEN
252f0 20 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c 0d 0a   NULL AND NULL..
25300 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
25310 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
25320 2d 20 37 39 20 2a 20 2d 20 35 36 20 41 53 20 63  - 79 * - 56 AS c
25330 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol0 FROM tab2..-
25340 2d 2d 2d 0d 0a 34 34 32 34 0d 0a 34 34 32 34 0d  ---..4424..4424.
25350 0a 34 34 32 34 0d 0a 0d 0a 71 75 65 72 79 20 49  .4424....query I
25360 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
25370 20 44 49 53 54 49 4e 43 54 20 28 20 63 6f 6c 32   DISTINCT ( col2
25380 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
25390 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2d  tab1 WHERE NOT -
253a0 20 32 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d   22 IS NULL..---
253b0 2d 0d 0a 35 39 0d 0a 36 38 0d 0a 39 36 0d 0a 0d  -..59..68..96...
253c0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
253d0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
253e0 43 54 20 2d 20 63 6f 6c 30 20 2a 20 63 6f 6c 30  CT - col0 * col0
253f0 20 41 53 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c 30   AS col1, + col0
25400 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
25410 0d 0a 2d 32 31 31 36 0d 0a 34 36 0d 0a 2d 34 30  ..-2116..46..-40
25420 39 36 0d 0a 36 34 0d 0a 2d 35 36 32 35 0d 0a 37  96..64..-5625..7
25430 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  5....onlyif mysq
25440 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
25450 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
25460 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 31  rowsort label-81
25470 37 0d 0a 53 45 4c 45 43 54 20 4d 49 4e 28 20 44  7..SELECT MIN( D
25480 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 29  ISTINCT + col1 )
25490 20 2a 20 2b 20 2d 20 38 34 20 41 53 20 63 6f 6c   * + - 84 AS col
254a0 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
254b0 2d 0d 0a 2d 34 32 38 34 0d 0a 0d 0a 73 6b 69 70  -..-4284....skip
254c0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
254d0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
254e0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
254f0 2d 38 31 37 0d 0a 53 45 4c 45 43 54 20 4d 49 4e  -817..SELECT MIN
25500 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f   ( DISTINCT + co
25510 6c 31 20 29 20 2a 20 2b 20 2d 20 38 34 20 41 53  l1 ) * + - 84 AS
25520 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
25530 0a 2d 2d 2d 2d 0d 0a 2d 34 32 38 34 0d 0a 0d 0a  .----..-4284....
25540 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
25550 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
25560 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
25570 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
25580 2d 38 31 38 0d 0a 53 45 4c 45 43 54 20 43 41 53  -818..SELECT CAS
25590 54 28 20 2b 20 2b 20 28 20 34 34 20 29 20 41 53  T( + + ( 44 ) AS
255a0 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c   SIGNED ) AS col
255b0 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
255c0 2d 0d 0a 34 34 0d 0a 34 34 0d 0a 34 34 0d 0a 0d  -..44..44..44...
255d0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
255e0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
255f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
25600 6c 61 62 65 6c 2d 38 31 38 0d 0a 53 45 4c 45 43  label-818..SELEC
25610 54 20 43 41 53 54 20 28 20 2b 20 2b 20 28 20 34  T CAST ( + + ( 4
25620 34 20 29 20 41 53 20 49 4e 54 45 47 45 52 20 29  4 ) AS INTEGER )
25630 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
25640 62 30 0d 0a 2d 2d 2d 2d 0d 0a 34 34 0d 0a 34 34  b0..----..44..44
25650 0d 0a 34 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..44....query I 
25660 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
25670 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 63 6f 6c  DISTINCT + - col
25680 30 20 2b 20 2d 20 28 20 63 6f 6c 31 20 29 20 46  0 + - ( col1 ) F
25690 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
256a0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 31 0d 0a 2d 31  ..----..-141..-1
256b0 34 32 0d 0a 2d 39 37 0d 0a 0d 0a 71 75 65 72 79  42..-97....query
256c0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
256d0 43 54 20 2b 20 2d 20 35 30 20 46 52 4f 4d 20 74  CT + - 50 FROM t
256e0 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
256f0 45 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55  E col1 IS NOT NU
25700 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 30 0d 0a 2d  LL..----..-50..-
25710 35 30 0d 0a 2d 35 30 0d 0a 0d 0a 6f 6e 6c 79 69  50..-50....onlyi
25720 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
25730 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
25740 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
25750 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 32 31 0d  wsort label-821.
25760 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 44 49 56  .SELECT col2 DIV
25770 20 63 6f 6c 31 20 2a 20 2b 20 28 20 2b 20 2b 20   col1 * + ( + + 
25780 63 6f 6c 30 20 29 20 2d 20 2d 20 28 20 2d 20 63  col0 ) - - ( - c
25790 6f 6c 30 20 29 20 2b 20 63 6f 6c 32 20 41 53 20  ol0 ) + col2 AS 
257a0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 63  col1 FROM tab1 c
257b0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 35 31 0d 0a  or0..----..351..
257c0 36 38 0d 0a 39 30 39 0d 0a 0d 0a 73 6b 69 70 69  68..909....skipi
257d0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
257e0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
257f0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
25800 38 32 31 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32  821..SELECT col2
25810 20 2f 20 63 6f 6c 31 20 2a 20 2b 20 28 20 2b 20   / col1 * + ( + 
25820 2b 20 63 6f 6c 30 20 29 20 2d 20 2d 20 28 20 2d  + col0 ) - - ( -
25830 20 63 6f 6c 30 20 29 20 2b 20 63 6f 6c 32 20 41   col0 ) + col2 A
25840 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
25850 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 35 31   cor0..----..351
25860 0d 0a 36 38 0d 0a 39 30 39 0d 0a 0d 0a 6f 6e 6c  ..68..909....onl
25870 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
25880 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
25890 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
258a0 6c 61 62 65 6c 2d 38 32 32 0d 0a 53 45 4c 45 43  label-822..SELEC
258b0 54 20 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  T - + COUNT( * )
258c0 20 2d 20 2b 20 33 39 20 41 53 20 63 6f 6c 31 20   - + 39 AS col1 
258d0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
258e0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 32 0d 0a 0d 0a  0..----..-42....
258f0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
25900 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
25910 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
25920 61 62 65 6c 2d 38 32 32 0d 0a 53 45 4c 45 43 54  abel-822..SELECT
25930 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29   - + COUNT ( * )
25940 20 2d 20 2b 20 33 39 20 41 53 20 63 6f 6c 31 20   - + 39 AS col1 
25950 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
25960 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 32 0d 0a 0d 0a  0..----..-42....
25970 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
25980 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49  AST syntax: DECI
25990 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  MAL type: ..quer
259a0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
259b0 6c 2d 38 32 33 0d 0a 53 45 4c 45 43 54 20 41 4c  l-823..SELECT AL
259c0 4c 20 2d 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 63  L - + col1 * + c
259d0 6f 6c 32 20 2d 20 2d 20 32 35 20 2b 20 2d 20 63  ol2 - - 25 + - c
259e0 6f 6c 31 20 2a 20 43 41 53 54 28 20 4e 55 4c 4c  ol1 * CAST( NULL
259f0 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20 2b 20   AS DECIMAL ) + 
25a00 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  + - col0 FROM ta
25a10 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
25a20 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
25a30 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
25a40 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
25a50 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
25a60 73 6f 72 74 20 6c 61 62 65 6c 2d 38 32 33 0d 0a  sort label-823..
25a70 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 63  SELECT ALL - + c
25a80 6f 6c 31 20 2a 20 2b 20 63 6f 6c 32 20 2d 20 2d  ol1 * + col2 - -
25a90 20 32 35 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 43   25 + - col1 * C
25aa0 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45  AST ( NULL AS RE
25ab0 41 4c 20 29 20 2b 20 2b 20 2d 20 63 6f 6c 30 20  AL ) + + - col0 
25ac0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
25ad0 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  0..----..NULL..N
25ae0 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c  ULL..NULL....onl
25af0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
25b00 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
25b10 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
25b20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 32  rowsort label-82
25b30 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  4..SELECT DISTIN
25b40 43 54 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53  CT CAST( NULL AS
25b50 20 53 49 47 4e 45 44 20 29 20 2f 20 2b 20 63 6f   SIGNED ) / + co
25b60 6c 31 20 2a 20 2d 20 2b 20 33 38 20 2b 20 2d 20  l1 * - + 38 + - 
25b70 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 31 20 41 53  col2 + - col1 AS
25b80 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
25b90 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
25ba0 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
25bb0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
25bc0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
25bd0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 32 34 0d  wsort label-824.
25be0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
25bf0 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
25c00 49 4e 54 45 47 45 52 20 29 20 2f 20 2b 20 63 6f  INTEGER ) / + co
25c10 6c 31 20 2a 20 2d 20 2b 20 33 38 20 2b 20 2d 20  l1 * - + 38 + - 
25c20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 31 20 41 53  col2 + - col1 AS
25c30 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
25c40 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
25c50 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ULL....query III
25c60 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
25c70 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
25c80 52 45 20 2b 20 35 34 20 2a 20 63 6f 6c 31 20 3c  RE + 54 * col1 <
25c90 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  > NULL..----....
25ca0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
25cb0 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
25cc0 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
25cd0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
25ce0 2d 38 32 36 0d 0a 53 45 4c 45 43 54 20 44 49 53  -826..SELECT DIS
25cf0 54 49 4e 43 54 20 63 6f 6c 30 20 2d 20 43 41 53  TINCT col0 - CAS
25d00 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
25d10 44 20 29 20 2f 20 2b 20 2b 20 34 35 20 63 6f 6c  D ) / + + 45 col
25d20 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
25d30 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  -..NULL....skipi
25d40 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
25d50 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66  mpatible..skipif
25d60 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
25d70 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
25d80 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
25d90 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
25da0 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
25db0 72 74 20 6c 61 62 65 6c 2d 38 32 36 0d 0a 53 45  rt label-826..SE
25dc0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
25dd0 6c 30 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c  l0 - CAST ( NULL
25de0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2f 20   AS INTEGER ) / 
25df0 2b 20 2b 20 34 35 20 63 6f 6c 32 20 46 52 4f 4d  + + 45 col2 FROM
25e00 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   tab0..----..NUL
25e10 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  L....onlyif mysq
25e20 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
25e30 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
25e40 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
25e50 20 6c 61 62 65 6c 2d 38 32 37 0d 0a 53 45 4c 45   label-827..SELE
25e60 43 54 20 28 20 2d 20 63 6f 6c 30 20 29 20 41 53  CT ( - col0 ) AS
25e70 20 63 6f 6c 30 2c 20 63 6f 6c 30 20 2a 20 2d 20   col0, col0 * - 
25e80 35 39 20 2a 20 43 41 53 54 28 20 4e 55 4c 4c 20  59 * CAST( NULL 
25e90 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d  AS SIGNED ) FROM
25ea0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35   tab0..----..-15
25eb0 0d 0a 4e 55 4c 4c 0d 0a 2d 38 37 0d 0a 4e 55 4c  ..NULL..-87..NUL
25ec0 4c 0d 0a 2d 39 37 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  L..-97..NULL....
25ed0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
25ee0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
25ef0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
25f00 6c 61 62 65 6c 2d 38 32 37 0d 0a 53 45 4c 45 43  label-827..SELEC
25f10 54 20 28 20 2d 20 63 6f 6c 30 20 29 20 41 53 20  T ( - col0 ) AS 
25f20 63 6f 6c 30 2c 20 63 6f 6c 30 20 2a 20 2d 20 35  col0, col0 * - 5
25f30 39 20 2a 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  9 * CAST ( NULL 
25f40 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f  AS INTEGER ) FRO
25f50 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab0..----..-1
25f60 35 0d 0a 4e 55 4c 4c 0d 0a 2d 38 37 0d 0a 4e 55  5..NULL..-87..NU
25f70 4c 4c 0d 0a 2d 39 37 0d 0a 4e 55 4c 4c 0d 0a 0d  LL..-97..NULL...
25f80 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
25f90 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
25fa0 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  NCT * FROM tab1 
25fb0 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 4f 54 20  WHERE NOT ( NOT 
25fc0 32 37 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 20 29  27 IS NOT NULL )
25fd0 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
25fe0 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30   hashing to c6c0
25ff0 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38 31  a4111b36d04dbc81
26000 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a  1a11e4d54cad....
26010 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
26020 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f  .SELECT ALL + co
26030 6c 31 20 2a 20 63 6f 6c 32 20 2a 20 2d 20 63 6f  l1 * col2 * - co
26040 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
26050 2d 2d 0d 0a 2d 31 32 33 32 30 30 0d 0a 2d 32 32  --..-123200..-22
26060 35 33 38 38 0d 0a 2d 32 36 39 37 39 0d 0a 0d 0a  5388..-26979....
26070 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
26080 0a 53 45 4c 45 43 54 20 2b 20 39 33 20 2a 20 2d  .SELECT + 93 * -
26090 20 2d 20 34 30 20 2a 20 63 6f 6c 30 20 46 52 4f   - 40 * col0 FRO
260a0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
260b0 2d 2d 2d 2d 0d 0a 33 32 33 36 34 30 0d 0a 33 36  ----..323640..36
260c0 30 38 34 30 0d 0a 35 35 38 30 30 0d 0a 0d 0a 6f  0840..55800....o
260d0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
260e0 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d  ST syntax: DECIM
260f0 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  AL type: ..query
26100 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
26110 2d 38 33 31 0d 0a 53 45 4c 45 43 54 20 2d 20 2d  -831..SELECT - -
26120 20 63 6f 6c 30 20 2a 20 2d 20 37 33 20 2b 20 43   col0 * - 73 + C
26130 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43  AST( NULL AS DEC
26140 49 4d 41 4c 20 29 20 41 53 20 63 6f 6c 30 20 46  IMAL ) AS col0 F
26150 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
26160 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
26170 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  LL..NULL....skip
26180 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
26190 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
261a0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
261b0 2d 38 33 31 0d 0a 53 45 4c 45 43 54 20 2d 20 2d  -831..SELECT - -
261c0 20 63 6f 6c 30 20 2a 20 2d 20 37 33 20 2b 20 43   col0 * - 73 + C
261d0 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45  AST ( NULL AS RE
261e0 41 4c 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  AL ) AS col0 FRO
261f0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
26200 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
26210 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..NULL....onlyif
26220 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
26230 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
26240 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
26250 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33 32 0d 0a  sort label-832..
26260 53 45 4c 45 43 54 20 28 20 2d 20 2d 20 63 6f 6c  SELECT ( - - col
26270 31 20 29 20 2a 20 2b 20 34 35 20 2b 20 2b 20 2d  1 ) * + 45 + + -
26280 20 63 6f 6c 30 20 44 49 56 20 2b 20 2d 20 63 6f   col0 DIV + - co
26290 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
262a0 2d 2d 0d 0a 32 31 31 36 0d 0a 32 34 32 0d 0a 36  --..2116..242..6
262b0 33 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  33....skipif mys
262c0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
262d0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
262e0 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33 32 0d 0a  sort label-832..
262f0 53 45 4c 45 43 54 20 28 20 2d 20 2d 20 63 6f 6c  SELECT ( - - col
26300 31 20 29 20 2a 20 2b 20 34 35 20 2b 20 2b 20 2d  1 ) * + 45 + + -
26310 20 63 6f 6c 30 20 2f 20 2b 20 2d 20 63 6f 6c 31   col0 / + - col1
26320 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
26330 0d 0a 32 31 31 36 0d 0a 32 34 32 0d 0a 36 33 33  ..2116..242..633
26340 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
26350 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
26360 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 57  col2 FROM tab0 W
26370 48 45 52 45 20 31 39 20 49 53 20 4e 4f 54 20 4e  HERE 19 IS NOT N
26380 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 34  ULL..----..10..4
26390 37 0d 0a 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  7..99....onlyif 
263a0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
263b0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
263c0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
263d0 6c 2d 38 33 34 0d 0a 53 45 4c 45 43 54 20 2b 20  l-834..SELECT + 
263e0 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 37 32 20  COUNT( * ) * 72 
263f0 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
26400 4e 4f 54 20 2b 20 63 6f 6c 30 20 49 53 20 4e 55  NOT + col0 IS NU
26410 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 31 36 0d 0a 0d  LL..----..216...
26420 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
26430 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
26440 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
26450 6c 61 62 65 6c 2d 38 33 34 0d 0a 53 45 4c 45 43  label-834..SELEC
26460 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  T + COUNT ( * ) 
26470 2a 20 37 32 20 46 52 4f 4d 20 74 61 62 30 20 57  * 72 FROM tab0 W
26480 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 30 20  HERE NOT + col0 
26490 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 32  IS NULL..----..2
264a0 31 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  16....query II r
264b0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
264c0 49 53 54 49 4e 43 54 20 2d 20 2b 20 63 6f 6c 32  ISTINCT - + col2
264d0 20 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 31 20 2a   AS col2, col1 *
264e0 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 2b 20 63 6f   + col0 + - + co
264f0 6c 30 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74  l0 + col2 FROM t
26500 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
26510 2d 0d 0a 2d 35 39 0d 0a 33 39 39 0d 0a 2d 36 38  -..-59..399..-68
26520 0d 0a 34 32 35 34 0d 0a 2d 39 36 0d 0a 37 35 39  ..4254..-96..759
26530 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
26540 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
26550 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
26560 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
26570 61 62 65 6c 2d 38 33 36 0d 0a 53 45 4c 45 43 54  abel-836..SELECT
26580 20 41 4c 4c 20 2d 20 2b 20 63 6f 6c 31 20 44 49   ALL - + col1 DI
26590 56 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 31 20 46  V - col1 + + 1 F
265a0 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d  ROM tab2 cor0..-
265b0 2d 2d 2d 0d 0a 32 0d 0a 32 0d 0a 32 0d 0a 0d 0a  ---..2..2..2....
265c0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
265d0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
265e0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
265f0 61 62 65 6c 2d 38 33 36 0d 0a 53 45 4c 45 43 54  abel-836..SELECT
26600 20 41 4c 4c 20 2d 20 2b 20 63 6f 6c 31 20 2f 20   ALL - + col1 / 
26610 2d 20 63 6f 6c 31 20 2b 20 2b 20 31 20 46 52 4f  - col1 + + 1 FRO
26620 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab2 cor0..---
26630 2d 0d 0a 32 0d 0a 32 0d 0a 32 0d 0a 0d 0a 6f 6e  -..2..2..2....on
26640 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
26650 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
26660 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
26670 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
26680 33 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  37..SELECT DISTI
26690 4e 43 54 20 2d 20 2b 20 63 6f 6c 31 20 2a 20 2b  NCT - + col1 * +
266a0 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
266b0 49 47 4e 45 44 20 29 20 2a 20 2b 20 31 37 20 2a  IGNED ) * + 17 *
266c0 20 2b 20 39 36 20 46 52 4f 4d 20 74 61 62 30 20   + 96 FROM tab0 
266d0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
266e0 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
266f0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
26700 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
26710 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33 37 0d  wsort label-837.
26720 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
26730 20 2d 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 43 41   - + col1 * + CA
26740 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
26750 45 47 45 52 20 29 20 2a 20 2b 20 31 37 20 2a 20  EGER ) * + 17 * 
26760 2b 20 39 36 20 46 52 4f 4d 20 74 61 62 30 20 41  + 96 FROM tab0 A
26770 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
26780 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  LL....query III 
26790 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
267a0 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  * FROM tab2 AS c
267b0 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f  or0 WHERE NOT co
267c0 6c 30 20 2a 20 2d 20 63 6f 6c 31 20 49 53 20 4e  l0 * - col1 IS N
267d0 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  OT NULL..----...
267e0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
267f0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
26800 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
26810 6f 72 74 20 6c 61 62 65 6c 2d 38 33 39 0d 0a 53  ort label-839..S
26820 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a  ELECT + COUNT( *
26830 20 29 20 2b 20 2b 20 28 20 2d 20 39 37 20 29 20   ) + + ( - 97 ) 
26840 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
26850 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
26860 0a 2d 39 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-94....skipif m
26870 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
26880 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
26890 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33 39  owsort label-839
268a0 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54  ..SELECT + COUNT
268b0 20 28 20 2a 20 29 20 2b 20 2b 20 28 20 2d 20 39   ( * ) + + ( - 9
268c0 37 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  7 ) AS col2 FROM
268d0 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
268e0 2d 2d 2d 0d 0a 2d 39 34 0d 0a 0d 0a 6f 6e 6c 79  ---..-94....only
268f0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
26900 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
26910 79 70 65 3a 20 44 49 56 20 66 6f 72 20 69 6e 74  ype: DIV for int
26920 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
26930 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
26940 20 6c 61 62 65 6c 2d 38 34 30 0d 0a 53 45 4c 45   label-840..SELE
26950 43 54 20 2b 20 31 38 20 44 49 56 20 2d 20 35 35  CT + 18 DIV - 55
26960 20 2b 20 2d 20 43 41 53 54 28 20 2d 20 41 56 47   + - CAST( - AVG
26970 20 28 20 2b 20 2b 20 63 6f 6c 32 20 29 20 41 53   ( + + col2 ) AS
26980 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c   SIGNED ) AS col
26990 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
269a0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 30 0d 0a 0d  or0..----..40...
269b0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
269c0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
269d0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
269e0 6c 61 62 65 6c 2d 38 34 30 0d 0a 53 45 4c 45 43  label-840..SELEC
269f0 54 20 2b 20 31 38 20 2f 20 2d 20 35 35 20 2b 20  T + 18 / - 55 + 
26a00 2d 20 43 41 53 54 20 28 20 2d 20 41 56 47 20 28  - CAST ( - AVG (
26a10 20 2b 20 2b 20 63 6f 6c 32 20 29 20 41 53 20 49   + + col2 ) AS I
26a20 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 32  NTEGER ) AS col2
26a30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
26a40 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 30 0d 0a 0d 0a  r0..----..40....
26a50 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
26a60 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2b  .SELECT - col0 +
26a70 20 2b 20 32 34 20 2a 20 2d 20 63 6f 6c 32 20 46   + 24 * - col2 F
26a80 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
26a90 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 34 33 0d 0a 2d  ..----..-1143..-
26aa0 32 34 37 33 0d 0a 2d 33 32 37 0d 0a 0d 0a 71 75  2473..-327....qu
26ab0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
26ac0 45 4c 45 43 54 20 2d 20 2d 20 63 6f 6c 30 20 46  ELECT - - col0 F
26ad0 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48  ROM tab2 cor0 WH
26ae0 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3e 20 63  ERE NOT NULL > c
26af0 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ol2..----....onl
26b00 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
26b10 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
26b20 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
26b30 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34  rowsort label-84
26b40 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f  3..SELECT ALL co
26b50 6c 31 20 44 49 56 20 2d 20 63 6f 6c 30 20 2b 20  l1 DIV - col0 + 
26b60 2d 20 2b 20 63 6f 6c 32 20 2a 20 37 37 20 46 52  - + col2 * 77 FR
26b70 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
26b80 34 35 34 33 0d 0a 2d 35 32 33 36 0d 0a 2d 37 33  4543..-5236..-73
26b90 39 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  92....skipif mys
26ba0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
26bb0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
26bc0 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34 33 0d 0a  sort label-843..
26bd0 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20  SELECT ALL col1 
26be0 2f 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 2b 20 63  / - col0 + - + c
26bf0 6f 6c 32 20 2a 20 37 37 20 46 52 4f 4d 20 74 61  ol2 * 77 FROM ta
26c00 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 35 34 33 0d  b1..----..-4543.
26c10 0a 2d 35 32 33 36 0d 0a 2d 37 33 39 32 0d 0a 0d  .-5236..-7392...
26c20 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
26c30 0d 0a 53 45 4c 45 43 54 20 41 56 47 20 28 20 44  ..SELECT AVG ( D
26c40 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20 29  ISTINCT + col2 )
26c50 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
26c60 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63  b1 WHERE NOT + c
26c70 6f 6c 32 20 2b 20 63 6f 6c 31 20 2a 20 63 6f 6c  ol2 + col1 * col
26c80 32 20 2a 20 2d 20 32 30 20 4e 4f 54 20 42 45 54  2 * - 20 NOT BET
26c90 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 28 20  WEEN NULL AND ( 
26ca0 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  NULL )..----..NU
26cb0 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  LL....onlyif mys
26cc0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
26cd0 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69  yntax: DIV for i
26ce0 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
26cf0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
26d00 72 74 20 6c 61 62 65 6c 2d 38 34 35 0d 0a 53 45  rt label-845..SE
26d10 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
26d20 43 4f 55 4e 54 28 20 2a 20 29 20 44 49 56 20 2d  COUNT( * ) DIV -
26d30 20 2b 20 33 34 20 46 52 4f 4d 20 74 61 62 32 0d   + 34 FROM tab2.
26d40 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .----..0....skip
26d50 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
26d60 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
26d70 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
26d80 2d 38 34 35 0d 0a 53 45 4c 45 43 54 20 44 49 53  -845..SELECT DIS
26d90 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54 20 28 20  TINCT + COUNT ( 
26da0 2a 20 29 20 2f 20 2d 20 2b 20 33 34 20 46 52 4f  * ) / - + 34 FRO
26db0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab2..----..0.
26dc0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
26dd0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63  rt..SELECT ALL c
26de0 6f 6c 30 20 2a 20 2b 20 28 20 28 20 63 6f 6c 32  ol0 * + ( ( col2
26df0 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   ) ) AS col1 FRO
26e00 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 37 30  M tab0..----..70
26e10 35 0d 0a 38 37 30 0d 0a 39 36 30 33 0d 0a 0d 0a  5..870..9603....
26e20 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
26e30 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
26e40 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
26e50 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
26e60 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
26e70 65 6c 2d 38 34 37 0d 0a 53 45 4c 45 43 54 20 41  el-847..SELECT A
26e80 4c 4c 20 53 55 4d 28 20 2b 20 63 6f 6c 32 20 29  LL SUM( + col2 )
26e90 20 44 49 56 20 2b 20 4d 41 58 28 20 41 4c 4c 20   DIV + MAX( ALL 
26ea0 63 6f 6c 31 20 29 20 63 6f 6c 30 20 46 52 4f 4d  col1 ) col0 FROM
26eb0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 34 0d 0a   tab1..----..4..
26ec0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
26ed0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
26ee0 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
26ef0 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
26f00 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
26f10 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
26f20 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
26f30 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
26f40 38 34 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  847..SELECT ALL 
26f50 53 55 4d 20 28 20 2b 20 63 6f 6c 32 20 29 20 2f  SUM ( + col2 ) /
26f60 20 2b 20 4d 41 58 20 28 20 41 4c 4c 20 63 6f 6c   + MAX ( ALL col
26f70 31 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  1 ) col0 FROM ta
26f80 62 31 0d 0a 2d 2d 2d 2d 0d 0a 34 0d 0a 0d 0a 6f  b1..----..4....o
26f90 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
26fa0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
26fb0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
26fc0 74 20 6c 61 62 65 6c 2d 38 34 38 0d 0a 53 45 4c  t label-848..SEL
26fd0 45 43 54 20 41 4c 4c 20 2d 20 28 20 2d 20 4d 49  ECT ALL - ( - MI
26fe0 4e 28 20 2d 20 34 34 20 29 20 29 20 46 52 4f 4d  N( - 44 ) ) FROM
26ff0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 34   tab1..----..-44
27000 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
27010 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
27020 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
27030 72 74 20 6c 61 62 65 6c 2d 38 34 38 0d 0a 53 45  rt label-848..SE
27040 4c 45 43 54 20 41 4c 4c 20 2d 20 28 20 2d 20 4d  LECT ALL - ( - M
27050 49 4e 20 28 20 2d 20 34 34 20 29 20 29 20 46 52  IN ( - 44 ) ) FR
27060 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
27070 34 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  44....query I ro
27080 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
27090 4c 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32  L - col1 AS col2
270a0 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
270b0 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c   NOT NULL IS NUL
270c0 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
270d0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
270e0 43 54 20 2d 20 2b 20 28 20 35 31 20 29 20 41 53  CT - + ( 51 ) AS
270f0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
27100 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
27110 35 31 0d 0a 2d 35 31 0d 0a 2d 35 31 0d 0a 0d 0a  51..-51..-51....
27120 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
27130 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
27140 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
27150 72 74 20 6c 61 62 65 6c 2d 38 35 31 0d 0a 53 45  rt label-851..SE
27160 4c 45 43 54 20 2d 20 4d 49 4e 28 20 41 4c 4c 20  LECT - MIN( ALL 
27170 2d 20 2b 20 28 20 2b 20 63 6f 6c 31 20 29 20 29  - + ( + col1 ) )
27180 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
27190 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34  b1 cor0..----..4
271a0 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  7....skipif mysq
271b0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
271c0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
271d0 6f 72 74 20 6c 61 62 65 6c 2d 38 35 31 0d 0a 53  ort label-851..S
271e0 45 4c 45 43 54 20 2d 20 4d 49 4e 20 28 20 41 4c  ELECT - MIN ( AL
271f0 4c 20 2d 20 2b 20 28 20 2b 20 63 6f 6c 31 20 29  L - + ( + col1 )
27200 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
27210 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
27220 0a 34 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .47....query I r
27230 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
27240 4c 4c 20 2d 20 63 6f 6c 30 20 2b 20 36 34 20 46  LL - col0 + 64 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 32 33 0d 0a 2d 33 33  ..----..-23..-33
27270 0d 0a 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..49....onlyif m
27280 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
27290 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79  ax: aggregate sy
272a0 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
272b0 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
272c0 73 6f 72 74 20 6c 61 62 65 6c 2d 38 35 33 0d 0a  sort label-853..
272d0 53 45 4c 45 43 54 20 2d 20 43 41 53 54 28 20 43  SELECT - CAST( C
272e0 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 53 49 47  OUNT( * ) AS SIG
272f0 4e 45 44 20 29 20 41 53 20 63 6f 6c 30 20 46 52  NED ) AS col0 FR
27300 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
27310 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20  CROSS JOIN tab2 
27320 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor1..----..-
27330 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
27340 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
27350 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
27360 6f 72 74 20 6c 61 62 65 6c 2d 38 35 33 0d 0a 53  ort label-853..S
27370 45 4c 45 43 54 20 2d 20 43 41 53 54 20 28 20 43  ELECT - CAST ( C
27380 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 49 4e  OUNT ( * ) AS IN
27390 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 30 20  TEGER ) AS col0 
273a0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
273b0 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62  0 CROSS JOIN tab
273c0 32 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d  2 AS cor1..----.
273d0 0a 2d 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  .-9....query III
273e0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
273f0 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31   ALL * FROM tab1
27400 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e 55   cor0 WHERE ( NU
27410 4c 4c 20 29 20 3c 3e 20 2d 20 28 20 2b 20 2b 20  LL ) <> - ( + + 
27420 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  col2 )..----....
27430 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
27440 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
27450 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
27460 6f 72 74 20 6c 61 62 65 6c 2d 38 35 35 0d 0a 53  ort label-855..S
27470 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
27480 20 43 4f 55 4e 54 28 20 2a 20 29 20 2d 20 43 4f   COUNT( * ) - CO
27490 55 4e 54 28 20 2a 20 29 2c 20 43 4f 55 4e 54 28  UNT( * ), COUNT(
274a0 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   * ) AS col1 FRO
274b0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
274c0 2d 2d 2d 2d 0d 0a 2d 36 0d 0a 33 0d 0a 0d 0a 73  ----..-6..3....s
274d0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
274e0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
274f0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
27500 61 62 65 6c 2d 38 35 35 0d 0a 53 45 4c 45 43 54  abel-855..SELECT
27510 20 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e   DISTINCT - COUN
27520 54 20 28 20 2a 20 29 20 2d 20 43 4f 55 4e 54 20  T ( * ) - COUNT 
27530 28 20 2a 20 29 2c 20 43 4f 55 4e 54 20 28 20 2a  ( * ), COUNT ( *
27540 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
27550 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
27560 2d 2d 0d 0a 2d 36 0d 0a 33 0d 0a 0d 0a 73 6b 69  --..-6..3....ski
27570 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
27580 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
27590 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
275a0 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
275b0 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
275c0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
275d0 31 32 20 2a 20 36 33 20 2b 20 2d 20 63 6f 6c 31  12 * 63 + - col1
275e0 20 2a 20 63 6f 6c 31 20 63 6f 6c 31 20 46 52 4f   * col1 col1 FRO
275f0 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
27600 2d 0d 0a 2d 35 38 30 35 0d 0a 33 31 35 0d 0a 37  -..-5805..315..7
27610 35 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  55....query I ro
27620 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
27630 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f  col1 AS col1 FRO
27640 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48 45 52  M tab2 cor0 WHER
27650 45 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a  E NULL IS NULL..
27660 2d 2d 2d 2d 0d 0a 35 31 0d 0a 36 37 0d 0a 37 37  ----..51..67..77
27670 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
27680 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 33 39  ort..SELECT - 39
27690 20 2a 20 28 20 2b 20 2d 20 63 6f 6c 32 20 29 20   * ( + - col2 ) 
276a0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
276b0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
276c0 0a 31 38 33 33 0d 0a 33 38 36 31 0d 0a 33 39 30  .1833..3861..390
276d0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
276e0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
276f0 49 4e 43 54 20 31 39 20 2b 20 2b 20 63 6f 6c 31  INCT 19 + + col1
27700 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
27710 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 34 0d 0a 33 33  r0..----..24..33
27720 0d 0a 36 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..66....query II
27730 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
27740 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  T * FROM tab0 co
27750 72 30 20 57 48 45 52 45 20 38 31 20 3e 20 4e 55  r0 WHERE 81 > NU
27760 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  LL..----....only
27770 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
27780 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
27790 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
277a0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 36 31  owsort label-861
277b0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
277c0 54 20 2b 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c  T + - CAST( NULL
277d0 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 28   AS SIGNED ) * (
277e0 20 2d 20 63 6f 6c 32 20 29 20 2d 20 36 39 20 2b   - col2 ) - 69 +
277f0 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   + col2 FROM tab
27800 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
27810 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
27820 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
27830 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
27840 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 36  rowsort label-86
27850 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  1..SELECT DISTIN
27860 43 54 20 2b 20 2d 20 43 41 53 54 20 28 20 4e 55  CT + - CAST ( NU
27870 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
27880 2a 20 28 20 2d 20 63 6f 6c 32 20 29 20 2d 20 36  * ( - col2 ) - 6
27890 39 20 2b 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20  9 + + col2 FROM 
278a0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
278b0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79  --..NULL....only
278c0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
278d0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
278e0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
278f0 61 62 65 6c 2d 38 36 32 0d 0a 53 45 4c 45 43 54  abel-862..SELECT
27900 20 41 4c 4c 20 2d 20 53 55 4d 28 20 41 4c 4c 20   ALL - SUM( ALL 
27910 2b 20 2b 20 63 6f 6c 32 20 29 20 41 53 20 63 6f  + + col2 ) AS co
27920 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
27930 2d 2d 0d 0a 2d 31 32 31 0d 0a 0d 0a 73 6b 69 70  --..-121....skip
27940 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
27950 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
27960 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
27970 2d 38 36 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -862..SELECT ALL
27980 20 2d 20 53 55 4d 20 28 20 41 4c 4c 20 2b 20 2b   - SUM ( ALL + +
27990 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 32 20   col2 ) AS col2 
279a0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
279b0 0a 2d 31 32 31 0d 0a 0d 0a 71 75 65 72 79 20 49  .-121....query I
279c0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
279d0 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 2c  T DISTINCT col1,
279e0 20 2d 20 36 37 20 46 52 4f 4d 20 74 61 62 32 0d   - 67 FROM tab2.
279f0 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 2d 36 37 0d 0a  .----..51..-67..
27a00 36 37 0d 0a 2d 36 37 0d 0a 37 37 0d 0a 2d 36 37  67..-67..77..-67
27a10 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
27a20 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
27a30 2d 20 63 6f 6c 30 20 2a 20 33 38 20 46 52 4f 4d  - col0 * 38 FROM
27a40 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39   tab1..----..-19
27a50 33 38 0d 0a 2d 33 32 33 30 0d 0a 2d 33 34 35 38  38..-3230..-3458
27a60 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
27a70 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
27a80 54 49 4e 43 54 20 63 6f 6c 30 20 41 53 20 63 6f  TINCT col0 AS co
27a90 6c 31 2c 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f  l1, - col0 AS co
27aa0 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l1 FROM tab0..--
27ab0 2d 2d 0d 0a 31 35 0d 0a 2d 31 35 0d 0a 38 37 0d  --..15..-15..87.
27ac0 0a 2d 38 37 0d 0a 39 37 0d 0a 2d 39 37 0d 0a 0d  .-87..97..-97...
27ad0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
27ae0 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
27af0 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
27b00 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
27b10 6c 2d 38 36 36 0d 0a 53 45 4c 45 43 54 20 41 4c  l-866..SELECT AL
27b20 4c 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31  L + col1 AS col1
27b30 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
27b40 20 28 20 2b 20 43 41 53 54 28 20 28 20 63 6f 6c   ( + CAST( ( col
27b50 31 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20  1 ) AS SIGNED ) 
27b60 29 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e 55  ) NOT BETWEEN NU
27b70 4c 4c 20 41 4e 44 20 2b 20 39 37 0d 0a 2d 2d 2d  LL AND + 97..---
27b80 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  -....skipif mysq
27b90 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
27ba0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
27bb0 6f 72 74 20 6c 61 62 65 6c 2d 38 36 36 0d 0a 53  ort label-866..S
27bc0 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 31  ELECT ALL + col1
27bd0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
27be0 62 30 20 57 48 45 52 45 20 28 20 2b 20 43 41 53  b0 WHERE ( + CAS
27bf0 54 20 28 20 28 20 63 6f 6c 31 20 29 20 41 53 20  T ( ( col1 ) AS 
27c00 49 4e 54 45 47 45 52 20 29 20 29 20 4e 4f 54 20  INTEGER ) ) NOT 
27c10 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44  BETWEEN NULL AND
27c20 20 2b 20 39 37 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   + 97..----....o
27c30 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
27c40 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
27c50 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
27c60 72 74 20 6c 61 62 65 6c 2d 38 36 37 0d 0a 53 45  rt label-867..SE
27c70 4c 45 43 54 20 41 4c 4c 20 4d 49 4e 28 20 41 4c  LECT ALL MIN( AL
27c80 4c 20 2d 20 28 20 2b 20 2b 20 39 33 20 29 20 29  L - ( + + 93 ) )
27c90 2c 20 39 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  , 9 col2 FROM ta
27ca0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 33 0d 0a 39  b2..----..-93..9
27cb0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
27cc0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
27cd0 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
27ce0 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
27cf0 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
27d00 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
27d10 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
27d20 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
27d30 65 6c 2d 38 36 37 0d 0a 53 45 4c 45 43 54 20 41  el-867..SELECT A
27d40 4c 4c 20 4d 49 4e 20 28 20 41 4c 4c 20 2d 20 28  LL MIN ( ALL - (
27d50 20 2b 20 2b 20 39 33 20 29 20 29 2c 20 39 20 63   + + 93 ) ), 9 c
27d60 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
27d70 2d 2d 2d 0d 0a 2d 39 33 0d 0a 39 0d 0a 0d 0a 71  ---..-93..9....q
27d80 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
27d90 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
27da0 30 20 2a 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31  0 * col2 AS col1
27db0 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
27dc0 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ..0....query III
27dd0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
27de0 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32   ALL * FROM tab2
27df0 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 2b 20 63   WHERE NOT - + c
27e00 6f 6c 31 20 2b 20 63 6f 6c 30 20 3d 20 2b 20 34  ol1 + col0 = + 4
27e10 31 20 2a 20 63 6f 6c 32 20 2b 20 63 6f 6c 32 20  1 * col2 + col2 
27e20 2b 20 31 36 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  + 16..----..9 va
27e30 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
27e40 37 35 63 39 39 38 61 61 35 33 61 63 38 33 32 31  75c998aa53ac8321
27e50 38 63 62 66 32 66 65 62 39 36 32 64 30 61 34 39  8cbf2feb962d0a49
27e60 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
27e70 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63  sort..SELECT + c
27e80 6f 6c 31 2c 20 2d 20 34 38 20 46 52 4f 4d 20 74  ol1, - 48 FROM t
27e90 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 2d  ab2..----..51..-
27ea0 34 38 0d 0a 36 37 0d 0a 2d 34 38 0d 0a 37 37 0d  48..67..-48..77.
27eb0 0a 2d 34 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-48....onlyif m
27ec0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
27ed0 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72   syntax: DIV for
27ee0 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
27ef0 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
27f00 73 6f 72 74 20 6c 61 62 65 6c 2d 38 37 31 0d 0a  sort label-871..
27f10 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 39 39 20  SELECT ALL - 99 
27f20 44 49 56 20 2b 20 53 55 4d 28 20 41 4c 4c 20 2d  DIV + SUM( ALL -
27f30 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c   + col0 ) AS col
27f40 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
27f50 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..0....skipif m
27f60 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
27f70 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
27f80 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 37 31  owsort label-871
27f90 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 39  ..SELECT ALL - 9
27fa0 39 20 2f 20 2b 20 53 55 4d 20 28 20 41 4c 4c 20  9 / + SUM ( ALL 
27fb0 2d 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63 6f  - + col0 ) AS co
27fc0 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l1 FROM tab0..--
27fd0 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49  --..0....query I
27fe0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
27ff0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  CT * FROM tab2 W
28000 48 45 52 45 20 4e 4f 54 20 2d 20 28 20 36 33 20  HERE NOT - ( 63 
28010 29 20 2f 20 2b 20 37 33 20 49 53 20 4e 55 4c 4c  ) / + 73 IS NULL
28020 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
28030 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39   hashing to 75c9
28040 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62 66  98aa53ac83218cbf
28050 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a  2feb962d0a49....
28060 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
28070 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
28080 20 2b 20 38 37 20 41 53 20 63 6f 6c 31 20 46 52   + 87 AS col1 FR
28090 4f 4d 20 28 20 74 61 62 31 20 41 53 20 63 6f 72  OM ( tab1 AS cor
280a0 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62  0 CROSS JOIN tab
280b0 31 20 63 6f 72 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a  1 cor1 )..----..
280c0 38 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  87....onlyif mys
280d0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
280e0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
280f0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
28100 37 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  74..SELECT ALL -
28110 20 28 20 37 36 20 29 20 2a 20 2b 20 2b 20 43 4f   ( 76 ) * + + CO
28120 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
28130 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32 38 0d 0a  b2..----..-228..
28140 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
28150 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
28160 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
28170 20 6c 61 62 65 6c 2d 38 37 34 0d 0a 53 45 4c 45   label-874..SELE
28180 43 54 20 41 4c 4c 20 2d 20 28 20 37 36 20 29 20  CT ALL - ( 76 ) 
28190 2a 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  * + + COUNT ( * 
281a0 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  ) FROM tab2..---
281b0 2d 0d 0a 2d 32 32 38 0d 0a 0d 0a 6f 6e 6c 79 69  -..-228....onlyi
281c0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
281d0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
281e0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
281f0 62 65 6c 2d 38 37 35 0d 0a 53 45 4c 45 43 54 20  bel-875..SELECT 
28200 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 28 20 2b  DISTINCT + + ( +
28210 20 30 20 29 20 2b 20 43 4f 55 4e 54 28 20 2a 20   0 ) + COUNT( * 
28220 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  ) FROM tab0 AS c
28230 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a  or0..----..3....
28240 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
28250 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
28260 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
28270 61 62 65 6c 2d 38 37 35 0d 0a 53 45 4c 45 43 54  abel-875..SELECT
28280 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 28 20   DISTINCT + + ( 
28290 2b 20 30 20 29 20 2b 20 43 4f 55 4e 54 20 28 20  + 0 ) + COUNT ( 
282a0 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  * ) FROM tab0 AS
282b0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   cor0..----..3..
282c0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
282d0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
282e0 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  * FROM tab1 AS c
282f0 6f 72 30 20 57 48 45 52 45 20 32 34 20 49 4e 20  or0 WHERE 24 IN 
28300 28 20 63 6f 6c 30 20 2b 20 28 20 2b 20 2d 20 63  ( col0 + ( + - c
28310 6f 6c 30 20 29 20 2f 20 2d 20 2d 20 63 6f 6c 31  ol0 ) / - - col1
28320 20 2a 20 2d 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d   * - col0 )..---
28330 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
28340 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
28350 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
28360 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
28370 20 6c 61 62 65 6c 2d 38 37 37 0d 0a 53 45 4c 45   label-877..SELE
28380 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f  CT DISTINCT + co
28390 6c 32 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63  l2 + - col2 AS c
283a0 6f 6c 32 2c 20 63 6f 6c 30 20 44 49 56 20 2b 20  ol2, col0 DIV + 
283b0 34 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  42 AS col1 FROM 
283c0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
283d0 2d 2d 0d 0a 30 0d 0a 31 0d 0a 0d 0a 73 6b 69 70  --..0..1....skip
283e0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
283f0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
28400 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
28410 6c 2d 38 37 37 0d 0a 53 45 4c 45 43 54 20 44 49  l-877..SELECT DI
28420 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20 2b 20  STINCT + col2 + 
28430 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 2c 20  - col2 AS col2, 
28440 63 6f 6c 30 20 2f 20 2b 20 34 32 20 41 53 20 63  col0 / + 42 AS c
28450 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
28460 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   cor0..----..0..
28470 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  1....query I row
28480 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
28490 20 2d 20 2b 20 34 39 20 2b 20 2b 20 63 6f 6c 31   - + 49 + + col1
284a0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
284b0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 38 0d 0a 2d  r0..----..-28..-
284c0 34 38 0d 0a 33 32 0d 0a 0d 0a 71 75 65 72 79 20  48..32....query 
284d0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
284e0 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
284f0 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  ab1 WHERE NOT + 
28500 63 6f 6c 31 20 3c 3e 20 2d 20 63 6f 6c 32 0d 0a  col1 <> - col2..
28510 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
28520 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
28530 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
28540 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
28550 2d 38 38 30 0d 0a 53 45 4c 45 43 54 20 33 36 20  -880..SELECT 36 
28560 2a 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f  * COUNT( * ) FRO
28570 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30  M tab0..----..10
28580 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  8....skipif mysq
28590 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
285a0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
285b0 6f 72 74 20 6c 61 62 65 6c 2d 38 38 30 0d 0a 53  ort label-880..S
285c0 45 4c 45 43 54 20 33 36 20 2a 20 43 4f 55 4e 54  ELECT 36 * COUNT
285d0 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30   ( * ) FROM tab0
285e0 0d 0a 2d 2d 2d 2d 0d 0a 31 30 38 0d 0a 0d 0a 71  ..----..108....q
285f0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
28600 53 45 4c 45 43 54 20 63 6f 6c 32 20 2a 20 38 39  SELECT col2 * 89
28610 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
28620 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 30 34 37 0d 0a  b2..----..2047..
28630 33 35 36 30 0d 0a 35 31 36 32 0d 0a 0d 0a 6f 6e  3560..5162....on
28640 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
28650 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
28660 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
28670 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
28680 38 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  82..SELECT DISTI
28690 4e 43 54 20 37 37 20 44 49 56 20 32 32 20 2b 20  NCT 77 DIV 22 + 
286a0 2b 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  + - col2 FROM ta
286b0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 36 0d 0a 2d  b1..----..-56..-
286c0 36 35 0d 0a 2d 39 33 0d 0a 0d 0a 73 6b 69 70 69  65..-93....skipi
286d0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
286e0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
286f0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
28700 38 38 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  882..SELECT DIST
28710 49 4e 43 54 20 37 37 20 2f 20 32 32 20 2b 20 2b  INCT 77 / 22 + +
28720 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   - col2 FROM tab
28730 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 36 0d 0a 2d 36  1..----..-56..-6
28740 35 0d 0a 2d 39 33 0d 0a 0d 0a 71 75 65 72 79 20  5..-93....query 
28750 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
28760 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
28770 61 62 30 20 57 48 45 52 45 20 28 20 2b 20 63 6f  ab0 WHERE ( + co
28780 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 20 29  l1 IS NOT NULL )
28790 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
287a0 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34   hashing to c4b4
287b0 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30  2765dff94eaaa460
287c0 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a  40e537fb43b7....
287d0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
287e0 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2b 20 2d  .SELECT col1 + -
287f0 20 36 20 2b 20 2b 20 63 6f 6c 31 20 41 53 20 63   6 + + col1 AS c
28800 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
28810 2d 2d 2d 0d 0a 31 32 38 0d 0a 31 34 38 0d 0a 39  ---..128..148..9
28820 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  6....query III r
28830 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
28840 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  LL * FROM tab2 W
28850 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 31 20  HERE NOT - col1 
28860 3e 3d 20 63 6f 6c 31 20 2a 20 63 6f 6c 32 0d 0a  >= col1 * col2..
28870 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
28880 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38  ashing to 75c998
28890 61 61 35 33 61 63 38 33 32 31 38 63 62 66 32 66  aa53ac83218cbf2f
288a0 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 71 75  eb962d0a49....qu
288b0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
288c0 45 4c 45 43 54 20 63 6f 6c 30 20 46 52 4f 4d 20  ELECT col0 FROM 
288d0 74 61 62 30 20 57 48 45 52 45 20 2b 20 2b 20 28  tab0 WHERE + + (
288e0 20 2d 20 2d 20 63 6f 6c 32 20 29 20 49 53 20 4e   - - col2 ) IS N
288f0 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31  OT NULL..----..1
28900 35 0d 0a 38 37 0d 0a 39 37 0d 0a 0d 0a 71 75 65  5..87..97....que
28910 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
28920 4c 45 43 54 20 63 6f 6c 31 20 2b 20 2b 20 2b 20  LECT col1 + + + 
28930 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f  col0 AS col2 FRO
28940 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30  M tab0..----..10
28950 38 0d 0a 39 36 0d 0a 39 38 0d 0a 0d 0a 71 75 65  8..96..98....que
28960 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
28970 45 4c 45 43 54 20 36 33 2c 20 2d 20 63 6f 6c 31  ELECT 63, - col1
28980 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
28990 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36  b2 cor0..----..6
289a0 33 0d 0a 2d 35 31 0d 0a 36 33 0d 0a 2d 36 37 0d  3..-51..63..-67.
289b0 0a 36 33 0d 0a 2d 37 37 0d 0a 0d 0a 6f 6e 6c 79  .63..-77....only
289c0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
289d0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
289e0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
289f0 61 62 65 6c 2d 38 38 39 0d 0a 53 45 4c 45 43 54  abel-889..SELECT
28a00 20 43 4f 55 4e 54 28 20 35 30 20 29 20 41 53 20   COUNT( 50 ) AS 
28a10 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col2 FROM tab1..
28a20 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69  ----..3....skipi
28a30 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
28a40 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
28a50 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
28a60 38 38 39 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e  889..SELECT COUN
28a70 54 20 28 20 35 30 20 29 20 41 53 20 63 6f 6c 32  T ( 50 ) AS col2
28a80 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
28a90 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ..3....query I r
28aa0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
28ab0 20 63 6f 6c 30 20 2a 20 2b 20 2b 20 28 20 2d 20   col0 * + + ( - 
28ac0 34 36 20 29 20 2d 20 63 6f 6c 30 20 46 52 4f 4d  46 ) - col0 FROM
28ad0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31   tab2..----..-21
28ae0 36 32 0d 0a 2d 33 30 30 38 0d 0a 2d 33 35 32 35  62..-3008..-3525
28af0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
28b00 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
28b10 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
28b20 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 39 31  owsort label-891
28b30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d  ..SELECT ALL + M
28b40 41 58 28 20 34 35 20 29 20 2d 20 2b 20 43 4f 55  AX( 45 ) - + COU
28b50 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  NT( * ) FROM tab
28b60 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
28b70 0a 34 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .42....skipif my
28b80 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
28b90 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
28ba0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 39 31 0d  wsort label-891.
28bb0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d 41  .SELECT ALL + MA
28bc0 58 20 28 20 34 35 20 29 20 2d 20 2b 20 43 4f 55  X ( 45 ) - + COU
28bd0 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  NT ( * ) FROM ta
28be0 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
28bf0 0d 0a 34 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..42....query II
28c00 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
28c10 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
28c20 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
28c30 4e 4f 54 20 28 20 35 35 20 29 20 49 53 20 4e 55  NOT ( 55 ) IS NU
28c40 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  LL..----..9 valu
28c50 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36  es hashing to c6
28c60 63 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63  c0a4111b36d04dbc
28c70 38 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a  811a11e4d54cad..
28c80 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
28c90 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
28ca0 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
28cb0 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
28cc0 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
28cd0 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
28ce0 45 43 54 20 41 4c 4c 20 2d 20 2d 20 63 6f 6c 32  ECT ALL - - col2
28cf0 2c 20 35 30 20 63 6f 6c 32 20 46 52 4f 4d 20 74  , 50 col2 FROM t
28d00 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
28d10 2d 0d 0a 35 39 0d 0a 35 30 0d 0a 36 38 0d 0a 35  -..59..50..68..5
28d20 30 0d 0a 39 36 0d 0a 35 30 0d 0a 0d 0a 71 75 65  0..96..50....que
28d30 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
28d40 4c 45 43 54 20 37 38 20 2a 20 28 20 63 6f 6c 32  LECT 78 * ( col2
28d50 20 29 20 2a 20 2b 20 2b 20 63 6f 6c 32 20 2a 20   ) * + + col2 * 
28d60 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  - col1 FROM tab1
28d70 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
28d80 2d 31 30 30 36 33 38 37 32 0d 0a 2d 31 33 35 37  -10063872..-1357
28d90 35 39 30 0d 0a 2d 31 36 39 35 31 35 38 34 0d 0a  590..-16951584..
28da0 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
28db0 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
28dc0 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
28dd0 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
28de0 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
28df0 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
28e00 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 2a 20 2d  ECT ALL col0 * -
28e10 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 2c 20 31   col2 AS col0, 1
28e20 39 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  9 col1 FROM tab0
28e30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
28e40 2d 37 30 35 0d 0a 31 39 0d 0a 2d 38 37 30 0d 0a  -705..19..-870..
28e50 31 39 0d 0a 2d 39 36 30 33 0d 0a 31 39 0d 0a 0d  19..-9603..19...
28e60 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
28e70 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
28e80 63 6f 6c 30 20 41 53 20 63 6f 6c 31 2c 20 2b 20  col0 AS col1, + 
28e90 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 32 20 41 53  col0 * - col2 AS
28ea0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
28eb0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
28ec0 34 36 0d 0a 2d 31 30 35 38 0d 0a 2d 36 34 0d 0a  46..-1058..-64..
28ed0 2d 32 35 36 30 0d 0a 2d 37 35 0d 0a 2d 34 33 35  -2560..-75..-435
28ee0 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
28ef0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
28f00 54 49 4e 43 54 20 2b 20 35 32 20 2a 20 2d 20 2d  TINCT + 52 * - -
28f10 20 38 38 20 46 52 4f 4d 20 74 61 62 31 20 41 53   88 FROM tab1 AS
28f20 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20 63 6f   cor0 WHERE - co
28f30 6c 30 20 3d 20 2b 20 39 30 0d 0a 2d 2d 2d 2d 0d  l0 = + 90..----.
28f40 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
28f50 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
28f60 49 4e 43 54 20 28 20 2d 20 2d 20 63 6f 6c 30 20  INCT ( - - col0 
28f70 29 20 41 53 20 63 6f 6c 31 2c 20 2d 20 63 6f 6c  ) AS col1, - col
28f80 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
28f90 2d 0d 0a 31 35 0d 0a 2d 38 31 0d 0a 38 37 0d 0a  -..15..-81..87..
28fa0 2d 32 31 0d 0a 39 37 0d 0a 2d 31 0d 0a 0d 0a 71  -21..97..-1....q
28fb0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
28fc0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
28fd0 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  T * FROM tab2 WH
28fe0 45 52 45 20 2d 20 63 6f 6c 32 20 3c 3e 20 2b 20  ERE - col2 <> + 
28ff0 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  col1..----..9 va
29000 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
29010 37 35 63 39 39 38 61 61 35 33 61 63 38 33 32 31  75c998aa53ac8321
29020 38 63 62 66 32 66 65 62 39 36 32 64 30 61 34 39  8cbf2feb962d0a49
29030 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
29040 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
29050 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
29060 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
29070 6c 61 62 65 6c 2d 39 30 30 0d 0a 53 45 4c 45 43  label-900..SELEC
29080 54 20 63 6f 6c 31 20 44 49 56 20 2b 20 36 30 20  T col1 DIV + 60 
29090 41 53 20 63 6f 6c 30 2c 20 63 6f 6c 30 20 46 52  AS col0, col0 FR
290a0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30  OM tab1..----..0
290b0 0d 0a 35 31 0d 0a 30 0d 0a 38 35 0d 0a 30 0d 0a  ..51..0..85..0..
290c0 39 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  91....skipif mys
290d0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
290e0 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
290f0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 30 30 0d  wsort label-900.
29100 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2f 20 2b  .SELECT col1 / +
29110 20 36 30 20 41 53 20 63 6f 6c 30 2c 20 63 6f 6c   60 AS col0, col
29120 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  0 FROM tab1..---
29130 2d 0d 0a 30 0d 0a 35 31 0d 0a 30 0d 0a 38 35 0d  -..0..51..0..85.
29140 0a 30 0d 0a 39 31 0d 0a 0d 0a 71 75 65 72 79 20  .0..91....query 
29150 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
29160 54 20 2b 20 38 37 20 46 52 4f 4d 20 74 61 62 31  T + 87 FROM tab1
29170 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 36 36 20   WHERE NOT - 66 
29180 2a 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c  * + col2 + - col
29190 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  0 IS NOT NULL..-
291a0 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  ---....query II 
291b0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
291c0 2d 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 2d 20 36  - - col1 * + - 6
291d0 36 2c 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c  6, + col1 AS col
291e0 32 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  2 FROM tab0 cor0
291f0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 38 36 0d 0a 32  ..----..-1386..2
29200 31 0d 0a 2d 35 33 34 36 0d 0a 38 31 0d 0a 2d 36  1..-5346..81..-6
29210 36 0d 0a 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  6..1....onlyif m
29220 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
29230 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
29240 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
29250 6f 72 74 20 6c 61 62 65 6c 2d 39 30 33 0d 0a 53  ort label-903..S
29260 45 4c 45 43 54 20 2d 20 28 20 2b 20 63 6f 6c 32  ELECT - ( + col2
29270 20 29 20 44 49 56 20 2d 20 2d 20 32 30 20 63 6f   ) DIV - - 20 co
29280 6c 30 2c 20 63 6f 6c 30 20 2a 20 2b 20 33 36 20  l0, col0 * + 36 
29290 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
292a0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 35 34 30  0..----..-2..540
292b0 0d 0a 2d 34 0d 0a 33 34 39 32 0d 0a 30 0d 0a 33  ..-4..3492..0..3
292c0 31 33 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  132....skipif my
292d0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
292e0 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
292f0 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
29300 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
29310 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
29320 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
29330 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
29340 6c 61 62 65 6c 2d 39 30 33 0d 0a 53 45 4c 45 43  label-903..SELEC
29350 54 20 2d 20 28 20 2b 20 63 6f 6c 32 20 29 20 2f  T - ( + col2 ) /
29360 20 2d 20 2d 20 32 30 20 63 6f 6c 30 2c 20 63 6f   - - 20 col0, co
29370 6c 30 20 2a 20 2b 20 33 36 20 41 53 20 63 6f 6c  l0 * + 36 AS col
29380 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
29390 2d 0d 0a 2d 32 0d 0a 35 34 30 0d 0a 2d 34 0d 0a  -..-2..540..-4..
293a0 33 34 39 32 0d 0a 30 0d 0a 33 31 33 32 0d 0a 0d  3492..0..3132...
293b0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
293c0 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
293d0 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
293e0 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
293f0 65 6c 2d 39 30 34 0d 0a 53 45 4c 45 43 54 20 44  el-904..SELECT D
29400 49 53 54 49 4e 43 54 20 63 6f 6c 30 2c 20 2b 20  ISTINCT col0, + 
29410 63 6f 6c 30 20 44 49 56 20 63 6f 6c 30 20 2a 20  col0 DIV col0 * 
29420 2d 20 36 39 20 2a 20 2b 20 34 35 20 2a 20 2b 20  - 69 * + 45 * + 
29430 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
29440 2d 2d 2d 2d 0d 0a 31 35 0d 0a 2d 31 34 35 39 33  ----..15..-14593
29450 35 0d 0a 38 37 0d 0a 2d 33 31 30 35 30 0d 0a 39  5..87..-31050..9
29460 37 0d 0a 2d 33 30 37 33 39 35 0d 0a 0d 0a 73 6b  7..-307395....sk
29470 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
29480 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
29490 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
294a0 62 65 6c 2d 39 30 34 0d 0a 53 45 4c 45 43 54 20  bel-904..SELECT 
294b0 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 2c 20 2b  DISTINCT col0, +
294c0 20 63 6f 6c 30 20 2f 20 63 6f 6c 30 20 2a 20 2d   col0 / col0 * -
294d0 20 36 39 20 2a 20 2b 20 34 35 20 2a 20 2b 20 63   69 * + 45 * + c
294e0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
294f0 2d 2d 2d 0d 0a 31 35 0d 0a 2d 31 34 35 39 33 35  ---..15..-145935
29500 0d 0a 38 37 0d 0a 2d 33 31 30 35 30 0d 0a 39 37  ..87..-31050..97
29510 0d 0a 2d 33 30 37 33 39 35 0d 0a 0d 0a 71 75 65  ..-307395....que
29520 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
29530 45 4c 45 43 54 20 35 37 20 2b 20 2d 20 63 6f 6c  ELECT 57 + - col
29540 30 20 2d 20 2b 20 36 20 41 53 20 63 6f 6c 30 2c  0 - + 6 AS col0,
29550 20 32 32 20 2a 20 2b 20 63 6f 6c 32 20 46 52 4f   22 * + col2 FRO
29560 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
29570 2d 2d 2d 2d 0d 0a 2d 33 36 0d 0a 32 32 30 0d 0a  ----..-36..220..
29580 2d 34 36 0d 0a 32 31 37 38 0d 0a 33 36 0d 0a 31  -46..2178..36..1
29590 30 33 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  034....onlyif my
295a0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
295b0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
295c0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
295d0 39 30 36 0d 0a 53 45 4c 45 43 54 20 2d 20 38 20  906..SELECT - 8 
295e0 2b 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  + + + COUNT( * )
295f0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
29600 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 0d 0a 0d 0a  r0..----..-5....
29610 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
29620 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
29630 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
29640 61 62 65 6c 2d 39 30 36 0d 0a 53 45 4c 45 43 54  abel-906..SELECT
29650 20 2d 20 38 20 2b 20 2b 20 2b 20 43 4f 55 4e 54   - 8 + + + COUNT
29660 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31   ( * ) FROM tab1
29670 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
29680 2d 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  -5....query I ro
29690 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
296a0 53 54 49 4e 43 54 20 2d 20 28 20 2d 20 2b 20 34  STINCT - ( - + 4
296b0 32 20 29 20 2a 20 63 6f 6c 31 20 41 53 20 63 6f  2 ) * col1 AS co
296c0 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72  l0 FROM tab2 cor
296d0 30 20 57 48 45 52 45 20 63 6f 6c 32 20 49 53 20  0 WHERE col2 IS 
296e0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
296f0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
29700 45 4c 45 43 54 20 33 38 20 2b 20 2d 20 63 6f 6c  ELECT 38 + - col
29710 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  0 AS col0 FROM t
29720 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
29730 2d 0d 0a 2d 34 39 0d 0a 2d 35 39 0d 0a 32 33 0d  -..-49..-59..23.
29740 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
29750 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44  # CAST syntax: D
29760 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71  ECIMAL type: ..q
29770 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
29780 61 62 65 6c 2d 39 30 39 0d 0a 53 45 4c 45 43 54  abel-909..SELECT
29790 20 44 49 53 54 49 4e 43 54 20 39 32 20 2b 20 43   DISTINCT 92 + C
297a0 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43  AST( NULL AS DEC
297b0 49 4d 41 4c 20 29 20 41 53 20 63 6f 6c 32 20 46  IMAL ) AS col2 F
297c0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
297d0 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
297e0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
297f0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
29800 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
29810 61 62 65 6c 2d 39 30 39 0d 0a 53 45 4c 45 43 54  abel-909..SELECT
29820 20 44 49 53 54 49 4e 43 54 20 39 32 20 2b 20 43   DISTINCT 92 + C
29830 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45  AST ( NULL AS RE
29840 41 4c 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  AL ) AS col2 FRO
29850 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
29860 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  ----..NULL....qu
29870 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
29880 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
29890 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 2b 20  OM tab2 WHERE + 
298a0 63 6f 6c 30 20 2d 20 2b 20 63 6f 6c 32 20 2b 20  col0 - + col2 + 
298b0 2b 20 2b 20 28 20 2d 20 63 6f 6c 31 20 29 20 49  + + ( - col1 ) I
298c0 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  S NULL..----....
298d0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
298e0 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
298f0 20 74 61 62 31 20 57 48 45 52 45 20 2b 20 36 20   tab1 WHERE + 6 
29900 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
29910 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
29920 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31  ing to c6c0a4111
29930 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65  b36d04dbc811a11e
29940 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79  4d54cad....query
29950 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
29960 45 43 54 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 63  ECT + col2 * + c
29970 6f 6c 32 2c 20 2b 20 63 6f 6c 32 20 41 53 20 63  ol2, + col2 AS c
29980 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
29990 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 30   cor0..----..160
299a0 30 0d 0a 34 30 0d 0a 33 33 36 34 0d 0a 35 38 0d  0..40..3364..58.
299b0 0a 35 32 39 0d 0a 32 33 0d 0a 0d 0a 71 75 65 72  .529..23....quer
299c0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
299d0 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
299e0 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
299f0 45 52 45 20 2b 20 28 20 2b 20 2b 20 28 20 36 30  ERE + ( + + ( 60
29a00 20 29 20 29 20 2b 20 2d 20 63 6f 6c 30 20 3e 20   ) ) + - col0 > 
29a10 2d 20 2b 20 36 37 0d 0a 2d 2d 2d 2d 0d 0a 39 20  - + 67..----..9 
29a20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
29a30 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38 33  o 75c998aa53ac83
29a40 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30 61  218cbf2feb962d0a
29a50 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  49....query I ro
29a60 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
29a70 53 54 49 4e 43 54 20 2d 20 35 34 20 2a 20 31 35  STINCT - 54 * 15
29a80 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
29a90 0d 0a 2d 38 31 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..-810....onlyif
29aa0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
29ab0 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
29ac0 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72  e: ..query III r
29ad0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 31 35  owsort label-915
29ae0 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
29af0 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
29b00 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 32 20 2b 20  RE NOT - col2 + 
29b10 43 41 53 54 28 20 2b 20 2b 20 63 6f 6c 31 20 41  CAST( + + col1 A
29b20 53 20 53 49 47 4e 45 44 20 29 20 3c 20 4e 55 4c  S SIGNED ) < NUL
29b30 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  L..----....skipi
29b40 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
29b50 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
29b60 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
29b70 6c 2d 39 31 35 0d 0a 53 45 4c 45 43 54 20 2a 20  l-915..SELECT * 
29b80 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
29b90 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f  0 WHERE NOT - co
29ba0 6c 32 20 2b 20 43 41 53 54 20 28 20 2b 20 2b 20  l2 + CAST ( + + 
29bb0 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45 52 20  col1 AS INTEGER 
29bc0 29 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  ) < NULL..----..
29bd0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
29be0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
29bf0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
29c00 73 6f 72 74 20 6c 61 62 65 6c 2d 39 31 36 0d 0a  sort label-916..
29c10 53 45 4c 45 43 54 20 38 33 20 2a 20 2d 20 43 4f  SELECT 83 * - CO
29c20 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
29c30 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
29c40 0d 0a 2d 32 34 39 0d 0a 0d 0a 73 6b 69 70 69 66  ..-249....skipif
29c50 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
29c60 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
29c70 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
29c80 31 36 0d 0a 53 45 4c 45 43 54 20 38 33 20 2a 20  16..SELECT 83 * 
29c90 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52  - COUNT ( * ) FR
29ca0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
29cb0 0a 2d 2d 2d 2d 0d 0a 2d 32 34 39 0d 0a 0d 0a 71  .----..-249....q
29cc0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
29cd0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
29ce0 2b 20 2b 20 31 36 20 2a 20 63 6f 6c 30 20 46 52  + + 16 * col0 FR
29cf0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
29d00 0a 2d 2d 2d 2d 0d 0a 31 33 39 32 0d 0a 31 35 35  .----..1392..155
29d10 32 0d 0a 32 34 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  2..240....onlyif
29d20 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
29d30 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66  te syntax: DIV f
29d40 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
29d50 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
29d60 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 31 38  owsort label-918
29d70 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
29d80 54 20 30 20 44 49 56 20 2d 20 43 4f 55 4e 54 28  T 0 DIV - COUNT(
29d90 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41   * ) FROM tab2 A
29da0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  S cor0..----..0.
29db0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
29dc0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
29dd0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
29de0 74 20 6c 61 62 65 6c 2d 39 31 38 0d 0a 53 45 4c  t label-918..SEL
29df0 45 43 54 20 44 49 53 54 49 4e 43 54 20 30 20 2f  ECT DISTINCT 0 /
29e00 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46   - COUNT ( * ) F
29e10 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
29e20 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65  ..----..0....que
29e30 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
29e40 4c 45 43 54 20 63 6f 6c 30 20 2a 20 2d 20 2b 20  LECT col0 * - + 
29e50 37 37 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  77 AS col2 FROM 
29e60 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
29e70 2d 2d 0d 0a 2d 33 35 34 32 0d 0a 2d 34 39 32 38  --..-3542..-4928
29e80 0d 0a 2d 35 37 37 35 0d 0a 0d 0a 71 75 65 72 79  ..-5775....query
29e90 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
29ea0 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 2a 20  CT ALL - col1 * 
29eb0 28 20 34 38 20 29 20 46 52 4f 4d 20 74 61 62 32  ( 48 ) FROM tab2
29ec0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
29ed0 2d 32 34 34 38 0d 0a 2d 33 32 31 36 0d 0a 2d 33  -2448..-3216..-3
29ee0 36 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  696....onlyif my
29ef0 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
29f00 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
29f10 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
29f20 74 20 6c 61 62 65 6c 2d 39 32 31 0d 0a 53 45 4c  t label-921..SEL
29f30 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  ECT DISTINCT col
29f40 31 20 44 49 56 20 63 6f 6c 32 20 44 49 56 20 63  1 DIV col2 DIV c
29f50 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol0 AS col1 FROM
29f60 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
29f70 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
29f80 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
29f90 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
29fa0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 32 31 0d  wsort label-921.
29fb0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
29fc0 20 63 6f 6c 31 20 2f 20 63 6f 6c 32 20 2f 20 63   col1 / col2 / c
29fd0 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol0 AS col1 FROM
29fe0 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
29ff0 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..0....onlyif my
2a000 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
2a010 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e  x: aggregate syn
2a020 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
2a030 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20  : DECIMAL type: 
2a040 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2a050 74 20 6c 61 62 65 6c 2d 39 32 32 0d 0a 53 45 4c  t label-922..SEL
2a060 45 43 54 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c  ECT - CAST( NULL
2a070 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2b   AS SIGNED ) * +
2a080 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
2a090 49 47 4e 45 44 20 29 20 2a 20 2d 20 43 4f 55 4e  IGNED ) * - COUN
2a0a0 54 28 20 2a 20 29 20 2b 20 2b 20 4d 41 58 28 20  T( * ) + + MAX( 
2a0b0 2b 20 28 20 28 20 43 41 53 54 28 20 2b 20 63 6f  + ( ( CAST( + co
2a0c0 6c 32 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20  l2 AS DECIMAL ) 
2a0d0 29 20 29 20 29 20 2a 20 2d 20 43 4f 55 4e 54 28  ) ) ) * - COUNT(
2a0e0 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f   * ) AS col2 FRO
2a0f0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
2a100 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  ----..NULL....sk
2a110 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2a120 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2a130 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2a140 65 6c 2d 39 32 32 0d 0a 53 45 4c 45 43 54 20 2d  el-922..SELECT -
2a150 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
2a160 49 4e 54 45 47 45 52 20 29 20 2a 20 2b 20 43 41  INTEGER ) * + CA
2a170 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
2a180 45 47 45 52 20 29 20 2a 20 2d 20 43 4f 55 4e 54  EGER ) * - COUNT
2a190 20 28 20 2a 20 29 20 2b 20 2b 20 4d 41 58 20 28   ( * ) + + MAX (
2a1a0 20 2b 20 28 20 28 20 43 41 53 54 20 28 20 2b 20   + ( ( CAST ( + 
2a1b0 63 6f 6c 32 20 41 53 20 52 45 41 4c 20 29 20 29  col2 AS REAL ) )
2a1c0 20 29 20 29 20 2a 20 2d 20 43 4f 55 4e 54 20 28   ) ) * - COUNT (
2a1d0 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f   * ) AS col2 FRO
2a1e0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
2a1f0 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e  ----..NULL....on
2a200 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
2a210 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
2a220 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
2a230 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
2a240 2d 39 32 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -923..SELECT ALL
2a250 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   * FROM tab1 AS 
2a260 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 38  cor0 WHERE NOT 8
2a270 35 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 2d  5 + + col1 * + -
2a280 20 28 20 2b 20 63 6f 6c 30 20 29 20 2a 20 43 41   ( + col0 ) * CA
2a290 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
2a2a0 45 44 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  ED ) IS NULL..--
2a2b0 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
2a2c0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2a2d0 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72  ble..query III r
2a2e0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 32 33  owsort label-923
2a2f0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
2a300 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
2a310 20 57 48 45 52 45 20 4e 4f 54 20 38 35 20 2b 20   WHERE NOT 85 + 
2a320 2b 20 63 6f 6c 31 20 2a 20 2b 20 2d 20 28 20 2b  + col1 * + - ( +
2a330 20 63 6f 6c 30 20 29 20 2a 20 43 41 53 54 20 28   col0 ) * CAST (
2a340 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
2a350 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d   ) IS NULL..----
2a360 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2a370 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  ort..SELECT - co
2a380 6c 32 20 2a 20 2b 20 2d 20 63 6f 6c 30 20 2b 20  l2 * + - col0 + 
2a390 39 36 20 2a 20 2b 20 63 6f 6c 32 20 46 52 4f 4d  96 * + col2 FROM
2a3a0 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
2a3b0 2d 2d 2d 0d 0a 31 38 33 30 0d 0a 31 39 31 30 37  ---..1830..19107
2a3c0 0d 0a 35 32 31 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..5217....onlyif
2a3d0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
2a3e0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
2a3f0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2a400 65 6c 2d 39 32 35 0d 0a 53 45 4c 45 43 54 20 2b  el-925..SELECT +
2a410 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
2a420 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 57 48  ol1 FROM tab0 WH
2a430 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3e 20 4e  ERE NOT NULL > N
2a440 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  ULL..----..0....
2a450 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2a460 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2a470 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2a480 61 62 65 6c 2d 39 32 35 0d 0a 53 45 4c 45 43 54  abel-925..SELECT
2a490 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41   + COUNT ( * ) A
2a4a0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
2a4b0 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
2a4c0 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  > NULL..----..0.
2a4d0 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
2a4e0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
2a4f0 49 4e 43 54 20 2b 20 28 20 2d 20 2b 20 39 35 20  INCT + ( - + 95 
2a500 29 20 41 53 20 63 6f 6c 32 2c 20 2d 20 63 6f 6c  ) AS col2, - col
2a510 30 20 2a 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20  0 * + + col0 AS 
2a520 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col1 FROM tab1..
2a530 2d 2d 2d 2d 0d 0a 2d 39 35 0d 0a 2d 32 36 30 31  ----..-95..-2601
2a540 0d 0a 2d 39 35 0d 0a 2d 37 32 32 35 0d 0a 2d 39  ..-95..-7225..-9
2a550 35 0d 0a 2d 38 32 38 31 0d 0a 0d 0a 6f 6e 6c 79  5..-8281....only
2a560 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
2a570 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
2a580 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
2a590 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 32 37  owsort label-927
2a5a0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63  ..SELECT ALL + c
2a5b0 6f 6c 30 20 2a 20 43 41 53 54 28 20 2d 20 33 37  ol0 * CAST( - 37
2a5c0 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20   AS SIGNED ) AS 
2a5d0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
2a5e0 2d 2d 2d 2d 0d 0a 2d 31 37 30 32 0d 0a 2d 32 33  ----..-1702..-23
2a5f0 36 38 0d 0a 2d 32 37 37 35 0d 0a 0d 0a 73 6b 69  68..-2775....ski
2a600 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2a610 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2a620 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2a630 6c 2d 39 32 37 0d 0a 53 45 4c 45 43 54 20 41 4c  l-927..SELECT AL
2a640 4c 20 2b 20 63 6f 6c 30 20 2a 20 43 41 53 54 20  L + col0 * CAST 
2a650 28 20 2d 20 33 37 20 41 53 20 49 4e 54 45 47 45  ( - 37 AS INTEGE
2a660 52 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  R ) AS col0 FROM
2a670 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37   tab2..----..-17
2a680 30 32 0d 0a 2d 32 33 36 38 0d 0a 2d 32 37 37 35  02..-2368..-2775
2a690 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
2a6a0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
2a6b0 31 20 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 32 20  1 AS col2, col2 
2a6c0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
2a6d0 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 39 36 0d  1..----..14..96.
2a6e0 0a 34 37 0d 0a 36 38 0d 0a 35 0d 0a 35 39 0d 0a  .47..68..5..59..
2a6f0 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
2a700 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
2a710 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
2a720 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
2a730 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
2a740 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
2a750 45 43 54 20 63 6f 6c 31 2c 20 2d 20 63 6f 6c 32  ECT col1, - col2
2a760 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
2a770 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 2d 39 39 0d 0a 32  .----..1..-99..2
2a780 31 0d 0a 2d 31 30 0d 0a 38 31 0d 0a 2d 34 37 0d  1..-10..81..-47.
2a790 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2a7a0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
2a7b0 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
2a7c0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
2a7d0 61 62 65 6c 2d 39 33 30 0d 0a 53 45 4c 45 43 54  abel-930..SELECT
2a7e0 20 63 6f 6c 31 2c 20 2d 20 43 41 53 54 28 20 4e   col1, - CAST( N
2a7f0 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
2a800 2b 20 2b 20 2d 20 63 6f 6c 32 20 2b 20 35 32 20  + + - col2 + 52 
2a810 2a 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  * + col0 FROM ta
2a820 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 4e 55 4c  b0..----..1..NUL
2a830 4c 0d 0a 32 31 0d 0a 4e 55 4c 4c 0d 0a 38 31 0d  L..21..NULL..81.
2a840 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
2a850 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2a860 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
2a870 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2a880 33 30 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 2c  30..SELECT col1,
2a890 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   - CAST ( NULL A
2a8a0 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20 2b 20  S INTEGER ) + + 
2a8b0 2d 20 63 6f 6c 32 20 2b 20 35 32 20 2a 20 2b 20  - col2 + 52 * + 
2a8c0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
2a8d0 2d 2d 2d 2d 0d 0a 31 0d 0a 4e 55 4c 4c 0d 0a 32  ----..1..NULL..2
2a8e0 31 0d 0a 4e 55 4c 4c 0d 0a 38 31 0d 0a 4e 55 4c  1..NULL..81..NUL
2a8f0 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  L....query III r
2a900 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
2a910 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
2a920 20 4e 4f 54 20 2d 20 63 6f 6c 31 20 2d 20 2b 20   NOT - col1 - + 
2a930 63 6f 6c 30 20 42 45 54 57 45 45 4e 20 4e 55 4c  col0 BETWEEN NUL
2a940 4c 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  L AND NULL..----
2a950 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
2a960 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 37  sort..SELECT - 7
2a970 38 20 41 53 20 63 6f 6c 31 2c 20 28 20 2d 20 36  8 AS col1, ( - 6
2a980 34 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  4 ) FROM tab1..-
2a990 2d 2d 2d 0d 0a 2d 37 38 0d 0a 2d 36 34 0d 0a 2d  ---..-78..-64..-
2a9a0 37 38 0d 0a 2d 36 34 0d 0a 2d 37 38 0d 0a 2d 36  78..-64..-78..-6
2a9b0 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  4....onlyif mysq
2a9c0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
2a9d0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
2a9e0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33  rowsort label-93
2a9f0 33 0d 0a 53 45 4c 45 43 54 20 4d 49 4e 28 20 2b  3..SELECT MIN( +
2aa00 20 2b 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c   + col1 ) AS col
2aa10 31 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  1 FROM tab1 cor0
2aa20 0d 0a 2d 2d 2d 2d 0d 0a 35 0d 0a 0d 0a 73 6b 69  ..----..5....ski
2aa30 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2aa40 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2aa50 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2aa60 6c 2d 39 33 33 0d 0a 53 45 4c 45 43 54 20 4d 49  l-933..SELECT MI
2aa70 4e 20 28 20 2b 20 2b 20 63 6f 6c 31 20 29 20 41  N ( + + col1 ) A
2aa80 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
2aa90 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 0d 0a   cor0..----..5..
2aaa0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2aab0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
2aac0 35 30 20 2a 20 2b 20 63 6f 6c 30 20 2b 20 2d 20  50 * + col0 + - 
2aad0 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f  col2 AS col2 FRO
2aae0 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab2 cor0..---
2aaf0 2d 0d 0a 32 32 37 37 0d 0a 33 31 36 30 0d 0a 33  -..2277..3160..3
2ab00 36 39 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  692....query III
2ab10 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2ab20 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
2ab30 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20   tab2 WHERE NOT 
2ab40 2b 20 2b 20 28 20 37 31 20 29 20 2a 20 2b 20 2b  + + ( 71 ) * + +
2ab50 20 37 36 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 2b   76 + col1 + + +
2ab60 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c   col2 IS NOT NUL
2ab70 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  L..----....onlyi
2ab80 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
2ab90 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
2aba0 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
2abb0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33 36 0d  wsort label-936.
2abc0 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 44  .SELECT - col1 D
2abd0 49 56 20 2d 20 2b 20 63 6f 6c 30 20 41 53 20 63  IV - + col0 AS c
2abe0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
2abf0 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 35 0d 0a 0d 0a  ---..0..0..5....
2ac00 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2ac10 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2ac20 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2ac30 61 62 65 6c 2d 39 33 36 0d 0a 53 45 4c 45 43 54  abel-936..SELECT
2ac40 20 2d 20 63 6f 6c 31 20 2f 20 2d 20 2b 20 63 6f   - col1 / - + co
2ac50 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l0 AS col2 FROM 
2ac60 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30  tab0..----..0..0
2ac70 0d 0a 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ..5....query I r
2ac80 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
2ac90 4c 4c 20 2b 20 32 39 20 41 53 20 63 6f 6c 30 20  LL + 29 AS col0 
2aca0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
2acb0 30 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29  0 WHERE ( NULL )
2acc0 20 3e 3d 20 2d 20 28 20 63 6f 6c 31 20 29 0d 0a   >= - ( col1 )..
2acd0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
2ace0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2acf0 41 4c 4c 20 2d 20 63 6f 6c 30 20 2d 20 63 6f 6c  ALL - col0 - col
2ad00 31 20 2a 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f  1 * + col0 AS co
2ad10 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
2ad20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 33 36  cor0..----..-436
2ad30 38 0d 0a 2d 35 31 30 0d 0a 2d 37 36 35 0d 0a 0d  8..-510..-765...
2ad40 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2ad50 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2ad60 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2ad70 6f 72 74 20 6c 61 62 65 6c 2d 39 33 39 0d 0a 53  ort label-939..S
2ad80 45 4c 45 43 54 20 32 39 20 2d 20 2d 20 2b 20 53  ELECT 29 - - + S
2ad90 55 4d 28 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 29  UM( ALL + col0 )
2ada0 20 2a 20 4d 49 4e 28 20 41 4c 4c 20 63 6f 6c 32   * MIN( ALL col2
2adb0 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
2adc0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 30 31 39  tab0..----..2019
2add0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2ade0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2adf0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
2ae00 72 74 20 6c 61 62 65 6c 2d 39 33 39 0d 0a 53 45  rt label-939..SE
2ae10 4c 45 43 54 20 32 39 20 2d 20 2d 20 2b 20 53 55  LECT 29 - - + SU
2ae20 4d 20 28 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 29  M ( ALL + col0 )
2ae30 20 2a 20 4d 49 4e 20 28 20 41 4c 4c 20 63 6f 6c   * MIN ( ALL col
2ae40 32 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  2 ) AS col2 FROM
2ae50 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 30 31   tab0..----..201
2ae60 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  9....query I row
2ae70 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
2ae80 20 63 6f 6c 31 20 2b 20 37 20 46 52 4f 4d 20 74   col1 + 7 FROM t
2ae90 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 38 0d 0a 37  ab2..----..58..7
2aea0 34 0d 0a 38 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  4..84....onlyif 
2aeb0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
2aec0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
2aed0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2aee0 6c 2d 39 34 31 0d 0a 53 45 4c 45 43 54 20 44 49  l-941..SELECT DI
2aef0 53 54 49 4e 43 54 20 28 20 2b 20 31 34 20 29 20  STINCT ( + 14 ) 
2af00 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b  + - COUNT( * ) +
2af10 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2d 20   COUNT( * ) + - 
2af20 35 38 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  58 col2 FROM tab
2af30 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 34 0d 0a 0d 0a  1..----..-44....
2af40 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2af50 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73  ot compatible..s
2af60 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
2af70 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
2af80 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
2af90 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
2afa0 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
2afb0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 34  rowsort label-94
2afc0 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  1..SELECT DISTIN
2afd0 43 54 20 28 20 2b 20 31 34 20 29 20 2b 20 2d 20  CT ( + 14 ) + - 
2afe0 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 43 4f  COUNT ( * ) + CO
2aff0 55 4e 54 20 28 20 2a 20 29 20 2b 20 2d 20 35 38  UNT ( * ) + - 58
2b000 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
2b010 0a 2d 2d 2d 2d 0d 0a 2d 34 34 0d 0a 0d 0a 71 75  .----..-44....qu
2b020 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2b030 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
2b040 20 63 6f 6c 30 20 2b 20 2d 20 2d 20 34 35 20 2b   col0 + - - 45 +
2b050 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52   col0 AS col2 FR
2b060 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 34  OM tab0..----..4
2b070 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  5....onlyif mysq
2b080 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
2b090 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2b0a0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
2b0b0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
2b0c0 72 74 20 6c 61 62 65 6c 2d 39 34 33 0d 0a 53 45  rt label-943..SE
2b0d0 4c 45 43 54 20 41 4c 4c 20 43 41 53 54 28 20 4e  LECT ALL CAST( N
2b0e0 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 2c  ULL AS SIGNED ),
2b0f0 20 2b 20 28 20 2b 20 43 4f 55 4e 54 28 20 2a 20   + ( + COUNT( * 
2b100 29 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  ) ) col1 FROM ta
2b110 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b2..----..NULL..
2b120 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
2b130 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2b140 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
2b150 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
2b160 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
2b170 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
2b180 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
2b190 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
2b1a0 62 65 6c 2d 39 34 33 0d 0a 53 45 4c 45 43 54 20  bel-943..SELECT 
2b1b0 41 4c 4c 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  ALL CAST ( NULL 
2b1c0 41 53 20 49 4e 54 45 47 45 52 20 29 2c 20 2b 20  AS INTEGER ), + 
2b1d0 28 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ( + COUNT ( * ) 
2b1e0 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  ) col1 FROM tab2
2b1f0 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 33 0d  ..----..NULL..3.
2b200 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
2b210 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
2b220 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 63  ROM tab2 WHERE c
2b230 6f 6c 32 20 2a 20 63 6f 6c 30 20 3d 20 28 20 34  ol2 * col0 = ( 4
2b240 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  2 )..----....onl
2b250 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
2b260 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49  egate syntax: DI
2b270 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
2b280 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
2b290 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2b2a0 39 34 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  945..SELECT ALL 
2b2b0 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 44 49 56  + COUNT( * ) DIV
2b2c0 20 35 20 2d 20 34 30 20 2a 20 31 30 20 2b 20 2d   5 - 40 * 10 + -
2b2d0 20 34 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   42 AS col0 FROM
2b2e0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 34   tab0..----..-44
2b2f0 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  2....skipif mysq
2b300 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2b310 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2b320 6f 72 74 20 6c 61 62 65 6c 2d 39 34 35 0d 0a 53  ort label-945..S
2b330 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e  ELECT ALL + COUN
2b340 54 20 28 20 2a 20 29 20 2f 20 35 20 2d 20 34 30  T ( * ) / 5 - 40
2b350 20 2a 20 31 30 20 2b 20 2d 20 34 32 20 41 53 20   * 10 + - 42 AS 
2b360 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
2b370 2d 2d 2d 2d 0d 0a 2d 34 34 32 0d 0a 0d 0a 6f 6e  ----..-442....on
2b380 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
2b390 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
2b3a0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2b3b0 20 6c 61 62 65 6c 2d 39 34 36 0d 0a 53 45 4c 45   label-946..SELE
2b3c0 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20  CT - COUNT( * ) 
2b3d0 2a 20 2d 20 2b 20 39 31 20 2a 20 2b 20 43 4f 55  * - + 91 * + COU
2b3e0 4e 54 28 20 2a 20 29 20 2b 20 2d 20 2b 20 43 4f  NT( * ) + - + CO
2b3f0 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
2b400 62 32 0d 0a 2d 2d 2d 2d 0d 0a 38 31 36 0d 0a 0d  b2..----..816...
2b410 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2b420 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2b430 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2b440 6c 61 62 65 6c 2d 39 34 36 0d 0a 53 45 4c 45 43  label-946..SELEC
2b450 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  T - COUNT ( * ) 
2b460 2a 20 2d 20 2b 20 39 31 20 2a 20 2b 20 43 4f 55  * - + 91 * + COU
2b470 4e 54 20 28 20 2a 20 29 20 2b 20 2d 20 2b 20 43  NT ( * ) + - + C
2b480 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20  OUNT ( * ) FROM 
2b490 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 38 31 36 0d  tab2..----..816.
2b4a0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2b4b0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
2b4c0 20 36 33 20 46 52 4f 4d 20 74 61 62 32 20 57 48   63 FROM tab2 WH
2b4d0 45 52 45 20 37 34 20 49 53 20 4e 4f 54 20 4e 55  ERE 74 IS NOT NU
2b4e0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 33 0d 0a 2d  LL..----..-63..-
2b4f0 36 33 0d 0a 2d 36 33 0d 0a 0d 0a 6f 6e 6c 79 69  63..-63....onlyi
2b500 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
2b510 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
2b520 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72  pe: ..query II r
2b530 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 34 38  owsort label-948
2b540 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20  ..SELECT + col1 
2b550 2b 20 2d 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c  + - + CAST( NULL
2b560 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 37   AS SIGNED ) + 7
2b570 32 20 41 53 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c  2 AS col2, + col
2b580 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
2b590 2d 0d 0a 4e 55 4c 4c 0d 0a 34 36 0d 0a 4e 55 4c  -..NULL..46..NUL
2b5a0 4c 0d 0a 36 34 0d 0a 4e 55 4c 4c 0d 0a 37 35 0d  L..64..NULL..75.
2b5b0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2b5c0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2b5d0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
2b5e0 72 74 20 6c 61 62 65 6c 2d 39 34 38 0d 0a 53 45  rt label-948..SE
2b5f0 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2b 20 2d 20  LECT + col1 + - 
2b600 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
2b610 20 49 4e 54 45 47 45 52 20 29 20 2b 20 37 32 20   INTEGER ) + 72 
2b620 41 53 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c 30 20  AS col2, + col0 
2b630 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
2b640 0a 4e 55 4c 4c 0d 0a 34 36 0d 0a 4e 55 4c 4c 0d  .NULL..46..NULL.
2b650 0a 36 34 0d 0a 4e 55 4c 4c 0d 0a 37 35 0d 0a 0d  .64..NULL..75...
2b660 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2b670 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2b680 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2b690 6f 72 74 20 6c 61 62 65 6c 2d 39 34 39 0d 0a 53  ort label-949..S
2b6a0 45 4c 45 43 54 20 2b 20 4d 41 58 28 20 44 49 53  ELECT + MAX( DIS
2b6b0 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20 29 20 46  TINCT + col0 ) F
2b6c0 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
2b6d0 55 4c 4c 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c  ULL BETWEEN NULL
2b6e0 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   AND NULL..----.
2b6f0 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
2b700 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2b710 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2b720 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 34  rowsort label-94
2b730 39 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 41 58 20  9..SELECT + MAX 
2b740 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  ( DISTINCT + col
2b750 30 20 29 20 46 52 4f 4d 20 74 61 62 30 20 57 48  0 ) FROM tab0 WH
2b760 45 52 45 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e  ERE NULL BETWEEN
2b770 20 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c 0d 0a   NULL AND NULL..
2b780 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e  ----..NULL....on
2b790 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
2b7a0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
2b7b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2b7c0 20 6c 61 62 65 6c 2d 39 35 30 0d 0a 53 45 4c 45   label-950..SELE
2b7d0 43 54 20 41 4c 4c 20 2b 20 39 38 20 2a 20 2d 20  CT ALL + 98 * - 
2b7e0 4d 41 58 28 20 41 4c 4c 20 2b 20 35 36 20 29 20  MAX( ALL + 56 ) 
2b7f0 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
2b800 0a 2d 35 34 38 38 0d 0a 0d 0a 73 6b 69 70 69 66  .-5488....skipif
2b810 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2b820 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2b830 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2b840 35 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  50..SELECT ALL +
2b850 20 39 38 20 2a 20 2d 20 4d 41 58 20 28 20 41 4c   98 * - MAX ( AL
2b860 4c 20 2b 20 35 36 20 29 20 46 52 4f 4d 20 74 61  L + 56 ) FROM ta
2b870 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 34 38 38 0d  b1..----..-5488.
2b880 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
2b890 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  ort..SELECT + co
2b8a0 6c 32 20 2a 20 36 35 20 2b 20 2d 20 2b 20 63 6f  l2 * 65 + - + co
2b8b0 6c 31 20 41 53 20 63 6f 6c 30 2c 20 63 6f 6c 32  l1 AS col0, col2
2b8c0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
2b8d0 62 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e 4f  b0 WHERE NULL NO
2b8e0 54 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41  T BETWEEN NULL A
2b8f0 4e 44 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d  ND + col0..----.
2b900 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2b910 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44  # CAST syntax: D
2b920 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71  ECIMAL type: ..q
2b930 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
2b940 20 6c 61 62 65 6c 2d 39 35 32 0d 0a 53 45 4c 45   label-952..SELE
2b950 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41  CT * FROM tab1 A
2b960 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c  S cor0 WHERE NUL
2b970 4c 20 4e 4f 54 20 49 4e 20 28 20 2d 20 35 2c 20  L NOT IN ( - 5, 
2b980 2d 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 32 2c  - col0 * + col2,
2b990 20 2d 20 43 41 53 54 28 20 2b 20 2b 20 63 6f 6c   - CAST( + + col
2b9a0 31 20 41 53 20 44 45 43 49 4d 41 4c 20 29 2c 20  1 AS DECIMAL ), 
2b9b0 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  col1 )..----....
2b9c0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2b9d0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2b9e0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
2b9f0 20 6c 61 62 65 6c 2d 39 35 32 0d 0a 53 45 4c 45   label-952..SELE
2ba00 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41  CT * FROM tab1 A
2ba10 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c  S cor0 WHERE NUL
2ba20 4c 20 4e 4f 54 20 49 4e 20 28 20 2d 20 35 2c 20  L NOT IN ( - 5, 
2ba30 2d 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 32 2c  - col0 * + col2,
2ba40 20 2d 20 43 41 53 54 20 28 20 2b 20 2b 20 63 6f   - CAST ( + + co
2ba50 6c 31 20 41 53 20 52 45 41 4c 20 29 2c 20 63 6f  l1 AS REAL ), co
2ba60 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  l1 )..----....qu
2ba70 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
2ba80 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2ba90 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
2baa0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 31  cor0 WHERE NOT 1
2bab0 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  2 IS NULL..----.
2bac0 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
2bad0 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61  g to 75c998aa53a
2bae0 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32  c83218cbf2feb962
2baf0 64 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49  d0a49....query I
2bb00 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2bb10 20 41 4c 4c 20 2d 20 28 20 2d 20 28 20 2d 20 2d   ALL - ( - ( - -
2bb20 20 63 6f 6c 32 20 29 20 29 20 46 52 4f 4d 20 74   col2 ) ) FROM t
2bb30 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 34  ab0..----..10..4
2bb40 37 0d 0a 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  7..99....onlyif 
2bb50 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
2bb60 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
2bb70 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2bb80 6c 2d 39 35 35 0d 0a 53 45 4c 45 43 54 20 2d 20  l-955..SELECT - 
2bb90 28 20 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  ( - + COUNT( * )
2bba0 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
2bbb0 74 61 62 32 20 63 6f 72 30 20 43 52 4f 53 53 20  tab2 cor0 CROSS 
2bbc0 4a 4f 49 4e 20 74 61 62 32 20 41 53 20 63 6f 72  JOIN tab2 AS cor
2bbd0 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20  1 WHERE NULL IS 
2bbe0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d  NULL..----..9...
2bbf0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2bc00 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2bc10 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2bc20 6c 61 62 65 6c 2d 39 35 35 0d 0a 53 45 4c 45 43  label-955..SELEC
2bc30 54 20 2d 20 28 20 2d 20 2b 20 43 4f 55 4e 54 20  T - ( - + COUNT 
2bc40 28 20 2a 20 29 20 29 20 41 53 20 63 6f 6c 31 20  ( * ) ) AS col1 
2bc50 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 43  FROM tab2 cor0 C
2bc60 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41  ROSS JOIN tab2 A
2bc70 53 20 63 6f 72 31 20 57 48 45 52 45 20 4e 55 4c  S cor1 WHERE NUL
2bc80 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  L IS NULL..----.
2bc90 0a 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  .9....query III 
2bca0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2bcb0 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  * FROM tab1 AS c
2bcc0 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55  or0 WHERE NOT NU
2bcd0 4c 4c 20 42 45 54 57 45 45 4e 20 2b 20 63 6f 6c  LL BETWEEN + col
2bce0 30 20 2a 20 2b 20 2d 20 28 20 2b 20 34 38 20 29  0 * + - ( + 48 )
2bcf0 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   AND NULL..----.
2bd00 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2bd10 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
2bd20 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
2bd30 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2bd40 62 65 6c 2d 39 35 37 0d 0a 53 45 4c 45 43 54 20  bel-957..SELECT 
2bd50 2b 20 2b 20 36 20 2b 20 2d 20 63 6f 6c 32 20 2b  + + 6 + - col2 +
2bd60 20 2d 20 43 41 53 54 28 20 2b 20 43 41 53 54 28   - CAST( + CAST(
2bd70 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
2bd80 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 2d 20  ) AS SIGNED ) - 
2bd90 28 20 2b 20 2b 20 63 6f 6c 30 20 29 20 46 52 4f  ( + + col0 ) FRO
2bda0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
2bdb0 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20  HERE NOT ( NULL 
2bdc0 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  ) IS NOT NULL..-
2bdd0 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
2bde0 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
2bdf0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2be00 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2be10 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 35  rowsort label-95
2be20 37 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 36 20  7..SELECT + + 6 
2be30 2b 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 43 41 53  + - col2 + - CAS
2be40 54 20 28 20 2b 20 43 41 53 54 20 28 20 4e 55 4c  T ( + CAST ( NUL
2be50 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41  L AS INTEGER ) A
2be60 53 20 49 4e 54 45 47 45 52 20 29 20 2d 20 28 20  S INTEGER ) - ( 
2be70 2b 20 2b 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20  + + col0 ) FROM 
2be80 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
2be90 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20  RE NOT ( NULL ) 
2bea0 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
2beb0 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
2bec0 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ULL....query I r
2bed0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
2bee0 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20 2a  ISTINCT + col0 *
2bef0 20 32 37 20 46 52 4f 4d 20 74 61 62 31 20 41 53   27 FROM tab1 AS
2bf00 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 37   cor0..----..137
2bf10 37 0d 0a 32 32 39 35 0d 0a 32 34 35 37 0d 0a 0d  7..2295..2457...
2bf20 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2bf30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2bf40 54 20 2b 20 33 37 20 41 53 20 63 6f 6c 30 20 46  T + 37 AS col0 F
2bf50 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d  ROM tab2 cor0..-
2bf60 2d 2d 2d 0d 0a 33 37 0d 0a 0d 0a 6f 6e 6c 79 69  ---..37....onlyi
2bf70 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
2bf80 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
2bf90 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
2bfa0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 36 30 0d  wsort label-960.
2bfb0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f  .SELECT ALL + co
2bfc0 6c 32 20 44 49 56 20 37 38 20 46 52 4f 4d 20 74  l2 DIV 78 FROM t
2bfd0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
2bfe0 2d 0d 0a 30 0d 0a 30 0d 0a 31 0d 0a 0d 0a 73 6b  -..0..0..1....sk
2bff0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2c000 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2c010 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2c020 65 6c 2d 39 36 30 0d 0a 53 45 4c 45 43 54 20 41  el-960..SELECT A
2c030 4c 4c 20 2b 20 63 6f 6c 32 20 2f 20 37 38 20 46  LL + col2 / 78 F
2c040 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
2c050 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 31 0d  ..----..0..0..1.
2c060 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2c070 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
2c080 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
2c090 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 36 31 0d  wsort label-961.
2c0a0 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28  .SELECT + COUNT(
2c0b0 20 2a 20 29 20 2a 20 2d 20 31 20 2a 20 38 31 20   * ) * - 1 * 81 
2c0c0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
2c0d0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 34 33 0d 0a 0d  0..----..-243...
2c0e0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2c0f0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2c100 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2c110 6c 61 62 65 6c 2d 39 36 31 0d 0a 53 45 4c 45 43  label-961..SELEC
2c120 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  T + COUNT ( * ) 
2c130 2a 20 2d 20 31 20 2a 20 38 31 20 46 52 4f 4d 20  * - 1 * 81 FROM 
2c140 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
2c150 2d 2d 0d 0a 2d 32 34 33 0d 0a 0d 0a 6f 6e 6c 79  --..-243....only
2c160 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
2c170 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
2c180 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2c190 61 62 65 6c 2d 39 36 32 0d 0a 53 45 4c 45 43 54  abel-962..SELECT
2c1a0 20 2d 20 2b 20 4d 49 4e 28 20 2b 20 2d 20 63 6f   - + MIN( + - co
2c1b0 6c 30 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  l0 ) AS col1 FRO
2c1c0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
2c1d0 2d 2d 2d 2d 0d 0a 39 31 0d 0a 0d 0a 73 6b 69 70  ----..91....skip
2c1e0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2c1f0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2c200 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2c210 2d 39 36 32 0d 0a 53 45 4c 45 43 54 20 2d 20 2b  -962..SELECT - +
2c220 20 4d 49 4e 20 28 20 2b 20 2d 20 63 6f 6c 30 20   MIN ( + - col0 
2c230 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
2c240 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
2c250 2d 0d 0a 39 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -..91....onlyif 
2c260 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
2c270 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
2c280 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2c290 6c 2d 39 36 33 0d 0a 53 45 4c 45 43 54 20 28 20  l-963..SELECT ( 
2c2a0 2b 20 43 4f 55 4e 54 28 20 44 49 53 54 49 4e 43  + COUNT( DISTINC
2c2b0 54 20 2d 20 2d 20 37 38 20 29 20 29 20 2a 20 2d  T - - 78 ) ) * -
2c2c0 20 2d 20 38 30 20 63 6f 6c 30 20 46 52 4f 4d 20   - 80 col0 FROM 
2c2d0 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
2c2e0 2d 2d 0d 0a 38 30 0d 0a 0d 0a 73 6b 69 70 69 66  --..80....skipif
2c2f0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2c300 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
2c310 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
2c320 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
2c330 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
2c340 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
2c350 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2c360 74 20 6c 61 62 65 6c 2d 39 36 33 0d 0a 53 45 4c  t label-963..SEL
2c370 45 43 54 20 28 20 2b 20 43 4f 55 4e 54 20 28 20  ECT ( + COUNT ( 
2c380 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 37 38 20  DISTINCT - - 78 
2c390 29 20 29 20 2a 20 2d 20 2d 20 38 30 20 63 6f 6c  ) ) * - - 80 col
2c3a0 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
2c3b0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 30 0d 0a 0d  or0..----..80...
2c3c0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
2c3d0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
2c3e0 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  NCT * FROM tab0 
2c3f0 57 48 45 52 45 20 4e 4f 54 20 2b 20 28 20 2b 20  WHERE NOT + ( + 
2c400 63 6f 6c 31 20 29 20 4e 4f 54 20 49 4e 20 28 20  col1 ) NOT IN ( 
2c410 2b 20 2d 20 63 6f 6c 30 2c 20 2b 20 32 36 20 29  + - col0, + 26 )
2c420 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
2c430 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
2c440 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
2c450 57 48 45 52 45 20 4e 4f 54 20 2d 20 2b 20 63 6f  WHERE NOT - + co
2c460 6c 31 20 2a 20 2d 20 28 20 2d 20 63 6f 6c 32 20  l1 * - ( - col2 
2c470 29 20 2b 20 2d 20 28 20 2b 20 63 6f 6c 31 20 29  ) + - ( + col1 )
2c480 20 3e 3d 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c   >= col1 * - col
2c490 32 20 2b 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 38  2 + - col0 + - 8
2c4a0 32 20 2a 20 2d 20 33 0d 0a 2d 2d 2d 2d 0d 0a 39  2 * - 3..----..9
2c4b0 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
2c4c0 74 6f 20 63 34 62 34 32 37 36 35 64 66 66 39 34  to c4b42765dff94
2c4d0 65 61 61 61 34 36 30 34 30 65 35 33 37 66 62 34  eaaa46040e537fb4
2c4e0 33 62 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  3b7....query I r
2c4f0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
2c500 4c 4c 20 2d 20 28 20 63 6f 6c 31 20 29 20 2b 20  LL - ( col1 ) + 
2c510 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f  col0 AS col1 FRO
2c520 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
2c530 20 4e 55 4c 4c 20 3c 3d 20 63 6f 6c 30 0d 0a 2d   NULL <= col0..-
2c540 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  ---....skipif po
2c550 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
2c560 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
2c570 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
2c580 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
2c590 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2c5a0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2c5b0 20 2b 20 28 20 2d 20 63 6f 6c 30 20 29 20 2a 20   + ( - col0 ) * 
2c5c0 2d 20 35 20 2b 20 63 6f 6c 30 20 63 6f 6c 32 20  - 5 + col0 col2 
2c5d0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
2c5e0 0a 32 37 36 0d 0a 33 38 34 0d 0a 34 35 30 0d 0a  .276..384..450..
2c5f0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
2c600 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
2c610 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
2c620 45 20 2b 20 28 20 31 32 20 29 20 2a 20 2d 20 28  E + ( 12 ) * - (
2c630 20 2b 20 2d 20 36 38 20 29 20 2d 20 2b 20 63 6f   + - 68 ) - + co
2c640 6c 32 20 2a 20 2b 20 2b 20 33 34 20 49 53 20 4e  l2 * + + 34 IS N
2c650 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
2c660 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
2c670 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
2c680 4d 20 74 61 62 30 20 57 48 45 52 45 20 63 6f 6c  M tab0 WHERE col
2c690 32 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 36 34  2 NOT BETWEEN 64
2c6a0 20 41 4e 44 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d   AND col0..----.
2c6b0 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
2c6c0 67 20 74 6f 20 63 34 62 34 32 37 36 35 64 66 66  g to c4b42765dff
2c6d0 39 34 65 61 61 61 34 36 30 34 30 65 35 33 37 66  94eaaa46040e537f
2c6e0 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72 79 20 49  b43b7....query I
2c6f0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2c700 20 63 6f 6c 32 20 2a 20 34 31 20 46 52 4f 4d 20   col2 * 41 FROM 
2c710 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 36 34 30  tab2..----..1640
2c720 0d 0a 32 33 37 38 0d 0a 39 34 33 0d 0a 0d 0a 6f  ..2378..943....o
2c730 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
2c740 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
2c750 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2c760 74 20 6c 61 62 65 6c 2d 39 37 31 0d 0a 53 45 4c  t label-971..SEL
2c770 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55  ECT DISTINCT COU
2c780 4e 54 28 20 44 49 53 54 49 4e 43 54 20 2d 20 2d  NT( DISTINCT - -
2c790 20 37 39 20 29 20 41 53 20 63 6f 6c 30 20 46 52   79 ) AS col0 FR
2c7a0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
2c7b0 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20  CROSS JOIN tab1 
2c7c0 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor1..----..1
2c7d0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2c7e0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2c7f0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
2c800 72 74 20 6c 61 62 65 6c 2d 39 37 31 0d 0a 53 45  rt label-971..SE
2c810 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f  LECT DISTINCT CO
2c820 55 4e 54 20 28 20 44 49 53 54 49 4e 43 54 20 2d  UNT ( DISTINCT -
2c830 20 2d 20 37 39 20 29 20 41 53 20 63 6f 6c 30 20   - 79 ) AS col0 
2c840 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
2c850 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62  0 CROSS JOIN tab
2c860 31 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d  1 AS cor1..----.
2c870 0a 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .1....onlyif mys
2c880 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
2c890 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
2c8a0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2c8b0 20 6c 61 62 65 6c 2d 39 37 32 0d 0a 53 45 4c 45   label-972..SELE
2c8c0 43 54 20 2d 20 63 6f 6c 32 20 2b 20 63 6f 6c 30  CT - col2 + col0
2c8d0 20 44 49 56 20 2d 20 38 32 20 46 52 4f 4d 20 74   DIV - 82 FROM t
2c8e0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
2c8f0 2d 0d 0a 2d 31 30 30 0d 0a 2d 31 31 0d 0a 2d 34  -..-100..-11..-4
2c900 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  7....skipif mysq
2c910 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2c920 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2c930 6f 72 74 20 6c 61 62 65 6c 2d 39 37 32 0d 0a 53  ort label-972..S
2c940 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2b 20 63  ELECT - col2 + c
2c950 6f 6c 30 20 2f 20 2d 20 38 32 20 46 52 4f 4d 20  ol0 / - 82 FROM 
2c960 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
2c970 2d 2d 0d 0a 2d 31 30 30 0d 0a 2d 31 31 0d 0a 2d  --..-100..-11..-
2c980 34 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  47....query III 
2c990 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2c9a0 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  * FROM tab2 AS c
2c9b0 6f 72 30 20 57 48 45 52 45 20 2b 20 63 6f 6c 30  or0 WHERE + col0
2c9c0 20 2a 20 2b 20 2d 20 37 36 20 49 53 20 4e 4f 54   * + - 76 IS NOT
2c9d0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   NULL..----..9 v
2c9e0 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
2c9f0 20 37 35 63 39 39 38 61 61 35 33 61 63 38 33 32   75c998aa53ac832
2ca00 31 38 63 62 66 32 66 65 62 39 36 32 64 30 61 34  18cbf2feb962d0a4
2ca10 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  9....skipif post
2ca20 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
2ca30 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
2ca40 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
2ca50 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
2ca60 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2ca70 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2b 20 2d  ELECT - col0 + -
2ca80 20 2d 20 63 6f 6c 31 20 63 6f 6c 30 20 46 52 4f   - col1 col0 FRO
2ca90 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
2caa0 2d 2d 2d 2d 0d 0a 2d 38 0d 0a 31 33 0d 0a 35 0d  ----..-8..13..5.
2cab0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2cac0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
2cad0 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
2cae0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2caf0 62 65 6c 2d 39 37 35 0d 0a 53 45 4c 45 43 54 20  bel-975..SELECT 
2cb00 2b 20 63 6f 6c 30 20 2b 20 2d 20 43 41 53 54 28  + col0 + - CAST(
2cb10 20 2d 20 63 6f 6c 32 20 41 53 20 53 49 47 4e 45   - col2 AS SIGNE
2cb20 44 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  D ) AS col0 FROM
2cb30 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
2cb40 2d 2d 2d 0d 0a 31 34 34 0d 0a 31 34 37 0d 0a 31  ---..144..147..1
2cb50 35 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  59....skipif mys
2cb60 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2cb70 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2cb80 73 6f 72 74 20 6c 61 62 65 6c 2d 39 37 35 0d 0a  sort label-975..
2cb90 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 2b 20  SELECT + col0 + 
2cba0 2d 20 43 41 53 54 20 28 20 2d 20 63 6f 6c 32 20  - CAST ( - col2 
2cbb0 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20  AS INTEGER ) AS 
2cbc0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
2cbd0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34  S cor0..----..14
2cbe0 34 0d 0a 31 34 37 0d 0a 31 35 39 0d 0a 0d 0a 71  4..147..159....q
2cbf0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
2cc00 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
2cc10 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
2cc20 52 45 20 2d 20 39 33 20 2a 20 2b 20 2b 20 63 6f  RE - 93 * + + co
2cc30 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  l2 IS NOT NULL..
2cc40 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
2cc50 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34  ashing to c6c0a4
2cc60 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61  111b36d04dbc811a
2cc70 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75  11e4d54cad....qu
2cc80 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2cc90 45 4c 45 43 54 20 63 6f 6c 32 20 2a 20 2d 20 34  ELECT col2 * - 4
2cca0 33 20 2b 20 2b 20 2d 20 63 6f 6c 31 20 41 53 20  3 + + - col1 AS 
2ccb0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
2ccc0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  S cor0..----..-2
2ccd0 31 30 32 0d 0a 2d 34 32 35 38 0d 0a 2d 34 35 31  102..-4258..-451
2cce0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2ccf0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
2cd00 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
2cd10 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2cd20 61 62 65 6c 2d 39 37 38 0d 0a 53 45 4c 45 43 54  abel-978..SELECT
2cd30 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 43 41   DISTINCT + - CA
2cd40 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
2cd50 45 44 20 29 20 2b 20 2b 20 63 6f 6c 31 20 2a 20  ED ) + + col1 * 
2cd60 2d 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 2d 20 63  - + col2 + + - c
2cd70 6f 6c 30 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20  ol0 + col2 FROM 
2cd80 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
2cd90 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
2cda0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2cdb0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2cdc0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2cdd0 2d 39 37 38 0d 0a 53 45 4c 45 43 54 20 44 49 53  -978..SELECT DIS
2cde0 54 49 4e 43 54 20 2b 20 2d 20 43 41 53 54 20 28  TINCT + - CAST (
2cdf0 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
2ce00 20 29 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 2d 20   ) + + col1 * - 
2ce10 2b 20 63 6f 6c 32 20 2b 20 2b 20 2d 20 63 6f 6c  + col2 + + - col
2ce20 30 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  0 + col2 FROM ta
2ce30 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
2ce40 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20  ..NULL....query 
2ce50 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2ce60 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  T DISTINCT + col
2ce70 31 20 2d 20 2d 20 2d 20 38 32 20 46 52 4f 4d 20  1 - - - 82 FROM 
2ce80 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
2ce90 2d 2d 0d 0a 2d 31 35 0d 0a 2d 33 31 0d 0a 2d 35  --..-15..-31..-5
2cea0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2ceb0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
2cec0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
2ced0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 38 30  owsort label-980
2cee0 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54  ..SELECT + COUNT
2cef0 28 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  ( DISTINCT - col
2cf00 31 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53  1 ) FROM tab2 AS
2cf10 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   cor0..----..3..
2cf20 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2cf30 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2cf40 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2cf50 20 6c 61 62 65 6c 2d 39 38 30 0d 0a 53 45 4c 45   label-980..SELE
2cf60 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 44 49 53  CT + COUNT ( DIS
2cf70 54 49 4e 43 54 20 2d 20 63 6f 6c 31 20 29 20 46  TINCT - col1 ) F
2cf80 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
2cf90 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c  ..----..3....onl
2cfa0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
2cfb0 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
2cfc0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
2cfd0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 38  rowsort label-98
2cfe0 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  1..SELECT DISTIN
2cff0 43 54 20 2d 20 28 20 2d 20 63 6f 6c 31 20 29 20  CT - ( - col1 ) 
2d000 2a 20 63 6f 6c 31 20 2b 20 2d 20 2d 20 43 41 53  * col1 + - - CAS
2d010 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
2d020 44 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  D ) FROM tab2..-
2d030 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ---..NULL....ski
2d040 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2d050 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2d060 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2d070 6c 2d 39 38 31 0d 0a 53 45 4c 45 43 54 20 44 49  l-981..SELECT DI
2d080 53 54 49 4e 43 54 20 2d 20 28 20 2d 20 63 6f 6c  STINCT - ( - col
2d090 31 20 29 20 2a 20 63 6f 6c 31 20 2b 20 2d 20 2d  1 ) * col1 + - -
2d0a0 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
2d0b0 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74  INTEGER ) FROM t
2d0c0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab2..----..NULL.
2d0d0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2d0e0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
2d0f0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
2d100 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 38 32 0d  wsort label-982.
2d110 0a 53 45 4c 45 43 54 20 2d 20 2b 20 4d 49 4e 28  .SELECT - + MIN(
2d120 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 29 20 46 52   ALL + col0 ) FR
2d130 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 55  OM tab2 WHERE NU
2d140 4c 4c 20 3c 3e 20 2d 20 63 6f 6c 30 0d 0a 2d 2d  LL <> - col0..--
2d150 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
2d160 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2d170 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2d180 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2d190 2d 39 38 32 0d 0a 53 45 4c 45 43 54 20 2d 20 2b  -982..SELECT - +
2d1a0 20 4d 49 4e 20 28 20 41 4c 4c 20 2b 20 63 6f 6c   MIN ( ALL + col
2d1b0 30 20 29 20 46 52 4f 4d 20 74 61 62 32 20 57 48  0 ) FROM tab2 WH
2d1c0 45 52 45 20 4e 55 4c 4c 20 3c 3e 20 2d 20 63 6f  ERE NULL <> - co
2d1d0 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  l0..----..NULL..
2d1e0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2d1f0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f  t..SELECT ALL co
2d200 6c 32 20 2a 20 2b 20 28 20 63 6f 6c 30 20 29 20  l2 * + ( col0 ) 
2d210 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2d220 32 0d 0a 2d 2d 2d 2d 0d 0a 31 30 35 38 0d 0a 32  2..----..1058..2
2d230 35 36 30 0d 0a 34 33 35 30 0d 0a 0d 0a 71 75 65  560..4350....que
2d240 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2d250 4c 45 43 54 20 2d 20 35 37 20 2a 20 2d 20 28 20  LECT - 57 * - ( 
2d260 2b 20 63 6f 6c 30 20 29 20 2d 20 2d 20 63 6f 6c  + col0 ) - - col
2d270 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  1 AS col2 FROM t
2d280 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
2d290 2d 0d 0a 32 39 32 31 0d 0a 34 38 35 30 0d 0a 35  -..2921..4850..5
2d2a0 32 33 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  234....onlyif my
2d2b0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
2d2c0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
2d2d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2d2e0 74 20 6c 61 62 65 6c 2d 39 38 35 0d 0a 53 45 4c  t label-985..SEL
2d2f0 45 43 54 20 2b 20 63 6f 6c 32 20 2d 20 2b 20 28  ECT + col2 - + (
2d300 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   + CAST( NULL AS
2d310 20 53 49 47 4e 45 44 20 29 20 29 20 2a 20 63 6f   SIGNED ) ) * co
2d320 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l2 AS col1 FROM 
2d330 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
2d340 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
2d350 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
2d360 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2d370 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
2d380 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 38 35  owsort label-985
2d390 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20  ..SELECT + col2 
2d3a0 2d 20 2b 20 28 20 2b 20 43 41 53 54 20 28 20 4e  - + ( + CAST ( N
2d3b0 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
2d3c0 20 29 20 2a 20 63 6f 6c 32 20 41 53 20 63 6f 6c   ) * col2 AS col
2d3d0 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
2d3e0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
2d3f0 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  .NULL..NULL....q
2d400 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2d410 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2d420 2b 20 32 37 20 2a 20 2d 20 63 6f 6c 30 20 41 53  + 27 * - col0 AS
2d430 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
2d440 0a 2d 2d 2d 2d 0d 0a 2d 31 32 34 32 0d 0a 2d 31  .----..-1242..-1
2d450 37 32 38 0d 0a 2d 32 30 32 35 0d 0a 0d 0a 71 75  728..-2025....qu
2d460 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
2d470 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2d480 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
2d490 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20 28  RE NULL NOT IN (
2d4a0 20 2d 20 63 6f 6c 31 2c 20 63 6f 6c 31 20 2a 20   - col1, col1 * 
2d4b0 2d 20 2b 20 36 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a  - + 62 )..----..
2d4c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2d4d0 74 0d 0a 53 45 4c 45 43 54 20 2d 20 36 34 20 46  t..SELECT - 64 F
2d4e0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
2d4f0 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20   WHERE NOT col2 
2d500 2a 20 2d 20 2d 20 63 6f 6c 31 20 49 53 20 4e 4f  * - - col1 IS NO
2d510 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  T NULL..----....
2d520 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
2d530 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
2d540 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
2d550 30 20 57 48 45 52 45 20 38 31 20 2a 20 2d 20 63  0 WHERE 81 * - c
2d560 6f 6c 30 20 4e 4f 54 20 49 4e 20 28 20 2b 20 2d  ol0 NOT IN ( + -
2d570 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39   col0 )..----..9
2d580 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
2d590 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38  to 75c998aa53ac8
2d5a0 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30  3218cbf2feb962d0
2d5b0 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  a49....query I r
2d5c0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
2d5d0 20 63 6f 6c 32 20 2a 20 2b 20 2d 20 63 6f 6c 31   col2 * + - col1
2d5e0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
2d5f0 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  b2 cor0..----..1
2d600 31 37 33 0d 0a 33 30 38 30 0d 0a 33 38 38 36 0d  173..3080..3886.
2d610 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2d620 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  rt..SELECT - col
2d630 31 20 2a 20 28 20 63 6f 6c 30 20 29 20 41 53 20  1 * ( col0 ) AS 
2d640 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
2d650 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
2d660 20 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c   col0 IS NOT NUL
2d670 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
2d680 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
2d690 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  LECT * FROM tab1
2d6a0 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 2b 20 28   WHERE NOT + + (
2d6b0 20 2d 20 31 20 29 20 2a 20 2d 20 2b 20 63 6f 6c   - 1 ) * - + col
2d6c0 30 20 2f 20 2b 20 2b 20 39 35 20 3c 3e 20 2b 20  0 / + + 95 <> + 
2d6d0 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  col2..----....qu
2d6e0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
2d6f0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2d700 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
2d710 52 45 20 4e 4f 54 20 2b 20 34 33 20 3c 3e 20 2b  RE NOT + 43 <> +
2d720 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   col0..----....o
2d730 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
2d740 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
2d750 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
2d760 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
2d770 6c 2d 39 39 34 0d 0a 53 45 4c 45 43 54 20 2a 20  l-994..SELECT * 
2d780 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
2d790 4e 4f 54 20 63 6f 6c 32 20 42 45 54 57 45 45 4e  NOT col2 BETWEEN
2d7a0 20 4e 55 4c 4c 20 41 4e 44 20 2b 20 63 6f 6c 32   NULL AND + col2
2d7b0 20 2d 20 2d 20 2d 20 63 6f 6c 32 20 2b 20 2d 20   - - - col2 + - 
2d7c0 63 6f 6c 30 20 2f 20 2b 20 43 41 53 54 28 20 4e  col0 / + CAST( N
2d7d0 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 0d  ULL AS SIGNED ).
2d7e0 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
2d7f0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2d800 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
2d810 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2d820 39 39 34 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  994..SELECT * FR
2d830 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
2d840 54 20 63 6f 6c 32 20 42 45 54 57 45 45 4e 20 4e  T col2 BETWEEN N
2d850 55 4c 4c 20 41 4e 44 20 2b 20 63 6f 6c 32 20 2d  ULL AND + col2 -
2d860 20 2d 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 63 6f   - - col2 + - co
2d870 6c 30 20 2f 20 2b 20 43 41 53 54 20 28 20 4e 55  l0 / + CAST ( NU
2d880 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 0d  LL AS INTEGER ).
2d890 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
2d8a0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2d8b0 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 2a   DISTINCT col0 *
2d8c0 20 2d 20 28 20 2b 20 2b 20 63 6f 6c 32 20 29 20   - ( + + col2 ) 
2d8d0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
2d8e0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 30 35 0d 0a 2d  0..----..-705..-
2d8f0 38 37 30 0d 0a 2d 39 36 30 33 0d 0a 0d 0a 6f 6e  870..-9603....on
2d900 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
2d910 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
2d920 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
2d930 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
2d940 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2d950 2d 39 39 36 0d 0a 53 45 4c 45 43 54 20 2d 20 38  -996..SELECT - 8
2d960 31 20 2a 20 2d 20 53 55 4d 28 20 2b 20 43 41 53  1 * - SUM( + CAS
2d970 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
2d980 44 20 29 20 29 20 41 53 20 63 6f 6c 30 20 46 52  D ) ) AS col0 FR
2d990 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab2..----..N
2d9a0 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
2d9b0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2d9c0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
2d9d0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 39 36 0d  wsort label-996.
2d9e0 0a 53 45 4c 45 43 54 20 2d 20 38 31 20 2a 20 2d  .SELECT - 81 * -
2d9f0 20 53 55 4d 20 28 20 2b 20 43 41 53 54 20 28 20   SUM ( + CAST ( 
2da00 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
2da10 29 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ) ) AS col0 FROM
2da20 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   tab2..----..NUL
2da30 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  L....query II ro
2da40 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
2da50 4c 20 2b 20 33 37 20 2a 20 2d 20 63 6f 6c 30 20  L + 37 * - col0 
2da60 41 53 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c 30 20  AS col1, + col0 
2da70 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
2da80 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 32 31 39 0d 0a  0..----..-3219..
2da90 38 37 0d 0a 2d 33 35 38 39 0d 0a 39 37 0d 0a 2d  87..-3589..97..-
2daa0 35 35 35 0d 0a 31 35 0d 0a 0d 0a 6f 6e 6c 79 69  555..15....onlyi
2dab0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
2dac0 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20  ate syntax: DIV 
2dad0 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
2dae0 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
2daf0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 39  rowsort label-99
2db00 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  8..SELECT DISTIN
2db10 43 54 20 2b 20 34 20 44 49 56 20 2d 20 53 55 4d  CT + 4 DIV - SUM
2db20 28 20 41 4c 4c 20 2d 20 2d 20 37 31 20 29 20 41  ( ALL - - 71 ) A
2db30 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
2db40 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69  ..----..0....ski
2db50 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2db60 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2db70 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2db80 6c 2d 39 39 38 0d 0a 53 45 4c 45 43 54 20 44 49  l-998..SELECT DI
2db90 53 54 49 4e 43 54 20 2b 20 34 20 2f 20 2d 20 53  STINCT + 4 / - S
2dba0 55 4d 20 28 20 41 4c 4c 20 2d 20 2d 20 37 31 20  UM ( ALL - - 71 
2dbb0 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
2dbc0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  ab2..----..0....
2dbd0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
2dbe0 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
2dbf0 45 44 20 74 79 70 65 3a 20 44 49 56 20 66 6f 72  ED type: DIV for
2dc00 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
2dc10 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
2dc20 73 6f 72 74 20 6c 61 62 65 6c 2d 39 39 39 0d 0a  sort label-999..
2dc30 53 45 4c 45 43 54 20 41 4c 4c 20 43 41 53 54 28  SELECT ALL CAST(
2dc40 20 2d 20 37 32 20 41 53 20 53 49 47 4e 45 44 20   - 72 AS SIGNED 
2dc50 29 20 44 49 56 20 2d 20 63 6f 6c 30 20 41 53 20  ) DIV - col0 AS 
2dc60 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col1 FROM tab2..
2dc70 2d 2d 2d 2d 0d 0a 30 0d 0a 31 0d 0a 31 0d 0a 0d  ----..0..1..1...
2dc80 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2dc90 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2dca0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2dcb0 6c 61 62 65 6c 2d 39 39 39 0d 0a 53 45 4c 45 43  label-999..SELEC
2dcc0 54 20 41 4c 4c 20 43 41 53 54 20 28 20 2d 20 37  T ALL CAST ( - 7
2dcd0 32 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2f  2 AS INTEGER ) /
2dce0 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20   - col0 AS col1 
2dcf0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
2dd00 0a 30 0d 0a 31 0d 0a 31 0d 0a 0d 0a 6f 6e 6c 79  .0..1..1....only
2dd10 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
2dd20 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56  gate syntax: DIV
2dd30 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
2dd40 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
2dd50 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2dd60 30 30 30 0d 0a 53 45 4c 45 43 54 20 33 30 20 44  000..SELECT 30 D
2dd70 49 56 20 53 55 4d 28 20 2d 20 2b 20 63 6f 6c 31  IV SUM( - + col1
2dd80 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   ) col0 FROM tab
2dd90 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b  2..----..0....sk
2dda0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2ddb0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69   compatible..ski
2ddc0 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
2ddd0 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
2dde0 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
2ddf0 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
2de00 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
2de10 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 30 30  wsort label-1000
2de20 0d 0a 53 45 4c 45 43 54 20 33 30 20 2f 20 53 55  ..SELECT 30 / SU
2de30 4d 20 28 20 2d 20 2b 20 63 6f 6c 31 20 29 20 63  M ( - + col1 ) c
2de40 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol0 FROM tab2..-
2de50 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ---..0....onlyif
2de60 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
2de70 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
2de80 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
2de90 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 30 31 0d  sort label-1001.
2dea0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32  .SELECT ALL col2
2deb0 20 2a 20 2b 20 2b 20 63 6f 6c 31 20 44 49 56 20   * + + col1 DIV 
2dec0 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46  + col1 AS col1 F
2ded0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
2dee0 31 30 0d 0a 34 37 0d 0a 39 39 0d 0a 0d 0a 73 6b  10..47..99....sk
2def0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2df00 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2df10 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2df20 65 6c 2d 31 30 30 31 0d 0a 53 45 4c 45 43 54 20  el-1001..SELECT 
2df30 41 4c 4c 20 63 6f 6c 32 20 2a 20 2b 20 2b 20 63  ALL col2 * + + c
2df40 6f 6c 31 20 2f 20 2b 20 63 6f 6c 31 20 41 53 20  ol1 / + col1 AS 
2df50 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
2df60 2d 2d 2d 2d 0d 0a 31 30 0d 0a 34 37 0d 0a 39 39  ----..10..47..99
2df70 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2df80 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
2df90 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  tax: ..query II 
2dfa0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2dfb0 30 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  02..SELECT DISTI
2dfc0 4e 43 54 20 4d 49 4e 28 20 44 49 53 54 49 4e 43  NCT MIN( DISTINC
2dfd0 54 20 2b 20 2b 20 63 6f 6c 30 20 29 20 41 53 20  T + + col0 ) AS 
2dfe0 63 6f 6c 31 2c 20 2d 20 4d 41 58 28 20 44 49 53  col1, - MAX( DIS
2dff0 54 49 4e 43 54 20 2d 20 2d 20 63 6f 6c 31 20 29  TINCT - - col1 )
2e000 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
2e010 0d 0a 35 31 0d 0a 2d 34 37 0d 0a 0d 0a 73 6b 69  ..51..-47....ski
2e020 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2e030 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2e040 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
2e050 65 6c 2d 31 30 30 32 0d 0a 53 45 4c 45 43 54 20  el-1002..SELECT 
2e060 44 49 53 54 49 4e 43 54 20 4d 49 4e 20 28 20 44  DISTINCT MIN ( D
2e070 49 53 54 49 4e 43 54 20 2b 20 2b 20 63 6f 6c 30  ISTINCT + + col0
2e080 20 29 20 41 53 20 63 6f 6c 31 2c 20 2d 20 4d 41   ) AS col1, - MA
2e090 58 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 2d  X ( DISTINCT - -
2e0a0 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62   col1 ) FROM tab
2e0b0 31 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 2d 34 37  1..----..51..-47
2e0c0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2e0d0 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
2e0e0 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
2e0f0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2e100 61 62 65 6c 2d 31 30 30 33 0d 0a 53 45 4c 45 43  abel-1003..SELEC
2e110 54 20 28 20 2d 20 34 34 20 29 20 44 49 56 20 63  T ( - 44 ) DIV c
2e120 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
2e130 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 31 0d 0a 30 0d 0a  ---..-1..-1..0..
2e140 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2e150 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2e160 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2e170 20 6c 61 62 65 6c 2d 31 30 30 33 0d 0a 53 45 4c   label-1003..SEL
2e180 45 43 54 20 28 20 2d 20 34 34 20 29 20 2f 20 63  ECT ( - 44 ) / c
2e190 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
2e1a0 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 31 0d 0a 30 0d 0a  ---..-1..-1..0..
2e1b0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2e1c0 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
2e1d0 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
2e1e0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2e1f0 65 6c 2d 31 30 30 34 0d 0a 53 45 4c 45 43 54 20  el-1004..SELECT 
2e200 44 49 53 54 49 4e 43 54 20 31 34 20 44 49 56 20  DISTINCT 14 DIV 
2e210 2d 20 28 20 2d 20 38 37 20 29 20 2a 20 2b 20 2d  - ( - 87 ) * + -
2e220 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52   col2 AS col1 FR
2e230 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30  OM tab2..----..0
2e240 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2e250 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2e260 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
2e270 72 74 20 6c 61 62 65 6c 2d 31 30 30 34 0d 0a 53  rt label-1004..S
2e280 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 31  ELECT DISTINCT 1
2e290 34 20 2f 20 2d 20 28 20 2d 20 38 37 20 29 20 2a  4 / - ( - 87 ) *
2e2a0 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c   + - col2 AS col
2e2b0 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
2e2c0 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -..0....query I 
2e2d0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2e2e0 41 4c 4c 20 28 20 2b 20 36 20 29 20 2b 20 2d 20  ALL ( + 6 ) + - 
2e2f0 34 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  41 FROM tab1 AS 
2e300 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 35 0d  cor0..----..-35.
2e310 0a 2d 33 35 0d 0a 2d 33 35 0d 0a 0d 0a 6f 6e 6c  .-35..-35....onl
2e320 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
2e330 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
2e340 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
2e350 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2e360 30 36 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20  06..SELECT col1 
2e370 2b 20 63 6f 6c 32 20 44 49 56 20 63 6f 6c 31 20  + col2 DIV col1 
2e380 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
2e390 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
2e3a0 0a 31 36 0d 0a 32 30 0d 0a 34 38 0d 0a 0d 0a 73  .16..20..48....s
2e3b0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2e3c0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2e3d0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2e3e0 62 65 6c 2d 31 30 30 36 0d 0a 53 45 4c 45 43 54  bel-1006..SELECT
2e3f0 20 63 6f 6c 31 20 2b 20 63 6f 6c 32 20 2f 20 63   col1 + col2 / c
2e400 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol1 AS col0 FROM
2e410 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
2e420 2d 2d 2d 0d 0a 31 36 0d 0a 32 30 0d 0a 34 38 0d  ---..16..20..48.
2e430 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2e440 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
2e450 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
2e460 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2e470 62 65 6c 2d 31 30 30 37 0d 0a 53 45 4c 45 43 54  bel-1007..SELECT
2e480 20 41 4c 4c 20 2d 20 2b 20 63 6f 6c 30 20 44 49   ALL - + col0 DI
2e490 56 20 2d 20 2d 20 33 36 20 2b 20 39 34 20 63 6f  V - - 36 + 94 co
2e4a0 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l1 FROM tab0 cor
2e4b0 30 0d 0a 2d 2d 2d 2d 0d 0a 39 32 0d 0a 39 32 0d  0..----..92..92.
2e4c0 0a 39 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .94....skipif my
2e4d0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2e4e0 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
2e4f0 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
2e500 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
2e510 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
2e520 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
2e530 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2e540 61 62 65 6c 2d 31 30 30 37 0d 0a 53 45 4c 45 43  abel-1007..SELEC
2e550 54 20 41 4c 4c 20 2d 20 2b 20 63 6f 6c 30 20 2f  T ALL - + col0 /
2e560 20 2d 20 2d 20 33 36 20 2b 20 39 34 20 63 6f 6c   - - 36 + 94 col
2e570 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  1 FROM tab0 cor0
2e580 0d 0a 2d 2d 2d 2d 0d 0a 39 32 0d 0a 39 32 0d 0a  ..----..92..92..
2e590 39 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  94....query I ro
2e5a0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
2e5b0 53 54 49 4e 43 54 20 2d 20 2b 20 63 6f 6c 31 20  STINCT - + col1 
2e5c0 2b 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30  + + col0 AS col0
2e5d0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
2e5e0 72 30 20 57 48 45 52 45 20 63 6f 6c 30 20 49 53  r0 WHERE col0 IS
2e5f0 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
2e600 0a 2d 36 36 0d 0a 36 36 0d 0a 39 36 0d 0a 0d 0a  .-66..66..96....
2e610 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2e620 0a 53 45 4c 45 43 54 20 2b 20 28 20 2d 20 2d 20  .SELECT + ( - - 
2e630 63 6f 6c 30 20 29 20 2a 20 2d 20 2b 20 37 34 20  col0 ) * - + 74 
2e640 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2e650 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 34 30 34 0d 0a  2..----..-3404..
2e660 2d 34 37 33 36 0d 0a 2d 35 35 35 30 0d 0a 0d 0a  -4736..-5550....
2e670 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
2e680 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20  ..SELECT - col2 
2e690 2a 20 2b 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 2d  * + + col0 * - -
2e6a0 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 2c 20 2d   col2 AS col1, -
2e6b0 20 63 6f 6c 31 20 2a 20 2b 20 36 35 20 46 52 4f   col1 * + 65 FRO
2e6c0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  M tab0..----..-3
2e6d0 33 31 33 35 0d 0a 2d 35 32 36 35 0d 0a 2d 38 37  3135..-5265..-87
2e6e0 30 30 0d 0a 2d 31 33 36 35 0d 0a 2d 39 35 30 36  00..-1365..-9506
2e6f0 39 37 0d 0a 2d 36 35 0d 0a 0d 0a 6f 6e 6c 79 69  97..-65....onlyi
2e700 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
2e710 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65  yntax: aggregate
2e720 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
2e730 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
2e740 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2e750 31 31 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53  11..SELECT + CAS
2e760 54 28 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20  T( + + COUNT( * 
2e770 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52  ) AS SIGNED ) FR
2e780 4f 4d 20 28 20 74 61 62 30 20 41 53 20 63 6f 72  OM ( tab0 AS cor
2e790 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62  0 CROSS JOIN tab
2e7a0 31 20 41 53 20 63 6f 72 31 20 29 0d 0a 2d 2d 2d  1 AS cor1 )..---
2e7b0 2d 0d 0a 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..9....skipif m
2e7c0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2e7d0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
2e7e0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31  owsort label-101
2e7f0 31 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54  1..SELECT + CAST
2e800 20 28 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a   ( + + COUNT ( *
2e810 20 29 20 41 53 20 49 4e 54 45 47 45 52 20 29 20   ) AS INTEGER ) 
2e820 46 52 4f 4d 20 28 20 74 61 62 30 20 41 53 20 63  FROM ( tab0 AS c
2e830 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
2e840 61 62 31 20 41 53 20 63 6f 72 31 20 29 0d 0a 2d  ab1 AS cor1 )..-
2e850 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 71 75 65 72 79 20  ---..9....query 
2e860 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2e870 54 20 2b 20 2d 20 37 32 20 41 53 20 63 6f 6c 32  T + - 72 AS col2
2e880 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
2e890 72 30 20 57 48 45 52 45 20 63 6f 6c 32 20 49 53  r0 WHERE col2 IS
2e8a0 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
2e8b0 0a 2d 37 32 0d 0a 2d 37 32 0d 0a 2d 37 32 0d 0a  .-72..-72..-72..
2e8c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2e8d0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
2e8e0 43 54 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 63 6f  CT - col1 * + co
2e8f0 6c 30 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74  l0 + col0 FROM t
2e900 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
2e910 2d 0d 0a 2d 32 33 30 30 0d 0a 2d 34 38 36 34 0d  -..-2300..-4864.
2e920 0a 2d 34 39 35 30 0d 0a 0d 0a 71 75 65 72 79 20  .-4950....query 
2e930 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2e940 54 20 41 4c 4c 20 2d 20 37 32 20 2b 20 2d 20 2d  T ALL - 72 + - -
2e950 20 38 34 20 46 52 4f 4d 20 74 61 62 32 20 41 53   84 FROM tab2 AS
2e960 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 0d   cor0..----..12.
2e970 0a 31 32 0d 0a 31 32 0d 0a 0d 0a 71 75 65 72 79  .12..12....query
2e980 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2e990 43 54 20 2b 20 2b 20 63 6f 6c 32 20 2d 20 2b 20  CT + + col2 - + 
2e9a0 28 20 2d 20 63 6f 6c 31 20 29 20 2a 20 2d 20 37  ( - col1 ) * - 7
2e9b0 39 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  9 FROM tab2 AS c
2e9c0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 30 30 36  or0..----..-4006
2e9d0 0d 0a 2d 35 32 33 35 0d 0a 2d 36 30 34 33 0d 0a  ..-5235..-6043..
2e9e0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
2e9f0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
2ea00 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  INCT * FROM tab1
2ea10 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b   AS cor0 WHERE +
2ea20 20 28 20 63 6f 6c 30 20 29 20 2b 20 33 20 2b 20   ( col0 ) + 3 + 
2ea30 2b 20 2b 20 39 20 4e 4f 54 20 42 45 54 57 45 45  + + 9 NOT BETWEE
2ea40 4e 20 2b 20 63 6f 6c 31 20 41 4e 44 20 2d 20 33  N + col1 AND - 3
2ea50 39 20 2f 20 2b 20 2b 20 63 6f 6c 31 0d 0a 2d 2d  9 / + + col1..--
2ea60 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
2ea70 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31  hing to c6c0a411
2ea80 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31  1b36d04dbc811a11
2ea90 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72  e4d54cad....quer
2eaa0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2eab0 45 43 54 20 44 49 53 54 49 4e 43 54 20 28 20 2b  ECT DISTINCT ( +
2eac0 20 63 6f 6c 31 20 29 20 2b 20 2d 20 2b 20 32 39   col1 ) + - + 29
2ead0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
2eae0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
2eaf0 0d 0a 2d 31 35 0d 0a 2d 32 34 0d 0a 31 38 0d 0a  ..-15..-24..18..
2eb00 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2eb10 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2eb20 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
2eb30 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31 38 0d  sort label-1018.
2eb40 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e  .SELECT ALL COUN
2eb50 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46  T( * ) AS col1 F
2eb60 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
2eb70 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c   WHERE NOT + col
2eb80 32 20 2a 20 2d 20 2b 20 63 6f 6c 32 20 49 53 20  2 * - + col2 IS 
2eb90 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
2eba0 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
2ebb0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2ebc0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2ebd0 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31 38 0d 0a  ort label-1018..
2ebe0 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54  SELECT ALL COUNT
2ebf0 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46   ( * ) AS col1 F
2ec00 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
2ec10 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c   WHERE NOT + col
2ec20 32 20 2a 20 2d 20 2b 20 63 6f 6c 32 20 49 53 20  2 * - + col2 IS 
2ec30 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
2ec40 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  0....query III r
2ec50 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
2ec60 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41  LL * FROM tab0 A
2ec70 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20 63  S cor0 WHERE - c
2ec80 6f 6c 32 20 4e 4f 54 20 49 4e 20 28 20 2d 20 31  ol2 NOT IN ( - 1
2ec90 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  2 )..----..9 val
2eca0 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
2ecb0 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61  4b42765dff94eaaa
2ecc0 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d  46040e537fb43b7.
2ecd0 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
2ece0 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
2ecf0 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
2ed00 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
2ed10 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
2ed20 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2ed30 45 43 54 20 63 6f 6c 31 20 2a 20 2d 20 35 32 20  ECT col1 * - 52 
2ed40 2b 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 2b 20 63  + + col2 * - + c
2ed50 6f 6c 30 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  ol0 col2 FROM ta
2ed60 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 32 37 35 0d  b1..----..-5275.
2ed70 0a 2d 35 36 32 34 0d 0a 2d 38 36 33 32 0d 0a 0d  .-5624..-8632...
2ed80 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2ed90 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2eda0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2edb0 6f 72 74 20 6c 61 62 65 6c 2d 31 30 32 31 0d 0a  ort label-1021..
2edc0 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a 20  SELECT COUNT( * 
2edd0 29 20 2b 20 33 20 2b 20 2b 20 28 20 2b 20 2d 20  ) + 3 + + ( + - 
2ede0 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 41 53 20  COUNT( * ) ) AS 
2edf0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col1 FROM tab2..
2ee00 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69  ----..3....skipi
2ee10 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2ee20 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2ee30 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2ee40 31 30 32 31 0d 0a 53 45 4c 45 43 54 20 43 4f 55  1021..SELECT COU
2ee50 4e 54 20 28 20 2a 20 29 20 2b 20 33 20 2b 20 2b  NT ( * ) + 3 + +
2ee60 20 28 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a   ( + - COUNT ( *
2ee70 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   ) ) AS col1 FRO
2ee80 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  M tab2..----..3.
2ee90 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2eea0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44  # CAST syntax: D
2eeb0 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71  ECIMAL type: ..q
2eec0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2eed0 61 62 65 6c 2d 31 30 32 32 0d 0a 53 45 4c 45 43  abel-1022..SELEC
2eee0 54 20 2b 20 41 56 47 20 28 20 2d 20 63 6f 6c 32  T + AVG ( - col2
2eef0 20 29 20 2b 20 2b 20 43 41 53 54 28 20 4e 55 4c   ) + + CAST( NUL
2ef00 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20 46  L AS DECIMAL ) F
2ef10 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
2ef20 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
2ef30 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2ef40 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
2ef50 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 32  owsort label-102
2ef60 32 0d 0a 53 45 4c 45 43 54 20 2b 20 41 56 47 20  2..SELECT + AVG 
2ef70 28 20 2d 20 63 6f 6c 32 20 29 20 2b 20 2b 20 43  ( - col2 ) + + C
2ef80 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45  AST ( NULL AS RE
2ef90 41 4c 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a  AL ) FROM tab1..
2efa0 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  ----..NULL....qu
2efb0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
2efc0 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
2efd0 61 62 30 20 57 48 45 52 45 20 2b 20 36 31 20 2a  ab0 WHERE + 61 *
2efe0 20 2d 20 63 6f 6c 32 20 2d 20 2b 20 63 6f 6c 32   - col2 - + col2
2eff0 20 42 45 54 57 45 45 4e 20 2b 20 2d 20 63 6f 6c   BETWEEN + - col
2f000 30 20 41 4e 44 20 2d 20 63 6f 6c 31 0d 0a 2d 2d  0 AND - col1..--
2f010 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
2f020 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
2f030 53 54 49 4e 43 54 20 2d 20 37 37 20 2b 20 2d 20  STINCT - 77 + - 
2f040 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f  col1 AS col2 FRO
2f050 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab2..----..-1
2f060 32 38 0d 0a 2d 31 34 34 0d 0a 2d 31 35 34 0d 0a  28..-144..-154..
2f070 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2f080 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30  t..SELECT - col0
2f090 20 2a 20 2b 20 32 33 20 2b 20 2d 20 2b 20 63 6f   * + 23 + - + co
2f0a0 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l0 AS col1 FROM 
2f0b0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 32  tab1..----..-122
2f0c0 34 0d 0a 2d 32 30 34 30 0d 0a 2d 32 31 38 34 0d  4..-2040..-2184.
2f0d0 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
2f0e0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
2f0f0 49 4e 43 54 20 63 6f 6c 31 20 41 53 20 63 6f 6c  INCT col1 AS col
2f100 32 2c 20 2d 20 33 35 20 46 52 4f 4d 20 74 61 62  2, - 35 FROM tab
2f110 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 2d 33 35 0d  0..----..1..-35.
2f120 0a 32 31 0d 0a 2d 33 35 0d 0a 38 31 0d 0a 2d 33  .21..-35..81..-3
2f130 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  5....query I row
2f140 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
2f150 54 49 4e 43 54 20 2d 20 33 36 20 41 53 20 63 6f  TINCT - 36 AS co
2f160 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  l0 FROM tab1 WHE
2f170 52 45 20 4e 55 4c 4c 20 3d 20 4e 55 4c 4c 0d 0a  RE NULL = NULL..
2f180 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
2f190 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2f1a0 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  T * FROM tab2 WH
2f1b0 45 52 45 20 2b 20 63 6f 6c 32 20 2d 20 63 6f 6c  ERE + col2 - col
2f1c0 32 20 49 4e 20 28 20 2d 20 63 6f 6c 32 20 29 0d  2 IN ( - col2 ).
2f1d0 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
2f1e0 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
2f1f0 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
2f200 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
2f210 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
2f220 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2f230 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32  t..SELECT + col2
2f240 20 2a 20 2d 20 32 34 20 2a 20 2b 20 2b 20 63 6f   * - 24 * + + co
2f250 6c 32 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  l2 col2 FROM tab
2f260 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31  0 WHERE NOT col1
2f270 20 2a 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d   * col1 IS NULL.
2f280 0a 2d 2d 2d 2d 0d 0a 2d 32 33 35 32 32 34 0d 0a  .----..-235224..
2f290 2d 32 34 30 30 0d 0a 2d 35 33 30 31 36 0d 0a 0d  -2400..-53016...
2f2a0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2f2b0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2f2c0 54 20 35 39 20 2b 20 2b 20 2b 20 28 20 2b 20 2d  T 59 + + + ( + -
2f2d0 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30 20   col0 ) AS col0 
2f2e0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
2f2f0 30 20 57 48 45 52 45 20 4e 4f 54 20 37 31 20 49  0 WHERE NOT 71 I
2f300 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
2f310 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2f320 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
2f330 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
2f340 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
2f350 20 6c 61 62 65 6c 2d 31 30 33 31 0d 0a 53 45 4c   label-1031..SEL
2f360 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ECT * FROM tab2 
2f370 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
2f380 54 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  T CAST( NULL AS 
2f390 53 49 47 4e 45 44 20 29 20 2b 20 2b 20 2d 20 63  SIGNED ) + + - c
2f3a0 6f 6c 32 20 2b 20 2b 20 63 6f 6c 30 20 2b 20 2d  ol2 + + col0 + -
2f3b0 20 2b 20 63 6f 6c 32 20 2f 20 63 6f 6c 30 20 2a   + col2 / col0 *
2f3c0 20 2b 20 63 6f 6c 31 20 2b 20 63 6f 6c 32 20 2f   + col1 + col2 /
2f3d0 20 2b 20 35 36 20 2a 20 2b 20 63 6f 6c 30 20 3c   + 56 * + col0 <
2f3e0 20 2d 20 2b 20 32 38 20 2d 20 2b 20 63 6f 6c 30   - + 28 - + col0
2f3f0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
2f400 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2f410 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2f420 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
2f430 2d 31 30 33 31 0d 0a 53 45 4c 45 43 54 20 2a 20  -1031..SELECT * 
2f440 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
2f450 30 20 57 48 45 52 45 20 4e 4f 54 20 43 41 53 54  0 WHERE NOT CAST
2f460 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
2f470 45 52 20 29 20 2b 20 2b 20 2d 20 63 6f 6c 32 20  ER ) + + - col2 
2f480 2b 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 2b 20 63  + + col0 + - + c
2f490 6f 6c 32 20 2f 20 63 6f 6c 30 20 2a 20 2b 20 63  ol2 / col0 * + c
2f4a0 6f 6c 31 20 2b 20 63 6f 6c 32 20 2f 20 2b 20 35  ol1 + col2 / + 5
2f4b0 36 20 2a 20 2b 20 63 6f 6c 30 20 3c 20 2d 20 2b  6 * + col0 < - +
2f4c0 20 32 38 20 2d 20 2b 20 63 6f 6c 30 0d 0a 2d 2d   28 - + col0..--
2f4d0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  --....query III 
2f4e0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2f4f0 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ALL * FROM tab0 
2f500 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d  cor0 WHERE NOT -
2f510 20 35 31 20 2a 20 2b 20 34 32 20 2b 20 28 20 2b   51 * + 42 + ( +
2f520 20 63 6f 6c 32 20 29 20 49 53 20 4e 4f 54 20 4e   col2 ) IS NOT N
2f530 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  ULL..----....ski
2f540 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
2f550 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
2f560 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
2f570 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
2f580 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72  umns..query II r
2f590 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
2f5a0 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 41  ISTINCT - col2 A
2f5b0 53 20 63 6f 6c 30 2c 20 2b 20 63 6f 6c 30 20 63  S col0, + col0 c
2f5c0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
2f5d0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33   cor0..----..-23
2f5e0 0d 0a 34 36 0d 0a 2d 34 30 0d 0a 36 34 0d 0a 2d  ..46..-40..64..-
2f5f0 35 38 0d 0a 37 35 0d 0a 0d 0a 71 75 65 72 79 20  58..75....query 
2f600 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2f610 54 20 28 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20  T ( col0 ) FROM 
2f620 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 28  tab2 WHERE NOT (
2f630 20 4e 55 4c 4c 20 29 20 49 53 20 4e 4f 54 20 4e   NULL ) IS NOT N
2f640 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 36  ULL..----..46..6
2f650 34 0d 0a 37 35 0d 0a 0d 0a 71 75 65 72 79 20 49  4..75....query I
2f660 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2f670 54 20 41 4c 4c 20 2b 20 2d 20 63 6f 6c 32 20 2a  T ALL + - col2 *
2f680 20 2b 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c 30 20   + col2, + col0 
2f690 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
2f6a0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 30 30 0d 0a  0..----..-1600..
2f6b0 36 34 0d 0a 2d 33 33 36 34 0d 0a 37 35 0d 0a 2d  64..-3364..75..-
2f6c0 35 32 39 0d 0a 34 36 0d 0a 0d 0a 6f 6e 6c 79 69  529..46....onlyi
2f6d0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
2f6e0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
2f6f0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2f700 62 65 6c 2d 31 30 33 36 0d 0a 53 45 4c 45 43 54  bel-1036..SELECT
2f710 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 43 4f   DISTINCT - - CO
2f720 55 4e 54 28 20 2d 20 2b 20 63 6f 6c 32 20 29 20  UNT( - + col2 ) 
2f730 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
2f740 30 20 57 48 45 52 45 20 33 35 20 49 53 20 4e 55  0 WHERE 35 IS NU
2f750 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73  LL..----..0....s
2f760 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2f770 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2f780 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2f790 62 65 6c 2d 31 30 33 36 0d 0a 53 45 4c 45 43 54  bel-1036..SELECT
2f7a0 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 43 4f   DISTINCT - - CO
2f7b0 55 4e 54 20 28 20 2d 20 2b 20 63 6f 6c 32 20 29  UNT ( - + col2 )
2f7c0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
2f7d0 72 30 20 57 48 45 52 45 20 33 35 20 49 53 20 4e  r0 WHERE 35 IS N
2f7e0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  ULL..----..0....
2f7f0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
2f800 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2f810 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2f820 72 74 20 6c 61 62 65 6c 2d 31 30 33 37 0d 0a 53  rt label-1037..S
2f830 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 35 38  ELECT ALL + + 58
2f840 20 2a 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20   * COUNT( * ) * 
2f850 2d 20 2b 20 35 38 20 46 52 4f 4d 20 74 61 62 30  - + 58 FROM tab0
2f860 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2f870 2d 31 30 30 39 32 0d 0a 0d 0a 73 6b 69 70 69 66  -10092....skipif
2f880 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2f890 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2f8a0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2f8b0 30 33 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  037..SELECT ALL 
2f8c0 2b 20 2b 20 35 38 20 2a 20 43 4f 55 4e 54 20 28  + + 58 * COUNT (
2f8d0 20 2a 20 29 20 2a 20 2d 20 2b 20 35 38 20 46 52   * ) * - + 58 FR
2f8e0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
2f8f0 0a 2d 2d 2d 2d 0d 0a 2d 31 30 30 39 32 0d 0a 0d  .----..-10092...
2f900 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2f910 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
2f920 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
2f930 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2f940 6c 2d 31 30 33 38 0d 0a 53 45 4c 45 43 54 20 43  l-1038..SELECT C
2f950 41 53 54 28 20 63 6f 6c 32 20 41 53 20 53 49 47  AST( col2 AS SIG
2f960 4e 45 44 20 29 20 2b 20 2d 20 2b 20 63 6f 6c 30  NED ) + - + col0
2f970 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
2f980 0d 0a 2d 31 37 0d 0a 2d 32 33 0d 0a 2d 32 34 0d  ..-17..-23..-24.
2f990 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2f9a0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2f9b0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2f9c0 74 20 6c 61 62 65 6c 2d 31 30 33 38 0d 0a 53 45  t label-1038..SE
2f9d0 4c 45 43 54 20 43 41 53 54 20 28 20 63 6f 6c 32  LECT CAST ( col2
2f9e0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20   AS INTEGER ) + 
2f9f0 2d 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  - + col0 FROM ta
2fa00 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37 0d 0a 2d  b2..----..-17..-
2fa10 32 33 0d 0a 2d 32 34 0d 0a 0d 0a 71 75 65 72 79  23..-24....query
2fa20 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2fa30 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2a 20 63 6f  CT ALL col1 * co
2fa40 6c 30 20 2a 20 63 6f 6c 32 20 2b 20 2d 20 2d 20  l0 * col2 + - - 
2fa50 63 6f 6c 32 20 2a 20 63 6f 6c 30 20 46 52 4f 4d  col2 * col0 FROM
2fa60 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 31   tab0..----..191
2fa70 34 30 0d 0a 31 39 32 30 36 0d 0a 35 37 38 31 30  40..19206..57810
2fa80 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
2fa90 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
2faa0 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
2fab0 4e 4f 54 20 28 20 4e 55 4c 4c 20 3e 20 36 31 20  NOT ( NULL > 61 
2fac0 2f 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a  / col2 )..----..
2fad0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2fae0 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
2faf0 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
2fb00 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2fb10 65 6c 2d 31 30 34 31 0d 0a 53 45 4c 45 43 54 20  el-1041..SELECT 
2fb20 36 37 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  67 AS col0 FROM 
2fb30 74 61 62 32 2c 20 74 61 62 32 20 41 53 20 63 6f  tab2, tab2 AS co
2fb40 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 2b  r0 WHERE NOT - +
2fb50 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
2fb60 49 47 4e 45 44 20 29 20 49 53 20 4e 55 4c 4c 0d  IGNED ) IS NULL.
2fb70 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
2fb80 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2fb90 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2fba0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2fbb0 34 31 0d 0a 53 45 4c 45 43 54 20 36 37 20 41 53  41..SELECT 67 AS
2fbc0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 2c   col0 FROM tab2,
2fbd0 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
2fbe0 45 52 45 20 4e 4f 54 20 2d 20 2b 20 43 41 53 54  ERE NOT - + CAST
2fbf0 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
2fc00 45 52 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  ER ) IS NULL..--
2fc10 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
2fc20 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
2fc30 53 54 49 4e 43 54 20 2b 20 37 35 20 2a 20 63 6f  STINCT + 75 * co
2fc40 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l1 FROM tab0..--
2fc50 2d 2d 0d 0a 31 35 37 35 0d 0a 36 30 37 35 0d 0a  --..1575..6075..
2fc60 37 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  75....onlyif mys
2fc70 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
2fc80 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
2fc90 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2fca0 30 34 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  043..SELECT ALL 
2fcb0 2b 20 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20  + MAX( DISTINCT 
2fcc0 2d 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61  - col1 ) FROM ta
2fcd0 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b1 cor0..----..-
2fce0 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  5....skipif mysq
2fcf0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2fd00 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2fd10 6f 72 74 20 6c 61 62 65 6c 2d 31 30 34 33 0d 0a  ort label-1043..
2fd20 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d 41 58  SELECT ALL + MAX
2fd30 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f   ( DISTINCT - co
2fd40 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 31 20 63  l1 ) FROM tab1 c
2fd50 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 0d 0a 0d  or0..----..-5...
2fd60 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
2fd70 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
2fd80 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
2fd90 72 30 20 57 48 45 52 45 20 63 6f 6c 30 20 2f 20  r0 WHERE col0 / 
2fda0 2d 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c  - + col2 + + col
2fdb0 31 20 2a 20 2b 20 63 6f 6c 32 20 49 53 20 4e 55  1 * + col2 IS NU
2fdc0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
2fdd0 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
2fde0 4c 45 43 54 20 37 31 2c 20 63 6f 6c 32 20 2b 20  LECT 71, col2 + 
2fdf0 2d 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32  - - col2 AS col2
2fe00 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
2fe10 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 31 0d 0a 31 31  r0..----..71..11
2fe20 38 0d 0a 37 31 0d 0a 31 33 36 0d 0a 37 31 0d 0a  8..71..136..71..
2fe30 31 39 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  192....query III
2fe40 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2fe50 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
2fe60 63 6f 72 30 20 57 48 45 52 45 20 2d 20 34 36 20  cor0 WHERE - 46 
2fe70 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  > NULL..----....
2fe80 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
2fe90 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
2fea0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
2feb0 30 20 57 48 45 52 45 20 2b 20 63 6f 6c 31 20 2d  0 WHERE + col1 -
2fec0 20 2d 20 31 32 20 42 45 54 57 45 45 4e 20 2d 20   - 12 BETWEEN - 
2fed0 63 6f 6c 32 20 2d 20 2d 20 38 34 20 41 4e 44 20  col2 - - 84 AND 
2fee0 37 31 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 31 34  71..----..51..14
2fef0 0d 0a 39 36 0d 0a 39 31 0d 0a 34 37 0d 0a 36 38  ..96..91..47..68
2ff00 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2ff10 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
2ff20 2b 20 38 31 20 2b 20 32 38 20 46 52 4f 4d 20 74  + 81 + 28 FROM t
2ff30 61 62 30 20 57 48 45 52 45 20 28 20 4e 55 4c 4c  ab0 WHERE ( NULL
2ff40 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d   ) IS NULL..----
2ff50 0d 0a 31 30 39 0d 0a 31 30 39 0d 0a 31 30 39 0d  ..109..109..109.
2ff60 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
2ff70 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
2ff80 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
2ff90 4f 54 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 31  OT col0 + + col1
2ffa0 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e   BETWEEN NULL AN
2ffb0 44 20 28 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c  D ( col1 * - col
2ffc0 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  2 )..----..9 val
2ffd0 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37  ues hashing to 7
2ffe0 35 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38  5c998aa53ac83218
2fff0 63 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d  cbf2feb962d0a49.
30000 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
30010 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
30020 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
30030 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35 30  wsort label-1050
30040 0d 0a 53 45 4c 45 43 54 20 2d 20 39 37 20 2a 20  ..SELECT - 97 * 
30050 2d 20 28 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  - ( + COUNT( * )
30060 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d   ) FROM tab1..--
30070 2d 2d 0d 0a 32 39 31 0d 0a 0d 0a 73 6b 69 70 69  --..291....skipi
30080 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
30090 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
300a0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
300b0 31 30 35 30 0d 0a 53 45 4c 45 43 54 20 2d 20 39  1050..SELECT - 9
300c0 37 20 2a 20 2d 20 28 20 2b 20 43 4f 55 4e 54 20  7 * - ( + COUNT 
300d0 28 20 2a 20 29 20 29 20 46 52 4f 4d 20 74 61 62  ( * ) ) FROM tab
300e0 31 0d 0a 2d 2d 2d 2d 0d 0a 32 39 31 0d 0a 0d 0a  1..----..291....
300f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
30100 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2d  .SELECT + col1 -
30110 20 63 6f 6c 32 20 2a 20 2d 20 38 30 20 46 52 4f   col2 * - 80 FRO
30120 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 38  M tab2..----..18
30130 39 31 0d 0a 33 32 37 37 0d 0a 34 37 30 37 0d 0a  91..3277..4707..
30140 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
30150 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67   CAST syntax: ag
30160 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
30170 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a  DECIMAL type: ..
30180 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
30190 6c 61 62 65 6c 2d 31 30 35 32 0d 0a 53 45 4c 45  label-1052..SELE
301a0 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 28 20  CT ALL + COUNT( 
301b0 2a 20 29 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c  * ) + CAST( NULL
301c0 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20 63 6f   AS DECIMAL ) co
301d0 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l0 FROM tab1..--
301e0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
301f0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
30200 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
30210 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
30220 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
30230 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
30240 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
30250 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
30260 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35 32 0d 0a  ort label-1052..
30270 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55  SELECT ALL + COU
30280 4e 54 20 28 20 2a 20 29 20 2b 20 43 41 53 54 20  NT ( * ) + CAST 
30290 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29  ( NULL AS REAL )
302a0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
302b0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  .----..NULL....q
302c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
302d0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
302e0 32 34 20 2a 20 2d 20 63 6f 6c 32 20 41 53 20 63  24 * - col2 AS c
302f0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 57 48  ol2 FROM tab0 WH
30300 45 52 45 20 4e 55 4c 4c 20 3e 3d 20 28 20 37 33  ERE NULL >= ( 73
30310 20 2b 20 2d 20 32 30 20 29 0d 0a 2d 2d 2d 2d 0d   + - 20 )..----.
30320 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
30330 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
30340 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
30350 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35 34  wsort label-1054
30360 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20  ..SELECT COUNT( 
30370 41 4c 4c 20 2d 20 63 6f 6c 32 20 29 20 2a 20 2d  ALL - col2 ) * -
30380 20 34 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   4 AS col0 FROM 
30390 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 0d  tab2..----..-12.
303a0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
303b0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
303c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
303d0 74 20 6c 61 62 65 6c 2d 31 30 35 34 0d 0a 53 45  t label-1054..SE
303e0 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 41 4c 4c  LECT COUNT ( ALL
303f0 20 2d 20 63 6f 6c 32 20 29 20 2a 20 2d 20 34 20   - col2 ) * - 4 
30400 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
30410 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 0d 0a 0d 0a  2..----..-12....
30420 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
30430 0a 53 45 4c 45 43 54 20 33 33 20 46 52 4f 4d 20  .SELECT 33 FROM 
30440 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2d  tab1 WHERE NOT -
30450 20 63 6f 6c 32 20 3d 20 4e 55 4c 4c 0d 0a 2d 2d   col2 = NULL..--
30460 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  --....query III 
30470 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
30480 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ALL * FROM tab0 
30490 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 31  WHERE NOT - col1
304a0 20 49 4e 20 28 20 2d 20 63 6f 6c 30 20 29 0d 0a   IN ( - col0 )..
304b0 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
304c0 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37  ashing to c4b427
304d0 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30  65dff94eaaa46040
304e0 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 6f 6e  e537fb43b7....on
304f0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
30500 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
30510 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
30520 20 6c 61 62 65 6c 2d 31 30 35 37 0d 0a 53 45 4c   label-1057..SEL
30530 45 43 54 20 28 20 2d 20 4d 49 4e 28 20 39 20 29  ECT ( - MIN( 9 )
30540 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
30550 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a  tab1..----..-9..
30560 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
30570 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
30580 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
30590 20 6c 61 62 65 6c 2d 31 30 35 37 0d 0a 53 45 4c   label-1057..SEL
305a0 45 43 54 20 28 20 2d 20 4d 49 4e 20 28 20 39 20  ECT ( - MIN ( 9 
305b0 29 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ) ) AS col0 FROM
305c0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d   tab1..----..-9.
305d0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
305e0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
305f0 4e 43 54 20 37 20 2a 20 2b 20 63 6f 6c 30 20 41  NCT 7 * + col0 A
30600 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
30610 0d 0a 2d 2d 2d 2d 0d 0a 33 32 32 0d 0a 34 34 38  ..----..322..448
30620 0d 0a 35 32 35 0d 0a 0d 0a 71 75 65 72 79 20 49  ..525....query I
30630 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
30640 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
30650 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f  OM tab1 WHERE NO
30660 54 20 35 36 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  T 56 IS NOT NULL
30670 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
30680 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
30690 54 20 41 4c 4c 20 2b 20 35 36 20 2a 20 2b 20 63  T ALL + 56 * + c
306a0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48  ol2 FROM tab1 WH
306b0 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20 2b 20 2b  ERE NOT col1 + +
306c0 20 63 6f 6c 30 20 3c 3d 20 28 20 4e 55 4c 4c 20   col0 <= ( NULL 
306d0 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  )..----....query
306e0 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
306f0 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
30700 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20   WHERE NULL NOT 
30710 42 45 54 57 45 45 4e 20 63 6f 6c 30 20 41 4e 44  BETWEEN col0 AND
30720 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   col1..----....o
30730 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
30740 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
30750 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
30760 74 20 6c 61 62 65 6c 2d 31 30 36 32 0d 0a 53 45  t label-1062..SE
30770 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
30780 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 4d 41 58  COUNT( * ) * MAX
30790 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20  ( DISTINCT col2 
307a0 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
307b0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 38 38 0d 0a  ab1..----..288..
307c0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
307d0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
307e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
307f0 20 6c 61 62 65 6c 2d 31 30 36 32 0d 0a 53 45 4c   label-1062..SEL
30800 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43  ECT DISTINCT + C
30810 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 4d 41 58  OUNT ( * ) * MAX
30820 20 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32   ( DISTINCT col2
30830 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
30840 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 38 38 0d  tab1..----..288.
30850 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
30860 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
30870 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
30880 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
30890 6c 61 62 65 6c 2d 31 30 36 33 0d 0a 53 45 4c 45  label-1063..SELE
308a0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41  CT * FROM tab0 A
308b0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
308c0 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45   NULL NOT BETWEE
308d0 4e 20 28 20 63 6f 6c 30 20 2a 20 2b 20 43 41 53  N ( col0 * + CAS
308e0 54 28 20 2b 20 63 6f 6c 31 20 41 53 20 53 49 47  T( + col1 AS SIG
308f0 4e 45 44 20 29 20 2b 20 38 38 20 29 20 41 4e 44  NED ) + 88 ) AND
30900 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73   col2..----....s
30910 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
30920 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
30930 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
30940 6c 61 62 65 6c 2d 31 30 36 33 0d 0a 53 45 4c 45  label-1063..SELE
30950 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41  CT * FROM tab0 A
30960 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
30970 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45   NULL NOT BETWEE
30980 4e 20 28 20 63 6f 6c 30 20 2a 20 2b 20 43 41 53  N ( col0 * + CAS
30990 54 20 28 20 2b 20 63 6f 6c 31 20 41 53 20 49 4e  T ( + col1 AS IN
309a0 54 45 47 45 52 20 29 20 2b 20 38 38 20 29 20 41  TEGER ) + 88 ) A
309b0 4e 44 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d  ND col2..----...
309c0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
309d0 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
309e0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
309f0 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 30 20  HERE NOT - col0 
30a00 3c 3e 20 28 20 63 6f 6c 31 20 2a 20 2d 20 63 6f  <> ( col1 * - co
30a10 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 37 0d 0a  l0 )..----..97..
30a20 31 0d 0a 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49  1..99....query I
30a30 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
30a40 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41  CT * FROM tab2 A
30a50 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
30a60 20 28 20 63 6f 6c 31 20 2b 20 63 6f 6c 32 20 29   ( col1 + col2 )
30a70 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
30a80 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
30a90 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
30aa0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
30ab0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
30ac0 30 36 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  066..SELECT DIST
30ad0 49 4e 43 54 20 43 4f 55 4e 54 28 20 41 4c 4c 20  INCT COUNT( ALL 
30ae0 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 32 20 46  col1 ) AS col2 F
30af0 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d  ROM tab0 cor0..-
30b00 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66  ---..3....skipif
30b10 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
30b20 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
30b30 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
30b40 30 36 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  066..SELECT DIST
30b50 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 41 4c 4c  INCT COUNT ( ALL
30b60 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 32 20   col1 ) AS col2 
30b70 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a  FROM tab0 cor0..
30b80 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69  ----..3....onlyi
30b90 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
30ba0 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74  yntax: DECIMAL t
30bb0 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49  ype: ..query III
30bc0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
30bd0 30 36 37 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  067..SELECT * FR
30be0 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
30bf0 54 20 39 35 20 2b 20 2b 20 37 35 20 42 45 54 57  T 95 + + 75 BETW
30c00 45 45 4e 20 2d 20 38 32 20 41 4e 44 20 2d 20 43  EEN - 82 AND - C
30c10 41 53 54 28 20 37 30 20 41 53 20 44 45 43 49 4d  AST( 70 AS DECIM
30c20 41 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  AL )..----..9 va
30c30 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
30c40 63 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61  c4b42765dff94eaa
30c50 61 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37  a46040e537fb43b7
30c60 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
30c70 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
30c80 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  e..query III row
30c90 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 36 37 0d  sort label-1067.
30ca0 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
30cb0 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 39 35  ab0 WHERE NOT 95
30cc0 20 2b 20 2b 20 37 35 20 42 45 54 57 45 45 4e 20   + + 75 BETWEEN 
30cd0 2d 20 38 32 20 41 4e 44 20 2d 20 43 41 53 54 20  - 82 AND - CAST 
30ce0 28 20 37 30 20 41 53 20 52 45 41 4c 20 29 0d 0a  ( 70 AS REAL )..
30cf0 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
30d00 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37  ashing to c4b427
30d10 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30  65dff94eaaa46040
30d20 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75  e537fb43b7....qu
30d30 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
30d40 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
30d50 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52   col0 AS col0 FR
30d60 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
30d70 54 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20 4e  T NULL BETWEEN N
30d80 55 4c 4c 20 41 4e 44 20 28 20 63 6f 6c 32 20 29  ULL AND ( col2 )
30d90 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
30da0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
30db0 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  T DISTINCT + col
30dc0 32 20 2a 20 35 32 20 41 53 20 63 6f 6c 30 20 46  2 * 52 AS col0 F
30dd0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
30de0 0d 0a 2d 2d 2d 2d 0d 0a 33 30 36 38 0d 0a 33 35  ..----..3068..35
30df0 33 36 0d 0a 34 39 39 32 0d 0a 0d 0a 71 75 65 72  36..4992....quer
30e00 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
30e10 45 43 54 20 41 4c 4c 20 2b 20 37 30 20 2a 20 36  ECT ALL + 70 * 6
30e20 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
30e30 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 33 34 30 0d  or0..----..4340.
30e40 0a 34 33 34 30 0d 0a 34 33 34 30 0d 0a 0d 0a 73  .4340..4340....s
30e50 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
30e60 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
30e70 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
30e80 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
30e90 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
30ea0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
30eb0 41 4c 4c 20 2b 20 63 6f 6c 31 20 63 6f 6c 30 20  ALL + col1 col0 
30ec0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
30ed0 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e 4f 54  0 WHERE NULL NOT
30ee0 20 49 4e 20 28 20 63 6f 6c 32 20 2b 20 2b 20 36   IN ( col2 + + 6
30ef0 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  0 )..----....onl
30f00 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
30f10 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
30f20 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
30f30 6c 61 62 65 6c 2d 31 30 37 32 0d 0a 53 45 4c 45  label-1072..SELE
30f40 43 54 20 41 4c 4c 20 2b 20 53 55 4d 28 20 33 31  CT ALL + SUM( 31
30f50 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
30f60 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
30f70 2d 2d 0d 0a 39 33 0d 0a 0d 0a 73 6b 69 70 69 66  --..93....skipif
30f80 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
30f90 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
30fa0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
30fb0 30 37 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  072..SELECT ALL 
30fc0 2b 20 53 55 4d 20 28 20 33 31 20 29 20 41 53 20  + SUM ( 31 ) AS 
30fd0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
30fe0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 33  S cor0..----..93
30ff0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
31000 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
31010 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53  L * FROM tab1 AS
31020 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 30   cor0 WHERE col0
31030 20 2a 20 2b 20 31 39 20 3d 20 2b 20 33 38 20 2b   * + 19 = + 38 +
31040 20 28 20 63 6f 6c 30 20 29 20 2f 20 63 6f 6c 32   ( col0 ) / col2
31050 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
31060 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
31070 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
31080 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
31090 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
310a0 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
310b0 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 37  rt..SELECT + ( 7
310c0 38 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  8 ) col1 FROM ta
310d0 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
310e0 0d 0a 37 38 0d 0a 37 38 0d 0a 37 38 0d 0a 0d 0a  ..78..78..78....
310f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
31100 0a 53 45 4c 45 43 54 20 2b 20 39 33 20 2a 20 63  .SELECT + 93 * c
31110 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
31120 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
31130 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  NULL IS NOT NULL
31140 0d 0a 2d 2d 2d 2d 0d 0a 34 37 34 33 0d 0a 36 32  ..----..4743..62
31150 33 31 0d 0a 37 31 36 31 0d 0a 0d 0a 71 75 65 72  31..7161....quer
31160 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
31170 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 46 52 4f  ECT ALL col0 FRO
31180 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
31190 48 45 52 45 20 2b 20 32 37 20 49 53 20 4e 55 4c  HERE + 27 IS NUL
311a0 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
311b0 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
311c0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
311d0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
311e0 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32  0 WHERE NOT col2
311f0 20 2a 20 2b 20 32 33 20 2b 20 63 6f 6c 30 20 42   * + 23 + col0 B
31200 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20  ETWEEN NULL AND 
31210 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
31220 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
31230 45 4c 45 43 54 20 41 4c 4c 20 2b 20 34 37 20 2a  ELECT ALL + 47 *
31240 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   - col2 FROM tab
31250 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
31260 0a 2d 31 30 38 31 0d 0a 2d 31 38 38 30 0d 0a 2d  .-1081..-1880..-
31270 32 37 32 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20  2726....query I 
31280 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
31290 36 33 20 2a 20 2d 20 28 20 63 6f 6c 31 20 29 20  63 * - ( col1 ) 
312a0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
312b0 0a 2d 33 32 31 33 0d 0a 2d 34 32 32 31 0d 0a 2d  .-3213..-4221..-
312c0 34 38 35 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20  4851....query I 
312d0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
312e0 32 39 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  29 FROM tab1 WHE
312f0 52 45 20 28 20 4e 55 4c 4c 20 29 20 4e 4f 54 20  RE ( NULL ) NOT 
31300 49 4e 20 28 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d  IN ( + col1 )..-
31310 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
31320 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
31330 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
31340 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
31350 6f 72 74 20 6c 61 62 65 6c 2d 31 30 38 31 0d 0a  ort label-1081..
31360 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
31370 62 32 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20  b2 WHERE ( NULL 
31380 29 20 4e 4f 54 20 49 4e 20 28 20 2d 20 43 41 53  ) NOT IN ( - CAS
31390 54 28 20 63 6f 6c 30 20 41 53 20 53 49 47 4e 45  T( col0 AS SIGNE
313a0 44 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73  D ) )..----....s
313b0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
313c0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
313d0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
313e0 6c 61 62 65 6c 2d 31 30 38 31 0d 0a 53 45 4c 45  label-1081..SELE
313f0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  CT * FROM tab2 W
31400 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 4e 4f  HERE ( NULL ) NO
31410 54 20 49 4e 20 28 20 2d 20 43 41 53 54 20 28 20  T IN ( - CAST ( 
31420 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45 52 20  col0 AS INTEGER 
31430 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ) )..----....que
31440 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
31450 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
31460 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
31470 45 20 4e 4f 54 20 2b 20 35 31 20 2b 20 2b 20 34  E NOT + 51 + + 4
31480 34 20 42 45 54 57 45 45 4e 20 28 20 2d 20 28 20  4 BETWEEN ( - ( 
31490 2d 20 63 6f 6c 30 20 29 20 29 20 41 4e 44 20 2b  - col0 ) ) AND +
314a0 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   col1..----..9 v
314b0 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
314c0 20 63 34 62 34 32 37 36 35 64 66 66 39 34 65 61   c4b42765dff94ea
314d0 61 61 34 36 30 34 30 65 35 33 37 66 62 34 33 62  aa46040e537fb43b
314e0 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  7....query I row
314f0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 28 20 63  sort..SELECT ( c
31500 6f 6c 31 20 29 20 2a 20 63 6f 6c 30 20 41 53 20  ol1 ) * col0 AS 
31510 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col2 FROM tab2..
31520 2d 2d 2d 2d 0d 0a 32 33 34 36 0d 0a 34 39 32 38  ----..2346..4928
31530 0d 0a 35 30 32 35 0d 0a 0d 0a 71 75 65 72 79 20  ..5025....query 
31540 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
31550 54 20 41 4c 4c 20 63 6f 6c 30 20 2a 20 2b 20 63  T ALL col0 * + c
31560 6f 6c 31 20 2a 20 2b 20 28 20 2b 20 28 20 2b 20  ol1 * + ( + ( + 
31570 63 6f 6c 31 20 29 20 29 20 2b 20 28 20 2d 20 63  col1 ) ) + ( - c
31580 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 30 0d  ol1 ) FROM tab0.
31590 0a 2d 2d 2d 2d 0d 0a 33 38 33 34 36 0d 0a 39 36  .----..38346..96
315a0 0d 0a 39 38 33 33 34 0d 0a 0d 0a 71 75 65 72 79  ..98334....query
315b0 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
315c0 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
315d0 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 4e  tab2 WHERE NOT N
315e0 55 4c 4c 20 4e 4f 54 20 49 4e 20 28 20 63 6f 6c  ULL NOT IN ( col
315f0 30 20 2a 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d  0 * col0 )..----
31600 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
31610 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
31620 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
31630 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
31640 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
31650 20 6c 61 62 65 6c 2d 31 30 38 36 0d 0a 53 45 4c   label-1086..SEL
31660 45 43 54 20 41 4c 4c 20 2b 20 53 55 4d 28 20 41  ECT ALL + SUM( A
31670 4c 4c 20 28 20 2b 20 63 6f 6c 32 20 29 20 29 20  LL ( + col2 ) ) 
31680 2a 20 2d 20 32 20 2d 20 43 41 53 54 28 20 2d 20  * - 2 - CAST( - 
31690 4d 49 4e 28 20 32 30 20 29 20 41 53 20 53 49 47  MIN( 20 ) AS SIG
316a0 4e 45 44 20 29 20 41 53 20 63 6f 6c 31 20 46 52  NED ) AS col1 FR
316b0 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
316c0 54 20 2d 20 63 6f 6c 31 20 4e 4f 54 20 42 45 54  T - col1 NOT BET
316d0 57 45 45 4e 20 2d 20 33 30 20 2b 20 28 20 2d 20  WEEN - 30 + ( - 
316e0 63 6f 6c 31 20 29 20 41 4e 44 20 2b 20 31 33 20  col1 ) AND + 13 
316f0 2a 20 32 38 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32 32  * 28..----..-222
31700 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
31710 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
31720 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
31730 72 74 20 6c 61 62 65 6c 2d 31 30 38 36 0d 0a 53  rt label-1086..S
31740 45 4c 45 43 54 20 41 4c 4c 20 2b 20 53 55 4d 20  ELECT ALL + SUM 
31750 28 20 41 4c 4c 20 28 20 2b 20 63 6f 6c 32 20 29  ( ALL ( + col2 )
31760 20 29 20 2a 20 2d 20 32 20 2d 20 43 41 53 54 20   ) * - 2 - CAST 
31770 28 20 2d 20 4d 49 4e 20 28 20 32 30 20 29 20 41  ( - MIN ( 20 ) A
31780 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 63  S INTEGER ) AS c
31790 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 57 48  ol1 FROM tab2 WH
317a0 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 31 20 4e  ERE NOT - col1 N
317b0 4f 54 20 42 45 54 57 45 45 4e 20 2d 20 33 30 20  OT BETWEEN - 30 
317c0 2b 20 28 20 2d 20 63 6f 6c 31 20 29 20 41 4e 44  + ( - col1 ) AND
317d0 20 2b 20 31 33 20 2a 20 32 38 0d 0a 2d 2d 2d 2d   + 13 * 28..----
317e0 0d 0a 2d 32 32 32 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..-222....onlyif
317f0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
31800 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
31810 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72  e: ..query III r
31820 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 38  owsort label-108
31830 37 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  7..SELECT * FROM
31840 20 74 61 62 31 20 57 48 45 52 45 20 2d 20 28 20   tab1 WHERE - ( 
31850 63 6f 6c 31 20 29 20 2d 20 43 41 53 54 28 20 4e  col1 ) - CAST( N
31860 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
31870 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
31880 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  -....skipif mysq
31890 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
318a0 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  le..query III ro
318b0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 38 37  wsort label-1087
318c0 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
318d0 74 61 62 31 20 57 48 45 52 45 20 2d 20 28 20 63  tab1 WHERE - ( c
318e0 6f 6c 31 20 29 20 2d 20 43 41 53 54 20 28 20 4e  ol1 ) - CAST ( N
318f0 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
31900 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
31910 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
31920 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
31930 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69  yntax: DIV for i
31940 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
31950 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
31960 72 74 20 6c 61 62 65 6c 2d 31 30 38 38 0d 0a 53  rt label-1088..S
31970 45 4c 45 43 54 20 2b 20 53 55 4d 28 20 2b 20 36  ELECT + SUM( + 6
31980 20 29 20 44 49 56 20 2b 20 31 37 20 63 6f 6c 31   ) DIV + 17 col1
31990 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
319a0 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..1....skipif my
319b0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
319c0 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
319d0 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
319e0 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
319f0 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
31a00 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
31a10 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
31a20 61 62 65 6c 2d 31 30 38 38 0d 0a 53 45 4c 45 43  abel-1088..SELEC
31a30 54 20 2b 20 53 55 4d 20 28 20 2b 20 36 20 29 20  T + SUM ( + 6 ) 
31a40 2f 20 2b 20 31 37 20 63 6f 6c 31 20 46 52 4f 4d  / + 17 col1 FROM
31a50 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a   tab2..----..1..
31a60 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
31a70 74 0d 0a 53 45 4c 45 43 54 20 39 37 20 41 53 20  t..SELECT 97 AS 
31a80 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 57  col0 FROM tab2 W
31a90 48 45 52 45 20 2b 20 63 6f 6c 30 20 2d 20 63 6f  HERE + col0 - co
31aa0 6c 32 20 2a 20 2b 20 28 20 2d 20 39 36 20 29 20  l2 * + ( - 96 ) 
31ab0 3e 20 28 20 2b 20 39 32 20 29 0d 0a 2d 2d 2d 2d  > ( + 92 )..----
31ac0 0d 0a 39 37 0d 0a 39 37 0d 0a 39 37 0d 0a 0d 0a  ..97..97..97....
31ad0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
31ae0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
31af0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
31b00 72 74 20 6c 61 62 65 6c 2d 31 30 39 30 0d 0a 53  rt label-1090..S
31b10 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a  ELECT - COUNT( *
31b20 20 29 20 2b 20 2d 20 2b 20 31 30 20 46 52 4f 4d   ) + - + 10 FROM
31b30 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33   tab0..----..-13
31b40 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
31b50 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
31b60 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
31b70 72 74 20 6c 61 62 65 6c 2d 31 30 39 30 0d 0a 53  rt label-1090..S
31b80 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 20 28 20  ELECT - COUNT ( 
31b90 2a 20 29 20 2b 20 2d 20 2b 20 31 30 20 46 52 4f  * ) + - + 10 FRO
31ba0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab0..----..-1
31bb0 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  3....query III r
31bc0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
31bd0 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
31be0 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20  ab0 WHERE NOT ( 
31bf0 4e 55 4c 4c 20 29 20 3c 3e 20 34 34 0d 0a 2d 2d  NULL ) <> 44..--
31c00 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
31c10 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
31c20 53 54 49 4e 43 54 20 2d 20 35 32 20 2a 20 2d 20  STINCT - 52 * - 
31c30 2b 20 28 20 2d 20 63 6f 6c 31 20 29 20 2b 20 63  + ( - col1 ) + c
31c40 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  ol2 FROM tab1 co
31c50 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30 31 0d 0a  r0..----..-201..
31c60 2d 32 33 37 36 0d 0a 2d 36 33 32 0d 0a 0d 0a 71  -2376..-632....q
31c70 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
31c80 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
31c90 35 36 20 2b 20 2d 20 63 6f 6c 32 20 2a 20 2d 20  56 + - col2 * - 
31ca0 31 38 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  18 FROM tab1 AS 
31cb0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 31 38  cor0..----..1118
31cc0 0d 0a 31 32 38 30 0d 0a 31 37 38 34 0d 0a 0d 0a  ..1280..1784....
31cd0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
31ce0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
31cf0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41  CT * FROM tab0 A
31d00 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c  S cor0 WHERE NUL
31d10 4c 20 42 45 54 57 45 45 4e 20 63 6f 6c 30 20 2a  L BETWEEN col0 *
31d20 20 63 6f 6c 30 20 41 4e 44 20 28 20 63 6f 6c 32   col0 AND ( col2
31d30 20 2a 20 2d 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d   * - col2 )..---
31d40 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
31d50 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
31d60 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
31d70 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
31d80 6c 61 62 65 6c 2d 31 30 39 35 0d 0a 53 45 4c 45  label-1095..SELE
31d90 43 54 20 44 49 53 54 49 4e 43 54 20 38 31 20 2a  CT DISTINCT 81 *
31da0 20 2d 20 2b 20 33 32 20 2b 20 43 41 53 54 28 20   - + 32 + CAST( 
31db0 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
31dc0 20 2b 20 2b 20 41 56 47 20 28 20 2d 20 63 6f 6c   + + AVG ( - col
31dd0 32 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  2 ) col2 FROM ta
31de0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
31df0 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
31e00 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
31e10 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
31e20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
31e30 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
31e40 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
31e50 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
31e60 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
31e70 74 20 6c 61 62 65 6c 2d 31 30 39 35 0d 0a 53 45  t label-1095..SE
31e80 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 38 31  LECT DISTINCT 81
31e90 20 2a 20 2d 20 2b 20 33 32 20 2b 20 43 41 53 54   * - + 32 + CAST
31ea0 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
31eb0 45 52 20 29 20 2b 20 2b 20 41 56 47 20 28 20 2d  ER ) + + AVG ( -
31ec0 20 63 6f 6c 32 20 29 20 63 6f 6c 32 20 46 52 4f   col2 ) col2 FRO
31ed0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
31ee0 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  ----..NULL....qu
31ef0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
31f00 45 4c 45 43 54 20 41 4c 4c 20 34 37 20 41 53 20  ELECT ALL 47 AS 
31f10 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
31f20 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  S cor0 CROSS JOI
31f30 4e 20 74 61 62 32 20 41 53 20 63 6f 72 31 0d 0a  N tab2 AS cor1..
31f40 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
31f50 61 73 68 69 6e 67 20 74 6f 20 34 66 65 31 39 32  ashing to 4fe192
31f60 66 32 39 36 37 39 31 65 31 65 34 30 65 61 30 30  f296791e1e40ea00
31f70 61 36 38 61 61 38 64 61 62 37 0d 0a 0d 0a 71 75  a68aa8dab7....qu
31f80 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
31f90 45 4c 45 43 54 20 2d 20 32 31 20 2a 20 2d 20 2b  ELECT - 21 * - +
31fa0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
31fb0 0a 2d 2d 2d 2d 0d 0a 31 38 32 37 0d 0a 32 30 33  .----..1827..203
31fc0 37 0d 0a 33 31 35 0d 0a 0d 0a 71 75 65 72 79 20  7..315....query 
31fd0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
31fe0 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
31ff0 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 28 20  ab1 WHERE NOT ( 
32000 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 3e 20 4e  NOT ( NULL ) > N
32010 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71  ULL )..----....q
32020 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
32030 53 45 4c 45 43 54 20 2b 20 38 32 20 2a 20 63 6f  SELECT + 82 * co
32040 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45  l0 FROM tab2 WHE
32050 52 45 20 4e 55 4c 4c 20 3c 3d 20 2b 20 63 6f 6c  RE NULL <= + col
32060 32 20 2b 20 2d 20 32 33 0d 0a 2d 2d 2d 2d 0d 0a  2 + - 23..----..
32070 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
32080 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
32090 43 54 20 2b 20 2b 20 32 35 20 2a 20 2d 20 34 20  CT + + 25 * - 4 
320a0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
320b0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 30 0d 0a 0d  0..----..-100...
320c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
320d0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
320e0 54 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 31 20  T col0 * + col1 
320f0 2b 20 63 6f 6c 30 20 2a 20 37 31 20 41 53 20 63  + col0 * 71 AS c
32100 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
32110 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
32120 63 6f 6c 31 20 2b 20 63 6f 6c 30 20 49 53 20 4e  col1 + col0 IS N
32130 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 32 38 30 0d  ULL..----..2280.
32140 0a 36 39 38 34 0d 0a 38 30 30 34 0d 0a 0d 0a 71  .6984..8004....q
32150 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
32160 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
32170 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
32180 52 45 20 63 6f 6c 32 20 42 45 54 57 45 45 4e 20  RE col2 BETWEEN 
32190 28 20 2b 20 2b 20 32 20 2b 20 63 6f 6c 32 20 2a  ( + + 2 + col2 *
321a0 20 63 6f 6c 31 20 29 20 41 4e 44 20 4e 55 4c 4c   col1 ) AND NULL
321b0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
321c0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
321d0 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 63  T DISTINCT - + c
321e0 6f 6c 30 20 2a 20 2d 20 2d 20 38 31 20 2b 20 2d  ol0 * - - 81 + -
321f0 20 28 20 63 6f 6c 32 20 29 20 2a 20 2b 20 63 6f   ( col2 ) * + co
32200 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l0 AS col1 FROM 
32210 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
32220 0a 2d 31 37 34 36 30 0d 0a 2d 31 39 32 30 0d 0a  .-17460..-1920..
32230 2d 37 39 31 37 0d 0a 0d 0a 71 75 65 72 79 20 49  -7917....query I
32240 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
32250 20 41 4c 4c 20 38 31 20 2a 20 2d 20 63 6f 6c 32   ALL 81 * - col2
32260 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d   FROM tab2 cor0.
32270 0a 2d 2d 2d 2d 0d 0a 2d 31 38 36 33 0d 0a 2d 33  .----..-1863..-3
32280 32 34 30 0d 0a 2d 34 36 39 38 0d 0a 0d 0a 71 75  240..-4698....qu
32290 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
322a0 45 4c 45 43 54 20 31 36 20 41 53 20 63 6f 6c 31  ELECT 16 AS col1
322b0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
322c0 72 30 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20  r0 WHERE ( NULL 
322d0 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  ) IS NULL..----.
322e0 0a 31 36 0d 0a 31 36 0d 0a 31 36 0d 0a 0d 0a 6f  .16..16..16....o
322f0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
32300 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
32310 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
32320 74 20 6c 61 62 65 6c 2d 31 31 30 36 0d 0a 53 45  t label-1106..SE
32330 4c 45 43 54 20 4d 41 58 28 20 63 6f 6c 32 20 29  LECT MAX( col2 )
32340 20 2b 20 2b 20 38 31 20 41 53 20 63 6f 6c 32 20   + + 81 AS col2 
32350 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a  FROM tab2 cor0..
32360 2d 2d 2d 2d 0d 0a 31 33 39 0d 0a 0d 0a 73 6b 69  ----..139....ski
32370 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
32380 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
32390 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
323a0 6c 2d 31 31 30 36 0d 0a 53 45 4c 45 43 54 20 4d  l-1106..SELECT M
323b0 41 58 20 28 20 63 6f 6c 32 20 29 20 2b 20 2b 20  AX ( col2 ) + + 
323c0 38 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  81 AS col2 FROM 
323d0 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab2 cor0..----.
323e0 0a 31 33 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .139....onlyif m
323f0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
32400 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
32410 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
32420 2d 31 31 30 37 0d 0a 53 45 4c 45 43 54 20 2b 20  -1107..SELECT + 
32430 53 55 4d 28 20 2d 20 63 6f 6c 32 20 29 20 41 53  SUM( - col2 ) AS
32440 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
32450 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 36  cor0..----..-156
32460 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
32470 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
32480 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
32490 72 74 20 6c 61 62 65 6c 2d 31 31 30 37 0d 0a 53  rt label-1107..S
324a0 45 4c 45 43 54 20 2b 20 53 55 4d 20 28 20 2d 20  ELECT + SUM ( - 
324b0 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 30 20 46  col2 ) AS col0 F
324c0 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d  ROM tab0 cor0..-
324d0 2d 2d 2d 0d 0a 2d 31 35 36 0d 0a 0d 0a 71 75 65  ---..-156....que
324e0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
324f0 45 4c 45 43 54 20 2b 20 2b 20 34 38 20 41 53 20  ELECT + + 48 AS 
32500 63 6f 6c 32 2c 20 32 34 20 2b 20 38 38 20 41 53  col2, 24 + 88 AS
32510 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
32520 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34  AS cor0..----..4
32530 38 0d 0a 31 31 32 0d 0a 34 38 0d 0a 31 31 32 0d  8..112..48..112.
32540 0a 34 38 0d 0a 31 31 32 0d 0a 0d 0a 71 75 65 72  .48..112....quer
32550 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
32560 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  ECT DISTINCT col
32570 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  1 AS col0 FROM t
32580 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab0 WHERE NOT - 
32590 2d 20 34 35 20 2b 20 63 6f 6c 30 20 2b 20 63 6f  - 45 + col0 + co
325a0 6c 32 20 3c 3d 20 28 20 2d 20 28 20 2b 20 34 36  l2 <= ( - ( + 46
325b0 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 32   ) )..----..1..2
325c0 31 0d 0a 38 31 0d 0a 0d 0a 71 75 65 72 79 20 49  1..81....query I
325d0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
325e0 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
325f0 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 2b 20  OM tab2 WHERE + 
32600 34 35 20 2b 20 33 34 20 2d 20 31 31 20 4e 4f 54  45 + 34 - 11 NOT
32610 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e   BETWEEN NULL AN
32620 44 20 2d 20 28 20 63 6f 6c 31 20 29 20 2a 20 2d  D - ( col1 ) * -
32630 20 63 6f 6c 32 20 2b 20 63 6f 6c 30 20 2a 20 2d   col2 + col0 * -
32640 20 34 32 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 35   42..----..46..5
32650 31 0d 0a 32 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  1..23....onlyif 
32660 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
32670 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73  tax: aggregate s
32680 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
32690 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
326a0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31 31  wsort label-1111
326b0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 53  ..SELECT ALL - S
326c0 55 4d 28 20 63 6f 6c 31 20 29 20 2a 20 43 41 53  UM( col1 ) * CAS
326d0 54 28 20 2b 20 38 30 20 41 53 20 53 49 47 4e 45  T( + 80 AS SIGNE
326e0 44 20 29 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  D ) + COUNT( * )
326f0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
32700 0d 0a 2d 35 32 37 37 0d 0a 0d 0a 73 6b 69 70 69  ..-5277....skipi
32710 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
32720 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
32730 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
32740 31 31 31 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1111..SELECT ALL
32750 20 2d 20 53 55 4d 20 28 20 63 6f 6c 31 20 29 20   - SUM ( col1 ) 
32760 2a 20 43 41 53 54 20 28 20 2b 20 38 30 20 41 53  * CAST ( + 80 AS
32770 20 49 4e 54 45 47 45 52 20 29 20 2b 20 43 4f 55   INTEGER ) + COU
32780 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  NT ( * ) FROM ta
32790 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 32 37 37 0d  b1..----..-5277.
327a0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
327b0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
327c0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
327d0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31 32  wsort label-1112
327e0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
327f0 54 20 53 55 4d 28 20 63 6f 6c 32 20 29 20 41 53  T SUM( col2 ) AS
32800 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
32810 0a 2d 2d 2d 2d 0d 0a 32 32 33 0d 0a 0d 0a 73 6b  .----..223....sk
32820 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
32830 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
32840 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
32850 65 6c 2d 31 31 31 32 0d 0a 53 45 4c 45 43 54 20  el-1112..SELECT 
32860 44 49 53 54 49 4e 43 54 20 53 55 4d 20 28 20 63  DISTINCT SUM ( c
32870 6f 6c 32 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ol2 ) AS col2 FR
32880 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32  OM tab1..----..2
32890 32 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  23....query III 
328a0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
328b0 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ALL * FROM tab1 
328c0 57 48 45 52 45 20 2b 20 2b 20 63 6f 6c 30 20 4e  WHERE + + col0 N
328d0 4f 54 20 42 45 54 57 45 45 4e 20 2b 20 63 6f 6c  OT BETWEEN + col
328e0 31 20 41 4e 44 20 28 20 63 6f 6c 30 20 29 0d 0a  1 AND ( col0 )..
328f0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
32900 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
32910 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
32920 4d 20 74 61 62 31 20 57 48 45 52 45 20 2d 20 63  M tab1 WHERE - c
32930 6f 6c 30 20 42 45 54 57 45 45 4e 20 2d 20 2d 20  ol0 BETWEEN - - 
32940 36 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  6 AND NULL..----
32950 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
32960 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
32970 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
32980 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
32990 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
329a0 20 6c 61 62 65 6c 2d 31 31 31 35 0d 0a 53 45 4c   label-1115..SEL
329b0 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 28  ECT ALL + COUNT(
329c0 20 2a 20 29 20 2a 20 2d 20 43 41 53 54 28 20 4e   * ) * - CAST( N
329d0 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
329e0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
329f0 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
32a00 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
32a10 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
32a20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
32a30 31 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  15..SELECT ALL +
32a40 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d   COUNT ( * ) * -
32a50 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
32a60 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74  INTEGER ) FROM t
32a70 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab2..----..NULL.
32a80 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
32a90 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20  rt..SELECT col1 
32aa0 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
32ab0 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 42 45 54  NOT ( NULL ) BET
32ac0 57 45 45 4e 20 63 6f 6c 32 20 41 4e 44 20 63 6f  WEEN col2 AND co
32ad0 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  l2..----....only
32ae0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
32af0 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
32b00 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49  ype: ..query III
32b10 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
32b20 31 31 37 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  117..SELECT * FR
32b30 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
32b40 57 48 45 52 45 20 4e 4f 54 20 2b 20 43 41 53 54  WHERE NOT + CAST
32b50 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
32b60 20 29 20 3e 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d   ) > + col1..---
32b70 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  -....skipif mysq
32b80 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
32b90 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  le..query III ro
32ba0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31 37  wsort label-1117
32bb0 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
32bc0 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
32bd0 52 45 20 4e 4f 54 20 2b 20 43 41 53 54 20 28 20  RE NOT + CAST ( 
32be0 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
32bf0 29 20 3e 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d  ) > + col1..----
32c00 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
32c10 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
32c20 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
32c30 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
32c40 61 62 65 6c 2d 31 31 31 38 0d 0a 53 45 4c 45 43  abel-1118..SELEC
32c50 54 20 63 6f 6c 32 20 44 49 56 20 63 6f 6c 30 20  T col2 DIV col0 
32c60 2d 20 2d 20 2d 20 36 32 20 2b 20 2b 20 63 6f 6c  - - - 62 + + col
32c70 32 20 44 49 56 20 2b 20 33 34 20 41 53 20 63 6f  2 DIV + 34 AS co
32c80 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
32c90 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 38 0d  cor0..----..-58.
32ca0 0a 2d 35 39 0d 0a 2d 36 32 0d 0a 0d 0a 73 6b 69  .-59..-62....ski
32cb0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
32cc0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
32cd0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
32ce0 6c 2d 31 31 31 38 0d 0a 53 45 4c 45 43 54 20 63  l-1118..SELECT c
32cf0 6f 6c 32 20 2f 20 63 6f 6c 30 20 2d 20 2d 20 2d  ol2 / col0 - - -
32d00 20 36 32 20 2b 20 2b 20 63 6f 6c 32 20 2f 20 2b   62 + + col2 / +
32d10 20 33 34 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   34 AS col1 FROM
32d20 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
32d30 2d 2d 2d 0d 0a 2d 35 38 0d 0a 2d 35 39 0d 0a 2d  ---..-58..-59..-
32d40 36 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  62....skipif pos
32d50 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
32d60 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
32d70 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
32d80 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
32d90 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
32da0 53 45 4c 45 43 54 20 63 6f 6c 31 20 2a 20 28 20  SELECT col1 * ( 
32db0 2b 20 63 6f 6c 32 20 29 20 63 6f 6c 30 20 46 52  + col2 ) col0 FR
32dc0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
32dd0 0a 2d 2d 2d 2d 0d 0a 32 31 30 0d 0a 33 38 30 37  .----..210..3807
32de0 0d 0a 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..99....onlyif m
32df0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
32e00 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
32e10 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77   ..query III row
32e20 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 32 30 0d  sort label-1120.
32e30 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
32e40 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
32e50 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28  cor0 WHERE NOT (
32e60 20 4e 55 4c 4c 20 29 20 42 45 54 57 45 45 4e 20   NULL ) BETWEEN 
32e70 4e 55 4c 4c 20 41 4e 44 20 28 20 2d 20 37 31 20  NULL AND ( - 71 
32e80 2a 20 2b 20 63 6f 6c 32 20 2d 20 28 20 2b 20 43  * + col2 - ( + C
32e90 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
32ea0 4e 45 44 20 29 20 29 20 2a 20 63 6f 6c 32 20 29  NED ) ) * col2 )
32eb0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
32ec0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
32ed0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
32ee0 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
32ef0 2d 31 31 32 30 0d 0a 53 45 4c 45 43 54 20 44 49  -1120..SELECT DI
32f00 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
32f10 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
32f20 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 42 45   NOT ( NULL ) BE
32f30 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 28  TWEEN NULL AND (
32f40 20 2d 20 37 31 20 2a 20 2b 20 63 6f 6c 32 20 2d   - 71 * + col2 -
32f50 20 28 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c   ( + CAST ( NULL
32f60 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20   AS INTEGER ) ) 
32f70 2a 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a  * col2 )..----..
32f80 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
32f90 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
32fa0 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67  x: DIV for integ
32fb0 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
32fc0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
32fd0 61 62 65 6c 2d 31 31 32 31 0d 0a 53 45 4c 45 43  abel-1121..SELEC
32fe0 54 20 41 4c 4c 20 2d 20 53 55 4d 28 20 41 4c 4c  T ALL - SUM( ALL
32ff0 20 2d 20 28 20 2b 20 36 35 20 29 20 29 20 44 49   - ( + 65 ) ) DI
33000 56 20 36 35 20 46 52 4f 4d 20 74 61 62 30 20 63  V 65 FROM tab0 c
33010 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
33020 61 62 31 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d  ab1 AS cor1..---
33030 2d 0d 0a 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..9....skipif m
33040 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
33050 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
33060 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 32  owsort label-112
33070 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  1..SELECT ALL - 
33080 53 55 4d 20 28 20 41 4c 4c 20 2d 20 28 20 2b 20  SUM ( ALL - ( + 
33090 36 35 20 29 20 29 20 2f 20 36 35 20 46 52 4f 4d  65 ) ) / 65 FROM
330a0 20 74 61 62 30 20 63 6f 72 30 20 43 52 4f 53 53   tab0 cor0 CROSS
330b0 20 4a 4f 49 4e 20 74 61 62 31 20 41 53 20 63 6f   JOIN tab1 AS co
330c0 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 71  r1..----..9....q
330d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
330e0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
330f0 2b 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 30 20  + col0 + - col0 
33100 2f 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30  / + col1 AS col0
33110 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
33120 72 30 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20  r0 WHERE ( NULL 
33130 29 20 4e 4f 54 20 49 4e 20 28 20 2d 20 63 6f 6c  ) NOT IN ( - col
33140 31 20 2f 20 63 6f 6c 30 20 2d 20 2d 20 63 6f 6c  1 / col0 - - col
33150 30 20 2d 20 2d 20 34 33 20 29 0d 0a 2d 2d 2d 2d  0 - - 43 )..----
33160 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
33170 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
33180 53 49 47 4e 45 44 20 74 79 70 65 3a 20 44 45 43  SIGNED type: DEC
33190 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65  IMAL type: ..que
331a0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
331b0 65 6c 2d 31 31 32 33 0d 0a 53 45 4c 45 43 54 20  el-1123..SELECT 
331c0 41 4c 4c 20 28 20 2d 20 28 20 2d 20 43 41 53 54  ALL ( - ( - CAST
331d0 28 20 63 6f 6c 32 20 41 53 20 53 49 47 4e 45 44  ( col2 AS SIGNED
331e0 20 29 20 29 20 29 20 2a 20 39 36 20 63 6f 6c 31   ) ) ) * 96 col1
331f0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
33200 72 30 20 57 48 45 52 45 20 43 41 53 54 28 20 4e  r0 WHERE CAST( N
33210 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29  ULL AS DECIMAL )
33220 20 3c 20 28 20 2d 20 63 6f 6c 32 20 29 0d 0a 2d   < ( - col2 )..-
33230 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ---....skipif my
33240 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
33250 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
33260 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
33270 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
33280 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
33290 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
332a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
332b0 61 62 65 6c 2d 31 31 32 33 0d 0a 53 45 4c 45 43  abel-1123..SELEC
332c0 54 20 41 4c 4c 20 28 20 2d 20 28 20 2d 20 43 41  T ALL ( - ( - CA
332d0 53 54 20 28 20 63 6f 6c 32 20 41 53 20 49 4e 54  ST ( col2 AS INT
332e0 45 47 45 52 20 29 20 29 20 29 20 2a 20 39 36 20  EGER ) ) ) * 96 
332f0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
33300 53 20 63 6f 72 30 20 57 48 45 52 45 20 43 41 53  S cor0 WHERE CAS
33310 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c  T ( NULL AS REAL
33320 20 29 20 3c 20 28 20 2d 20 63 6f 6c 32 20 29 0d   ) < ( - col2 ).
33330 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
33340 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
33350 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
33360 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
33370 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
33380 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
33390 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
333a0 43 54 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 32  CT col0 * + col2
333b0 20 2b 20 38 39 20 2a 20 2d 20 39 37 20 63 6f 6c   + 89 * - 97 col
333c0 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
333d0 6f 72 30 20 57 48 45 52 45 20 2b 20 63 6f 6c 32  or0 WHERE + col2
333e0 20 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d   = NULL..----...
333f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
33400 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20  ..SELECT - col2 
33410 2b 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 2d 20 63  + - col2 + - - c
33420 6f 6c 31 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 2b  ol1 + + col1 * +
33430 20 63 6f 6c 30 20 2a 20 63 6f 6c 30 20 41 53 20   col0 * col0 AS 
33440 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
33450 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30  S cor0..----..10
33460 37 39 32 31 0d 0a 33 31 35 33 38 39 0d 0a 33 37  7921..315389..37
33470 36 38 32 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20  6826....query I 
33480 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
33490 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31 20  DISTINCT - col1 
334a0 2a 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31  * - col1 AS col1
334b0 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20   FROM tab2 cor0 
334c0 57 48 45 52 45 20 4e 4f 54 20 28 20 2b 20 63 6f  WHERE NOT ( + co
334d0 6c 32 20 29 20 42 45 54 57 45 45 4e 20 2b 20 63  l2 ) BETWEEN + c
334e0 6f 6c 30 20 41 4e 44 20 28 20 4e 55 4c 4c 20 29  ol0 AND ( NULL )
334f0 0d 0a 2d 2d 2d 2d 0d 0a 32 36 30 31 0d 0a 34 34  ..----..2601..44
33500 38 39 0d 0a 35 39 32 39 0d 0a 0d 0a 6f 6e 6c 79  89..5929....only
33510 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
33520 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56  gate syntax: DIV
33530 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
33540 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
33550 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
33560 31 32 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  127..SELECT ALL 
33570 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 44 49 56  - COUNT( * ) DIV
33580 20 2d 20 32 31 20 63 6f 6c 31 20 46 52 4f 4d 20   - 21 col1 FROM 
33590 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
335a0 52 45 20 2d 20 34 32 20 2d 20 2d 20 63 6f 6c 31  RE - 42 - - col1
335b0 20 49 4e 20 28 20 2b 20 31 37 20 2b 20 2d 20 63   IN ( + 17 + - c
335c0 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a  ol0 )..----..0..
335d0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
335e0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
335f0 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
33600 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
33610 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
33620 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
33630 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
33640 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
33650 31 31 32 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1127..SELECT ALL
33660 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2f   - COUNT ( * ) /
33670 20 2d 20 32 31 20 63 6f 6c 31 20 46 52 4f 4d 20   - 21 col1 FROM 
33680 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
33690 52 45 20 2d 20 34 32 20 2d 20 2d 20 63 6f 6c 31  RE - 42 - - col1
336a0 20 49 4e 20 28 20 2b 20 31 37 20 2b 20 2d 20 63   IN ( + 17 + - c
336b0 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a  ol0 )..----..0..
336c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
336d0 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32  t..SELECT + col2
336e0 20 2b 20 2b 20 2b 20 35 30 20 46 52 4f 4d 20 74   + + + 50 FROM t
336f0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 30 38 0d 0a  ab2..----..108..
33700 37 33 0d 0a 39 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  73..90....onlyif
33710 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
33720 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
33730 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
33740 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 32 39 0d  sort label-1129.
33750 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 32 35  .SELECT ALL + 25
33760 20 2b 20 2b 20 2d 20 63 6f 6c 32 20 44 49 56 20   + + - col2 DIV 
33770 2d 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32  - - col2 AS col2
33780 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
33790 0d 0a 32 34 0d 0a 32 34 0d 0a 32 34 0d 0a 0d 0a  ..24..24..24....
337a0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
337b0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
337c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
337d0 61 62 65 6c 2d 31 31 32 39 0d 0a 53 45 4c 45 43  abel-1129..SELEC
337e0 54 20 41 4c 4c 20 2b 20 32 35 20 2b 20 2b 20 2d  T ALL + 25 + + -
337f0 20 63 6f 6c 32 20 2f 20 2d 20 2d 20 63 6f 6c 32   col2 / - - col2
33800 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
33810 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 34 0d 0a 32 34  b1..----..24..24
33820 0d 0a 32 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..24....query I 
33830 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
33840 2b 20 2b 20 39 32 20 46 52 4f 4d 20 74 61 62 32  + + 92 FROM tab2
33850 20 57 48 45 52 45 20 31 39 20 2a 20 2b 20 63 6f   WHERE 19 * + co
33860 6c 31 20 3c 3e 20 2d 20 63 6f 6c 32 0d 0a 2d 2d  l1 <> - col2..--
33870 2d 2d 0d 0a 39 32 0d 0a 39 32 0d 0a 39 32 0d 0a  --..92..92..92..
33880 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
33890 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67   CAST syntax: ag
338a0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
338b0 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
338c0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
338d0 6c 61 62 65 6c 2d 31 31 33 31 0d 0a 53 45 4c 45  label-1131..SELE
338e0 43 54 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53  CT CAST( NULL AS
338f0 20 53 49 47 4e 45 44 20 29 20 63 6f 6c 30 2c 20   SIGNED ) col0, 
33900 28 20 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  ( - + COUNT( * )
33910 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
33920 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 2d 33 0d 0a 0d 0a  --..NULL..-3....
33930 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
33940 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73  ot compatible..s
33950 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
33960 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
33970 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
33980 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
33990 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49  olumns..query II
339a0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
339b0 31 33 31 0d 0a 53 45 4c 45 43 54 20 43 41 53 54  131..SELECT CAST
339c0 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
339d0 45 52 20 29 20 63 6f 6c 30 2c 20 28 20 2d 20 2b  ER ) col0, ( - +
339e0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29 20 46   COUNT ( * ) ) F
339f0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
33a00 4e 55 4c 4c 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72  NULL..-3....quer
33a10 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
33a20 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63  ECT DISTINCT - c
33a30 6f 6c 31 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 41  ol1 * - - col0 A
33a40 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
33a50 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
33a60 2d 31 32 31 35 0d 0a 2d 31 38 32 37 0d 0a 2d 39  -1215..-1827..-9
33a70 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  7....query III r
33a80 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
33a90 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
33aa0 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
33ab0 45 20 4e 4f 54 20 33 39 20 2d 20 2b 20 2d 20 31  E NOT 39 - + - 1
33ac0 33 20 2a 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 2b  3 * - col0 * - +
33ad0 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d   col2 IS NULL..-
33ae0 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
33af0 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36  shing to c4b4276
33b00 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65  5dff94eaaa46040e
33b10 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65  537fb43b7....que
33b20 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
33b30 45 4c 45 43 54 20 2d 20 2d 20 63 6f 6c 31 20 41  ELECT - - col1 A
33b40 53 20 63 6f 6c 30 2c 20 63 6f 6c 32 20 2b 20 2d  S col0, col2 + -
33b50 20 34 35 20 2b 20 33 32 20 41 53 20 63 6f 6c 31   45 + 32 AS col1
33b60 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
33b70 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 38 36 0d  r0..----..1..86.
33b80 0a 32 31 0d 0a 2d 33 0d 0a 38 31 0d 0a 33 34 0d  .21..-3..81..34.
33b90 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
33ba0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
33bb0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
33bc0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33 35  wsort label-1135
33bd0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 28  ..SELECT ALL - (
33be0 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 29 20   - COUNT( * ) ) 
33bf0 2b 20 2b 20 2b 20 32 37 20 41 53 20 63 6f 6c 30  + + + 27 AS col0
33c00 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
33c10 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 30 0d 0a 0d 0a  r0..----..30....
33c20 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
33c30 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
33c40 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
33c50 61 62 65 6c 2d 31 31 33 35 0d 0a 53 45 4c 45 43  abel-1135..SELEC
33c60 54 20 41 4c 4c 20 2d 20 28 20 2d 20 43 4f 55 4e  T ALL - ( - COUN
33c70 54 20 28 20 2a 20 29 20 29 20 2b 20 2b 20 2b 20  T ( * ) ) + + + 
33c80 32 37 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  27 AS col0 FROM 
33c90 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
33ca0 2d 2d 0d 0a 33 30 0d 0a 0d 0a 71 75 65 72 79 20  --..30....query 
33cb0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
33cc0 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  T DISTINCT + col
33cd0 32 20 2a 20 2d 20 30 20 2d 20 63 6f 6c 32 20 2b  2 * - 0 - col2 +
33ce0 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   - col0 FROM tab
33cf0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 36 0d 0a 2d  0..----..-196..-
33d00 36 32 0d 0a 2d 39 37 0d 0a 0d 0a 6f 6e 6c 79 69  62..-97....onlyi
33d10 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
33d20 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
33d30 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
33d40 62 65 6c 2d 31 31 33 37 0d 0a 53 45 4c 45 43 54  bel-1137..SELECT
33d50 20 4d 41 58 28 20 37 31 20 29 20 2b 20 28 20 2b   MAX( 71 ) + ( +
33d60 20 34 31 20 29 20 46 52 4f 4d 20 74 61 62 32 0d   41 ) FROM tab2.
33d70 0a 2d 2d 2d 2d 0d 0a 31 31 32 0d 0a 0d 0a 73 6b  .----..112....sk
33d80 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
33d90 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
33da0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
33db0 65 6c 2d 31 31 33 37 0d 0a 53 45 4c 45 43 54 20  el-1137..SELECT 
33dc0 4d 41 58 20 28 20 37 31 20 29 20 2b 20 28 20 2b  MAX ( 71 ) + ( +
33dd0 20 34 31 20 29 20 46 52 4f 4d 20 74 61 62 32 0d   41 ) FROM tab2.
33de0 0a 2d 2d 2d 2d 0d 0a 31 31 32 0d 0a 0d 0a 71 75  .----..112....qu
33df0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
33e00 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
33e10 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
33e20 54 20 2b 20 37 38 20 49 53 20 4e 4f 54 20 4e 55  T + 78 IS NOT NU
33e30 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
33e40 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
33e50 45 43 54 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 28  ECT - col2 + - (
33e60 20 2d 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c   - col0 ) AS col
33e70 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
33e80 2d 0d 0a 2d 32 0d 0a 2d 33 32 0d 0a 37 37 0d 0a  -..-2..-32..77..
33e90 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
33ea0 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67   CAST syntax: ag
33eb0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
33ec0 53 49 47 4e 45 44 20 74 79 70 65 3a 20 44 49 56  SIGNED type: DIV
33ed0 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
33ee0 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
33ef0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
33f00 31 34 30 0d 0a 53 45 4c 45 43 54 20 4d 41 58 28  140..SELECT MAX(
33f10 20 2b 20 63 6f 6c 31 20 29 20 2a 20 2d 20 2b 20   + col1 ) * - + 
33f20 43 4f 55 4e 54 28 20 44 49 53 54 49 4e 43 54 20  COUNT( DISTINCT 
33f30 2d 20 28 20 2b 20 43 41 53 54 28 20 2d 20 2b 20  - ( + CAST( - + 
33f40 28 20 2b 20 2b 20 63 6f 6c 30 20 29 20 41 53 20  ( + + col0 ) AS 
33f50 53 49 47 4e 45 44 20 29 20 29 20 29 20 44 49 56  SIGNED ) ) ) DIV
33f60 20 2d 20 28 20 43 4f 55 4e 54 28 20 2a 20 29 20   - ( COUNT( * ) 
33f70 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
33f80 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 37 0d 0a 0d  or0..----..47...
33f90 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
33fa0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
33fb0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
33fc0 6c 61 62 65 6c 2d 31 31 34 30 0d 0a 53 45 4c 45  label-1140..SELE
33fd0 43 54 20 4d 41 58 20 28 20 2b 20 63 6f 6c 31 20  CT MAX ( + col1 
33fe0 29 20 2a 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20  ) * - + COUNT ( 
33ff0 44 49 53 54 49 4e 43 54 20 2d 20 28 20 2b 20 43  DISTINCT - ( + C
34000 41 53 54 20 28 20 2d 20 2b 20 28 20 2b 20 2b 20  AST ( - + ( + + 
34010 63 6f 6c 30 20 29 20 41 53 20 49 4e 54 45 47 45  col0 ) AS INTEGE
34020 52 20 29 20 29 20 29 20 2f 20 2d 20 28 20 43 4f  R ) ) ) / - ( CO
34030 55 4e 54 20 28 20 2a 20 29 20 29 20 46 52 4f 4d  UNT ( * ) ) FROM
34040 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
34050 2d 2d 2d 0d 0a 34 37 0d 0a 0d 0a 71 75 65 72 79  ---..47....query
34060 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
34070 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f  CT DISTINCT - co
34080 6c 31 20 2a 20 63 6f 6c 30 20 46 52 4f 4d 20 74  l1 * col0 FROM t
34090 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
340a0 45 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55  E NULL IS NOT NU
340b0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
340c0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
340d0 45 43 54 20 2b 20 34 30 20 2a 20 2b 20 63 6f 6c  ECT + 40 * + col
340e0 30 20 2b 20 2b 20 2d 20 63 6f 6c 31 20 2b 20 28  0 + + - col1 + (
340f0 20 28 20 2d 20 63 6f 6c 30 20 29 20 29 20 46 52   ( - col0 ) ) FR
34100 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d  OM tab2 cor0..--
34110 2d 2d 0d 0a 31 37 34 33 0d 0a 32 34 31 39 0d 0a  --..1743..2419..
34120 32 38 35 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20  2858....query I 
34130 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
34140 2d 20 2b 20 28 20 2b 20 37 39 20 29 20 46 52 4f  - + ( + 79 ) FRO
34150 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
34160 2d 2d 2d 2d 0d 0a 2d 37 39 0d 0a 2d 37 39 0d 0a  ----..-79..-79..
34170 2d 37 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  -79....query III
34180 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
34190 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
341a0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28  cor0 WHERE NOT (
341b0 20 4e 4f 54 20 63 6f 6c 30 20 2a 20 35 39 20 3d   NOT col0 * 59 =
341c0 20 2b 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d   + + col1 )..---
341d0 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  -....query III r
341e0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
341f0 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
34200 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
34210 45 20 4e 4f 54 20 2b 20 63 6f 6c 32 20 2b 20 63  E NOT + col2 + c
34220 6f 6c 32 20 3c 3e 20 2b 20 39 36 0d 0a 2d 2d 2d  ol2 <> + 96..---
34230 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
34240 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
34250 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
34260 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
34270 6c 61 62 65 6c 2d 31 31 34 36 0d 0a 53 45 4c 45  label-1146..SELE
34280 43 54 20 44 49 53 54 49 4e 43 54 20 35 30 20 44  CT DISTINCT 50 D
34290 49 56 20 63 6f 6c 32 20 2b 20 63 6f 6c 30 20 46  IV col2 + col0 F
342a0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
342b0 0d 0a 2d 2d 2d 2d 0d 0a 31 36 0d 0a 39 32 0d 0a  ..----..16..92..
342c0 39 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  97....skipif mys
342d0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
342e0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
342f0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 34 36 0d  sort label-1146.
34300 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
34310 20 35 30 20 2f 20 63 6f 6c 32 20 2b 20 63 6f 6c   50 / col2 + col
34320 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
34330 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 0d 0a 39  or0..----..16..9
34340 32 0d 0a 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  2..97....onlyif 
34350 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
34360 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
34370 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
34380 6f 72 74 20 6c 61 62 65 6c 2d 31 31 34 37 0d 0a  ort label-1147..
34390 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
343a0 2d 20 43 41 53 54 28 20 2d 20 2d 20 36 31 20 41  - CAST( - - 61 A
343b0 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20  S SIGNED ) FROM 
343c0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
343d0 2d 2d 0d 0a 2d 36 31 0d 0a 0d 0a 73 6b 69 70 69  --..-61....skipi
343e0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
343f0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
34400 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
34410 31 31 34 37 0d 0a 53 45 4c 45 43 54 20 44 49 53  1147..SELECT DIS
34420 54 49 4e 43 54 20 2d 20 43 41 53 54 20 28 20 2d  TINCT - CAST ( -
34430 20 2d 20 36 31 20 41 53 20 49 4e 54 45 47 45 52   - 61 AS INTEGER
34440 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
34450 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 31 0d  cor0..----..-61.
34460 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
34470 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
34480 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
34490 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
344a0 62 65 6c 2d 31 31 34 38 0d 0a 53 45 4c 45 43 54  bel-1148..SELECT
344b0 20 41 4c 4c 20 2b 20 32 39 20 46 52 4f 4d 20 74   ALL + 29 FROM t
344c0 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
344d0 45 20 4e 4f 54 20 2b 20 28 20 2b 20 43 41 53 54  E NOT + ( + CAST
344e0 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
344f0 20 29 20 29 20 3c 20 63 6f 6c 32 0d 0a 2d 2d 2d   ) ) < col2..---
34500 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  -....skipif mysq
34510 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
34520 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
34530 6f 72 74 20 6c 61 62 65 6c 2d 31 31 34 38 0d 0a  ort label-1148..
34540 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 32 39 20  SELECT ALL + 29 
34550 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
34560 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 28 20  0 WHERE NOT + ( 
34570 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
34580 20 49 4e 54 45 47 45 52 20 29 20 29 20 3c 20 63   INTEGER ) ) < c
34590 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ol2..----....que
345a0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
345b0 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
345c0 62 30 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  b0 cor0 WHERE NO
345d0 54 20 63 6f 6c 30 20 2f 20 2d 20 36 39 20 2f 20  T col0 / - 69 / 
345e0 2b 20 32 34 20 2b 20 2b 20 63 6f 6c 32 20 3c 3d  + 24 + + col2 <=
345f0 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d   ( NULL )..----.
34600 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
34610 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
34620 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
34630 57 48 45 52 45 20 2b 20 2d 20 63 6f 6c 30 20 2a  WHERE + - col0 *
34640 20 2b 20 2d 20 35 30 20 42 45 54 57 45 45 4e 20   + - 50 BETWEEN 
34650 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 32 20 2a 20  col1 * + col2 * 
34660 2d 20 2d 20 33 30 20 2b 20 2b 20 31 31 20 2f 20  - - 30 + + 11 / 
34670 2d 20 63 6f 6c 30 20 41 4e 44 20 4e 55 4c 4c 0d  - col0 AND NULL.
34680 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
34690 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
346a0 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f  e syntax: DIV fo
346b0 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
346c0 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
346d0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 35 31  wsort label-1151
346e0 0d 0a 53 45 4c 45 43 54 20 2b 20 32 32 20 2a 20  ..SELECT + 22 * 
346f0 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 44 49 56  - COUNT( * ) DIV
34700 20 2d 20 37 35 20 63 6f 6c 30 20 46 52 4f 4d 20   - 75 col0 FROM 
34710 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  tab2..----..0...
34720 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
34730 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
34740 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
34750 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
34760 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
34770 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
34780 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
34790 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
347a0 31 35 31 0d 0a 53 45 4c 45 43 54 20 2b 20 32 32  151..SELECT + 22
347b0 20 2a 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29   * - COUNT ( * )
347c0 20 2f 20 2d 20 37 35 20 63 6f 6c 30 20 46 52 4f   / - 75 col0 FRO
347d0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab2..----..0.
347e0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
347f0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
34800 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
34810 57 48 45 52 45 20 39 39 20 3c 3e 20 4e 55 4c 4c  WHERE 99 <> NULL
34820 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
34830 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
34840 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  T DISTINCT + col
34850 30 20 2a 20 39 30 20 2a 20 2d 20 63 6f 6c 32 20  0 * 90 * - col2 
34860 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
34870 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 30 34 30 30  2..----..-230400
34880 0d 0a 2d 33 39 31 35 30 30 0d 0a 2d 39 35 32 32  ..-391500..-9522
34890 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  0....query III r
348a0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
348b0 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57  LL * FROM tab1 W
348c0 48 45 52 45 20 2d 20 2b 20 63 6f 6c 32 20 4e 4f  HERE - + col2 NO
348d0 54 20 49 4e 20 28 20 2b 20 2d 20 63 6f 6c 30 20  T IN ( + - col0 
348e0 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  )..----..9 value
348f0 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63  s hashing to c6c
34900 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38  0a4111b36d04dbc8
34910 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d  11a11e4d54cad...
34920 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
34930 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67  CAST syntax: agg
34940 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53  regate syntax: S
34950 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
34960 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
34970 62 65 6c 2d 31 31 35 35 0d 0a 53 45 4c 45 43 54  bel-1155..SELECT
34980 20 41 4c 4c 20 53 55 4d 28 20 44 49 53 54 49 4e   ALL SUM( DISTIN
34990 43 54 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20  CT + CAST( NULL 
349a0 41 53 20 53 49 47 4e 45 44 20 29 20 29 20 41 53  AS SIGNED ) ) AS
349b0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
349c0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
349d0 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
349e0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
349f0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
34a00 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 35 35  wsort label-1155
34a10 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 53 55 4d  ..SELECT ALL SUM
34a20 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20 43 41   ( DISTINCT + CA
34a30 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
34a40 45 47 45 52 20 29 20 29 20 41 53 20 63 6f 6c 31  EGER ) ) AS col1
34a50 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
34a60 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
34a70 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
34a80 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
34a90 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
34aa0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 35 36 0d  sort label-1156.
34ab0 0a 53 45 4c 45 43 54 20 4d 49 4e 28 20 44 49 53  .SELECT MIN( DIS
34ac0 54 49 4e 43 54 20 36 39 20 29 20 41 53 20 63 6f  TINCT 69 ) AS co
34ad0 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
34ae0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 39 0d 0a  cor0..----..69..
34af0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
34b00 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
34b10 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
34b20 20 6c 61 62 65 6c 2d 31 31 35 36 0d 0a 53 45 4c   label-1156..SEL
34b30 45 43 54 20 4d 49 4e 20 28 20 44 49 53 54 49 4e  ECT MIN ( DISTIN
34b40 43 54 20 36 39 20 29 20 41 53 20 63 6f 6c 32 20  CT 69 ) AS col2 
34b50 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
34b60 30 0d 0a 2d 2d 2d 2d 0d 0a 36 39 0d 0a 0d 0a 71  0..----..69....q
34b70 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
34b80 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 63  SELECT ALL - + c
34b90 6f 6c 30 20 2a 20 2b 20 2b 20 63 6f 6c 30 20 2a  ol0 * + + col0 *
34ba0 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 2d 20 63 6f   - col1 * + - co
34bb0 6c 31 20 2b 20 2d 20 63 6f 6c 30 20 41 53 20 63  l1 + - col0 AS c
34bc0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
34bd0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 34   cor0..----..-24
34be0 32 38 35 32 34 38 0d 0a 2d 32 35 32 35 30 37 30  285248..-2525070
34bf0 30 0d 0a 2d 35 35 30 33 37 36 32 0d 0a 0d 0a 6f  0..-5503762....o
34c00 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
34c10 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
34c20 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
34c30 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
34c40 31 31 35 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1158..SELECT ALL
34c50 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   + CAST( NULL AS
34c60 20 53 49 47 4e 45 44 20 29 20 2a 20 2d 20 36 37   SIGNED ) * - 67
34c70 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
34c80 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
34c90 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  NULL..NULL....sk
34ca0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
34cb0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
34cc0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
34cd0 65 6c 2d 31 31 35 38 0d 0a 53 45 4c 45 43 54 20  el-1158..SELECT 
34ce0 41 4c 4c 20 2b 20 43 41 53 54 20 28 20 4e 55 4c  ALL + CAST ( NUL
34cf0 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a  L AS INTEGER ) *
34d00 20 2d 20 36 37 20 46 52 4f 4d 20 74 61 62 30 20   - 67 FROM tab0 
34d10 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
34d20 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
34d30 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
34d40 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
34d50 63 6f 6c 30 20 41 53 20 63 6f 6c 30 2c 20 37 33  col0 AS col0, 73
34d60 20 2a 20 2b 20 39 20 46 52 4f 4d 20 74 61 62 31   * + 9 FROM tab1
34d70 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
34d80 35 31 0d 0a 36 35 37 0d 0a 38 35 0d 0a 36 35 37  51..657..85..657
34d90 0d 0a 39 31 0d 0a 36 35 37 0d 0a 0d 0a 71 75 65  ..91..657....que
34da0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
34db0 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
34dc0 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
34dd0 20 4e 4f 54 20 2b 20 31 35 20 2a 20 28 20 2d 20   NOT + 15 * ( - 
34de0 63 6f 6c 31 20 29 20 49 53 20 4e 4f 54 20 4e 55  col1 ) IS NOT NU
34df0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
34e00 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
34e10 45 43 54 20 44 49 53 54 49 4e 43 54 20 38 32 20  ECT DISTINCT 82 
34e20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  + col2 FROM tab0
34e30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
34e40 31 32 39 0d 0a 31 38 31 0d 0a 39 32 0d 0a 0d 0a  129..181..92....
34e50 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
34e60 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 46  .SELECT + col1 F
34e70 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
34e80 4f 54 20 4e 55 4c 4c 20 3e 20 2d 20 2b 20 39 33  OT NULL > - + 93
34e90 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
34ea0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
34eb0 54 20 41 4c 4c 20 2d 20 2b 20 35 32 20 46 52 4f  T ALL - + 52 FRO
34ec0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 43  M tab1 AS cor0 C
34ed0 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20 41  ROSS JOIN tab1 A
34ee0 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20  S cor1..----..9 
34ef0 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
34f00 6f 20 39 35 30 30 61 66 65 35 36 34 36 64 36 32  o 9500afe5646d62
34f10 30 64 35 65 38 39 34 33 33 35 31 61 32 39 64 30  0d5e8943351a29d0
34f20 38 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  82....onlyif mys
34f30 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
34f40 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
34f50 0a 71 75 65 72 79 20 49 49 49 49 49 49 20 72 6f  .query IIIIII ro
34f60 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 36 34  wsort label-1164
34f70 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
34f80 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53  T * FROM tab2 AS
34f90 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
34fa0 20 74 61 62 31 20 41 53 20 63 6f 72 31 20 57 48   tab1 AS cor1 WH
34fb0 45 52 45 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  ERE CAST( NULL A
34fc0 53 20 53 49 47 4e 45 44 20 29 20 49 53 20 4e 4f  S SIGNED ) IS NO
34fd0 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  T NULL..----....
34fe0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
34ff0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
35000 75 65 72 79 20 49 49 49 49 49 49 20 72 6f 77 73  uery IIIIII rows
35010 6f 72 74 20 6c 61 62 65 6c 2d 31 31 36 34 0d 0a  ort label-1164..
35020 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
35030 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  * FROM tab2 AS c
35040 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
35050 61 62 31 20 41 53 20 63 6f 72 31 20 57 48 45 52  ab1 AS cor1 WHER
35060 45 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  E CAST ( NULL AS
35070 20 49 4e 54 45 47 45 52 20 29 20 49 53 20 4e 4f   INTEGER ) IS NO
35080 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  T NULL..----....
35090 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
350a0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
350b0 63 6f 6c 32 20 2a 20 2b 20 31 31 20 41 53 20 63  col2 * + 11 AS c
350c0 6f 6c 32 2c 20 37 36 20 2a 20 2b 20 63 6f 6c 30  ol2, 76 * + col0
350d0 20 2a 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 2c   * col0 AS col0,
350e0 20 2b 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c   + - col1 AS col
350f0 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
35100 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
35110 69 6e 67 20 74 6f 20 64 61 62 33 30 61 66 30 63  ing to dab30af0c
35120 61 63 62 39 66 30 35 65 38 66 66 37 31 39 31 32  acb9f05e8ff71912
35130 30 62 36 39 33 38 35 0d 0a 0d 0a 6f 6e 6c 79 69  0b69385....onlyi
35140 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
35150 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20  ate syntax: DIV 
35160 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
35170 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
35180 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
35190 36 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  66..SELECT DISTI
351a0 4e 43 54 20 28 20 39 34 20 29 20 44 49 56 20 2b  NCT ( 94 ) DIV +
351b0 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 63 6f   - COUNT( * ) co
351c0 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
351d0 2d 2d 0d 0a 2d 33 31 0d 0a 0d 0a 73 6b 69 70 69  --..-31....skipi
351e0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
351f0 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66  mpatible..skipif
35200 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
35210 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
35220 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
35230 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
35240 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
35250 72 74 20 6c 61 62 65 6c 2d 31 31 36 36 0d 0a 53  rt label-1166..S
35260 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 28  ELECT DISTINCT (
35270 20 39 34 20 29 20 2f 20 2b 20 2d 20 43 4f 55 4e   94 ) / + - COUN
35280 54 20 28 20 2a 20 29 20 63 6f 6c 31 20 46 52 4f  T ( * ) col1 FRO
35290 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  M tab1..----..-3
352a0 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  1....query I row
352b0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 33  sort..SELECT + 3
352c0 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  2 AS col1 FROM t
352d0 61 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f 53  ab1 AS cor0 CROS
352e0 53 20 4a 4f 49 4e 20 74 61 62 31 20 41 53 20 63  S JOIN tab1 AS c
352f0 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  or1..----..9 val
35300 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 64  ues hashing to d
35310 33 30 61 32 61 63 62 66 33 33 63 38 38 32 37 34  30a2acbf33c88274
35320 34 37 34 33 30 36 39 33 36 64 33 32 32 37 62 0d  474306936d3227b.
35330 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
35340 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44  # CAST syntax: D
35350 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71  ECIMAL type: ..q
35360 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
35370 61 62 65 6c 2d 31 31 36 38 0d 0a 53 45 4c 45 43  abel-1168..SELEC
35380 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43 41 53  T DISTINCT - CAS
35390 54 28 20 32 33 20 41 53 20 44 45 43 49 4d 41 4c  T( 23 AS DECIMAL
353a0 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
353b0 74 61 62 31 20 63 6f 72 30 20 57 48 45 52 45 20  tab1 cor0 WHERE 
353c0 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  NULL IS NOT NULL
353d0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
353e0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
353f0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
35400 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
35410 31 36 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  168..SELECT DIST
35420 49 4e 43 54 20 2d 20 43 41 53 54 20 28 20 32 33  INCT - CAST ( 23
35430 20 41 53 20 52 45 41 4c 20 29 20 41 53 20 63 6f   AS REAL ) AS co
35440 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  l0 FROM tab1 cor
35450 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20  0 WHERE NULL IS 
35460 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
35470 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
35480 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
35490 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
354a0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
354b0 62 65 6c 2d 31 31 36 39 0d 0a 53 45 4c 45 43 54  bel-1169..SELECT
354c0 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 35 36 20 2b   - col0 * + 56 +
354d0 20 2b 20 2d 20 31 37 20 2a 20 2b 20 63 6f 6c 31   + - 17 * + col1
354e0 20 41 53 20 63 6f 6c 31 2c 20 39 36 20 44 49 56   AS col1, 96 DIV
354f0 20 2b 20 34 33 20 41 53 20 63 6f 6c 32 20 46 52   + 43 AS col2 FR
35500 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d  OM tab0 cor0..--
35510 2d 2d 0d 0a 2d 32 32 31 37 0d 0a 32 0d 0a 2d 35  --..-2217..2..-5
35520 32 32 39 0d 0a 32 0d 0a 2d 35 34 34 39 0d 0a 32  229..2..-5449..2
35530 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
35540 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
35550 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
35560 6f 72 74 20 6c 61 62 65 6c 2d 31 31 36 39 0d 0a  ort label-1169..
35570 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2a 20  SELECT - col0 * 
35580 2b 20 35 36 20 2b 20 2b 20 2d 20 31 37 20 2a 20  + 56 + + - 17 * 
35590 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 2c 20  + col1 AS col1, 
355a0 39 36 20 2f 20 2b 20 34 33 20 41 53 20 63 6f 6c  96 / + 43 AS col
355b0 32 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  2 FROM tab0 cor0
355c0 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32 31 37 0d 0a 32  ..----..-2217..2
355d0 0d 0a 2d 35 32 32 39 0d 0a 32 0d 0a 2d 35 34 34  ..-5229..2..-544
355e0 39 0d 0a 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49  9..2....query II
355f0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
35600 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
35610 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
35620 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 42 45  HERE NOT NULL BE
35630 54 57 45 45 4e 20 2b 20 63 6f 6c 32 20 41 4e 44  TWEEN + col2 AND
35640 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 32   - col1 + + col2
35650 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
35660 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
35670 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
35680 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20  AS cor0 WHERE + 
35690 63 6f 6c 31 20 2b 20 2b 20 39 20 49 53 20 4e 55  col1 + + 9 IS NU
356a0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70  LL..----....skip
356b0 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
356c0 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
356d0 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
356e0 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
356f0 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
35700 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
35710 20 2d 20 36 34 20 2a 20 2d 20 2d 20 63 6f 6c 31   - 64 * - - col1
35720 20 2a 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 32   * col1 + + col2
35730 20 2b 20 2d 20 28 20 63 6f 6c 31 20 29 20 63 6f   + - ( col1 ) co
35740 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l1 FROM tab0 cor
35750 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 38 32 33 35 0d  0..----..-28235.
35760 0a 2d 34 31 39 39 33 38 0d 0a 33 34 0d 0a 0d 0a  .-419938..34....
35770 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
35780 0a 53 45 4c 45 43 54 20 2b 20 34 33 20 2b 20 2b  .SELECT + 43 + +
35790 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52   col2 AS col2 FR
357a0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
357b0 34 32 0d 0a 35 33 0d 0a 39 30 0d 0a 0d 0a 6f 6e  42..53..90....on
357c0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
357d0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
357e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
357f0 20 6c 61 62 65 6c 2d 31 31 37 34 0d 0a 53 45 4c   label-1174..SEL
35800 45 43 54 20 2b 20 53 55 4d 28 20 44 49 53 54 49  ECT + SUM( DISTI
35810 4e 43 54 20 2d 20 63 6f 6c 31 20 29 20 2b 20 2b  NCT - col1 ) + +
35820 20 34 34 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   44 AS col2 FROM
35830 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32   tab1..----..-22
35840 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
35850 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
35860 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
35870 72 74 20 6c 61 62 65 6c 2d 31 31 37 34 0d 0a 53  rt label-1174..S
35880 45 4c 45 43 54 20 2b 20 53 55 4d 20 28 20 44 49  ELECT + SUM ( DI
35890 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31 20 29 20  STINCT - col1 ) 
358a0 2b 20 2b 20 34 34 20 41 53 20 63 6f 6c 32 20 46  + + 44 AS col2 F
358b0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
358c0 2d 32 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  -22....query I r
358d0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
358e0 20 63 6f 6c 32 20 2b 20 2d 20 2b 20 35 39 20 46   col2 + - + 59 F
358f0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
35900 2d 31 30 36 0d 0a 2d 31 35 38 0d 0a 2d 36 39 0d  -106..-158..-69.
35910 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
35920 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
35930 2d 20 63 6f 6c 30 20 2a 20 2d 20 2d 20 63 6f 6c  - col0 * - - col
35940 31 20 2b 20 2d 20 63 6f 6c 32 2c 20 2b 20 63 6f  1 + - col2, + co
35950 6c 32 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c  l2 + col1 AS col
35960 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  2 FROM tab1..---
35970 2d 0d 0a 2d 34 33 34 35 0d 0a 31 31 35 0d 0a 2d  -..-4345..115..-
35980 34 38 34 0d 0a 36 34 0d 0a 2d 38 31 30 0d 0a 31  484..64..-810..1
35990 31 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  10....onlyif mys
359a0 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
359b0 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
359c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
359d0 20 6c 61 62 65 6c 2d 31 31 37 37 0d 0a 53 45 4c   label-1177..SEL
359e0 45 43 54 20 44 49 53 54 49 4e 43 54 20 31 39 20  ECT DISTINCT 19 
359f0 2a 20 2d 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c  * - + CAST( NULL
35a00 20 41 53 20 53 49 47 4e 45 44 20 29 20 2d 20 2d   AS SIGNED ) - -
35a10 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
35a20 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
35a30 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
35a40 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
35a50 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
35a60 62 65 6c 2d 31 31 37 37 0d 0a 53 45 4c 45 43 54  bel-1177..SELECT
35a70 20 44 49 53 54 49 4e 43 54 20 31 39 20 2a 20 2d   DISTINCT 19 * -
35a80 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   + CAST ( NULL A
35a90 53 20 49 4e 54 45 47 45 52 20 29 20 2d 20 2d 20  S INTEGER ) - - 
35aa0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col2 FROM tab1..
35ab0 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  ----..NULL....qu
35ac0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
35ad0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
35ae0 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 55  OM tab0 WHERE NU
35af0 4c 4c 20 49 4e 20 28 20 63 6f 6c 30 20 2a 20 28  LL IN ( col0 * (
35b00 20 36 31 20 29 20 2a 20 2d 20 37 35 20 29 20 41   61 ) * - 75 ) A
35b10 4e 44 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e  ND NOT NULL IS N
35b20 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  OT NULL..----...
35b30 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
35b40 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
35b50 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
35b60 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
35b70 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
35b80 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
35b90 54 20 2d 20 38 20 2b 20 2b 20 63 6f 6c 32 20 2d  T - 8 + + col2 -
35ba0 20 2b 20 63 6f 6c 32 20 63 6f 6c 30 20 46 52 4f   + col2 col0 FRO
35bb0 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 38  M tab1..----..-8
35bc0 0d 0a 2d 38 0d 0a 2d 38 0d 0a 0d 0a 6f 6e 6c 79  ..-8..-8....only
35bd0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
35be0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
35bf0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
35c00 6c 61 62 65 6c 2d 31 31 38 30 0d 0a 53 45 4c 45  label-1180..SELE
35c10 43 54 20 44 49 53 54 49 4e 43 54 20 34 37 20 63  CT DISTINCT 47 c
35c20 6f 6c 32 2c 20 43 4f 55 4e 54 28 20 2a 20 29 20  ol2, COUNT( * ) 
35c30 2a 20 34 35 20 2a 20 2b 20 2d 20 31 34 20 63 6f  * 45 * + - 14 co
35c40 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
35c50 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 37 0d 0a  cor0..----..47..
35c60 2d 31 38 39 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  -1890....skipif 
35c70 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
35c80 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70  atible..skipif p
35c90 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
35ca0 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
35cb0 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
35cc0 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
35cd0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
35ce0 74 20 6c 61 62 65 6c 2d 31 31 38 30 0d 0a 53 45  t label-1180..SE
35cf0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 34 37  LECT DISTINCT 47
35d00 20 63 6f 6c 32 2c 20 43 4f 55 4e 54 20 28 20 2a   col2, COUNT ( *
35d10 20 29 20 2a 20 34 35 20 2a 20 2b 20 2d 20 31 34   ) * 45 * + - 14
35d20 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
35d30 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34  AS cor0..----..4
35d40 37 0d 0a 2d 31 38 39 30 0d 0a 0d 0a 71 75 65 72  7..-1890....quer
35d50 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
35d60 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
35d70 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20   tab0 WHERE NOT 
35d80 2b 20 38 30 20 2a 20 2d 20 2d 20 37 20 49 53 20  + 80 * - - 7 IS 
35d90 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  NULL..----..9 va
35da0 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
35db0 63 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61  c4b42765dff94eaa
35dc0 61 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37  a46040e537fb43b7
35dd0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
35de0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d  sort..SELECT - -
35df0 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 30 20 41   col2 + - col0 A
35e00 53 20 63 6f 6c 30 2c 20 2b 20 63 6f 6c 32 20 2a  S col0, + col2 *
35e10 20 2b 20 38 32 20 46 52 4f 4d 20 74 61 62 30 20   + 82 FROM tab0 
35e20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
35e30 54 20 28 20 4e 55 4c 4c 20 29 20 49 53 20 4e 4f  T ( NULL ) IS NO
35e40 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 37  T NULL..----..-7
35e50 37 0d 0a 38 32 30 0d 0a 32 0d 0a 38 31 31 38 0d  7..820..2..8118.
35e60 0a 33 32 0d 0a 33 38 35 34 0d 0a 0d 0a 6f 6e 6c  .32..3854....onl
35e70 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
35e80 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61   syntax: aggrega
35e90 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  te syntax: SIGNE
35ea0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
35eb0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
35ec0 31 31 38 33 0d 0a 53 45 4c 45 43 54 20 44 49 53  1183..SELECT DIS
35ed0 54 49 4e 43 54 20 2b 20 4d 41 58 28 20 2b 20 2d  TINCT + MAX( + -
35ee0 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
35ef0 49 47 4e 45 44 20 29 20 29 20 41 53 20 63 6f 6c  IGNED ) ) AS col
35f00 31 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  1 FROM tab2 cor0
35f10 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
35f20 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
35f30 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
35f40 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
35f50 61 62 65 6c 2d 31 31 38 33 0d 0a 53 45 4c 45 43  abel-1183..SELEC
35f60 54 20 44 49 53 54 49 4e 43 54 20 2b 20 4d 41 58  T DISTINCT + MAX
35f70 20 28 20 2b 20 2d 20 43 41 53 54 20 28 20 4e 55   ( + - CAST ( NU
35f80 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
35f90 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
35fa0 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab2 cor0..----..
35fb0 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  NULL....onlyif m
35fc0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
35fd0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
35fe0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
35ff0 2d 31 31 38 34 0d 0a 53 45 4c 45 43 54 20 41 4c  -1184..SELECT AL
36000 4c 20 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20  L MAX( DISTINCT 
36010 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61  - col0 ) FROM ta
36020 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
36030 0d 0a 2d 34 36 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-46....skipif 
36040 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
36050 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
36060 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
36070 38 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 4d  84..SELECT ALL M
36080 41 58 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20  AX ( DISTINCT - 
36090 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 32  col0 ) FROM tab2
360a0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
360b0 2d 34 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  -46....query III
360c0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
360d0 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31   ALL * FROM tab1
360e0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
360f0 4f 54 20 36 33 20 3d 20 35 31 0d 0a 2d 2d 2d 2d  OT 63 = 51..----
36100 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
36110 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31 62  ng to c6c0a4111b
36120 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65 34  36d04dbc811a11e4
36130 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20  d54cad....query 
36140 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
36150 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ECT * FROM tab1 
36160 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
36170 54 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 2d 20 63  T + col0 * - - c
36180 6f 6c 32 20 2a 20 28 20 2d 20 63 6f 6c 31 20 29  ol2 * ( - col1 )
36190 20 2a 20 37 37 20 2a 20 28 20 2d 20 33 33 20 29   * 77 * ( - 33 )
361a0 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
361b0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
361c0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
361d0 4c 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  L + col0 FROM ta
361e0 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
361f0 20 4e 4f 54 20 37 32 20 2b 20 2d 20 63 6f 6c 32   NOT 72 + - col2
36200 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
36210 35 31 0d 0a 38 35 0d 0a 39 31 0d 0a 0d 0a 6f 6e  51..85..91....on
36220 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
36230 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
36240 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
36250 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
36260 31 38 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  188..SELECT ALL 
36270 2d 20 39 20 2a 20 2d 20 2d 20 43 41 53 54 28 20  - 9 * - - CAST( 
36280 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
36290 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
362a0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
362b0 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
362c0 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
362d0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
362e0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
362f0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 38 38 0d  sort label-1188.
36300 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 39 20  .SELECT ALL - 9 
36310 2a 20 2d 20 2d 20 43 41 53 54 20 28 20 4e 55 4c  * - - CAST ( NUL
36320 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41  L AS INTEGER ) A
36330 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
36340 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
36350 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
36360 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
36370 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
36380 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
36390 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 38  owsort label-118
363a0 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  9..SELECT ALL + 
363b0 2b 20 53 55 4d 28 20 63 6f 6c 31 20 29 20 41 53  + SUM( col1 ) AS
363c0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
363d0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
363e0 39 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  95....skipif mys
363f0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
36400 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
36410 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 38 39 0d  sort label-1189.
36420 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20  .SELECT ALL + + 
36430 53 55 4d 20 28 20 63 6f 6c 31 20 29 20 41 53 20  SUM ( col1 ) AS 
36440 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
36450 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39  S cor0..----..19
36460 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  5....onlyif mysq
36470 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
36480 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
36490 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
364a0 39 30 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 4d  90..SELECT - + M
364b0 49 4e 28 20 44 49 53 54 49 4e 43 54 20 2b 20 38  IN( DISTINCT + 8
364c0 37 20 29 20 2a 20 43 4f 55 4e 54 28 20 2a 20 29  7 ) * COUNT( * )
364d0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
364e0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
364f0 0d 0a 2d 32 36 31 0d 0a 0d 0a 73 6b 69 70 69 66  ..-261....skipif
36500 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
36510 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
36520 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
36530 31 39 30 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20  190..SELECT - + 
36540 4d 49 4e 20 28 20 44 49 53 54 49 4e 43 54 20 2b  MIN ( DISTINCT +
36550 20 38 37 20 29 20 2a 20 43 4f 55 4e 54 20 28 20   87 ) * COUNT ( 
36560 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  * ) AS col1 FROM
36570 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
36580 2d 2d 2d 0d 0a 2d 32 36 31 0d 0a 0d 0a 6f 6e 6c  ---..-261....onl
36590 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
365a0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
365b0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
365c0 20 6c 61 62 65 6c 2d 31 31 39 31 0d 0a 53 45 4c   label-1191..SEL
365d0 45 43 54 20 4d 41 58 28 20 41 4c 4c 20 2b 20 2d  ECT MAX( ALL + -
365e0 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 31 2c   col1 ) AS col1,
365f0 20 2b 20 39 35 20 41 53 20 63 6f 6c 32 20 46 52   + 95 AS col2 FR
36600 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
36610 35 0d 0a 39 35 0d 0a 0d 0a 73 6b 69 70 69 66 20  5..95....skipif 
36620 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
36630 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
36640 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
36650 31 39 31 0d 0a 53 45 4c 45 43 54 20 4d 41 58 20  191..SELECT MAX 
36660 28 20 41 4c 4c 20 2b 20 2d 20 63 6f 6c 31 20 29  ( ALL + - col1 )
36670 20 41 53 20 63 6f 6c 31 2c 20 2b 20 39 35 20 41   AS col1, + 95 A
36680 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
36690 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 0d 0a 39 35 0d 0a  ..----..-5..95..
366a0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
366b0 74 0d 0a 53 45 4c 45 43 54 20 28 20 2d 20 63 6f  t..SELECT ( - co
366c0 6c 31 20 29 20 2a 20 2b 20 63 6f 6c 30 20 41 53  l1 ) * + col0 AS
366d0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d   col2 FROM tab2.
366e0 0a 2d 2d 2d 2d 0d 0a 2d 32 33 34 36 0d 0a 2d 34  .----..-2346..-4
366f0 39 32 38 0d 0a 2d 35 30 32 35 0d 0a 0d 0a 6f 6e  928..-5025....on
36700 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
36710 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
36720 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
36730 74 20 6c 61 62 65 6c 2d 31 31 39 33 0d 0a 53 45  t label-1193..SE
36740 4c 45 43 54 20 28 20 2b 20 2b 20 43 4f 55 4e 54  LECT ( + + COUNT
36750 28 20 2a 20 29 20 29 20 41 53 20 63 6f 6c 30 2c  ( * ) ) AS col0,
36760 20 2b 20 32 39 20 2b 20 2b 20 28 20 2b 20 4d 49   + 29 + + ( + MI
36770 4e 28 20 2d 20 37 35 20 29 20 29 20 2a 20 2d 20  N( - 75 ) ) * - 
36780 4d 49 4e 28 20 41 4c 4c 20 63 6f 6c 32 20 29 20  MIN( ALL col2 ) 
36790 2a 20 31 35 20 41 53 20 63 6f 6c 30 20 46 52 4f  * 15 AS col0 FRO
367a0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  M tab2..----..3.
367b0 0a 32 35 39 30 34 0d 0a 0d 0a 73 6b 69 70 69 66  .25904....skipif
367c0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
367d0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
367e0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
367f0 31 31 39 33 0d 0a 53 45 4c 45 43 54 20 28 20 2b  1193..SELECT ( +
36800 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29   + COUNT ( * ) )
36810 20 41 53 20 63 6f 6c 30 2c 20 2b 20 32 39 20 2b   AS col0, + 29 +
36820 20 2b 20 28 20 2b 20 4d 49 4e 20 28 20 2d 20 37   + ( + MIN ( - 7
36830 35 20 29 20 29 20 2a 20 2d 20 4d 49 4e 20 28 20  5 ) ) * - MIN ( 
36840 41 4c 4c 20 63 6f 6c 32 20 29 20 2a 20 31 35 20  ALL col2 ) * 15 
36850 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
36860 32 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 32 35 39 30  2..----..3..2590
36870 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  4....query I row
36880 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 38  sort..SELECT + 8
36890 39 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  9 AS col2 FROM t
368a0 61 62 32 2c 20 74 61 62 31 20 41 53 20 63 6f 72  ab2, tab1 AS cor
368b0 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  0..----..9 value
368c0 73 20 68 61 73 68 69 6e 67 20 74 6f 20 35 63 38  s hashing to 5c8
368d0 34 32 38 65 39 66 31 65 37 64 65 33 64 30 39 63  428e9f1e7de3d09c
368e0 62 30 38 31 34 62 34 63 63 31 37 34 33 0d 0a 0d  b0814b4cc1743...
368f0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
36900 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
36910 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
36920 6f 72 74 20 6c 61 62 65 6c 2d 31 31 39 35 0d 0a  ort label-1195..
36930 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 53 55 4d  SELECT ALL + SUM
36940 28 20 2b 20 2d 20 34 31 20 29 20 46 52 4f 4d 20  ( + - 41 ) FROM 
36950 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 33  tab2..----..-123
36960 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
36970 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
36980 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
36990 72 74 20 6c 61 62 65 6c 2d 31 31 39 35 0d 0a 53  rt label-1195..S
369a0 45 4c 45 43 54 20 41 4c 4c 20 2b 20 53 55 4d 20  ELECT ALL + SUM 
369b0 28 20 2b 20 2d 20 34 31 20 29 20 46 52 4f 4d 20  ( + - 41 ) FROM 
369c0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 33  tab2..----..-123
369d0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
369e0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
369f0 49 4e 43 54 20 2b 20 63 6f 6c 30 20 2a 20 2b 20  INCT + col0 * + 
36a00 2d 20 63 6f 6c 31 20 2a 20 33 34 20 41 53 20 63  - col1 * 34 AS c
36a10 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
36a20 2d 2d 2d 0d 0a 2d 31 34 34 35 30 0d 0a 2d 31 34  ---..-14450..-14
36a30 35 34 31 38 0d 0a 2d 32 34 32 37 36 0d 0a 0d 0a  5418..-24276....
36a40 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
36a50 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
36a60 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
36a70 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
36a80 2d 31 31 39 37 0d 0a 53 45 4c 45 43 54 20 41 4c  -1197..SELECT AL
36a90 4c 20 2b 20 63 6f 6c 31 20 2a 20 36 20 44 49 56  L + col1 * 6 DIV
36aa0 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74   + - col0 FROM t
36ab0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d  ab0..----..-1..-
36ac0 33 32 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  32..0....skipif 
36ad0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
36ae0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
36af0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
36b00 39 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  97..SELECT ALL +
36b10 20 63 6f 6c 31 20 2a 20 36 20 2f 20 2b 20 2d 20   col1 * 6 / + - 
36b20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
36b30 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 33 32 0d 0a 30  ----..-1..-32..0
36b40 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
36b50 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
36b60 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
36b70 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
36b80 61 62 65 6c 2d 31 31 39 38 0d 0a 53 45 4c 45 43  abel-1198..SELEC
36b90 54 20 41 4c 4c 20 43 41 53 54 28 20 4e 55 4c 4c  T ALL CAST( NULL
36ba0 20 41 53 20 53 49 47 4e 45 44 20 29 20 2f 20 63   AS SIGNED ) / c
36bb0 6f 6c 31 20 2a 20 2b 20 28 20 2d 20 63 6f 6c 32  ol1 * + ( - col2
36bc0 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
36bd0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab2..----..NULL
36be0 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
36bf0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
36c00 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
36c10 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
36c20 61 62 65 6c 2d 31 31 39 38 0d 0a 53 45 4c 45 43  abel-1198..SELEC
36c30 54 20 41 4c 4c 20 43 41 53 54 20 28 20 4e 55 4c  T ALL CAST ( NUL
36c40 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2f  L AS INTEGER ) /
36c50 20 63 6f 6c 31 20 2a 20 2b 20 28 20 2d 20 63 6f   col1 * + ( - co
36c60 6c 32 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  l2 ) AS col2 FRO
36c70 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab2..----..NU
36c80 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
36c90 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
36ca0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
36cb0 43 54 20 39 39 20 2a 20 2d 20 36 33 20 46 52 4f  CT 99 * - 63 FRO
36cc0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 36  M tab2..----..-6
36cd0 32 33 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  237....query I r
36ce0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
36cf0 49 53 54 49 4e 43 54 20 2d 20 37 33 20 2a 20 63  ISTINCT - 73 * c
36d00 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol0 AS col1 FROM
36d10 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
36d20 0d 0a 2d 33 37 32 33 0d 0a 2d 36 32 30 35 0d 0a  ..-3723..-6205..
36d30 2d 36 36 34 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -6643....onlyif 
36d40 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
36d50 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
36d60 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
36d70 6f 72 74 20 6c 61 62 65 6c 2d 31 32 30 31 0d 0a  ort label-1201..
36d80 53 45 4c 45 43 54 20 2b 20 38 38 20 2a 20 2d 20  SELECT + 88 * - 
36d90 28 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  ( CAST( NULL AS 
36da0 53 49 47 4e 45 44 20 29 20 29 20 2f 20 2b 20 2d  SIGNED ) ) / + -
36db0 20 35 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53   51 FROM tab0 AS
36dc0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
36dd0 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
36de0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
36df0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
36e00 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
36e10 6c 61 62 65 6c 2d 31 32 30 31 0d 0a 53 45 4c 45  label-1201..SELE
36e20 43 54 20 2b 20 38 38 20 2a 20 2d 20 28 20 43 41  CT + 88 * - ( CA
36e30 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
36e40 45 47 45 52 20 29 20 29 20 2f 20 2b 20 2d 20 35  EGER ) ) / + - 5
36e50 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
36e60 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
36e70 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f  .NULL..NULL....o
36e80 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
36e90 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
36ea0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
36eb0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
36ec0 31 32 30 32 0d 0a 53 45 4c 45 43 54 20 44 49 53  1202..SELECT DIS
36ed0 54 49 4e 43 54 20 2b 20 34 31 20 2d 20 2d 20 2b  TINCT + 41 - - +
36ee0 20 63 6f 6c 31 20 2b 20 2d 20 43 41 53 54 28 20   col1 + - CAST( 
36ef0 2d 20 63 6f 6c 31 20 41 53 20 53 49 47 4e 45 44  - col1 AS SIGNED
36f00 20 29 20 2b 20 2d 20 35 31 20 2a 20 63 6f 6c 30   ) + - 51 * col0
36f10 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20   FROM tab0 cor0 
36f20 57 48 45 52 45 20 4e 55 4c 4c 20 3c 3e 20 34 35  WHERE NULL <> 45
36f30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
36f40 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
36f50 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
36f60 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
36f70 32 30 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  202..SELECT DIST
36f80 49 4e 43 54 20 2b 20 34 31 20 2d 20 2d 20 2b 20  INCT + 41 - - + 
36f90 63 6f 6c 31 20 2b 20 2d 20 43 41 53 54 20 28 20  col1 + - CAST ( 
36fa0 2d 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45  - col1 AS INTEGE
36fb0 52 20 29 20 2b 20 2d 20 35 31 20 2a 20 63 6f 6c  R ) + - 51 * col
36fc0 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  0 FROM tab0 cor0
36fd0 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c 3e 20 34   WHERE NULL <> 4
36fe0 35 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  5..----....onlyi
36ff0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
37000 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
37010 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
37020 62 65 6c 2d 31 32 30 33 0d 0a 53 45 4c 45 43 54  bel-1203..SELECT
37030 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20   - COUNT( * ) * 
37040 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  + - COUNT( * ) F
37050 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d  ROM tab0 cor0..-
37060 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 73 6b 69 70 69 66  ---..9....skipif
37070 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
37080 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
37090 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
370a0 32 30 33 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f  203..SELECT - CO
370b0 55 4e 54 20 28 20 2a 20 29 20 2a 20 2b 20 2d 20  UNT ( * ) * + - 
370c0 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d  COUNT ( * ) FROM
370d0 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab0 cor0..----
370e0 0d 0a 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ..9....query I r
370f0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
37100 20 2b 20 32 37 20 2f 20 2d 20 32 35 20 41 53 20   + 27 / - 25 AS 
37110 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57  col2 FROM tab1 W
37120 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 4f 54  HERE NULL IS NOT
37130 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
37140 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
37150 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 34 20 2b  SELECT ALL + 4 +
37160 20 2d 20 2b 20 36 32 20 46 52 4f 4d 20 74 61 62   - + 62 FROM tab
37170 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
37180 0a 2d 35 38 0d 0a 2d 35 38 0d 0a 2d 35 38 0d 0a  .-58..-58..-58..
37190 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
371a0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
371b0 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  x: ..query II ro
371c0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 30 36  wsort label-1206
371d0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d  ..SELECT ALL + M
371e0 49 4e 28 20 2d 20 2b 20 38 34 20 29 20 2b 20 37  IN( - + 84 ) + 7
371f0 33 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  3 + - COUNT( * )
37200 20 41 53 20 63 6f 6c 30 2c 20 2d 20 43 4f 55 4e   AS col0, - COUN
37210 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46  T( * ) AS col2 F
37220 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d  ROM tab0 cor0..-
37230 2d 2d 2d 0d 0a 2d 31 34 0d 0a 2d 33 0d 0a 0d 0a  ---..-14..-3....
37240 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
37250 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
37260 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
37270 6c 61 62 65 6c 2d 31 32 30 36 0d 0a 53 45 4c 45  label-1206..SELE
37280 43 54 20 41 4c 4c 20 2b 20 4d 49 4e 20 28 20 2d  CT ALL + MIN ( -
37290 20 2b 20 38 34 20 29 20 2b 20 37 33 20 2b 20 2d   + 84 ) + 73 + -
372a0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
372b0 63 6f 6c 30 2c 20 2d 20 43 4f 55 4e 54 20 28 20  col0, - COUNT ( 
372c0 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  * ) AS col2 FROM
372d0 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab0 cor0..----
372e0 0d 0a 2d 31 34 0d 0a 2d 33 0d 0a 0d 0a 6f 6e 6c  ..-14..-3....onl
372f0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
37300 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
37310 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
37320 6c 61 62 65 6c 2d 31 32 30 37 0d 0a 53 45 4c 45  label-1207..SELE
37330 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20  CT + COUNT( * ) 
37340 2b 20 2d 20 2d 20 35 39 20 46 52 4f 4d 20 74 61  + - - 59 FROM ta
37350 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
37360 0d 0a 36 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..62....skipif m
37370 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
37380 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
37390 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 30  owsort label-120
373a0 37 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e  7..SELECT + COUN
373b0 54 20 28 20 2a 20 29 20 2b 20 2d 20 2d 20 35 39  T ( * ) + - - 59
373c0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
373d0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 32 0d 0a 0d 0a  r0..----..62....
373e0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
373f0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c  ..SELECT ALL col
37400 31 20 2b 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 63  1 + - col2 * - c
37410 6f 6c 31 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  ol1 + col2 AS co
37420 6c 31 2c 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f  l1, + col1 AS co
37430 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
37440 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 34 37  cor0..----..1247
37450 0d 0a 35 31 0d 0a 33 31 39 37 0d 0a 37 37 0d 0a  ..51..3197..77..
37460 34 30 31 31 0d 0a 36 37 0d 0a 0d 0a 71 75 65 72  4011..67....quer
37470 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
37480 45 43 54 20 2b 20 2b 20 37 30 20 2b 20 2d 20 35  ECT + + 70 + - 5
37490 33 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  3 AS col1 FROM t
374a0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
374b0 2d 0d 0a 31 37 0d 0a 31 37 0d 0a 31 37 0d 0a 0d  -..17..17..17...
374c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
374d0 0d 0a 53 45 4c 45 43 54 20 2d 20 32 33 20 2b 20  ..SELECT - 23 + 
374e0 2b 20 34 36 20 46 52 4f 4d 20 74 61 62 30 20 41  + 46 FROM tab0 A
374f0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33  S cor0..----..23
37500 0d 0a 32 33 0d 0a 32 33 0d 0a 0d 0a 6f 6e 6c 79  ..23..23....only
37510 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
37520 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74  syntax: aggregat
37530 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  e syntax: SIGNED
37540 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
37550 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
37560 32 31 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  211..SELECT ALL 
37570 2b 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  + - CAST( NULL A
37580 53 20 53 49 47 4e 45 44 20 29 20 2b 20 53 55 4d  S SIGNED ) + SUM
37590 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20  ( DISTINCT col1 
375a0 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  ) col1 FROM tab2
375b0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
375c0 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
375d0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
375e0 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
375f0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
37600 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
37610 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
37620 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
37630 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
37640 6c 61 62 65 6c 2d 31 32 31 31 0d 0a 53 45 4c 45  label-1211..SELE
37650 43 54 20 41 4c 4c 20 2b 20 2d 20 43 41 53 54 20  CT ALL + - CAST 
37660 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
37670 52 20 29 20 2b 20 53 55 4d 20 28 20 44 49 53 54  R ) + SUM ( DIST
37680 49 4e 43 54 20 63 6f 6c 31 20 29 20 63 6f 6c 31  INCT col1 ) col1
37690 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
376a0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
376b0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
376c0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
376d0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
376e0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 31 32 0d  sort label-1212.
376f0 0a 53 45 4c 45 43 54 20 2d 20 2d 20 33 31 20 2a  .SELECT - - 31 *
37700 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52   - COUNT( * ) FR
37710 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
37720 0a 2d 2d 2d 2d 0d 0a 2d 39 33 0d 0a 0d 0a 73 6b  .----..-93....sk
37730 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
37740 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
37750 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
37760 65 6c 2d 31 32 31 32 0d 0a 53 45 4c 45 43 54 20  el-1212..SELECT 
37770 2d 20 2d 20 33 31 20 2a 20 2d 20 43 4f 55 4e 54  - - 31 * - COUNT
37780 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30   ( * ) FROM tab0
37790 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
377a0 2d 39 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  -93....query I r
377b0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
377c0 4c 4c 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 28 20  LL + col1 + - ( 
377d0 2b 20 2b 20 63 6f 6c 32 20 29 20 41 53 20 63 6f  + + col2 ) AS co
377e0 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l0 FROM tab2..--
377f0 2d 2d 0d 0a 32 38 0d 0a 33 37 0d 0a 39 0d 0a 0d  --..28..37..9...
37800 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
37810 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
37820 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
37830 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
37840 6c 2d 31 32 31 34 0d 0a 53 45 4c 45 43 54 20 41  l-1214..SELECT A
37850 4c 4c 20 28 20 2d 20 63 6f 6c 31 20 29 20 2d 20  LL ( - col1 ) - 
37860 2b 20 63 6f 6c 30 20 44 49 56 20 2b 20 2b 20 63  + col0 DIV + + c
37870 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol0 AS col1 FROM
37880 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35   tab1..----..-15
37890 0d 0a 2d 34 38 0d 0a 2d 36 0d 0a 0d 0a 73 6b 69  ..-48..-6....ski
378a0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
378b0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
378c0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
378d0 6c 2d 31 32 31 34 0d 0a 53 45 4c 45 43 54 20 41  l-1214..SELECT A
378e0 4c 4c 20 28 20 2d 20 63 6f 6c 31 20 29 20 2d 20  LL ( - col1 ) - 
378f0 2b 20 63 6f 6c 30 20 2f 20 2b 20 2b 20 63 6f 6c  + col0 / + + col
37900 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  0 AS col1 FROM t
37910 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a  ab1..----..-15..
37920 2d 34 38 0d 0a 2d 36 0d 0a 0d 0a 71 75 65 72 79  -48..-6....query
37930 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
37940 43 54 20 41 4c 4c 20 63 6f 6c 32 20 2b 20 2b 20  CT ALL col2 + + 
37950 2b 20 35 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  + 51 FROM tab0..
37960 2d 2d 2d 2d 0d 0a 31 35 30 0d 0a 36 31 0d 0a 39  ----..150..61..9
37970 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  8....query I row
37980 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 33  sort..SELECT - 3
37990 30 20 2f 20 2d 20 2b 20 32 32 20 2f 20 2d 20 33  0 / - + 22 / - 3
379a0 30 20 2f 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20  0 / - col0 FROM 
379b0 74 61 62 31 20 57 48 45 52 45 20 4e 55 4c 4c 20  tab1 WHERE NULL 
379c0 42 45 54 57 45 45 4e 20 2d 20 2b 20 63 6f 6c 31  BETWEEN - + col1
379d0 20 41 4e 44 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d   AND ( NULL )..-
379e0 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ---....query III
379f0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
37a00 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45   * FROM tab1 WHE
37a10 52 45 20 2b 20 2d 20 33 31 20 49 53 20 4e 55 4c  RE + - 31 IS NUL
37a20 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
37a30 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
37a40 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  LECT * FROM tab1
37a50 20 57 48 45 52 45 20 2d 20 31 30 20 49 53 20 4e   WHERE - 10 IS N
37a60 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
37a70 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
37a80 4c 45 43 54 20 2d 20 31 33 20 2a 20 2b 20 63 6f  LECT - 13 * + co
37a90 6c 31 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c  l1 - col0 AS col
37aa0 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
37ab0 2d 0d 0a 2d 31 30 36 38 0d 0a 2d 31 31 30 0d 0a  -..-1068..-110..
37ac0 2d 33 36 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -360....query I 
37ad0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
37ae0 41 4c 4c 20 2b 20 34 30 20 2b 20 2d 20 63 6f 6c  ALL + 40 + - col
37af0 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  2 AS col1 FROM t
37b00 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
37b10 2d 0d 0a 2d 31 39 0d 0a 2d 32 38 0d 0a 2d 35 36  -..-19..-28..-56
37b20 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
37b30 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
37b40 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  tax: ..query II 
37b50 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
37b60 32 31 0d 0a 53 45 4c 45 43 54 20 2d 20 34 34 20  21..SELECT - 44 
37b70 2b 20 35 33 20 41 53 20 63 6f 6c 32 2c 20 28 20  + 53 AS col2, ( 
37b80 2d 20 32 37 20 29 20 2b 20 2b 20 4d 49 4e 28 20  - 27 ) + + MIN( 
37b90 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 29 20  DISTINCT col2 ) 
37ba0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
37bb0 30 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 2d 31 37 0d  0..----..9..-17.
37bc0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
37bd0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
37be0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
37bf0 72 74 20 6c 61 62 65 6c 2d 31 32 32 31 0d 0a 53  rt label-1221..S
37c00 45 4c 45 43 54 20 2d 20 34 34 20 2b 20 35 33 20  ELECT - 44 + 53 
37c10 41 53 20 63 6f 6c 32 2c 20 28 20 2d 20 32 37 20  AS col2, ( - 27 
37c20 29 20 2b 20 2b 20 4d 49 4e 20 28 20 44 49 53 54  ) + + MIN ( DIST
37c30 49 4e 43 54 20 63 6f 6c 32 20 29 20 46 52 4f 4d  INCT col2 ) FROM
37c40 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
37c50 2d 2d 2d 0d 0a 39 0d 0a 2d 31 37 0d 0a 0d 0a 6f  ---..9..-17....o
37c60 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
37c70 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
37c80 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
37c90 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
37ca0 6c 2d 31 32 32 32 0d 0a 53 45 4c 45 43 54 20 2a  l-1222..SELECT *
37cb0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
37cc0 72 30 20 57 48 45 52 45 20 2d 20 43 41 53 54 28  r0 WHERE - CAST(
37cd0 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
37ce0 29 20 2b 20 2b 20 63 6f 6c 32 20 4e 4f 54 20 42  ) + + col2 NOT B
37cf0 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20  ETWEEN NULL AND 
37d00 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  - col2..----....
37d10 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
37d20 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
37d30 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
37d40 20 6c 61 62 65 6c 2d 31 32 32 32 0d 0a 53 45 4c   label-1222..SEL
37d50 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ECT * FROM tab1 
37d60 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20  AS cor0 WHERE - 
37d70 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
37d80 4e 54 45 47 45 52 20 29 20 2b 20 2b 20 63 6f 6c  NTEGER ) + + col
37d90 32 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e 55  2 NOT BETWEEN NU
37da0 4c 4c 20 41 4e 44 20 2d 20 63 6f 6c 32 0d 0a 2d  LL AND - col2..-
37db0 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
37dc0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
37dd0 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol0 AS col0 FROM
37de0 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20   tab2 WHERE NOT 
37df0 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20 28 20 2d 20  NULL NOT IN ( - 
37e00 33 34 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  34 )..----....qu
37e10 65 72 79 20 49 49 49 49 49 49 20 72 6f 77 73 6f  ery IIIIII rowso
37e20 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
37e30 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  NCT * FROM tab1 
37e40 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
37e50 49 4e 20 74 61 62 30 20 41 53 20 63 6f 72 31 20  IN tab0 AS cor1 
37e60 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c  WHERE NOT ( NULL
37e70 20 3e 3d 20 2d 20 37 39 20 29 0d 0a 2d 2d 2d 2d   >= - 79 )..----
37e80 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
37e90 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 37 20  ort..SELECT - 7 
37ea0 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 43  FROM tab0 cor0 C
37eb0 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20 41  ROSS JOIN tab1 A
37ec0 53 20 63 6f 72 31 20 57 48 45 52 45 20 32 34 20  S cor1 WHERE 24 
37ed0 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
37ee0 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
37ef0 69 6e 67 20 74 6f 20 62 61 39 34 30 63 64 36 36  ing to ba940cd66
37f00 65 32 31 65 39 34 65 39 35 61 61 64 61 35 66 32  e21e94e95aada5f2
37f10 38 65 31 66 61 66 35 0d 0a 0d 0a 6f 6e 6c 79 69  8e1faf5....onlyi
37f20 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
37f30 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74  yntax: DECIMAL t
37f40 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  ype: ..query II 
37f50 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
37f60 32 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  26..SELECT DISTI
37f70 4e 43 54 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c 31  NCT col2, + col1
37f80 20 2f 20 2d 20 2b 20 43 41 53 54 28 20 4e 55 4c   / - + CAST( NUL
37f90 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20 2a  L AS DECIMAL ) *
37fa0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
37fb0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35  AS cor0..----..5
37fc0 39 0d 0a 4e 55 4c 4c 0d 0a 36 38 0d 0a 4e 55 4c  9..NULL..68..NUL
37fd0 4c 0d 0a 39 36 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  L..96..NULL....s
37fe0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
37ff0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
38000 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
38010 61 62 65 6c 2d 31 32 32 36 0d 0a 53 45 4c 45 43  abel-1226..SELEC
38020 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 2c  T DISTINCT col2,
38030 20 2b 20 63 6f 6c 31 20 2f 20 2d 20 2b 20 43 41   + col1 / - + CA
38040 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41  ST ( NULL AS REA
38050 4c 20 29 20 2a 20 63 6f 6c 31 20 46 52 4f 4d 20  L ) * col1 FROM 
38060 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
38070 2d 2d 0d 0a 35 39 0d 0a 4e 55 4c 4c 0d 0a 36 38  --..59..NULL..68
38080 0d 0a 4e 55 4c 4c 0d 0a 39 36 0d 0a 4e 55 4c 4c  ..NULL..96..NULL
38090 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
380a0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  ort..SELECT + co
380b0 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l0 AS col0 FROM 
380c0 74 61 62 30 20 63 6f 72 30 20 57 48 45 52 45 20  tab0 cor0 WHERE 
380d0 4e 4f 54 20 63 6f 6c 31 20 2b 20 2d 20 2b 20 39  NOT col1 + - + 9
380e0 30 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  0 <> NULL..----.
380f0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
38100 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
38110 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
38120 31 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c  1 cor0 WHERE NUL
38130 4c 20 3c 3d 20 34 38 0d 0a 2d 2d 2d 2d 0d 0a 0d  L <= 48..----...
38140 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
38150 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
38160 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
38170 6f 72 74 20 6c 61 62 65 6c 2d 31 32 32 39 0d 0a  ort label-1229..
38180 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
38190 2b 20 4d 49 4e 28 20 33 32 20 29 20 2a 20 2d 20  + MIN( 32 ) * - 
381a0 53 55 4d 28 20 2d 20 63 6f 6c 32 20 29 20 46 52  SUM( - col2 ) FR
381b0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
381c0 57 48 45 52 45 20 4e 4f 54 20 34 20 49 53 20 4e  WHERE NOT 4 IS N
381d0 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e  OT NULL..----..N
381e0 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
381f0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
38200 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
38210 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 32 39  wsort label-1229
38220 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
38230 54 20 2b 20 4d 49 4e 20 28 20 33 32 20 29 20 2a  T + MIN ( 32 ) *
38240 20 2d 20 53 55 4d 20 28 20 2d 20 63 6f 6c 32 20   - SUM ( - col2 
38250 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  ) FROM tab2 AS c
38260 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 34 20  or0 WHERE NOT 4 
38270 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
38280 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69  -..NULL....onlyi
38290 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
382a0 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
382b0 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
382c0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 33 30  wsort label-1230
382d0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
382e0 54 20 43 41 53 54 28 20 2d 20 63 6f 6c 32 20 41  T CAST( - col2 A
382f0 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f  S SIGNED ) AS co
38300 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72  l0 FROM tab2 cor
38310 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a 2d 34  0..----..-23..-4
38320 30 0d 0a 2d 35 38 0d 0a 0d 0a 73 6b 69 70 69 66  0..-58....skipif
38330 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
38340 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
38350 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
38360 32 33 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  230..SELECT DIST
38370 49 4e 43 54 20 43 41 53 54 20 28 20 2d 20 63 6f  INCT CAST ( - co
38380 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  l2 AS INTEGER ) 
38390 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
383a0 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  2 cor0..----..-2
383b0 33 0d 0a 2d 34 30 0d 0a 2d 35 38 0d 0a 0d 0a 71  3..-40..-58....q
383c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
383d0 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 63  SELECT ALL + - c
383e0 6f 6c 32 20 2a 20 2b 20 2d 20 39 32 20 46 52 4f  ol2 * + - 92 FRO
383f0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
38400 2d 2d 2d 2d 0d 0a 34 33 32 34 0d 0a 39 31 30 38  ----..4324..9108
38410 0d 0a 39 32 30 0d 0a 0d 0a 71 75 65 72 79 20 49  ..920....query I
38420 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
38430 54 20 41 4c 4c 20 63 6f 6c 32 2c 20 63 6f 6c 31  T ALL col2, col1
38440 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
38450 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35  b1 cor0..----..5
38460 39 0d 0a 35 0d 0a 36 38 0d 0a 34 37 0d 0a 39 36  9..5..68..47..96
38470 0d 0a 31 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..14....onlyif m
38480 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
38490 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
384a0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
384b0 2d 31 32 33 33 0d 0a 53 45 4c 45 43 54 20 44 49  -1233..SELECT DI
384c0 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 28 20  STINCT - COUNT( 
384d0 2d 20 2d 20 63 6f 6c 31 20 29 20 2a 20 2d 20 43  - - col1 ) * - C
384e0 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74  OUNT( * ) FROM t
384f0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a  ab0..----..9....
38500 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
38510 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
38520 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
38530 61 62 65 6c 2d 31 32 33 33 0d 0a 53 45 4c 45 43  abel-1233..SELEC
38540 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55  T DISTINCT - COU
38550 4e 54 20 28 20 2d 20 2d 20 63 6f 6c 31 20 29 20  NT ( - - col1 ) 
38560 2a 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  * - COUNT ( * ) 
38570 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
38580 0a 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .9....query I ro
38590 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 35 30  wsort..SELECT 50
385a0 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
385b0 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c   NOT NULL IS NUL
385c0 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  L..----....onlyi
385d0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
385e0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
385f0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
38600 62 65 6c 2d 31 32 33 35 0d 0a 53 45 4c 45 43 54  bel-1235..SELECT
38610 20 39 35 20 2a 20 2b 20 36 39 20 2a 20 2b 20 2d   95 * + 69 * + -
38620 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d   COUNT( * ) FROM
38630 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39   tab2..----..-19
38640 36 36 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  665....skipif my
38650 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
38660 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
38670 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 33 35  wsort label-1235
38680 0d 0a 53 45 4c 45 43 54 20 39 35 20 2a 20 2b 20  ..SELECT 95 * + 
38690 36 39 20 2a 20 2b 20 2d 20 43 4f 55 4e 54 20 28  69 * + - COUNT (
386a0 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a   * ) FROM tab2..
386b0 2d 2d 2d 2d 0d 0a 2d 31 39 36 36 35 0d 0a 0d 0a  ----..-19665....
386c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
386d0 0a 53 45 4c 45 43 54 20 28 20 2b 20 28 20 35 35  .SELECT ( + ( 55
386e0 20 29 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f   ) ) AS col0 FRO
386f0 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54  M tab0 WHERE NOT
38700 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d   NULL IS NULL..-
38710 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  ---....skipif po
38720 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
38730 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
38740 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
38750 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
38760 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
38770 0d 0a 53 45 4c 45 43 54 20 2d 20 34 34 20 63 6f  ..SELECT - 44 co
38780 6c 32 2c 20 2d 20 38 33 20 2a 20 2d 20 63 6f 6c  l2, - 83 * - col
38790 31 20 2b 20 2d 20 2d 20 63 6f 6c 32 20 46 52 4f  1 + - - col2 FRO
387a0 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
387b0 20 2b 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e   + col2 IS NOT N
387c0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
387d0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
387e0 45 4c 45 43 54 20 2b 20 63 6f 6c 31 2c 20 63 6f  ELECT + col1, co
387f0 6c 30 20 2a 20 2d 20 63 6f 6c 30 20 2a 20 2b 20  l0 * - col0 * + 
38800 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
38810 2d 2d 2d 2d 0d 0a 31 0d 0a 2d 39 33 31 34 39 31  ----..1..-931491
38820 0d 0a 32 31 0d 0a 2d 37 35 36 39 30 0d 0a 38 31  ..21..-75690..81
38830 0d 0a 2d 31 30 35 37 35 0d 0a 0d 0a 6f 6e 6c 79  ..-10575....only
38840 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
38850 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
38860 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
38870 61 62 65 6c 2d 31 32 33 39 0d 0a 53 45 4c 45 43  abel-1239..SELEC
38880 54 20 53 55 4d 28 20 2d 20 63 6f 6c 32 20 29 20  T SUM( - col2 ) 
38890 2a 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  * + + COUNT( * )
388a0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
388b0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 36 39 0d 0a  b1..----..-669..
388c0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
388d0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
388e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
388f0 20 6c 61 62 65 6c 2d 31 32 33 39 0d 0a 53 45 4c   label-1239..SEL
38900 45 43 54 20 53 55 4d 20 28 20 2d 20 63 6f 6c 32  ECT SUM ( - col2
38910 20 29 20 2a 20 2b 20 2b 20 43 4f 55 4e 54 20 28   ) * + + COUNT (
38920 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   * ) AS col1 FRO
38930 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 36  M tab1..----..-6
38940 36 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  69....onlyif mys
38950 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
38960 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
38970 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
38980 20 6c 61 62 65 6c 2d 31 32 34 30 0d 0a 53 45 4c   label-1240..SEL
38990 45 43 54 20 2d 20 43 41 53 54 28 20 2d 20 2b 20  ECT - CAST( - + 
389a0 28 20 2d 20 63 6f 6c 30 20 29 20 41 53 20 53 49  ( - col0 ) AS SI
389b0 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62 32  GNED ) FROM tab2
389c0 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a 2d 36 34  ..----..-46..-64
389d0 0d 0a 2d 37 35 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-75....skipif 
389e0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
389f0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
38a00 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
38a10 34 30 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53  40..SELECT - CAS
38a20 54 20 28 20 2d 20 2b 20 28 20 2d 20 63 6f 6c 30  T ( - + ( - col0
38a30 20 29 20 41 53 20 49 4e 54 45 47 45 52 20 29 20   ) AS INTEGER ) 
38a40 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
38a50 0a 2d 34 36 0d 0a 2d 36 34 0d 0a 2d 37 35 0d 0a  .-46..-64..-75..
38a60 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
38a70 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
38a80 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
38a90 54 20 63 6f 6c 31 20 2d 20 38 32 20 2b 20 2d 20  T col1 - 82 + - 
38aa0 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col0 IS NOT NULL
38ab0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
38ac0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
38ad0 54 20 44 49 53 54 49 4e 43 54 20 32 37 20 2b 20  T DISTINCT 27 + 
38ae0 2d 20 63 6f 6c 32 20 2b 20 2d 20 38 20 2b 20 2d  - col2 + - 8 + -
38af0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
38b00 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
38b10 31 37 37 0d 0a 2d 34 33 0d 0a 2d 37 38 0d 0a 0d  177..-43..-78...
38b20 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
38b30 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
38b40 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
38b50 48 45 52 45 20 4e 4f 54 20 2b 20 28 20 2d 20 2d  HERE NOT + ( - -
38b60 20 32 36 20 29 20 4e 4f 54 20 49 4e 20 28 20 2d   26 ) NOT IN ( -
38b70 20 2d 20 63 6f 6c 30 20 2f 20 2b 20 2b 20 34 37   - col0 / + + 47
38b80 2c 20 2d 20 63 6f 6c 30 20 2d 20 2d 20 2b 20 63  , - col0 - - + c
38b90 6f 6c 30 20 2d 20 2d 20 37 30 20 29 0d 0a 2d 2d  ol0 - - 70 )..--
38ba0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
38bb0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
38bc0 4c 20 2d 20 38 38 20 2a 20 32 39 20 2b 20 2d 20  L - 88 * 29 + - 
38bd0 31 36 20 2b 20 2b 20 2d 20 63 6f 6c 30 20 46 52  16 + + - col0 FR
38be0 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d  OM tab2 cor0..--
38bf0 2d 2d 0d 0a 2d 32 36 31 34 0d 0a