sqllogictest
Hex Artifact Content
Not logged in

Artifact 5565c25d062c30aeb20b93574302eccee9b66f7e:


0000: 68 61 73 68 2d 74 68 72 65 73 68 6f 6c 64 20 38  hash-threshold 8
0010: 0d 0a 0d 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b  ....statement ok
0020: 0d 0a 43 52 45 41 54 45 20 54 41 42 4c 45 20 74  ..CREATE TABLE t
0030: 61 62 30 28 63 6f 6c 30 20 49 4e 54 45 47 45 52  ab0(col0 INTEGER
0040: 2c 20 63 6f 6c 31 20 49 4e 54 45 47 45 52 2c 20  , col1 INTEGER, 
0050: 63 6f 6c 32 20 49 4e 54 45 47 45 52 29 0d 0a 0d  col2 INTEGER)...
0060: 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 43  .statement ok..C
0070: 52 45 41 54 45 20 54 41 42 4c 45 20 74 61 62 31  REATE TABLE tab1
0080: 28 63 6f 6c 30 20 49 4e 54 45 47 45 52 2c 20 63  (col0 INTEGER, c
0090: 6f 6c 31 20 49 4e 54 45 47 45 52 2c 20 63 6f 6c  ol1 INTEGER, col
00a0: 32 20 49 4e 54 45 47 45 52 29 0d 0a 0d 0a 73 74  2 INTEGER)....st
00b0: 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 43 52 45 41  atement ok..CREA
00c0: 54 45 20 54 41 42 4c 45 20 74 61 62 32 28 63 6f  TE TABLE tab2(co
00d0: 6c 30 20 49 4e 54 45 47 45 52 2c 20 63 6f 6c 31  l0 INTEGER, col1
00e0: 20 49 4e 54 45 47 45 52 2c 20 63 6f 6c 32 20 49   INTEGER, col2 I
00f0: 4e 54 45 47 45 52 29 0d 0a 0d 0a 73 74 61 74 65  NTEGER)....state
0100: 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45 52 54 20  ment ok..INSERT 
0110: 49 4e 54 4f 20 74 61 62 30 20 56 41 4c 55 45 53  INTO tab0 VALUES
0120: 28 39 37 2c 31 2c 39 39 29 0d 0a 0d 0a 73 74 61  (97,1,99)....sta
0130: 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45 52  tement ok..INSER
0140: 54 20 49 4e 54 4f 20 74 61 62 30 20 56 41 4c 55  T INTO tab0 VALU
0150: 45 53 28 31 35 2c 38 31 2c 34 37 29 0d 0a 0d 0a  ES(15,81,47)....
0160: 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49 4e  statement ok..IN
0170: 53 45 52 54 20 49 4e 54 4f 20 74 61 62 30 20 56  SERT INTO tab0 V
0180: 41 4c 55 45 53 28 38 37 2c 32 31 2c 31 30 29 0d  ALUES(87,21,10).
0190: 0a 0d 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d  ...statement ok.
01a0: 0a 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 61 62  .INSERT INTO tab
01b0: 31 20 56 41 4c 55 45 53 28 35 31 2c 31 34 2c 39  1 VALUES(51,14,9
01c0: 36 29 0d 0a 0d 0a 73 74 61 74 65 6d 65 6e 74 20  6)....statement 
01d0: 6f 6b 0d 0a 49 4e 53 45 52 54 20 49 4e 54 4f 20  ok..INSERT INTO 
01e0: 74 61 62 31 20 56 41 4c 55 45 53 28 38 35 2c 35  tab1 VALUES(85,5
01f0: 2c 35 39 29 0d 0a 0d 0a 73 74 61 74 65 6d 65 6e  ,59)....statemen
0200: 74 20 6f 6b 0d 0a 49 4e 53 45 52 54 20 49 4e 54  t ok..INSERT INT
0210: 4f 20 74 61 62 31 20 56 41 4c 55 45 53 28 39 31  O tab1 VALUES(91
0220: 2c 34 37 2c 36 38 29 0d 0a 0d 0a 73 74 61 74 65  ,47,68)....state
0230: 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45 52 54 20  ment ok..INSERT 
0240: 49 4e 54 4f 20 74 61 62 32 20 56 41 4c 55 45 53  INTO tab2 VALUES
0250: 28 36 34 2c 37 37 2c 34 30 29 0d 0a 0d 0a 73 74  (64,77,40)....st
0260: 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45  atement ok..INSE
0270: 52 54 20 49 4e 54 4f 20 74 61 62 32 20 56 41 4c  RT INTO tab2 VAL
0280: 55 45 53 28 37 35 2c 36 37 2c 35 38 29 0d 0a 0d  UES(75,67,58)...
0290: 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49  .statement ok..I
02a0: 4e 53 45 52 54 20 49 4e 54 4f 20 74 61 62 32 20  NSERT INTO tab2 
02b0: 56 41 4c 55 45 53 28 34 36 2c 35 31 2c 32 33 29  VALUES(46,51,23)
02c0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
02d0: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
02e0: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
02f0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 30 0d 0a  owsort label-0..
0300: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
0310: 4d 49 4e 28 20 41 4c 4c 20 2b 20 35 32 20 29 20  MIN( ALL + 52 ) 
0320: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
0330: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
0340: 0a 35 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .52....skipif my
0350: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
0360: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
0370: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 30 0d 0a 53  wsort label-0..S
0380: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 4d  ELECT DISTINCT M
0390: 49 4e 20 28 20 41 4c 4c 20 2b 20 35 32 20 29 20  IN ( ALL + 52 ) 
03a0: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
03b0: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
03c0: 0a 35 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .52....query I r
03d0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
03e0: 4c 4c 20 39 37 20 2a 20 2d 20 30 20 41 53 20 63  LL 97 * - 0 AS c
03f0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
0400: 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a  ---..0..0..0....
0410: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
0420: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
0430: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
0440: 72 74 20 6c 61 62 65 6c 2d 32 0d 0a 53 45 4c 45  rt label-2..SELE
0450: 43 54 20 41 4c 4c 20 2d 20 4d 41 58 28 20 33 32  CT ALL - MAX( 32
0460: 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
0470: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 32 0d  tab2..----..-32.
0480: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
0490: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
04a0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
04b0: 74 20 6c 61 62 65 6c 2d 32 0d 0a 53 45 4c 45 43  t label-2..SELEC
04c0: 54 20 41 4c 4c 20 2d 20 4d 41 58 20 28 20 33 32  T ALL - MAX ( 32
04d0: 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
04e0: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 32 0d  tab2..----..-32.
04f0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
0500: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44  # CAST syntax: D
0510: 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71  ECIMAL type: ..q
0520: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
0530: 20 6c 61 62 65 6c 2d 33 0d 0a 53 45 4c 45 43 54   label-3..SELECT
0540: 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31   ALL * FROM tab1
0550: 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2d 20 63   WHERE NOT ( - c
0560: 6f 6c 32 20 2a 20 2d 20 63 6f 6c 32 20 29 20 3c  ol2 * - col2 ) <
0570: 20 28 20 2d 20 63 6f 6c 32 20 2a 20 43 41 53 54   ( - col2 * CAST
0580: 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41  ( NULL AS DECIMA
0590: 4c 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73  L ) )..----....s
05a0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
05b0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
05c0: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
05d0: 6c 61 62 65 6c 2d 33 0d 0a 53 45 4c 45 43 54 20  label-3..SELECT 
05e0: 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ALL * FROM tab1 
05f0: 57 48 45 52 45 20 4e 4f 54 20 28 20 2d 20 63 6f  WHERE NOT ( - co
0600: 6c 32 20 2a 20 2d 20 63 6f 6c 32 20 29 20 3c 20  l2 * - col2 ) < 
0610: 28 20 2d 20 63 6f 6c 32 20 2a 20 43 41 53 54 20  ( - col2 * CAST 
0620: 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29  ( NULL AS REAL )
0630: 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70   )..----....skip
0640: 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
0650: 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
0660: 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
0670: 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
0680: 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  mns..query II ro
0690: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
06a0: 37 39 20 63 6f 6c 31 2c 20 63 6f 6c 30 20 41 53  79 col1, col0 AS
06b0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
06c0: 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20 4e  WHERE NOT col1 N
06d0: 4f 54 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20  OT BETWEEN NULL 
06e0: 41 4e 44 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d  AND ( NULL )..--
06f0: 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
0700: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
0710: 4c 20 2b 20 63 6f 6c 32 20 2b 20 32 35 20 41 53  L + col2 + 25 AS
0720: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
0730: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
0740: 32 34 0d 0a 33 35 0d 0a 37 32 0d 0a 0d 0a 71 75  24..35..72....qu
0750: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
0760: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
0770: 20 35 38 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   58 AS col1 FROM
0780: 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 43 52   tab1 AS cor0 CR
0790: 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53  OSS JOIN tab2 AS
07a0: 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 35 38 0d   cor1..----..58.
07b0: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
07c0: 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20  rt..SELECT col2 
07d0: 2b 20 35 35 20 41 53 20 63 6f 6c 31 20 46 52 4f  + 55 AS col1 FRO
07e0: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30  M tab0..----..10
07f0: 32 0d 0a 31 35 34 0d 0a 36 35 0d 0a 0d 0a 6f 6e  2..154..65....on
0800: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
0810: 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
0820: 20 74 79 70 65 3a 20 44 49 56 20 66 6f 72 20 69   type: DIV for i
0830: 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
0840: 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
0850: 6f 72 74 20 6c 61 62 65 6c 2d 38 0d 0a 53 45 4c  ort label-8..SEL
0860: 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 2a  ECT ALL + col1 *
0870: 20 2d 20 28 20 2d 20 63 6f 6c 31 20 29 20 2a 20   - ( - col1 ) * 
0880: 63 6f 6c 30 20 2d 20 2d 20 2b 20 43 41 53 54 28  col0 - - + CAST(
0890: 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20 53 49 47   + + col2 AS SIG
08a0: 4e 45 44 20 29 20 2b 20 2d 20 33 37 20 44 49 56  NED ) + - 37 DIV
08b0: 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 2d 20 63 6f   + col0 + + - co
08c0: 6c 31 20 2a 20 2b 20 31 32 20 41 53 20 63 6f 6c  l1 * + 12 AS col
08d0: 30 2c 20 2b 20 28 20 2d 20 2b 20 35 33 20 29 20  0, + ( - + 53 ) 
08e0: 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  + - col0 FROM ta
08f0: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
0900: 0d 0a 31 38 34 0d 0a 2d 31 35 30 0d 0a 33 38 31  ..184..-150..381
0910: 32 35 0d 0a 2d 31 34 30 0d 0a 39 37 34 38 38 0d  25..-140..97488.
0920: 0a 2d 36 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-68....skipif m
0930: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
0940: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
0950: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 0d  rowsort label-8.
0960: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f  .SELECT ALL + co
0970: 6c 31 20 2a 20 2d 20 28 20 2d 20 63 6f 6c 31 20  l1 * - ( - col1 
0980: 29 20 2a 20 63 6f 6c 30 20 2d 20 2d 20 2b 20 43  ) * col0 - - + C
0990: 41 53 54 20 28 20 2b 20 2b 20 63 6f 6c 32 20 41  AST ( + + col2 A
09a0: 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20 2d 20  S INTEGER ) + - 
09b0: 33 37 20 2f 20 2b 20 63 6f 6c 30 20 2b 20 2b 20  37 / + col0 + + 
09c0: 2d 20 63 6f 6c 31 20 2a 20 2b 20 31 32 20 41 53  - col1 * + 12 AS
09d0: 20 63 6f 6c 30 2c 20 2b 20 28 20 2d 20 2b 20 35   col0, + ( - + 5
09e0: 33 20 29 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f  3 ) + - col0 FRO
09f0: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
0a00: 2d 2d 2d 2d 0d 0a 31 38 34 0d 0a 2d 31 35 30 0d  ----..184..-150.
0a10: 0a 33 38 31 32 35 0d 0a 2d 31 34 30 0d 0a 39 37  .38125..-140..97
0a20: 34 38 38 0d 0a 2d 36 38 0d 0a 0d 0a 71 75 65 72  488..-68....quer
0a30: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
0a40: 45 43 54 20 2b 20 63 6f 6c 31 20 2b 20 63 6f 6c  ECT + col1 + col
0a50: 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  2 AS col2 FROM t
0a60: 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
0a70: 45 20 2d 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c  E - col0 IS NULL
0a80: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
0a90: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
0aa0: 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 28  T DISTINCT + + (
0ab0: 20 2d 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63   - + col0 ) AS c
0ac0: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol1 FROM tab2 co
0ad0: 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  r0 WHERE NOT col
0ae0: 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  2 IS NOT NULL..-
0af0: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
0b00: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
0b10: 20 2d 20 28 20 2b 20 38 38 20 29 20 2b 20 2d 20   - ( + 88 ) + - 
0b20: 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  - col2 FROM tab0
0b30: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
0b40: 31 33 35 0d 0a 31 38 37 0d 0a 39 38 0d 0a 0d 0a  135..187..98....
0b50: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
0b60: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
0b70: 54 20 2d 20 35 20 2a 20 34 33 20 2d 20 2d 20 35  T - 5 * 43 - - 5
0b80: 30 20 2b 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 39  0 + + col0 + - 9
0b90: 36 20 41 53 20 63 6f 6c 31 2c 20 2d 20 31 36 20  6 AS col1, - 16 
0ba0: 2b 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31  + - col1 AS col1
0bb0: 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d   FROM tab0 cor0.
0bc0: 0a 2d 2d 2d 2d 0d 0a 2d 31 36 34 0d 0a 2d 31 37  .----..-164..-17
0bd0: 0d 0a 2d 31 37 34 0d 0a 2d 33 37 0d 0a 2d 32 34  ..-174..-37..-24
0be0: 36 0d 0a 2d 39 37 0d 0a 0d 0a 71 75 65 72 79 20  6..-97....query 
0bf0: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
0c00: 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
0c10: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20  AS cor0 WHERE - 
0c20: 28 20 38 33 20 29 20 49 53 20 4e 55 4c 4c 0d 0a  ( 83 ) IS NULL..
0c30: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
0c40: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
0c50: 44 49 53 54 49 4e 43 54 20 2d 20 32 34 20 2a 20  DISTINCT - 24 * 
0c60: 2d 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32  - + col2 AS col2
0c70: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
0c80: 0d 0a 31 33 39 32 0d 0a 35 35 32 0d 0a 39 36 30  ..1392..552..960
0c90: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
0ca0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
0cb0: 20 2b 20 39 31 20 2a 20 2d 20 63 6f 6c 30 20 41   + 91 * - col0 A
0cc0: 53 20 63 6f 6c 30 2c 20 39 33 20 2a 20 31 38 20  S col0, 93 * 18 
0cd0: 2a 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32  * + col0 AS col2
0ce0: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
0cf0: 0d 0a 2d 34 31 38 36 0d 0a 37 37 30 30 34 0d 0a  ..-4186..77004..
0d00: 2d 35 38 32 34 0d 0a 31 30 37 31 33 36 0d 0a 2d  -5824..107136..-
0d10: 36 38 32 35 0d 0a 31 32 35 35 35 30 0d 0a 0d 0a  6825..125550....
0d20: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
0d30: 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
0d40: 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20   tab2 WHERE NOT 
0d50: 63 6f 6c 32 20 2f 20 2b 20 63 6f 6c 30 20 2a 20  col2 / + col0 * 
0d60: 38 36 20 2f 20 2d 20 2d 20 33 39 20 2b 20 2b 20  86 / - - 39 + + 
0d70: 2b 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 31 20  + col2 + + col1 
0d80: 2b 20 2b 20 63 6f 6c 30 20 4e 4f 54 20 42 45 54  + + col0 NOT BET
0d90: 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 63 6f  WEEN NULL AND co
0da0: 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  l0..----....only
0db0: 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
0dc0: 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
0dd0: 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
0de0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37 0d  owsort label-17.
0df0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 34 31  .SELECT ALL + 41
0e00: 20 44 49 56 20 2b 20 2b 20 63 6f 6c 32 20 2a 20   DIV + + col2 * 
0e10: 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  - col2 FROM tab1
0e20: 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d  ..----..0..0..0.
0e30: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
0e40: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
0e50: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
0e60: 74 20 6c 61 62 65 6c 2d 31 37 0d 0a 53 45 4c 45  t label-17..SELE
0e70: 43 54 20 41 4c 4c 20 2b 20 34 31 20 2f 20 2b 20  CT ALL + 41 / + 
0e80: 2b 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 32 20  + col2 * - col2 
0e90: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
0ea0: 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 71 75 65 72  .0..0..0....quer
0eb0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
0ec0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  ECT DISTINCT col
0ed0: 32 20 2f 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20  2 / - col1 FROM 
0ee0: 74 61 62 30 20 63 6f 72 30 20 57 48 45 52 45 20  tab0 cor0 WHERE 
0ef0: 4e 4f 54 20 28 20 4e 55 4c 4c 20 4e 4f 54 20 49  NOT ( NULL NOT I
0f00: 4e 20 28 20 63 6f 6c 30 20 2f 20 2b 20 31 37 20  N ( col0 / + 17 
0f10: 2a 20 2b 20 37 37 20 29 20 29 0d 0a 2d 2d 2d 2d  * + 77 ) )..----
0f20: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
0f30: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
0f40: 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
0f50: 4e 4f 54 20 2b 20 63 6f 6c 30 20 3e 3d 20 63 6f  NOT + col0 >= co
0f60: 6c 31 20 2d 20 2b 20 63 6f 6c 31 20 2b 20 2d 20  l1 - + col1 + - 
0f70: 2d 20 63 6f 6c 30 20 2a 20 63 6f 6c 31 0d 0a 2d  - col0 * col1..-
0f80: 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
0f90: 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38 61  shing to 75c998a
0fa0: 61 35 33 61 63 38 33 32 31 38 63 62 66 32 66 65  a53ac83218cbf2fe
0fb0: 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 71 75 65  b962d0a49....que
0fc0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
0fd0: 4c 45 43 54 20 41 4c 4c 20 2b 20 28 20 63 6f 6c  LECT ALL + ( col
0fe0: 32 20 29 20 2b 20 2b 20 2b 20 63 6f 6c 31 20 46  2 ) + + + col1 F
0ff0: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1000: 0d 0a 2d 2d 2d 2d 0d 0a 31 31 30 0d 0a 31 31 35  ..----..110..115
1010: 0d 0a 36 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  ..64....skipif p
1020: 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
1030: 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
1040: 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
1050: 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
1060: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1070: 0d 0a 53 45 4c 45 43 54 20 2d 20 35 30 20 63 6f  ..SELECT - 50 co
1080: 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72  l0 FROM tab2 cor
1090: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 30 0d 0a 2d 35  0..----..-50..-5
10a0: 30 0d 0a 2d 35 30 0d 0a 0d 0a 71 75 65 72 79 20  0..-50....query 
10b0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
10c0: 54 20 2d 20 2b 20 33 20 46 52 4f 4d 20 74 61 62  T - + 3 FROM tab
10d0: 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
10e0: 4e 4f 54 20 2b 20 33 39 20 49 53 20 4e 55 4c 4c  NOT + 39 IS NULL
10f0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 2d 33 0d 0a  ..----..-3..-3..
1100: 2d 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  -3....onlyif mys
1110: 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
1120: 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
1130: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1140: 20 6c 61 62 65 6c 2d 32 33 0d 0a 53 45 4c 45 43   label-23..SELEC
1150: 54 20 41 4c 4c 20 2d 20 43 41 53 54 28 20 2b 20  T ALL - CAST( + 
1160: 63 6f 6c 32 20 41 53 20 53 49 47 4e 45 44 20 29  col2 AS SIGNED )
1170: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
1180: 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b2 cor0..----..-
1190: 32 33 0d 0a 2d 34 30 0d 0a 2d 35 38 0d 0a 0d 0a  23..-40..-58....
11a0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
11b0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
11c0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
11d0: 61 62 65 6c 2d 32 33 0d 0a 53 45 4c 45 43 54 20  abel-23..SELECT 
11e0: 41 4c 4c 20 2d 20 43 41 53 54 20 28 20 2b 20 63  ALL - CAST ( + c
11f0: 6f 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20 29  ol2 AS INTEGER )
1200: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
1210: 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b2 cor0..----..-
1220: 32 33 0d 0a 2d 34 30 0d 0a 2d 35 38 0d 0a 0d 0a  23..-40..-58....
1230: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
1240: 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
1250: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
1260: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1270: 2d 32 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  -24..SELECT DIST
1280: 49 4e 43 54 20 2d 20 63 6f 6c 32 20 2b 20 2b 20  INCT - col2 + + 
1290: 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
12a0: 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 30 20 46  GNED ) AS col0 F
12b0: 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d  ROM tab0 cor0..-
12c0: 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ---..NULL....ski
12d0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
12e0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
12f0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1300: 6c 2d 32 34 0d 0a 53 45 4c 45 43 54 20 44 49 53  l-24..SELECT DIS
1310: 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 2b 20 2b  TINCT - col2 + +
1320: 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
1330: 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c  INTEGER ) AS col
1340: 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  0 FROM tab0 cor0
1350: 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
1360: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
1370: 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
1380: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
1390: 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
13a0: 6c 2d 32 35 0d 0a 53 45 4c 45 43 54 20 44 49 53  l-25..SELECT DIS
13b0: 54 49 4e 43 54 20 2b 20 2d 20 28 20 2d 20 63 6f  TINCT + - ( - co
13c0: 6c 32 20 29 20 63 6f 6c 30 2c 20 43 41 53 54 28  l2 ) col0, CAST(
13d0: 20 2b 20 63 6f 6c 31 20 41 53 20 53 49 47 4e 45   + col1 AS SIGNE
13e0: 44 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  D ) AS col2 FROM
13f0: 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
1400: 0d 0a 35 39 0d 0a 35 0d 0a 36 38 0d 0a 34 37 0d  ..59..5..68..47.
1410: 0a 39 36 0d 0a 31 34 0d 0a 0d 0a 73 6b 69 70 69  .96..14....skipi
1420: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1430: 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66  mpatible..skipif
1440: 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
1450: 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
1460: 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
1470: 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
1480: 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  s..query II rows
1490: 6f 72 74 20 6c 61 62 65 6c 2d 32 35 0d 0a 53 45  ort label-25..SE
14a0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
14b0: 2d 20 28 20 2d 20 63 6f 6c 32 20 29 20 63 6f 6c  - ( - col2 ) col
14c0: 30 2c 20 43 41 53 54 20 28 20 2b 20 63 6f 6c 31  0, CAST ( + col1
14d0: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53   AS INTEGER ) AS
14e0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
14f0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a  cor0..----..59..
1500: 35 0d 0a 36 38 0d 0a 34 37 0d 0a 39 36 0d 0a 31  5..68..47..96..1
1510: 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  4....onlyif mysq
1520: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
1530: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
1540: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 36  rowsort label-26
1550: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b  ..SELECT ALL - +
1560: 20 4d 49 4e 28 20 2b 20 2d 20 63 6f 6c 31 20 29   MIN( + - col1 )
1570: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
1580: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 37 0d 0a 0d 0a  r0..----..77....
1590: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
15a0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
15b0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
15c0: 61 62 65 6c 2d 32 36 0d 0a 53 45 4c 45 43 54 20  abel-26..SELECT 
15d0: 41 4c 4c 20 2d 20 2b 20 4d 49 4e 20 28 20 2b 20  ALL - + MIN ( + 
15e0: 2d 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61  - col1 ) FROM ta
15f0: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
1600: 0d 0a 37 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..77....onlyif m
1610: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
1620: 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
1630: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1640: 72 74 20 6c 61 62 65 6c 2d 32 37 0d 0a 53 45 4c  rt label-27..SEL
1650: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43  ECT DISTINCT + C
1660: 41 53 54 28 20 2b 20 63 6f 6c 30 20 41 53 20 53  AST( + col0 AS S
1670: 49 47 4e 45 44 20 29 20 63 6f 6c 31 20 46 52 4f  IGNED ) col1 FRO
1680: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 31  M tab1..----..51
1690: 0d 0a 38 35 0d 0a 39 31 0d 0a 0d 0a 73 6b 69 70  ..85..91....skip
16a0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
16b0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
16c0: 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
16d0: 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
16e0: 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
16f0: 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
1700: 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
1710: 6f 72 74 20 6c 61 62 65 6c 2d 32 37 0d 0a 53 45  ort label-27..SE
1720: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
1730: 43 41 53 54 20 28 20 2b 20 63 6f 6c 30 20 41 53  CAST ( + col0 AS
1740: 20 49 4e 54 45 47 45 52 20 29 20 63 6f 6c 31 20   INTEGER ) col1 
1750: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
1760: 0a 35 31 0d 0a 38 35 0d 0a 39 31 0d 0a 0d 0a 71  .51..85..91....q
1770: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
1780: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 36 30 20 2b  .SELECT ALL 60 +
1790: 20 2b 20 32 31 20 2b 20 63 6f 6c 32 2c 20 63 6f   + 21 + col2, co
17a0: 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l1 AS col2 FROM 
17b0: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 30 0d  tab1..----..140.
17c0: 0a 35 0d 0a 31 34 39 0d 0a 34 37 0d 0a 31 37 37  .5..149..47..177
17d0: 0d 0a 31 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..14....onlyif m
17e0: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
17f0: 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
1800: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1810: 72 74 20 6c 61 62 65 6c 2d 32 39 0d 0a 53 45 4c  rt label-29..SEL
1820: 45 43 54 20 43 41 53 54 28 20 2d 20 41 56 47 20  ECT CAST( - AVG 
1830: 28 20 41 4c 4c 20 2b 20 43 41 53 54 28 20 2b 20  ( ALL + CAST( + 
1840: 28 20 63 6f 6c 32 20 29 20 41 53 20 53 49 47 4e  ( col2 ) AS SIGN
1850: 45 44 20 29 20 29 20 41 53 20 53 49 47 4e 45 44  ED ) ) AS SIGNED
1860: 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d   ) FROM tab2..--
1870: 2d 2d 0d 0a 2d 34 30 0d 0a 0d 0a 73 6b 69 70 69  --..-40....skipi
1880: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1890: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
18a0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
18b0: 32 39 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 20  29..SELECT CAST 
18c0: 28 20 2d 20 41 56 47 20 28 20 41 4c 4c 20 2b 20  ( - AVG ( ALL + 
18d0: 43 41 53 54 20 28 20 2b 20 28 20 63 6f 6c 32 20  CAST ( + ( col2 
18e0: 29 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29  ) AS INTEGER ) )
18f0: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52   AS INTEGER ) FR
1900: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
1910: 34 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  40....query I ro
1920: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 36 32  wsort..SELECT 62
1930: 20 2b 20 63 6f 6c 30 20 2a 20 31 20 46 52 4f 4d   + col0 * 1 FROM
1940: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 31 33   tab1..----..113
1950: 0d 0a 31 34 37 0d 0a 31 35 33 0d 0a 0d 0a 6f 6e  ..147..153....on
1960: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
1970: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
1980: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1990: 20 6c 61 62 65 6c 2d 33 31 0d 0a 53 45 4c 45 43   label-31..SELEC
19a0: 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41  T + COUNT( * ) A
19b0: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
19c0: 2c 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  , tab0 AS cor0..
19d0: 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 73 6b 69 70 69  ----..9....skipi
19e0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
19f0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
1a00: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1a10: 33 31 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55  31..SELECT + COU
1a20: 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 31  NT ( * ) AS col1
1a30: 20 46 52 4f 4d 20 74 61 62 32 2c 20 74 61 62 30   FROM tab2, tab0
1a40: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1a50: 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  9....onlyif mysq
1a60: 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
1a70: 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
1a80: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1a90: 6c 61 62 65 6c 2d 33 32 0d 0a 53 45 4c 45 43 54  label-32..SELECT
1aa0: 20 41 4c 4c 20 2d 20 39 36 20 44 49 56 20 2d 20   ALL - 96 DIV - 
1ab0: 2b 20 28 20 2d 20 63 6f 6c 32 20 29 20 2b 20 2b  + ( - col2 ) + +
1ac0: 20 37 37 20 44 49 56 20 63 6f 6c 31 20 2b 20 2b   77 DIV col1 + +
1ad0: 20 2b 20 63 6f 6c 31 20 2b 20 63 6f 6c 30 20 41   + col1 + col0 A
1ae0: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
1af0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 32   cor0..----..102
1b00: 0d 0a 31 37 35 0d 0a 39 34 0d 0a 0d 0a 73 6b 69  ..175..94....ski
1b10: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1b20: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1b30: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1b40: 6c 2d 33 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  l-32..SELECT ALL
1b50: 20 2d 20 39 36 20 2f 20 2d 20 2b 20 28 20 2d 20   - 96 / - + ( - 
1b60: 63 6f 6c 32 20 29 20 2b 20 2b 20 37 37 20 2f 20  col2 ) + + 77 / 
1b70: 63 6f 6c 31 20 2b 20 2b 20 2b 20 63 6f 6c 31 20  col1 + + + col1 
1b80: 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46  + col0 AS col1 F
1b90: 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d  ROM tab0 cor0..-
1ba0: 2d 2d 2d 0d 0a 31 30 32 0d 0a 31 37 35 0d 0a 39  ---..102..175..9
1bb0: 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  4....query I row
1bc0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
1bd0: 20 2d 20 38 30 20 2a 20 2d 20 35 38 20 41 53 20   - 80 * - 58 AS 
1be0: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
1bf0: 2d 2d 2d 2d 0d 0a 34 36 34 30 0d 0a 34 36 34 30  ----..4640..4640
1c00: 0d 0a 34 36 34 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..4640....onlyif
1c10: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
1c20: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
1c30: 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
1c40: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 34 0d 0a 53  sort label-34..S
1c50: 45 4c 45 43 54 20 2d 20 43 41 53 54 28 20 2d 20  ELECT - CAST( - 
1c60: 2d 20 63 6f 6c 32 20 41 53 20 53 49 47 4e 45 44  - col2 AS SIGNED
1c70: 20 29 20 2a 20 2d 20 63 6f 6c 32 20 46 52 4f 4d   ) * - col2 FROM
1c80: 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 30   tab0..----..100
1c90: 0d 0a 32 32 30 39 0d 0a 39 38 30 31 0d 0a 0d 0a  ..2209..9801....
1ca0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1cb0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1cc0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1cd0: 61 62 65 6c 2d 33 34 0d 0a 53 45 4c 45 43 54 20  abel-34..SELECT 
1ce0: 2d 20 43 41 53 54 20 28 20 2d 20 2d 20 63 6f 6c  - CAST ( - - col
1cf0: 32 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a  2 AS INTEGER ) *
1d00: 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   - col2 FROM tab
1d10: 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 30 0d 0a 32 32  0..----..100..22
1d20: 30 39 0d 0a 39 38 30 31 0d 0a 0d 0a 6f 6e 6c 79  09..9801....only
1d30: 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
1d40: 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
1d50: 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
1d60: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 35 0d  owsort label-35.
1d70: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20  .SELECT ALL - + 
1d80: 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 32 20 44 49  col2 + + col2 DI
1d90: 56 20 2b 20 2d 20 34 20 46 52 4f 4d 20 74 61 62  V + - 4 FROM tab
1da0: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
1db0: 0a 2d 32 38 0d 0a 2d 35 30 0d 0a 2d 37 32 0d 0a  .-28..-50..-72..
1dc0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1dd0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1de0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1df0: 20 6c 61 62 65 6c 2d 33 35 0d 0a 53 45 4c 45 43   label-35..SELEC
1e00: 54 20 41 4c 4c 20 2d 20 2b 20 63 6f 6c 32 20 2b  T ALL - + col2 +
1e10: 20 2b 20 63 6f 6c 32 20 2f 20 2b 20 2d 20 34 20   + col2 / + - 4 
1e20: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
1e30: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 38 0d 0a 2d 35  0..----..-28..-5
1e40: 30 0d 0a 2d 37 32 0d 0a 0d 0a 6f 6e 6c 79 69 66  0..-72....onlyif
1e50: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
1e60: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
1e70: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
1e80: 62 65 6c 2d 33 36 0d 0a 53 45 4c 45 43 54 20 2b  bel-36..SELECT +
1e90: 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 31 33   COUNT( * ) + 13
1ea0: 20 41 53 20 63 6f 6c 30 2c 20 4d 41 58 28 20 41   AS col0, MAX( A
1eb0: 4c 4c 20 2b 20 28 20 2b 20 63 6f 6c 32 20 29 20  LL + ( + col2 ) 
1ec0: 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
1ed0: 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
1ee0: 45 20 2b 20 34 20 49 53 20 4e 55 4c 4c 0d 0a 2d  E + 4 IS NULL..-
1ef0: 2d 2d 2d 0d 0a 31 33 0d 0a 4e 55 4c 4c 0d 0a 0d  ---..13..NULL...
1f00: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1f10: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1f20: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
1f30: 20 6c 61 62 65 6c 2d 33 36 0d 0a 53 45 4c 45 43   label-36..SELEC
1f40: 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  T + COUNT ( * ) 
1f50: 2b 20 31 33 20 41 53 20 63 6f 6c 30 2c 20 4d 41  + 13 AS col0, MA
1f60: 58 20 28 20 41 4c 4c 20 2b 20 28 20 2b 20 63 6f  X ( ALL + ( + co
1f70: 6c 32 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46  l2 ) ) AS col1 F
1f80: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
1f90: 20 57 48 45 52 45 20 2b 20 34 20 49 53 20 4e 55   WHERE + 4 IS NU
1fa0: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 33 0d 0a 4e 55  LL..----..13..NU
1fb0: 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  LL....query I ro
1fc0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
1fd0: 63 6f 6c 30 20 2a 20 38 38 20 41 53 20 63 6f 6c  col0 * 88 AS col
1fe0: 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
1ff0: 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  or0 WHERE NOT + 
2000: 63 6f 6c 30 20 3c 3d 20 2d 20 28 20 2d 20 33 37  col0 <= - ( - 37
2010: 20 29 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 30 34 38 0d   )..----..-4048.
2020: 0a 2d 35 36 33 32 0d 0a 2d 36 36 30 30 0d 0a 0d  .-5632..-6600...
2030: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2040: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2050: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2060: 6f 72 74 20 6c 61 62 65 6c 2d 33 38 0d 0a 53 45  ort label-38..SE
2070: 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20  LECT ALL COUNT( 
2080: 2a 20 29 20 2a 20 2d 20 2b 20 43 4f 55 4e 54 28  * ) * - + COUNT(
2090: 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41   * ) FROM tab0 A
20a0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39  S cor0..----..-9
20b0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
20c0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
20d0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
20e0: 72 74 20 6c 61 62 65 6c 2d 33 38 0d 0a 53 45 4c  rt label-38..SEL
20f0: 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20 28 20  ECT ALL COUNT ( 
2100: 2a 20 29 20 2a 20 2d 20 2b 20 43 4f 55 4e 54 20  * ) * - + COUNT 
2110: 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20  ( * ) FROM tab0 
2120: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
2130: 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  9....query I row
2140: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
2150: 20 2b 20 63 6f 6c 30 20 2a 20 35 33 20 46 52 4f   + col0 * 53 FRO
2160: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36  M tab0..----..46
2170: 31 31 0d 0a 35 31 34 31 0d 0a 37 39 35 0d 0a 0d  11..5141..795...
2180: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2190: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
21a0: 54 20 63 6f 6c 32 20 2a 20 2b 20 2b 20 34 32 20  T col2 * + + 42 
21b0: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
21c0: 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 37 34 0d 0a 34  0..----..1974..4
21d0: 31 35 38 0d 0a 34 32 30 0d 0a 0d 0a 71 75 65 72  158..420....quer
21e0: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
21f0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
2200: 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f  0 WHERE NOT - co
2210: 6c 30 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 49 53  l0 * - - col0 IS
2220: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   NULL..----..9 v
2230: 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
2240: 20 63 34 62 34 32 37 36 35 64 66 66 39 34 65 61   c4b42765dff94ea
2250: 61 61 34 36 30 34 30 65 35 33 37 66 62 34 33 62  aa46040e537fb43b
2260: 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  7....onlyif mysq
2270: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
2280: 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
2290: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
22a0: 20 6c 61 62 65 6c 2d 34 32 0d 0a 53 45 4c 45 43   label-42..SELEC
22b0: 54 20 41 4c 4c 20 2d 20 38 35 20 41 53 20 63 6f  T ALL - 85 AS co
22c0: 6c 30 2c 20 2d 20 36 30 20 41 53 20 63 6f 6c 30  l0, - 60 AS col0
22d0: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
22e0: 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  r0 WHERE NOT col
22f0: 31 20 2b 20 2d 20 2b 20 43 41 53 54 28 20 63 6f  1 + - + CAST( co
2300: 6c 31 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b  l1 AS SIGNED ) +
2310: 20 2b 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 2b 20   + + col0 * + + 
2320: 63 6f 6c 30 20 4e 4f 54 20 49 4e 20 28 20 2d 20  col0 NOT IN ( - 
2330: 2b 20 35 38 20 2a 20 43 41 53 54 28 20 2b 20 2b  + 58 * CAST( + +
2340: 20 63 6f 6c 30 20 41 53 20 53 49 47 4e 45 44 20   col0 AS SIGNED 
2350: 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  ) )..----....ski
2360: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2370: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2380: 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
2390: 65 6c 2d 34 32 0d 0a 53 45 4c 45 43 54 20 41 4c  el-42..SELECT AL
23a0: 4c 20 2d 20 38 35 20 41 53 20 63 6f 6c 30 2c 20  L - 85 AS col0, 
23b0: 2d 20 36 30 20 41 53 20 63 6f 6c 30 20 46 52 4f  - 60 AS col0 FRO
23c0: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
23d0: 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20 2b 20  HERE NOT col1 + 
23e0: 2d 20 2b 20 43 41 53 54 20 28 20 63 6f 6c 31 20  - + CAST ( col1 
23f0: 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20 2b  AS INTEGER ) + +
2400: 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 2b 20 63 6f   + col0 * + + co
2410: 6c 30 20 4e 4f 54 20 49 4e 20 28 20 2d 20 2b 20  l0 NOT IN ( - + 
2420: 35 38 20 2a 20 43 41 53 54 20 28 20 2b 20 2b 20  58 * CAST ( + + 
2430: 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45 52 20  col0 AS INTEGER 
2440: 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ) )..----....onl
2450: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
2460: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
2470: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2480: 6c 61 62 65 6c 2d 34 33 0d 0a 53 45 4c 45 43 54  label-43..SELECT
2490: 20 44 49 53 54 49 4e 43 54 20 34 20 2a 20 2b 20   DISTINCT 4 * + 
24a0: 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  - COUNT( * ) AS 
24b0: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
24c0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
24d0: 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  2....skipif mysq
24e0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
24f0: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2500: 6f 72 74 20 6c 61 62 65 6c 2d 34 33 0d 0a 53 45  ort label-43..SE
2510: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 34 20  LECT DISTINCT 4 
2520: 2a 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  * + - COUNT ( * 
2530: 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
2540: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
2550: 2d 0d 0a 2d 31 32 0d 0a 0d 0a 6f 6e 6c 79 69 66  -..-12....onlyif
2560: 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
2570: 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
2580: 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  n: ..query II ro
2590: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 34 0d 0a  wsort label-44..
25a0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
25b0: 2b 20 63 6f 6c 32 20 44 49 56 20 2b 20 63 6f 6c  + col2 DIV + col
25c0: 31 20 41 53 20 63 6f 6c 32 2c 20 2d 20 63 6f 6c  1 AS col2, - col
25d0: 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  2 AS col1 FROM t
25e0: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 2d 31  ab0..----..0..-1
25f0: 30 0d 0a 30 0d 0a 2d 34 37 0d 0a 39 39 0d 0a 2d  0..0..-47..99..-
2600: 39 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  99....skipif mys
2610: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2620: 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
2630: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 34 0d 0a  wsort label-44..
2640: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2650: 2b 20 63 6f 6c 32 20 2f 20 2b 20 63 6f 6c 31 20  + col2 / + col1 
2660: 41 53 20 63 6f 6c 32 2c 20 2d 20 63 6f 6c 32 20  AS col2, - col2 
2670: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2680: 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 2d 31 30 0d  0..----..0..-10.
2690: 0a 30 0d 0a 2d 34 37 0d 0a 39 39 0d 0a 2d 39 39  .0..-47..99..-99
26a0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
26b0: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
26c0: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
26d0: 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 44  : SIGNED type: D
26e0: 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
26f0: 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
2700: 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
2710: 6c 2d 34 35 0d 0a 53 45 4c 45 43 54 20 43 41 53  l-45..SELECT CAS
2720: 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
2730: 44 20 29 20 41 53 20 63 6f 6c 31 2c 20 31 20 2b  D ) AS col1, 1 +
2740: 20 34 35 20 44 49 56 20 2b 20 2b 20 43 41 53 54   45 DIV + + CAST
2750: 28 20 2b 20 43 4f 55 4e 54 28 20 2d 20 2d 20 34  ( + COUNT( - - 4
2760: 32 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20  2 ) AS SIGNED ) 
2770: 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
2780: 0a 4e 55 4c 4c 0d 0a 31 36 0d 0a 0d 0a 73 6b 69  .NULL..16....ski
2790: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
27a0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
27b0: 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
27c0: 65 6c 2d 34 35 0d 0a 53 45 4c 45 43 54 20 43 41  el-45..SELECT CA
27d0: 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
27e0: 45 47 45 52 20 29 20 41 53 20 63 6f 6c 31 2c 20  EGER ) AS col1, 
27f0: 31 20 2b 20 34 35 20 2f 20 2b 20 2b 20 43 41 53  1 + 45 / + + CAS
2800: 54 20 28 20 2b 20 43 4f 55 4e 54 20 28 20 2d 20  T ( + COUNT ( - 
2810: 2d 20 34 32 20 29 20 41 53 20 49 4e 54 45 47 45  - 42 ) AS INTEGE
2820: 52 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  R ) FROM tab2..-
2830: 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 31 36 0d 0a 0d  ---..NULL..16...
2840: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
2850: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f  t..SELECT ALL co
2860: 6c 32 20 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 31  l2 AS col2, col1
2870: 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74   + - col0 FROM t
2880: 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 35  ab2..----..23..5
2890: 0d 0a 34 30 0d 0a 31 33 0d 0a 35 38 0d 0a 2d 38  ..40..13..58..-8
28a0: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
28b0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
28c0: 49 4e 43 54 20 2d 20 63 6f 6c 30 20 2b 20 2b 20  INCT - col0 + + 
28d0: 63 6f 6c 30 20 2d 20 2d 20 63 6f 6c 30 20 46 52  col0 - - col0 FR
28e0: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
28f0: 35 0d 0a 38 37 0d 0a 39 37 0d 0a 0d 0a 71 75 65  5..87..97....que
2900: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2910: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
2920: 39 39 20 2b 20 38 34 20 41 53 20 63 6f 6c 30 20  99 + 84 AS col0 
2930: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
2940: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 0d 0a  0..----..-15....
2950: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2960: 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 41  .SELECT + col1 A
2970: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
2980: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
2990: 4f 54 20 2b 20 63 6f 6c 32 20 49 53 20 4e 55 4c  OT + col2 IS NUL
29a0: 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 32 31 0d 0a  L..----..1..21..
29b0: 38 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  81....onlyif mys
29c0: 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
29d0: 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
29e0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
29f0: 20 6c 61 62 65 6c 2d 35 30 0d 0a 53 45 4c 45 43   label-50..SELEC
2a00: 54 20 2b 20 28 20 2b 20 63 6f 6c 32 20 29 20 2a  T + ( + col2 ) *
2a10: 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 43 41 53 54   + col2 + + CAST
2a20: 28 20 2b 20 32 39 20 41 53 20 53 49 47 4e 45 44  ( + 29 AS SIGNED
2a30: 20 29 20 2b 20 2d 20 28 20 63 6f 6c 32 20 29 20   ) + - ( col2 ) 
2a40: 2a 20 38 38 20 2a 20 2d 20 63 6f 6c 31 20 46 52  * 88 * - col1 FR
2a50: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
2a60: 0a 2d 2d 2d 2d 0d 0a 31 30 33 37 38 32 0d 0a 32  .----..103782..2
2a70: 37 32 36 36 39 0d 0a 33 34 35 33 36 31 0d 0a 0d  72669..345361...
2a80: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2a90: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2aa0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2ab0: 6c 61 62 65 6c 2d 35 30 0d 0a 53 45 4c 45 43 54  label-50..SELECT
2ac0: 20 2b 20 28 20 2b 20 63 6f 6c 32 20 29 20 2a 20   + ( + col2 ) * 
2ad0: 2b 20 63 6f 6c 32 20 2b 20 2b 20 43 41 53 54 20  + col2 + + CAST 
2ae0: 28 20 2b 20 32 39 20 41 53 20 49 4e 54 45 47 45  ( + 29 AS INTEGE
2af0: 52 20 29 20 2b 20 2d 20 28 20 63 6f 6c 32 20 29  R ) + - ( col2 )
2b00: 20 2a 20 38 38 20 2a 20 2d 20 63 6f 6c 31 20 46   * 88 * - col1 F
2b10: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
2b20: 0d 0a 2d 2d 2d 2d 0d 0a 31 30 33 37 38 32 0d 0a  ..----..103782..
2b30: 32 37 32 36 36 39 0d 0a 33 34 35 33 36 31 0d 0a  272669..345361..
2b40: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2b50: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2b60: 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  x: ..query II ro
2b70: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 31 0d 0a  wsort label-51..
2b80: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 43  SELECT ALL + - C
2b90: 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c  OUNT( * ) AS col
2ba0: 32 2c 20 37 34 20 41 53 20 63 6f 6c 32 20 46 52  2, 74 AS col2 FR
2bb0: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
2bc0: 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 37 34 0d 0a 0d  .----..-3..74...
2bd0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2be0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2bf0: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
2c00: 20 6c 61 62 65 6c 2d 35 31 0d 0a 53 45 4c 45 43   label-51..SELEC
2c10: 54 20 41 4c 4c 20 2b 20 2d 20 43 4f 55 4e 54 20  T ALL + - COUNT 
2c20: 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 2c 20 37  ( * ) AS col2, 7
2c30: 34 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  4 AS col2 FROM t
2c40: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
2c50: 2d 0d 0a 2d 33 0d 0a 37 34 0d 0a 0d 0a 6f 6e 6c  -..-3..74....onl
2c60: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
2c70: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
2c80: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
2c90: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 32  rowsort label-52
2ca0: 0d 0a 53 45 4c 45 43 54 20 41 56 47 20 28 20 44  ..SELECT AVG ( D
2cb0: 49 53 54 49 4e 43 54 20 2d 20 2b 20 63 6f 6c 32  ISTINCT - + col2
2cc0: 20 29 20 2b 20 2b 20 43 41 53 54 28 20 4e 55 4c   ) + + CAST( NUL
2cd0: 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52  L AS SIGNED ) FR
2ce0: 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d  OM tab1 cor0..--
2cf0: 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
2d00: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2d10: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2d20: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2d30: 2d 35 32 0d 0a 53 45 4c 45 43 54 20 41 56 47 20  -52..SELECT AVG 
2d40: 28 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 63  ( DISTINCT - + c
2d50: 6f 6c 32 20 29 20 2b 20 2b 20 43 41 53 54 20 28  ol2 ) + + CAST (
2d60: 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
2d70: 20 29 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72   ) FROM tab1 cor
2d80: 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  0..----..NULL...
2d90: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2da0: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2db0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2dc0: 6f 72 74 20 6c 61 62 65 6c 2d 35 33 0d 0a 53 45  ort label-53..SE
2dd0: 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20  LECT + COUNT( * 
2de0: 29 20 2b 20 2d 20 4d 41 58 28 20 2d 20 63 6f 6c  ) + - MAX( - col
2df0: 32 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  2 ) AS col0 FROM
2e00: 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab0 cor0..----
2e10: 0d 0a 31 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..13....skipif m
2e20: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2e30: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
2e40: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 33 0d  owsort label-53.
2e50: 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20  .SELECT + COUNT 
2e60: 28 20 2a 20 29 20 2b 20 2d 20 4d 41 58 20 28 20  ( * ) + - MAX ( 
2e70: 2d 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 30  - col2 ) AS col0
2e80: 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d   FROM tab0 cor0.
2e90: 0a 2d 2d 2d 2d 0d 0a 31 33 0d 0a 0d 0a 71 75 65  .----..13....que
2ea0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2eb0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
2ec0: 32 34 20 2a 20 2d 20 35 30 20 2b 20 2d 20 63 6f  24 * - 50 + - co
2ed0: 6c 32 20 2b 20 63 6f 6c 32 20 2b 20 63 6f 6c 32  l2 + col2 + col2
2ee0: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
2ef0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 35 39 0d 0a  r0..----..1259..
2f00: 31 32 36 38 0d 0a 31 32 39 36 0d 0a 0d 0a 73 6b  1268..1296....sk
2f10: 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
2f20: 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
2f30: 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
2f40: 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
2f50: 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20  lumns..query II 
2f60: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2f70: 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 63 6f 6c  DISTINCT - + col
2f80: 32 20 63 6f 6c 30 2c 20 2d 20 63 6f 6c 32 20 46  2 col0, - col2 F
2f90: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
2fa0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 2d 31 30  ..----..-10..-10
2fb0: 0d 0a 2d 34 37 0d 0a 2d 34 37 0d 0a 2d 39 39 0d  ..-47..-47..-99.
2fc0: 0a 2d 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-99....onlyif m
2fd0: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
2fe0: 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72   syntax: DIV for
2ff0: 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
3000: 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
3010: 73 6f 72 74 20 6c 61 62 65 6c 2d 35 36 0d 0a 53  sort label-56..S
3020: 45 4c 45 43 54 20 2d 20 4d 49 4e 28 20 2d 20 63  ELECT - MIN( - c
3030: 6f 6c 32 20 29 20 44 49 56 20 37 31 20 2b 20 2b  ol2 ) DIV 71 + +
3040: 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d   COUNT( * ) FROM
3050: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
3060: 2d 2d 2d 0d 0a 34 0d 0a 0d 0a 73 6b 69 70 69 66  ---..4....skipif
3070: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
3080: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
3090: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
30a0: 36 0d 0a 53 45 4c 45 43 54 20 2d 20 4d 49 4e 20  6..SELECT - MIN 
30b0: 28 20 2d 20 63 6f 6c 32 20 29 20 2f 20 37 31 20  ( - col2 ) / 71 
30c0: 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  + + COUNT ( * ) 
30d0: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
30e0: 30 0d 0a 2d 2d 2d 2d 0d 0a 34 0d 0a 0d 0a 6f 6e  0..----..4....on
30f0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
3100: 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
3110: 61 74 65 20 73 79 6e 74 61 78 3a 20 44 45 43 49  ate syntax: DECI
3120: 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  MAL type: ..quer
3130: 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
3140: 65 6c 2d 35 37 0d 0a 53 45 4c 45 43 54 20 44 49  el-57..SELECT DI
3150: 53 54 49 4e 43 54 20 2d 20 31 38 20 41 53 20 63  STINCT - 18 AS c
3160: 6f 6c 30 2c 20 2d 20 4d 41 58 28 20 41 4c 4c 20  ol0, - MAX( ALL 
3170: 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44 45  CAST( NULL AS DE
3180: 43 49 4d 41 4c 20 29 20 29 20 46 52 4f 4d 20 74  CIMAL ) ) FROM t
3190: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
31a0: 2d 0d 0a 2d 31 38 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  -..-18..NULL....
31b0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
31c0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
31d0: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
31e0: 6c 61 62 65 6c 2d 35 37 0d 0a 53 45 4c 45 43 54  label-57..SELECT
31f0: 20 44 49 53 54 49 4e 43 54 20 2d 20 31 38 20 41   DISTINCT - 18 A
3200: 53 20 63 6f 6c 30 2c 20 2d 20 4d 41 58 20 28 20  S col0, - MAX ( 
3210: 41 4c 4c 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  ALL CAST ( NULL 
3220: 41 53 20 52 45 41 4c 20 29 20 29 20 46 52 4f 4d  AS REAL ) ) FROM
3230: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
3240: 2d 2d 2d 0d 0a 2d 31 38 0d 0a 4e 55 4c 4c 0d 0a  ---..-18..NULL..
3250: 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
3260: 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
3270: 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
3280: 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
3290: 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
32a0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
32b0: 43 54 20 34 35 20 2b 20 2d 20 2b 20 63 6f 6c 32  CT 45 + - + col2
32c0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
32d0: 0a 2d 2d 2d 2d 0d 0a 2d 31 34 0d 0a 2d 32 33 0d  .----..-14..-23.
32e0: 0a 2d 35 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .-51....query II
32f0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
3300: 20 2d 20 28 20 2d 20 2b 20 63 6f 6c 30 20 29 20   - ( - + col0 ) 
3310: 41 53 20 63 6f 6c 30 2c 20 2b 20 38 20 2b 20 2b  AS col0, + 8 + +
3320: 20 35 33 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   53 AS col2 FROM
3330: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d   tab2..----..46.
3340: 0a 36 31 0d 0a 36 34 0d 0a 36 31 0d 0a 37 35 0d  .61..64..61..75.
3350: 0a 36 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .61....onlyif my
3360: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
3370: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
3380: 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
3390: 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
33a0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
33b0: 6c 2d 36 30 0d 0a 53 45 4c 45 43 54 20 2d 20 43  l-60..SELECT - C
33c0: 41 53 54 28 20 2b 20 63 6f 6c 32 20 41 53 20 53  AST( + col2 AS S
33d0: 49 47 4e 45 44 20 29 20 44 49 56 20 2b 20 63 6f  IGNED ) DIV + co
33e0: 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l1 FROM tab0..--
33f0: 2d 2d 0d 0a 2d 39 39 0d 0a 30 0d 0a 30 0d 0a 0d  --..-99..0..0...
3400: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
3410: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
3420: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
3430: 6c 61 62 65 6c 2d 36 30 0d 0a 53 45 4c 45 43 54  label-60..SELECT
3440: 20 2d 20 43 41 53 54 20 28 20 2b 20 63 6f 6c 32   - CAST ( + col2
3450: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2f 20   AS INTEGER ) / 
3460: 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  + col1 FROM tab0
3470: 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 39 0d 0a 30 0d 0a  ..----..-99..0..
3480: 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
3490: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
34a0: 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20 2b 20 2d  TINCT + col2 + -
34b0: 20 28 20 2b 20 2d 20 63 6f 6c 30 20 29 20 41 53   ( + - col0 ) AS
34c0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
34d0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 34 0d  cor0..----..144.
34e0: 0a 31 34 37 0d 0a 31 35 39 0d 0a 0d 0a 71 75 65  .147..159....que
34f0: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
3500: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
3510: 62 30 20 57 48 45 52 45 20 63 6f 6c 31 20 3e 20  b0 WHERE col1 > 
3520: 28 20 33 34 20 29 0d 0a 2d 2d 2d 2d 0d 0a 31 35  ( 34 )..----..15
3530: 0d 0a 38 31 0d 0a 34 37 0d 0a 0d 0a 71 75 65 72  ..81..47....quer
3540: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
3550: 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 2a  ECT ALL + col0 *
3560: 20 28 20 2b 20 2d 20 63 6f 6c 30 20 29 20 41 53   ( + - col0 ) AS
3570: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
3580: 0a 2d 2d 2d 2d 0d 0a 2d 32 36 30 31 0d 0a 2d 37  .----..-2601..-7
3590: 32 32 35 0d 0a 2d 38 32 38 31 0d 0a 0d 0a 71 75  225..-8281....qu
35a0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
35b0: 45 4c 45 43 54 20 33 39 20 2b 20 2b 20 2b 20 63  ELECT 39 + + + c
35c0: 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol0 AS col2 FROM
35d0: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 32 34   tab1..----..124
35e0: 0d 0a 31 33 30 0d 0a 39 30 0d 0a 0d 0a 6f 6e 6c  ..130..90....onl
35f0: 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
3600: 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
3610: 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
3620: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35  rowsort label-65
3630: 0d 0a 53 45 4c 45 43 54 20 2d 20 35 39 20 44 49  ..SELECT - 59 DI
3640: 56 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20  V + - col0 FROM 
3650: 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
3660: 0a 30 0d 0a 30 0d 0a 33 0d 0a 0d 0a 73 6b 69 70  .0..0..3....skip
3670: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
3680: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
3690: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
36a0: 2d 36 35 0d 0a 53 45 4c 45 43 54 20 2d 20 35 39  -65..SELECT - 59
36b0: 20 2f 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d   / + - col0 FROM
36c0: 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab0 cor0..----
36d0: 0d 0a 30 0d 0a 30 0d 0a 33 0d 0a 0d 0a 71 75 65  ..0..0..3....que
36e0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
36f0: 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2a 20 2d 20  LECT + col1 * - 
3700: 2b 20 63 6f 6c 31 20 2a 20 39 34 20 46 52 4f 4d  + col1 * 94 FROM
3710: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
3720: 2d 2d 2d 0d 0a 2d 31 38 34 32 34 0d 0a 2d 32 30  ---..-18424..-20
3730: 37 36 34 36 0d 0a 2d 32 33 35 30 0d 0a 0d 0a 71  7646..-2350....q
3740: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
3750: 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c  SELECT ALL - col
3760: 32 20 2a 20 2b 20 34 31 20 2a 20 2b 20 63 6f 6c  2 * + 41 * + col
3770: 31 20 2b 20 36 34 20 46 52 4f 4d 20 74 61 62 31  1 + 64 FROM tab1
3780: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
3790: 2d 31 32 30 33 31 0d 0a 2d 31 33 30 39 37 32 0d  -12031..-130972.
37a0: 0a 2d 35 35 30 34 30 0d 0a 0d 0a 71 75 65 72 79  .-55040....query
37b0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
37c0: 43 54 20 63 6f 6c 31 20 2a 20 2d 20 32 38 20 46  CT col1 * - 28 F
37d0: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
37e0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 32 38 0d 0a 2d  ..----..-1428..-
37f0: 31 38 37 36 0d 0a 2d 32 31 35 36 0d 0a 0d 0a 6f  1876..-2156....o
3800: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
3810: 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
3820: 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
3830: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
3840: 36 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  69..SELECT ALL -
3850: 20 43 41 53 54 28 20 43 41 53 54 28 20 4e 55 4c   CAST( CAST( NUL
3860: 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53  L AS SIGNED ) AS
3870: 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c   SIGNED ) AS col
3880: 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
3890: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
38a0: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .NULL..NULL....s
38b0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
38c0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
38d0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
38e0: 62 65 6c 2d 36 39 0d 0a 53 45 4c 45 43 54 20 41  bel-69..SELECT A
38f0: 4c 4c 20 2d 20 43 41 53 54 20 28 20 43 41 53 54  LL - CAST ( CAST
3900: 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
3910: 45 52 20 29 20 41 53 20 49 4e 54 45 47 45 52 20  ER ) AS INTEGER 
3920: 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
3930: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
3940: 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
3950: 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ULL....onlyif my
3960: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
3970: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
3980: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
3990: 37 30 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55  70..SELECT + COU
39a0: 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  NT( * ) FROM tab
39b0: 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
39c0: 4e 4f 54 20 4e 55 4c 4c 20 3c 3d 20 4e 55 4c 4c  NOT NULL <= NULL
39d0: 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69  ..----..0....ski
39e0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
39f0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
3a00: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
3a10: 6c 2d 37 30 0d 0a 53 45 4c 45 43 54 20 2b 20 43  l-70..SELECT + C
3a20: 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20  OUNT ( * ) FROM 
3a30: 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
3a40: 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3c 3d 20 4e  RE NOT NULL <= N
3a50: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  ULL..----..0....
3a60: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
3a70: 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
3a80: 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
3a90: 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54  ERE NOT NULL NOT
3aa0: 20 49 4e 20 28 20 2d 20 33 33 2c 20 2b 20 39 39   IN ( - 33, + 99
3ab0: 20 2d 20 2d 20 28 20 2b 20 2b 20 63 6f 6c 32 20   - - ( + + col2 
3ac0: 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ) )..----....que
3ad0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
3ae0: 4c 45 43 54 20 41 4c 4c 20 2b 20 38 35 20 2f 20  LECT ALL + 85 / 
3af0: 2d 20 2d 20 63 6f 6c 32 20 2d 20 2b 20 38 37 20  - - col2 - + 87 
3b00: 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
3b10: 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54  NOT NULL NOT BET
3b20: 57 45 45 4e 20 2b 20 63 6f 6c 30 20 2a 20 2b 20  WEEN + col0 * + 
3b30: 2b 20 28 20 35 39 20 29 20 2a 20 63 6f 6c 30 20  + ( 59 ) * col0 
3b40: 2a 20 2d 20 63 6f 6c 31 20 41 4e 44 20 4e 55 4c  * - col1 AND NUL
3b50: 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
3b60: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
3b70: 43 54 20 28 20 2b 20 28 20 2d 20 2d 20 33 33 20  CT ( + ( - - 33 
3b80: 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ) ) AS col1 FROM
3b90: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 33 0d   tab1..----..33.
3ba0: 0a 33 33 0d 0a 33 33 0d 0a 0d 0a 71 75 65 72 79  .33..33....query
3bb0: 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
3bc0: 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 2a  ECT ALL - col2 *
3bd0: 20 2d 20 39 34 20 41 53 20 63 6f 6c 30 2c 20 31   - 94 AS col0, 1
3be0: 38 20 2a 20 2d 20 63 6f 6c 31 20 2a 20 63 6f 6c  8 * - col1 * col
3bf0: 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
3c00: 2d 0d 0a 34 34 31 38 0d 0a 2d 32 31 38 37 30 0d  -..4418..-21870.
3c10: 0a 39 33 30 36 0d 0a 2d 31 37 34 36 0d 0a 39 34  .9306..-1746..94
3c20: 30 0d 0a 2d 33 32 38 38 36 0d 0a 0d 0a 71 75 65  0..-32886....que
3c30: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
3c40: 4c 45 43 54 20 39 37 20 2a 20 2d 20 2d 20 63 6f  LECT 97 * - - co
3c50: 6c 30 20 2a 20 2d 20 2b 20 32 32 20 2a 20 63 6f  l0 * - + 22 * co
3c60: 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l2 FROM tab1..--
3c70: 2d 2d 0d 0a 2d 31 30 34 34 38 30 36 34 0d 0a 2d  --..-10448064..-
3c80: 31 30 37 30 32 30 31 30 0d 0a 2d 31 33 32 30 35  10702010..-13205
3c90: 31 39 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  192....onlyif my
3ca0: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
3cb0: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
3cc0: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
3cd0: 2d 37 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  -76..SELECT ALL 
3ce0: 4d 49 4e 28 20 41 4c 4c 20 2b 20 63 6f 6c 31 20  MIN( ALL + col1 
3cf0: 29 20 41 53 20 63 6f 6c 32 2c 20 2d 20 53 55 4d  ) AS col2, - SUM
3d00: 28 20 2d 20 31 30 20 29 20 46 52 4f 4d 20 74 61  ( - 10 ) FROM ta
3d10: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 0d 0a 33 30 0d  b1..----..5..30.
3d20: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
3d30: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
3d40: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
3d50: 72 74 20 6c 61 62 65 6c 2d 37 36 0d 0a 53 45 4c  rt label-76..SEL
3d60: 45 43 54 20 41 4c 4c 20 4d 49 4e 20 28 20 41 4c  ECT ALL MIN ( AL
3d70: 4c 20 2b 20 63 6f 6c 31 20 29 20 41 53 20 63 6f  L + col1 ) AS co
3d80: 6c 32 2c 20 2d 20 53 55 4d 20 28 20 2d 20 31 30  l2, - SUM ( - 10
3d90: 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d   ) FROM tab1..--
3da0: 2d 2d 0d 0a 35 0d 0a 33 30 0d 0a 0d 0a 6f 6e 6c  --..5..30....onl
3db0: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
3dc0: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
3dd0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
3de0: 6c 61 62 65 6c 2d 37 37 0d 0a 53 45 4c 45 43 54  label-77..SELECT
3df0: 20 41 4c 4c 20 2d 20 2d 20 4d 49 4e 28 20 41 4c   ALL - - MIN( AL
3e00: 4c 20 2b 20 34 36 20 29 20 41 53 20 63 6f 6c 30  L + 46 ) AS col0
3e10: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
3e20: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 0d 0a  r0..----..46....
3e30: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
3e40: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
3e50: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
3e60: 61 62 65 6c 2d 37 37 0d 0a 53 45 4c 45 43 54 20  abel-77..SELECT 
3e70: 41 4c 4c 20 2d 20 2d 20 4d 49 4e 20 28 20 41 4c  ALL - - MIN ( AL
3e80: 4c 20 2b 20 34 36 20 29 20 41 53 20 63 6f 6c 30  L + 46 ) AS col0
3e90: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
3ea0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 0d 0a  r0..----..46....
3eb0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
3ec0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
3ed0: 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 38 30 20 46   + col1 * + 80 F
3ee0: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
3ef0: 0d 0a 2d 2d 2d 2d 0d 0a 31 36 38 30 0d 0a 36 34  ..----..1680..64
3f00: 38 30 0d 0a 38 30 0d 0a 0d 0a 71 75 65 72 79 20  80..80....query 
3f10: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
3f20: 54 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46  T col0 AS col2 F
3f30: 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 2b  ROM tab1 WHERE +
3f40: 20 63 6f 6c 31 20 2f 20 2b 20 63 6f 6c 31 20 2d   col1 / + col1 -
3f50: 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 32 20 2a   col1 + + col2 *
3f60: 20 2d 20 2b 20 63 6f 6c 32 20 3c 20 2b 20 63 6f   - + col2 < + co
3f70: 6c 32 20 41 4e 44 20 4e 4f 54 20 4e 55 4c 4c 20  l2 AND NOT NULL 
3f80: 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
3f90: 2d 0d 0a 35 31 0d 0a 38 35 0d 0a 39 31 0d 0a 0d  -..51..85..91...
3fa0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
3fb0: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
3fc0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
3fd0: 6f 72 74 20 6c 61 62 65 6c 2d 38 30 0d 0a 53 45  ort label-80..SE
3fe0: 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20  LECT COUNT( * ) 
3ff0: 2b 20 2b 20 31 35 20 41 53 20 63 6f 6c 30 20 46  + + 15 AS col0 F
4000: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
4010: 31 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  18....skipif mys
4020: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
4030: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
4040: 73 6f 72 74 20 6c 61 62 65 6c 2d 38 30 0d 0a 53  sort label-80..S
4050: 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 2a 20  ELECT COUNT ( * 
4060: 29 20 2b 20 2b 20 31 35 20 41 53 20 63 6f 6c 30  ) + + 15 AS col0
4070: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
4080: 0d 0a 31 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..18....query II
4090: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
40a0: 20 2b 20 63 6f 6c 30 2c 20 2b 20 31 32 20 46 52   + col0, + 12 FR
40b0: 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35  OM tab1..----..5
40c0: 31 0d 0a 31 32 0d 0a 38 35 0d 0a 31 32 0d 0a 39  1..12..85..12..9
40d0: 31 0d 0a 31 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  1..12....onlyif 
40e0: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
40f0: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
4100: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
4110: 6c 2d 38 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  l-82..SELECT ALL
4120: 20 41 56 47 20 28 20 63 6f 6c 31 20 29 20 2a 20   AVG ( col1 ) * 
4130: 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 63  + + COUNT( * ) c
4140: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
4150: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c   cor0 WHERE NULL
4160: 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
4170: 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
4180: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
4190: 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
41a0: 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
41b0: 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
41c0: 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
41d0: 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
41e0: 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
41f0: 6f 72 74 20 6c 61 62 65 6c 2d 38 32 0d 0a 53 45  ort label-82..SE
4200: 4c 45 43 54 20 41 4c 4c 20 41 56 47 20 28 20 63  LECT ALL AVG ( c
4210: 6f 6c 31 20 29 20 2a 20 2b 20 2b 20 43 4f 55 4e  ol1 ) * + + COUN
4220: 54 20 28 20 2a 20 29 20 63 6f 6c 32 20 46 52 4f  T ( * ) col2 FRO
4230: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
4240: 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 4f 54  HERE NULL IS NOT
4250: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   NULL..----..NUL
4260: 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  L....query I row
4270: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 28  sort..SELECT - (
4280: 20 2d 20 32 38 20 29 20 46 52 4f 4d 20 74 61 62   - 28 ) FROM tab
4290: 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 38  0 cor0..----..28
42a0: 0d 0a 32 38 0d 0a 32 38 0d 0a 0d 0a 71 75 65 72  ..28..28....quer
42b0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
42c0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 37 36 20  ECT DISTINCT 76 
42d0: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
42e0: 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
42f0: 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 30 20 4e 4f  col2 * - col0 NO
4300: 54 20 49 4e 20 28 20 2d 20 35 32 2c 20 2b 20 34  T IN ( - 52, + 4
4310: 38 20 29 0d 0a 2d 2d 2d 2d 0d 0a 37 36 0d 0a 0d  8 )..----..76...
4320: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
4330: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
4340: 43 54 20 2d 20 36 33 20 2b 20 2b 20 28 20 2b 20  CT - 63 + + ( + 
4350: 63 6f 6c 31 20 29 2c 20 33 35 20 41 53 20 63 6f  col1 ), 35 AS co
4360: 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
4370: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 32 0d  cor0..----..-42.
4380: 0a 33 35 0d 0a 2d 36 32 0d 0a 33 35 0d 0a 31 38  .35..-62..35..18
4390: 0d 0a 33 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..35....query II
43a0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
43b0: 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53  T * FROM tab1 AS
43c0: 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 63 6f   cor0 WHERE + co
43d0: 6c 31 20 3e 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d  l1 > col2..----.
43e0: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
43f0: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
4400: 4e 43 54 20 2b 20 63 6f 6c 30 20 2b 20 63 6f 6c  NCT + col0 + col
4410: 31 20 2a 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f  1 * - col2 AS co
4420: 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  l0 FROM tab1 cor
4430: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 39 33 0d 0a  0..----..-1293..
4440: 2d 32 31 30 0d 0a 2d 33 31 30 35 0d 0a 0d 0a 71  -210..-3105....q
4450: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
4460: 53 45 4c 45 43 54 20 63 6f 6c 30 20 41 53 20 63  SELECT col0 AS c
4470: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  ol1 FROM tab0 co
4480: 72 30 20 57 48 45 52 45 20 2b 20 28 20 63 6f 6c  r0 WHERE + ( col
4490: 32 20 29 20 49 4e 20 28 20 2d 20 2b 20 63 6f 6c  2 ) IN ( - + col
44a0: 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  1 )..----....que
44b0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
44c0: 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2a 20 2d 20  LECT + col2 * - 
44d0: 2b 20 31 30 20 46 52 4f 4d 20 74 61 62 30 20 41  + 10 FROM tab0 A
44e0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
44f0: 30 30 0d 0a 2d 34 37 30 0d 0a 2d 39 39 30 0d 0a  00..-470..-990..
4500: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
4510: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
4520: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
4530: 73 6f 72 74 20 6c 61 62 65 6c 2d 39 30 0d 0a 53  sort label-90..S
4540: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 4d  ELECT DISTINCT M
4550: 41 58 28 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 29  AX( ALL - col2 )
4560: 20 2a 20 34 34 20 2a 20 2d 20 43 4f 55 4e 54 28   * 44 * - COUNT(
4570: 20 2a 20 29 20 2b 20 2d 20 2b 20 28 20 36 20 29   * ) + - + ( 6 )
4580: 20 2d 20 35 34 20 63 6f 6c 31 20 46 52 4f 4d 20   - 54 col1 FROM 
4590: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
45a0: 2d 2d 0d 0a 37 37 32 38 0d 0a 0d 0a 73 6b 69 70  --..7728....skip
45b0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
45c0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
45d0: 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
45e0: 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
45f0: 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
4600: 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
4610: 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
4620: 6f 72 74 20 6c 61 62 65 6c 2d 39 30 0d 0a 53 45  ort label-90..SE
4630: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 4d 41  LECT DISTINCT MA
4640: 58 20 28 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 29  X ( ALL - col2 )
4650: 20 2a 20 34 34 20 2a 20 2d 20 43 4f 55 4e 54 20   * 44 * - COUNT 
4660: 28 20 2a 20 29 20 2b 20 2d 20 2b 20 28 20 36 20  ( * ) + - + ( 6 
4670: 29 20 2d 20 35 34 20 63 6f 6c 31 20 46 52 4f 4d  ) - 54 col1 FROM
4680: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
4690: 2d 2d 2d 0d 0a 37 37 32 38 0d 0a 0d 0a 6f 6e 6c  ---..7728....onl
46a0: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
46b0: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49  egate syntax: DI
46c0: 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
46d0: 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
46e0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
46f0: 39 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  91..SELECT DISTI
4700: 4e 43 54 20 2d 20 2b 20 43 4f 55 4e 54 28 20 2a  NCT - + COUNT( *
4710: 20 29 20 44 49 56 20 2b 20 2d 20 36 32 20 46 52   ) DIV + - 62 FR
4720: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
4730: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .----..0....skip
4740: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
4750: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
4760: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
4770: 2d 39 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  -91..SELECT DIST
4780: 49 4e 43 54 20 2d 20 2b 20 43 4f 55 4e 54 20 28  INCT - + COUNT (
4790: 20 2a 20 29 20 2f 20 2b 20 2d 20 36 32 20 46 52   * ) / + - 62 FR
47a0: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
47b0: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .----..0....skip
47c0: 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
47d0: 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
47e0: 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
47f0: 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
4800: 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  mns..query II ro
4810: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
4820: 2d 20 30 20 2a 20 2d 20 39 30 20 2a 20 2d 20 2d  - 0 * - 90 * - -
4830: 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 2c 20 2b   col2 AS col2, +
4840: 20 63 6f 6c 31 20 63 6f 6c 31 20 46 52 4f 4d 20   col1 col1 FROM 
4850: 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
4860: 0a 30 0d 0a 31 34 0d 0a 30 0d 0a 34 37 0d 0a 30  .0..14..0..47..0
4870: 0d 0a 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ..5....query I r
4880: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
4890: 6f 6c 32 20 2b 20 2d 20 31 36 20 41 53 20 63 6f  ol2 + - 16 AS co
48a0: 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l0 FROM tab1..--
48b0: 2d 2d 0d 0a 34 33 0d 0a 35 32 0d 0a 38 30 0d 0a  --..43..52..80..
48c0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
48d0: 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32  t..SELECT - col2
48e0: 20 2a 20 63 6f 6c 32 20 2b 20 2d 20 35 20 41 53   * col2 + - 5 AS
48f0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
4900: 0a 2d 2d 2d 2d 0d 0a 2d 31 30 35 0d 0a 2d 32 32  .----..-105..-22
4910: 31 34 0d 0a 2d 39 38 30 36 0d 0a 0d 0a 71 75 65  14..-9806....que
4920: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
4930: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
4940: 6c 32 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 2b 20  l2 + + col1 * + 
4950: 2b 20 31 38 20 2b 20 2d 20 2d 20 63 6f 6c 30 20  + 18 + - - col0 
4960: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
4970: 0a 31 35 32 30 0d 0a 32 31 34 0d 0a 34 37 35 0d  .1520..214..475.
4980: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
4990: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
49a0: 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
49b0: 63 6f 72 30 20 57 48 45 52 45 20 2d 20 34 36 20  cor0 WHERE - 46 
49c0: 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
49d0: 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
49e0: 69 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61 35  ing to 75c998aa5
49f0: 33 61 63 38 33 32 31 38 63 62 66 32 66 65 62 39  3ac83218cbf2feb9
4a00: 36 32 64 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79  62d0a49....query
4a10: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
4a20: 43 54 20 2b 20 35 37 20 2d 20 2b 20 34 34 20 46  CT + 57 - + 44 F
4a30: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
4a40: 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20   WHERE ( NULL ) 
4a50: 3c 20 2b 20 32 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  < + 21..----....
4a60: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
4a70: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
4a80: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
4a90: 72 74 20 6c 61 62 65 6c 2d 39 38 0d 0a 53 45 4c  rt label-98..SEL
4aa0: 45 43 54 20 2b 20 4d 49 4e 28 20 39 32 20 29 20  ECT + MIN( 92 ) 
4ab0: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
4ac0: 32 2c 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  2, tab2 AS cor0.
4ad0: 0a 2d 2d 2d 2d 0d 0a 39 32 0d 0a 0d 0a 73 6b 69  .----..92....ski
4ae0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
4af0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
4b00: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
4b10: 6c 2d 39 38 0d 0a 53 45 4c 45 43 54 20 2b 20 4d  l-98..SELECT + M
4b20: 49 4e 20 28 20 39 32 20 29 20 41 53 20 63 6f 6c  IN ( 92 ) AS col
4b30: 30 20 46 52 4f 4d 20 74 61 62 32 2c 20 74 61 62  0 FROM tab2, tab
4b40: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
4b50: 0a 39 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .92....query I r
4b60: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
4b70: 4c 4c 20 33 20 46 52 4f 4d 20 74 61 62 30 20 41  LL 3 FROM tab0 A
4b80: 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  S cor0 CROSS JOI
4b90: 4e 20 74 61 62 32 20 63 6f 72 31 0d 0a 2d 2d 2d  N tab2 cor1..---
4ba0: 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
4bb0: 69 6e 67 20 74 6f 20 33 63 66 31 65 33 37 37 61  ing to 3cf1e377a
4bc0: 39 34 33 35 38 39 38 39 37 62 38 64 34 33 31 61  943589897b8d431a
4bd0: 38 33 34 66 31 62 61 0d 0a 0d 0a 71 75 65 72 79  834f1ba....query
4be0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
4bf0: 43 54 20 2d 20 38 38 20 46 52 4f 4d 20 74 61 62  CT - 88 FROM tab
4c00: 31 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  1 AS cor0 CROSS 
4c10: 4a 4f 49 4e 20 74 61 62 32 20 41 53 20 63 6f 72  JOIN tab2 AS cor
4c20: 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  1..----..9 value
4c30: 73 20 68 61 73 68 69 6e 67 20 74 6f 20 34 36 37  s hashing to 467
4c40: 33 30 31 66 38 38 37 36 31 34 65 62 37 62 65 64  301f887614eb7bed
4c50: 61 32 32 63 35 36 31 62 30 66 61 64 32 0d 0a 0d  a22c561b0fad2...
4c60: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
4c70: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
4c80: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
4c90: 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31 0d 0a 53  ort label-101..S
4ca0: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
4cb0: 20 2b 20 4d 49 4e 28 20 39 32 20 29 20 63 6f 6c   + MIN( 92 ) col
4cc0: 32 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  2 FROM tab0 cor0
4cd0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 32 0d 0a 0d 0a 73  ..----..-92....s
4ce0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
4cf0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
4d00: 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
4d10: 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
4d20: 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
4d30: 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
4d40: 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
4d50: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31  owsort label-101
4d60: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
4d70: 54 20 2d 20 2b 20 4d 49 4e 20 28 20 39 32 20 29  T - + MIN ( 92 )
4d80: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
4d90: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 32 0d  cor0..----..-92.
4da0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
4db0: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61  # CAST syntax: a
4dc0: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
4dd0: 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
4de0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
4df0: 6c 61 62 65 6c 2d 31 30 32 0d 0a 53 45 4c 45 43  label-102..SELEC
4e00: 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 43  T DISTINCT + + C
4e10: 41 53 54 28 20 4d 49 4e 28 20 41 4c 4c 20 36 39  AST( MIN( ALL 69
4e20: 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 46   ) AS SIGNED ) F
4e30: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
4e40: 0d 0a 2d 2d 2d 2d 0d 0a 36 39 0d 0a 0d 0a 73 6b  ..----..69....sk
4e50: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
4e60: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
4e70: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
4e80: 65 6c 2d 31 30 32 0d 0a 53 45 4c 45 43 54 20 44  el-102..SELECT D
4e90: 49 53 54 49 4e 43 54 20 2b 20 2b 20 43 41 53 54  ISTINCT + + CAST
4ea0: 20 28 20 4d 49 4e 20 28 20 41 4c 4c 20 36 39 20   ( MIN ( ALL 69 
4eb0: 29 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 46  ) AS INTEGER ) F
4ec0: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
4ed0: 0d 0a 2d 2d 2d 2d 0d 0a 36 39 0d 0a 0d 0a 6f 6e  ..----..69....on
4ee0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
4ef0: 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
4f00: 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
4f10: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
4f20: 31 30 33 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  103..SELECT - co
4f30: 6c 31 20 2f 20 2b 20 2b 20 43 41 53 54 28 20 4e  l1 / + + CAST( N
4f40: 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 2c  ULL AS SIGNED ),
4f50: 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   + CAST( NULL AS
4f60: 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74   SIGNED ) FROM t
4f70: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
4f80: 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
4f90: 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
4fa0: 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
4fb0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
4fc0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
4fd0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
4fe0: 30 33 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  03..SELECT - col
4ff0: 31 20 2f 20 2b 20 2b 20 43 41 53 54 20 28 20 4e  1 / + + CAST ( N
5000: 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
5010: 2c 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  , + CAST ( NULL 
5020: 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f  AS INTEGER ) FRO
5030: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
5040: 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
5050: 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
5060: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72  LL..NULL....quer
5070: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
5080: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63  ECT DISTINCT - c
5090: 6f 6c 31 20 2a 20 34 35 20 41 53 20 63 6f 6c 32  ol1 * 45 AS col2
50a0: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
50b0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 36 34 35 0d  r0..----..-3645.
50c0: 0a 2d 34 35 0d 0a 2d 39 34 35 0d 0a 0d 0a 6f 6e  .-45..-945....on
50d0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
50e0: 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
50f0: 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
5100: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
5110: 30 35 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 63  05..SELECT + + c
5120: 6f 6c 30 20 44 49 56 20 2d 20 2d 20 63 6f 6c 31  ol0 DIV - - col1
5130: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
5140: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
5150: 0d 0a 30 0d 0a 34 0d 0a 39 37 0d 0a 0d 0a 73 6b  ..0..4..97....sk
5160: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
5170: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
5180: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
5190: 65 6c 2d 31 30 35 0d 0a 53 45 4c 45 43 54 20 2b  el-105..SELECT +
51a0: 20 2b 20 63 6f 6c 30 20 2f 20 2d 20 2d 20 63 6f   + col0 / - - co
51b0: 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l1 AS col1 FROM 
51c0: 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
51d0: 2d 2d 0d 0a 30 0d 0a 34 0d 0a 39 37 0d 0a 0d 0a  --..0..4..97....
51e0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
51f0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28 20 2d 20  .SELECT ALL ( - 
5200: 30 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  0 ) AS col0 FROM
5210: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   tab2..----..0..
5220: 30 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49  0..0....query II
5230: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
5240: 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 2c 20   DISTINCT col1, 
5250: 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46  - col0 AS col1 F
5260: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
5270: 31 34 0d 0a 2d 35 31 0d 0a 34 37 0d 0a 2d 39 31  14..-51..47..-91
5280: 0d 0a 35 0d 0a 2d 38 35 0d 0a 0d 0a 6f 6e 6c 79  ..5..-85....only
5290: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
52a0: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
52b0: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
52c0: 6c 61 62 65 6c 2d 31 30 38 0d 0a 53 45 4c 45 43  label-108..SELEC
52d0: 54 20 2d 20 2b 20 32 30 20 41 53 20 63 6f 6c 31  T - + 20 AS col1
52e0: 2c 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f  , COUNT( * ) FRO
52f0: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
5300: 2d 2d 2d 2d 0d 0a 2d 32 30 0d 0a 33 0d 0a 0d 0a  ----..-20..3....
5310: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
5320: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
5330: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
5340: 6c 61 62 65 6c 2d 31 30 38 0d 0a 53 45 4c 45 43  label-108..SELEC
5350: 54 20 2d 20 2b 20 32 30 20 41 53 20 63 6f 6c 31  T - + 20 AS col1
5360: 2c 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52  , COUNT ( * ) FR
5370: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
5380: 0a 2d 2d 2d 2d 0d 0a 2d 32 30 0d 0a 33 0d 0a 0d  .----..-20..3...
5390: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
53a0: 0d 0a 53 45 4c 45 43 54 20 39 37 20 46 52 4f 4d  ..SELECT 97 FROM
53b0: 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
53c0: 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20  ERE NOT NULL IS 
53d0: 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
53e0: 39 37 0d 0a 39 37 0d 0a 39 37 0d 0a 0d 0a 6f 6e  97..97..97....on
53f0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
5400: 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
5410: 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
5420: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
5430: 2d 31 31 30 0d 0a 53 45 4c 45 43 54 20 2a 20 46  -110..SELECT * F
5440: 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 38  ROM tab1 WHERE 8
5450: 32 20 2a 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 34  2 * + col2 + + 4
5460: 37 20 2b 20 2b 20 28 20 2b 20 63 6f 6c 32 20 29  7 + + ( + col2 )
5470: 20 2a 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20   * - CAST( NULL 
5480: 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2d 20  AS SIGNED ) + - 
5490: 2b 20 35 37 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  + 57 IS NOT NULL
54a0: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
54b0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
54c0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
54d0: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
54e0: 2d 31 31 30 0d 0a 53 45 4c 45 43 54 20 2a 20 46  -110..SELECT * F
54f0: 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 38  ROM tab1 WHERE 8
5500: 32 20 2a 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 34  2 * + col2 + + 4
5510: 37 20 2b 20 2b 20 28 20 2b 20 63 6f 6c 32 20 29  7 + + ( + col2 )
5520: 20 2a 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c   * - CAST ( NULL
5530: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20   AS INTEGER ) + 
5540: 2d 20 2b 20 35 37 20 49 53 20 4e 4f 54 20 4e 55  - + 57 IS NOT NU
5550: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  LL..----....only
5560: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
5570: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
5580: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
5590: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31  owsort label-111
55a0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
55b0: 54 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  T - CAST( NULL A
55c0: 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2b 20 2d  S SIGNED ) + + -
55d0: 20 31 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   11 AS col0 FROM
55e0: 20 74 61 62 30 20 57 48 45 52 45 20 2d 20 63 6f   tab0 WHERE - co
55f0: 6c 31 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20  l1 BETWEEN NULL 
5600: 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  AND NULL..----..
5610: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
5620: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
5630: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
5640: 20 6c 61 62 65 6c 2d 31 31 31 0d 0a 53 45 4c 45   label-111..SELE
5650: 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43 41  CT DISTINCT - CA
5660: 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
5670: 45 47 45 52 20 29 20 2b 20 2b 20 2d 20 31 31 20  EGER ) + + - 11 
5680: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
5690: 30 20 57 48 45 52 45 20 2d 20 63 6f 6c 31 20 42  0 WHERE - col1 B
56a0: 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20  ETWEEN NULL AND 
56b0: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
56c0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
56d0: 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
56e0: 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
56f0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
5700: 31 32 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c  12..SELECT + col
5710: 31 20 44 49 56 20 2b 20 63 6f 6c 31 20 2b 20 2d  1 DIV + col1 + -
5720: 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   - col2 FROM tab
5730: 32 0d 0a 2d 2d 2d 2d 0d 0a 32 34 0d 0a 34 31 0d  2..----..24..41.
5740: 0a 35 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .59....skipif my
5750: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
5760: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
5770: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 32 0d  wsort label-112.
5780: 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2f  .SELECT + col1 /
5790: 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 2d 20 63 6f   + col1 + - - co
57a0: 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
57b0: 2d 2d 0d 0a 32 34 0d 0a 34 31 0d 0a 35 39 0d 0a  --..24..41..59..
57c0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
57d0: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
57e0: 43 54 20 63 6f 6c 32 20 2a 20 37 31 20 2b 20 63  CT col2 * 71 + c
57f0: 6f 6c 31 20 2b 20 2b 20 63 6f 6c 31 20 46 52 4f  ol1 + + col1 FRO
5800: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
5810: 2d 2d 2d 2d 0d 0a 34 31 39 39 0d 0a 34 39 32 32  ----..4199..4922
5820: 0d 0a 36 38 34 34 0d 0a 0d 0a 71 75 65 72 79 20  ..6844....query 
5830: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
5840: 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20  T DISTINCT col2 
5850: 2b 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 28 20 2d  + + col1 * + ( -
5860: 20 2d 20 33 37 20 29 20 2b 20 2d 20 2b 20 63 6f   - 37 ) + - + co
5870: 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
5880: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 30 32 39  cor0..----..3029
5890: 0d 0a 33 39 0d 0a 37 30 30 0d 0a 0d 0a 71 75 65  ..39..700....que
58a0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
58b0: 4c 45 43 54 20 2b 20 2b 20 37 36 20 2b 20 2b 20  LECT + + 76 + + 
58c0: 35 31 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63  51 + - col2 AS c
58d0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
58e0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 34   cor0..----..104
58f0: 0d 0a 36 39 0d 0a 38 37 0d 0a 0d 0a 6f 6e 6c 79  ..69..87....only
5900: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
5910: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
5920: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
5930: 61 62 65 6c 2d 31 31 36 0d 0a 53 45 4c 45 43 54  abel-116..SELECT
5940: 20 2d 20 2d 20 33 37 20 2b 20 2d 20 4d 41 58 28   - - 37 + - MAX(
5950: 20 41 4c 4c 20 2b 20 31 38 20 29 20 41 53 20 63   ALL + 18 ) AS c
5960: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
5970: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 0d   cor0..----..19.
5980: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
5990: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
59a0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
59b0: 74 20 6c 61 62 65 6c 2d 31 31 36 0d 0a 53 45 4c  t label-116..SEL
59c0: 45 43 54 20 2d 20 2d 20 33 37 20 2b 20 2d 20 4d  ECT - - 37 + - M
59d0: 41 58 20 28 20 41 4c 4c 20 2b 20 31 38 20 29 20  AX ( ALL + 18 ) 
59e0: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
59f0: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
5a00: 0a 31 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .19....query I r
5a10: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
5a20: 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52   col1 AS col1 FR
5a30: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
5a40: 57 48 45 52 45 20 2d 20 33 31 20 49 53 20 4e 4f  WHERE - 31 IS NO
5a50: 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  T NULL..----..-5
5a60: 31 0d 0a 2d 36 37 0d 0a 2d 37 37 0d 0a 0d 0a 71  1..-67..-77....q
5a70: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
5a80: 53 45 4c 45 43 54 20 2b 20 2d 20 32 32 20 2b 20  SELECT + - 22 + 
5a90: 38 35 20 2d 20 32 39 20 2a 20 63 6f 6c 32 20 46  85 - 29 * col2 F
5aa0: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
5ab0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 30 30 0d 0a 2d  ..----..-1300..-
5ac0: 32 32 37 0d 0a 2d 32 38 30 38 0d 0a 0d 0a 6f 6e  227..-2808....on
5ad0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
5ae0: 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
5af0: 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
5b00: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
5b10: 31 31 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  119..SELECT DIST
5b20: 49 4e 43 54 20 2d 20 63 6f 6c 32 20 2d 20 2b 20  INCT - col2 - + 
5b30: 63 6f 6c 31 20 2a 20 2d 20 2d 20 63 6f 6c 30 20  col1 * - - col0 
5b40: 2d 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 2b 20 63  - + col0 + + + c
5b50: 6f 6c 32 20 2b 20 2d 20 63 6f 6c 32 20 2b 20 2b  ol2 + - col2 + +
5b60: 20 2b 20 37 35 20 2a 20 2b 20 63 6f 6c 31 20 2b   + 75 * + col1 +
5b70: 20 2b 20 2b 20 35 38 20 44 49 56 20 2b 20 36 38   + + 58 DIV + 68
5b80: 20 41 53 20 63 6f 6c 30 2c 20 2d 20 28 20 2d 20   AS col0, - ( - 
5b90: 39 35 20 29 20 44 49 56 20 2b 20 38 38 20 2b 20  95 ) DIV + 88 + 
5ba0: 28 20 2d 20 63 6f 6c 31 20 29 20 41 53 20 63 6f  ( - col1 ) AS co
5bb0: 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l0 FROM tab1..--
5bc0: 2d 2d 0d 0a 2d 31 39 34 0d 0a 2d 34 0d 0a 2d 39  --..-194..-4..-9
5bd0: 31 31 0d 0a 2d 34 36 0d 0a 31 38 39 0d 0a 2d 31  11..-46..189..-1
5be0: 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
5bf0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
5c00: 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
5c10: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 39 0d 0a  sort label-119..
5c20: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
5c30: 2d 20 63 6f 6c 32 20 2d 20 2b 20 63 6f 6c 31 20  - col2 - + col1 
5c40: 2a 20 2d 20 2d 20 63 6f 6c 30 20 2d 20 2b 20 63  * - - col0 - + c
5c50: 6f 6c 30 20 2b 20 2b 20 2b 20 63 6f 6c 32 20 2b  ol0 + + + col2 +
5c60: 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 2b 20 37 35   - col2 + + + 75
5c70: 20 2a 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 2b 20   * + col1 + + + 
5c80: 35 38 20 2f 20 2b 20 36 38 20 41 53 20 63 6f 6c  58 / + 68 AS col
5c90: 30 2c 20 2d 20 28 20 2d 20 39 35 20 29 20 2f 20  0, - ( - 95 ) / 
5ca0: 2b 20 38 38 20 2b 20 28 20 2d 20 63 6f 6c 31 20  + 88 + ( - col1 
5cb0: 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
5cc0: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 34 0d  ab1..----..-194.
5cd0: 0a 2d 34 0d 0a 2d 39 31 31 0d 0a 2d 34 36 0d 0a  .-4..-911..-46..
5ce0: 31 38 39 0d 0a 2d 31 33 0d 0a 0d 0a 71 75 65 72  189..-13....quer
5cf0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
5d00: 45 43 54 20 39 34 20 2d 20 2b 20 36 33 20 41 53  ECT 94 - + 63 AS
5d10: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
5d20: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33  AS cor0..----..3
5d30: 31 0d 0a 33 31 0d 0a 33 31 0d 0a 0d 0a 71 75 65  1..31..31....que
5d40: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
5d50: 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
5d60: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
5d70: 48 45 52 45 20 31 39 20 3c 3e 20 4e 55 4c 4c 0d  HERE 19 <> NULL.
5d80: 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
5d90: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
5da0: 20 41 4c 4c 20 63 6f 6c 30 20 2d 20 2d 20 2b 20   ALL col0 - - + 
5db0: 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 32 20 2a 20  col0 + - col2 * 
5dc0: 2b 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30  + + col1 AS col0
5dd0: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
5de0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 38 31 0d  r0..----..-1081.
5df0: 0a 2d 32 39 35 32 0d 0a 2d 33 37 33 36 0d 0a 0d  .-2952..-3736...
5e00: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
5e10: 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 63 6f 6c  ..SELECT + - col
5e20: 30 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  0 FROM tab2 WHER
5e30: 45 20 4e 4f 54 20 2d 20 63 6f 6c 32 20 49 53 20  E NOT - col2 IS 
5e40: 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
5e50: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
5e60: 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 33  rt..SELECT - + 3
5e70: 37 20 41 53 20 63 6f 6c 32 2c 20 2d 20 28 20 2b  7 AS col2, - ( +
5e80: 20 2d 20 63 6f 6c 32 20 29 20 2a 20 2d 20 63 6f   - col2 ) * - co
5e90: 6c 31 20 2d 20 39 39 20 46 52 4f 4d 20 74 61 62  l1 - 99 FROM tab
5ea0: 32 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  2 WHERE NOT NULL
5eb0: 20 3e 3d 20 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d   >= + col2..----
5ec0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
5ed0: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
5ee0: 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
5ef0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
5f00: 61 62 65 6c 2d 31 32 35 0d 0a 53 45 4c 45 43 54  abel-125..SELECT
5f10: 20 2b 20 43 41 53 54 28 20 2b 20 38 39 20 41 53   + CAST( + 89 AS
5f20: 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74   SIGNED ) FROM t
5f30: 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 38 39 0d 0a 38  ab2..----..89..8
5f40: 39 0d 0a 38 39 0d 0a 0d 0a 73 6b 69 70 69 66 20  9..89....skipif 
5f50: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
5f60: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
5f70: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
5f80: 35 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54  5..SELECT + CAST
5f90: 20 28 20 2b 20 38 39 20 41 53 20 49 4e 54 45 47   ( + 89 AS INTEG
5fa0: 45 52 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a  ER ) FROM tab2..
5fb0: 2d 2d 2d 2d 0d 0a 38 39 0d 0a 38 39 0d 0a 38 39  ----..89..89..89
5fc0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
5fd0: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
5fe0: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
5ff0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 36  owsort label-126
6000: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55  ..SELECT ALL COU
6010: 4e 54 28 20 2d 20 37 20 29 20 46 52 4f 4d 20 74  NT( - 7 ) FROM t
6020: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
6030: 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..3....skipif m
6040: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
6050: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
6060: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 36  owsort label-126
6070: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55  ..SELECT ALL COU
6080: 4e 54 20 28 20 2d 20 37 20 29 20 46 52 4f 4d 20  NT ( - 7 ) FROM 
6090: 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
60a0: 2d 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  --..3....onlyif 
60b0: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
60c0: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
60d0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
60e0: 6c 2d 31 32 37 0d 0a 53 45 4c 45 43 54 20 44 49  l-127..SELECT DI
60f0: 53 54 49 4e 43 54 20 2b 20 2b 20 43 4f 55 4e 54  STINCT + + COUNT
6100: 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ( * ) FROM tab2 
6110: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
6120: 54 20 28 20 4e 4f 54 20 2b 20 2d 20 31 39 20 2a  T ( NOT + - 19 *
6130: 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 20 29 0d   col1 IS NULL ).
6140: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .----..0....skip
6150: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
6160: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
6170: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
6180: 2d 31 32 37 0d 0a 53 45 4c 45 43 54 20 44 49 53  -127..SELECT DIS
6190: 54 49 4e 43 54 20 2b 20 2b 20 43 4f 55 4e 54 20  TINCT + + COUNT 
61a0: 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ( * ) FROM tab2 
61b0: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
61c0: 54 20 28 20 4e 4f 54 20 2b 20 2d 20 31 39 20 2a  T ( NOT + - 19 *
61d0: 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 20 29 0d   col1 IS NULL ).
61e0: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79  .----..0....only
61f0: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
6200: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
6210: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
6220: 61 62 65 6c 2d 31 32 38 0d 0a 53 45 4c 45 43 54  abel-128..SELECT
6230: 20 41 4c 4c 20 2b 20 2b 20 28 20 2b 20 2b 20 53   ALL + + ( + + S
6240: 55 4d 28 20 28 20 2d 20 2d 20 63 6f 6c 32 20 29  UM( ( - - col2 )
6250: 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   ) ) AS col1 FRO
6260: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
6270: 2d 2d 2d 2d 0d 0a 31 32 31 0d 0a 0d 0a 73 6b 69  ----..121....ski
6280: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
6290: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
62a0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
62b0: 6c 2d 31 32 38 0d 0a 53 45 4c 45 43 54 20 41 4c  l-128..SELECT AL
62c0: 4c 20 2b 20 2b 20 28 20 2b 20 2b 20 53 55 4d 20  L + + ( + + SUM 
62d0: 28 20 28 20 2d 20 2d 20 63 6f 6c 32 20 29 20 29  ( ( - - col2 ) )
62e0: 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
62f0: 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
6300: 2d 2d 0d 0a 31 32 31 0d 0a 0d 0a 71 75 65 72 79  --..121....query
6310: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
6320: 43 54 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 2b 20  CT + - col0 * + 
6330: 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  + col1 FROM tab1
6340: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
6350: 2d 34 32 35 0d 0a 2d 34 32 37 37 0d 0a 2d 37 31  -425..-4277..-71
6360: 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  4....onlyif mysq
6370: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
6380: 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
6390: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
63a0: 6c 61 62 65 6c 2d 31 33 30 0d 0a 53 45 4c 45 43  label-130..SELEC
63b0: 54 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 2b 20 43  T + col2 * + + C
63c0: 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
63d0: 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62 31 20  NED ) FROM tab1 
63e0: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
63f0: 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a  T NULL IS NULL..
6400: 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ----....skipif m
6410: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
6420: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
6430: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 33 30  owsort label-130
6440: 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20  ..SELECT + col2 
6450: 2a 20 2b 20 2b 20 43 41 53 54 20 28 20 4e 55 4c  * + + CAST ( NUL
6460: 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 46  L AS INTEGER ) F
6470: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
6480: 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
6490: 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
64a0: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
64b0: 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
64c0: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
64d0: 48 45 52 45 20 4e 4f 54 20 28 20 4e 4f 54 20 28  HERE NOT ( NOT (
64e0: 20 2d 20 2b 20 33 20 29 20 3c 3e 20 2d 20 2b 20   - + 3 ) <> - + 
64f0: 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20  col2 )..----..9 
6500: 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
6510: 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64 30  o c6c0a4111b36d0
6520: 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34 63  4dbc811a11e4d54c
6530: 61 64 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  ad....onlyif mys
6540: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
6550: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
6560: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
6570: 31 33 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  132..SELECT DIST
6580: 49 4e 43 54 20 2d 20 4d 41 58 28 20 41 4c 4c 20  INCT - MAX( ALL 
6590: 2b 20 63 6f 6c 32 20 29 2c 20 53 55 4d 28 20 44  + col2 ), SUM( D
65a0: 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 29 20 41  ISTINCT col2 ) A
65b0: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
65c0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 38   cor0..----..-58
65d0: 0d 0a 31 32 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..121....skipif 
65e0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
65f0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
6600: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
6610: 33 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  32..SELECT DISTI
6620: 4e 43 54 20 2d 20 4d 41 58 20 28 20 41 4c 4c 20  NCT - MAX ( ALL 
6630: 2b 20 63 6f 6c 32 20 29 2c 20 53 55 4d 20 28 20  + col2 ), SUM ( 
6640: 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 29 20  DISTINCT col2 ) 
6650: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
6660: 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  2 cor0..----..-5
6670: 38 0d 0a 31 32 31 0d 0a 0d 0a 71 75 65 72 79 20  8..121....query 
6680: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
6690: 54 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 2d 20 63  T + col2 + + - c
66a0: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
66b0: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
66c0: 2b 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a  + col1 IS NULL..
66d0: 2d 2d 2d 2d 0d 0a 2d 31 31 0d 0a 2d 33 34 0d 0a  ----..-11..-34..
66e0: 39 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  98....onlyif mys
66f0: 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
6700: 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
6710: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
6720: 72 74 20 6c 61 62 65 6c 2d 31 33 34 0d 0a 53 45  rt label-134..SE
6730: 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
6740: 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
6750: 52 45 20 2b 20 28 20 43 41 53 54 28 20 4e 55 4c  RE + ( CAST( NUL
6760: 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20  L AS SIGNED ) ) 
6770: 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
6780: 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  -....skipif mysq
6790: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
67a0: 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  le..query III ro
67b0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 33 34 0d  wsort label-134.
67c0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
67d0: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
67e0: 57 48 45 52 45 20 2b 20 28 20 43 41 53 54 20 28  WHERE + ( CAST (
67f0: 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
6800: 20 29 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c   ) ) IS NOT NULL
6810: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
6820: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
6830: 54 20 2d 20 28 20 2b 20 39 33 20 29 20 41 53 20  T - ( + 93 ) AS 
6840: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
6850: 2d 2d 2d 2d 0d 0a 2d 39 33 0d 0a 2d 39 33 0d 0a  ----..-93..-93..
6860: 2d 39 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -93....onlyif my
6870: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
6880: 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20  syntax: DIV for 
6890: 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
68a0: 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
68b0: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 33 36 0d 0a  sort label-136..
68c0: 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54  SELECT ALL COUNT
68d0: 28 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  ( DISTINCT - col
68e0: 30 20 29 20 41 53 20 63 6f 6c 30 2c 20 43 4f 55  0 ) AS col0, COU
68f0: 4e 54 28 20 2a 20 29 20 44 49 56 20 2b 20 43 4f  NT( * ) DIV + CO
6900: 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
6910: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 31 0d 0a  b2..----..3..1..
6920: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
6930: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
6940: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
6950: 74 20 6c 61 62 65 6c 2d 31 33 36 0d 0a 53 45 4c  t label-136..SEL
6960: 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20 28 20  ECT ALL COUNT ( 
6970: 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20  DISTINCT - col0 
6980: 29 20 41 53 20 63 6f 6c 30 2c 20 43 4f 55 4e 54  ) AS col0, COUNT
6990: 20 28 20 2a 20 29 20 2f 20 2b 20 43 4f 55 4e 54   ( * ) / + COUNT
69a0: 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32   ( * ) FROM tab2
69b0: 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 31 0d 0a 0d 0a  ..----..3..1....
69c0: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
69d0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
69e0: 54 20 2b 20 63 6f 6c 30 20 2b 20 38 30 2c 20 63  T + col0 + 80, c
69f0: 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol2 AS col1 FROM
6a00: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
6a10: 2d 2d 2d 0d 0a 31 32 36 0d 0a 32 33 0d 0a 31 34  ---..126..23..14
6a20: 34 0d 0a 34 30 0d 0a 31 35 35 0d 0a 35 38 0d 0a  4..40..155..58..
6a30: 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
6a40: 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
6a50: 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
6a60: 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
6a70: 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
6a80: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
6a90: 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 63 6f  CT ALL + col1 co
6aa0: 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
6ab0: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  cor0 WHERE NOT N
6ac0: 55 4c 4c 20 4e 4f 54 20 49 4e 20 28 20 2b 20 63  ULL NOT IN ( + c
6ad0: 6f 6c 32 2c 20 2d 20 35 32 20 29 0d 0a 2d 2d 2d  ol2, - 52 )..---
6ae0: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  -....query II ro
6af0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
6b00: 53 54 49 4e 43 54 20 2d 20 34 39 20 2b 20 2d 20  STINCT - 49 + - 
6b10: 2b 20 34 39 20 41 53 20 63 6f 6c 30 2c 20 2d 20  + 49 AS col0, - 
6b20: 38 34 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  84 AS col1 FROM 
6b30: 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
6b40: 2d 2d 0d 0a 2d 39 38 0d 0a 2d 38 34 0d 0a 0d 0a  --..-98..-84....
6b50: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
6b60: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
6b70: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
6b80: 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f  0 WHERE NOT + co
6b90: 6c 32 20 2a 20 2d 20 34 38 20 49 53 20 4e 4f 54  l2 * - 48 IS NOT
6ba0: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
6bb0: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
6bc0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
6bd0: 20 2b 20 39 2c 20 2b 20 32 30 20 2b 20 2b 20 2b   + 9, + 20 + + +
6be0: 20 34 37 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   47 AS col1 FROM
6bf0: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a   tab2..----..9..
6c00: 36 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  67....query I ro
6c10: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
6c20: 53 54 49 4e 43 54 20 63 6f 6c 30 20 46 52 4f 4d  STINCT col0 FROM
6c30: 20 74 61 62 31 20 57 48 45 52 45 20 2b 20 33 33   tab1 WHERE + 33
6c40: 20 2b 20 2b 20 28 20 2b 20 28 20 2b 20 31 39 20   + + ( + ( + 19 
6c50: 29 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ) ) IS NULL..---
6c60: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
6c70: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
6c80: 20 2d 20 63 6f 6c 31 20 2a 20 38 30 20 41 53 20   - col1 * 80 AS 
6c90: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col2 FROM tab1..
6ca0: 2d 2d 2d 2d 0d 0a 2d 31 31 32 30 0d 0a 2d 33 37  ----..-1120..-37
6cb0: 36 30 0d 0a 2d 34 30 30 0d 0a 0d 0a 73 6b 69 70  60..-400....skip
6cc0: 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
6cd0: 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
6ce0: 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
6cf0: 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
6d00: 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
6d10: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
6d20: 20 63 6f 6c 30 20 2b 20 2d 20 2b 20 63 6f 6c 32   col0 + - + col2
6d30: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
6d40: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
6d50: 32 0d 0a 2d 33 32 0d 0a 37 37 0d 0a 0d 0a 6f 6e  2..-32..77....on
6d60: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
6d70: 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
6d80: 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
6d90: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
6da0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
6db0: 2d 31 34 35 0d 0a 53 45 4c 45 43 54 20 2b 20 2b  -145..SELECT + +
6dc0: 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d   COUNT( * ) FROM
6dd0: 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
6de0: 45 52 45 20 2b 20 43 41 53 54 28 20 63 6f 6c 31  ERE + CAST( col1
6df0: 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2b   AS SIGNED ) * +
6e00: 20 36 38 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d   68 IS NOT NULL.
6e10: 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70  .----..3....skip
6e20: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
6e30: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
6e40: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
6e50: 2d 31 34 35 0d 0a 53 45 4c 45 43 54 20 2b 20 2b  -145..SELECT + +
6e60: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f   COUNT ( * ) FRO
6e70: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
6e80: 48 45 52 45 20 2b 20 43 41 53 54 20 28 20 63 6f  HERE + CAST ( co
6e90: 6c 31 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  l1 AS INTEGER ) 
6ea0: 2a 20 2b 20 36 38 20 49 53 20 4e 4f 54 20 4e 55  * + 68 IS NOT NU
6eb0: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71  LL..----..3....q
6ec0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
6ed0: 53 45 4c 45 43 54 20 63 6f 6c 30 20 2b 20 33 35  SELECT col0 + 35
6ee0: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
6ef0: 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53  r0 WHERE NULL IS
6f00: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 31 30   NULL..----..110
6f10: 0d 0a 38 31 0d 0a 39 39 0d 0a 0d 0a 6f 6e 6c 79  ..81..99....only
6f20: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
6f30: 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20  syntax: DECIMAL 
6f40: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
6f50: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
6f60: 34 37 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 43  47..SELECT + - C
6f70: 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43  AST( NULL AS DEC
6f80: 49 4d 41 4c 20 29 20 41 53 20 63 6f 6c 31 2c 20  IMAL ) AS col1, 
6f90: 63 6f 6c 31 20 2a 20 2b 20 2d 20 63 6f 6c 32 20  col1 * + - col2 
6fa0: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
6fb0: 30 20 57 48 45 52 45 20 2d 20 63 6f 6c 30 20 49  0 WHERE - col0 I
6fc0: 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
6fd0: 0d 0a 4e 55 4c 4c 0d 0a 2d 31 31 37 33 0d 0a 4e  ..NULL..-1173..N
6fe0: 55 4c 4c 0d 0a 2d 33 30 38 30 0d 0a 4e 55 4c 4c  ULL..-3080..NULL
6ff0: 0d 0a 2d 33 38 38 36 0d 0a 0d 0a 73 6b 69 70 69  ..-3886....skipi
7000: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
7010: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
7020: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
7030: 2d 31 34 37 0d 0a 53 45 4c 45 43 54 20 2b 20 2d  -147..SELECT + -
7040: 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
7050: 52 45 41 4c 20 29 20 41 53 20 63 6f 6c 31 2c 20  REAL ) AS col1, 
7060: 63 6f 6c 31 20 2a 20 2b 20 2d 20 63 6f 6c 32 20  col1 * + - col2 
7070: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
7080: 30 20 57 48 45 52 45 20 2d 20 63 6f 6c 30 20 49  0 WHERE - col0 I
7090: 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
70a0: 0d 0a 4e 55 4c 4c 0d 0a 2d 31 31 37 33 0d 0a 4e  ..NULL..-1173..N
70b0: 55 4c 4c 0d 0a 2d 33 30 38 30 0d 0a 4e 55 4c 4c  ULL..-3080..NULL
70c0: 0d 0a 2d 33 38 38 36 0d 0a 0d 0a 71 75 65 72 79  ..-3886....query
70d0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
70e0: 43 54 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 32  CT col1 * + col2
70f0: 20 2d 20 63 6f 6c 31 20 2d 20 2b 20 2b 20 63 6f   - col1 - + + co
7100: 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
7110: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 37 39  cor0..----..1279
7120: 0d 0a 32 30 35 0d 0a 33 30 35 38 0d 0a 0d 0a 73  ..205..3058....s
7130: 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
7140: 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
7150: 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
7160: 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
7170: 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
7180: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
7190: 2b 20 31 37 20 63 6f 6c 32 20 46 52 4f 4d 20 74  + 17 col2 FROM t
71a0: 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
71b0: 45 20 2b 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20  E + col1 IS NOT 
71c0: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 37 0d 0a  NULL..----..17..
71d0: 31 37 0d 0a 31 37 0d 0a 0d 0a 71 75 65 72 79 20  17..17....query 
71e0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
71f0: 54 20 44 49 53 54 49 4e 43 54 20 38 37 20 2d 20  T DISTINCT 87 - 
7200: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
7210: 2d 2d 2d 2d 0d 0a 31 32 0d 0a 32 33 0d 0a 34 31  ----..12..23..41
7220: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
7230: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
7240: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  tax: ..query II 
7250: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 35  rowsort label-15
7260: 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  1..SELECT DISTIN
7270: 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20  CT + COUNT( * ) 
7280: 2a 20 2b 20 35 31 20 63 6f 6c 31 2c 20 33 31 20  * + 51 col1, 31 
7290: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
72a0: 31 0d 0a 2d 2d 2d 2d 0d 0a 31 35 33 0d 0a 33 31  1..----..153..31
72b0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
72c0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
72d0: 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
72e0: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
72f0: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
7300: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
7310: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
7320: 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
7330: 65 6c 2d 31 35 31 0d 0a 53 45 4c 45 43 54 20 44  el-151..SELECT D
7340: 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54 20  ISTINCT + COUNT 
7350: 28 20 2a 20 29 20 2a 20 2b 20 35 31 20 63 6f 6c  ( * ) * + 51 col
7360: 31 2c 20 33 31 20 41 53 20 63 6f 6c 30 20 46 52  1, 31 AS col0 FR
7370: 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab1..----..1
7380: 35 33 0d 0a 33 31 0d 0a 0d 0a 71 75 65 72 79 20  53..31....query 
7390: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
73a0: 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ECT * FROM tab2 
73b0: 57 48 45 52 45 20 2b 20 2b 20 63 6f 6c 30 20 3d  WHERE + + col0 =
73c0: 20 2d 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d   - - col1..----.
73d0: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
73e0: 72 74 0d 0a 53 45 4c 45 43 54 20 38 38 20 2b 20  rt..SELECT 88 + 
73f0: 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46  - col1 AS col0 F
7400: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
7410: 31 31 0d 0a 32 31 0d 0a 33 37 0d 0a 0d 0a 6f 6e  11..21..37....on
7420: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
7430: 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41  T syntax: DECIMA
7440: 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  L type: ..query 
7450: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
7460: 31 35 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  154..SELECT DIST
7470: 49 4e 43 54 20 2b 20 43 41 53 54 28 20 4e 55 4c  INCT + CAST( NUL
7480: 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20 41  L AS DECIMAL ) A
7490: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
74a0: 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
74b0: 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
74c0: 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  -..NULL....skipi
74d0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
74e0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
74f0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
7500: 31 35 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  154..SELECT DIST
7510: 49 4e 43 54 20 2b 20 43 41 53 54 20 28 20 4e 55  INCT + CAST ( NU
7520: 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 41 53 20  LL AS REAL ) AS 
7530: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 57  col0 FROM tab0 W
7540: 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53  HERE NOT NULL IS
7550: 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
7560: 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
7570: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
7580: 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30   DISTINCT + col0
7590: 20 2a 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 2b 20   * - col0 * - + 
75a0: 39 34 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  94 AS col0 FROM 
75b0: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 39 38 39  tab2..----..1989
75c0: 30 34 0d 0a 33 38 35 30 32 34 0d 0a 35 32 38 37  04..385024..5287
75d0: 35 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  50....query I ro
75e0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 33 36  wsort..SELECT 36
75f0: 20 2b 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74   + + col0 FROM t
7600: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 32 31 0d 0a  ab1..----..121..
7610: 31 32 37 0d 0a 38 37 0d 0a 0d 0a 71 75 65 72 79  127..87....query
7620: 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
7630: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2d  ECT DISTINCT + -
7640: 20 63 6f 6c 32 20 2a 20 63 6f 6c 32 2c 20 63 6f   col2 * col2, co
7650: 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
7660: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 34 38  cor0..----..-348
7670: 31 0d 0a 35 39 0d 0a 2d 34 36 32 34 0d 0a 36 38  1..59..-4624..68
7680: 0d 0a 2d 39 32 31 36 0d 0a 39 36 0d 0a 0d 0a 71  ..-9216..96....q
7690: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
76a0: 53 45 4c 45 43 54 20 2b 20 31 39 20 46 52 4f 4d  SELECT + 19 FROM
76b0: 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
76c0: 45 52 45 20 2d 20 38 20 49 53 20 4e 4f 54 20 4e  ERE - 8 IS NOT N
76d0: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 39 0d 0a 31  ULL..----..19..1
76e0: 39 0d 0a 31 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  9..19....onlyif 
76f0: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
7700: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
7710: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
7720: 6f 72 74 20 6c 61 62 65 6c 2d 31 35 39 0d 0a 53  ort label-159..S
7730: 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2f 20 43  ELECT - col2 / C
7740: 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
7750: 4e 45 44 20 29 20 2a 20 2d 20 63 6f 6c 30 20 2a  NED ) * - col0 *
7760: 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   + col0 FROM tab
7770: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
7780: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
7790: 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
77a0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
77b0: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
77c0: 6f 72 74 20 6c 61 62 65 6c 2d 31 35 39 0d 0a 53  ort label-159..S
77d0: 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2f 20 43  ELECT - col2 / C
77e0: 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
77f0: 54 45 47 45 52 20 29 20 2a 20 2d 20 63 6f 6c 30  TEGER ) * - col0
7800: 20 2a 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74   * + col0 FROM t
7810: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
7820: 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
7830: 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ULL....onlyif my
7840: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
7850: 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e  x: aggregate syn
7860: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
7870: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
7880: 6f 72 74 20 6c 61 62 65 6c 2d 31 36 30 0d 0a 53  ort label-160..S
7890: 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 4d 49  ELECT ALL + - MI
78a0: 4e 28 20 2b 20 2b 20 43 41 53 54 28 20 2b 20 63  N( + + CAST( + c
78b0: 6f 6c 32 20 41 53 20 53 49 47 4e 45 44 20 29 20  ol2 AS SIGNED ) 
78c0: 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  ) FROM tab0 AS c
78d0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a  or0..----..-10..
78e0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
78f0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
7900: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
7910: 20 6c 61 62 65 6c 2d 31 36 30 0d 0a 53 45 4c 45   label-160..SELE
7920: 43 54 20 41 4c 4c 20 2b 20 2d 20 4d 49 4e 20 28  CT ALL + - MIN (
7930: 20 2b 20 2b 20 43 41 53 54 20 28 20 2b 20 63 6f   + + CAST ( + co
7940: 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  l2 AS INTEGER ) 
7950: 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  ) FROM tab0 AS c
7960: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a  or0..----..-10..
7970: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
7980: 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
7990: 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
79a0: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
79b0: 62 65 6c 2d 31 36 31 0d 0a 53 45 4c 45 43 54 20  bel-161..SELECT 
79c0: 2b 20 35 39 2c 20 32 31 20 2a 20 28 20 2b 20 2d  + 59, 21 * ( + -
79d0: 20 43 41 53 54 28 20 2d 20 32 20 41 53 20 53 49   CAST( - 2 AS SI
79e0: 47 4e 45 44 20 29 20 29 20 2a 20 2b 20 33 34 20  GNED ) ) * + 34 
79f0: 2b 20 2b 20 33 33 20 41 53 20 63 6f 6c 31 20 46  + + 33 AS col1 F
7a00: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
7a10: 35 39 0d 0a 31 34 36 31 0d 0a 35 39 0d 0a 31 34  59..1461..59..14
7a20: 36 31 0d 0a 35 39 0d 0a 31 34 36 31 0d 0a 0d 0a  61..59..1461....
7a30: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
7a40: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
7a50: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
7a60: 6c 61 62 65 6c 2d 31 36 31 0d 0a 53 45 4c 45 43  label-161..SELEC
7a70: 54 20 2b 20 35 39 2c 20 32 31 20 2a 20 28 20 2b  T + 59, 21 * ( +
7a80: 20 2d 20 43 41 53 54 20 28 20 2d 20 32 20 41 53   - CAST ( - 2 AS
7a90: 20 49 4e 54 45 47 45 52 20 29 20 29 20 2a 20 2b   INTEGER ) ) * +
7aa0: 20 33 34 20 2b 20 2b 20 33 33 20 41 53 20 63 6f   34 + + 33 AS co
7ab0: 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
7ac0: 2d 2d 0d 0a 35 39 0d 0a 31 34 36 31 0d 0a 35 39  --..59..1461..59
7ad0: 0d 0a 31 34 36 31 0d 0a 35 39 0d 0a 31 34 36 31  ..1461..59..1461
7ae0: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
7af0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
7b00: 2b 20 63 6f 6c 31 20 2a 20 2d 20 35 35 20 41 53  + col1 * - 55 AS
7b10: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d   col2 FROM tab2.
7b20: 0a 2d 2d 2d 2d 0d 0a 2d 32 38 30 35 0d 0a 2d 33  .----..-2805..-3
7b30: 36 38 35 0d 0a 2d 34 32 33 35 0d 0a 0d 0a 6f 6e  685..-4235....on
7b40: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
7b50: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
7b60: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
7b70: 20 6c 61 62 65 6c 2d 31 36 33 0d 0a 53 45 4c 45   label-163..SELE
7b80: 43 54 20 2d 20 2b 20 4d 41 58 28 20 44 49 53 54  CT - + MAX( DIST
7b90: 49 4e 43 54 20 37 38 20 29 20 41 53 20 63 6f 6c  INCT 78 ) AS col
7ba0: 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
7bb0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 38 0d 0a  or0..----..-78..
7bc0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
7bd0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
7be0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
7bf0: 20 6c 61 62 65 6c 2d 31 36 33 0d 0a 53 45 4c 45   label-163..SELE
7c00: 43 54 20 2d 20 2b 20 4d 41 58 20 28 20 44 49 53  CT - + MAX ( DIS
7c10: 54 49 4e 43 54 20 37 38 20 29 20 41 53 20 63 6f  TINCT 78 ) AS co
7c20: 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
7c30: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 38 0d  cor0..----..-78.
7c40: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
7c50: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
7c60: 4e 43 54 20 2d 20 35 39 20 41 53 20 63 6f 6c 32  NCT - 59 AS col2
7c70: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
7c80: 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 31  r0 WHERE NOT + 1
7c90: 39 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 2b 20 34  9 + col0 * + + 4
7ca0: 35 20 3e 20 2b 20 2b 20 63 6f 6c 30 0d 0a 2d 2d  5 > + + col0..--
7cb0: 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
7cc0: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
7cd0: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
7ce0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
7cf0: 31 36 35 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20  165..SELECT - + 
7d00: 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f  COUNT( * ) AS co
7d10: 6c 32 2c 20 2d 20 32 30 20 41 53 20 63 6f 6c 32  l2, - 20 AS col2
7d20: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
7d30: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 2d 32  r0..----..-3..-2
7d40: 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
7d50: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
7d60: 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
7d70: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 36 35 0d 0a  sort label-165..
7d80: 53 45 4c 45 43 54 20 2d 20 2b 20 43 4f 55 4e 54  SELECT - + COUNT
7d90: 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 2c 20   ( * ) AS col2, 
7da0: 2d 20 32 30 20 41 53 20 63 6f 6c 32 20 46 52 4f  - 20 AS col2 FRO
7db0: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
7dc0: 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 2d 32 30 0d 0a 0d  ----..-3..-20...
7dd0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
7de0: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
7df0: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
7e00: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
7e10: 6c 2d 31 36 36 0d 0a 53 45 4c 45 43 54 20 2d 20  l-166..SELECT - 
7e20: 43 41 53 54 28 20 2b 20 33 31 20 41 53 20 53 49  CAST( + 31 AS SI
7e30: 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 32 20 46  GNED ) AS col2 F
7e40: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
7e50: 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 31 0d 0a 2d 33 31  ..----..-31..-31
7e60: 0d 0a 2d 33 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-31....skipif 
7e70: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
7e80: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
7e90: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 36  rowsort label-16
7ea0: 36 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53 54  6..SELECT - CAST
7eb0: 20 28 20 2b 20 33 31 20 41 53 20 49 4e 54 45 47   ( + 31 AS INTEG
7ec0: 45 52 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  ER ) AS col2 FRO
7ed0: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
7ee0: 2d 2d 2d 2d 0d 0a 2d 33 31 0d 0a 2d 33 31 0d 0a  ----..-31..-31..
7ef0: 2d 33 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  -31....query I r
7f00: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
7f10: 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 2d 20 34 20   - col2 * + - 4 
7f20: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
7f30: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
7f40: 0a 2d 31 36 30 0d 0a 2d 32 33 32 0d 0a 2d 39 32  .-160..-232..-92
7f50: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
7f60: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  ort..SELECT - co
7f70: 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45  l0 FROM tab2 WHE
7f80: 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3e 20 4e 55  RE NOT NULL > NU
7f90: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  LL..----....only
7fa0: 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
7fb0: 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
7fc0: 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
7fd0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 36 39  owsort label-169
7fe0: 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 44 49  ..SELECT col1 DI
7ff0: 56 20 2d 20 2d 20 37 39 20 41 53 20 63 6f 6c 30  V - - 79 AS col0
8000: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
8010: 0d 0a 30 0d 0a 30 0d 0a 31 0d 0a 0d 0a 73 6b 69  ..0..0..1....ski
8020: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
8030: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
8040: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
8050: 6c 2d 31 36 39 0d 0a 53 45 4c 45 43 54 20 63 6f  l-169..SELECT co
8060: 6c 31 20 2f 20 2d 20 2d 20 37 39 20 41 53 20 63  l1 / - - 79 AS c
8070: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol0 FROM tab0..-
8080: 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 31 0d 0a 0d 0a  ---..0..0..1....
8090: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
80a0: 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 46 52 4f  .SELECT col0 FRO
80b0: 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
80c0: 20 2b 20 30 20 2a 20 2d 20 28 20 2b 20 63 6f 6c   + 0 * - ( + col
80d0: 30 20 29 20 2d 20 2b 20 2b 20 63 6f 6c 30 20 2b  0 ) - + + col0 +
80e0: 20 2b 20 32 34 20 4e 4f 54 20 42 45 54 57 45 45   + 24 NOT BETWEE
80f0: 4e 20 2d 20 63 6f 6c 32 20 41 4e 44 20 2d 20 63  N - col2 AND - c
8100: 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ol1..----....que
8110: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
8120: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
8130: 62 31 20 57 48 45 52 45 20 4e 4f 54 20 38 20 2a  b1 WHERE NOT 8 *
8140: 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 31   - col0 + + col1
8150: 20 2d 20 63 6f 6c 30 20 2f 20 2b 20 35 35 20 42   - col0 / + 55 B
8160: 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20  ETWEEN NULL AND 
8170: 2b 20 63 6f 6c 32 20 2a 20 63 6f 6c 31 0d 0a 2d  + col2 * col1..-
8180: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
8190: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
81a0: 49 53 54 49 4e 43 54 20 2b 20 28 20 2b 20 37 31  ISTINCT + ( + 71
81b0: 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
81c0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 31 0d 0a  cor0..----..71..
81d0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
81e0: 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31  t..SELECT - col1
81f0: 20 2a 20 2d 20 37 36 20 2b 20 63 6f 6c 30 20 46   * - 76 + col0 F
8200: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
8210: 0d 0a 2d 2d 2d 2d 0d 0a 31 31 31 35 0d 0a 33 36  ..----..1115..36
8220: 36 33 0d 0a 34 36 35 0d 0a 0d 0a 71 75 65 72 79  63..465....query
8230: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
8240: 43 54 20 2d 20 32 39 20 46 52 4f 4d 20 74 61 62  CT - 29 FROM tab
8250: 31 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  1 AS cor0 CROSS 
8260: 4a 4f 49 4e 20 74 61 62 30 20 63 6f 72 31 0d 0a  JOIN tab0 cor1..
8270: 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
8280: 61 73 68 69 6e 67 20 74 6f 20 30 63 63 39 64 64  ashing to 0cc9dd
8290: 61 64 39 33 66 63 37 38 33 30 35 35 35 31 38 61  ad93fc783055518a
82a0: 65 34 62 36 62 65 30 35 34 62 0d 0a 0d 0a 6f 6e  e4b6be054b....on
82b0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
82c0: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
82d0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
82e0: 20 6c 61 62 65 6c 2d 31 37 35 0d 0a 53 45 4c 45   label-175..SELE
82f0: 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20  CT + COUNT( * ) 
8300: 2a 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 36  * COUNT( * ) + 6
8310: 38 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  8 AS col1 FROM t
8320: 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 37 37 0d 0a 0d  ab2..----..77...
8330: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
8340: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
8350: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
8360: 6c 61 62 65 6c 2d 31 37 35 0d 0a 53 45 4c 45 43  label-175..SELEC
8370: 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  T + COUNT ( * ) 
8380: 2a 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20  * COUNT ( * ) + 
8390: 36 38 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  68 AS col1 FROM 
83a0: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 37 37 0d 0a  tab2..----..77..
83b0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
83c0: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
83d0: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
83e0: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37 36 0d 0a  sort label-176..
83f0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
8400: 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2b  - COUNT( * ) + +
8410: 20 4d 49 4e 28 20 44 49 53 54 49 4e 43 54 20 63   MIN( DISTINCT c
8420: 6f 6c 31 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ol1 ) AS col2 FR
8430: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
8440: 0a 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 0d 0a 73 6b 69  .----..-2....ski
8450: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
8460: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
8470: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
8480: 6c 2d 31 37 36 0d 0a 53 45 4c 45 43 54 20 44 49  l-176..SELECT DI
8490: 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 20 28  STINCT - COUNT (
84a0: 20 2a 20 29 20 2b 20 2b 20 4d 49 4e 20 28 20 44   * ) + + MIN ( D
84b0: 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 29 20 41  ISTINCT col1 ) A
84c0: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
84d0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
84e0: 2d 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  -2....onlyif mys
84f0: 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
8500: 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
8510: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
8520: 72 74 20 6c 61 62 65 6c 2d 31 37 37 0d 0a 53 45  rt label-177..SE
8530: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
8540: 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 39 39   cor0 WHERE + 99
8550: 20 2a 20 63 6f 6c 31 20 2a 20 43 41 53 54 28 20   * col1 * CAST( 
8560: 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
8570: 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
8580: 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
8590: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
85a0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72  ble..query III r
85b0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37 37  owsort label-177
85c0: 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
85d0: 74 61 62 30 20 63 6f 72 30 20 57 48 45 52 45 20  tab0 cor0 WHERE 
85e0: 2b 20 39 39 20 2a 20 63 6f 6c 31 20 2a 20 43 41  + 99 * col1 * CA
85f0: 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
8600: 45 47 45 52 20 29 20 49 53 20 4e 4f 54 20 4e 55  EGER ) IS NOT NU
8610: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  LL..----....only
8620: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
8630: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
8640: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  ype: ..query II 
8650: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37  rowsort label-17
8660: 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  8..SELECT ALL - 
8670: 38 36 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 2b 20  86 + + col1 + + 
8680: 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 31 20 2b 20  col2 * + col1 + 
8690: 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  + CAST( NULL AS 
86a0: 53 49 47 4e 45 44 20 29 20 2b 20 2b 20 63 6f 6c  SIGNED ) + + col
86b0: 31 20 2a 20 2d 20 2b 20 63 6f 6c 31 20 2d 20 2b  1 * - + col1 - +
86c0: 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 32   + col2 + - col2
86d0: 20 2f 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 2c   / col1 AS col1,
86e0: 20 33 34 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   34 AS col0 FROM
86f0: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
8700: 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 33 34 0d 0a 4e  ---..NULL..34..N
8710: 55 4c 4c 0d 0a 33 34 0d 0a 4e 55 4c 4c 0d 0a 33  ULL..34..NULL..3
8720: 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  4....skipif mysq
8730: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
8740: 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
8750: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37 38 0d 0a  sort label-178..
8760: 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 38 36 20  SELECT ALL - 86 
8770: 2b 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c  + + col1 + + col
8780: 32 20 2a 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 43  2 * + col1 + + C
8790: 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
87a0: 54 45 47 45 52 20 29 20 2b 20 2b 20 63 6f 6c 31  TEGER ) + + col1
87b0: 20 2a 20 2d 20 2b 20 63 6f 6c 31 20 2d 20 2b 20   * - + col1 - + 
87c0: 2b 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 32 20  + col2 + - col2 
87d0: 2f 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 2c 20  / col1 AS col1, 
87e0: 33 34 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  34 AS col0 FROM 
87f0: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
8800: 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 33 34 0d 0a 4e 55  --..NULL..34..NU
8810: 4c 4c 0d 0a 33 34 0d 0a 4e 55 4c 4c 0d 0a 33 34  LL..34..NULL..34
8820: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
8830: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
8840: 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a  DECIMAL type: ..
8850: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
8860: 6c 61 62 65 6c 2d 31 37 39 0d 0a 53 45 4c 45 43  label-179..SELEC
8870: 54 20 2d 20 28 20 2d 20 43 41 53 54 28 20 4e 55  T - ( - CAST( NU
8880: 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20  LL AS DECIMAL ) 
8890: 29 20 2a 20 2b 20 2b 20 31 34 20 2b 20 2d 20 63  ) * + + 14 + - c
88a0: 6f 6c 30 20 2a 20 2b 20 63 6f 6c 31 20 2f 20 2b  ol0 * + col1 / +
88b0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
88c0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
88d0: 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
88e0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
88f0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
8900: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
8910: 74 20 6c 61 62 65 6c 2d 31 37 39 0d 0a 53 45 4c  t label-179..SEL
8920: 45 43 54 20 2d 20 28 20 2d 20 43 41 53 54 20 28  ECT - ( - CAST (
8930: 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20   NULL AS REAL ) 
8940: 29 20 2a 20 2b 20 2b 20 31 34 20 2b 20 2d 20 63  ) * + + 14 + - c
8950: 6f 6c 30 20 2a 20 2b 20 63 6f 6c 31 20 2f 20 2b  ol0 * + col1 / +
8960: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
8970: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
8980: 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
8990: 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
89a0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
89b0: 49 4e 43 54 20 2b 20 63 6f 6c 30 20 2d 20 63 6f  INCT + col0 - co
89c0: 6c 30 2c 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30  l0, col2 AS col0
89d0: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
89e0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 32 33 0d  r0..----..0..23.
89f0: 0a 30 0d 0a 34 30 0d 0a 30 0d 0a 35 38 0d 0a 0d  .0..40..0..58...
8a00: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
8a10: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
8a20: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
8a30: 6f 72 74 20 6c 61 62 65 6c 2d 31 38 31 0d 0a 53  ort label-181..S
8a40: 45 4c 45 43 54 20 2d 20 2d 20 43 4f 55 4e 54 28  ELECT - - COUNT(
8a50: 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c   + col0 ) AS col
8a60: 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
8a70: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a  or0..----..3....
8a80: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
8a90: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
8aa0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
8ab0: 61 62 65 6c 2d 31 38 31 0d 0a 53 45 4c 45 43 54  abel-181..SELECT
8ac0: 20 2d 20 2d 20 43 4f 55 4e 54 20 28 20 2b 20 63   - - COUNT ( + c
8ad0: 6f 6c 30 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ol0 ) AS col2 FR
8ae0: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
8af0: 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72  .----..3....quer
8b00: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
8b10: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
8b20: 32 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c  2 cor0 WHERE col
8b30: 31 20 2a 20 2d 20 2b 20 63 6f 6c 32 20 3e 3d 20  1 * - + col2 >= 
8b40: 63 6f 6c 31 20 2b 20 2d 20 2d 20 38 38 20 2b 20  col1 + - - 88 + 
8b50: 2b 20 63 6f 6c 30 20 2a 20 63 6f 6c 31 0d 0a 2d  + col0 * col1..-
8b60: 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
8b70: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
8b80: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
8b90: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
8ba0: 31 38 33 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f  183..SELECT + CO
8bb0: 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
8bc0: 62 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c 3e  b0 WHERE NULL <>
8bd0: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   NULL..----..0..
8be0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
8bf0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
8c00: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
8c10: 20 6c 61 62 65 6c 2d 31 38 33 0d 0a 53 45 4c 45   label-183..SELE
8c20: 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29  CT + COUNT ( * )
8c30: 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
8c40: 20 4e 55 4c 4c 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d   NULL <> NULL..-
8c50: 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20  ---..0....query 
8c60: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
8c70: 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
8c80: 57 48 45 52 45 20 2b 20 63 6f 6c 31 20 2a 20 2d  WHERE + col1 * -
8c90: 20 63 6f 6c 31 20 2d 20 2b 20 37 31 20 2f 20 2b   col1 - + 71 / +
8ca0: 20 2d 20 37 39 20 2a 20 2d 20 2d 20 63 6f 6c 32   - 79 * - - col2
8cb0: 20 42 45 54 57 45 45 4e 20 33 20 2f 20 37 36 20   BETWEEN 3 / 76 
8cc0: 2b 20 37 39 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d  + 79 AND NULL..-
8cd0: 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
8ce0: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
8cf0: 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a  x: DECIMAL type:
8d00: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
8d10: 72 74 20 6c 61 62 65 6c 2d 31 38 35 0d 0a 53 45  rt label-185..SE
8d20: 4c 45 43 54 20 63 6f 6c 32 20 2d 20 2b 20 2b 20  LECT col2 - + + 
8d30: 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44 45  CAST( NULL AS DE
8d40: 43 49 4d 41 4c 20 29 20 46 52 4f 4d 20 74 61 62  CIMAL ) FROM tab
8d50: 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  0..----..NULL..N
8d60: 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ULL..NULL....ski
8d70: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
8d80: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
8d90: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
8da0: 6c 2d 31 38 35 0d 0a 53 45 4c 45 43 54 20 63 6f  l-185..SELECT co
8db0: 6c 32 20 2d 20 2b 20 2b 20 43 41 53 54 20 28 20  l2 - + + CAST ( 
8dc0: 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 46  NULL AS REAL ) F
8dd0: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
8de0: 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
8df0: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
8e00: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
8e10: 38 35 20 2a 20 2b 20 2b 20 37 30 20 41 53 20 63  85 * + + 70 AS c
8e20: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
8e30: 2d 2d 2d 0d 0a 35 39 35 30 0d 0a 35 39 35 30 0d  ---..5950..5950.
8e40: 0a 35 39 35 30 0d 0a 0d 0a 71 75 65 72 79 20 49  .5950....query I
8e50: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
8e60: 20 2d 20 2d 20 33 37 20 46 52 4f 4d 20 74 61 62   - - 37 FROM tab
8e70: 31 20 57 48 45 52 45 20 63 6f 6c 32 20 49 53 20  1 WHERE col2 IS 
8e80: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
8e90: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
8ea0: 45 4c 45 43 54 20 41 4c 4c 20 2b 20 28 20 2d 20  ELECT ALL + ( - 
8eb0: 31 35 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  15 ) AS col0 FRO
8ec0: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab0..----..-1
8ed0: 35 0d 0a 2d 31 35 0d 0a 2d 31 35 0d 0a 0d 0a 71  5..-15..-15....q
8ee0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
8ef0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
8f00: 36 39 20 2a 20 2d 20 28 20 2b 20 63 6f 6c 31 20  69 * - ( + col1 
8f10: 29 20 2a 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20  ) * + col1 FROM 
8f20: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 30 34  tab0..----..-304
8f30: 32 39 0d 0a 2d 34 35 32 37 30 39 0d 0a 2d 36 39  29..-452709..-69
8f40: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
8f50: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
8f60: 49 4e 43 54 20 35 39 20 41 53 20 63 6f 6c 30 20  INCT 59 AS col0 
8f70: 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a  FROM tab0 cor0..
8f80: 2d 2d 2d 2d 0d 0a 35 39 0d 0a 0d 0a 71 75 65 72  ----..59....quer
8f90: 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
8fa0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
8fb0: 63 6f 6c 31 2c 20 2b 20 28 20 2d 20 63 6f 6c 30  col1, + ( - col0
8fc0: 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
8fd0: 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
8fe0: 52 45 20 4e 4f 54 20 63 6f 6c 30 20 49 53 20 4e  RE NOT col0 IS N
8ff0: 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  OT NULL..----...
9000: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
9010: 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 35 32 20  ..SELECT + + 52 
9020: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
9030: 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  2 AS cor0 CROSS 
9040: 4a 4f 49 4e 20 74 61 62 32 20 41 53 20 63 6f 72  JOIN tab2 AS cor
9050: 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  1..----..9 value
9060: 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 66 34  s hashing to 7f4
9070: 61 65 33 30 38 39 33 61 62 33 33 30 37 38 34 38  ae30893ab3307848
9080: 32 39 37 31 31 30 33 32 61 65 35 39 39 0d 0a 0d  29711032ae599...
9090: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
90a0: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43  CAST syntax: DEC
90b0: 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65  IMAL type: ..que
90c0: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
90d0: 62 65 6c 2d 31 39 33 0d 0a 53 45 4c 45 43 54 20  bel-193..SELECT 
90e0: 2b 20 2d 20 28 20 2b 20 2d 20 43 41 53 54 28 20  + - ( + - CAST( 
90f0: 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20  NULL AS DECIMAL 
9100: 29 20 29 2c 20 63 6f 6c 30 20 2d 20 2d 20 63 6f  ) ), col0 - - co
9110: 6c 32 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  l2 col2 FROM tab
9120: 31 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  1 WHERE NOT NULL
9130: 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
9140: 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 31 34 34 0d 0a 4e  --..NULL..144..N
9150: 55 4c 4c 0d 0a 31 34 37 0d 0a 4e 55 4c 4c 0d 0a  ULL..147..NULL..
9160: 31 35 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  159....skipif my
9170: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
9180: 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
9190: 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
91a0: 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
91b0: 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
91c0: 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
91d0: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
91e0: 6c 61 62 65 6c 2d 31 39 33 0d 0a 53 45 4c 45 43  label-193..SELEC
91f0: 54 20 2b 20 2d 20 28 20 2b 20 2d 20 43 41 53 54  T + - ( + - CAST
9200: 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20   ( NULL AS REAL 
9210: 29 20 29 2c 20 63 6f 6c 30 20 2d 20 2d 20 63 6f  ) ), col0 - - co
9220: 6c 32 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  l2 col2 FROM tab
9230: 31 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  1 WHERE NOT NULL
9240: 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
9250: 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 31 34 34 0d 0a 4e  --..NULL..144..N
9260: 55 4c 4c 0d 0a 31 34 37 0d 0a 4e 55 4c 4c 0d 0a  ULL..147..NULL..
9270: 31 35 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  159....onlyif my
9280: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
9290: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
92a0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
92b0: 31 39 34 0d 0a 53 45 4c 45 43 54 20 2b 20 53 55  194..SELECT + SU
92c0: 4d 28 20 2b 20 36 35 20 29 20 41 53 20 63 6f 6c  M( + 65 ) AS col
92d0: 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
92e0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 35 0d 0a  or0..----..195..
92f0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
9300: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
9310: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
9320: 20 6c 61 62 65 6c 2d 31 39 34 0d 0a 53 45 4c 45   label-194..SELE
9330: 43 54 20 2b 20 53 55 4d 20 28 20 2b 20 36 35 20  CT + SUM ( + 65 
9340: 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
9350: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
9360: 2d 0d 0a 31 39 35 0d 0a 0d 0a 71 75 65 72 79 20  -..195....query 
9370: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
9380: 54 20 41 4c 4c 20 2b 20 34 33 20 41 53 20 63 6f  T ALL + 43 AS co
9390: 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l0 FROM tab0 cor
93a0: 30 0d 0a 2d 2d 2d 2d 0d 0a 34 33 0d 0a 34 33 0d  0..----..43..43.
93b0: 0a 34 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  .43....skipif po
93c0: 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
93d0: 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
93e0: 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
93f0: 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
9400: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
9410: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
9420: 20 63 6f 6c 32 20 63 6f 6c 31 20 46 52 4f 4d 20   col2 col1 FROM 
9430: 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
9440: 52 45 20 4e 4f 54 20 2b 20 37 31 20 2b 20 2d 20  RE NOT + 71 + - 
9450: 63 6f 6c 32 20 2d 20 63 6f 6c 30 20 49 53 20 4e  col2 - col0 IS N
9460: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 34  ULL..----..23..4
9470: 30 0d 0a 35 38 0d 0a 0d 0a 71 75 65 72 79 20 49  0..58....query I
9480: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
9490: 20 44 49 53 54 49 4e 43 54 20 32 32 20 2a 20 33   DISTINCT 22 * 3
94a0: 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  1 AS col1 FROM t
94b0: 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 36 38 32 0d 0a  ab2..----..682..
94c0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
94d0: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
94e0: 43 54 20 2d 20 2b 20 63 6f 6c 32 20 46 52 4f 4d  CT - + col2 FROM
94f0: 20 74 61 62 30 20 57 48 45 52 45 20 4e 55 4c 4c   tab0 WHERE NULL
9500: 20 3e 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   >= NULL..----..
9510: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
9520: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
9530: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
9540: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 39 39 0d 0a  sort label-199..
9550: 53 45 4c 45 43 54 20 4d 49 4e 28 20 44 49 53 54  SELECT MIN( DIST
9560: 49 4e 43 54 20 2b 20 2d 20 32 30 20 29 20 41 53  INCT + - 20 ) AS
9570: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
9580: 57 48 45 52 45 20 2d 20 63 6f 6c 31 20 49 53 20  WHERE - col1 IS 
9590: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  NULL..----..NULL
95a0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
95b0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
95c0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
95d0: 72 74 20 6c 61 62 65 6c 2d 31 39 39 0d 0a 53 45  rt label-199..SE
95e0: 4c 45 43 54 20 4d 49 4e 20 28 20 44 49 53 54 49  LECT MIN ( DISTI
95f0: 4e 43 54 20 2b 20 2d 20 32 30 20 29 20 41 53 20  NCT + - 20 ) AS 
9600: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 57  col2 FROM tab2 W
9610: 48 45 52 45 20 2d 20 63 6f 6c 31 20 49 53 20 4e  HERE - col1 IS N
9620: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ULL..----..NULL.
9630: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
9640: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
9650: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
9660: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 30 30 0d  wsort label-200.
9670: 0a 53 45 4c 45 43 54 20 4d 49 4e 28 20 2b 20 63  .SELECT MIN( + c
9680: 6f 6c 31 20 29 20 2a 20 2d 20 2d 20 35 35 20 2b  ol1 ) * - - 55 +
9690: 20 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20   - + COUNT( * ) 
96a0: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
96b0: 30 0d 0a 2d 2d 2d 2d 0d 0a 35 32 0d 0a 0d 0a 73  0..----..52....s
96c0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
96d0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
96e0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
96f0: 62 65 6c 2d 32 30 30 0d 0a 53 45 4c 45 43 54 20  bel-200..SELECT 
9700: 4d 49 4e 20 28 20 2b 20 63 6f 6c 31 20 29 20 2a  MIN ( + col1 ) *
9710: 20 2d 20 2d 20 35 35 20 2b 20 2d 20 2b 20 43 4f   - - 55 + - + CO
9720: 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c  UNT ( * ) AS col
9730: 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
9740: 2d 0d 0a 35 32 0d 0a 0d 0a 71 75 65 72 79 20 49  -..52....query I
9750: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
9760: 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 46   DISTINCT col1 F
9770: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
9780: 20 57 48 45 52 45 20 63 6f 6c 31 20 2d 20 2d 20   WHERE col1 - - 
9790: 36 33 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  63 IS NOT NULL..
97a0: 2d 2d 2d 2d 0d 0a 35 31 0d 0a 36 37 0d 0a 37 37  ----..51..67..77
97b0: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
97c0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
97d0: 30 20 41 53 20 63 6f 6c 30 2c 20 2b 20 28 20 2d  0 AS col0, + ( -
97e0: 20 31 33 20 29 20 2a 20 63 6f 6c 30 20 2a 20 2d   13 ) * col0 * -
97f0: 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20   - col0 AS col1 
9800: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
9810: 0a 31 35 0d 0a 2d 32 39 32 35 0d 0a 38 37 0d 0a  .15..-2925..87..
9820: 2d 39 38 33 39 37 0d 0a 39 37 0d 0a 2d 31 32 32  -98397..97..-122
9830: 33 31 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  317....onlyif my
9840: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
9850: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
9860: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
9870: 74 20 6c 61 62 65 6c 2d 32 30 33 0d 0a 53 45 4c  t label-203..SEL
9880: 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 41  ECT ALL + col1 A
9890: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
98a0: 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 2d 20 43   WHERE NOT + - C
98b0: 41 53 54 28 20 2d 20 63 6f 6c 30 20 41 53 20 53  AST( - col0 AS S
98c0: 49 47 4e 45 44 20 29 20 4e 4f 54 20 49 4e 20 28  IGNED ) NOT IN (
98d0: 20 2b 20 2b 20 63 6f 6c 32 2c 20 33 30 2c 20 37   + + col2, 30, 7
98e0: 30 2c 20 2d 20 34 37 2c 20 28 20 2d 20 2b 20 31  0, - 47, ( - + 1
98f0: 34 20 29 20 2f 20 63 6f 6c 31 20 2f 20 63 6f 6c  4 ) / col1 / col
9900: 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  2 )..----....ski
9910: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
9920: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
9930: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
9940: 6c 2d 32 30 33 0d 0a 53 45 4c 45 43 54 20 41 4c  l-203..SELECT AL
9950: 4c 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30  L + col1 AS col0
9960: 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
9970: 20 4e 4f 54 20 2b 20 2d 20 43 41 53 54 20 28 20   NOT + - CAST ( 
9980: 2d 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45  - col0 AS INTEGE
9990: 52 20 29 20 4e 4f 54 20 49 4e 20 28 20 2b 20 2b  R ) NOT IN ( + +
99a0: 20 63 6f 6c 32 2c 20 33 30 2c 20 37 30 2c 20 2d   col2, 30, 70, -
99b0: 20 34 37 2c 20 28 20 2d 20 2b 20 31 34 20 29 20   47, ( - + 14 ) 
99c0: 2f 20 63 6f 6c 31 20 2f 20 63 6f 6c 32 20 29 0d  / col1 / col2 ).
99d0: 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
99e0: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
99f0: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
9a00: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
9a10: 6c 2d 32 30 34 0d 0a 53 45 4c 45 43 54 20 44 49  l-204..SELECT DI
9a20: 53 54 49 4e 43 54 20 28 20 2d 20 38 38 20 29 20  STINCT ( - 88 ) 
9a30: 2a 20 2b 20 28 20 2b 20 2b 20 53 55 4d 28 20 2b  * + ( + + SUM( +
9a40: 20 37 37 20 29 20 29 20 41 53 20 63 6f 6c 30 20   77 ) ) AS col0 
9a50: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
9a60: 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62  0 CROSS JOIN tab
9a70: 32 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d  2 AS cor1..----.
9a80: 0a 2d 36 30 39 38 34 0d 0a 0d 0a 73 6b 69 70 69  .-60984....skipi
9a90: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
9aa0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
9ab0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
9ac0: 32 30 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  204..SELECT DIST
9ad0: 49 4e 43 54 20 28 20 2d 20 38 38 20 29 20 2a 20  INCT ( - 88 ) * 
9ae0: 2b 20 28 20 2b 20 2b 20 53 55 4d 20 28 20 2b 20  + ( + + SUM ( + 
9af0: 37 37 20 29 20 29 20 41 53 20 63 6f 6c 30 20 46  77 ) ) AS col0 F
9b00: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
9b10: 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32   CROSS JOIN tab2
9b20: 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
9b30: 2d 36 30 39 38 34 0d 0a 0d 0a 71 75 65 72 79 20  -60984....query 
9b40: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
9b50: 54 20 44 49 53 54 49 4e 43 54 20 2d 20 39 36 20  T DISTINCT - 96 
9b60: 46 52 4f 4d 20 28 20 74 61 62 31 20 41 53 20 63  FROM ( tab1 AS c
9b70: 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
9b80: 61 62 31 20 41 53 20 63 6f 72 31 20 29 0d 0a 2d  ab1 AS cor1 )..-
9b90: 2d 2d 2d 0d 0a 2d 39 36 0d 0a 0d 0a 6f 6e 6c 79  ---..-96....only
9ba0: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
9bb0: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
9bc0: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
9bd0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 30 36  owsort label-206
9be0: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41 53  ..SELECT ALL CAS
9bf0: 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
9c00: 44 20 29 20 2a 20 38 30 20 2b 20 39 20 2f 20 2b  D ) * 80 + 9 / +
9c10: 20 2d 20 33 32 20 46 52 4f 4d 20 74 61 62 32 20   - 32 FROM tab2 
9c20: 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
9c30: 74 61 62 32 20 41 53 20 63 6f 72 31 0d 0a 2d 2d  tab2 AS cor1..--
9c40: 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
9c50: 68 69 6e 67 20 74 6f 20 63 64 37 61 37 39 30 31  hing to cd7a7901
9c60: 65 34 37 63 31 35 31 35 35 34 30 34 61 66 66 30  e47c15155404aff0
9c70: 64 32 31 36 66 65 30 62 0d 0a 0d 0a 73 6b 69 70  d216fe0b....skip
9c80: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
9c90: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
9ca0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
9cb0: 2d 32 30 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -206..SELECT ALL
9cc0: 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
9cd0: 49 4e 54 45 47 45 52 20 29 20 2a 20 38 30 20 2b  INTEGER ) * 80 +
9ce0: 20 39 20 2f 20 2b 20 2d 20 33 32 20 46 52 4f 4d   9 / + - 32 FROM
9cf0: 20 74 61 62 32 20 63 6f 72 30 20 43 52 4f 53 53   tab2 cor0 CROSS
9d00: 20 4a 4f 49 4e 20 74 61 62 32 20 41 53 20 63 6f   JOIN tab2 AS co
9d10: 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  r1..----..9 valu
9d20: 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 64  es hashing to cd
9d30: 37 61 37 39 30 31 65 34 37 63 31 35 31 35 35 34  7a7901e47c151554
9d40: 30 34 61 66 66 30 64 32 31 36 66 65 30 62 0d 0a  04aff0d216fe0b..
9d50: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
9d60: 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 34 35  t..SELECT + + 45
9d70: 20 2a 20 63 6f 6c 32 20 2d 20 63 6f 6c 30 20 46   * col2 - col0 F
9d80: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
9d90: 0d 0a 2d 2d 2d 2d 0d 0a 31 37 33 36 0d 0a 32 35  ..----..1736..25
9da0: 33 35 0d 0a 39 38 39 0d 0a 0d 0a 71 75 65 72 79  35..989....query
9db0: 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
9dc0: 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 41  ECT ALL - col0 A
9dd0: 53 20 63 6f 6c 32 2c 20 2d 20 34 20 46 52 4f 4d  S col2, - 4 FROM
9de0: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
9df0: 2d 2d 2d 0d 0a 2d 31 35 0d 0a 2d 34 0d 0a 2d 38  ---..-15..-4..-8
9e00: 37 0d 0a 2d 34 0d 0a 2d 39 37 0d 0a 2d 34 0d 0a  7..-4..-97..-4..
9e10: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
9e20: 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45   CAST syntax: DE
9e30: 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75  CIMAL type: ..qu
9e40: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
9e50: 6c 61 62 65 6c 2d 32 30 39 0d 0a 53 45 4c 45 43  label-209..SELEC
9e60: 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  T * FROM tab2 co
9e70: 72 30 20 57 48 45 52 45 20 2d 20 31 37 20 3c 20  r0 WHERE - 17 < 
9e80: 2b 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 30 20  + col2 + + col0 
9e90: 2b 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  + - CAST( NULL A
9ea0: 53 20 44 45 43 49 4d 41 4c 20 29 0d 0a 2d 2d 2d  S DECIMAL )..---
9eb0: 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  -....skipif mysq
9ec0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
9ed0: 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  le..query III ro
9ee0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 30 39 0d  wsort label-209.
9ef0: 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
9f00: 61 62 32 20 63 6f 72 30 20 57 48 45 52 45 20 2d  ab2 cor0 WHERE -
9f10: 20 31 37 20 3c 20 2b 20 63 6f 6c 32 20 2b 20 2b   17 < + col2 + +
9f20: 20 63 6f 6c 30 20 2b 20 2d 20 43 41 53 54 20 28   col0 + - CAST (
9f30: 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 0d   NULL AS REAL ).
9f40: 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
9f50: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
9f60: 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f  e syntax: DIV fo
9f70: 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
9f80: 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
9f90: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 31 30 0d  wsort label-210.
9fa0: 0a 53 45 4c 45 43 54 20 31 30 20 44 49 56 20 43  .SELECT 10 DIV C
9fb0: 4f 55 4e 54 28 20 2a 20 29 20 2d 20 2b 20 34 33  OUNT( * ) - + 43
9fc0: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
9fd0: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
9fe0: 0d 0a 2d 34 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-40....skipif 
9ff0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
a000: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
a010: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 31  rowsort label-21
a020: 30 0d 0a 53 45 4c 45 43 54 20 31 30 20 2f 20 43  0..SELECT 10 / C
a030: 4f 55 4e 54 20 28 20 2a 20 29 20 2d 20 2b 20 34  OUNT ( * ) - + 4
a040: 33 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  3 AS col2 FROM t
a050: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
a060: 2d 0d 0a 2d 34 30 0d 0a 0d 0a 71 75 65 72 79 20  -..-40....query 
a070: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
a080: 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20  CT DISTINCT + + 
a090: 63 6f 6c 31 20 2b 20 2d 20 32 31 20 41 53 20 63  col1 + - 21 AS c
a0a0: 6f 6c 30 2c 20 2b 20 31 35 20 2b 20 63 6f 6c 31  ol0, + 15 + col1
a0b0: 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c   + + col0 AS col
a0c0: 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
a0d0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30 0d 0a  or0..----..-20..
a0e0: 31 31 33 0d 0a 30 0d 0a 31 32 33 0d 0a 36 30 0d  113..0..123..60.
a0f0: 0a 31 31 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .111....query I 
a100: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
a110: 41 4c 4c 20 2d 20 28 20 2b 20 31 34 20 29 20 2a  ALL - ( + 14 ) *
a120: 20 63 6f 6c 30 20 2b 20 2d 20 2d 20 28 20 63 6f   col0 + - - ( co
a130: 6c 31 20 29 20 2d 20 2b 20 2d 20 63 6f 6c 31 20  l1 ) - + - col1 
a140: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
a150: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
a160: 0a 2d 35 34 32 0d 0a 2d 37 34 32 0d 0a 2d 39 31  .-542..-742..-91
a170: 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  6....query I row
a180: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63  sort..SELECT + c
a190: 6f 6c 32 20 2b 20 2b 20 2d 20 32 36 20 2a 20 63  ol2 + + - 26 * c
a1a0: 6f 6c 30 20 2d 20 2d 20 2b 20 38 38 20 41 53 20  ol0 - - + 88 AS 
a1b0: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
a1c0: 2d 2d 2d 2d 0d 0a 2d 32 31 36 34 0d 0a 2d 32 33  ----..-2164..-23
a1d0: 33 35 0d 0a 2d 32 35 35 0d 0a 0d 0a 71 75 65 72  35..-255....quer
a1e0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
a1f0: 45 43 54 20 2d 20 28 20 2b 20 63 6f 6c 31 20 29  ECT - ( + col1 )
a200: 20 2b 20 2b 20 2d 20 63 6f 6c 32 20 46 52 4f 4d   + + - col2 FROM
a210: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31   tab2..----..-11
a220: 37 0d 0a 2d 31 32 35 0d 0a 2d 37 34 0d 0a 0d 0a  7..-125..-74....
a230: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
a240: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
a250: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
a260: 72 74 20 6c 61 62 65 6c 2d 32 31 35 0d 0a 53 45  rt label-215..SE
a270: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
a280: 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 28 20 53  COUNT( * ) * ( S
a290: 55 4d 28 20 44 49 53 54 49 4e 43 54 20 2d 20 2b  UM( DISTINCT - +
a2a0: 20 63 6f 6c 31 20 29 20 29 20 41 53 20 63 6f 6c   col1 ) ) AS col
a2b0: 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
a2c0: 2d 0d 0a 2d 33 30 39 0d 0a 0d 0a 73 6b 69 70 69  -..-309....skipi
a2d0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
a2e0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
a2f0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
a300: 32 31 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  215..SELECT DIST
a310: 49 4e 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a  INCT + COUNT ( *
a320: 20 29 20 2a 20 28 20 53 55 4d 20 28 20 44 49 53   ) * ( SUM ( DIS
a330: 54 49 4e 43 54 20 2d 20 2b 20 63 6f 6c 31 20 29  TINCT - + col1 )
a340: 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
a350: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 30 39  tab0..----..-309
a360: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
a370: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
a380: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
a390: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 31 36  owsort label-216
a3a0: 0d 0a 53 45 4c 45 43 54 20 2d 20 4d 41 58 28 20  ..SELECT - MAX( 
a3b0: 2d 20 34 34 20 29 20 46 52 4f 4d 20 74 61 62 30  - 44 ) FROM tab0
a3c0: 0d 0a 2d 2d 2d 2d 0d 0a 34 34 0d 0a 0d 0a 73 6b  ..----..44....sk
a3d0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
a3e0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
a3f0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
a400: 65 6c 2d 32 31 36 0d 0a 53 45 4c 45 43 54 20 2d  el-216..SELECT -
a410: 20 4d 41 58 20 28 20 2d 20 34 34 20 29 20 46 52   MAX ( - 44 ) FR
a420: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 34  OM tab0..----..4
a430: 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  4....onlyif mysq
a440: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
a450: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
a460: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 31  rowsort label-21
a470: 37 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 49 4e 28  7..SELECT + MIN(
a480: 20 2b 20 2b 20 63 6f 6c 32 20 29 20 2a 20 2d 20   + + col2 ) * - 
a490: 37 32 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  72 col1 FROM tab
a4a0: 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 35 36 0d 0a  2..----..-1656..
a4b0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
a4c0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
a4d0: 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
a4e0: 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
a4f0: 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
a500: 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
a510: 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
a520: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
a530: 32 31 37 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 49  217..SELECT + MI
a540: 4e 20 28 20 2b 20 2b 20 63 6f 6c 32 20 29 20 2a  N ( + + col2 ) *
a550: 20 2d 20 37 32 20 63 6f 6c 31 20 46 52 4f 4d 20   - 72 col1 FROM 
a560: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 35  tab2..----..-165
a570: 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
a580: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
a590: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
a5a0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 31  rowsort label-21
a5b0: 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  8..SELECT ALL + 
a5c0: 53 55 4d 28 20 2b 20 2d 20 63 6f 6c 31 20 29 20  SUM( + - col1 ) 
a5d0: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
a5e0: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 36 0d 0a 0d 0a  0..----..-66....
a5f0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
a600: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
a610: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
a620: 61 62 65 6c 2d 32 31 38 0d 0a 53 45 4c 45 43 54  abel-218..SELECT
a630: 20 41 4c 4c 20 2b 20 53 55 4d 20 28 20 2b 20 2d   ALL + SUM ( + -
a640: 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62   col1 ) FROM tab
a650: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
a660: 0a 2d 36 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-66....query I 
a670: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
a680: 28 20 2b 20 39 38 20 29 20 41 53 20 63 6f 6c 31  ( + 98 ) AS col1
a690: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
a6a0: 0d 0a 39 38 0d 0a 39 38 0d 0a 39 38 0d 0a 0d 0a  ..98..98..98....
a6b0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
a6c0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20  .SELECT ALL - - 
a6d0: 39 34 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  94 AS col1 FROM 
a6e0: 74 61 62 31 20 57 48 45 52 45 20 2d 20 63 6f 6c  tab1 WHERE - col
a6f0: 30 20 2b 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20  0 + col2 IS NOT 
a700: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 34 0d 0a  NULL..----..94..
a710: 39 34 0d 0a 39 34 0d 0a 0d 0a 71 75 65 72 79 20  94..94....query 
a720: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
a730: 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 28  T DISTINCT + + (
a740: 20 2b 20 39 33 20 29 20 46 52 4f 4d 20 74 61 62   + 93 ) FROM tab
a750: 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  2 AS cor0 CROSS 
a760: 4a 4f 49 4e 20 74 61 62 31 20 41 53 20 63 6f 72  JOIN tab1 AS cor
a770: 31 0d 0a 2d 2d 2d 2d 0d 0a 39 33 0d 0a 0d 0a 73  1..----..93....s
a780: 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
a790: 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
a7a0: 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
a7b0: 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
a7c0: 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
a7d0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
a7e0: 41 4c 4c 20 38 36 20 2a 20 2d 20 36 38 20 2a 20  ALL 86 * - 68 * 
a7f0: 2b 20 63 6f 6c 32 20 63 6f 6c 31 20 46 52 4f 4d  + col2 col1 FROM
a800: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 34   tab1..----..-34
a810: 35 30 33 32 0d 0a 2d 33 39 37 36 36 34 0d 0a 2d  5032..-397664..-
a820: 35 36 31 34 30 38 0d 0a 0d 0a 73 6b 69 70 69 66  561408....skipif
a830: 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
a840: 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
a850: 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
a860: 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
a870: 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
a880: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
a890: 4e 43 54 20 2b 20 2b 20 32 34 20 63 6f 6c 32 20  NCT + + 24 col2 
a8a0: 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a  FROM tab1 cor0..
a8b0: 2d 2d 2d 2d 0d 0a 32 34 0d 0a 0d 0a 71 75 65 72  ----..24....quer
a8c0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
a8d0: 45 43 54 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 28  ECT + col1 * + (
a8e0: 20 63 6f 6c 31 20 29 20 2a 20 2d 20 28 20 63 6f   col1 ) * - ( co
a8f0: 6c 32 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  l2 ) AS col0 FRO
a900: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
a910: 2d 2d 2d 2d 0d 0a 2d 31 34 37 35 0d 0a 2d 31 35  ----..-1475..-15
a920: 30 32 31 32 0d 0a 2d 31 38 38 31 36 0d 0a 0d 0a  0212..-18816....
a930: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
a940: 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2b 20 63  .SELECT col0 + c
a950: 6f 6c 31 20 2a 20 2d 20 36 32 20 46 52 4f 4d 20  ol1 * - 62 FROM 
a960: 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
a970: 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3c 3d 20 28  RE NOT NULL <= (
a980: 20 2d 20 36 31 20 2a 20 63 6f 6c 30 20 29 0d 0a   - 61 * col0 )..
a990: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
a9a0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
a9b0: 44 49 53 54 49 4e 43 54 20 2d 20 35 36 20 2a 20  DISTINCT - 56 * 
a9c0: 2b 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31  + + col1 AS col1
a9d0: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
a9e0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 37 36 0d  r0..----..-1176.
a9f0: 0a 2d 34 35 33 36 0d 0a 2d 35 36 0d 0a 0d 0a 6f  .-4536..-56....o
aa00: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
aa10: 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
aa20: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
aa30: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
aa40: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
aa50: 6c 2d 32 32 37 0d 0a 53 45 4c 45 43 54 20 41 4c  l-227..SELECT AL
aa60: 4c 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  L CAST( NULL AS 
aa70: 53 49 47 4e 45 44 20 29 20 2a 20 2d 20 43 4f 55  SIGNED ) * - COU
aa80: 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  NT( * ) FROM tab
aa90: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
aaa0: 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
aab0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
aac0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
aad0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 32  rowsort label-22
aae0: 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41  7..SELECT ALL CA
aaf0: 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
ab00: 45 47 45 52 20 29 20 2a 20 2d 20 43 4f 55 4e 54  EGER ) * - COUNT
ab10: 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32   ( * ) FROM tab2
ab20: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
ab30: 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20  NULL....query I 
ab40: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
ab50: 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 28 20 2d  DISTINCT - + ( -
ab60: 20 37 38 20 29 20 2a 20 2b 20 63 6f 6c 31 20 2b   78 ) * + col1 +
ab70: 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   + col0 FROM tab
ab80: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
ab90: 0a 31 37 32 35 0d 0a 31 37 35 0d 0a 36 33 33 33  .1725..175..6333
aba0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
abb0: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
abc0: 53 49 47 4e 45 44 20 74 79 70 65 3a 20 44 45 43  SIGNED type: DEC
abd0: 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65  IMAL type: ..que
abe0: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
abf0: 61 62 65 6c 2d 32 32 39 0d 0a 53 45 4c 45 43 54  abel-229..SELECT
ac00: 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
ac10: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 43  cor0 WHERE NOT C
ac20: 41 53 54 28 20 2d 20 32 35 20 41 53 20 44 45 43  AST( - 25 AS DEC
ac30: 49 4d 41 4c 20 29 20 2f 20 2b 20 37 20 2a 20 2d  IMAL ) / + 7 * -
ac40: 20 39 33 20 2b 20 2b 20 2d 20 33 38 20 3c 3e 20   93 + + - 38 <> 
ac50: 2d 20 2d 20 43 41 53 54 28 20 2b 20 43 41 53 54  - - CAST( + CAST
ac60: 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
ac70: 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 0d 0a   ) AS SIGNED )..
ac80: 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ----....skipif m
ac90: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
aca0: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49  tible..query III
acb0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
acc0: 32 39 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  29..SELECT * FRO
acd0: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
ace0: 48 45 52 45 20 4e 4f 54 20 43 41 53 54 20 28 20  HERE NOT CAST ( 
acf0: 2d 20 32 35 20 41 53 20 52 45 41 4c 20 29 20 2f  - 25 AS REAL ) /
ad00: 20 2b 20 37 20 2a 20 2d 20 39 33 20 2b 20 2b 20   + 7 * - 93 + + 
ad10: 2d 20 33 38 20 3c 3e 20 2d 20 2d 20 43 41 53 54  - 38 <> - - CAST
ad20: 20 28 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c   ( + CAST ( NULL
ad30: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53   AS INTEGER ) AS
ad40: 20 49 4e 54 45 47 45 52 20 29 0d 0a 2d 2d 2d 2d   INTEGER )..----
ad50: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
ad60: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
ad70: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  tax: ..query II 
ad80: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 33  rowsort label-23
ad90: 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  0..SELECT ALL - 
ada0: 36 38 20 63 6f 6c 31 2c 20 2d 20 43 4f 55 4e 54  68 col1, - COUNT
adb0: 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ( * ) FROM tab2 
adc0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
add0: 36 38 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66  68..-3....skipif
ade0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
adf0: 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
ae00: 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
ae10: 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
ae20: 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
ae30: 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
ae40: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
ae50: 72 74 20 6c 61 62 65 6c 2d 32 33 30 0d 0a 53 45  rt label-230..SE
ae60: 4c 45 43 54 20 41 4c 4c 20 2d 20 36 38 20 63 6f  LECT ALL - 68 co
ae70: 6c 31 2c 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  l1, - COUNT ( * 
ae80: 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  ) FROM tab2 AS c
ae90: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 38 0d 0a  or0..----..-68..
aea0: 2d 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  -3....onlyif mys
aeb0: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
aec0: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
aed0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
aee0: 33 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43  31..SELECT ALL C
aef0: 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20 2d 20  OUNT( * ) * + - 
af00: 39 39 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  99 AS col1 FROM 
af10: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 39 37  tab0..----..-297
af20: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
af30: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
af40: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
af50: 72 74 20 6c 61 62 65 6c 2d 32 33 31 0d 0a 53 45  rt label-231..SE
af60: 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20 28  LECT ALL COUNT (
af70: 20 2a 20 29 20 2a 20 2b 20 2d 20 39 39 20 41 53   * ) * + - 99 AS
af80: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d   col1 FROM tab0.
af90: 0a 2d 2d 2d 2d 0d 0a 2d 32 39 37 0d 0a 0d 0a 71  .----..-297....q
afa0: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
afb0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
afc0: 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  T * FROM tab2 WH
afd0: 45 52 45 20 35 36 20 4e 4f 54 20 42 45 54 57 45  ERE 56 NOT BETWE
afe0: 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2d 20 2b 20  EN NULL AND - + 
aff0: 35 37 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  57..----..9 valu
b000: 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35  es hashing to 75
b010: 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63  c998aa53ac83218c
b020: 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a  bf2feb962d0a49..
b030: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
b040: 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
b050: 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
b060: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
b070: 65 6c 2d 32 33 33 0d 0a 53 45 4c 45 43 54 20 44  el-233..SELECT D
b080: 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 44 49 56  ISTINCT col2 DIV
b090: 20 2d 20 2b 20 39 32 20 46 52 4f 4d 20 74 61 62   - + 92 FROM tab
b0a0: 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b  2..----..0....sk
b0b0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
b0c0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
b0d0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
b0e0: 65 6c 2d 32 33 33 0d 0a 53 45 4c 45 43 54 20 44  el-233..SELECT D
b0f0: 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 2f 20 2d  ISTINCT col2 / -
b100: 20 2b 20 39 32 20 46 52 4f 4d 20 74 61 62 32 0d   + 92 FROM tab2.
b110: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79  .----..0....only
b120: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
b130: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
b140: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
b150: 61 62 65 6c 2d 32 33 34 0d 0a 53 45 4c 45 43 54  abel-234..SELECT
b160: 20 41 4c 4c 20 2b 20 2d 20 43 4f 55 4e 54 28 20   ALL + - COUNT( 
b170: 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20 57 48  * ) FROM tab2 WH
b180: 45 52 45 20 2d 20 2b 20 35 34 20 49 53 20 4e 55  ERE - + 54 IS NU
b190: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73  LL..----..0....s
b1a0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
b1b0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
b1c0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
b1d0: 62 65 6c 2d 32 33 34 0d 0a 53 45 4c 45 43 54 20  bel-234..SELECT 
b1e0: 41 4c 4c 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20  ALL + - COUNT ( 
b1f0: 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20 57 48  * ) FROM tab2 WH
b200: 45 52 45 20 2d 20 2b 20 35 34 20 49 53 20 4e 55  ERE - + 54 IS NU
b210: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f  LL..----..0....o
b220: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
b230: 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
b240: 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
b250: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
b260: 32 33 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  235..SELECT DIST
b270: 49 4e 43 54 20 2b 20 63 6f 6c 32 20 44 49 56 20  INCT + col2 DIV 
b280: 63 6f 6c 30 20 2b 20 63 6f 6c 30 20 41 53 20 63  col0 + col0 AS c
b290: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
b2a0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 38 0d   cor0..----..18.
b2b0: 0a 38 37 0d 0a 39 38 0d 0a 0d 0a 73 6b 69 70 69  .87..98....skipi
b2c0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
b2d0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
b2e0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
b2f0: 32 33 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  235..SELECT DIST
b300: 49 4e 43 54 20 2b 20 63 6f 6c 32 20 2f 20 63 6f  INCT + col2 / co
b310: 6c 30 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c  l0 + col0 AS col
b320: 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
b330: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 38 0d 0a 38  or0..----..18..8
b340: 37 0d 0a 39 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  7..98....onlyif 
b350: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
b360: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
b370: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
b380: 6c 2d 32 33 36 0d 0a 53 45 4c 45 43 54 20 44 49  l-236..SELECT DI
b390: 53 54 49 4e 43 54 20 43 4f 55 4e 54 28 20 2a 20  STINCT COUNT( * 
b3a0: 29 20 2a 20 2d 20 38 31 20 2b 20 2d 20 2d 20 4d  ) * - 81 + - - M
b3b0: 41 58 28 20 2d 20 63 6f 6c 32 20 29 20 46 52 4f  AX( - col2 ) FRO
b3c0: 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
b3d0: 2d 0d 0a 2d 32 35 33 0d 0a 0d 0a 73 6b 69 70 69  -..-253....skipi
b3e0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
b3f0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
b400: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
b410: 32 33 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  236..SELECT DIST
b420: 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29  INCT COUNT ( * )
b430: 20 2a 20 2d 20 38 31 20 2b 20 2d 20 2d 20 4d 41   * - 81 + - - MA
b440: 58 20 28 20 2d 20 63 6f 6c 32 20 29 20 46 52 4f  X ( - col2 ) FRO
b450: 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
b460: 2d 0d 0a 2d 32 35 33 0d 0a 0d 0a 71 75 65 72 79  -..-253....query
b470: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
b480: 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20  CT DISTINCT - - 
b490: 35 33 20 2d 20 2d 20 33 33 20 46 52 4f 4d 20 74  53 - - 33 FROM t
b4a0: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
b4b0: 2d 0d 0a 38 36 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..86....skipif 
b4c0: 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
b4d0: 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
b4e0: 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
b4f0: 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
b500: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
b510: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
b520: 43 54 20 31 36 20 63 6f 6c 30 20 46 52 4f 4d 20  CT 16 col0 FROM 
b530: 74 61 62 30 20 41 53 20 63 6f 72 30 20 4c 45 46  tab0 AS cor0 LEF
b540: 54 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63  T JOIN tab0 AS c
b550: 6f 72 31 20 4f 4e 20 4e 55 4c 4c 20 49 53 20 4e  or1 ON NULL IS N
b560: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 36 0d 0a 0d  ULL..----..16...
b570: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
b580: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
b590: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
b5a0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
b5b0: 6c 2d 32 33 39 0d 0a 53 45 4c 45 43 54 20 2d 20  l-239..SELECT - 
b5c0: 43 41 53 54 28 20 2b 20 34 37 20 41 53 20 53 49  CAST( + 47 AS SI
b5d0: 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62 30  GNED ) FROM tab0
b5e0: 20 57 48 45 52 45 20 28 20 63 6f 6c 32 20 2b 20   WHERE ( col2 + 
b5f0: 63 6f 6c 32 20 2d 20 2b 20 2b 20 28 20 2b 20 39  col2 - + + ( + 9
b600: 38 20 29 20 2f 20 35 33 20 2a 20 2d 20 2d 20 63  8 ) / 53 * - - c
b610: 6f 6c 32 20 2d 20 36 30 20 2f 20 2d 20 2d 20 63  ol2 - 60 / - - c
b620: 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 20  ol1 IS NOT NULL 
b630: 29 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 37 0d 0a 2d 34  )..----..-47..-4
b640: 37 0d 0a 2d 34 37 0d 0a 0d 0a 73 6b 69 70 69 66  7..-47....skipif
b650: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
b660: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
b670: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
b680: 33 39 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53  39..SELECT - CAS
b690: 54 20 28 20 2b 20 34 37 20 41 53 20 49 4e 54 45  T ( + 47 AS INTE
b6a0: 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 30 20  GER ) FROM tab0 
b6b0: 57 48 45 52 45 20 28 20 63 6f 6c 32 20 2b 20 63  WHERE ( col2 + c
b6c0: 6f 6c 32 20 2d 20 2b 20 2b 20 28 20 2b 20 39 38  ol2 - + + ( + 98
b6d0: 20 29 20 2f 20 35 33 20 2a 20 2d 20 2d 20 63 6f   ) / 53 * - - co
b6e0: 6c 32 20 2d 20 36 30 20 2f 20 2d 20 2d 20 63 6f  l2 - 60 / - - co
b6f0: 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 20 29  l1 IS NOT NULL )
b700: 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 37 0d 0a 2d 34 37  ..----..-47..-47
b710: 0d 0a 2d 34 37 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-47....query I
b720: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
b730: 20 2b 20 28 20 2b 20 63 6f 6c 32 20 29 20 2a 20   + ( + col2 ) * 
b740: 28 20 2b 20 2d 20 32 35 20 29 20 2a 20 63 6f 6c  ( + - 25 ) * col
b750: 31 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c  1 + col0 * - col
b760: 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  2 AS col2 FROM t
b770: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
b780: 2d 0d 0a 2d 31 32 30 37 38 0d 0a 2d 36 31 32 30  -..-12078..-6120
b790: 0d 0a 2d 39 35 38 38 30 0d 0a 0d 0a 6f 6e 6c 79  ..-95880....only
b7a0: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
b7b0: 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20  syntax: DECIMAL 
b7c0: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
b7d0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 34  rowsort label-24
b7e0: 31 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 33 33  1..SELECT + - 33
b7f0: 20 2a 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20   * + CAST( NULL 
b800: 41 53 20 44 45 43 49 4d 41 4c 20 29 20 41 53 20  AS DECIMAL ) AS 
b810: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
b820: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
b830: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
b840: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
b850: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
b860: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
b870: 20 6c 61 62 65 6c 2d 32 34 31 0d 0a 53 45 4c 45   label-241..SELE
b880: 43 54 20 2b 20 2d 20 33 33 20 2a 20 2b 20 43 41  CT + - 33 * + CA
b890: 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41  ST ( NULL AS REA
b8a0: 4c 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  L ) AS col0 FROM
b8b0: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
b8c0: 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
b8d0: 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
b8e0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
b8f0: 20 44 49 53 54 49 4e 43 54 20 2b 20 34 33 20 2b   DISTINCT + 43 +
b900: 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   - col1 FROM tab
b910: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
b920: 0a 2d 32 34 0d 0a 2d 33 34 0d 0a 2d 38 0d 0a 0d  .-24..-34..-8...
b930: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
b940: 0d 0a 53 45 4c 45 43 54 20 2d 20 31 35 20 2a 20  ..SELECT - 15 * 
b950: 63 6f 6c 30 20 2b 20 2b 20 2d 20 63 6f 6c 31 20  col0 + + - col1 
b960: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
b970: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 38 30 0d 0a  0..----..-1280..
b980: 2d 31 34 31 32 0d 0a 2d 37 37 39 0d 0a 0d 0a 71  -1412..-779....q
b990: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
b9a0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
b9b0: 20 38 34 2c 20 28 20 2b 20 63 6f 6c 32 20 29 20   84, ( + col2 ) 
b9c0: 2a 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f  * + - col2 AS co
b9d0: 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
b9e0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 34 0d 0a  cor0..----..84..
b9f0: 2d 33 34 38 31 0d 0a 38 34 0d 0a 2d 34 36 32 34  -3481..84..-4624
ba00: 0d 0a 38 34 0d 0a 2d 39 32 31 36 0d 0a 0d 0a 6f  ..84..-9216....o
ba10: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
ba20: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
ba30: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
ba40: 74 20 6c 61 62 65 6c 2d 32 34 35 0d 0a 53 45 4c  t label-245..SEL
ba50: 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 28  ECT ALL - COUNT(
ba60: 20 2d 20 2d 20 63 6f 6c 31 20 29 20 46 52 4f 4d   - - col1 ) FROM
ba70: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
ba80: 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69  ---..-3....skipi
ba90: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
baa0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
bab0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
bac0: 32 34 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  245..SELECT ALL 
bad0: 2d 20 43 4f 55 4e 54 20 28 20 2d 20 2d 20 63 6f  - COUNT ( - - co
bae0: 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41  l1 ) FROM tab1 A
baf0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  S cor0..----..-3
bb00: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
bb10: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
bb20: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
bb30: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 34 36  owsort label-246
bb40: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d  ..SELECT ALL + M
bb50: 49 4e 28 20 41 4c 4c 20 2b 20 2d 20 31 35 20 29  IN( ALL + - 15 )
bb60: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
bb70: 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b2 cor0..----..-
bb80: 31 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  15....skipif mys
bb90: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
bba0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
bbb0: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 34 36 0d 0a  sort label-246..
bbc0: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d 49 4e  SELECT ALL + MIN
bbd0: 20 28 20 41 4c 4c 20 2b 20 2d 20 31 35 20 29 20   ( ALL + - 15 ) 
bbe0: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
bbf0: 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  2 cor0..----..-1
bc00: 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  5....query I row
bc10: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
bc20: 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 2a 20 36  TINCT - col2 * 6
bc30: 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  1 AS col0 FROM t
bc40: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 35 39 39  ab1..----..-3599
bc50: 0d 0a 2d 34 31 34 38 0d 0a 2d 35 38 35 36 0d 0a  ..-4148..-5856..
bc60: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
bc70: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
bc80: 20 63 6f 6c 32 2c 20 2d 20 28 20 2d 20 2b 20 36   col2, - ( - + 6
bc90: 38 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  8 ) AS col1 FROM
bca0: 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30   tab0..----..-10
bcb0: 0d 0a 36 38 0d 0a 2d 34 37 0d 0a 36 38 0d 0a 2d  ..68..-47..68..-
bcc0: 39 39 0d 0a 36 38 0d 0a 0d 0a 6f 6e 6c 79 69 66  99..68....onlyif
bcd0: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
bce0: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
bcf0: 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
bd00: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 34 39 0d 0a  sort label-249..
bd10: 53 45 4c 45 43 54 20 2b 20 43 41 53 54 28 20 41  SELECT + CAST( A
bd20: 56 47 20 28 20 41 4c 4c 20 2d 20 2b 20 34 36 20  VG ( ALL - + 46 
bd30: 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53  ) AS SIGNED ) AS
bd40: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
bd50: 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a 0d 0a 73 6b  .----..-46....sk
bd60: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
bd70: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
bd80: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
bd90: 65 6c 2d 32 34 39 0d 0a 53 45 4c 45 43 54 20 2b  el-249..SELECT +
bda0: 20 43 41 53 54 20 28 20 41 56 47 20 28 20 41 4c   CAST ( AVG ( AL
bdb0: 4c 20 2d 20 2b 20 34 36 20 29 20 41 53 20 49 4e  L - + 46 ) AS IN
bdc0: 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 30 20  TEGER ) AS col0 
bdd0: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
bde0: 0a 2d 34 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-46....onlyif m
bdf0: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
be00: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
be10: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
be20: 2d 32 35 30 0d 0a 53 45 4c 45 43 54 20 2b 20 33  -250..SELECT + 3
be30: 31 20 2a 20 2b 20 4d 49 4e 28 20 44 49 53 54 49  1 * + MIN( DISTI
be40: 4e 43 54 20 2b 20 63 6f 6c 30 20 29 20 41 53 20  NCT + col0 ) AS 
be50: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
be60: 2d 2d 2d 2d 0d 0a 34 36 35 0d 0a 0d 0a 73 6b 69  ----..465....ski
be70: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
be80: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
be90: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
bea0: 6c 2d 32 35 30 0d 0a 53 45 4c 45 43 54 20 2b 20  l-250..SELECT + 
beb0: 33 31 20 2a 20 2b 20 4d 49 4e 20 28 20 44 49 53  31 * + MIN ( DIS
bec0: 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20 29 20 41  TINCT + col0 ) A
bed0: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
bee0: 0d 0a 2d 2d 2d 2d 0d 0a 34 36 35 0d 0a 0d 0a 73  ..----..465....s
bef0: 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
bf00: 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
bf10: 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
bf20: 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
bf30: 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
bf40: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
bf50: 2b 20 38 37 20 63 6f 6c 31 20 46 52 4f 4d 20 74  + 87 col1 FROM t
bf60: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 38 37 0d 0a 38  ab1..----..87..8
bf70: 37 0d 0a 38 37 0d 0a 0d 0a 71 75 65 72 79 20 49  7..87....query I
bf80: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
bf90: 20 35 37 20 2a 20 2d 20 2d 20 33 37 20 46 52 4f   57 * - - 37 FRO
bfa0: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31  M tab0..----..21
bfb0: 30 39 0d 0a 32 31 30 39 0d 0a 32 31 30 39 0d 0a  09..2109..2109..
bfc0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
bfd0: 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
bfe0: 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
bff0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
c000: 65 6c 2d 32 35 33 0d 0a 53 45 4c 45 43 54 20 2d  el-253..SELECT -
c010: 20 2b 20 35 32 20 2a 20 43 41 53 54 28 20 4e 55   + 52 * CAST( NU
c020: 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a  LL AS SIGNED ) *
c030: 20 39 37 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   97 AS col0 FROM
c040: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
c050: 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
c060: 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
c070: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
c080: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
c090: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 35  rowsort label-25
c0a0: 33 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 35 32  3..SELECT - + 52
c0b0: 20 2a 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   * CAST ( NULL A
c0c0: 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 39 37  S INTEGER ) * 97
c0d0: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
c0e0: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
c0f0: 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
c100: 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  LL....skipif pos
c110: 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
c120: 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
c130: 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
c140: 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
c150: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
c160: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20  .SELECT ALL - - 
c170: 37 35 2c 20 2d 20 63 6f 6c 31 20 63 6f 6c 31 20  75, - col1 col1 
c180: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
c190: 30 0d 0a 2d 2d 2d 2d 0d 0a 37 35 0d 0a 2d 31 34  0..----..75..-14
c1a0: 0d 0a 37 35 0d 0a 2d 34 37 0d 0a 37 35 0d 0a 2d  ..75..-47..75..-
c1b0: 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  5....skipif post
c1c0: 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
c1d0: 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
c1e0: 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
c1f0: 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
c200: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
c210: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 63  SELECT ALL + + c
c220: 6f 6c 30 20 63 6f 6c 30 2c 20 2b 20 35 37 20 2a  ol0 col0, + 57 *
c230: 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   + col1 FROM tab
c240: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
c250: 0a 34 36 0d 0a 32 39 30 37 0d 0a 36 34 0d 0a 34  .46..2907..64..4
c260: 33 38 39 0d 0a 37 35 0d 0a 33 38 31 39 0d 0a 0d  389..75..3819...
c270: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
c280: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
c290: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
c2a0: 6f 72 74 20 6c 61 62 65 6c 2d 32 35 36 0d 0a 53  ort label-256..S
c2b0: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
c2c0: 20 43 4f 55 4e 54 28 20 41 4c 4c 20 2b 20 2b 20   COUNT( ALL + + 
c2d0: 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 30  col2 ) FROM tab0
c2e0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
c2f0: 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  -3....skipif mys
c300: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
c310: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
c320: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 35 36 0d 0a  sort label-256..
c330: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
c340: 2d 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20 2b 20  - COUNT ( ALL + 
c350: 2b 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61  + col2 ) FROM ta
c360: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
c370: 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..-3....query I 
c380: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
c390: 2d 20 28 20 2d 20 37 36 20 29 20 2a 20 2b 20 31  - ( - 76 ) * + 1
c3a0: 33 20 2d 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 63  3 - - col2 + - c
c3b0: 6f 6c 31 20 2b 20 2b 20 32 39 20 2b 20 2b 20 2b  ol1 + + 29 + + +
c3c0: 20 63 6f 6c 32 20 2b 20 63 6f 6c 32 20 46 52 4f   col2 + col2 FRO
c3d0: 4d 20 74 61 62 31 20 63 6f 72 30 20 57 48 45 52  M tab1 cor0 WHER
c3e0: 45 20 4e 4f 54 20 4e 55 4c 4c 20 3e 3d 20 2b 20  E NOT NULL >= + 
c3f0: 39 37 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  97..----....quer
c400: 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
c410: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
c420: 35 32 20 41 53 20 63 6f 6c 31 2c 20 2d 20 63 6f  52 AS col1, - co
c430: 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
c440: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 32 0d  cor0..----..-52.
c450: 0a 2d 31 30 0d 0a 2d 35 32 0d 0a 2d 34 37 0d 0a  .-10..-52..-47..
c460: 2d 35 32 0d 0a 2d 39 39 0d 0a 0d 0a 6f 6e 6c 79  -52..-99....only
c470: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
c480: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
c490: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
c4a0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 35 39  owsort label-259
c4b0: 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54 28  ..SELECT + CAST(
c4c0: 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
c4d0: 29 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  ) FROM tab1 WHER
c4e0: 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55  E NOT NULL IS NU
c4f0: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70  LL..----....skip
c500: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
c510: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
c520: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
c530: 2d 32 35 39 0d 0a 53 45 4c 45 43 54 20 2b 20 43  -259..SELECT + C
c540: 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
c550: 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62  TEGER ) FROM tab
c560: 31 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  1 WHERE NOT NULL
c570: 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
c580: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
c590: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
c5a0: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
c5b0: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 36 30 0d 0a  sort label-260..
c5c0: 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 4d  SELECT ALL - + M
c5d0: 49 4e 28 20 2b 20 2d 20 63 6f 6c 32 20 29 20 46  IN( + - col2 ) F
c5e0: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
c5f0: 0d 0a 2d 2d 2d 2d 0d 0a 39 39 0d 0a 0d 0a 73 6b  ..----..99....sk
c600: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
c610: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
c620: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
c630: 65 6c 2d 32 36 30 0d 0a 53 45 4c 45 43 54 20 41  el-260..SELECT A
c640: 4c 4c 20 2d 20 2b 20 4d 49 4e 20 28 20 2b 20 2d  LL - + MIN ( + -
c650: 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62   col2 ) FROM tab
c660: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
c670: 0a 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .99....query I r
c680: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
c690: 49 53 54 49 4e 43 54 20 2b 20 38 38 20 2a 20 37  ISTINCT + 88 * 7
c6a0: 36 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  6 AS col1 FROM t
c6b0: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
c6c0: 2d 0d 0a 36 36 38 38 0d 0a 0d 0a 71 75 65 72 79  -..6688....query
c6d0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
c6e0: 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 2a 20  CT ALL - col2 * 
c6f0: 2d 20 37 33 20 2a 20 33 35 20 41 53 20 63 6f 6c  - 73 * 35 AS col
c700: 31 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  1 FROM tab1 cor0
c710: 0d 0a 2d 2d 2d 2d 0d 0a 31 35 30 37 34 35 0d 0a  ..----..150745..
c720: 31 37 33 37 34 30 0d 0a 32 34 35 32 38 30 0d 0a  173740..245280..
c730: 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
c740: 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
c750: 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
c760: 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
c770: 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
c780: 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
c790: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2b  ECT DISTINCT + +
c7a0: 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 31 2c 20   col2 * - col1, 
c7b0: 2d 20 28 20 2b 20 63 6f 6c 31 20 29 20 63 6f 6c  - ( + col1 ) col
c7c0: 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
c7d0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 30 0d  or0..----..-210.
c7e0: 0a 2d 32 31 0d 0a 2d 33 38 30 37 0d 0a 2d 38 31  .-21..-3807..-81
c7f0: 0d 0a 2d 39 39 0d 0a 2d 31 0d 0a 0d 0a 71 75 65  ..-99..-1....que
c800: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
c810: 4c 45 43 54 20 2d 20 38 33 20 2a 20 2b 20 2d 20  LECT - 83 * + - 
c820: 38 39 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  89 FROM tab0..--
c830: 2d 2d 0d 0a 37 33 38 37 0d 0a 37 33 38 37 0d 0a  --..7387..7387..
c840: 37 33 38 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20  7387....query I 
c850: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
c860: 41 4c 4c 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20  ALL - col1 FROM 
c870: 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2d  tab1 WHERE NOT -
c880: 20 2d 20 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e   - col0 IS NOT N
c890: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
c8a0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
c8b0: 4c 45 43 54 20 2b 20 34 39 20 2a 20 2b 20 2b 20  LECT + 49 * + + 
c8c0: 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f  col0 AS col2 FRO
c8d0: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 34  M tab1..----..24
c8e0: 39 39 0d 0a 34 31 36 35 0d 0a 34 34 35 39 0d 0a  99..4165..4459..
c8f0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
c900: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
c910: 43 54 20 63 6f 6c 32 20 2a 20 2b 20 2b 20 35 33  CT col2 * + + 53
c920: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
c930: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 34 39 31 0d 0a  b0..----..2491..
c940: 35 32 34 37 0d 0a 35 33 30 0d 0a 0d 0a 6f 6e 6c  5247..530....onl
c950: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
c960: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
c970: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
c980: 6c 61 62 65 6c 2d 32 36 38 0d 0a 53 45 4c 45 43  label-268..SELEC
c990: 54 20 2d 20 36 37 20 2b 20 2b 20 2d 20 28 20 2b  T - 67 + + - ( +
c9a0: 20 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 46 52   COUNT( * ) ) FR
c9b0: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
c9c0: 37 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  70....skipif mys
c9d0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
c9e0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
c9f0: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 36 38 0d 0a  sort label-268..
ca00: 53 45 4c 45 43 54 20 2d 20 36 37 20 2b 20 2b 20  SELECT - 67 + + 
ca10: 2d 20 28 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  - ( + COUNT ( * 
ca20: 29 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ) ) FROM tab0..-
ca30: 2d 2d 2d 0d 0a 2d 37 30 0d 0a 0d 0a 6f 6e 6c 79  ---..-70....only
ca40: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
ca50: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
ca60: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
ca70: 61 62 65 6c 2d 32 36 39 0d 0a 53 45 4c 45 43 54  abel-269..SELECT
ca80: 20 2b 20 39 33 20 2a 20 35 36 20 2b 20 2d 20 53   + 93 * 56 + - S
ca90: 55 4d 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63  UM( DISTINCT + c
caa0: 6f 6c 31 20 29 20 2b 20 2b 20 2d 20 43 4f 55 4e  ol1 ) + + - COUN
cab0: 54 28 20 2a 20 29 20 63 6f 6c 32 20 46 52 4f 4d  T( * ) col2 FROM
cac0: 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 30   tab0..----..510
cad0: 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  2....skipif mysq
cae0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
caf0: 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
cb00: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
cb10: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
cb20: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
cb30: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
cb40: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
cb50: 65 6c 2d 32 36 39 0d 0a 53 45 4c 45 43 54 20 2b  el-269..SELECT +
cb60: 20 39 33 20 2a 20 35 36 20 2b 20 2d 20 53 55 4d   93 * 56 + - SUM
cb70: 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f   ( DISTINCT + co
cb80: 6c 31 20 29 20 2b 20 2b 20 2d 20 43 4f 55 4e 54  l1 ) + + - COUNT
cb90: 20 28 20 2a 20 29 20 63 6f 6c 32 20 46 52 4f 4d   ( * ) col2 FROM
cba0: 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 30   tab0..----..510
cbb0: 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  2....query I row
cbc0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
cbd0: 54 49 4e 43 54 20 31 34 20 2b 20 63 6f 6c 30 20  TINCT 14 + col0 
cbe0: 2b 20 2b 20 32 34 20 2a 20 2d 20 63 6f 6c 32 20  + + 24 * - col2 
cbf0: 2a 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  * - col2 FROM ta
cc00: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 31 31 30 38 31  b1..----..111081
cc10: 0d 0a 32 32 31 32 34 39 0d 0a 38 33 36 34 33 0d  ..221249..83643.
cc20: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
cc30: 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 38 34 20  rt..SELECT - 84 
cc40: 2b 20 63 6f 6c 32 20 2a 20 31 32 20 41 53 20 63  + col2 * 12 AS c
cc50: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
cc60: 2d 2d 2d 0d 0a 31 30 36 38 0d 0a 36 32 34 0d 0a  ---..1068..624..
cc70: 37 33 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  732....query I r
cc80: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
cc90: 20 32 37 20 2a 20 33 34 20 46 52 4f 4d 20 74 61   27 * 34 FROM ta
cca0: 62 32 20 57 48 45 52 45 20 2d 20 2d 20 63 6f 6c  b2 WHERE - - col
ccb0: 30 20 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  0 = NULL..----..
ccc0: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
ccd0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
cce0: 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  INCT * FROM tab0
ccf0: 20 57 48 45 52 45 20 63 6f 6c 32 20 2d 20 2d 20   WHERE col2 - - 
cd00: 2d 20 63 6f 6c 31 20 3c 20 2d 20 32 37 0d 0a 2d  - col1 < - 27..-
cd10: 2d 2d 2d 0d 0a 31 35 0d 0a 38 31 0d 0a 34 37 0d  ---..15..81..47.
cd20: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
cd30: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
cd40: 4e 43 54 20 2d 20 2d 20 63 6f 6c 31 20 2b 20 37  NCT - - col1 + 7
cd50: 38 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  8 AS col0 FROM t
cd60: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
cd70: 2d 0d 0a 31 35 39 0d 0a 37 39 0d 0a 39 39 0d 0a  -..159..79..99..
cd80: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
cd90: 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
cda0: 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
cdb0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
cdc0: 65 6c 2d 32 37 35 0d 0a 53 45 4c 45 43 54 20 41  el-275..SELECT A
cdd0: 4c 4c 20 63 6f 6c 32 20 44 49 56 20 39 35 20 46  LL col2 DIV 95 F
cde0: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
cdf0: 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  0..0..0....skipi
ce00: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
ce10: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
ce20: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
ce30: 32 37 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  275..SELECT ALL 
ce40: 63 6f 6c 32 20 2f 20 39 35 20 46 52 4f 4d 20 74  col2 / 95 FROM t
ce50: 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d  ab2..----..0..0.
ce60: 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .0....query I ro
ce70: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 28 20  wsort..SELECT ( 
ce80: 28 20 63 6f 6c 32 20 29 20 29 20 46 52 4f 4d 20  ( col2 ) ) FROM 
ce90: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a  tab2..----..23..
cea0: 34 30 0d 0a 35 38 0d 0a 0d 0a 6f 6e 6c 79 69 66  40..58....onlyif
ceb0: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
cec0: 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79  ntax: DECIMAL ty
ced0: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
cee0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 37 37 0d  wsort label-277.
cef0: 0a 53 45 4c 45 43 54 20 2d 20 28 20 63 6f 6c 31  .SELECT - ( col1
cf00: 20 29 20 2f 20 43 41 53 54 28 20 4e 55 4c 4c 20   ) / CAST( NULL 
cf10: 41 53 20 44 45 43 49 4d 41 4c 20 29 20 41 53 20  AS DECIMAL ) AS 
cf20: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col1 FROM tab1..
cf30: 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
cf40: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
cf50: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
cf60: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
cf70: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
cf80: 37 37 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20 63  77..SELECT - ( c
cf90: 6f 6c 31 20 29 20 2f 20 43 41 53 54 20 28 20 4e  ol1 ) / CAST ( N
cfa0: 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 41 53  ULL AS REAL ) AS
cfb0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
cfc0: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
cfd0: 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79  L..NULL....query
cfe0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
cff0: 43 54 20 63 6f 6c 32 20 2a 20 31 35 20 46 52 4f  CT col2 * 15 FRO
d000: 4d 20 74 61 62 31 20 57 48 45 52 45 20 28 20 2b  M tab1 WHERE ( +
d010: 20 63 6f 6c 31 20 2a 20 31 30 20 29 20 49 53 20   col1 * 10 ) IS 
d020: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
d030: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
d040: 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
d050: 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
d060: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
d070: 37 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 31  79..SELECT ALL 1
d080: 36 20 44 49 56 20 2d 20 39 38 20 41 53 20 63 6f  6 DIV - 98 AS co
d090: 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l0 FROM tab1..--
d0a0: 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73  --..0..0..0....s
d0b0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
d0c0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
d0d0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
d0e0: 62 65 6c 2d 32 37 39 0d 0a 53 45 4c 45 43 54 20  bel-279..SELECT 
d0f0: 41 4c 4c 20 31 36 20 2f 20 2d 20 39 38 20 41 53  ALL 16 / - 98 AS
d100: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
d110: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a  .----..0..0..0..
d120: 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
d130: 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
d140: 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
d150: 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
d160: 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
d170: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
d180: 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 2d 20  CT ALL - col0 - 
d190: 2d 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 31 20  - col1 * + col1 
d1a0: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
d1b0: 2d 2d 2d 2d 0d 0a 2d 39 36 0d 0a 33 35 34 0d 0a  ----..-96..354..
d1c0: 36 35 34 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49  6546....query II
d1d0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
d1e0: 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  T * FROM tab2 WH
d1f0: 45 52 45 20 4e 4f 54 20 28 20 35 20 2a 20 63 6f  ERE NOT ( 5 * co
d200: 6c 31 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  l1 ) IS NOT NULL
d210: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
d220: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
d230: 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66  te syntax: DIV f
d240: 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
d250: 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
d260: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38 32  owsort label-282
d270: 0d 0a 53 45 4c 45 43 54 20 33 33 20 44 49 56 20  ..SELECT 33 DIV 
d280: 2b 20 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20  + MAX( DISTINCT 
d290: 2b 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 31  + col0 ) AS col1
d2a0: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
d2b0: 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
d2c0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
d2d0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
d2e0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38 32 0d  wsort label-282.
d2f0: 0a 53 45 4c 45 43 54 20 33 33 20 2f 20 2b 20 4d  .SELECT 33 / + M
d300: 41 58 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20  AX ( DISTINCT + 
d310: 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 31 20 46  col0 ) AS col1 F
d320: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
d330: 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
d340: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
d350: 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 44 49   SIGNED type: DI
d360: 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
d370: 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
d380: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
d390: 32 38 33 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  283..SELECT - co
d3a0: 6c 32 20 44 49 56 20 2d 20 43 41 53 54 28 20 35  l2 DIV - CAST( 5
d3b0: 35 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53  5 AS SIGNED ) AS
d3c0: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
d3d0: 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31 0d 0a 31 0d 0a  .----..1..1..1..
d3e0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
d3f0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
d400: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
d410: 20 6c 61 62 65 6c 2d 32 38 33 0d 0a 53 45 4c 45   label-283..SELE
d420: 43 54 20 2d 20 63 6f 6c 32 20 2f 20 2d 20 43 41  CT - col2 / - CA
d430: 53 54 20 28 20 35 35 20 41 53 20 49 4e 54 45 47  ST ( 55 AS INTEG
d440: 45 52 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  ER ) AS col0 FRO
d450: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 0d  M tab1..----..1.
d460: 0a 31 0d 0a 31 0d 0a 0d 0a 71 75 65 72 79 20 49  .1..1....query I
d470: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
d480: 20 2d 20 28 20 63 6f 6c 30 20 29 20 2a 20 2d 20   - ( col0 ) * - 
d490: 63 6f 6c 30 20 2d 20 2d 20 35 37 20 41 53 20 63  col0 - - 57 AS c
d4a0: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
d4b0: 2d 2d 2d 0d 0a 32 36 35 38 0d 0a 37 32 38 32 0d  ---..2658..7282.
d4c0: 0a 38 33 33 38 0d 0a 0d 0a 71 75 65 72 79 20 49  .8338....query I
d4d0: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
d4e0: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57  CT * FROM tab0 W
d4f0: 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20  HERE NOT ( NULL 
d500: 29 20 3e 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 38  ) > - col2 * + 8
d510: 35 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  5..----....query
d520: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
d530: 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
d540: 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 31  tab1 WHERE NOT 1
d550: 37 20 2a 20 63 6f 6c 31 20 3e 3d 20 32 36 0d 0a  7 * col1 >= 26..
d560: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
d570: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
d580: 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 41 53  DISTINCT col2 AS
d590: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
d5a0: 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c  WHERE NOT ( NULL
d5b0: 20 29 20 42 45 54 57 45 45 4e 20 32 31 20 2a 20   ) BETWEEN 21 * 
d5c0: 2d 20 32 37 20 41 4e 44 20 2d 20 63 6f 6c 30 20  - 27 AND - col0 
d5d0: 2b 20 2d 20 37 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  + - 71..----....
d5e0: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
d5f0: 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
d600: 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20   tab0 WHERE NOT 
d610: 4e 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e  NULL NOT BETWEEN
d620: 20 28 20 2b 20 63 6f 6c 32 20 29 20 41 4e 44 20   ( + col2 ) AND 
d630: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
d640: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
d650: 45 4c 45 43 54 20 63 6f 6c 32 20 2b 20 31 30 20  ELECT col2 + 10 
d660: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
d670: 30 20 57 48 45 52 45 20 34 35 20 3c 20 39 39 0d  0 WHERE 45 < 99.
d680: 0a 2d 2d 2d 2d 0d 0a 31 30 39 0d 0a 32 30 0d 0a  .----..109..20..
d690: 35 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  57....query I ro
d6a0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
d6b0: 63 6f 6c 32 20 2b 20 36 37 20 46 52 4f 4d 20 74  col2 + 67 FROM t
d6c0: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d  ab1..----..-1..-
d6d0: 32 39 0d 0a 38 0d 0a 0d 0a 71 75 65 72 79 20 49  29..8....query I
d6e0: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
d6f0: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57  CT * FROM tab1 W
d700: 48 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e  HERE NULL NOT IN
d710: 20 28 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 31 38   ( - col1 + + 18
d720: 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79   )..----....only
d730: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
d740: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
d750: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
d760: 61 62 65 6c 2d 32 39 32 0d 0a 53 45 4c 45 43 54  abel-292..SELECT
d770: 20 44 49 53 54 49 4e 43 54 20 2b 20 4d 41 58 28   DISTINCT + MAX(
d780: 20 44 49 53 54 49 4e 43 54 20 32 39 20 29 20 2d   DISTINCT 29 ) -
d790: 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
d7a0: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
d7b0: 2d 2d 2d 0d 0a 32 36 0d 0a 0d 0a 73 6b 69 70 69  ---..26....skipi
d7c0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
d7d0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
d7e0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
d7f0: 32 39 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  292..SELECT DIST
d800: 49 4e 43 54 20 2b 20 4d 41 58 20 28 20 44 49 53  INCT + MAX ( DIS
d810: 54 49 4e 43 54 20 32 39 20 29 20 2d 20 43 4f 55  TINCT 29 ) - COU
d820: 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30  NT ( * ) AS col0
d830: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
d840: 0d 0a 32 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..26....onlyif m
d850: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
d860: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
d870: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
d880: 2d 32 39 33 0d 0a 53 45 4c 45 43 54 20 43 4f 55  -293..SELECT COU
d890: 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20  NT( * ) AS col1 
d8a0: 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
d8b0: 2d 20 37 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  - 70 IS NULL..--
d8c0: 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..0....skipif 
d8d0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
d8e0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
d8f0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 39  rowsort label-29
d900: 33 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20  3..SELECT COUNT 
d910: 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ( * ) AS col1 FR
d920: 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 2d 20  OM tab0 WHERE - 
d930: 37 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  70 IS NULL..----
d940: 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..0....onlyif my
d950: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
d960: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
d970: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
d980: 74 20 6c 61 62 65 6c 2d 32 39 34 0d 0a 53 45 4c  t label-294..SEL
d990: 45 43 54 20 41 4c 4c 20 2b 20 38 33 20 41 53 20  ECT ALL + 83 AS 
d9a0: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 57  col0 FROM tab0 W
d9b0: 48 45 52 45 20 28 20 43 41 53 54 28 20 35 37 20  HERE ( CAST( 57 
d9c0: 41 53 20 53 49 47 4e 45 44 20 29 20 29 20 2a 20  AS SIGNED ) ) * 
d9d0: 2b 20 32 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  + 22 IS NULL..--
d9e0: 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
d9f0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
da00: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
da10: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 39 34 0d 0a  sort label-294..
da20: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 38 33 20  SELECT ALL + 83 
da30: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
da40: 30 20 57 48 45 52 45 20 28 20 43 41 53 54 20 28  0 WHERE ( CAST (
da50: 20 35 37 20 41 53 20 49 4e 54 45 47 45 52 20 29   57 AS INTEGER )
da60: 20 29 20 2a 20 2b 20 32 32 20 49 53 20 4e 55 4c   ) * + 22 IS NUL
da70: 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
da80: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
da90: 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
daa0: 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
dab0: 52 45 20 4e 4f 54 20 28 20 63 6f 6c 32 20 2b 20  RE NOT ( col2 + 
dac0: 2d 20 34 20 29 20 3e 20 28 20 63 6f 6c 30 20 2a  - 4 ) > ( col0 *
dad0: 20 2b 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d   + col0 )..----.
dae0: 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
daf0: 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61  g to 75c998aa53a
db00: 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32  c83218cbf2feb962
db10: 64 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49  d0a49....query I
db20: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
db30: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
db40: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
db50: 54 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20 63  T NULL BETWEEN c
db60: 6f 6c 30 20 41 4e 44 20 28 20 4e 55 4c 4c 20 29  ol0 AND ( NULL )
db70: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
db80: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
db90: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
dba0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
dbb0: 65 6c 2d 32 39 37 0d 0a 53 45 4c 45 43 54 20 44  el-297..SELECT D
dbc0: 49 53 54 49 4e 43 54 20 2d 20 4d 41 58 28 20 41  ISTINCT - MAX( A
dbd0: 4c 4c 20 39 32 20 29 20 46 52 4f 4d 20 74 61 62  LL 92 ) FROM tab
dbe0: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
dbf0: 0a 2d 39 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-92....skipif m
dc00: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
dc10: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
dc20: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 39 37  owsort label-297
dc30: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
dc40: 54 20 2d 20 4d 41 58 20 28 20 41 4c 4c 20 39 32  T - MAX ( ALL 92
dc50: 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
dc60: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 32 0d  cor0..----..-92.
dc70: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
dc80: 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
dc90: 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
dca0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
dcb0: 62 65 6c 2d 32 39 38 0d 0a 53 45 4c 45 43 54 20  bel-298..SELECT 
dcc0: 2d 20 38 32 20 44 49 56 20 33 33 20 46 52 4f 4d  - 82 DIV 33 FROM
dcd0: 20 74 61 62 30 20 63 6f 72 30 20 57 48 45 52 45   tab0 cor0 WHERE
dce0: 20 4e 4f 54 20 2d 20 63 6f 6c 32 20 49 53 20 4e   NOT - col2 IS N
dcf0: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 2d  ULL..----..-2..-
dd00: 32 0d 0a 2d 32 0d 0a 0d 0a 73 6b 69 70 69 66 20  2..-2....skipif 
dd10: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
dd20: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
dd30: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 39  rowsort label-29
dd40: 38 0d 0a 53 45 4c 45 43 54 20 2d 20 38 32 20 2f  8..SELECT - 82 /
dd50: 20 33 33 20 46 52 4f 4d 20 74 61 62 30 20 63 6f   33 FROM tab0 co
dd60: 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63  r0 WHERE NOT - c
dd70: 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ol2 IS NULL..---
dd80: 2d 0d 0a 2d 32 0d 0a 2d 32 0d 0a 2d 32 0d 0a 0d  -..-2..-2..-2...
dd90: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
dda0: 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20  ..SELECT + col2 
ddb0: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
ddc0: 32 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  2 cor0 WHERE NOT
ddd0: 20 2d 20 34 35 20 49 53 20 4e 4f 54 20 4e 55 4c   - 45 IS NOT NUL
dde0: 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
ddf0: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
de00: 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
de10: 74 61 62 31 20 57 48 45 52 45 20 4e 55 4c 4c 20  tab1 WHERE NULL 
de20: 4e 4f 54 20 42 45 54 57 45 45 4e 20 2d 20 33 35  NOT BETWEEN - 35
de30: 20 2d 20 2d 20 63 6f 6c 31 20 41 4e 44 20 63 6f   - - col1 AND co
de40: 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  l2..----....only
de50: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
de60: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
de70: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
de80: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 30 31  owsort label-301
de90: 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53 54 28  ..SELECT - CAST(
dea0: 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
deb0: 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
dec0: 61 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f 53  ab1 AS cor0 CROS
ded0: 53 20 4a 4f 49 4e 20 74 61 62 30 0d 0a 2d 2d 2d  S JOIN tab0..---
dee0: 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
def0: 69 6e 67 20 74 6f 20 63 64 37 61 37 39 30 31 65  ing to cd7a7901e
df00: 34 37 63 31 35 31 35 35 34 30 34 61 66 66 30 64  47c15155404aff0d
df10: 32 31 36 66 65 30 62 0d 0a 0d 0a 73 6b 69 70 69  216fe0b....skipi
df20: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
df30: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
df40: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
df50: 33 30 31 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41  301..SELECT - CA
df60: 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
df70: 45 47 45 52 20 29 20 41 53 20 63 6f 6c 32 20 46  EGER ) AS col2 F
df80: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
df90: 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30   CROSS JOIN tab0
dfa0: 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
dfb0: 20 68 61 73 68 69 6e 67 20 74 6f 20 63 64 37 61   hashing to cd7a
dfc0: 37 39 30 31 65 34 37 63 31 35 31 35 35 34 30 34  7901e47c15155404
dfd0: 61 66 66 30 64 32 31 36 66 65 30 62 0d 0a 0d 0a  aff0d216fe0b....
dfe0: 71 75 65 72 79 20 49 49 49 49 49 49 20 72 6f 77  query IIIIII row
dff0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
e000: 52 4f 4d 20 28 20 74 61 62 31 20 41 53 20 63 6f  ROM ( tab1 AS co
e010: 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
e020: 62 31 20 29 20 57 48 45 52 45 20 28 20 4e 55 4c  b1 ) WHERE ( NUL
e030: 4c 20 29 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c  L ) BETWEEN NULL
e040: 20 41 4e 44 20 34 37 0d 0a 2d 2d 2d 2d 0d 0a 0d   AND 47..----...
e050: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
e060: 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
e070: 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48 45 52  M tab2 cor0 WHER
e080: 45 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45  E NULL NOT BETWE
e090: 45 4e 20 2d 20 32 37 20 2b 20 28 20 2b 20 28 20  EN - 27 + ( + ( 
e0a0: 63 6f 6c 31 20 29 20 29 20 41 4e 44 20 4e 55 4c  col1 ) ) AND NUL
e0b0: 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  L..----....skipi
e0c0: 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
e0d0: 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
e0e0: 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
e0f0: 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
e100: 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
e110: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
e120: 49 4e 43 54 20 2d 20 2b 20 63 6f 6c 32 20 2b 20  INCT - + col2 + 
e130: 63 6f 6c 31 20 63 6f 6c 32 20 46 52 4f 4d 20 74  col1 col2 FROM t
e140: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
e150: 2d 0d 0a 32 38 0d 0a 33 37 0d 0a 39 0d 0a 0d 0a  -..28..37..9....
e160: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
e170: 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 41 53 20  .SELECT col0 AS 
e180: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
e190: 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e  S cor0 WHERE ( N
e1a0: 55 4c 4c 20 29 20 4e 4f 54 20 49 4e 20 28 20 2d  ULL ) NOT IN ( -
e1b0: 20 63 6f 6c 32 20 2f 20 2d 20 63 6f 6c 32 20 29   col2 / - col2 )
e1c0: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
e1d0: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
e1e0: 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ECT * FROM tab1 
e1f0: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55  AS cor0 WHERE NU
e200: 4c 4c 20 4e 4f 54 20 49 4e 20 28 20 2d 20 39 34  LL NOT IN ( - 94
e210: 20 2b 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d   + col0 )..----.
e220: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
e230: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
e240: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
e250: 20 57 48 45 52 45 20 63 6f 6c 32 20 2d 20 2b 20   WHERE col2 - + 
e260: 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col2 IS NOT NULL
e270: 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
e280: 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34   hashing to c4b4
e290: 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30  2765dff94eaaa460
e2a0: 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a  40e537fb43b7....
e2b0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
e2c0: 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
e2d0: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
e2e0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
e2f0: 2d 33 30 38 0d 0a 53 45 4c 45 43 54 20 2d 20 63  -308..SELECT - c
e300: 6f 6c 32 20 2a 20 43 41 53 54 28 20 28 20 2b 20  ol2 * CAST( ( + 
e310: 35 38 20 29 20 41 53 20 53 49 47 4e 45 44 20 29  58 ) AS SIGNED )
e320: 20 2b 20 32 20 46 52 4f 4d 20 74 61 62 30 20 41   + 2 FROM tab0 A
e330: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  S cor0..----..-2
e340: 37 32 34 0d 0a 2d 35 37 34 30 0d 0a 2d 35 37 38  724..-5740..-578
e350: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
e360: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
e370: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
e380: 72 74 20 6c 61 62 65 6c 2d 33 30 38 0d 0a 53 45  rt label-308..SE
e390: 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2a 20 43 41  LECT - col2 * CA
e3a0: 53 54 20 28 20 28 20 2b 20 35 38 20 29 20 41 53  ST ( ( + 58 ) AS
e3b0: 20 49 4e 54 45 47 45 52 20 29 20 2b 20 32 20 46   INTEGER ) + 2 F
e3c0: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
e3d0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 37 32 34 0d 0a 2d  ..----..-2724..-
e3e0: 35 37 34 30 0d 0a 2d 35 37 38 0d 0a 0d 0a 6f 6e  5740..-578....on
e3f0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
e400: 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
e410: 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
e420: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
e430: 30 39 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 63  09..SELECT + + c
e440: 6f 6c 32 20 2b 20 2d 20 63 6f 6c 31 20 44 49 56  ol2 + - col1 DIV
e450: 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   - col1 FROM tab
e460: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
e470: 0a 31 30 30 0d 0a 31 31 0d 0a 34 38 0d 0a 0d 0a  .100..11..48....
e480: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
e490: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
e4a0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
e4b0: 61 62 65 6c 2d 33 30 39 0d 0a 53 45 4c 45 43 54  abel-309..SELECT
e4c0: 20 2b 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 63 6f   + + col2 + - co
e4d0: 6c 31 20 2f 20 2d 20 63 6f 6c 31 20 46 52 4f 4d  l1 / - col1 FROM
e4e0: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
e4f0: 2d 2d 2d 0d 0a 31 30 30 0d 0a 31 31 0d 0a 34 38  ---..100..11..48
e500: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
e510: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
e520: 49 4e 43 54 20 37 36 20 2b 20 2b 20 39 39 20 46  INCT 76 + + 99 F
e530: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
e540: 0d 0a 2d 2d 2d 2d 0d 0a 31 37 35 0d 0a 0d 0a 71  ..----..175....q
e550: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
e560: 53 45 4c 45 43 54 20 2b 20 34 36 20 2b 20 2d 20  SELECT + 46 + - 
e570: 34 36 20 2a 20 63 6f 6c 32 20 41 53 20 63 6f 6c  46 * col2 AS col
e580: 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
e590: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 36 36 38  or0..----..-2668
e5a0: 0d 0a 2d 33 30 38 32 0d 0a 2d 34 33 37 30 0d 0a  ..-3082..-4370..
e5b0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
e5c0: 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32  t..SELECT + col2
e5d0: 20 2a 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 63 6f   * + col0 + + co
e5e0: 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72  l1 FROM tab2 cor
e5f0: 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 30 39 0d 0a 32  0..----..1109..2
e600: 36 33 37 0d 0a 34 34 31 37 0d 0a 0d 0a 6f 6e 6c  637..4417....onl
e610: 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
e620: 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
e630: 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
e640: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 31  rowsort label-31
e650: 33 0d 0a 53 45 4c 45 43 54 20 2b 20 39 35 20 2a  3..SELECT + 95 *
e660: 20 2b 20 63 6f 6c 31 20 2b 20 63 6f 6c 30 20 44   + col1 + col0 D
e670: 49 56 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c  IV + col0 AS col
e680: 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  0 FROM tab0 cor0
e690: 0d 0a 2d 2d 2d 2d 0d 0a 31 39 39 36 0d 0a 37 36  ..----..1996..76
e6a0: 39 36 0d 0a 39 36 0d 0a 0d 0a 73 6b 69 70 69 66  96..96....skipif
e6b0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
e6c0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
e6d0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
e6e0: 31 33 0d 0a 53 45 4c 45 43 54 20 2b 20 39 35 20  13..SELECT + 95 
e6f0: 2a 20 2b 20 63 6f 6c 31 20 2b 20 63 6f 6c 30 20  * + col1 + col0 
e700: 2f 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30  / + col0 AS col0
e710: 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d   FROM tab0 cor0.
e720: 0a 2d 2d 2d 2d 0d 0a 31 39 39 36 0d 0a 37 36 39  .----..1996..769
e730: 36 0d 0a 39 36 0d 0a 0d 0a 71 75 65 72 79 20 49  6..96....query I
e740: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
e750: 20 2d 20 33 32 20 2a 20 2b 20 38 35 20 41 53 20   - 32 * + 85 AS 
e760: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 63  col2 FROM tab1 c
e770: 6f 72 30 20 57 48 45 52 45 20 28 20 4e 55 4c 4c  or0 WHERE ( NULL
e780: 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d   ) IS NULL..----
e790: 0d 0a 2d 32 37 32 30 0d 0a 2d 32 37 32 30 0d 0a  ..-2720..-2720..
e7a0: 2d 32 37 32 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -2720....onlyif 
e7b0: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
e7c0: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
e7d0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
e7e0: 6c 2d 33 31 35 0d 0a 53 45 4c 45 43 54 20 41 4c  l-315..SELECT AL
e7f0: 4c 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 4d  L COUNT( * ) + M
e800: 49 4e 28 20 41 4c 4c 20 32 31 20 29 20 2a 20 2d  IN( ALL 21 ) * -
e810: 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d   COUNT( * ) FROM
e820: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
e830: 2d 2d 2d 0d 0a 2d 36 30 0d 0a 0d 0a 73 6b 69 70  ---..-60....skip
e840: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
e850: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
e860: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
e870: 2d 33 31 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -315..SELECT ALL
e880: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 4d   COUNT ( * ) + M
e890: 49 4e 20 28 20 41 4c 4c 20 32 31 20 29 20 2a 20  IN ( ALL 21 ) * 
e8a0: 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52  - COUNT ( * ) FR
e8b0: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
e8c0: 0a 2d 2d 2d 2d 0d 0a 2d 36 30 0d 0a 0d 0a 71 75  .----..-60....qu
e8d0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
e8e0: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
e8f0: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
e900: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
e910: 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20 28 20 63 6f  NULL NOT IN ( co
e920: 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  l1 )..----....on
e930: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
e940: 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
e950: 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
e960: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
e970: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
e980: 2d 33 31 37 0d 0a 53 45 4c 45 43 54 20 2d 20 53  -317..SELECT - S
e990: 55 4d 28 20 44 49 53 54 49 4e 43 54 20 2b 20 2d  UM( DISTINCT + -
e9a0: 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
e9b0: 49 47 4e 45 44 20 29 20 29 20 63 6f 6c 31 20 46  IGNED ) ) col1 F
e9c0: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
e9d0: 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
e9e0: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
e9f0: 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
ea00: 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
ea10: 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
ea20: 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
ea30: 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
ea40: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
ea50: 6c 61 62 65 6c 2d 33 31 37 0d 0a 53 45 4c 45 43  label-317..SELEC
ea60: 54 20 2d 20 53 55 4d 20 28 20 44 49 53 54 49 4e  T - SUM ( DISTIN
ea70: 43 54 20 2b 20 2d 20 43 41 53 54 20 28 20 4e 55  CT + - CAST ( NU
ea80: 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
ea90: 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  ) col1 FROM tab2
eaa0: 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
eab0: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
eac0: 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
ead0: 20 74 61 62 31 20 57 48 45 52 45 20 63 6f 6c 32   tab1 WHERE col2
eae0: 20 2b 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 63 6f   + + col0 * + co
eaf0: 6c 31 20 3e 3d 20 28 20 34 34 20 29 0d 0a 2d 2d  l1 >= ( 44 )..--
eb00: 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
eb10: 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31  hing to c6c0a411
eb20: 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31  1b36d04dbc811a11
eb30: 65 34 64 35 34 63 61 64 0d 0a 0d 0a 6f 6e 6c 79  e4d54cad....only
eb40: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
eb50: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56  gate syntax: DIV
eb60: 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
eb70: 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
eb80: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
eb90: 31 39 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54  19..SELECT COUNT
eba0: 28 20 2a 20 29 20 44 49 56 20 43 4f 55 4e 54 28  ( * ) DIV COUNT(
ebb0: 20 2a 20 29 20 2a 20 38 33 20 41 53 20 63 6f 6c   * ) * 83 AS col
ebc0: 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  0 FROM tab1..---
ebd0: 2d 0d 0a 38 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..83....skipif 
ebe0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
ebf0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
ec00: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 31  rowsort label-31
ec10: 39 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20  9..SELECT COUNT 
ec20: 28 20 2a 20 29 20 2f 20 43 4f 55 4e 54 20 28 20  ( * ) / COUNT ( 
ec30: 2a 20 29 20 2a 20 38 33 20 41 53 20 63 6f 6c 30  * ) * 83 AS col0
ec40: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
ec50: 0d 0a 38 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..83....query I 
ec60: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
ec70: 63 6f 6c 32 20 2a 20 2b 20 2d 20 63 6f 6c 31 20  col2 * + - col1 
ec80: 2a 20 28 20 63 6f 6c 32 20 2a 20 63 6f 6c 30 20  * ( col2 * col0 
ec90: 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  ) FROM tab2..---
eca0: 2d 0d 0a 2d 31 32 34 31 30 33 34 0d 0a 2d 31 36  -..-1241034..-16
ecb0: 39 30 34 31 30 30 0d 0a 2d 37 38 38 34 38 30 30  904100..-7884800
ecc0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
ecd0: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
ece0: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
ecf0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 32 31  owsort label-321
ed00: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
ed10: 54 20 4d 41 58 28 20 2b 20 63 6f 6c 31 20 29 20  T MAX( + col1 ) 
ed20: 2a 20 2d 20 34 39 20 41 53 20 63 6f 6c 30 20 46  * - 49 AS col0 F
ed30: 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
ed40: 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d  OT NULL IS NULL.
ed50: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
ed60: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
ed70: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
ed80: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
ed90: 62 65 6c 2d 33 32 31 0d 0a 53 45 4c 45 43 54 20  bel-321..SELECT 
eda0: 44 49 53 54 49 4e 43 54 20 4d 41 58 20 28 20 2b  DISTINCT MAX ( +
edb0: 20 63 6f 6c 31 20 29 20 2a 20 2d 20 34 39 20 41   col1 ) * - 49 A
edc0: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
edd0: 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
ede0: 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e  IS NULL..----..N
edf0: 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ULL....query III
ee00: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
ee10: 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
ee20: 52 45 20 28 20 4e 55 4c 4c 20 29 20 49 4e 20 28  RE ( NULL ) IN (
ee30: 20 2b 20 38 34 20 2b 20 2b 20 63 6f 6c 32 20 2a   + 84 + + col2 *
ee40: 20 28 20 63 6f 6c 30 20 29 20 29 0d 0a 2d 2d 2d   ( col0 ) )..---
ee50: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
ee60: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
ee70: 54 49 4e 43 54 20 2b 20 37 31 20 2b 20 63 6f 6c  TINCT + 71 + col
ee80: 30 20 2b 20 2b 20 32 20 46 52 4f 4d 20 74 61 62  0 + + 2 FROM tab
ee90: 32 0d 0a 2d 2d 2d 2d 0d 0a 31 31 39 0d 0a 31 33  2..----..119..13
eea0: 37 0d 0a 31 34 38 0d 0a 0d 0a 6f 6e 6c 79 69 66  7..148....onlyif
eeb0: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
eec0: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
eed0: 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
eee0: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 32 34 0d 0a  sort label-324..
eef0: 53 45 4c 45 43 54 20 43 41 53 54 28 20 2b 20 2b  SELECT CAST( + +
ef00: 20 63 6f 6c 32 20 41 53 20 53 49 47 4e 45 44 20   col2 AS SIGNED 
ef10: 29 20 2a 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  ) * col0 FROM ta
ef20: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 37 30 35 0d 0a 38  b0..----..705..8
ef30: 37 30 0d 0a 39 36 30 33 0d 0a 0d 0a 73 6b 69 70  70..9603....skip
ef40: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
ef50: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
ef60: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
ef70: 2d 33 32 34 0d 0a 53 45 4c 45 43 54 20 43 41 53  -324..SELECT CAS
ef80: 54 20 28 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20  T ( + + col2 AS 
ef90: 49 4e 54 45 47 45 52 20 29 20 2a 20 63 6f 6c 30  INTEGER ) * col0
efa0: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
efb0: 0d 0a 37 30 35 0d 0a 38 37 30 0d 0a 39 36 30 33  ..705..870..9603
efc0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
efd0: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
efe0: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
eff0: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
f000: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
f010: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
f020: 4c 45 43 54 20 41 4c 4c 20 39 33 20 2a 20 2b 20  LECT ALL 93 * + 
f030: 63 6f 6c 30 20 63 6f 6c 31 20 46 52 4f 4d 20 74  col0 col1 FROM t
f040: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 39 35 0d  ab0..----..1395.
f050: 0a 38 30 39 31 0d 0a 39 30 32 31 0d 0a 0d 0a 6f  .8091..9021....o
f060: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
f070: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
f080: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
f090: 74 20 6c 61 62 65 6c 2d 33 32 36 0d 0a 53 45 4c  t label-326..SEL
f0a0: 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20 2a  ECT ALL COUNT( *
f0b0: 20 29 20 2b 20 2b 20 2b 20 35 39 20 2b 20 2b 20   ) + + + 59 + + 
f0c0: 36 36 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  66 FROM tab1 AS 
f0d0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 38 0d  cor0..----..128.
f0e0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
f0f0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
f100: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
f110: 74 20 6c 61 62 65 6c 2d 33 32 36 0d 0a 53 45 4c  t label-326..SEL
f120: 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20 28 20  ECT ALL COUNT ( 
f130: 2a 20 29 20 2b 20 2b 20 2b 20 35 39 20 2b 20 2b  * ) + + + 59 + +
f140: 20 36 36 20 46 52 4f 4d 20 74 61 62 31 20 41 53   66 FROM tab1 AS
f150: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 38   cor0..----..128
f160: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
f170: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
f180: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
f190: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 32 37  owsort label-327
f1a0: 0d 0a 53 45 4c 45 43 54 20 2b 20 31 37 20 2d 20  ..SELECT + 17 - 
f1b0: 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2b  - COUNT( * ) * +
f1c0: 20 53 55 4d 28 20 44 49 53 54 49 4e 43 54 20 63   SUM( DISTINCT c
f1d0: 6f 6c 31 20 2b 20 63 6f 6c 31 20 29 20 46 52 4f  ol1 + col1 ) FRO
f1e0: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
f1f0: 2d 2d 2d 2d 0d 0a 31 31 38 37 0d 0a 0d 0a 73 6b  ----..1187....sk
f200: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
f210: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
f220: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
f230: 65 6c 2d 33 32 37 0d 0a 53 45 4c 45 43 54 20 2b  el-327..SELECT +
f240: 20 31 37 20 2d 20 2d 20 43 4f 55 4e 54 20 28 20   17 - - COUNT ( 
f250: 2a 20 29 20 2a 20 2b 20 53 55 4d 20 28 20 44 49  * ) * + SUM ( DI
f260: 53 54 49 4e 43 54 20 63 6f 6c 31 20 2b 20 63 6f  STINCT col1 + co
f270: 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41  l1 ) FROM tab2 A
f280: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31  S cor0..----..11
f290: 38 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  87....onlyif mys
f2a0: 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
f2b0: 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
f2c0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
f2d0: 20 6c 61 62 65 6c 2d 33 32 38 0d 0a 53 45 4c 45   label-328..SELE
f2e0: 43 54 20 44 49 53 54 49 4e 43 54 20 28 20 2b 20  CT DISTINCT ( + 
f2f0: 63 6f 6c 32 20 29 20 2b 20 2b 20 35 38 20 44 49  col2 ) + + 58 DI
f300: 56 20 39 30 20 46 52 4f 4d 20 74 61 62 30 20 41  V 90 FROM tab0 A
f310: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30  S cor0..----..10
f320: 0d 0a 34 37 0d 0a 39 39 0d 0a 0d 0a 73 6b 69 70  ..47..99....skip
f330: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
f340: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
f350: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
f360: 2d 33 32 38 0d 0a 53 45 4c 45 43 54 20 44 49 53  -328..SELECT DIS
f370: 54 49 4e 43 54 20 28 20 2b 20 63 6f 6c 32 20 29  TINCT ( + col2 )
f380: 20 2b 20 2b 20 35 38 20 2f 20 39 30 20 46 52 4f   + + 58 / 90 FRO
f390: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
f3a0: 2d 2d 2d 2d 0d 0a 31 30 0d 0a 34 37 0d 0a 39 39  ----..10..47..99
f3b0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
f3c0: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
f3d0: 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
f3e0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
f3f0: 61 62 65 6c 2d 33 32 39 0d 0a 53 45 4c 45 43 54  abel-329..SELECT
f400: 20 41 4c 4c 20 2b 20 2b 20 43 41 53 54 28 20 33   ALL + + CAST( 3
f410: 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2b   AS SIGNED ) * +
f420: 20 63 6f 6c 32 20 2b 20 63 6f 6c 32 20 41 53 20   col2 + col2 AS 
f430: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
f440: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36  S cor0..----..16
f450: 30 0d 0a 32 33 32 0d 0a 39 32 0d 0a 0d 0a 73 6b  0..232..92....sk
f460: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
f470: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
f480: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
f490: 65 6c 2d 33 32 39 0d 0a 53 45 4c 45 43 54 20 41  el-329..SELECT A
f4a0: 4c 4c 20 2b 20 2b 20 43 41 53 54 20 28 20 33 20  LL + + CAST ( 3 
f4b0: 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2b  AS INTEGER ) * +
f4c0: 20 63 6f 6c 32 20 2b 20 63 6f 6c 32 20 41 53 20   col2 + col2 AS 
f4d0: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
f4e0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36  S cor0..----..16
f4f0: 30 0d 0a 32 33 32 0d 0a 39 32 0d 0a 0d 0a 71 75  0..232..92....qu
f500: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
f510: 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2a 20 2d  ELECT + col2 * -
f520: 20 33 35 20 2a 20 37 20 2d 20 63 6f 6c 30 20 46   35 * 7 - col0 F
f530: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
f540: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 32 38 35 0d 0a  ..----..-14285..
f550: 2d 35 36 38 31 0d 0a 2d 39 38 36 34 0d 0a 0d 0a  -5681..-9864....
f560: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
f570: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
f580: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
f590: 72 74 20 6c 61 62 65 6c 2d 33 33 31 0d 0a 53 45  rt label-331..SE
f5a0: 4c 45 43 54 20 41 4c 4c 20 2d 20 31 30 20 2a 20  LECT ALL - 10 * 
f5b0: 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  - + COUNT( * ) F
f5c0: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
f5d0: 33 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  30....skipif mys
f5e0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
f5f0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
f600: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 33 31 0d 0a  sort label-331..
f610: 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 31 30 20  SELECT ALL - 10 
f620: 2a 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  * - + COUNT ( * 
f630: 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  ) FROM tab2..---
f640: 2d 0d 0a 33 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -..30....onlyif 
f650: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
f660: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
f670: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
f680: 6c 2d 33 33 32 0d 0a 53 45 4c 45 43 54 20 2b 20  l-332..SELECT + 
f690: 31 38 20 2b 20 2d 20 2b 20 4d 41 58 28 20 2b 20  18 + - + MAX( + 
f6a0: 63 6f 6c 31 20 29 20 2b 20 2b 20 43 4f 55 4e 54  col1 ) + + COUNT
f6b0: 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ( * ) AS col2 FR
f6c0: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
f6d0: 36 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  60....skipif mys
f6e0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
f6f0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
f700: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 33 32 0d 0a  sort label-332..
f710: 53 45 4c 45 43 54 20 2b 20 31 38 20 2b 20 2d 20  SELECT + 18 + - 
f720: 2b 20 4d 41 58 20 28 20 2b 20 63 6f 6c 31 20 29  + MAX ( + col1 )
f730: 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29   + + COUNT ( * )
f740: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
f750: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 30 0d 0a 0d  b0..----..-60...
f760: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
f770: 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
f780: 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
f790: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
f7a0: 6c 2d 33 33 33 0d 0a 53 45 4c 45 43 54 20 41 4c  l-333..SELECT AL
f7b0: 4c 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 2b 20 63  L - col1 * + + c
f7c0: 6f 6c 31 20 2a 20 31 20 44 49 56 20 2b 20 31 20  ol1 * 1 DIV + 1 
f7d0: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
f7e0: 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 36 30 31 0d 0a  2..----..-2601..
f7f0: 2d 34 34 38 39 0d 0a 2d 35 39 32 39 0d 0a 0d 0a  -4489..-5929....
f800: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
f810: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
f820: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
f830: 61 62 65 6c 2d 33 33 33 0d 0a 53 45 4c 45 43 54  abel-333..SELECT
f840: 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 2a 20 2b 20   ALL - col1 * + 
f850: 2b 20 63 6f 6c 31 20 2a 20 31 20 2f 20 2b 20 31  + col1 * 1 / + 1
f860: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
f870: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 36 30 31 0d  b2..----..-2601.
f880: 0a 2d 34 34 38 39 0d 0a 2d 35 39 32 39 0d 0a 0d  .-4489..-5929...
f890: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
f8a0: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
f8b0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
f8c0: 6f 72 74 20 6c 61 62 65 6c 2d 33 33 34 0d 0a 53  ort label-334..S
f8d0: 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e  ELECT ALL + COUN
f8e0: 54 28 20 2a 20 29 20 63 6f 6c 30 20 46 52 4f 4d  T( * ) col0 FROM
f8f0: 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 43 52   tab1 AS cor0 CR
f900: 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53  OSS JOIN tab0 AS
f910: 20 63 6f 72 31 20 57 48 45 52 45 20 4e 55 4c 4c   cor1 WHERE NULL
f920: 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
f930: 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..0....skipif 
f940: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
f950: 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70  atible..skipif p
f960: 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
f970: 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
f980: 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
f990: 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
f9a0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
f9b0: 20 6c 61 62 65 6c 2d 33 33 34 0d 0a 53 45 4c 45   label-334..SELE
f9c0: 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 20 28  CT ALL + COUNT (
f9d0: 20 2a 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74   * ) col0 FROM t
f9e0: 61 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f 53  ab1 AS cor0 CROS
f9f0: 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63  S JOIN tab0 AS c
fa00: 6f 72 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 49  or1 WHERE NULL I
fa10: 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
fa20: 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..0....onlyif my
fa30: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
fa40: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
fa50: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
fa60: 2d 33 33 35 0d 0a 53 45 4c 45 43 54 20 43 4f 55  -335..SELECT COU
fa70: 4e 54 28 20 2a 20 29 2c 20 2b 20 43 4f 55 4e 54  NT( * ), + COUNT
fa80: 28 20 2d 20 35 30 20 29 20 46 52 4f 4d 20 74 61  ( - 50 ) FROM ta
fa90: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 33 0d 0a  b2..----..3..3..
faa0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
fab0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
fac0: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
fad0: 74 20 6c 61 62 65 6c 2d 33 33 35 0d 0a 53 45 4c  t label-335..SEL
fae0: 45 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 2c  ECT COUNT ( * ),
faf0: 20 2b 20 43 4f 55 4e 54 20 28 20 2d 20 35 30 20   + COUNT ( - 50 
fb00: 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  ) FROM tab2..---
fb10: 2d 0d 0a 33 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79  -..3..3....query
fb20: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
fb30: 43 54 20 2b 20 35 37 20 2a 20 2b 20 32 20 46 52  CT + 57 * + 2 FR
fb40: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
fb50: 0a 2d 2d 2d 2d 0d 0a 31 31 34 0d 0a 31 31 34 0d  .----..114..114.
fb60: 0a 31 31 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .114....onlyif m
fb70: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
fb80: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
fb90: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
fba0: 2d 33 33 37 0d 0a 53 45 4c 45 43 54 20 33 37 20  -337..SELECT 37 
fbb0: 2a 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  * + + COUNT( * )
fbc0: 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20   + + COUNT( * ) 
fbd0: 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41  + - COUNT( * ) A
fbe0: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
fbf0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
fc00: 31 31 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  111....skipif my
fc10: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
fc20: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
fc30: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 33 37 0d  wsort label-337.
fc40: 0a 53 45 4c 45 43 54 20 33 37 20 2a 20 2b 20 2b  .SELECT 37 * + +
fc50: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2b   COUNT ( * ) + +
fc60: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2d   COUNT ( * ) + -
fc70: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
fc80: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
fc90: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31  S cor0..----..11
fca0: 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
fcb0: 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
fcc0: 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
fcd0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
fce0: 6c 61 62 65 6c 2d 33 33 38 0d 0a 53 45 4c 45 43  label-338..SELEC
fcf0: 54 20 2d 20 2b 20 39 33 20 44 49 56 20 2b 20 39  T - + 93 DIV + 9
fd00: 32 20 2b 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20  2 + + col1 FROM 
fd10: 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
fd20: 2d 2d 0d 0a 30 0d 0a 32 30 0d 0a 38 30 0d 0a 0d  --..0..20..80...
fd30: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
fd40: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
fd50: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
fd60: 6c 61 62 65 6c 2d 33 33 38 0d 0a 53 45 4c 45 43  label-338..SELEC
fd70: 54 20 2d 20 2b 20 39 33 20 2f 20 2b 20 39 32 20  T - + 93 / + 92 
fd80: 2b 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  + + col1 FROM ta
fd90: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
fda0: 0d 0a 30 0d 0a 32 30 0d 0a 38 30 0d 0a 0d 0a 71  ..0..20..80....q
fdb0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
fdc0: 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2a 20  SELECT - col0 * 
fdd0: 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46  + col2 AS col1 F
fde0: 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48  ROM tab2 cor0 WH
fdf0: 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20  ERE NOT NULL IS 
fe00: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
fe10: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
fe20: 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
fe30: 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
fe40: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
fe50: 34 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  40..SELECT ALL +
fe60: 20 2d 20 35 33 20 44 49 56 20 2d 20 63 6f 6c 30   - 53 DIV - col0
fe70: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
fe80: 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30  b1 cor0..----..0
fe90: 0d 0a 30 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66  ..0..1....skipif
fea0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
feb0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
fec0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
fed0: 34 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  40..SELECT ALL +
fee0: 20 2d 20 35 33 20 2f 20 2d 20 63 6f 6c 30 20 41   - 53 / - col0 A
fef0: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
ff00: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   cor0..----..0..
ff10: 30 0d 0a 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  0..1....onlyif m
ff20: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
ff30: 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
ff40: 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77   ..query III row
ff50: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 34 31 0d 0a  sort label-341..
ff60: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
ff70: 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  * FROM tab0 AS c
ff80: 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 32 20 3c  or0 WHERE col2 <
ff90: 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
ffa0: 49 47 4e 45 44 20 29 20 2b 20 2b 20 63 6f 6c 31  IGNED ) + + col1
ffb0: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
ffc0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
ffd0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
ffe0: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
fff0: 2d 33 34 31 0d 0a 53 45 4c 45 43 54 20 44 49 53  -341..SELECT DIS
10000 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
10010 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
10020 63 6f 6c 32 20 3c 20 43 41 53 54 20 28 20 4e 55  col2 < CAST ( NU
10030 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
10040 2b 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a  + + col1..----..
10050 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
10060 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30  t..SELECT + col0
10070 20 2a 20 2d 20 2b 20 63 6f 6c 32 20 2b 20 63 6f   * - + col2 + co
10080 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  l1 FROM tab1 cor
10090 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 38 38 32 0d 0a  0..----..-4882..
100a0 2d 35 30 31 30 0d 0a 2d 36 31 34 31 0d 0a 0d 0a  -5010..-6141....
100b0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
100c0 0a 53 45 4c 45 43 54 20 2d 20 31 36 20 2f 20 36  .SELECT - 16 / 6
100d0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
100e0 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  r0 WHERE NOT NUL
100f0 4c 20 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  L = NULL..----..
10100 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
10110 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
10120 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
10130 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
10140 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
10150 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
10160 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 38 32  CT DISTINCT - 82
10170 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
10180 0a 2d 2d 2d 2d 0d 0a 2d 38 32 0d 0a 0d 0a 6f 6e  .----..-82....on
10190 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
101a0 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
101b0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
101c0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
101d0 34 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  45..SELECT ALL +
101e0 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52   col0 AS col1 FR
101f0 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 43 41  OM tab1 WHERE CA
10200 53 54 28 20 2d 20 2b 20 63 6f 6c 30 20 41 53 20  ST( - + col0 AS 
10210 53 49 47 4e 45 44 20 29 20 42 45 54 57 45 45 4e  SIGNED ) BETWEEN
10220 20 4e 55 4c 4c 20 41 4e 44 20 28 20 4e 55 4c 4c   NULL AND ( NULL
10230 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70   )..----....skip
10240 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
10250 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
10260 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
10270 2d 33 34 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -345..SELECT ALL
10280 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20   + col0 AS col1 
10290 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
102a0 43 41 53 54 20 28 20 2d 20 2b 20 63 6f 6c 30 20  CAST ( - + col0 
102b0 41 53 20 49 4e 54 45 47 45 52 20 29 20 42 45 54  AS INTEGER ) BET
102c0 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 28 20  WEEN NULL AND ( 
102d0 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  NULL )..----....
102e0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
102f0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
10300 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
10310 72 74 20 6c 61 62 65 6c 2d 33 34 36 0d 0a 53 45  rt label-346..SE
10320 4c 45 43 54 20 53 55 4d 28 20 31 33 20 29 20 41  LECT SUM( 13 ) A
10330 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
10340 0d 0a 2d 2d 2d 2d 0d 0a 33 39 0d 0a 0d 0a 73 6b  ..----..39....sk
10350 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
10360 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
10370 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
10380 65 6c 2d 33 34 36 0d 0a 53 45 4c 45 43 54 20 53  el-346..SELECT S
10390 55 4d 20 28 20 31 33 20 29 20 41 53 20 63 6f 6c  UM ( 13 ) AS col
103a0 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
103b0 2d 0d 0a 33 39 0d 0a 0d 0a 71 75 65 72 79 20 49  -..39....query I
103c0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
103d0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41  CT * FROM tab1 A
103e0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
103f0 20 2d 20 35 35 20 2a 20 2b 20 2d 20 35 34 20 49   - 55 * + - 54 I
10400 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
10410 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
10420 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
10430 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  L * FROM tab0 co
10440 72 30 20 57 48 45 52 45 20 28 20 4e 4f 54 20 2b  r0 WHERE ( NOT +
10450 20 37 37 20 2a 20 37 33 20 49 4e 20 28 20 63 6f   77 * 73 IN ( co
10460 6c 30 20 2a 20 2b 20 63 6f 6c 31 20 29 20 29 0d  l0 * + col1 ) ).
10470 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
10480 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32  hashing to c4b42
10490 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34  765dff94eaaa4604
104a0 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71  0e537fb43b7....q
104b0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
104c0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
104d0 2b 20 35 39 20 41 53 20 63 6f 6c 32 20 46 52 4f  + 59 AS col2 FRO
104e0 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
104f0 2d 0d 0a 35 39 0d 0a 0d 0a 71 75 65 72 79 20 49  -..59....query I
10500 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
10510 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30   DISTINCT - col0
10520 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
10530 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  r0 WHERE NOT col
10540 30 20 42 45 54 57 45 45 4e 20 28 20 63 6f 6c 31  0 BETWEEN ( col1
10550 20 29 20 41 4e 44 20 33 31 0d 0a 2d 2d 2d 2d 0d   ) AND 31..----.
10560 0a 2d 35 31 0d 0a 2d 38 35 0d 0a 2d 39 31 0d 0a  .-51..-85..-91..
10570 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
10580 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
10590 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
105a0 73 6f 72 74 20 6c 61 62 65 6c 2d 33 35 31 0d 0a  sort label-351..
105b0 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28 20  SELECT - COUNT( 
105c0 44 49 53 54 49 4e 43 54 20 38 30 20 29 20 41 53  DISTINCT 80 ) AS
105d0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
105e0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a  cor0..----..-1..
105f0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
10600 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
10610 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
10620 20 6c 61 62 65 6c 2d 33 35 31 0d 0a 53 45 4c 45   label-351..SELE
10630 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 44 49 53  CT - COUNT ( DIS
10640 54 49 4e 43 54 20 38 30 20 29 20 41 53 20 63 6f  TINCT 80 ) AS co
10650 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  l2 FROM tab1 cor
10660 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 73  0..----..-1....s
10670 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
10680 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
10690 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
106a0 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
106b0 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49  olumns..query II
106c0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
106d0 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30   DISTINCT - col0
106e0 20 2b 20 63 6f 6c 32 20 2d 20 35 38 20 41 53 20   + col2 - 58 AS 
106f0 63 6f 6c 30 2c 20 63 6f 6c 32 20 63 6f 6c 32 20  col0, col2 col2 
10700 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
10710 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 0d 0a 39 36  0..----..-13..96
10720 0d 0a 2d 38 31 0d 0a 36 38 0d 0a 2d 38 34 0d 0a  ..-81..68..-84..
10730 35 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  59....onlyif mys
10740 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
10750 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20  : DECIMAL type: 
10760 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
10770 74 20 6c 61 62 65 6c 2d 33 35 33 0d 0a 53 45 4c  t label-353..SEL
10780 45 43 54 20 2d 20 32 30 20 2a 20 2b 20 43 41 53  ECT - 20 * + CAS
10790 54 28 20 2b 20 32 31 20 41 53 20 44 45 43 49 4d  T( + 21 AS DECIM
107a0 41 4c 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  AL ) AS col2 FRO
107b0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
107c0 48 45 52 45 20 63 6f 6c 32 20 49 53 20 4e 55 4c  HERE col2 IS NUL
107d0 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  L..----....skipi
107e0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
107f0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
10800 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
10810 33 35 33 0d 0a 53 45 4c 45 43 54 20 2d 20 32 30  353..SELECT - 20
10820 20 2a 20 2b 20 43 41 53 54 20 28 20 2b 20 32 31   * + CAST ( + 21
10830 20 41 53 20 52 45 41 4c 20 29 20 41 53 20 63 6f   AS REAL ) AS co
10840 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
10850 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 32 20  cor0 WHERE col2 
10860 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
10870 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
10880 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
10890 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
108a0 6f 72 74 20 6c 61 62 65 6c 2d 33 35 34 0d 0a 53  ort label-354..S
108b0 45 4c 45 43 54 20 41 4c 4c 20 2d 20 39 31 20 2b  ELECT ALL - 91 +
108c0 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20   + - COUNT( * ) 
108d0 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a  FROM tab2 cor0..
108e0 2d 2d 2d 2d 0d 0a 2d 39 34 0d 0a 0d 0a 73 6b 69  ----..-94....ski
108f0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
10900 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
10910 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
10920 6c 2d 33 35 34 0d 0a 53 45 4c 45 43 54 20 41 4c  l-354..SELECT AL
10930 4c 20 2d 20 39 31 20 2b 20 2b 20 2d 20 43 4f 55  L - 91 + + - COU
10940 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  NT ( * ) FROM ta
10950 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b2 cor0..----..-
10960 39 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  94....query III 
10970 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
10980 2a 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  * FROM tab2 cor0
10990 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20   WHERE ( NULL ) 
109a0 3c 3d 20 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d  <= + col2..----.
109b0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
109c0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
109d0 20 28 20 2d 20 2b 20 33 33 20 29 20 46 52 4f 4d   ( - + 33 ) FROM
109e0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 33   tab0..----..-33
109f0 0d 0a 2d 33 33 0d 0a 2d 33 33 0d 0a 0d 0a 6f 6e  ..-33..-33....on
10a00 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
10a10 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
10a20 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
10a30 74 20 6c 61 62 65 6c 2d 33 35 37 0d 0a 53 45 4c  t label-357..SEL
10a40 45 43 54 20 44 49 53 54 49 4e 43 54 20 35 39 20  ECT DISTINCT 59 
10a50 41 53 20 63 6f 6c 30 2c 20 2b 20 37 35 20 2a 20  AS col0, + 75 * 
10a60 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f  - COUNT( * ) FRO
10a70 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 39  M tab2..----..59
10a80 0d 0a 2d 32 32 35 0d 0a 0d 0a 73 6b 69 70 69 66  ..-225....skipif
10a90 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
10aa0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
10ab0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
10ac0 33 35 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  357..SELECT DIST
10ad0 49 4e 43 54 20 35 39 20 41 53 20 63 6f 6c 30 2c  INCT 59 AS col0,
10ae0 20 2b 20 37 35 20 2a 20 2d 20 43 4f 55 4e 54 20   + 75 * - COUNT 
10af0 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 0d  ( * ) FROM tab2.
10b00 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 2d 32 32 35 0d  .----..59..-225.
10b10 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
10b20 72 74 0d 0a 53 45 4c 45 43 54 20 37 38 20 2b 20  rt..SELECT 78 + 
10b30 38 37 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  87 FROM tab1..--
10b40 2d 2d 0d 0a 31 36 35 0d 0a 31 36 35 0d 0a 31 36  --..165..165..16
10b50 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  5....query II ro
10b60 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
10b70 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 2a 20  STINCT + col1 * 
10b80 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 2c 20  + col2 AS col2, 
10b90 2d 20 37 34 20 2b 20 2d 20 63 6f 6c 30 20 41 53  - 74 + - col0 AS
10ba0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
10bb0 0a 2d 2d 2d 2d 0d 0a 31 33 34 34 0d 0a 2d 31 32  .----..1344..-12
10bc0 35 0d 0a 32 39 35 0d 0a 2d 31 35 39 0d 0a 33 31  5..295..-159..31
10bd0 39 36 0d 0a 2d 31 36 35 0d 0a 0d 0a 71 75 65 72  96..-165....quer
10be0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
10bf0 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
10c00 31 20 57 48 45 52 45 20 2b 20 63 6f 6c 30 20 4e  1 WHERE + col0 N
10c10 4f 54 20 42 45 54 57 45 45 4e 20 28 20 2b 20 32  OT BETWEEN ( + 2
10c20 33 20 29 20 41 4e 44 20 2d 20 28 20 2d 20 38 34  3 ) AND - ( - 84
10c30 20 29 20 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d   ) + col2..----.
10c40 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
10c50 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
10c60 20 28 20 2d 20 39 30 20 29 20 41 53 20 63 6f 6c   ( - 90 ) AS col
10c70 31 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  1 FROM tab2 WHER
10c80 45 20 4e 4f 54 20 2b 20 2b 20 28 20 2b 20 2d 20  E NOT + + ( + - 
10c90 37 37 20 29 20 2a 20 2b 20 63 6f 6c 31 20 3e 3d  77 ) * + col1 >=
10ca0 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d   ( NULL )..----.
10cb0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
10cc0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
10cd0 20 31 30 20 2a 20 2d 20 2b 20 30 20 46 52 4f 4d   10 * - + 0 FROM
10ce0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   tab2..----..0..
10cf0 30 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  0..0....query I 
10d00 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
10d10 63 6f 6c 30 20 2b 20 2d 20 2b 20 36 37 20 46 52  col0 + - + 67 FR
10d20 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
10d30 31 36 0d 0a 31 38 0d 0a 32 34 0d 0a 0d 0a 6f 6e  16..18..24....on
10d40 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
10d50 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
10d60 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
10d70 20 6c 61 62 65 6c 2d 33 36 34 0d 0a 53 45 4c 45   label-364..SELE
10d80 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52  CT COUNT( * ) FR
10d90 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 34 32  OM tab2 WHERE 42
10da0 20 2a 20 2d 20 2b 20 63 6f 6c 32 20 2a 20 2d 20   * - + col2 * - 
10db0 63 6f 6c 30 20 42 45 54 57 45 45 4e 20 2d 20 63  col0 BETWEEN - c
10dc0 6f 6c 31 20 2a 20 31 36 20 41 4e 44 20 4e 55 4c  ol1 * 16 AND NUL
10dd0 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b  L..----..0....sk
10de0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
10df0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
10e00 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
10e10 65 6c 2d 33 36 34 0d 0a 53 45 4c 45 43 54 20 43  el-364..SELECT C
10e20 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20  OUNT ( * ) FROM 
10e30 74 61 62 32 20 57 48 45 52 45 20 34 32 20 2a 20  tab2 WHERE 42 * 
10e40 2d 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c  - + col2 * - col
10e50 30 20 42 45 54 57 45 45 4e 20 2d 20 63 6f 6c 31  0 BETWEEN - col1
10e60 20 2a 20 31 36 20 41 4e 44 20 4e 55 4c 4c 0d 0a   * 16 AND NULL..
10e70 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79  ----..0....query
10e80 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
10e90 43 54 20 41 4c 4c 20 2b 20 36 30 20 41 53 20 63  CT ALL + 60 AS c
10ea0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 57 48  ol0 FROM tab0 WH
10eb0 45 52 45 20 4e 4f 54 20 2b 20 2b 20 63 6f 6c 30  ERE NOT + + col0
10ec0 20 2a 20 2b 20 63 6f 6c 31 20 49 53 20 4e 4f 54   * + col1 IS NOT
10ed0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
10ee0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
10ef0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
10f00 2b 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c  + - col2 + - col
10f10 30 20 2b 20 63 6f 6c 31 20 2d 20 2d 20 63 6f 6c  0 + col1 - - col
10f20 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  1 AS col0 FROM t
10f30 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
10f40 2d 0d 0a 2d 31 31 39 0d 0a 2d 31 33 34 0d 0a 2d  -..-119..-134..-
10f50 36 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  65....onlyif mys
10f60 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
10f70 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
10f80 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
10f90 20 6c 61 62 65 6c 2d 33 36 37 0d 0a 53 45 4c 45   label-367..SELE
10fa0 43 54 20 41 4c 4c 20 63 6f 6c 32 20 2a 20 2b 20  CT ALL col2 * + 
10fb0 2d 20 43 41 53 54 28 20 35 38 20 41 53 20 53 49  - CAST( 58 AS SI
10fc0 47 4e 45 44 20 29 20 2d 20 2b 20 33 20 2b 20 38  GNED ) - + 3 + 8
10fd0 34 20 2a 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c  4 * col1 * + col
10fe0 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  2 AS col2 FROM t
10ff0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
11000 2d 0d 0a 31 37 30 35 37 0d 0a 32 35 37 31 0d 0a  -..17057..2571..
11010 33 31 37 30 35 39 0d 0a 0d 0a 73 6b 69 70 69 66  317059....skipif
11020 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
11030 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
11040 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
11050 36 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63  67..SELECT ALL c
11060 6f 6c 32 20 2a 20 2b 20 2d 20 43 41 53 54 20 28  ol2 * + - CAST (
11070 20 35 38 20 41 53 20 49 4e 54 45 47 45 52 20 29   58 AS INTEGER )
11080 20 2d 20 2b 20 33 20 2b 20 38 34 20 2a 20 63 6f   - + 3 + 84 * co
11090 6c 31 20 2a 20 2b 20 63 6f 6c 32 20 41 53 20 63  l1 * + col2 AS c
110a0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
110b0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37 30   cor0..----..170
110c0 35 37 0d 0a 32 35 37 31 0d 0a 33 31 37 30 35 39  57..2571..317059
110d0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
110e0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
110f0 49 4e 43 54 20 36 39 20 2b 20 2d 20 63 6f 6c 32  INCT 69 + - col2
11100 20 2a 20 2b 20 2d 20 30 20 41 53 20 63 6f 6c 32   * + - 0 AS col2
11110 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
11120 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 39 0d 0a 0d 0a  r0..----..69....
11130 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
11140 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
11150 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
11160 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
11170 2d 33 36 39 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  -369..SELECT col
11180 31 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  1 col2 FROM tab0
11190 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 2b 20 63   WHERE NOT - + c
111a0 6f 6c 31 20 2a 20 2d 20 2b 20 43 41 53 54 28 20  ol1 * - + CAST( 
111b0 2d 20 2b 20 63 6f 6c 30 20 41 53 20 53 49 47 4e  - + col0 AS SIGN
111c0 45 44 20 29 20 2a 20 63 6f 6c 31 20 2f 20 2d 20  ED ) * col1 / - 
111d0 2b 20 36 33 20 49 4e 20 28 20 63 6f 6c 30 20 2f  + 63 IN ( col0 /
111e0 20 2d 20 38 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 31   - 80 )..----..1
111f0 0d 0a 32 31 0d 0a 38 31 0d 0a 0d 0a 73 6b 69 70  ..21..81....skip
11200 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
11210 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
11220 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
11230 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
11240 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
11250 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
11260 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
11270 6f 72 74 20 6c 61 62 65 6c 2d 33 36 39 0d 0a 53  ort label-369..S
11280 45 4c 45 43 54 20 63 6f 6c 31 20 63 6f 6c 32 20  ELECT col1 col2 
11290 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
112a0 4e 4f 54 20 2d 20 2b 20 63 6f 6c 31 20 2a 20 2d  NOT - + col1 * -
112b0 20 2b 20 43 41 53 54 20 28 20 2d 20 2b 20 63 6f   + CAST ( - + co
112c0 6c 30 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  l0 AS INTEGER ) 
112d0 2a 20 63 6f 6c 31 20 2f 20 2d 20 2b 20 36 33 20  * col1 / - + 63 
112e0 49 4e 20 28 20 63 6f 6c 30 20 2f 20 2d 20 38 30  IN ( col0 / - 80
112f0 20 29 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 32 31 0d   )..----..1..21.
11300 0a 38 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  .81....query III
11310 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
11320 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31   ALL * FROM tab1
11330 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 32 31 20   WHERE NOT + 21 
11340 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  IS NULL..----..9
11350 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
11360 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64  to c6c0a4111b36d
11370 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34  04dbc811a11e4d54
11380 63 61 64 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  cad....onlyif my
11390 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
113a0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
113b0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
113c0 33 37 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  371..SELECT DIST
113d0 49 4e 43 54 20 2d 20 28 20 43 4f 55 4e 54 28 20  INCT - ( COUNT( 
113e0 2a 20 29 20 29 20 41 53 20 63 6f 6c 30 20 46 52  * ) ) AS col0 FR
113f0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
11400 57 48 45 52 45 20 4e 4f 54 20 2d 20 35 31 20 49  WHERE NOT - 51 I
11410 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  S NULL..----..-3
11420 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
11430 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
11440 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
11450 72 74 20 6c 61 62 65 6c 2d 33 37 31 0d 0a 53 45  rt label-371..SE
11460 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
11470 28 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29 20  ( COUNT ( * ) ) 
11480 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
11490 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
114a0 4e 4f 54 20 2d 20 35 31 20 49 53 20 4e 55 4c 4c  NOT - 51 IS NULL
114b0 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75  ..----..-3....qu
114c0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
114d0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
114e0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
114f0 57 48 45 52 45 20 4e 4f 54 20 37 39 20 49 53 20  WHERE NOT 79 IS 
11500 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
11510 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
11520 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
11530 43 54 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 2d 20  CT + + col2 * - 
11540 2b 20 63 6f 6c 32 20 2b 20 2b 20 31 34 20 46 52  + col2 + + 14 FR
11550 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
11560 0a 2d 2d 2d 2d 0d 0a 2d 33 34 36 37 0d 0a 2d 34  .----..-3467..-4
11570 36 31 30 0d 0a 2d 39 32 30 32 0d 0a 0d 0a 6f 6e  610..-9202....on
11580 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
11590 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
115a0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
115b0 20 6c 61 62 65 6c 2d 33 37 34 0d 0a 53 45 4c 45   label-374..SELE
115c0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 34 20  CT DISTINCT + 4 
115d0 2a 20 2d 20 2d 20 4d 41 58 28 20 39 36 20 29 20  * - - MAX( 96 ) 
115e0 2a 20 36 37 20 41 53 20 63 6f 6c 32 20 46 52 4f  * 67 AS col2 FRO
115f0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 35  M tab2..----..25
11600 37 32 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  728....skipif my
11610 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
11620 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
11630 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 37 34 0d  wsort label-374.
11640 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
11650 20 2b 20 34 20 2a 20 2d 20 2d 20 4d 41 58 20 28   + 4 * - - MAX (
11660 20 39 36 20 29 20 2a 20 36 37 20 41 53 20 63 6f   96 ) * 67 AS co
11670 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
11680 2d 2d 0d 0a 32 35 37 32 38 0d 0a 0d 0a 6f 6e 6c  --..25728....onl
11690 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
116a0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
116b0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
116c0 20 6c 61 62 65 6c 2d 33 37 35 0d 0a 53 45 4c 45   label-375..SELE
116d0 43 54 20 41 4c 4c 20 2b 20 31 30 20 2a 20 2b 20  CT ALL + 10 * + 
116e0 28 20 43 4f 55 4e 54 28 20 2a 20 29 20 29 2c 20  ( COUNT( * ) ), 
116f0 34 39 20 2a 20 33 37 20 41 53 20 63 6f 6c 31 20  49 * 37 AS col1 
11700 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
11710 0a 33 30 0d 0a 31 38 31 33 0d 0a 0d 0a 73 6b 69  .30..1813....ski
11720 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
11730 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
11740 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
11750 65 6c 2d 33 37 35 0d 0a 53 45 4c 45 43 54 20 41  el-375..SELECT A
11760 4c 4c 20 2b 20 31 30 20 2a 20 2b 20 28 20 43 4f  LL + 10 * + ( CO
11770 55 4e 54 20 28 20 2a 20 29 20 29 2c 20 34 39 20  UNT ( * ) ), 49 
11780 2a 20 33 37 20 41 53 20 63 6f 6c 31 20 46 52 4f  * 37 AS col1 FRO
11790 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 30  M tab1..----..30
117a0 0d 0a 31 38 31 33 0d 0a 0d 0a 71 75 65 72 79 20  ..1813....query 
117b0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
117c0 43 54 20 39 20 41 53 20 63 6f 6c 31 2c 20 2b 20  CT 9 AS col1, + 
117d0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
117e0 2d 2d 2d 2d 0d 0a 39 0d 0a 34 36 0d 0a 39 0d 0a  ----..9..46..9..
117f0 36 34 0d 0a 39 0d 0a 37 35 0d 0a 0d 0a 6f 6e 6c  64..9..75....onl
11800 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
11810 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
11820 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
11830 6c 61 62 65 6c 2d 33 37 37 0d 0a 53 45 4c 45 43  label-377..SELEC
11840 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55  T DISTINCT - COU
11850 4e 54 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  NT( DISTINCT col
11860 32 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  2 ) AS col0 FROM
11870 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
11880 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 31 20 2b  ERE NOT - col1 +
11890 20 2b 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e   + col2 IS NOT N
118a0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  ULL..----..0....
118b0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
118c0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
118d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
118e0 61 62 65 6c 2d 33 37 37 0d 0a 53 45 4c 45 43 54  abel-377..SELECT
118f0 20 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e   DISTINCT - COUN
11900 54 20 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  T ( DISTINCT col
11910 32 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  2 ) AS col0 FROM
11920 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
11930 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 31 20 2b  ERE NOT - col1 +
11940 20 2b 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e   + col2 IS NOT N
11950 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  ULL..----..0....
11960 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
11970 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f  .SELECT ALL - co
11980 6c 32 20 2b 20 2d 20 2b 20 36 32 20 46 52 4f 4d  l2 + - + 62 FROM
11990 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
119a0 2d 2d 2d 0d 0a 2d 31 32 31 0d 0a 2d 31 33 30 0d  ---..-121..-130.
119b0 0a 2d 31 35 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .-158....onlyif 
119c0 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
119d0 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
119e0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
119f0 6f 72 74 20 6c 61 62 65 6c 2d 33 37 39 0d 0a 53  ort label-379..S
11a00 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 43 41  ELECT ALL + - CA
11a10 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
11a20 45 44 20 29 20 2f 20 2b 20 2b 20 63 6f 6c 31 20  ED ) / + + col1 
11a30 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
11a40 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
11a50 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
11a60 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
11a70 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
11a80 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
11a90 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
11aa0 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
11ab0 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
11ac0 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
11ad0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
11ae0 33 37 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  379..SELECT ALL 
11af0 2b 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  + - CAST ( NULL 
11b00 41 53 20 49 4e 54 45 47 45 52 20 29 20 2f 20 2b  AS INTEGER ) / +
11b10 20 2b 20 63 6f 6c 31 20 63 6f 6c 32 20 46 52 4f   + col1 col2 FRO
11b20 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
11b30 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
11b40 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..NULL....onlyif
11b50 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
11b60 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
11b70 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
11b80 73 6f 72 74 20 6c 61 62 65 6c 2d 33 38 30 0d 0a  sort label-380..
11b90 53 45 4c 45 43 54 20 38 37 20 2b 20 2b 20 2b 20  SELECT 87 + + + 
11ba0 63 6f 6c 31 20 2d 20 2b 20 28 20 63 6f 6c 32 20  col1 - + ( col2 
11bb0 29 20 44 49 56 20 2d 20 2d 20 33 34 20 46 52 4f  ) DIV - - 34 FRO
11bc0 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 33  M tab1..----..13
11bd0 32 0d 0a 39 31 0d 0a 39 39 0d 0a 0d 0a 73 6b 69  2..91..99....ski
11be0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
11bf0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
11c00 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
11c10 6c 2d 33 38 30 0d 0a 53 45 4c 45 43 54 20 38 37  l-380..SELECT 87
11c20 20 2b 20 2b 20 2b 20 63 6f 6c 31 20 2d 20 2b 20   + + + col1 - + 
11c30 28 20 63 6f 6c 32 20 29 20 2f 20 2d 20 2d 20 33  ( col2 ) / - - 3
11c40 34 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  4 FROM tab1..---
11c50 2d 0d 0a 31 33 32 0d 0a 39 31 0d 0a 39 39 0d 0a  -..132..91..99..
11c60 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
11c70 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
11c80 32 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  20 FROM tab2 AS 
11c90 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
11ca0 74 61 62 31 20 41 53 20 63 6f 72 31 0d 0a 2d 2d  tab1 AS cor1..--
11cb0 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
11cc0 68 69 6e 67 20 74 6f 20 66 31 63 63 63 62 39 35  hing to f1cccb95
11cd0 63 39 30 38 38 39 33 31 39 65 37 61 35 31 65 34  c90889319e7a51e4
11ce0 61 65 39 34 37 35 62 62 0d 0a 0d 0a 6f 6e 6c 79  ae9475bb....only
11cf0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
11d00 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
11d10 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
11d20 61 62 65 6c 2d 33 38 32 0d 0a 53 45 4c 45 43 54  abel-382..SELECT
11d30 20 2b 20 2d 20 31 30 20 2a 20 2b 20 34 37 20 2b   + - 10 * + 47 +
11d40 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53   + COUNT( * ) AS
11d50 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
11d60 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
11d70 34 36 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  467....skipif my
11d80 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
11d90 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
11da0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 38 32 0d  wsort label-382.
11db0 0a 53 45 4c 45 43 54 20 2b 20 2d 20 31 30 20 2a  .SELECT + - 10 *
11dc0 20 2b 20 34 37 20 2b 20 2b 20 43 4f 55 4e 54 20   + 47 + + COUNT 
11dd0 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ( * ) AS col0 FR
11de0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
11df0 0a 2d 2d 2d 2d 0d 0a 2d 34 36 37 0d 0a 0d 0a 71  .----..-467....q
11e00 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
11e10 53 45 4c 45 43 54 20 63 6f 6c 30 20 2b 20 2d 20  SELECT col0 + - 
11e20 32 37 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  27 AS col0 FROM 
11e30 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
11e40 2d 2d 0d 0a 31 39 0d 0a 33 37 0d 0a 34 38 0d 0a  --..19..37..48..
11e50 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
11e60 74 0d 0a 53 45 4c 45 43 54 20 2d 20 34 34 20 2b  t..SELECT - 44 +
11e70 20 33 34 20 2a 20 2b 20 63 6f 6c 32 20 41 53 20   34 * + col2 AS 
11e80 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
11e90 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39  S cor0..----..19
11ea0 36 32 0d 0a 32 32 36 38 0d 0a 33 32 32 30 0d 0a  62..2268..3220..
11eb0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
11ec0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
11ed0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
11ee0 73 6f 72 74 20 6c 61 62 65 6c 2d 33 38 35 0d 0a  sort label-385..
11ef0 53 45 4c 45 43 54 20 41 4c 4c 20 31 31 20 2b 20  SELECT ALL 11 + 
11f00 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  - COUNT( * ) AS 
11f10 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
11f20 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 0d  S cor0..----..8.
11f30 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
11f40 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
11f50 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
11f60 74 20 6c 61 62 65 6c 2d 33 38 35 0d 0a 53 45 4c  t label-385..SEL
11f70 45 43 54 20 41 4c 4c 20 31 31 20 2b 20 2d 20 43  ECT ALL 11 + - C
11f80 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
11f90 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
11fa0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 0d 0a 0d  cor0..----..8...
11fb0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
11fc0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
11fd0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
11fe0 72 30 20 57 48 45 52 45 20 28 20 63 6f 6c 30 20  r0 WHERE ( col0 
11ff0 2b 20 63 6f 6c 31 20 29 20 49 53 20 4e 55 4c 4c  + col1 ) IS NULL
12000 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
12010 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
12020 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
12030 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
12040 62 65 6c 2d 33 38 37 0d 0a 53 45 4c 45 43 54 20  bel-387..SELECT 
12050 53 55 4d 28 20 2d 20 2d 20 63 6f 6c 32 20 29 20  SUM( - - col2 ) 
12060 41 53 20 63 6f 6c 30 2c 20 34 36 20 2a 20 2d 20  AS col0, 46 * - 
12070 36 37 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  67 FROM tab0 AS 
12080 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 36 0d  cor0..----..156.
12090 0a 2d 33 30 38 32 0d 0a 0d 0a 73 6b 69 70 69 66  .-3082....skipif
120a0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
120b0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
120c0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
120d0 33 38 37 0d 0a 53 45 4c 45 43 54 20 53 55 4d 20  387..SELECT SUM 
120e0 28 20 2d 20 2d 20 63 6f 6c 32 20 29 20 41 53 20  ( - - col2 ) AS 
120f0 63 6f 6c 30 2c 20 34 36 20 2a 20 2d 20 36 37 20  col0, 46 * - 67 
12100 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
12110 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 36 0d 0a 2d 33  0..----..156..-3
12120 30 38 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  082....query I r
12130 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
12140 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 41 53 20  ISTINCT col0 AS 
12150 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
12160 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
12170 20 28 20 63 6f 6c 31 20 29 20 49 53 20 4e 4f 54   ( col1 ) IS NOT
12180 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
12190 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
121a0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
121b0 2b 20 63 6f 6c 32 20 2b 20 2b 20 37 30 20 41 53  + col2 + + 70 AS
121c0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
121d0 0a 2d 2d 2d 2d 0d 0a 31 31 37 0d 0a 31 36 39 0d  .----..117..169.
121e0 0a 38 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .80....onlyif my
121f0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
12200 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
12210 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
12220 33 39 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  390..SELECT ALL 
12230 4d 49 4e 28 20 63 6f 6c 31 20 29 20 2d 20 43 4f  MIN( col1 ) - CO
12240 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31  UNT( * ) AS col1
12250 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
12260 0d 0a 34 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..48....skipif m
12270 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
12280 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
12290 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39 30  owsort label-390
122a0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 4d 49 4e  ..SELECT ALL MIN
122b0 20 28 20 63 6f 6c 31 20 29 20 2d 20 43 4f 55 4e   ( col1 ) - COUN
122c0 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20  T ( * ) AS col1 
122d0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
122e0 0a 34 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  .48....query II 
122f0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
12300 2d 20 33 38 20 41 53 20 63 6f 6c 31 2c 20 63 6f  - 38 AS col1, co
12310 6c 30 20 2a 20 2d 20 34 34 20 2b 20 2d 20 35 34  l0 * - 44 + - 54
12320 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
12330 62 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53  b1 WHERE NULL IS
12340 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
12350 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
12360 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
12370 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
12380 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39 32 0d  wsort label-392.
12390 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
123a0 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52   - COUNT( * ) FR
123b0 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
123c0 54 20 28 20 4e 55 4c 4c 20 29 20 3e 3d 20 2b 20  T ( NULL ) >= + 
123d0 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 30 20 2a 20  col2 + - col0 * 
123e0 63 6f 6c 32 20 41 4e 44 20 4e 55 4c 4c 20 42 45  col2 AND NULL BE
123f0 54 57 45 45 4e 20 28 20 4e 55 4c 4c 20 29 20 41  TWEEN ( NULL ) A
12400 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30  ND NULL..----..0
12410 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
12420 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
12430 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
12440 72 74 20 6c 61 62 65 6c 2d 33 39 32 0d 0a 53 45  rt label-392..SE
12450 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
12460 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d  COUNT ( * ) FROM
12470 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20   tab2 WHERE NOT 
12480 28 20 4e 55 4c 4c 20 29 20 3e 3d 20 2b 20 63 6f  ( NULL ) >= + co
12490 6c 32 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 63 6f  l2 + - col0 * co
124a0 6c 32 20 41 4e 44 20 4e 55 4c 4c 20 42 45 54 57  l2 AND NULL BETW
124b0 45 45 4e 20 28 20 4e 55 4c 4c 20 29 20 41 4e 44  EEN ( NULL ) AND
124c0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   NULL..----..0..
124d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
124e0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f  t..SELECT ALL co
124f0 6c 32 20 2b 20 2b 20 2b 20 28 20 2b 20 2d 20 34  l2 + + + ( + - 4
12500 32 20 29 20 2a 20 2b 20 63 6f 6c 30 20 46 52 4f  2 ) * + col0 FRO
12510 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  M tab1..----..-2
12520 30 34 36 0d 0a 2d 33 35 31 31 0d 0a 2d 33 37 35  046..-3511..-375
12530 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  4....query II ro
12540 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
12550 63 6f 6c 30 20 2a 20 2d 20 2d 20 63 6f 6c 32 20  col0 * - - col2 
12560 2d 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30  - - col1 AS col0
12570 2c 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30  , + col1 AS col0
12580 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
12590 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 38 36 0d 0a 38  r0..----..786..8
125a0 31 0d 0a 38 39 31 0d 0a 32 31 0d 0a 39 36 30 34  1..891..21..9604
125b0 0d 0a 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..1....onlyif my
125c0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
125d0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
125e0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
125f0 33 39 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  395..SELECT ALL 
12600 2b 20 43 4f 55 4e 54 28 20 2d 20 39 20 29 20 2b  + COUNT( - 9 ) +
12610 20 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   2 AS col0 FROM 
12620 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
12630 2d 2d 0d 0a 35 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..5....skipif 
12640 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
12650 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
12660 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39  rowsort label-39
12670 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  5..SELECT ALL + 
12680 43 4f 55 4e 54 20 28 20 2d 20 39 20 29 20 2b 20  COUNT ( - 9 ) + 
12690 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  2 AS col0 FROM t
126a0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
126b0 2d 0d 0a 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49  -..5....query II
126c0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
126d0 20 44 49 53 54 49 4e 43 54 20 2b 20 35 32 2c 20   DISTINCT + 52, 
126e0 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46  - col0 AS col2 F
126f0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
12700 35 32 0d 0a 2d 35 31 0d 0a 35 32 0d 0a 2d 38 35  52..-51..52..-85
12710 0d 0a 35 32 0d 0a 2d 39 31 0d 0a 0d 0a 71 75 65  ..52..-91....que
12720 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
12730 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
12740 39 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  90 AS col1 FROM 
12750 74 61 62 31 20 63 6f 72 30 20 43 52 4f 53 53 20  tab1 cor0 CROSS 
12760 4a 4f 49 4e 20 74 61 62 30 20 63 6f 72 31 0d 0a  JOIN tab0 cor1..
12770 2d 2d 2d 2d 0d 0a 2d 39 30 0d 0a 0d 0a 71 75 65  ----..-90....que
12780 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
12790 45 4c 45 43 54 20 2d 20 28 20 2d 20 35 38 20 29  ELECT - ( - 58 )
127a0 20 41 53 20 63 6f 6c 30 2c 20 33 20 2b 20 2d 20   AS col0, 3 + - 
127b0 2d 20 36 33 20 41 53 20 63 6f 6c 30 20 46 52 4f  - 63 AS col0 FRO
127c0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
127d0 2d 2d 2d 2d 0d 0a 35 38 0d 0a 36 36 0d 0a 35 38  ----..58..66..58
127e0 0d 0a 36 36 0d 0a 35 38 0d 0a 36 36 0d 0a 0d 0a  ..66..58..66....
127f0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
12800 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72  AST syntax: aggr
12810 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49  egate syntax: SI
12820 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
12830 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
12840 65 6c 2d 33 39 39 0d 0a 53 45 4c 45 43 54 20 2d  el-399..SELECT -
12850 20 43 4f 55 4e 54 28 20 41 4c 4c 20 2d 20 43 41   COUNT( ALL - CA
12860 53 54 28 20 2b 20 2d 20 63 6f 6c 30 20 41 53 20  ST( + - col0 AS 
12870 53 49 47 4e 45 44 20 29 20 29 20 2a 20 37 30 20  SIGNED ) ) * 70 
12880 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
12890 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
128a0 0a 2d 32 31 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  .-210....skipif 
128b0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
128c0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
128d0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39  rowsort label-39
128e0 39 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e  9..SELECT - COUN
128f0 54 20 28 20 41 4c 4c 20 2d 20 43 41 53 54 20 28  T ( ALL - CAST (
12900 20 2b 20 2d 20 63 6f 6c 30 20 41 53 20 49 4e 54   + - col0 AS INT
12910 45 47 45 52 20 29 20 29 20 2a 20 37 30 20 41 53  EGER ) ) * 70 AS
12920 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
12930 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
12940 32 31 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  210....query II 
12950 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
12960 44 49 53 54 49 4e 43 54 20 2b 20 28 20 2d 20 31  DISTINCT + ( - 1
12970 32 20 29 20 2a 20 2b 20 63 6f 6c 32 20 2a 20 2d  2 ) * + col2 * -
12980 20 31 30 2c 20 63 6f 6c 32 20 46 52 4f 4d 20 74   10, col2 FROM t
12990 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
129a0 2d 0d 0a 31 31 35 32 30 0d 0a 39 36 0d 0a 37 30  -..11520..96..70
129b0 38 30 0d 0a 35 39 0d 0a 38 31 36 30 0d 0a 36 38  80..59..8160..68
129c0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
129d0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
129e0 63 6f 6c 32 20 2a 20 2d 20 2d 20 63 6f 6c 31 20  col2 * - - col1 
129f0 2a 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 63  * + - col1 * + c
12a00 6f 6c 31 20 2a 20 2d 20 63 6f 6c 31 20 46 52 4f  ol1 * - col1 FRO
12a10 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
12a20 2d 2d 2d 2d 0d 0a 31 39 34 34 38 31 30 0d 0a 32  ----..1944810..2
12a30 30 32 33 31 39 35 38 38 37 0d 0a 39 39 0d 0a 0d  023195887..99...
12a40 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
12a50 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 63 6f 6c  ..SELECT + ( col
12a60 31 20 29 20 2a 20 2b 20 2b 20 63 6f 6c 31 20 41  1 ) * + + col1 A
12a70 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
12a80 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
12a90 31 0d 0a 34 34 31 0d 0a 36 35 36 31 0d 0a 0d 0a  1..441..6561....
12aa0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
12ab0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f  .SELECT ALL - co
12ac0 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l0 AS col0 FROM 
12ad0 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
12ae0 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20  RE NOT ( NULL ) 
12af0 42 45 54 57 45 45 4e 20 28 20 33 31 20 29 20 41  BETWEEN ( 31 ) A
12b00 4e 44 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d  ND - col1..----.
12b10 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
12b20 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
12b30 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   * FROM tab1 AS 
12b40 63 6f 72 30 20 57 48 45 52 45 20 2d 20 63 6f 6c  cor0 WHERE - col
12b50 32 20 3e 3d 20 2b 20 36 35 0d 0a 2d 2d 2d 2d 0d  2 >= + 65..----.
12b60 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
12b70 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
12b80 4e 43 54 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20  NCT + col2 FROM 
12b90 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
12ba0 52 45 20 2d 20 38 35 20 49 53 20 4e 55 4c 4c 0d  RE - 85 IS NULL.
12bb0 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
12bc0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
12bd0 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32   DISTINCT + col2
12be0 20 2a 20 2d 20 2d 20 63 6f 6c 31 20 2a 20 2b 20   * - - col1 * + 
12bf0 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  - col2 FROM tab2
12c00 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32   cor0..----..-12
12c10 33 32 30 30 0d 0a 2d 32 32 35 33 38 38 0d 0a 2d  3200..-225388..-
12c20 32 36 39 37 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  26979....onlyif 
12c30 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
12c40 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
12c50 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
12c60 6c 2d 34 30 37 0d 0a 53 45 4c 45 43 54 20 33 31  l-407..SELECT 31
12c70 20 2a 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20   * + COUNT( * ) 
12c80 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
12c90 2d 2d 2d 2d 0d 0a 39 33 0d 0a 0d 0a 73 6b 69 70  ----..93....skip
12ca0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
12cb0 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
12cc0 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
12cd0 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
12ce0 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
12cf0 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
12d00 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
12d10 6f 72 74 20 6c 61 62 65 6c 2d 34 30 37 0d 0a 53  ort label-407..S
12d20 45 4c 45 43 54 20 33 31 20 2a 20 2b 20 43 4f 55  ELECT 31 * + COU
12d30 4e 54 20 28 20 2a 20 29 20 63 6f 6c 30 20 46 52  NT ( * ) col0 FR
12d40 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 39  OM tab0..----..9
12d50 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  3....query I row
12d60 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
12d70 20 63 6f 6c 32 20 2a 20 2b 20 2b 20 32 30 20 46   col2 * + + 20 F
12d80 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
12d90 31 39 38 30 0d 0a 32 30 30 0d 0a 39 34 30 0d 0a  1980..200..940..
12da0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
12db0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
12dc0 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
12dd0 54 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20 28 20  T NULL NOT IN ( 
12de0 2b 20 63 6f 6c 30 20 2d 20 2b 20 63 6f 6c 32 2c  + col0 - + col2,
12df0 20 2b 20 38 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   + 82 )..----...
12e00 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
12e10 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
12e20 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
12e30 20 2d 20 63 6f 6c 31 20 2f 20 63 6f 6c 30 20 49   - col1 / col0 I
12e40 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20  S NULL..----..9 
12e50 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
12e60 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38 33  o 75c998aa53ac83
12e70 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30 61  218cbf2feb962d0a
12e80 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  49....onlyif mys
12e90 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
12ea0 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  : aggregate synt
12eb0 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
12ec0 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
12ed0 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
12ee0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
12ef0 65 6c 2d 34 31 31 0d 0a 53 45 4c 45 43 54 20 44  el-411..SELECT D
12f00 49 53 54 49 4e 43 54 20 43 41 53 54 28 20 4d 41  ISTINCT CAST( MA
12f10 58 28 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 29 20  X( ALL + col0 ) 
12f20 41 53 20 53 49 47 4e 45 44 20 29 20 44 49 56 20  AS SIGNED ) DIV 
12f30 2d 20 2d 20 38 39 20 2b 20 43 4f 55 4e 54 28 20  - - 89 + COUNT( 
12f40 2a 20 29 20 2d 20 2b 20 37 36 20 41 53 20 63 6f  * ) - + 76 AS co
12f50 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
12f60 2d 2d 0d 0a 2d 37 33 0d 0a 0d 0a 73 6b 69 70 69  --..-73....skipi
12f70 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
12f80 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
12f90 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
12fa0 34 31 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  411..SELECT DIST
12fb0 49 4e 43 54 20 43 41 53 54 20 28 20 4d 41 58 20  INCT CAST ( MAX 
12fc0 28 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 29 20 41  ( ALL + col0 ) A
12fd0 53 20 49 4e 54 45 47 45 52 20 29 20 2f 20 2d 20  S INTEGER ) / - 
12fe0 2d 20 38 39 20 2b 20 43 4f 55 4e 54 20 28 20 2a  - 89 + COUNT ( *
12ff0 20 29 20 2d 20 2b 20 37 36 20 41 53 20 63 6f 6c   ) - + 76 AS col
13000 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  2 FROM tab2..---
13010 2d 0d 0a 2d 37 33 0d 0a 0d 0a 71 75 65 72 79 20  -..-73....query 
13020 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
13030 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 63  T DISTINCT - + c
13040 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol2 AS col0 FROM
13050 20 74 61 62 32 20 57 48 45 52 45 20 2d 20 63 6f   tab2 WHERE - co
13060 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l2 IS NULL..----
13070 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
13080 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
13090 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74  tax: DIV for int
130a0 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
130b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
130c0 20 6c 61 62 65 6c 2d 34 31 33 0d 0a 53 45 4c 45   label-413..SELE
130d0 43 54 20 2b 20 35 37 20 44 49 56 20 2d 20 38 39  CT + 57 DIV - 89
130e0 20 2a 20 2b 20 2b 20 53 55 4d 28 20 2d 20 63 6f   * + + SUM( - co
130f0 6c 31 20 29 20 2a 20 2b 20 4d 41 58 28 20 2d 20  l1 ) * + MAX( - 
13100 2d 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 30  - col2 ) AS col0
13110 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
13120 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
13130 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
13140 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
13150 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 31 33 0d  wsort label-413.
13160 0a 53 45 4c 45 43 54 20 2b 20 35 37 20 2f 20 2d  .SELECT + 57 / -
13170 20 38 39 20 2a 20 2b 20 2b 20 53 55 4d 20 28 20   89 * + + SUM ( 
13180 2d 20 63 6f 6c 31 20 29 20 2a 20 2b 20 4d 41 58  - col1 ) * + MAX
13190 20 28 20 2d 20 2d 20 63 6f 6c 32 20 29 20 41 53   ( - - col2 ) AS
131a0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
131b0 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72  .----..0....quer
131c0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
131d0 45 43 54 20 38 30 20 2a 20 2d 20 2d 20 38 37 20  ECT 80 * - - 87 
131e0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
131f0 0a 36 39 36 30 0d 0a 36 39 36 30 0d 0a 36 39 36  .6960..6960..696
13200 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
13210 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b  sort..SELECT - +
13220 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 31 20 2b   col0 + + col1 +
13230 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52   col0 AS col0 FR
13240 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
13250 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 34 37 0d 0a 35  .----..14..47..5
13260 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
13270 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
13280 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
13290 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
132a0 61 62 65 6c 2d 34 31 36 0d 0a 53 45 4c 45 43 54  abel-416..SELECT
132b0 20 44 49 53 54 49 4e 43 54 20 2d 20 37 31 20 44   DISTINCT - 71 D
132c0 49 56 20 2d 20 2d 20 63 6f 6c 31 20 41 53 20 63  IV - - col1 AS c
132d0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
132e0 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 31 34 0d 0a 2d 35  ---..-1..-14..-5
132f0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
13300 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
13310 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
13320 72 74 20 6c 61 62 65 6c 2d 34 31 36 0d 0a 53 45  rt label-416..SE
13330 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
13340 37 31 20 2f 20 2d 20 2d 20 63 6f 6c 31 20 41 53  71 / - - col1 AS
13350 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
13360 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 31 34 0d 0a  .----..-1..-14..
13370 2d 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  -5....onlyif mys
13380 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
13390 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
133a0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
133b0 20 6c 61 62 65 6c 2d 34 31 37 0d 0a 53 45 4c 45   label-417..SELE
133c0 43 54 20 2d 20 39 38 20 44 49 56 20 2b 20 63 6f  CT - 98 DIV + co
133d0 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l0 AS col1 FROM 
133e0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a  tab0..----..-1..
133f0 2d 31 0d 0a 2d 36 0d 0a 0d 0a 73 6b 69 70 69 66  -1..-6....skipif
13400 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
13410 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
13420 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
13430 31 37 0d 0a 53 45 4c 45 43 54 20 2d 20 39 38 20  17..SELECT - 98 
13440 2f 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31  / + col0 AS col1
13450 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
13460 0d 0a 2d 31 0d 0a 2d 31 0d 0a 2d 36 0d 0a 0d 0a  ..-1..-1..-6....
13470 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
13480 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
13490 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
134a0 72 74 20 6c 61 62 65 6c 2d 34 31 38 0d 0a 53 45  rt label-418..SE
134b0 4c 45 43 54 20 4d 41 58 28 20 41 4c 4c 20 2d 20  LECT MAX( ALL - 
134c0 33 31 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  31 ) AS col2 FRO
134d0 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  M tab1..----..-3
134e0 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
134f0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
13500 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
13510 6f 72 74 20 6c 61 62 65 6c 2d 34 31 38 0d 0a 53  ort label-418..S
13520 45 4c 45 43 54 20 4d 41 58 20 28 20 41 4c 4c 20  ELECT MAX ( ALL 
13530 2d 20 33 31 20 29 20 41 53 20 63 6f 6c 32 20 46  - 31 ) AS col2 F
13540 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
13550 2d 33 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  -31....query II 
13560 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
13570 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20  DISTINCT - col0 
13580 2a 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c  * + col2 + - col
13590 30 20 41 53 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c  0 AS col2, + col
135a0 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  0 FROM tab1..---
135b0 2d 0d 0a 2d 34 39 34 37 0d 0a 35 31 0d 0a 2d 35  -..-4947..51..-5
135c0 31 30 30 0d 0a 38 35 0d 0a 2d 36 32 37 39 0d 0a  100..85..-6279..
135d0 39 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  91....query I ro
135e0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
135f0 4c 20 2b 20 2b 20 32 33 20 41 53 20 63 6f 6c 32  L + + 23 AS col2
13600 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
13610 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 32 33  r0..----..23..23
13620 0d 0a 32 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..23....query I 
13630 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
13640 41 4c 4c 20 35 31 20 2a 20 2b 20 63 6f 6c 30 20  ALL 51 * + col0 
13650 2b 20 2b 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20  + + + col1 FROM 
13660 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
13670 0a 34 34 35 38 0d 0a 34 39 34 38 0d 0a 38 34 36  .4458..4948..846
13680 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
13690 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
136a0 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
136b0 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
136c0 20 28 20 4e 4f 54 20 4e 55 4c 4c 20 42 45 54 57   ( NOT NULL BETW
136d0 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 28 20 2b  EEN NULL AND ( +
136e0 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 30 20 2b   col2 + - col0 +
136f0 20 2b 20 38 34 20 2a 20 2d 20 63 6f 6c 31 20 29   + 84 * - col1 )
13700 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79   )..----....only
13710 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
13720 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
13730 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
13740 61 62 65 6c 2d 34 32 33 0d 0a 53 45 4c 45 43 54  abel-423..SELECT
13750 20 4d 49 4e 28 20 2b 20 63 6f 6c 30 20 29 20 46   MIN( + col0 ) F
13760 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
13770 20 57 48 45 52 45 20 2b 20 63 6f 6c 30 20 2b 20   WHERE + col0 + 
13780 2d 20 34 36 20 2a 20 2d 20 63 6f 6c 32 20 2a 20  - 46 * - col2 * 
13790 2b 20 2d 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20  + - col1 IS NOT 
137a0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a  NULL..----..46..
137b0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
137c0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
137d0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
137e0 20 6c 61 62 65 6c 2d 34 32 33 0d 0a 53 45 4c 45   label-423..SELE
137f0 43 54 20 4d 49 4e 20 28 20 2b 20 63 6f 6c 30 20  CT MIN ( + col0 
13800 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  ) FROM tab2 AS c
13810 6f 72 30 20 57 48 45 52 45 20 2b 20 63 6f 6c 30  or0 WHERE + col0
13820 20 2b 20 2d 20 34 36 20 2a 20 2d 20 63 6f 6c 32   + - 46 * - col2
13830 20 2a 20 2b 20 2d 20 63 6f 6c 31 20 49 53 20 4e   * + - col1 IS N
13840 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 34  OT NULL..----..4
13850 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
13860 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
13870 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
13880 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
13890 6c 61 62 65 6c 2d 34 32 34 0d 0a 53 45 4c 45 43  label-424..SELEC
138a0 54 20 63 6f 6c 32 20 2a 20 63 6f 6c 31 20 2b 20  T col2 * col1 + 
138b0 2d 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 37 31 20  - - col0 + + 71 
138c0 2b 20 2b 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 43  + + + col2 + - C
138d0 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
138e0 4e 45 44 20 29 20 2b 20 34 38 20 2a 20 39 35 20  NED ) + 48 * 95 
138f0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
13900 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
13910 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
13920 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
13930 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
13940 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
13950 6f 72 74 20 6c 61 62 65 6c 2d 34 32 34 0d 0a 53  ort label-424..S
13960 45 4c 45 43 54 20 63 6f 6c 32 20 2a 20 63 6f 6c  ELECT col2 * col
13970 31 20 2b 20 2d 20 2d 20 63 6f 6c 30 20 2b 20 2b  1 + - - col0 + +
13980 20 37 31 20 2b 20 2b 20 2b 20 63 6f 6c 32 20 2b   71 + + + col2 +
13990 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   - CAST ( NULL A
139a0 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20 34 38  S INTEGER ) + 48
139b0 20 2a 20 39 35 20 41 53 20 63 6f 6c 30 20 46 52   * 95 AS col0 FR
139c0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
139d0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
139e0 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79  L..NULL....query
139f0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
13a00 43 54 20 2b 20 28 20 2d 20 63 6f 6c 31 20 29 20  CT + ( - col1 ) 
13a10 2b 20 2d 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f  + - + col1 AS co
13a20 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
13a30 2d 2d 0d 0a 2d 31 36 32 0d 0a 2d 32 0d 0a 2d 34  --..-162..-2..-4
13a40 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  2....query II ro
13a50 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
13a60 4c 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c  L + col1 + + col
13a70 32 20 41 53 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c  2 AS col1, + col
13a80 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  1 AS col1 FROM t
13a90 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 31 30 0d 0a  ab1..----..110..
13aa0 31 34 0d 0a 31 31 35 0d 0a 34 37 0d 0a 36 34 0d  14..115..47..64.
13ab0 0a 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .5....query I ro
13ac0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
13ad0 53 54 49 4e 43 54 20 2b 20 31 36 20 2d 20 63 6f  STINCT + 16 - co
13ae0 6c 30 20 2a 20 2d 20 63 6f 6c 32 20 46 52 4f 4d  l0 * - col2 FROM
13af0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 37 32 31   tab0..----..721
13b00 0d 0a 38 38 36 0d 0a 39 36 31 39 0d 0a 0d 0a 6f  ..886..9619....o
13b10 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
13b20 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
13b30 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
13b40 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
13b50 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
13b60 65 6c 2d 34 32 38 0d 0a 53 45 4c 45 43 54 20 2b  el-428..SELECT +
13b70 20 36 32 20 2b 20 36 30 20 41 53 20 63 6f 6c 32   62 + 60 AS col2
13b80 2c 20 2d 20 41 56 47 20 28 20 43 41 53 54 28 20  , - AVG ( CAST( 
13b90 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
13ba0 20 29 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20   ) + - COUNT( * 
13bb0 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  ) col1 FROM tab2
13bc0 0d 0a 2d 2d 2d 2d 0d 0a 31 32 32 0d 0a 4e 55 4c  ..----..122..NUL
13bd0 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
13be0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
13bf0 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
13c00 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
13c10 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
13c20 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
13c30 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
13c40 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
13c50 62 65 6c 2d 34 32 38 0d 0a 53 45 4c 45 43 54 20  bel-428..SELECT 
13c60 2b 20 36 32 20 2b 20 36 30 20 41 53 20 63 6f 6c  + 62 + 60 AS col
13c70 32 2c 20 2d 20 41 56 47 20 28 20 43 41 53 54 20  2, - AVG ( CAST 
13c80 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
13c90 52 20 29 20 29 20 2b 20 2d 20 43 4f 55 4e 54 20  R ) ) + - COUNT 
13ca0 28 20 2a 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20  ( * ) col1 FROM 
13cb0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 32 32 0d  tab2..----..122.
13cc0 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .NULL....onlyif 
13cd0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
13ce0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
13cf0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
13d00 6c 2d 34 32 39 0d 0a 53 45 4c 45 43 54 20 44 49  l-429..SELECT DI
13d10 53 54 49 4e 43 54 20 2b 20 31 35 20 2d 20 4d 49  STINCT + 15 - MI
13d20 4e 28 20 41 4c 4c 20 2b 20 32 34 20 29 20 46 52  N( ALL + 24 ) FR
13d30 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
13d40 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
13d50 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
13d60 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
13d70 6f 72 74 20 6c 61 62 65 6c 2d 34 32 39 0d 0a 53  ort label-429..S
13d80 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
13d90 20 31 35 20 2d 20 4d 49 4e 20 28 20 41 4c 4c 20   15 - MIN ( ALL 
13da0 2b 20 32 34 20 29 20 46 52 4f 4d 20 74 61 62 31  + 24 ) FROM tab1
13db0 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 73 6b  ..----..-9....sk
13dc0 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
13dd0 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
13de0 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
13df0 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
13e00 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
13e10 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
13e20 49 53 54 49 4e 43 54 20 2b 20 39 20 2a 20 2b 20  ISTINCT + 9 * + 
13e30 2b 20 63 6f 6c 30 20 2a 20 63 6f 6c 32 20 63 6f  + col0 * col2 co
13e40 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l1 FROM tab0..--
13e50 2d 2d 0d 0a 36 33 34 35 0d 0a 37 38 33 30 0d 0a  --..6345..7830..
13e60 38 36 34 32 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  86427....onlyif 
13e70 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
13e80 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
13e90 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
13ea0 73 6f 72 74 20 6c 61 62 65 6c 2d 34 33 31 0d 0a  sort label-431..
13eb0 53 45 4c 45 43 54 20 41 4c 4c 20 34 37 20 44 49  SELECT ALL 47 DI
13ec0 56 20 63 6f 6c 32 20 2a 20 37 34 20 2b 20 2b 20  V col2 * 74 + + 
13ed0 2b 20 63 6f 6c 31 20 63 6f 6c 32 2c 20 2d 20 36  + col1 col2, - 6
13ee0 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
13ef0 2d 0d 0a 31 35 31 0d 0a 2d 36 31 0d 0a 31 39 39  -..151..-61..199
13f00 0d 0a 2d 36 31 0d 0a 36 37 0d 0a 2d 36 31 0d 0a  ..-61..67..-61..
13f10 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
13f20 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
13f30 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
13f40 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
13f50 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
13f60 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
13f70 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
13f80 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
13f90 2d 34 33 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -431..SELECT ALL
13fa0 20 34 37 20 2f 20 63 6f 6c 32 20 2a 20 37 34 20   47 / col2 * 74 
13fb0 2b 20 2b 20 2b 20 63 6f 6c 31 20 63 6f 6c 32 2c  + + + col1 col2,
13fc0 20 2d 20 36 31 20 46 52 4f 4d 20 74 61 62 32 0d   - 61 FROM tab2.
13fd0 0a 2d 2d 2d 2d 0d 0a 31 35 31 0d 0a 2d 36 31 0d  .----..151..-61.
13fe0 0a 31 39 39 0d 0a 2d 36 31 0d 0a 36 37 0d 0a 2d  .199..-61..67..-
13ff0 36 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  61....query III 
14000 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
14010 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
14020 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
14030 52 45 20 4e 4f 54 20 28 20 63 6f 6c 30 20 2b 20  RE NOT ( col0 + 
14040 2d 20 35 33 20 29 20 3c 3e 20 63 6f 6c 31 20 2a  - 53 ) <> col1 *
14050 20 2b 20 2b 20 31 20 2b 20 2b 20 63 6f 6c 32 0d   + + 1 + + col2.
14060 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
14070 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
14080 20 41 4c 4c 20 37 37 20 2a 20 2b 20 63 6f 6c 31   ALL 77 * + col1
14090 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
140a0 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  r0 WHERE NOT NUL
140b0 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  L IS NULL..----.
140c0 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
140d0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
140e0 49 4e 43 54 20 63 6f 6c 30 20 41 53 20 63 6f 6c  INCT col0 AS col
140f0 31 2c 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 63 6f  1, - col1 + - co
14100 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l0 FROM tab2 AS 
14110 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d  cor0 WHERE NOT -
14120 20 63 6f 6c 31 20 3e 20 2b 20 63 6f 6c 30 20 2b   col1 > + col0 +
14130 20 2b 20 2b 20 36 31 0d 0a 2d 2d 2d 2d 0d 0a 34   + + 61..----..4
14140 36 0d 0a 2d 39 37 0d 0a 36 34 0d 0a 2d 31 34 31  6..-97..64..-141
14150 0d 0a 37 35 0d 0a 2d 31 34 32 0d 0a 0d 0a 71 75  ..75..-142....qu
14160 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
14170 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
14180 20 33 20 2a 20 2b 20 63 6f 6c 31 20 2b 20 2b 20   3 * + col1 + + 
14190 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
141a0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 30  S cor0..----..20
141b0 34 0d 0a 32 36 38 0d 0a 33 30 38 0d 0a 0d 0a 71  4..268..308....q
141c0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
141d0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
141e0 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
141f0 4f 54 20 28 20 4e 4f 54 20 63 6f 6c 32 20 42 45  OT ( NOT col2 BE
14200 54 57 45 45 4e 20 63 6f 6c 30 20 41 4e 44 20 2b  TWEEN col0 AND +
14210 20 39 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d   92 )..----..15.
14220 0a 38 31 0d 0a 34 37 0d 0a 0d 0a 6f 6e 6c 79 69  .81..47....onlyi
14230 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
14240 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
14250 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
14260 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 33 37 0d  wsort label-437.
14270 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
14280 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   + CAST( NULL AS
14290 20 53 49 47 4e 45 44 20 29 20 2a 20 2d 20 2d 20   SIGNED ) * - - 
142a0 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f  col1 AS col2 FRO
142b0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
142c0 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  ----..NULL....sk
142d0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
142e0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
142f0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
14300 65 6c 2d 34 33 37 0d 0a 53 45 4c 45 43 54 20 44  el-437..SELECT D
14310 49 53 54 49 4e 43 54 20 2b 20 43 41 53 54 20 28  ISTINCT + CAST (
14320 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
14330 20 29 20 2a 20 2d 20 2d 20 63 6f 6c 31 20 41 53   ) * - - col1 AS
14340 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
14350 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
14360 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ULL....query III
14370 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
14380 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32   ALL * FROM tab2
14390 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
143a0 4f 54 20 2d 20 39 37 20 3c 3d 20 63 6f 6c 31 0d  OT - 97 <= col1.
143b0 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
143c0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
143d0 20 2b 20 37 31 20 2a 20 63 6f 6c 31 20 46 52 4f   + 71 * col1 FRO
143e0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
143f0 2d 2d 2d 2d 0d 0a 33 33 33 37 0d 0a 33 35 35 0d  ----..3337..355.
14400 0a 39 39 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .994....query II
14410 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
14420 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53  T * FROM tab1 AS
14430 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
14440 2d 20 63 6f 6c 32 20 2f 20 2b 20 63 6f 6c 31 20  - col2 / + col1 
14450 3c 3d 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d  <= ( NULL )..---
14460 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  -....query III r
14470 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
14480 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20   FROM tab0 cor0 
14490 57 48 45 52 45 20 4e 4f 54 20 2b 20 38 30 20 2b  WHERE NOT + 80 +
144a0 20 28 20 63 6f 6c 30 20 29 20 2a 20 2d 20 63 6f   ( col0 ) * - co
144b0 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l1 IS NULL..----
144c0 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
144d0 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35 64 66  ng to c4b42765df
144e0 66 39 34 65 61 61 61 34 36 30 34 30 65 35 33 37  f94eaaa46040e537
144f0 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72 79 20  fb43b7....query 
14500 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
14510 54 20 44 49 53 54 49 4e 43 54 20 2b 20 33 39 20  T DISTINCT + 39 
14520 2a 20 2d 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f  * - + col1 AS co
14530 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
14540 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 31 35  cor0..----..-315
14550 39 0d 0a 2d 33 39 0d 0a 2d 38 31 39 0d 0a 0d 0a  9..-39..-819....
14560 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
14570 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
14580 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
14590 45 52 45 20 4e 4f 54 20 38 36 20 49 53 20 4e 55  ERE NOT 86 IS NU
145a0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  LL..----..9 valu
145b0 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36  es hashing to c6
145c0 63 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63  c0a4111b36d04dbc
145d0 38 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a  811a11e4d54cad..
145e0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
145f0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f  t..SELECT ALL co
14600 6c 31 20 2b 20 38 32 20 46 52 4f 4d 20 74 61 62  l1 + 82 FROM tab
14610 30 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  0 cor0 WHERE NOT
14620 20 2d 20 63 6f 6c 30 20 2f 20 2b 20 2d 20 63 6f   - col0 / + - co
14630 6c 30 20 3c 20 2d 20 2d 20 63 6f 6c 32 0d 0a 2d  l0 < - - col2..-
14640 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  ---....skipif po
14650 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
14660 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
14670 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
14680 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
14690 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
146a0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
146b0 20 28 20 2b 20 2d 20 63 6f 6c 32 20 29 20 63 6f   ( + - col2 ) co
146c0 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l0 FROM tab1..--
146d0 2d 2d 0d 0a 2d 35 39 0d 0a 2d 36 38 0d 0a 2d 39  --..-59..-68..-9
146e0 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
146f0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
14700 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
14710 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 34  rowsort label-44
14720 36 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 2b 20  6..SELECT + ( + 
14730 2d 20 4d 49 4e 28 20 2d 20 39 32 20 29 20 29 20  - MIN( - 92 ) ) 
14740 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
14750 31 0d 0a 2d 2d 2d 2d 0d 0a 39 32 0d 0a 0d 0a 73  1..----..92....s
14760 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
14770 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
14780 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
14790 62 65 6c 2d 34 34 36 0d 0a 53 45 4c 45 43 54 20  bel-446..SELECT 
147a0 2b 20 28 20 2b 20 2d 20 4d 49 4e 20 28 20 2d 20  + ( + - MIN ( - 
147b0 39 32 20 29 20 29 20 41 53 20 63 6f 6c 32 20 46  92 ) ) AS col2 F
147c0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
147d0 39 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  92....query I ro
147e0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
147f0 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 2a 20  STINCT - col2 * 
14800 2d 20 63 6f 6c 32 20 2b 20 2b 20 2b 20 35 37 20  - col2 + + + 57 
14810 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
14820 0a 31 36 35 37 0d 0a 33 34 32 31 0d 0a 35 38 36  .1657..3421..586
14830 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
14840 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20  ort..SELECT + + 
14850 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 30 20 41 53  col2 + - col0 AS
14860 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
14870 57 48 45 52 45 20 4e 55 4c 4c 20 3c 20 63 6f 6c  WHERE NULL < col
14880 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  1..----....onlyi
14890 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
148a0 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65  yntax: aggregate
148b0 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
148c0 74 79 70 65 3a 20 44 45 43 49 4d 41 4c 20 74 79  type: DECIMAL ty
148d0 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72  pe: ..query II r
148e0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 34 39  owsort label-449
148f0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
14900 54 20 32 33 2c 20 2b 20 43 4f 55 4e 54 28 20 2a  T 23, + COUNT( *
14910 20 29 20 2b 20 2d 20 2d 20 43 41 53 54 28 20 4e   ) + - - CAST( N
14920 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
14930 2f 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  / + CAST( NULL A
14940 53 20 44 45 43 49 4d 41 4c 20 29 20 41 53 20 63  S DECIMAL ) AS c
14950 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
14960 2d 2d 2d 0d 0a 32 33 0d 0a 4e 55 4c 4c 0d 0a 0d  ---..23..NULL...
14970 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
14980 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
14990 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
149a0 20 6c 61 62 65 6c 2d 34 34 39 0d 0a 53 45 4c 45   label-449..SELE
149b0 43 54 20 44 49 53 54 49 4e 43 54 20 32 33 2c 20  CT DISTINCT 23, 
149c0 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20  + COUNT ( * ) + 
149d0 2d 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  - - CAST ( NULL 
149e0 41 53 20 49 4e 54 45 47 45 52 20 29 20 2f 20 2b  AS INTEGER ) / +
149f0 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
14a00 52 45 41 4c 20 29 20 41 53 20 63 6f 6c 31 20 46  REAL ) AS col1 F
14a10 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
14a20 32 33 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79  23..NULL....only
14a30 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
14a40 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
14a50 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
14a60 61 62 65 6c 2d 34 35 30 0d 0a 53 45 4c 45 43 54  abel-450..SELECT
14a70 20 2b 20 43 4f 55 4e 54 28 20 2d 20 2b 20 63 6f   + COUNT( - + co
14a80 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a  l1 ) FROM tab1..
14a90 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69  ----..3....skipi
14aa0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
14ab0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
14ac0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
14ad0 34 35 30 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f  450..SELECT + CO
14ae0 55 4e 54 20 28 20 2d 20 2b 20 63 6f 6c 31 20 29  UNT ( - + col1 )
14af0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
14b00 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..3....onlyif my
14b10 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
14b20 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
14b30 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
14b40 6f 72 74 20 6c 61 62 65 6c 2d 34 35 31 0d 0a 53  ort label-451..S
14b50 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
14b60 30 20 57 48 45 52 45 20 2b 20 63 6f 6c 30 20 42  0 WHERE + col0 B
14b70 45 54 57 45 45 4e 20 2d 20 2b 20 31 37 20 2b 20  ETWEEN - + 17 + 
14b80 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
14b90 47 4e 45 44 20 29 20 41 4e 44 20 4e 55 4c 4c 0d  GNED ) AND NULL.
14ba0 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
14bb0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
14bc0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
14bd0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
14be0 34 35 31 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  451..SELECT * FR
14bf0 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 2b 20  OM tab0 WHERE + 
14c00 63 6f 6c 30 20 42 45 54 57 45 45 4e 20 2d 20 2b  col0 BETWEEN - +
14c10 20 31 37 20 2b 20 43 41 53 54 20 28 20 4e 55 4c   17 + CAST ( NUL
14c20 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41  L AS INTEGER ) A
14c30 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  ND NULL..----...
14c40 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
14c50 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
14c60 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
14c70 48 45 52 45 20 4e 55 4c 4c 20 3e 3d 20 32 36 0d  HERE NULL >= 26.
14c80 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
14c90 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
14ca0 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
14cb0 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
14cc0 73 6f 72 74 20 6c 61 62 65 6c 2d 34 35 33 0d 0a  sort label-453..
14cd0 53 45 4c 45 43 54 20 63 6f 6c 30 2c 20 38 38 20  SELECT col0, 88 
14ce0 44 49 56 20 2d 20 39 39 20 2a 20 63 6f 6c 30 20  DIV - 99 * col0 
14cf0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
14d00 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 30 0d 0a  0..----..51..0..
14d10 38 35 0d 0a 30 0d 0a 39 31 0d 0a 30 0d 0a 0d 0a  85..0..91..0....
14d20 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
14d30 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
14d40 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
14d50 6c 61 62 65 6c 2d 34 35 33 0d 0a 53 45 4c 45 43  label-453..SELEC
14d60 54 20 63 6f 6c 30 2c 20 38 38 20 2f 20 2d 20 39  T col0, 88 / - 9
14d70 39 20 2a 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  9 * col0 FROM ta
14d80 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
14d90 0d 0a 35 31 0d 0a 30 0d 0a 38 35 0d 0a 30 0d 0a  ..51..0..85..0..
14da0 39 31 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49  91..0....query I
14db0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
14dc0 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 2b 20 2d 20   ALL + col0 + - 
14dd0 36 36 20 2a 20 2d 20 63 6f 6c 32 20 46 52 4f 4d  66 * - col2 FROM
14de0 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
14df0 2d 2d 2d 0d 0a 33 31 31 37 0d 0a 36 36 33 31 0d  ---..3117..6631.
14e00 0a 37 34 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .747....onlyif m
14e10 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
14e20 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
14e30 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
14e40 2d 34 35 35 0d 0a 53 45 4c 45 43 54 20 4d 41 58  -455..SELECT MAX
14e50 28 20 2d 20 63 6f 6c 32 20 29 20 41 53 20 63 6f  ( - col2 ) AS co
14e60 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72  l2 FROM tab2 cor
14e70 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a 0d 0a  0..----..-23....
14e80 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
14e90 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
14ea0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
14eb0 61 62 65 6c 2d 34 35 35 0d 0a 53 45 4c 45 43 54  abel-455..SELECT
14ec0 20 4d 41 58 20 28 20 2d 20 63 6f 6c 32 20 29 20   MAX ( - col2 ) 
14ed0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
14ee0 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  2 cor0..----..-2
14ef0 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
14f00 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
14f10 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
14f20 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
14f30 6c 61 62 65 6c 2d 34 35 36 0d 0a 53 45 4c 45 43  label-456..SELEC
14f40 54 20 44 49 53 54 49 4e 43 54 20 32 36 20 2b 20  T DISTINCT 26 + 
14f50 2b 20 2d 20 63 6f 6c 31 20 44 49 56 20 2b 20 28  + - col1 DIV + (
14f60 20 2b 20 32 35 20 29 20 41 53 20 63 6f 6c 32 20   + 25 ) AS col2 
14f70 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
14f80 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 32 34 0d  0..----..23..24.
14f90 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
14fa0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
14fb0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
14fc0 74 20 6c 61 62 65 6c 2d 34 35 36 0d 0a 53 45 4c  t label-456..SEL
14fd0 45 43 54 20 44 49 53 54 49 4e 43 54 20 32 36 20  ECT DISTINCT 26 
14fe0 2b 20 2b 20 2d 20 63 6f 6c 31 20 2f 20 2b 20 28  + + - col1 / + (
14ff0 20 2b 20 32 35 20 29 20 41 53 20 63 6f 6c 32 20   + 25 ) AS col2 
15000 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
15010 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 32 34 0d  0..----..23..24.
15020 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
15030 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
15040 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72   * FROM tab1 cor
15050 30 20 57 48 45 52 45 20 4e 4f 54 20 37 33 20 4e  0 WHERE NOT 73 N
15060 4f 54 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20  OT BETWEEN NULL 
15070 41 4e 44 20 2d 20 2d 20 28 20 2d 20 63 6f 6c 31  AND - - ( - col1
15080 20 29 20 2d 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d   ) - + col0..---
15090 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  -....query II ro
150a0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
150b0 53 54 49 4e 43 54 20 63 6f 6c 32 20 2b 20 2d 20  STINCT col2 + - 
150c0 63 6f 6c 31 2c 20 2b 20 32 39 20 41 53 20 63 6f  col1, + 29 AS co
150d0 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
150e0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 38 0d  cor0..----..-28.
150f0 0a 32 39 0d 0a 2d 33 37 0d 0a 32 39 0d 0a 2d 39  .29..-37..29..-9
15100 0d 0a 32 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..29....query I 
15110 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
15120 2d 20 34 31 20 46 52 4f 4d 20 74 61 62 30 20 41  - 41 FROM tab0 A
15130 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c  S cor0 WHERE NUL
15140 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  L IS NULL..----.
15150 0a 2d 34 31 0d 0a 2d 34 31 0d 0a 2d 34 31 0d 0a  .-41..-41..-41..
15160 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
15170 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
15180 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67  x: DIV for integ
15190 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
151a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
151b0 61 62 65 6c 2d 34 36 30 0d 0a 53 45 4c 45 43 54  abel-460..SELECT
151c0 20 2b 20 36 20 2d 20 2b 20 2b 20 53 55 4d 28 20   + 6 - + + SUM( 
151d0 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20  DISTINCT + col0 
151e0 29 20 44 49 56 20 43 4f 55 4e 54 28 20 2a 20 29  ) DIV COUNT( * )
151f0 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d   FROM tab2 cor0.
15200 0a 2d 2d 2d 2d 0d 0a 2d 35 35 0d 0a 0d 0a 73 6b  .----..-55....sk
15210 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
15220 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
15230 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
15240 65 6c 2d 34 36 30 0d 0a 53 45 4c 45 43 54 20 2b  el-460..SELECT +
15250 20 36 20 2d 20 2b 20 2b 20 53 55 4d 20 28 20 44   6 - + + SUM ( D
15260 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20 29  ISTINCT + col0 )
15270 20 2f 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46   / COUNT ( * ) F
15280 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d  ROM tab2 cor0..-
15290 2d 2d 2d 0d 0a 2d 35 35 0d 0a 0d 0a 6f 6e 6c 79  ---..-55....only
152a0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
152b0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..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 36 31 0d 0a 53 45 4c 45 43 54  abel-461..SELECT
152e0 20 44 49 53 54 49 4e 43 54 20 4d 41 58 28 20 44   DISTINCT MAX( D
152f0 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 29 20 2a  ISTINCT col0 ) *
15300 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20   + + COUNT( * ) 
15310 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
15320 0a 32 37 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .273....skipif m
15330 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
15340 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
15350 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 36 31  owsort label-461
15360 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
15370 54 20 4d 41 58 20 28 20 44 49 53 54 49 4e 43 54  T MAX ( DISTINCT
15380 20 63 6f 6c 30 20 29 20 2a 20 2b 20 2b 20 43 4f   col0 ) * + + CO
15390 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
153a0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 37 33 0d 0a  ab1..----..273..
153b0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
153c0 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2b  t..SELECT col0 +
153d0 20 2d 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c   - - col0 AS col
153e0 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
153f0 2d 0d 0a 31 37 34 0d 0a 31 39 34 0d 0a 33 30 0d  -..174..194..30.
15400 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
15410 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
15420 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
15430 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
15440 4e 4f 54 20 2b 20 37 34 20 49 53 20 4e 55 4c 4c  NOT + 74 IS NULL
15450 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
15460 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34   hashing to c4b4
15470 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30  2765dff94eaaa460
15480 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a  40e537fb43b7....
15490 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
154a0 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49  AST syntax: DECI
154b0 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  MAL type: ..quer
154c0 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
154d0 65 6c 2d 34 36 34 0d 0a 53 45 4c 45 43 54 20 44  el-464..SELECT D
154e0 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 2b 20 2b  ISTINCT col0 + +
154f0 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44   CAST( NULL AS D
15500 45 43 49 4d 41 4c 20 29 20 41 53 20 63 6f 6c 31  ECIMAL ) AS col1
15510 2c 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32  , + col2 AS col2
15520 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
15530 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
15540 31 30 0d 0a 4e 55 4c 4c 0d 0a 34 37 0d 0a 4e 55  10..NULL..47..NU
15550 4c 4c 0d 0a 39 39 0d 0a 0d 0a 73 6b 69 70 69 66  LL..99....skipif
15560 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
15570 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
15580 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
15590 34 36 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  464..SELECT DIST
155a0 49 4e 43 54 20 63 6f 6c 30 20 2b 20 2b 20 43 41  INCT col0 + + CA
155b0 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41  ST ( NULL AS REA
155c0 4c 20 29 20 41 53 20 63 6f 6c 31 2c 20 2b 20 63  L ) AS col1, + c
155d0 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol2 AS col2 FROM
155e0 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
155f0 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 31 30 0d 0a 4e  ---..NULL..10..N
15600 55 4c 4c 0d 0a 34 37 0d 0a 4e 55 4c 4c 0d 0a 39  ULL..47..NULL..9
15610 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  9....query I row
15620 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
15630 20 2b 20 63 6f 6c 31 20 2d 20 2b 20 36 32 20 41   + col1 - + 62 A
15640 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
15650 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
15660 2d 34 31 0d 0a 2d 36 31 0d 0a 31 39 0d 0a 0d 0a  -41..-61..19....
15670 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
15680 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31  .SELECT ALL col1
15690 20 2a 20 2b 20 39 31 20 2d 20 2b 20 34 31 20 46   * + 91 - + 41 F
156a0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
156b0 0d 0a 2d 2d 2d 2d 0d 0a 34 36 30 30 0d 0a 36 30  ..----..4600..60
156c0 35 36 0d 0a 36 39 36 36 0d 0a 0d 0a 6f 6e 6c 79  56..6966....only
156d0 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
156e0 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
156f0 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
15700 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 36 37  owsort label-467
15710 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
15720 54 20 2d 20 38 36 20 2a 20 2d 20 2b 20 63 6f 6c  T - 86 * - + col
15730 32 20 2d 20 2b 20 2b 20 63 6f 6c 30 20 44 49 56  2 - + + col0 DIV
15740 20 2d 20 35 31 20 41 53 20 63 6f 6c 31 20 46 52   - 51 AS col1 FR
15750 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
15760 0a 2d 2d 2d 2d 0d 0a 31 39 37 38 0d 0a 33 34 34  .----..1978..344
15770 31 0d 0a 34 39 38 39 0d 0a 0d 0a 73 6b 69 70 69  1..4989....skipi
15780 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
15790 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
157a0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
157b0 34 36 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  467..SELECT DIST
157c0 49 4e 43 54 20 2d 20 38 36 20 2a 20 2d 20 2b 20  INCT - 86 * - + 
157d0 63 6f 6c 32 20 2d 20 2b 20 2b 20 63 6f 6c 30 20  col2 - + + col0 
157e0 2f 20 2d 20 35 31 20 41 53 20 63 6f 6c 31 20 46  / - 51 AS col1 F
157f0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
15800 0d 0a 2d 2d 2d 2d 0d 0a 31 39 37 38 0d 0a 33 34  ..----..1978..34
15810 34 31 0d 0a 34 39 38 39 0d 0a 0d 0a 6f 6e 6c 79  41..4989....only
15820 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
15830 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
15840 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
15850 61 62 65 6c 2d 34 36 38 0d 0a 53 45 4c 45 43 54  abel-468..SELECT
15860 20 41 4c 4c 20 2b 20 39 35 20 2b 20 2b 20 43 4f   ALL + 95 + + CO
15870 55 4e 54 28 20 41 4c 4c 20 2b 20 33 20 29 20 46  UNT( ALL + 3 ) F
15880 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
15890 0d 0a 2d 2d 2d 2d 0d 0a 39 38 0d 0a 0d 0a 73 6b  ..----..98....sk
158a0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
158b0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
158c0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
158d0 65 6c 2d 34 36 38 0d 0a 53 45 4c 45 43 54 20 41  el-468..SELECT A
158e0 4c 4c 20 2b 20 39 35 20 2b 20 2b 20 43 4f 55 4e  LL + 95 + + COUN
158f0 54 20 28 20 41 4c 4c 20 2b 20 33 20 29 20 46 52  T ( ALL + 3 ) FR
15900 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
15910 0a 2d 2d 2d 2d 0d 0a 39 38 0d 0a 0d 0a 71 75 65  .----..98....que
15920 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
15930 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 36 30  LECT DISTINCT 60
15940 20 2d 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74   - - col0 FROM t
15950 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
15960 2d 0d 0a 31 31 31 0d 0a 31 34 35 0d 0a 31 35 31  -..111..145..151
15970 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
15980 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
15990 49 4e 43 54 20 2d 20 63 6f 6c 31 20 2b 20 2b 20  INCT - col1 + + 
159a0 2d 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 32 20  - col0 * + col2 
159b0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
159c0 32 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  2 WHERE NOT NULL
159d0 20 42 45 54 57 45 45 4e 20 2b 20 63 6f 6c 31 20   BETWEEN + col1 
159e0 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  AND NULL..----..
159f0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
15a00 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f  t..SELECT ALL co
15a10 6c 30 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 2a 20  l0 * - - col0 * 
15a20 2d 20 28 20 2d 20 63 6f 6c 31 20 29 20 2b 20 2b  - ( - col1 ) + +
15a30 20 2b 20 38 20 46 52 4f 4d 20 74 61 62 31 20 57   + 8 FROM tab1 W
15a40 48 45 52 45 20 4e 4f 54 20 28 20 28 20 36 34 20  HERE NOT ( ( 64 
15a50 3c 20 4e 55 4c 4c 20 29 20 29 0d 0a 2d 2d 2d 2d  < NULL ) )..----
15a60 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
15a70 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
15a80 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
15a90 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
15aa0 61 62 65 6c 2d 34 37 32 0d 0a 53 45 4c 45 43 54  abel-472..SELECT
15ab0 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 44   DISTINCT col2 D
15ac0 49 56 20 2b 20 34 32 20 63 6f 6c 31 20 46 52 4f  IV + 42 col1 FRO
15ad0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab0..----..0.
15ae0 0a 31 0d 0a 32 0d 0a 0d 0a 73 6b 69 70 69 66 20  .1..2....skipif 
15af0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
15b00 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70  atible..skipif p
15b10 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
15b20 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
15b30 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
15b40 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
15b50 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
15b60 20 6c 61 62 65 6c 2d 34 37 32 0d 0a 53 45 4c 45   label-472..SELE
15b70 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32  CT DISTINCT col2
15b80 20 2f 20 2b 20 34 32 20 63 6f 6c 31 20 46 52 4f   / + 42 col1 FRO
15b90 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab0..----..0.
15ba0 0a 31 0d 0a 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .1..2....onlyif 
15bb0 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
15bc0 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
15bd0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
15be0 6f 72 74 20 6c 61 62 65 6c 2d 34 37 33 0d 0a 53  ort label-473..S
15bf0 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2a 20 2b  ELECT - col0 * +
15c00 20 2d 20 63 6f 6c 30 20 2a 20 43 41 53 54 28 20   - col0 * CAST( 
15c10 2d 20 63 6f 6c 30 20 41 53 20 53 49 47 4e 45 44  - col0 AS SIGNED
15c20 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
15c30 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
15c40 2d 2d 0d 0a 2d 33 33 37 35 0d 0a 2d 36 35 38 35  --..-3375..-6585
15c50 30 33 0d 0a 2d 39 31 32 36 37 33 0d 0a 0d 0a 73  03..-912673....s
15c60 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
15c70 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
15c80 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
15c90 62 65 6c 2d 34 37 33 0d 0a 53 45 4c 45 43 54 20  bel-473..SELECT 
15ca0 2d 20 63 6f 6c 30 20 2a 20 2b 20 2d 20 63 6f 6c  - col0 * + - col
15cb0 30 20 2a 20 43 41 53 54 20 28 20 2d 20 63 6f 6c  0 * CAST ( - col
15cc0 30 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41  0 AS INTEGER ) A
15cd0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
15ce0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
15cf0 2d 33 33 37 35 0d 0a 2d 36 35 38 35 30 33 0d 0a  -3375..-658503..
15d00 2d 39 31 32 36 37 33 0d 0a 0d 0a 71 75 65 72 79  -912673....query
15d10 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
15d20 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
15d30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
15d40 4f 54 20 2d 20 39 31 20 49 53 20 4e 55 4c 4c 0d  OT - 91 IS NULL.
15d50 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
15d60 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32  hashing to c4b42
15d70 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34  765dff94eaaa4604
15d80 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71  0e537fb43b7....q
15d90 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
15da0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
15db0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
15dc0 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 31 37 20   WHERE NOT - 17 
15dd0 2d 20 2b 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c  - + col0 IS NULL
15de0 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
15df0 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39   hashing to 75c9
15e00 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62 66  98aa53ac83218cbf
15e10 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a  2feb962d0a49....
15e20 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
15e30 0a 53 45 4c 45 43 54 20 2b 20 2d 20 35 35 20 46  .SELECT + - 55 F
15e40 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
15e50 20 57 48 45 52 45 20 4e 4f 54 20 36 35 20 2a 20   WHERE NOT 65 * 
15e60 2b 20 28 20 2d 20 36 35 20 29 20 49 53 20 4e 4f  + ( - 65 ) IS NO
15e70 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  T NULL..----....
15e80 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
15e90 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
15ea0 54 20 63 6f 6c 30 20 2b 20 2b 20 2b 20 63 6f 6c  T col0 + + + col
15eb0 30 20 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 32 20  0 AS col2, col2 
15ec0 2a 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 2b 20 34  * + col2 * - + 4
15ed0 33 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  3 FROM tab1 AS c
15ee0 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20  or0 WHERE NOT ( 
15ef0 4e 55 4c 4c 20 29 20 3e 3d 20 4e 55 4c 4c 0d 0a  NULL ) >= NULL..
15f00 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
15f10 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
15f20 44 49 53 54 49 4e 43 54 20 2b 20 28 20 2d 20 2d  DISTINCT + ( - -
15f30 20 39 34 20 29 20 41 53 20 63 6f 6c 31 20 46 52   94 ) AS col1 FR
15f40 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d  OM tab1 cor0..--
15f50 2d 2d 0d 0a 39 34 0d 0a 0d 0a 71 75 65 72 79 20  --..94....query 
15f60 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
15f70 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
15f80 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab2 WHERE NOT - 
15f90 2d 20 33 39 20 49 4e 20 28 20 2b 20 63 6f 6c 30  - 39 IN ( + col0
15fa0 2c 20 2d 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d  , - col2 )..----
15fb0 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
15fc0 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33  ng to 75c998aa53
15fd0 61 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36  ac83218cbf2feb96
15fe0 32 64 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20  2d0a49....query 
15ff0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
16000 54 20 2d 20 63 6f 6c 31 20 2b 20 38 35 20 46 52  T - col1 + 85 FR
16010 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 34  OM tab0..----..4
16020 0d 0a 36 34 0d 0a 38 34 0d 0a 0d 0a 71 75 65 72  ..64..84....quer
16030 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
16040 45 43 54 20 33 31 20 2b 20 2b 20 63 6f 6c 32 20  ECT 31 + + col2 
16050 2a 20 2d 20 2b 20 36 35 20 2b 20 2b 20 2b 20 34  * - + 65 + + + 4
16060 39 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  9 AS col0 FROM t
16070 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 37 35 35  ab1..----..-3755
16080 0d 0a 2d 34 33 34 30 0d 0a 2d 36 31 36 30 0d 0a  ..-4340..-6160..
16090 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
160a0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 33  rt..SELECT ALL 3
160b0 37 2c 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74  7, + col2 FROM t
160c0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 37 0d 0a 35  ab1..----..37..5
160d0 39 0d 0a 33 37 0d 0a 36 38 0d 0a 33 37 0d 0a 39  9..37..68..37..9
160e0 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  6....skipif post
160f0 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
16100 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
16110 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
16120 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
16130 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
16140 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2b 20 2b  ELECT + col1 + +
16150 20 2d 20 63 6f 6c 32 20 2a 20 32 32 20 63 6f 6c   - col2 * 22 col
16160 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
16170 2d 0d 0a 2d 31 32 30 39 0d 0a 2d 34 35 35 0d 0a  -..-1209..-455..
16180 2d 38 30 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -803....query I 
16190 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
161a0 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20  DISTINCT + col2 
161b0 2d 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f  - + - col2 AS co
161c0 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45  l1 FROM tab0 WHE
161d0 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20 28  RE NULL NOT IN (
161e0 20 2d 20 63 6f 6c 30 2c 20 2b 20 36 35 2c 20 2d   - col0, + 65, -
161f0 20 63 6f 6c 30 20 2d 20 2d 20 2b 20 63 6f 6c 32   col0 - - + col2
16200 2c 20 2b 20 33 34 2c 20 34 37 20 29 0d 0a 2d 2d  , + 34, 47 )..--
16210 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  --....query III 
16220 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
16230 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
16240 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 28  tab1 WHERE NOT (
16250 20 2d 20 38 38 20 49 53 20 4e 4f 54 20 4e 55 4c   - 88 IS NOT NUL
16260 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  L )..----....que
16270 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
16280 45 4c 45 43 54 20 2d 20 2d 20 63 6f 6c 31 20 2a  ELECT - - col1 *
16290 20 63 6f 6c 31 2c 20 63 6f 6c 30 20 2a 20 63 6f   col1, col0 * co
162a0 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45  l1 FROM tab2 WHE
162b0 52 45 20 2d 20 34 35 20 3e 20 2b 20 34 35 0d 0a  RE - 45 > + 45..
162c0 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
162d0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
162e0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
162f0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
16300 6c 2d 34 38 37 0d 0a 53 45 4c 45 43 54 20 41 4c  l-487..SELECT AL
16310 4c 20 2b 20 38 36 20 2a 20 2d 20 2b 20 37 32 20  L + 86 * - + 72 
16320 41 53 20 63 6f 6c 31 2c 20 53 55 4d 28 20 44 49  AS col1, SUM( DI
16330 53 54 49 4e 43 54 20 2d 20 2d 20 63 6f 6c 30 20  STINCT - - col0 
16340 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  ) col2 FROM tab0
16350 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 31   cor0..----..-61
16360 39 32 0d 0a 31 39 39 0d 0a 0d 0a 73 6b 69 70 69  92..199....skipi
16370 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
16380 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66  mpatible..skipif
16390 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
163a0 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
163b0 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
163c0 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
163d0 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  s..query II rows
163e0 6f 72 74 20 6c 61 62 65 6c 2d 34 38 37 0d 0a 53  ort label-487..S
163f0 45 4c 45 43 54 20 41 4c 4c 20 2b 20 38 36 20 2a  ELECT ALL + 86 *
16400 20 2d 20 2b 20 37 32 20 41 53 20 63 6f 6c 31 2c   - + 72 AS col1,
16410 20 53 55 4d 20 28 20 44 49 53 54 49 4e 43 54 20   SUM ( DISTINCT 
16420 2d 20 2d 20 63 6f 6c 30 20 29 20 63 6f 6c 32 20  - - col0 ) col2 
16430 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a  FROM tab0 cor0..
16440 2d 2d 2d 2d 0d 0a 2d 36 31 39 32 0d 0a 31 39 39  ----..-6192..199
16450 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
16460 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
16470 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
16480 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
16490 20 4e 4f 54 20 34 36 20 2a 20 2d 20 63 6f 6c 30   NOT 46 * - col0
164a0 20 2d 20 2b 20 63 6f 6c 31 20 42 45 54 57 45 45   - + col1 BETWEE
164b0 4e 20 4e 55 4c 4c 20 41 4e 44 20 2b 20 34 35 0d  N NULL AND + 45.
164c0 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
164d0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
164e0 20 44 49 53 54 49 4e 43 54 20 2d 20 39 37 20 2d   DISTINCT - 97 -
164f0 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 32   - col1 * + col2
16500 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
16510 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
16520 0d 0a 31 31 33 0d 0a 32 0d 0a 33 37 31 30 0d 0a  ..113..2..3710..
16530 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
16540 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
16550 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
16560 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
16570 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
16580 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
16590 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 2a 20  CT ALL + col1 * 
165a0 2b 20 2d 20 63 6f 6c 30 20 63 6f 6c 32 20 46 52  + - col0 col2 FR
165b0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
165c0 0a 2d 2d 2d 2d 0d 0a 2d 32 33 34 36 0d 0a 2d 34  .----..-2346..-4
165d0 39 32 38 0d 0a 2d 35 30 32 35 0d 0a 0d 0a 6f 6e  928..-5025....on
165e0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
165f0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
16600 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
16610 20 6c 61 62 65 6c 2d 34 39 31 0d 0a 53 45 4c 45   label-491..SELE
16620 43 54 20 44 49 53 54 49 4e 43 54 20 4d 41 58 28  CT DISTINCT MAX(
16630 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 29 20 2a 20   ALL - col0 ) * 
16640 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f  COUNT( * ) AS co
16650 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l2 FROM tab1..--
16660 2d 2d 0d 0a 2d 31 35 33 0d 0a 0d 0a 73 6b 69 70  --..-153....skip
16670 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
16680 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
16690 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
166a0 2d 34 39 31 0d 0a 53 45 4c 45 43 54 20 44 49 53  -491..SELECT DIS
166b0 54 49 4e 43 54 20 4d 41 58 20 28 20 41 4c 4c 20  TINCT MAX ( ALL 
166c0 2d 20 63 6f 6c 30 20 29 20 2a 20 43 4f 55 4e 54  - col0 ) * COUNT
166d0 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46   ( * ) AS col2 F
166e0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
166f0 2d 31 35 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49  -153....query II
16700 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
16710 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48  T * FROM tab1 WH
16720 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 32 20 2d  ERE NOT - col2 -
16730 20 2d 20 28 20 2b 20 63 6f 6c 30 20 29 20 3c 3d   - ( + col0 ) <=
16740 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d   ( NULL )..----.
16750 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
16760 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
16770 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
16780 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
16790 61 62 65 6c 2d 34 39 33 0d 0a 53 45 4c 45 43 54  abel-493..SELECT
167a0 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31   DISTINCT + col1
167b0 20 2a 20 2d 20 2b 20 63 6f 6c 31 2c 20 43 41 53   * - + col1, CAS
167c0 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
167d0 44 20 29 20 2b 20 63 6f 6c 30 20 2b 20 63 6f 6c  D ) + col0 + col
167e0 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  0 AS col0 FROM t
167f0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 4e  ab0..----..-1..N
16800 55 4c 4c 0d 0a 2d 34 34 31 0d 0a 4e 55 4c 4c 0d  ULL..-441..NULL.
16810 0a 2d 36 35 36 31 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  .-6561..NULL....
16820 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
16830 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
16840 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
16850 6c 61 62 65 6c 2d 34 39 33 0d 0a 53 45 4c 45 43  label-493..SELEC
16860 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  T DISTINCT + col
16870 31 20 2a 20 2d 20 2b 20 63 6f 6c 31 2c 20 43 41  1 * - + col1, CA
16880 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
16890 45 47 45 52 20 29 20 2b 20 63 6f 6c 30 20 2b 20  EGER ) + col0 + 
168a0 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f  col0 AS col0 FRO
168b0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab0..----..-1
168c0 0d 0a 4e 55 4c 4c 0d 0a 2d 34 34 31 0d 0a 4e 55  ..NULL..-441..NU
168d0 4c 4c 0d 0a 2d 36 35 36 31 0d 0a 4e 55 4c 4c 0d  LL..-6561..NULL.
168e0 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
168f0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
16900 49 4e 43 54 20 63 6f 6c 32 20 2a 20 2d 20 32 32  INCT col2 * - 22
16910 20 41 53 20 63 6f 6c 32 2c 20 2b 20 35 30 20 41   AS col2, + 50 A
16920 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
16930 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 33 34 0d 0a 35  ..----..-1034..5
16940 30 0d 0a 2d 32 31 37 38 0d 0a 35 30 0d 0a 2d 32  0..-2178..50..-2
16950 32 30 0d 0a 35 30 0d 0a 0d 0a 71 75 65 72 79 20  20..50....query 
16960 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
16970 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ECT * FROM tab2 
16980 57 48 45 52 45 20 4e 4f 54 20 36 35 20 4e 4f 54  WHERE NOT 65 NOT
16990 20 42 45 54 57 45 45 4e 20 2d 20 63 6f 6c 32 20   BETWEEN - col2 
169a0 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  AND NULL..----..
169b0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
169c0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
169d0 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  * FROM tab1 WHER
169e0 45 20 4e 4f 54 20 4e 55 4c 4c 20 42 45 54 57 45  E NOT NULL BETWE
169f0 45 4e 20 2d 20 2b 20 32 38 20 41 4e 44 20 2b 20  EN - + 28 AND + 
16a00 38 37 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  87..----....only
16a10 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
16a20 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
16a30 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
16a40 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 39 37  owsort label-497
16a50 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 63 6f 6c  ..SELECT - + col
16a60 30 20 2a 20 2b 20 2d 20 36 30 20 44 49 56 20 2b  0 * + - 60 DIV +
16a70 20 35 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d   5 + - col0 FROM
16a80 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
16a90 2d 2d 2d 0d 0a 31 30 36 37 0d 0a 31 36 35 0d 0a  ---..1067..165..
16aa0 39 35 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  957....skipif my
16ab0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
16ac0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
16ad0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 39 37 0d  wsort label-497.
16ae0 0a 53 45 4c 45 43 54 20 2d 20 2b 20 63 6f 6c 30  .SELECT - + col0
16af0 20 2a 20 2b 20 2d 20 36 30 20 2f 20 2b 20 35 20   * + - 60 / + 5 
16b00 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  + - col0 FROM ta
16b10 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
16b20 0d 0a 31 30 36 37 0d 0a 31 36 35 0d 0a 39 35 37  ..1067..165..957
16b30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
16b40 6f 72 74 0d 0a 53 45 4c 45 43 54 20 35 38 20 2a  ort..SELECT 58 *
16b50 20 2d 20 2b 20 63 6f 6c 30 20 2d 20 2b 20 2b 20   - + col0 - + + 
16b60 34 38 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74  48 + col1 FROM t
16b70 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
16b80 2d 0d 0a 2d 32 39 39 32 0d 0a 2d 34 39 37 33 0d  -..-2992..-4973.
16b90 0a 2d 35 32 37 39 0d 0a 0d 0a 6f 6e 6c 79 69 66  .-5279....onlyif
16ba0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
16bb0 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
16bc0 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
16bd0 73 6f 72 74 20 6c 61 62 65 6c 2d 34 39 39 0d 0a  sort label-499..
16be0 53 45 4c 45 43 54 20 2d 20 43 41 53 54 28 20 2d  SELECT - CAST( -
16bf0 20 28 20 63 6f 6c 30 20 29 20 41 53 20 53 49 47   ( col0 ) AS SIG
16c00 4e 45 44 20 29 20 2b 20 2d 20 63 6f 6c 30 20 46  NED ) + - col0 F
16c10 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d  ROM tab0 cor0..-
16c20 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a  ---..0..0..0....
16c30 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
16c40 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
16c50 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
16c60 61 62 65 6c 2d 34 39 39 0d 0a 53 45 4c 45 43 54  abel-499..SELECT
16c70 20 2d 20 43 41 53 54 20 28 20 2d 20 28 20 63 6f   - CAST ( - ( co
16c80 6c 30 20 29 20 41 53 20 49 4e 54 45 47 45 52 20  l0 ) AS INTEGER 
16c90 29 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20  ) + - col0 FROM 
16ca0 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
16cb0 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 71 75 65 72  .0..0..0....quer
16cc0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
16cd0 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 41  ECT ALL - col2 A
16ce0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
16cf0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
16d00 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  NULL IS NULL..--
16d10 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  --....query III 
16d20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
16d30 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
16d40 45 20 2b 20 31 38 20 49 53 20 4e 55 4c 4c 0d 0a  E + 18 IS NULL..
16d50 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
16d60 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
16d70 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48  T * FROM tab0 WH
16d80 45 52 45 20 2b 20 28 20 2b 20 63 6f 6c 30 20 29  ERE + ( + col0 )
16d90 20 2d 20 2d 20 31 36 20 2b 20 2d 20 63 6f 6c 31   - - 16 + - col1
16da0 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
16db0 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
16dc0 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35  hing to c4b42765
16dd0 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35  dff94eaaa46040e5
16de0 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72  37fb43b7....quer
16df0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
16e00 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  ECT DISTINCT col
16e10 32 20 2a 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 63  2 * - col0 + + c
16e20 6f 6c 32 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 2d  ol2 * - - col0 -
16e30 20 2d 20 38 37 20 41 53 20 63 6f 6c 31 20 46 52   - 87 AS col1 FR
16e40 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
16e50 0a 2d 2d 2d 2d 0d 0a 38 37 0d 0a 0d 0a 6f 6e 6c  .----..87....onl
16e60 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
16e70 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
16e80 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
16e90 6c 61 62 65 6c 2d 35 30 34 0d 0a 53 45 4c 45 43  label-504..SELEC
16ea0 54 20 53 55 4d 28 20 2b 20 38 39 20 29 20 41 53  T SUM( + 89 ) AS
16eb0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
16ec0 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
16ed0 49 4e 20 74 61 62 30 20 63 6f 72 31 0d 0a 2d 2d  IN tab0 cor1..--
16ee0 2d 2d 0d 0a 38 30 31 0d 0a 0d 0a 73 6b 69 70 69  --..801....skipi
16ef0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
16f00 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
16f10 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
16f20 35 30 34 0d 0a 53 45 4c 45 43 54 20 53 55 4d 20  504..SELECT SUM 
16f30 28 20 2b 20 38 39 20 29 20 41 53 20 63 6f 6c 30  ( + 89 ) AS col0
16f40 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
16f50 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
16f60 62 30 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 38  b0 cor1..----..8
16f70 30 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  01....query III 
16f80 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
16f90 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
16fa0 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2b  tab2 WHERE NOT +
16fb0 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 2b 20 39 34   - col2 * + + 94
16fc0 20 42 45 54 57 45 45 4e 20 2b 20 2d 20 37 20 41   BETWEEN + - 7 A
16fd0 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  ND NULL..----..9
16fe0 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
16ff0 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38  to 75c998aa53ac8
17000 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30  3218cbf2feb962d0
17010 61 34 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  a49....skipif po
17020 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
17030 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
17040 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
17050 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
17060 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
17070 0a 53 45 4c 45 43 54 20 2b 20 2b 20 63 6f 6c 30  .SELECT + + col0
17080 20 2a 20 2d 20 2d 20 30 20 2a 20 2b 20 2d 20 28   * - - 0 * + - (
17090 20 2d 20 2b 20 63 6f 6c 32 20 29 20 63 6f 6c 31   - + col2 ) col1
170a0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
170b0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a  r0..----..0..0..
170c0 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  0....query III r
170d0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
170e0 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 63  LL * FROM tab1 c
170f0 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  or0 WHERE NOT + 
17100 63 6f 6c 31 20 3c 20 34 30 20 2f 20 2b 20 2b 20  col1 < 40 / + + 
17110 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a  col1..----..51..
17120 31 34 0d 0a 39 36 0d 0a 39 31 0d 0a 34 37 0d 0a  14..96..91..47..
17130 36 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  68....onlyif mys
17140 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
17150 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
17160 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
17170 30 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  08..SELECT DISTI
17180 4e 43 54 20 2d 20 2d 20 53 55 4d 28 20 41 4c 4c  NCT - - SUM( ALL
17190 20 2d 20 2b 20 39 38 20 29 20 41 53 20 63 6f 6c   - + 98 ) AS col
171a0 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
171b0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 39 34 0d  or0..----..-294.
171c0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
171d0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
171e0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
171f0 74 20 6c 61 62 65 6c 2d 35 30 38 0d 0a 53 45 4c  t label-508..SEL
17200 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2d  ECT DISTINCT - -
17210 20 53 55 4d 20 28 20 41 4c 4c 20 2d 20 2b 20 39   SUM ( ALL - + 9
17220 38 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  8 ) AS col0 FROM
17230 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
17240 2d 2d 2d 0d 0a 2d 32 39 34 0d 0a 0d 0a 71 75 65  ---..-294....que
17250 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
17260 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2a 20 2b 20  LECT - col1 * + 
17270 2d 20 34 36 20 2b 20 2b 20 2b 20 63 6f 6c 31 20  - 46 + + + col1 
17280 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
17290 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 39 37 0d 0a 33  0..----..2397..3
172a0 31 34 39 0d 0a 33 36 31 39 0d 0a 0d 0a 6f 6e 6c  149..3619....onl
172b0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
172c0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
172d0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
172e0 20 6c 61 62 65 6c 2d 35 31 30 0d 0a 53 45 4c 45   label-510..SELE
172f0 43 54 20 41 4c 4c 20 34 30 20 41 53 20 63 6f 6c  CT ALL 40 AS col
17300 32 2c 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52  2, COUNT( * ) FR
17310 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
17320 0a 2d 2d 2d 2d 0d 0a 34 30 0d 0a 33 0d 0a 0d 0a  .----..40..3....
17330 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
17340 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
17350 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
17360 6c 61 62 65 6c 2d 35 31 30 0d 0a 53 45 4c 45 43  label-510..SELEC
17370 54 20 41 4c 4c 20 34 30 20 41 53 20 63 6f 6c 32  T ALL 40 AS col2
17380 2c 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52  , COUNT ( * ) FR
17390 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
173a0 0a 2d 2d 2d 2d 0d 0a 34 30 0d 0a 33 0d 0a 0d 0a  .----..40..3....
173b0 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
173c0 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
173d0 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
173e0 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
173f0 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
17400 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
17410 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 33 37  CT DISTINCT - 37
17420 2c 20 38 31 20 2b 20 2b 20 63 6f 6c 31 20 63 6f  , 81 + + col1 co
17430 6c 30 2c 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  l0, col1 FROM ta
17440 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
17450 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
17460 6e 67 20 74 6f 20 36 62 33 62 61 64 35 38 62 39  ng to 6b3bad58b9
17470 31 64 63 39 31 34 33 31 32 32 65 35 66 65 33 31  1dc9143122e5fe31
17480 33 38 39 38 33 63 0d 0a 0d 0a 71 75 65 72 79 20  38983c....query 
17490 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
174a0 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 63  T DISTINCT + - c
174b0 6f 6c 32 20 2a 20 2d 20 33 37 20 2d 20 2d 20 63  ol2 * - 37 - - c
174c0 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol0 AS col0 FROM
174d0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
174e0 2d 2d 2d 0d 0a 31 35 34 34 0d 0a 32 32 32 31 0d  ---..1544..2221.
174f0 0a 38 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .897....onlyif m
17500 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
17510 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
17520 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
17530 72 74 20 6c 61 62 65 6c 2d 35 31 33 0d 0a 53 45  rt label-513..SE
17540 4c 45 43 54 20 63 6f 6c 31 20 44 49 56 20 2d 20  LECT col1 DIV - 
17550 63 6f 6c 30 20 2d 20 2b 20 35 37 20 44 49 56 20  col0 - + 57 DIV 
17560 2d 20 63 6f 6c 31 20 2b 20 2b 20 38 30 20 2b 20  - col1 + + 80 + 
17570 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46  - col0 AS col0 F
17580 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
17590 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 0d 0a 34 30 0d 0a  ..----..-5..40..
175a0 36 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  60....skipif mys
175b0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
175c0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
175d0 73 6f 72 74 20 6c 61 62 65 6c 2d 35 31 33 0d 0a  sort label-513..
175e0 53 45 4c 45 43 54 20 63 6f 6c 31 20 2f 20 2d 20  SELECT col1 / - 
175f0 63 6f 6c 30 20 2d 20 2b 20 35 37 20 2f 20 2d 20  col0 - + 57 / - 
17600 63 6f 6c 31 20 2b 20 2b 20 38 30 20 2b 20 2d 20  col1 + + 80 + - 
17610 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f  col0 AS col0 FRO
17620 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
17630 2d 2d 2d 2d 0d 0a 2d 35 0d 0a 34 30 0d 0a 36 30  ----..-5..40..60
17640 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
17650 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
17660 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57  FROM tab0 cor0 W
17670 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3d 20  HERE NOT NULL = 
17680 2d 20 32 35 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  - 25..----....qu
17690 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
176a0 45 4c 45 43 54 20 35 39 20 46 52 4f 4d 20 74 61  ELECT 59 FROM ta
176b0 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 2d  b1 WHERE NOT - -
176c0 20 63 6f 6c 31 20 4e 4f 54 20 42 45 54 57 45 45   col1 NOT BETWEE
176d0 4e 20 4e 55 4c 4c 20 41 4e 44 20 2d 20 2d 20 63  N NULL AND - - c
176e0 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  ol2..----....ski
176f0 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
17700 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
17710 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
17720 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
17730 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
17740 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
17750 6c 31 20 2a 20 36 36 20 2b 20 2d 20 2d 20 63 6f  l1 * 66 + - - co
17760 6c 32 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  l2 col0 FROM tab
17770 31 20 57 48 45 52 45 20 4e 4f 54 20 33 34 20 2a  1 WHERE NOT 34 *
17780 20 2d 20 63 6f 6c 31 20 42 45 54 57 45 45 4e 20   - col1 BETWEEN 
17790 28 20 4e 55 4c 4c 20 29 20 41 4e 44 20 4e 55 4c  ( NULL ) AND NUL
177a0 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  L..----....onlyi
177b0 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
177c0 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
177d0 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
177e0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 31 37 0d  wsort label-517.
177f0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
17800 20 35 33 20 44 49 56 20 2b 20 2d 20 63 6f 6c 32   53 DIV + - col2
17810 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
17820 0d 0a 2d 31 0d 0a 2d 32 0d 0a 30 0d 0a 0d 0a 73  ..-1..-2..0....s
17830 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
17840 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
17850 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
17860 62 65 6c 2d 35 31 37 0d 0a 53 45 4c 45 43 54 20  bel-517..SELECT 
17870 44 49 53 54 49 4e 43 54 20 35 33 20 2f 20 2b 20  DISTINCT 53 / + 
17880 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  - col2 FROM tab2
17890 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 32 0d 0a  ..----..-1..-2..
178a0 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
178b0 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
178c0 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
178d0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
178e0 6c 61 62 65 6c 2d 35 31 38 0d 0a 53 45 4c 45 43  label-518..SELEC
178f0 54 20 32 32 20 2a 20 2b 20 2d 20 63 6f 6c 32 20  T 22 * + - col2 
17900 44 49 56 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20  DIV - col2 FROM 
17910 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 32 0d 0a  tab1..----..22..
17920 32 32 0d 0a 32 32 0d 0a 0d 0a 73 6b 69 70 69 66  22..22....skipif
17930 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
17940 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
17950 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
17960 31 38 0d 0a 53 45 4c 45 43 54 20 32 32 20 2a 20  18..SELECT 22 * 
17970 2b 20 2d 20 63 6f 6c 32 20 2f 20 2d 20 63 6f 6c  + - col2 / - col
17980 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  2 FROM tab1..---
17990 2d 0d 0a 32 32 0d 0a 32 32 0d 0a 32 32 0d 0a 0d  -..22..22..22...
179a0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
179b0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
179c0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
179d0 6f 72 74 20 6c 61 62 65 6c 2d 35 31 39 0d 0a 53  ort label-519..S
179e0 45 4c 45 43 54 20 41 4c 4c 20 53 55 4d 28 20 41  ELECT ALL SUM( A
179f0 4c 4c 20 2d 20 2d 20 37 39 20 29 20 46 52 4f 4d  LL - - 79 ) FROM
17a00 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 37   tab0..----..237
17a10 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
17a20 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
17a30 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
17a40 72 74 20 6c 61 62 65 6c 2d 35 31 39 0d 0a 53 45  rt label-519..SE
17a50 4c 45 43 54 20 41 4c 4c 20 53 55 4d 20 28 20 41  LECT ALL SUM ( A
17a60 4c 4c 20 2d 20 2d 20 37 39 20 29 20 46 52 4f 4d  LL - - 79 ) FROM
17a70 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 37   tab0..----..237
17a80 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
17a90 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 32  sort..SELECT + 2
17aa0 30 20 41 53 20 63 6f 6c 32 2c 20 31 38 20 46 52  0 AS col2, 18 FR
17ab0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32  OM tab0..----..2
17ac0 30 0d 0a 31 38 0d 0a 32 30 0d 0a 31 38 0d 0a 32  0..18..20..18..2
17ad0 30 0d 0a 31 38 0d 0a 0d 0a 71 75 65 72 79 20 49  0..18....query I
17ae0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
17af0 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
17b00 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
17b10 54 20 2b 20 38 39 20 49 53 20 4e 4f 54 20 4e 55  T + 89 IS NOT NU
17b20 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
17b30 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
17b40 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 28  ECT DISTINCT - (
17b50 20 2b 20 2d 20 63 6f 6c 31 20 29 20 2a 20 2b 20   + - col1 ) * + 
17b60 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 63  col2 FROM tab1 c
17b70 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 34 34 0d  or0..----..1344.
17b80 0a 32 39 35 0d 0a 33 31 39 36 0d 0a 0d 0a 71 75  .295..3196....qu
17b90 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
17ba0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
17bb0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
17bc0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
17bd0 54 20 4e 55 4c 4c 20 3e 20 4e 55 4c 4c 0d 0a 2d  T NULL > NULL..-
17be0 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  ---....query II 
17bf0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
17c00 41 4c 4c 20 2d 20 32 38 2c 20 63 6f 6c 32 20 41  ALL - 28, col2 A
17c10 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
17c20 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
17c30 2d 32 38 0d 0a 35 39 0d 0a 2d 32 38 0d 0a 36 38  -28..59..-28..68
17c40 0d 0a 2d 32 38 0d 0a 39 36 0d 0a 0d 0a 6f 6e 6c  ..-28..96....onl
17c50 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
17c60 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
17c70 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
17c80 6c 61 62 65 6c 2d 35 32 35 0d 0a 53 45 4c 45 43  label-525..SELEC
17c90 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54  T DISTINCT COUNT
17ca0 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ( * ) AS col2 FR
17cb0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
17cc0 57 48 45 52 45 20 4e 4f 54 20 34 39 20 49 53 20  WHERE NOT 49 IS 
17cd0 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
17ce0 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
17cf0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
17d00 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
17d10 6f 72 74 20 6c 61 62 65 6c 2d 35 32 35 0d 0a 53  ort label-525..S
17d20 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43  ELECT DISTINCT C
17d30 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
17d40 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
17d50 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 34  cor0 WHERE NOT 4
17d60 39 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  9 IS NOT NULL..-
17d70 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ---..0....onlyif
17d80 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
17d90 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
17da0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
17db0 65 6c 2d 35 32 36 0d 0a 53 45 4c 45 43 54 20 41  el-526..SELECT A
17dc0 4c 4c 20 2d 20 28 20 2b 20 2d 20 43 4f 55 4e 54  LL - ( + - COUNT
17dd0 28 20 2a 20 29 20 29 20 2a 20 2b 20 28 20 43 4f  ( * ) ) * + ( CO
17de0 55 4e 54 28 20 2a 20 29 20 29 20 41 53 20 63 6f  UNT( * ) ) AS co
17df0 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
17e00 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d  cor0..----..9...
17e10 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
17e20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
17e30 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
17e40 6c 61 62 65 6c 2d 35 32 36 0d 0a 53 45 4c 45 43  label-526..SELEC
17e50 54 20 41 4c 4c 20 2d 20 28 20 2b 20 2d 20 43 4f  T ALL - ( + - CO
17e60 55 4e 54 20 28 20 2a 20 29 20 29 20 2a 20 2b 20  UNT ( * ) ) * + 
17e70 28 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29 20  ( COUNT ( * ) ) 
17e80 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
17e90 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
17ea0 0a 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .9....onlyif mys
17eb0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
17ec0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
17ed0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
17ee0 32 37 0d 0a 53 45 4c 45 43 54 20 2d 20 4d 41 58  27..SELECT - MAX
17ef0 28 20 2d 20 2b 20 39 32 20 29 20 46 52 4f 4d 20  ( - + 92 ) FROM 
17f00 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 39 32 0d 0a  tab2..----..92..
17f10 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
17f20 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
17f30 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
17f40 20 6c 61 62 65 6c 2d 35 32 37 0d 0a 53 45 4c 45   label-527..SELE
17f50 43 54 20 2d 20 4d 41 58 20 28 20 2d 20 2b 20 39  CT - MAX ( - + 9
17f60 32 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  2 ) FROM tab2..-
17f70 2d 2d 2d 0d 0a 39 32 0d 0a 0d 0a 71 75 65 72 79  ---..92....query
17f80 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
17f90 43 54 20 44 49 53 54 49 4e 43 54 20 37 32 20 2b  CT DISTINCT 72 +
17fa0 20 2d 20 28 20 2b 20 2b 20 28 20 2d 20 63 6f 6c   - ( + + ( - col
17fb0 32 20 29 20 29 20 2a 20 63 6f 6c 31 20 46 52 4f  2 ) ) * col1 FRO
17fc0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37  M tab0..----..17
17fd0 31 0d 0a 32 38 32 0d 0a 33 38 37 39 0d 0a 0d 0a  1..282..3879....
17fe0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
17ff0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
18000 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41  CT * FROM tab0 A
18010 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20 28  S cor0 WHERE - (
18020 20 63 6f 6c 32 20 29 20 2b 20 38 33 20 4e 4f 54   col2 ) + 83 NOT
18030 20 42 45 54 57 45 45 4e 20 2d 20 32 32 20 41 4e   BETWEEN - 22 AN
18040 44 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c  D - col2 * - col
18050 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  1..----....onlyi
18060 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
18070 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65  yntax: aggregate
18080 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
18090 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
180a0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 33  rowsort label-53
180b0 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  0..SELECT DISTIN
180c0 43 54 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53  CT CAST( NULL AS
180d0 20 53 49 47 4e 45 44 20 29 20 2f 20 2d 20 2b 20   SIGNED ) / - + 
180e0 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2d 20 53  COUNT( * ) + - S
180f0 55 4d 28 20 2b 20 2d 20 35 32 20 29 20 46 52 4f  UM( + - 52 ) FRO
18100 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
18110 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  ----..NULL....sk
18120 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
18130 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
18140 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
18150 65 6c 2d 35 33 30 0d 0a 53 45 4c 45 43 54 20 44  el-530..SELECT D
18160 49 53 54 49 4e 43 54 20 43 41 53 54 20 28 20 4e  ISTINCT CAST ( N
18170 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
18180 20 2f 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a   / - + COUNT ( *
18190 20 29 20 2b 20 2d 20 53 55 4d 20 28 20 2b 20 2d   ) + - SUM ( + -
181a0 20 35 32 20 29 20 46 52 4f 4d 20 74 61 62 30 20   52 ) FROM tab0 
181b0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
181c0 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ULL....query III
181d0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
181e0 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
181f0 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
18200 45 52 45 20 2d 20 63 6f 6c 32 20 2a 20 63 6f 6c  ERE - col2 * col
18210 31 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 2d 20 63  1 - col0 + + - c
18220 6f 6c 32 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  ol2 < NULL..----
18230 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
18240 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
18250 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53  L * FROM tab1 AS
18260 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
18270 63 6f 6c 30 20 42 45 54 57 45 45 4e 20 2b 20 37  col0 BETWEEN + 7
18280 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   AND NULL..----.
18290 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
182a0 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  rt..SELECT - col
182b0 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  1 AS col2 FROM t
182c0 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
182d0 45 20 32 20 3e 20 39 0d 0a 2d 2d 2d 2d 0d 0a 0d  E 2 > 9..----...
182e0 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
182f0 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
18300 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
18310 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
18320 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
18330 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
18340 54 20 44 49 53 54 49 4e 43 54 20 2d 20 34 38 20  T DISTINCT - 48 
18350 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
18360 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c  S cor0 WHERE NUL
18370 4c 20 4e 4f 54 20 49 4e 20 28 20 2d 20 63 6f 6c  L NOT IN ( - col
18380 32 2c 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d  2, col2 )..----.
18390 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
183a0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
183b0 20 2b 20 35 20 2b 20 2b 20 63 6f 6c 32 20 46 52   + 5 + + col2 FR
183c0 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d  OM tab1 cor0..--
183d0 2d 2d 0d 0a 31 30 31 0d 0a 36 34 0d 0a 37 33 0d  --..101..64..73.
183e0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
183f0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
18400 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
18410 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 33 36 0d  wsort label-536.
18420 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28  .SELECT - COUNT(
18430 20 2b 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c   + col2 ) AS col
18440 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  1 FROM tab0 cor0
18450 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b  ..----..-3....sk
18460 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
18470 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
18480 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
18490 65 6c 2d 35 33 36 0d 0a 53 45 4c 45 43 54 20 2d  el-536..SELECT -
184a0 20 43 4f 55 4e 54 20 28 20 2b 20 63 6f 6c 32 20   COUNT ( + col2 
184b0 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
184c0 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab0 cor0..----..
184d0 2d 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  -3....onlyif mys
184e0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
184f0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
18500 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
18510 33 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 4d  37..SELECT ALL M
18520 49 4e 28 20 2d 20 2d 20 63 6f 6c 31 20 29 20 41  IN( - - col1 ) A
18530 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
18540 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 0d 0a 73 6b  ..----..51....sk
18550 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
18560 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
18570 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
18580 65 6c 2d 35 33 37 0d 0a 53 45 4c 45 43 54 20 41  el-537..SELECT A
18590 4c 4c 20 4d 49 4e 20 28 20 2d 20 2d 20 63 6f 6c  LL MIN ( - - col
185a0 31 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  1 ) AS col0 FROM
185b0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d   tab2..----..51.
185c0 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
185d0 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
185e0 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
185f0 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
18600 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
18610 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
18620 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
18630 6c 32 20 41 53 20 63 6f 6c 30 2c 20 2d 20 63 6f  l2 AS col0, - co
18640 6c 32 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  l2 col0 FROM tab
18650 31 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 2d 35 39  1..----..59..-59
18660 0d 0a 36 38 0d 0a 2d 36 38 0d 0a 39 36 0d 0a 2d  ..68..-68..96..-
18670 39 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  96....query II r
18680 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
18690 4c 4c 20 63 6f 6c 30 2c 20 2d 20 63 6f 6c 30 20  LL col0, - col0 
186a0 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
186b0 4e 4f 54 20 4e 55 4c 4c 20 3c 20 4e 55 4c 4c 0d  NOT NULL < NULL.
186c0 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
186d0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
186e0 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f  e syntax: DIV fo
186f0 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
18700 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
18710 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 34 30 0d  wsort label-540.
18720 0a 53 45 4c 45 43 54 20 41 4c 4c 20 38 39 20 44  .SELECT ALL 89 D
18730 49 56 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20  IV + - COUNT( * 
18740 29 20 2b 20 2b 20 2b 20 39 20 41 53 20 63 6f 6c  ) + + + 9 AS col
18750 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
18760 2d 0d 0a 2d 32 30 0d 0a 0d 0a 73 6b 69 70 69 66  -..-20....skipif
18770 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
18780 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
18790 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
187a0 34 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 38  40..SELECT ALL 8
187b0 39 20 2f 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20  9 / + - COUNT ( 
187c0 2a 20 29 20 2b 20 2b 20 2b 20 39 20 41 53 20 63  * ) + + + 9 AS c
187d0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
187e0 2d 2d 2d 0d 0a 2d 32 30 0d 0a 0d 0a 6f 6e 6c 79  ---..-20....only
187f0 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
18800 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
18810 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
18820 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 34 31  owsort label-541
18830 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
18840 54 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 2d 20 63  T - col0 * - - c
18850 6f 6c 30 20 2b 20 2d 20 2b 20 63 6f 6c 31 20 2a  ol0 + - + col1 *
18860 20 31 37 20 44 49 56 20 63 6f 6c 30 20 46 52 4f   17 DIV col0 FRO
18870 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
18880 2d 2d 2d 2d 0d 0a 2d 32 36 30 35 0d 0a 2d 37 32  ----..-2605..-72
18890 32 36 0d 0a 2d 38 32 38 39 0d 0a 0d 0a 73 6b 69  26..-8289....ski
188a0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
188b0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
188c0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
188d0 6c 2d 35 34 31 0d 0a 53 45 4c 45 43 54 20 44 49  l-541..SELECT DI
188e0 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20 2a 20  STINCT - col0 * 
188f0 2d 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 2b 20 63  - - col0 + - + c
18900 6f 6c 31 20 2a 20 31 37 20 2f 20 63 6f 6c 30 20  ol1 * 17 / col0 
18910 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
18920 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 36 30 35 0d 0a  0..----..-2605..
18930 2d 37 32 32 36 0d 0a 2d 38 32 38 39 0d 0a 0d 0a  -7226..-8289....
18940 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
18950 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32  .SELECT ALL col2
18960 20 2d 20 2b 20 2b 20 31 39 20 46 52 4f 4d 20 74   - + + 19 FROM t
18970 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
18980 2d 0d 0a 32 31 0d 0a 33 39 0d 0a 34 0d 0a 0d 0a  -..21..39..4....
18990 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
189a0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c  ..SELECT ALL col
189b0 30 20 2a 20 2d 20 2d 20 63 6f 6c 32 20 2b 20 35  0 * - - col2 + 5
189c0 20 41 53 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c 32   AS col1, + col2
189d0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
189e0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 31 30 0d 0a 34  r0..----..710..4
189f0 37 0d 0a 38 37 35 0d 0a 31 30 0d 0a 39 36 30 38  7..875..10..9608
18a00 0d 0a 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..99....query I 
18a10 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
18a20 41 4c 4c 20 2d 20 2d 20 63 6f 6c 30 20 2b 20 2b  ALL - - col0 + +
18a30 20 33 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   30 AS col1 FROM
18a40 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
18a50 2d 2d 2d 0d 0a 31 30 35 0d 0a 37 36 0d 0a 39 34  ---..105..76..94
18a60 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
18a70 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  ort..SELECT - co
18a80 6c 31 20 2a 20 2d 20 63 6f 6c 30 20 2b 20 2b 20  l1 * - col0 + + 
18a90 63 6f 6c 32 20 2a 20 2d 20 2d 20 63 6f 6c 32 20  col2 * - - col2 
18aa0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
18ab0 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
18ac0 4e 55 4c 4c 20 3e 3d 20 2b 20 32 31 20 2a 20 2d  NULL >= + 21 * -
18ad0 20 33 34 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65   34..----....que
18ae0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
18af0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
18b00 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
18b10 45 20 4e 4f 54 20 2b 20 36 32 20 2b 20 2b 20 35  E NOT + 62 + + 5
18b20 38 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  8 IS NULL..----.
18b30 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
18b40 67 20 74 6f 20 63 34 62 34 32 37 36 35 64 66 66  g to c4b42765dff
18b50 39 34 65 61 61 61 34 36 30 34 30 65 35 33 37 66  94eaaa46040e537f
18b60 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72 79 20 49  b43b7....query I
18b70 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
18b80 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
18b90 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 2b 20  OM tab2 WHERE + 
18ba0 2b 20 63 6f 6c 31 20 2f 20 63 6f 6c 30 20 2b 20  + col1 / col0 + 
18bb0 2d 20 63 6f 6c 31 20 3e 20 2d 20 2b 20 63 6f 6c  - col1 > - + col
18bc0 30 0d 0a 2d 2d 2d 2d 0d 0a 37 35 0d 0a 36 37 0d  0..----..75..67.
18bd0 0a 35 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .58....query I r
18be0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
18bf0 6f 6c 31 20 2a 20 2b 20 2d 20 32 36 20 46 52 4f  ol1 * + - 26 FRO
18c00 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab1..----..-1
18c10 32 32 32 0d 0a 2d 31 33 30 0d 0a 2d 33 36 34 0d  222..-130..-364.
18c20 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
18c30 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
18c40 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
18c50 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
18c60 62 65 6c 2d 35 34 39 0d 0a 53 45 4c 45 43 54 20  bel-549..SELECT 
18c70 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41  col2 FROM tab1 A
18c80 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
18c90 20 63 6f 6c 31 20 3e 3d 20 2d 20 2b 20 28 20 2b   col1 >= - + ( +
18ca0 20 43 41 53 54 28 20 63 6f 6c 32 20 41 53 20 53   CAST( col2 AS S
18cb0 49 47 4e 45 44 20 29 20 29 20 2a 20 2b 20 28 20  IGNED ) ) * + ( 
18cc0 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a  + col1 )..----..
18cd0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
18ce0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
18cf0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
18d00 20 6c 61 62 65 6c 2d 35 34 39 0d 0a 53 45 4c 45   label-549..SELE
18d10 43 54 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  CT col2 FROM tab
18d20 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
18d30 4e 4f 54 20 63 6f 6c 31 20 3e 3d 20 2d 20 2b 20  NOT col1 >= - + 
18d40 28 20 2b 20 43 41 53 54 20 28 20 63 6f 6c 32 20  ( + CAST ( col2 
18d50 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20 2a  AS INTEGER ) ) *
18d60 20 2b 20 28 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d   + ( + col1 )..-
18d70 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ---....query III
18d80 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
18d90 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30   ALL * FROM tab0
18da0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b   AS cor0 WHERE +
18db0 20 63 6f 6c 32 20 2a 20 2d 20 2b 20 37 33 20 49   col2 * - + 73 I
18dc0 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  S NULL..----....
18dd0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
18de0 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
18df0 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
18e00 45 52 45 20 4e 4f 54 20 2d 20 28 20 2b 20 39 32  ERE NOT - ( + 92
18e10 20 29 20 3d 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d   ) = + col0..---
18e20 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
18e30 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35 64  ing to c4b42765d
18e40 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35 33  ff94eaaa46040e53
18e50 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72 79  7fb43b7....query
18e60 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
18e70 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  LECT * FROM tab2
18e80 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
18e90 4f 54 20 63 6f 6c 30 20 3d 20 2d 20 63 6f 6c 30  OT col0 = - col0
18ea0 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
18eb0 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39   hashing to 75c9
18ec0 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62 66  98aa53ac83218cbf
18ed0 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a  2feb962d0a49....
18ee0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
18ef0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
18f00 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
18f10 72 74 20 6c 61 62 65 6c 2d 35 35 33 0d 0a 53 45  rt label-553..SE
18f20 4c 45 43 54 20 41 4c 4c 20 28 20 43 4f 55 4e 54  LECT ALL ( COUNT
18f30 28 20 2a 20 29 20 29 20 41 53 20 63 6f 6c 30 20  ( * ) ) AS col0 
18f40 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
18f50 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b  0..----..3....sk
18f60 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
18f70 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
18f80 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
18f90 65 6c 2d 35 35 33 0d 0a 53 45 4c 45 43 54 20 41  el-553..SELECT A
18fa0 4c 4c 20 28 20 43 4f 55 4e 54 20 28 20 2a 20 29  LL ( COUNT ( * )
18fb0 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
18fc0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
18fd0 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49  --..3....query I
18fe0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
18ff0 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30   DISTINCT - col0
19000 20 2f 20 2b 20 34 38 20 2a 20 2d 20 2b 20 63 6f   / + 48 * - + co
19010 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  l2 FROM tab1 WHE
19020 52 45 20 35 38 20 42 45 54 57 45 45 4e 20 2d 20  RE 58 BETWEEN - 
19030 35 35 20 41 4e 44 20 2d 20 63 6f 6c 31 0d 0a 2d  55 AND - col1..-
19040 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
19050 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
19060 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a  x: DECIMAL type:
19070 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
19080 72 74 20 6c 61 62 65 6c 2d 35 35 35 0d 0a 53 45  rt label-555..SE
19090 4c 45 43 54 20 41 4c 4c 20 2d 20 33 33 20 2f 20  LECT ALL - 33 / 
190a0 2b 20 2b 20 37 37 20 2d 20 43 41 53 54 28 20 4e  + + 77 - CAST( N
190b0 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29  ULL AS DECIMAL )
190c0 20 2a 20 2b 20 34 37 20 46 52 4f 4d 20 74 61 62   * + 47 FROM tab
190d0 32 2c 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d  2, tab2 cor0..--
190e0 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
190f0 68 69 6e 67 20 74 6f 20 63 64 37 61 37 39 30 31  hing to cd7a7901
19100 65 34 37 63 31 35 31 35 35 34 30 34 61 66 66 30  e47c15155404aff0
19110 64 32 31 36 66 65 30 62 0d 0a 0d 0a 73 6b 69 70  d216fe0b....skip
19120 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
19130 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
19140 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
19150 2d 35 35 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -555..SELECT ALL
19160 20 2d 20 33 33 20 2f 20 2b 20 2b 20 37 37 20 2d   - 33 / + + 77 -
19170 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
19180 52 45 41 4c 20 29 20 2a 20 2b 20 34 37 20 46 52  REAL ) * + 47 FR
19190 4f 4d 20 74 61 62 32 2c 20 74 61 62 32 20 63 6f  OM tab2, tab2 co
191a0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  r0..----..9 valu
191b0 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 64  es hashing to cd
191c0 37 61 37 39 30 31 65 34 37 63 31 35 31 35 35 34  7a7901e47c151554
191d0 30 34 61 66 66 30 64 32 31 36 66 65 30 62 0d 0a  04aff0d216fe0b..
191e0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
191f0 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  rt..SELECT - col
19200 32 20 41 53 20 63 6f 6c 30 2c 20 2b 20 63 6f 6c  2 AS col0, + col
19210 30 20 2b 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 2d  0 + + - col1 * -
19220 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52   col1 AS col2 FR
19230 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d  OM tab0 cor0..--
19240 2d 2d 0d 0a 2d 31 30 0d 0a 35 32 38 0d 0a 2d 34  --..-10..528..-4
19250 37 0d 0a 36 35 37 36 0d 0a 2d 39 39 0d 0a 39 38  7..6576..-99..98
19260 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
19270 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
19280 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
19290 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
192a0 20 6c 61 62 65 6c 2d 35 35 37 0d 0a 53 45 4c 45   label-557..SELE
192b0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41  CT * FROM tab1 A
192c0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
192d0 20 2d 20 63 6f 6c 31 20 3e 3d 20 2b 20 2b 20 43   - col1 >= + + C
192e0 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
192f0 4e 45 44 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73  NED )..----....s
19300 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
19310 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
19320 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
19330 6c 61 62 65 6c 2d 35 35 37 0d 0a 53 45 4c 45 43  label-557..SELEC
19340 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53  T * FROM tab1 AS
19350 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
19360 2d 20 63 6f 6c 31 20 3e 3d 20 2b 20 2b 20 43 41  - col1 >= + + CA
19370 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
19380 45 47 45 52 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  EGER )..----....
19390 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
193a0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
193b0 20 2d 20 2d 20 36 32 20 2b 20 2b 20 63 6f 6c 30   - - 62 + + col0
193c0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
193d0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
193e0 0d 0a 31 34 39 0d 0a 31 35 39 0d 0a 37 37 0d 0a  ..149..159..77..
193f0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
19400 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
19410 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
19420 73 6f 72 74 20 6c 61 62 65 6c 2d 35 35 39 0d 0a  sort label-559..
19430 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28 20  SELECT - COUNT( 
19440 2a 20 29 20 2a 20 2b 20 2b 20 33 39 20 46 52 4f  * ) * + + 39 FRO
19450 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
19460 2d 2d 2d 2d 0d 0a 2d 31 31 37 0d 0a 0d 0a 73 6b  ----..-117....sk
19470 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
19480 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
19490 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
194a0 65 6c 2d 35 35 39 0d 0a 53 45 4c 45 43 54 20 2d  el-559..SELECT -
194b0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2b   COUNT ( * ) * +
194c0 20 2b 20 33 39 20 46 52 4f 4d 20 74 61 62 31 20   + 39 FROM tab1 
194d0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
194e0 31 31 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  117....query III
194f0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
19500 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
19510 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  cor0 WHERE NOT N
19520 55 4c 4c 20 3c 3e 20 63 6f 6c 32 20 2a 20 2d 20  ULL <> col2 * - 
19530 36 37 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  67..----....only
19540 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
19550 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
19560 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
19570 61 62 65 6c 2d 35 36 31 0d 0a 53 45 4c 45 43 54  abel-561..SELECT
19580 20 41 4c 4c 20 2d 20 53 55 4d 28 20 2b 20 63 6f   ALL - SUM( + co
19590 6c 32 20 29 20 2a 20 2b 20 35 20 2d 20 2b 20 38  l2 ) * + 5 - + 8
195a0 30 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  0 col2 FROM tab1
195b0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
195c0 2d 31 31 39 35 0d 0a 0d 0a 73 6b 69 70 69 66 20  -1195....skipif 
195d0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
195e0 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70  atible..skipif p
195f0 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
19600 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
19610 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
19620 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
19630 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
19640 20 6c 61 62 65 6c 2d 35 36 31 0d 0a 53 45 4c 45   label-561..SELE
19650 43 54 20 41 4c 4c 20 2d 20 53 55 4d 20 28 20 2b  CT ALL - SUM ( +
19660 20 63 6f 6c 32 20 29 20 2a 20 2b 20 35 20 2d 20   col2 ) * + 5 - 
19670 2b 20 38 30 20 63 6f 6c 32 20 46 52 4f 4d 20 74  + 80 col2 FROM t
19680 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
19690 2d 0d 0a 2d 31 31 39 35 0d 0a 0d 0a 71 75 65 72  -..-1195....quer
196a0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
196b0 45 43 54 20 41 4c 4c 20 33 39 20 2a 20 2b 20 63  ECT ALL 39 * + c
196c0 6f 6c 32 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20  ol2 - col2 FROM 
196d0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
196e0 2d 2d 0d 0a 32 32 34 32 0d 0a 32 35 38 34 0d 0a  --..2242..2584..
196f0 33 36 34 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20  3648....query I 
19700 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
19710 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 36 32 20  DISTINCT - + 62 
19720 2b 20 2d 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20  + - + col0 FROM 
19730 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
19740 2d 2d 0d 0a 2d 31 31 33 0d 0a 2d 31 34 37 0d 0a  --..-113..-147..
19750 2d 31 35 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -153....onlyif m
19760 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
19770 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
19780 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
19790 72 74 20 6c 61 62 65 6c 2d 35 36 34 0d 0a 53 45  rt label-564..SE
197a0 4c 45 43 54 20 2d 20 39 36 20 2b 20 63 6f 6c 30  LECT - 96 + col0
197b0 20 2a 20 2d 20 28 20 2b 20 43 41 53 54 28 20 4e   * - ( + CAST( N
197c0 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
197d0 29 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  ) FROM tab1 cor0
197e0 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
197f0 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  LL..NULL....skip
19800 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
19810 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
19820 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
19830 2d 35 36 34 0d 0a 53 45 4c 45 43 54 20 2d 20 39  -564..SELECT - 9
19840 36 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 28 20 2b  6 + col0 * - ( +
19850 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
19860 49 4e 54 45 47 45 52 20 29 20 29 20 46 52 4f 4d  INTEGER ) ) FROM
19870 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
19880 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
19890 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  LL....query III 
198a0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
198b0 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
198c0 74 61 62 30 20 63 6f 72 30 20 57 48 45 52 45 20  tab0 cor0 WHERE 
198d0 28 20 2d 20 28 20 2b 20 63 6f 6c 30 20 29 20 49  ( - ( + col0 ) I
198e0 53 20 4e 4f 54 20 4e 55 4c 4c 20 29 0d 0a 2d 2d  S NOT NULL )..--
198f0 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
19900 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35  hing to c4b42765
19910 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35  dff94eaaa46040e5
19920 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72  37fb43b7....quer
19930 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
19940 45 43 54 20 41 4c 4c 20 2d 20 2b 20 28 20 2b 20  ECT ALL - + ( + 
19950 63 6f 6c 31 20 29 20 2b 20 32 32 20 41 53 20 63  col1 ) + 22 AS c
19960 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
19970 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39   cor0..----..-59
19980 0d 0a 31 0d 0a 32 31 0d 0a 0d 0a 6f 6e 6c 79 69  ..1..21....onlyi
19990 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
199a0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
199b0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
199c0 62 65 6c 2d 35 36 37 0d 0a 53 45 4c 45 43 54 20  bel-567..SELECT 
199d0 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54  DISTINCT - COUNT
199e0 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20  ( * ) FROM tab0 
199f0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20  AS cor0 WHERE ( 
19a00 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 20 29 0d 0a  NULL IS NULL )..
19a10 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70  ----..-3....skip
19a20 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
19a30 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
19a40 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
19a50 2d 35 36 37 0d 0a 53 45 4c 45 43 54 20 44 49 53  -567..SELECT DIS
19a60 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 20 28 20  TINCT - COUNT ( 
19a70 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  * ) FROM tab0 AS
19a80 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e 55   cor0 WHERE ( NU
19a90 4c 4c 20 49 53 20 4e 55 4c 4c 20 29 0d 0a 2d 2d  LL IS NULL )..--
19aa0 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 6f 6e 6c 79 69 66  --..-3....onlyif
19ab0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
19ac0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
19ad0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
19ae0 65 6c 2d 35 36 38 0d 0a 53 45 4c 45 43 54 20 2d  el-568..SELECT -
19af0 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 31 39   COUNT( * ) + 19
19b00 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
19b10 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 0d 0a 0d 0a  r0..----..16....
19b20 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
19b30 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
19b40 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
19b50 61 62 65 6c 2d 35 36 38 0d 0a 53 45 4c 45 43 54  abel-568..SELECT
19b60 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b   - COUNT ( * ) +
19b70 20 31 39 20 46 52 4f 4d 20 74 61 62 32 20 41 53   19 FROM tab2 AS
19b80 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 0d   cor0..----..16.
19b90 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
19ba0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
19bb0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
19bc0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 36 39 0d  wsort label-569.
19bd0 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28  .SELECT - COUNT(
19be0 20 2a 20 29 20 2b 20 2b 20 34 39 20 2a 20 2d 20   * ) + + 49 * - 
19bf0 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2d 20 35  COUNT( * ) + - 5
19c00 34 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  4 FROM tab0 AS c
19c10 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30 34 0d  or0..----..-204.
19c20 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
19c30 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
19c40 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
19c50 74 20 6c 61 62 65 6c 2d 35 36 39 0d 0a 53 45 4c  t label-569..SEL
19c60 45 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  ECT - COUNT ( * 
19c70 29 20 2b 20 2b 20 34 39 20 2a 20 2d 20 43 4f 55  ) + + 49 * - COU
19c80 4e 54 20 28 20 2a 20 29 20 2b 20 2d 20 35 34 20  NT ( * ) + - 54 
19c90 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
19ca0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30 34 0d 0a 0d  0..----..-204...
19cb0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
19cc0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
19cd0 54 20 28 20 2b 20 63 6f 6c 31 20 29 20 2b 20 2d  T ( + col1 ) + -
19ce0 20 35 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53   52 FROM tab2 AS
19cf0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d   cor0..----..-1.
19d00 0a 31 35 0d 0a 32 35 0d 0a 0d 0a 71 75 65 72 79  .15..25....query
19d10 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
19d20 43 54 20 41 4c 4c 20 2b 20 2d 20 38 37 20 46 52  CT ALL + - 87 FR
19d30 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d  OM tab1 cor0..--
19d40 2d 2d 0d 0a 2d 38 37 0d 0a 2d 38 37 0d 0a 2d 38  --..-87..-87..-8
19d50 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  7....query II ro
19d60 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
19d70 4c 20 2b 20 2d 20 38 39 2c 20 2b 20 63 6f 6c 32  L + - 89, + col2
19d80 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
19d90 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 39 0d 0a 35  r0..----..-89..5
19da0 39 0d 0a 2d 38 39 0d 0a 36 38 0d 0a 2d 38 39 0d  9..-89..68..-89.
19db0 0a 39 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .96....query I r
19dc0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
19dd0 20 35 37 20 2a 20 63 6f 6c 30 20 41 53 20 63 6f   57 * col0 AS co
19de0 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
19df0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 39 30  cor0..----..-290
19e00 37 0d 0a 2d 34 38 34 35 0d 0a 2d 35 31 38 37 0d  7..-4845..-5187.
19e10 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
19e20 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31  ort..SELECT col1
19e30 2c 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 28 20 63  , - col2 * - ( c
19e40 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ol2 ) FROM tab2 
19e50 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35  AS cor0..----..5
19e60 31 0d 0a 35 32 39 0d 0a 36 37 0d 0a 33 33 36 34  1..529..67..3364
19e70 0d 0a 37 37 0d 0a 31 36 30 30 0d 0a 0d 0a 71 75  ..77..1600....qu
19e80 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
19e90 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
19ea0 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
19eb0 52 45 20 4e 4f 54 20 36 37 20 2d 20 2b 20 63 6f  RE NOT 67 - + co
19ec0 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  l0 IS NOT NULL..
19ed0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
19ee0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
19ef0 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  T * FROM tab2 WH
19f00 45 52 45 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 34  ERE + col0 + - 4
19f10 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  1 IS NOT NULL..-
19f20 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
19f30 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38 61  shing to 75c998a
19f40 61 35 33 61 63 38 33 32 31 38 63 62 66 32 66 65  a53ac83218cbf2fe
19f50 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 6f 6e 6c  b962d0a49....onl
19f60 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
19f70 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c   syntax: DECIMAL
19f80 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
19f90 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
19fa0 37 37 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53  77..SELECT + CAS
19fb0 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d  T( NULL AS DECIM
19fc0 41 4c 20 29 20 2a 20 63 6f 6c 32 20 2a 20 2b 20  AL ) * col2 * + 
19fd0 32 34 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  24 AS col0 FROM 
19fe0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab0..----..NULL
19ff0 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
1a000 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1a010 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1a020 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1a030 61 62 65 6c 2d 35 37 37 0d 0a 53 45 4c 45 43 54  abel-577..SELECT
1a040 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   + CAST ( NULL A
1a050 53 20 52 45 41 4c 20 29 20 2a 20 63 6f 6c 32 20  S REAL ) * col2 
1a060 2a 20 2b 20 32 34 20 41 53 20 63 6f 6c 30 20 46  * + 24 AS col0 F
1a070 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
1a080 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
1a090 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
1a0a0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
1a0b0 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
1a0c0 2d 20 2d 20 31 37 20 49 53 20 4e 4f 54 20 4e 55  - - 17 IS NOT NU
1a0d0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  LL..----..9 valu
1a0e0 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36  es hashing to c6
1a0f0 63 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63  c0a4111b36d04dbc
1a100 38 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a  811a11e4d54cad..
1a110 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1a120 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
1a130 43 54 20 2d 20 63 6f 6c 30 20 2d 20 2b 20 2d 20  CT - col0 - + - 
1a140 28 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 31  ( col1 ) AS col1
1a150 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
1a160 0d 0a 2d 36 36 0d 0a 2d 39 36 0d 0a 36 36 0d 0a  ..-66..-96..66..
1a170 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1a180 74 0d 0a 53 45 4c 45 43 54 20 2b 20 32 31 20 2d  t..SELECT + 21 -
1a190 20 2d 20 63 6f 6c 31 20 2a 20 63 6f 6c 31 20 46   - col1 * col1 F
1a1a0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
1a1b0 32 31 37 0d 0a 32 32 33 30 0d 0a 34 36 0d 0a 0d  217..2230..46...
1a1c0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1a1d0 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
1a1e0 4e 45 44 20 74 79 70 65 3a 20 44 49 56 20 66 6f  NED type: DIV fo
1a1f0 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
1a200 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
1a210 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 38 31 0d  wsort label-581.
1a220 0a 53 45 4c 45 43 54 20 2d 20 43 41 53 54 28 20  .SELECT - CAST( 
1a230 2d 20 63 6f 6c 31 20 41 53 20 53 49 47 4e 45 44  - col1 AS SIGNED
1a240 20 29 20 44 49 56 20 35 37 20 2a 20 2b 20 2d 20   ) DIV 57 * + - 
1a250 63 6f 6c 32 20 2d 20 2b 20 63 6f 6c 30 20 41 53  col2 - + col0 AS
1a260 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
1a270 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 2d 38 35 0d  .----..-51..-85.
1a280 0a 2d 39 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-91....skipif m
1a290 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1a2a0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1a2b0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 38 31  owsort label-581
1a2c0 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53 54 20  ..SELECT - CAST 
1a2d0 28 20 2d 20 63 6f 6c 31 20 41 53 20 49 4e 54 45  ( - col1 AS INTE
1a2e0 47 45 52 20 29 20 2f 20 35 37 20 2a 20 2b 20 2d  GER ) / 57 * + -
1a2f0 20 63 6f 6c 32 20 2d 20 2b 20 63 6f 6c 30 20 41   col2 - + col0 A
1a300 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
1a310 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 2d 38 35  ..----..-51..-85
1a320 0d 0a 2d 39 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-91....skipif 
1a330 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
1a340 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
1a350 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
1a360 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
1a370 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1a380 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
1a390 43 54 20 2d 20 39 34 20 2b 20 2b 20 63 6f 6c 30  CT - 94 + + col0
1a3a0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
1a3b0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
1a3c0 31 39 0d 0a 2d 33 30 0d 0a 2d 34 38 0d 0a 0d 0a  19..-30..-48....
1a3d0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1a3e0 0a 53 45 4c 45 43 54 20 32 37 20 2d 20 63 6f 6c  .SELECT 27 - col
1a3f0 31 20 2a 20 2d 20 63 6f 6c 32 20 2d 20 2b 20 63  1 * - col2 - + c
1a400 6f 6c 31 20 2b 20 2d 20 31 20 2a 20 2b 20 2b 20  ol1 + - 1 * + + 
1a410 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
1a420 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32  S cor0..----..12
1a430 34 0d 0a 31 39 35 0d 0a 33 36 37 32 0d 0a 0d 0a  4..195..3672....
1a440 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1a450 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1a460 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   + col2 FROM tab
1a470 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
1a480 35 34 20 3c 3d 20 2d 20 63 6f 6c 32 0d 0a 2d 2d  54 <= - col2..--
1a490 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
1a4a0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
1a4b0 63 6f 6c 31 20 2b 20 2d 20 37 20 41 53 20 63 6f  col1 + - 7 AS co
1a4c0 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
1a4d0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 0d 0a  cor0..----..-6..
1a4e0 31 34 0d 0a 37 34 0d 0a 0d 0a 71 75 65 72 79 20  14..74....query 
1a4f0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1a500 54 20 2b 20 38 20 46 52 4f 4d 20 74 61 62 30 20  T + 8 FROM tab0 
1a510 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49  WHERE NOT NULL I
1a520 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  S NULL..----....
1a530 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
1a540 0d 0a 53 45 4c 45 43 54 20 2b 20 34 32 20 41 53  ..SELECT + 42 AS
1a550 20 63 6f 6c 31 2c 20 36 39 20 41 53 20 63 6f 6c   col1, 69 AS col
1a560 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
1a570 2d 0d 0a 34 32 0d 0a 36 39 0d 0a 34 32 0d 0a 36  -..42..69..42..6
1a580 39 0d 0a 34 32 0d 0a 36 39 0d 0a 0d 0a 71 75 65  9..42..69....que
1a590 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
1a5a0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1a5b0 2a 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  * FROM tab0 cor0
1a5c0 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c   WHERE NOT - col
1a5d0 32 20 2b 20 37 36 20 3e 20 2d 20 63 6f 6c 32 0d  2 + 76 > - col2.
1a5e0 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
1a5f0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1a600 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 2c 20 2b 20  T ALL + col1, + 
1a610 63 6f 6c 32 20 2a 20 35 34 20 46 52 4f 4d 20 74  col2 * 54 FROM t
1a620 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
1a630 2d 0d 0a 31 0d 0a 35 33 34 36 0d 0a 32 31 0d 0a  -..1..5346..21..
1a640 35 34 30 0d 0a 38 31 0d 0a 32 35 33 38 0d 0a 0d  540..81..2538...
1a650 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1a660 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
1a670 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
1a680 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
1a690 65 6c 2d 35 39 30 0d 0a 53 45 4c 45 43 54 20 2b  el-590..SELECT +
1a6a0 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 2c 20 2d   col2 AS col2, -
1a6b0 20 38 20 44 49 56 20 2d 20 32 30 20 46 52 4f 4d   8 DIV - 20 FROM
1a6c0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
1a6d0 2d 2d 2d 0d 0a 32 33 0d 0a 30 0d 0a 34 30 0d 0a  ---..23..0..40..
1a6e0 30 0d 0a 35 38 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  0..58..0....skip
1a6f0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1a700 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1a710 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
1a720 6c 2d 35 39 30 0d 0a 53 45 4c 45 43 54 20 2b 20  l-590..SELECT + 
1a730 63 6f 6c 32 20 41 53 20 63 6f 6c 32 2c 20 2d 20  col2 AS col2, - 
1a740 38 20 2f 20 2d 20 32 30 20 46 52 4f 4d 20 74 61  8 / - 20 FROM ta
1a750 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
1a760 0d 0a 32 33 0d 0a 30 0d 0a 34 30 0d 0a 30 0d 0a  ..23..0..40..0..
1a770 35 38 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49  58..0....query I
1a780 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1a790 54 20 31 2c 20 2b 20 63 6f 6c 31 20 46 52 4f 4d  T 1, + col1 FROM
1a7a0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
1a7b0 2d 2d 2d 0d 0a 31 0d 0a 31 34 0d 0a 31 0d 0a 34  ---..1..14..1..4
1a7c0 37 0d 0a 31 0d 0a 35 0d 0a 0d 0a 6f 6e 6c 79 69  7..1..5....onlyi
1a7d0 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
1a7e0 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
1a7f0 70 65 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65  pe: DIV for inte
1a800 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
1a810 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
1a820 20 6c 61 62 65 6c 2d 35 39 32 0d 0a 53 45 4c 45   label-592..SELE
1a830 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f  CT DISTINCT + co
1a840 6c 31 20 63 6f 6c 31 2c 20 43 41 53 54 28 20 2d  l1 col1, CAST( -
1a850 20 63 6f 6c 30 20 41 53 20 53 49 47 4e 45 44 20   col0 AS SIGNED 
1a860 29 20 44 49 56 20 2b 20 63 6f 6c 30 20 46 52 4f  ) DIV + col0 FRO
1a870 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
1a880 2d 2d 2d 2d 0d 0a 35 31 0d 0a 2d 31 0d 0a 36 37  ----..51..-1..67
1a890 0d 0a 2d 31 0d 0a 37 37 0d 0a 2d 31 0d 0a 0d 0a  ..-1..77..-1....
1a8a0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1a8b0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73  ot compatible..s
1a8c0 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
1a8d0 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
1a8e0 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
1a8f0 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
1a900 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49  olumns..query II
1a910 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
1a920 39 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  92..SELECT DISTI
1a930 4e 43 54 20 2b 20 63 6f 6c 31 20 63 6f 6c 31 2c  NCT + col1 col1,
1a940 20 43 41 53 54 20 28 20 2d 20 63 6f 6c 30 20 41   CAST ( - col0 A
1a950 53 20 49 4e 54 45 47 45 52 20 29 20 2f 20 2b 20  S INTEGER ) / + 
1a960 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
1a970 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31  S cor0..----..51
1a980 0d 0a 2d 31 0d 0a 36 37 0d 0a 2d 31 0d 0a 37 37  ..-1..67..-1..77
1a990 0d 0a 2d 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..-1....onlyif m
1a9a0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
1a9b0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
1a9c0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1a9d0 2d 35 39 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -593..SELECT ALL
1a9e0 20 2b 20 43 4f 55 4e 54 28 20 44 49 53 54 49 4e   + COUNT( DISTIN
1a9f0 43 54 20 2b 20 2b 20 63 6f 6c 31 20 29 20 46 52  CT + + col1 ) FR
1aa00 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d  OM tab1 cor0..--
1aa10 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..3....skipif 
1aa20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1aa30 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1aa40 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 39  rowsort label-59
1aa50 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  3..SELECT ALL + 
1aa60 43 4f 55 4e 54 20 28 20 44 49 53 54 49 4e 43 54  COUNT ( DISTINCT
1aa70 20 2b 20 2b 20 63 6f 6c 31 20 29 20 46 52 4f 4d   + + col1 ) FROM
1aa80 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
1aa90 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..3....onlyif my
1aaa0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
1aab0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
1aac0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1aad0 74 20 6c 61 62 65 6c 2d 35 39 34 0d 0a 53 45 4c  t label-594..SEL
1aae0 45 43 54 20 41 4c 4c 20 43 41 53 54 28 20 2d 20  ECT ALL CAST( - 
1aaf0 2b 20 41 56 47 20 28 20 63 6f 6c 30 20 29 20 41  + AVG ( col0 ) A
1ab00 53 20 53 49 47 4e 45 44 20 29 20 63 6f 6c 31 20  S SIGNED ) col1 
1ab10 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
1ab20 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 36 0d 0a 0d 0a  0..----..-66....
1ab30 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1ab40 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73  ot compatible..s
1ab50 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
1ab60 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
1ab70 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
1ab80 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
1ab90 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
1aba0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 39  rowsort label-59
1abb0 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41  4..SELECT ALL CA
1abc0 53 54 20 28 20 2d 20 2b 20 41 56 47 20 28 20 63  ST ( - + AVG ( c
1abd0 6f 6c 30 20 29 20 41 53 20 49 4e 54 45 47 45 52  ol0 ) AS INTEGER
1abe0 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   ) col1 FROM tab
1abf0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
1ac00 0a 2d 36 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-66....onlyif m
1ac10 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
1ac20 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
1ac30 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1ac40 2d 35 39 35 0d 0a 53 45 4c 45 43 54 20 44 49 53  -595..SELECT DIS
1ac50 54 49 4e 43 54 20 37 38 20 2a 20 2d 20 4d 41 58  TINCT 78 * - MAX
1ac60 28 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 29 20 41  ( ALL - col1 ) A
1ac70 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
1ac80 0d 0a 2d 2d 2d 2d 0d 0a 37 38 0d 0a 0d 0a 73 6b  ..----..78....sk
1ac90 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1aca0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1acb0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1acc0 65 6c 2d 35 39 35 0d 0a 53 45 4c 45 43 54 20 44  el-595..SELECT D
1acd0 49 53 54 49 4e 43 54 20 37 38 20 2a 20 2d 20 4d  ISTINCT 78 * - M
1ace0 41 58 20 28 20 41 4c 4c 20 2d 20 63 6f 6c 31 20  AX ( ALL - col1 
1acf0 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
1ad00 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 37 38 0d 0a 0d  ab0..----..78...
1ad10 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1ad20 0d 0a 53 45 4c 45 43 54 20 2d 20 31 35 20 41 53  ..SELECT - 15 AS
1ad30 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
1ad40 57 48 45 52 45 20 4e 4f 54 20 2d 20 28 20 2d 20  WHERE NOT - ( - 
1ad50 2b 20 63 6f 6c 32 20 29 20 49 53 20 4e 55 4c 4c  + col2 ) IS NULL
1ad60 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 2d 31 35  ..----..-15..-15
1ad70 0d 0a 2d 31 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-15....onlyif 
1ad80 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
1ad90 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
1ada0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1adb0 6f 72 74 20 6c 61 62 65 6c 2d 35 39 37 0d 0a 53  ort label-597..S
1adc0 45 4c 45 43 54 20 2b 20 31 31 20 44 49 56 20 63  ELECT + 11 DIV c
1add0 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol2 AS col0 FROM
1ade0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   tab0..----..0..
1adf0 30 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  0..1....skipif m
1ae00 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1ae10 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1ae20 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 39 37  owsort label-597
1ae30 0d 0a 53 45 4c 45 43 54 20 2b 20 31 31 20 2f 20  ..SELECT + 11 / 
1ae40 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f  col2 AS col0 FRO
1ae50 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab0..----..0.
1ae60 0a 30 0d 0a 31 0d 0a 0d 0a 71 75 65 72 79 20 49  .0..1....query I
1ae70 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1ae80 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  CT * FROM tab2 W
1ae90 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 32 20  HERE NOT + col2 
1aea0 2a 20 2b 20 63 6f 6c 30 20 3e 3d 20 28 20 2d 20  * + col0 >= ( - 
1aeb0 2d 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a  - col0 )..----..
1aec0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1aed0 74 0d 0a 53 45 4c 45 43 54 20 2d 20 39 32 20 2a  t..SELECT - 92 *
1aee0 20 2b 20 36 38 20 41 53 20 63 6f 6c 32 20 46 52   + 68 AS col2 FR
1aef0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
1af00 36 32 35 36 0d 0a 2d 36 32 35 36 0d 0a 2d 36 32  6256..-6256..-62
1af10 35 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  56....onlyif mys
1af20 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
1af30 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
1af40 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1af50 30 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  00..SELECT ALL +
1af60 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20   COUNT( * ) * + 
1af70 2d 20 4d 41 58 28 20 41 4c 4c 20 2d 20 39 32 20  - MAX( ALL - 92 
1af80 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
1af90 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
1afa0 45 20 4e 55 4c 4c 20 3e 20 2d 20 63 6f 6c 31 20  E NULL > - col1 
1afb0 2b 20 31 20 2a 20 2d 20 63 6f 6c 31 20 2f 20 2b  + 1 * - col1 / +
1afc0 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 30   - col0 * - col0
1afd0 20 2a 20 2d 20 39 32 0d 0a 2d 2d 2d 2d 0d 0a 4e   * - 92..----..N
1afe0 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
1aff0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1b000 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1b010 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 30 30 0d  wsort label-600.
1b020 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f  .SELECT ALL + CO
1b030 55 4e 54 20 28 20 2a 20 29 20 2a 20 2b 20 2d 20  UNT ( * ) * + - 
1b040 4d 41 58 20 28 20 41 4c 4c 20 2d 20 39 32 20 29  MAX ( ALL - 92 )
1b050 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
1b060 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
1b070 20 4e 55 4c 4c 20 3e 20 2d 20 63 6f 6c 31 20 2b   NULL > - col1 +
1b080 20 31 20 2a 20 2d 20 63 6f 6c 31 20 2f 20 2b 20   1 * - col1 / + 
1b090 2d 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 30 20  - col0 * - col0 
1b0a0 2a 20 2d 20 39 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  * - 92..----..NU
1b0b0 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  LL....onlyif mys
1b0c0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
1b0d0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
1b0e0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1b0f0 30 31 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55  01..SELECT - COU
1b100 4e 54 28 20 41 4c 4c 20 2d 20 2d 20 31 32 20 29  NT( ALL - - 12 )
1b110 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
1b120 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..-3....skipif m
1b130 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1b140 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1b150 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 30 31  owsort label-601
1b160 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54  ..SELECT - COUNT
1b170 20 28 20 41 4c 4c 20 2d 20 2d 20 31 32 20 29 20   ( ALL - - 12 ) 
1b180 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
1b190 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  .-3....query III
1b1a0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
1b1b0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
1b1c0 52 4f 4d 20 28 20 74 61 62 31 20 41 53 20 63 6f  ROM ( tab1 AS co
1b1d0 72 30 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20  r0 JOIN tab0 AS 
1b1e0 63 6f 72 31 20 4f 4e 20 4e 55 4c 4c 20 49 53 20  cor1 ON NULL IS 
1b1f0 4e 4f 54 20 4e 55 4c 4c 20 41 4e 44 20 4e 4f 54  NOT NULL AND NOT
1b200 20 2d 20 28 20 38 36 20 29 20 49 53 20 4e 4f 54   - ( 86 ) IS NOT
1b210 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   NULL )..----...
1b220 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
1b230 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
1b240 4d 20 74 61 62 31 20 57 48 45 52 45 20 2b 20 63  M tab1 WHERE + c
1b250 6f 6c 32 20 2a 20 2b 20 2b 20 63 6f 6c 31 20 3c  ol2 * + + col1 <
1b260 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  = NULL..----....
1b270 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
1b280 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 2c 20 63  ..SELECT col1, c
1b290 6f 6c 32 20 2d 20 2d 20 34 38 20 46 52 4f 4d 20  ol2 - - 48 FROM 
1b2a0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a  tab2..----..51..
1b2b0 37 31 0d 0a 36 37 0d 0a 31 30 36 0d 0a 37 37 0d  71..67..106..77.
1b2c0 0a 38 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  .88....query III
1b2d0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1b2e0 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
1b2f0 20 74 61 62 30 20 57 48 45 52 45 20 2d 20 63 6f   tab0 WHERE - co
1b300 6c 31 20 2a 20 2d 20 37 30 20 2b 20 2b 20 63 6f  l1 * - 70 + + co
1b310 6c 30 20 2a 20 35 32 20 3e 3d 20 2b 20 63 6f 6c  l0 * 52 >= + col
1b320 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  1..----..9 value
1b330 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62  s hashing to c4b
1b340 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36  42765dff94eaaa46
1b350 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d  040e537fb43b7...
1b360 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1b370 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67  CAST syntax: agg
1b380 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53  regate syntax: S
1b390 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
1b3a0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1b3b0 62 65 6c 2d 36 30 36 0d 0a 53 45 4c 45 43 54 20  bel-606..SELECT 
1b3c0 44 49 53 54 49 4e 43 54 20 31 31 20 2a 20 2d 20  DISTINCT 11 * - 
1b3d0 53 55 4d 28 20 41 4c 4c 20 2b 20 2d 20 63 6f 6c  SUM( ALL + - col
1b3e0 30 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  0 ) col0 FROM ta
1b3f0 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
1b400 20 43 41 53 54 28 20 2d 20 38 39 20 41 53 20 53   CAST( - 89 AS S
1b410 49 47 4e 45 44 20 29 20 3e 20 28 20 2b 20 63 6f  IGNED ) > ( + co
1b420 6c 31 20 2a 20 2b 20 63 6f 6c 31 20 2b 20 2b 20  l1 * + col1 + + 
1b430 63 6f 6c 32 20 2d 20 63 6f 6c 32 20 2a 20 2b 20  col2 - col2 * + 
1b440 2b 20 39 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 32 34  + 90 )..----..24
1b450 39 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  97....skipif mys
1b460 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1b470 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  ble..skipif post
1b480 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
1b490 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
1b4a0 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
1b4b0 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
1b4c0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1b4d0 62 65 6c 2d 36 30 36 0d 0a 53 45 4c 45 43 54 20  bel-606..SELECT 
1b4e0 44 49 53 54 49 4e 43 54 20 31 31 20 2a 20 2d 20  DISTINCT 11 * - 
1b4f0 53 55 4d 20 28 20 41 4c 4c 20 2b 20 2d 20 63 6f  SUM ( ALL + - co
1b500 6c 30 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74  l0 ) col0 FROM t
1b510 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
1b520 45 20 43 41 53 54 20 28 20 2d 20 38 39 20 41 53  E CAST ( - 89 AS
1b530 20 49 4e 54 45 47 45 52 20 29 20 3e 20 28 20 2b   INTEGER ) > ( +
1b540 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 31 20 2b   col1 * + col1 +
1b550 20 2b 20 63 6f 6c 32 20 2d 20 63 6f 6c 32 20 2a   + col2 - col2 *
1b560 20 2b 20 2b 20 39 30 20 29 0d 0a 2d 2d 2d 2d 0d   + + 90 )..----.
1b570 0a 32 34 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .2497....onlyif 
1b580 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
1b590 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
1b5a0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1b5b0 6f 72 74 20 6c 61 62 65 6c 2d 36 30 37 0d 0a 53  ort label-607..S
1b5c0 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 41 53 54  ELECT ALL + CAST
1b5d0 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
1b5e0 20 29 20 2b 20 2d 20 2b 20 63 6f 6c 30 20 2b 20   ) + - + col0 + 
1b5f0 2d 20 35 34 20 2a 20 63 6f 6c 32 20 41 53 20 63  - 54 * col2 AS c
1b600 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
1b610 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
1b620 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
1b630 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1b640 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1b650 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1b660 6c 61 62 65 6c 2d 36 30 37 0d 0a 53 45 4c 45 43  label-607..SELEC
1b670 54 20 41 4c 4c 20 2b 20 43 41 53 54 20 28 20 4e  T ALL + CAST ( N
1b680 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
1b690 20 2b 20 2d 20 2b 20 63 6f 6c 30 20 2b 20 2d 20   + - + col0 + - 
1b6a0 35 34 20 2a 20 63 6f 6c 32 20 41 53 20 63 6f 6c  54 * col2 AS col
1b6b0 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
1b6c0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
1b6d0 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  .NULL..NULL....q
1b6e0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1b6f0 53 45 4c 45 43 54 20 2d 20 32 39 20 2b 20 2d 20  SELECT - 29 + - 
1b700 28 20 2d 20 2d 20 63 6f 6c 32 20 29 20 41 53 20  ( - - col2 ) AS 
1b710 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
1b720 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
1b730 32 35 0d 0a 2d 38 38 0d 0a 2d 39 37 0d 0a 0d 0a  25..-88..-97....
1b740 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1b750 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1b760 20 38 35 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   85 AS col2 FROM
1b770 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20   tab0 WHERE NOT 
1b780 63 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  col0 IS NULL..--
1b790 2d 2d 0d 0a 38 35 0d 0a 0d 0a 71 75 65 72 79 20  --..85....query 
1b7a0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1b7b0 54 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 32 20  T col1 + + col2 
1b7c0 2a 20 2d 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20  * - + col1 FROM 
1b7d0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 32  tab2..----..-112
1b7e0 32 0d 0a 2d 33 30 30 33 0d 0a 2d 33 38 31 39 0d  2..-3003..-3819.
1b7f0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1b800 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
1b810 4e 43 54 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 37  NCT + col0 * - 7
1b820 39 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  9 FROM tab0..---
1b830 2d 0d 0a 2d 31 31 38 35 0d 0a 2d 36 38 37 33 0d  -..-1185..-6873.
1b840 0a 2d 37 36 36 33 0d 0a 0d 0a 71 75 65 72 79 20  .-7663....query 
1b850 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1b860 54 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 2b 20 63  T + col1 * + + c
1b870 6f 6c 31 20 2b 20 2d 20 63 6f 6c 31 20 46 52 4f  ol1 + - col1 FRO
1b880 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab0..----..0.
1b890 0a 34 32 30 0d 0a 36 34 38 30 0d 0a 0d 0a 6f 6e  .420..6480....on
1b8a0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
1b8b0 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
1b8c0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
1b8d0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1b8e0 31 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43  13..SELECT ALL C
1b8f0 41 53 54 28 20 2d 20 63 6f 6c 32 20 41 53 20 53  AST( - col2 AS S
1b900 49 47 4e 45 44 20 29 20 2d 20 2d 20 63 6f 6c 30  IGNED ) - - col0
1b910 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
1b920 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 2d 33  b0..----..-2..-3
1b930 32 0d 0a 37 37 0d 0a 0d 0a 73 6b 69 70 69 66 20  2..77....skipif 
1b940 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1b950 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1b960 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 31  rowsort label-61
1b970 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41  3..SELECT ALL CA
1b980 53 54 20 28 20 2d 20 63 6f 6c 32 20 41 53 20 49  ST ( - col2 AS I
1b990 4e 54 45 47 45 52 20 29 20 2d 20 2d 20 63 6f 6c  NTEGER ) - - col
1b9a0 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  0 AS col2 FROM t
1b9b0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 2d  ab0..----..-2..-
1b9c0 33 32 0d 0a 37 37 0d 0a 0d 0a 71 75 65 72 79 20  32..77....query 
1b9d0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1b9e0 54 20 2b 20 32 39 20 2b 20 2b 20 2d 20 63 6f 6c  T + 29 + + - col
1b9f0 31 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  1 + col2 FROM ta
1ba00 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 0d 0a 31 0d  b2..----..-8..1.
1ba10 0a 32 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .20....query I r
1ba20 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
1ba30 4c 4c 20 2b 20 38 39 20 2d 20 2d 20 2b 20 31 36  LL + 89 - - + 16
1ba40 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
1ba50 20 4e 4f 54 20 63 6f 6c 31 20 49 53 20 4e 4f 54   NOT col1 IS NOT
1ba60 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   NULL..----....o
1ba70 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
1ba80 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
1ba90 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1baa0 74 20 6c 61 62 65 6c 2d 36 31 36 0d 0a 53 45 4c  t label-616..SEL
1bab0 45 43 54 20 41 4c 4c 20 2b 20 33 34 20 2a 20 43  ECT ALL + 34 * C
1bac0 4f 55 4e 54 28 20 2a 20 29 20 63 6f 6c 31 20 46  OUNT( * ) col1 F
1bad0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
1bae0 31 30 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  102....skipif my
1baf0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1bb00 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
1bb10 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
1bb20 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
1bb30 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
1bb40 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
1bb50 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1bb60 61 62 65 6c 2d 36 31 36 0d 0a 53 45 4c 45 43 54  abel-616..SELECT
1bb70 20 41 4c 4c 20 2b 20 33 34 20 2a 20 43 4f 55 4e   ALL + 34 * COUN
1bb80 54 20 28 20 2a 20 29 20 63 6f 6c 31 20 46 52 4f  T ( * ) col1 FRO
1bb90 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 30  M tab2..----..10
1bba0 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  2....query II ro
1bbb0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
1bbc0 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20 2a 20  STINCT - col0 * 
1bbd0 2d 20 34 36 20 41 53 20 63 6f 6c 30 2c 20 63 6f  - 46 AS col0, co
1bbe0 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l0 AS col0 FROM 
1bbf0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 33 34 36  tab1..----..2346
1bc00 0d 0a 35 31 0d 0a 33 39 31 30 0d 0a 38 35 0d 0a  ..51..3910..85..
1bc10 34 31 38 36 0d 0a 39 31 0d 0a 0d 0a 71 75 65 72  4186..91....quer
1bc20 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1bc30 45 43 54 20 41 4c 4c 20 39 37 20 2a 20 2d 20 63  ECT ALL 97 * - c
1bc40 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol1 AS col1 FROM
1bc50 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 39   tab2..----..-49
1bc60 34 37 0d 0a 2d 36 34 39 39 0d 0a 2d 37 34 36 39  47..-6499..-7469
1bc70 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1bc80 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
1bc90 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  tax: ..query II 
1bca0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 31  rowsort label-61
1bcb0 39 0d 0a 53 45 4c 45 43 54 20 2b 20 39 31 20 41  9..SELECT + 91 A
1bcc0 53 20 63 6f 6c 30 2c 20 2d 20 4d 41 58 28 20 44  S col0, - MAX( D
1bcd0 49 53 54 49 4e 43 54 20 2d 20 2b 20 34 38 20 29  ISTINCT - + 48 )
1bce0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
1bcf0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 31 0d 0a 34 38  r0..----..91..48
1bd00 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1bd10 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1bd20 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
1bd30 6f 72 74 20 6c 61 62 65 6c 2d 36 31 39 0d 0a 53  ort label-619..S
1bd40 45 4c 45 43 54 20 2b 20 39 31 20 41 53 20 63 6f  ELECT + 91 AS co
1bd50 6c 30 2c 20 2d 20 4d 41 58 20 28 20 44 49 53 54  l0, - MAX ( DIST
1bd60 49 4e 43 54 20 2d 20 2b 20 34 38 20 29 20 46 52  INCT - + 48 ) FR
1bd70 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
1bd80 0a 2d 2d 2d 2d 0d 0a 39 31 0d 0a 34 38 0d 0a 0d  .----..91..48...
1bd90 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1bda0 0d 0a 53 45 4c 45 43 54 20 37 36 20 41 53 20 63  ..SELECT 76 AS c
1bdb0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
1bdc0 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
1bdd0 20 74 61 62 31 20 41 53 20 63 6f 72 31 0d 0a 2d   tab1 AS cor1..-
1bde0 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
1bdf0 73 68 69 6e 67 20 74 6f 20 33 30 62 38 39 34 31  shing to 30b8941
1be00 61 37 30 30 63 66 66 64 35 62 39 38 33 31 31 36  a700cffd5b983116
1be10 33 38 33 62 64 34 32 64 35 0d 0a 0d 0a 6f 6e 6c  383bd42d5....onl
1be20 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
1be30 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
1be40 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1be50 6c 61 62 65 6c 2d 36 32 31 0d 0a 53 45 4c 45 43  label-621..SELEC
1be60 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20 2b 20 31  T ALL COUNT( + 1
1be70 35 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  5 ) FROM tab1..-
1be80 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66  ---..3....skipif
1be90 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1bea0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1beb0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1bec0 32 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43  21..SELECT ALL C
1bed0 4f 55 4e 54 20 28 20 2b 20 31 35 20 29 20 46 52  OUNT ( + 15 ) FR
1bee0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33  OM tab1..----..3
1bef0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
1bf00 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
1bf10 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
1bf20 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63  b2 WHERE NOT - c
1bf30 6f 6c 30 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 49  ol0 * + - col2 I
1bf40 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
1bf50 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
1bf60 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
1bf70 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
1bf80 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
1bf90 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
1bfa0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1bfb0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
1bfc0 33 35 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  35 col2 FROM tab
1bfd0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
1bfe0 0a 33 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .35....onlyif my
1bff0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
1c000 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
1c010 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1c020 36 32 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  624..SELECT DIST
1c030 49 4e 43 54 20 28 20 4d 41 58 28 20 44 49 53 54  INCT ( MAX( DIST
1c040 49 4e 43 54 20 2d 20 63 6f 6c 31 20 29 20 29 20  INCT - col1 ) ) 
1c050 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
1c060 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 0d 0a 0d 0a 73  0..----..-5....s
1c070 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1c080 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1c090 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1c0a0 62 65 6c 2d 36 32 34 0d 0a 53 45 4c 45 43 54 20  bel-624..SELECT 
1c0b0 44 49 53 54 49 4e 43 54 20 28 20 4d 41 58 20 28  DISTINCT ( MAX (
1c0c0 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31   DISTINCT - col1
1c0d0 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41   ) ) FROM tab1 A
1c0e0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  S cor0..----..-5
1c0f0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
1c100 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
1c110 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
1c120 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
1c130 20 4e 4f 54 20 39 34 20 2b 20 2b 20 34 31 20 49   NOT 94 + + 41 I
1c140 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20  S NULL..----..9 
1c150 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
1c160 6f 20 63 34 62 34 32 37 36 35 64 66 66 39 34 65  o c4b42765dff94e
1c170 61 61 61 34 36 30 34 30 65 35 33 37 66 62 34 33  aaa46040e537fb43
1c180 62 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  b7....query I ro
1c190 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
1c1a0 28 20 2d 20 63 6f 6c 32 20 29 20 2a 20 2b 20 63  ( - col2 ) * + c
1c1b0 6f 6c 30 20 2a 20 2d 20 63 6f 6c 31 20 46 52 4f  ol0 * - col1 FRO
1c1c0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
1c1d0 2d 2d 2d 2d 0d 0a 32 35 30 37 35 0d 0a 32 39 30  ----..25075..290
1c1e0 38 33 36 0d 0a 36 38 35 34 34 0d 0a 0d 0a 71 75  836..68544....qu
1c1f0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1c200 45 4c 45 43 54 20 2b 20 2b 20 30 20 2a 20 2b 20  ELECT + + 0 * + 
1c210 2d 20 35 20 2a 20 2d 20 2d 20 33 34 20 46 52 4f  - 5 * - - 34 FRO
1c220 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
1c230 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d  ----..0..0..0...
1c240 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1c250 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1c260 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1c270 6f 72 74 20 6c 61 62 65 6c 2d 36 32 38 0d 0a 53  ort label-628..S
1c280 45 4c 45 43 54 20 41 4c 4c 20 4d 41 58 28 20 2b  ELECT ALL MAX( +
1c290 20 2d 20 63 6f 6c 31 20 29 20 63 6f 6c 31 20 46   - col1 ) col1 F
1c2a0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
1c2b0 2d 35 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -51....skipif my
1c2c0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1c2d0 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
1c2e0 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
1c2f0 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
1c300 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
1c310 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
1c320 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1c330 61 62 65 6c 2d 36 32 38 0d 0a 53 45 4c 45 43 54  abel-628..SELECT
1c340 20 41 4c 4c 20 4d 41 58 20 28 20 2b 20 2d 20 63   ALL MAX ( + - c
1c350 6f 6c 31 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20  ol1 ) col1 FROM 
1c360 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d  tab2..----..-51.
1c370 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1c380 72 74 0d 0a 53 45 4c 45 43 54 20 32 32 20 46 52  rt..SELECT 22 FR
1c390 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
1c3a0 54 20 4e 55 4c 4c 20 3e 20 4e 55 4c 4c 0d 0a 2d  T NULL > NULL..-
1c3b0 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ---....query III
1c3c0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1c3d0 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   * FROM tab2 WHE
1c3e0 52 45 20 4e 4f 54 20 2b 20 34 32 20 42 45 54 57  RE NOT + 42 BETW
1c3f0 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2d 20 63  EEN NULL AND - c
1c400 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  ol1..----..9 val
1c410 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37  ues hashing to 7
1c420 35 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38  5c998aa53ac83218
1c430 63 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d  cbf2feb962d0a49.
1c440 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
1c450 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
1c460 49 4e 43 54 20 63 6f 6c 32 2c 20 2d 20 33 31 20  INCT col2, - 31 
1c470 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
1c480 0a 35 39 0d 0a 2d 33 31 0d 0a 36 38 0d 0a 2d 33  .59..-31..68..-3
1c490 31 0d 0a 39 36 0d 0a 2d 33 31 0d 0a 0d 0a 6f 6e  1..96..-31....on
1c4a0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
1c4b0 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
1c4c0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
1c4d0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1c4e0 33 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  32..SELECT DISTI
1c4f0 4e 43 54 20 43 41 53 54 28 20 2d 20 36 39 20 41  NCT CAST( - 69 A
1c500 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2d 20 63  S SIGNED ) + - c
1c510 6f 6c 31 20 2a 20 2d 20 63 6f 6c 31 20 2a 20 31  ol1 * - col1 * 1
1c520 38 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  8 FROM tab0..---
1c530 2d 0d 0a 2d 35 31 0d 0a 31 31 38 30 32 39 0d 0a  -..-51..118029..
1c540 37 38 36 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  7869....skipif m
1c550 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1c560 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1c570 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 33 32  owsort label-632
1c580 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1c590 54 20 43 41 53 54 20 28 20 2d 20 36 39 20 41 53  T CAST ( - 69 AS
1c5a0 20 49 4e 54 45 47 45 52 20 29 20 2b 20 2d 20 63   INTEGER ) + - c
1c5b0 6f 6c 31 20 2a 20 2d 20 63 6f 6c 31 20 2a 20 31  ol1 * - col1 * 1
1c5c0 38 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  8 FROM tab0..---
1c5d0 2d 0d 0a 2d 35 31 0d 0a 31 31 38 30 32 39 0d 0a  -..-51..118029..
1c5e0 37 38 36 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  7869....onlyif m
1c5f0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
1c600 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79  ax: aggregate sy
1c610 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
1c620 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
1c630 73 6f 72 74 20 6c 61 62 65 6c 2d 36 33 33 0d 0a  sort label-633..
1c640 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1c650 2d 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  - + CAST( NULL A
1c660 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2b 20 43  S SIGNED ) + + C
1c670 4f 55 4e 54 28 20 41 4c 4c 20 2d 20 32 37 20 29  OUNT( ALL - 27 )
1c680 20 2a 20 2d 20 2b 20 4d 49 4e 28 20 2d 20 2b 20   * - + MIN( - + 
1c690 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 32  col2 ) FROM tab2
1c6a0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1c6b0 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
1c6c0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1c6d0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1c6e0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 33 33  owsort label-633
1c6f0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1c700 54 20 2d 20 2b 20 43 41 53 54 20 28 20 4e 55 4c  T - + CAST ( NUL
1c710 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b  L AS INTEGER ) +
1c720 20 2b 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20 2d   + COUNT ( ALL -
1c730 20 32 37 20 29 20 2a 20 2d 20 2b 20 4d 49 4e 20   27 ) * - + MIN 
1c740 28 20 2d 20 2b 20 63 6f 6c 32 20 29 20 46 52 4f  ( - + col2 ) FRO
1c750 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
1c760 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  ----..NULL....qu
1c770 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
1c780 53 45 4c 45 43 54 20 38 31 2c 20 2b 20 28 20 2d  SELECT 81, + ( -
1c790 20 63 6f 6c 32 20 29 20 2a 20 2d 20 63 6f 6c 31   col2 ) * - col1
1c7a0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
1c7b0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
1c7c0 0d 0a 38 31 0d 0a 32 31 30 0d 0a 38 31 0d 0a 33  ..81..210..81..3
1c7d0 38 30 37 0d 0a 38 31 0d 0a 39 39 0d 0a 0d 0a 6f  807..81..99....o
1c7e0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
1c7f0 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
1c800 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 45 43  gate syntax: DEC
1c810 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65  IMAL type: ..que
1c820 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
1c830 62 65 6c 2d 36 33 35 0d 0a 53 45 4c 45 43 54 20  bel-635..SELECT 
1c840 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  + CAST( NULL AS 
1c850 44 45 43 49 4d 41 4c 20 29 20 41 53 20 63 6f 6c  DECIMAL ) AS col
1c860 32 2c 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53  2, COUNT( * ) AS
1c870 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
1c880 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
1c890 55 4c 4c 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66  ULL..3....skipif
1c8a0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1c8b0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1c8c0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1c8d0 36 33 35 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41  635..SELECT + CA
1c8e0 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41  ST ( NULL AS REA
1c8f0 4c 20 29 20 41 53 20 63 6f 6c 32 2c 20 43 4f 55  L ) AS col2, COU
1c900 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30  NT ( * ) AS col0
1c910 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
1c920 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
1c930 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  3....skipif post
1c940 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
1c950 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
1c960 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
1c970 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
1c980 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
1c990 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 37 36 20  SELECT ALL + 76 
1c9a0 41 53 20 63 6f 6c 30 2c 20 2d 20 63 6f 6c 32 20  AS col0, - col2 
1c9b0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
1c9c0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 36  S cor0..----..76
1c9d0 0d 0a 2d 31 30 0d 0a 37 36 0d 0a 2d 34 37 0d 0a  ..-10..76..-47..
1c9e0 37 36 0d 0a 2d 39 39 0d 0a 0d 0a 71 75 65 72 79  76..-99....query
1c9f0 20 49 49 49 49 49 49 20 72 6f 77 73 6f 72 74 0d   IIIIII rowsort.
1ca00 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1ca10 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
1ca20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
1ca30 74 61 62 32 20 41 53 20 63 6f 72 31 20 57 48 45  tab2 AS cor1 WHE
1ca40 52 45 20 4e 4f 54 20 38 39 20 49 53 20 4e 55 4c  RE NOT 89 IS NUL
1ca50 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 34 20 76 61 6c 75  L..----..54 valu
1ca60 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 65 65  es hashing to ee
1ca70 35 31 32 39 62 61 65 35 32 39 33 39 33 35 61 65  5129bae5293935ae
1ca80 35 35 38 65 62 65 39 35 32 39 30 65 32 39 0d 0a  558ebe95290e29..
1ca90 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
1caa0 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
1cab0 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
1cac0 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
1cad0 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
1cae0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1caf0 43 54 20 2d 20 2d 20 39 39 20 2b 20 28 20 2b 20  CT - - 99 + ( + 
1cb00 63 6f 6c 31 20 29 20 63 6f 6c 32 20 46 52 4f 4d  col1 ) col2 FROM
1cb10 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab0 cor0..----
1cb20 0d 0a 31 30 30 0d 0a 31 32 30 0d 0a 31 38 30 0d  ..100..120..180.
1cb30 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1cb40 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
1cb50 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
1cb60 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1cb70 62 65 6c 2d 36 33 39 0d 0a 53 45 4c 45 43 54 20  bel-639..SELECT 
1cb80 41 4c 4c 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c  ALL + CAST( NULL
1cb90 20 41 53 20 53 49 47 4e 45 44 20 29 20 2d 20 2b   AS SIGNED ) - +
1cba0 20 37 38 20 2b 20 43 41 53 54 28 20 63 6f 6c 31   78 + CAST( col1
1cbb0 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20   AS SIGNED ) AS 
1cbc0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
1cbd0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
1cbe0 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
1cbf0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1cc00 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1cc10 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1cc20 20 6c 61 62 65 6c 2d 36 33 39 0d 0a 53 45 4c 45   label-639..SELE
1cc30 43 54 20 41 4c 4c 20 2b 20 43 41 53 54 20 28 20  CT ALL + CAST ( 
1cc40 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
1cc50 29 20 2d 20 2b 20 37 38 20 2b 20 43 41 53 54 20  ) - + 78 + CAST 
1cc60 28 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45  ( col1 AS INTEGE
1cc70 52 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  R ) AS col1 FROM
1cc80 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
1cc90 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
1cca0 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
1ccb0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1ccc0 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 41 53 20  T ALL - col0 AS 
1ccd0 63 6f 6c 31 2c 20 63 6f 6c 30 20 41 53 20 63 6f  col1, col0 AS co
1cce0 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
1ccf0 63 6f 72 30 20 57 48 45 52 45 20 28 20 2b 20 63  cor0 WHERE ( + c
1cd00 6f 6c 31 20 2a 20 2d 20 35 31 20 29 20 49 53 20  ol1 * - 51 ) IS 
1cd10 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
1cd20 2d 34 36 0d 0a 34 36 0d 0a 2d 36 34 0d 0a 36 34  -46..46..-64..64
1cd30 0d 0a 2d 37 35 0d 0a 37 35 0d 0a 0d 0a 6f 6e 6c  ..-75..75....onl
1cd40 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
1cd50 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
1cd60 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1cd70 6c 61 62 65 6c 2d 36 34 31 0d 0a 53 45 4c 45 43  label-641..SELEC
1cd80 54 20 4d 49 4e 28 20 2b 20 2b 20 28 20 2b 20 63  T MIN( + + ( + c
1cd90 6f 6c 30 20 29 20 29 20 41 53 20 63 6f 6c 30 20  ol0 ) ) AS col0 
1cda0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
1cdb0 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 0d 0a 73  0..----..51....s
1cdc0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1cdd0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1cde0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1cdf0 62 65 6c 2d 36 34 31 0d 0a 53 45 4c 45 43 54 20  bel-641..SELECT 
1ce00 4d 49 4e 20 28 20 2b 20 2b 20 28 20 2b 20 63 6f  MIN ( + + ( + co
1ce10 6c 30 20 29 20 29 20 41 53 20 63 6f 6c 30 20 46  l0 ) ) AS col0 F
1ce20 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1ce30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 0d 0a 73 6b  ..----..51....sk
1ce40 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
1ce50 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
1ce60 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
1ce70 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
1ce80 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
1ce90 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
1cea0 20 2b 20 33 34 20 63 6f 6c 30 20 46 52 4f 4d 20   + 34 col0 FROM 
1ceb0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
1cec0 2d 2d 0d 0a 33 34 0d 0a 33 34 0d 0a 33 34 0d 0a  --..34..34..34..
1ced0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1cee0 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45   CAST syntax: DE
1cef0 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75  CIMAL type: ..qu
1cf00 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1cf10 62 65 6c 2d 36 34 33 0d 0a 53 45 4c 45 43 54 20  bel-643..SELECT 
1cf20 44 49 53 54 49 4e 43 54 20 43 41 53 54 28 20 2b  DISTINCT CAST( +
1cf30 20 63 6f 6c 30 20 41 53 20 44 45 43 49 4d 41 4c   col0 AS DECIMAL
1cf40 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
1cf50 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
1cf60 52 45 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d  RE col1 IS NULL.
1cf70 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
1cf80 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1cf90 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1cfa0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 34  rowsort label-64
1cfb0 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  3..SELECT DISTIN
1cfc0 43 54 20 43 41 53 54 20 28 20 2b 20 63 6f 6c 30  CT CAST ( + col0
1cfd0 20 41 53 20 52 45 41 4c 20 29 20 41 53 20 63 6f   AS REAL ) AS co
1cfe0 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
1cff0 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 31 20  cor0 WHERE col1 
1d000 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
1d010 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1d020 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1d030 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1d040 6f 72 74 20 6c 61 62 65 6c 2d 36 34 34 0d 0a 53  ort label-644..S
1d050 45 4c 45 43 54 20 2d 20 53 55 4d 28 20 44 49 53  ELECT - SUM( DIS
1d060 54 49 4e 43 54 20 2d 20 34 39 20 29 20 41 53 20  TINCT - 49 ) AS 
1d070 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 63  col0 FROM tab0 c
1d080 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 39 0d 0a 0d  or0..----..49...
1d090 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1d0a0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1d0b0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1d0c0 6c 61 62 65 6c 2d 36 34 34 0d 0a 53 45 4c 45 43  label-644..SELEC
1d0d0 54 20 2d 20 53 55 4d 20 28 20 44 49 53 54 49 4e  T - SUM ( DISTIN
1d0e0 43 54 20 2d 20 34 39 20 29 20 41 53 20 63 6f 6c  CT - 49 ) AS col
1d0f0 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  0 FROM tab0 cor0
1d100 0d 0a 2d 2d 2d 2d 0d 0a 34 39 0d 0a 0d 0a 71 75  ..----..49....qu
1d110 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1d120 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2a 20 2d  ELECT + col1 * -
1d130 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20   - col2 AS col0 
1d140 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
1d150 0a 31 31 37 33 0d 0a 33 30 38 30 0d 0a 33 38 38  .1173..3080..388
1d160 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
1d170 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
1d180 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
1d190 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 34  rowsort label-64
1d1a0 36 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 49 4e 28  6..SELECT + MIN(
1d1b0 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32   DISTINCT + col2
1d1c0 20 29 20 2d 20 32 33 20 46 52 4f 4d 20 74 61 62   ) - 23 FROM tab
1d1d0 31 0d 0a 2d 2d 2d 2d 0d 0a 33 36 0d 0a 0d 0a 73  1..----..36....s
1d1e0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1d1f0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1d200 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1d210 62 65 6c 2d 36 34 36 0d 0a 53 45 4c 45 43 54 20  bel-646..SELECT 
1d220 2b 20 4d 49 4e 20 28 20 44 49 53 54 49 4e 43 54  + MIN ( DISTINCT
1d230 20 2b 20 63 6f 6c 32 20 29 20 2d 20 32 33 20 46   + col2 ) - 23 F
1d240 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
1d250 33 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  36....query I ro
1d260 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
1d270 4c 20 63 6f 6c 32 20 2a 20 2b 20 33 37 20 41 53  L col2 * + 37 AS
1d280 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
1d290 0a 2d 2d 2d 2d 0d 0a 32 31 38 33 0d 0a 32 35 31  .----..2183..251
1d2a0 36 0d 0a 33 35 35 32 0d 0a 0d 0a 71 75 65 72 79  6..3552....query
1d2b0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1d2c0 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 37 33  CT DISTINCT - 73
1d2d0 20 2d 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c   - - col0 AS col
1d2e0 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  0 FROM tab1..---
1d2f0 2d 0d 0a 2d 32 32 0d 0a 31 32 0d 0a 31 38 0d 0a  -..-22..12..18..
1d300 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1d310 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
1d320 28 20 63 6f 6c 30 20 29 20 2a 20 2d 20 63 6f 6c  ( col0 ) * - col
1d330 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
1d340 2d 0d 0a 32 32 35 0d 0a 37 35 36 39 0d 0a 39 34  -..225..7569..94
1d350 30 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  09....query I ro
1d360 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
1d370 4c 20 63 6f 6c 32 20 2a 20 2d 20 31 34 20 2b 20  L col2 * - 14 + 
1d380 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col2 FROM tab2..
1d390 2d 2d 2d 2d 0d 0a 2d 32 39 39 0d 0a 2d 35 32 30  ----..-299..-520
1d3a0 0d 0a 2d 37 35 34 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..-754....onlyif
1d3b0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
1d3c0 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
1d3d0 65 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67  e: DIV for integ
1d3e0 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
1d3f0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1d400 61 62 65 6c 2d 36 35 31 0d 0a 53 45 4c 45 43 54  abel-651..SELECT
1d410 20 44 49 53 54 49 4e 43 54 20 39 35 20 44 49 56   DISTINCT 95 DIV
1d420 20 2d 20 28 20 43 41 53 54 28 20 2d 20 2d 20 63   - ( CAST( - - c
1d430 6f 6c 32 20 41 53 20 53 49 47 4e 45 44 20 29 20  ol2 AS SIGNED ) 
1d440 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
1d450 2d 0d 0a 2d 32 0d 0a 2d 39 0d 0a 30 0d 0a 0d 0a  -..-2..-9..0....
1d460 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1d470 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1d480 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1d490 61 62 65 6c 2d 36 35 31 0d 0a 53 45 4c 45 43 54  abel-651..SELECT
1d4a0 20 44 49 53 54 49 4e 43 54 20 39 35 20 2f 20 2d   DISTINCT 95 / -
1d4b0 20 28 20 43 41 53 54 20 28 20 2d 20 2d 20 63 6f   ( CAST ( - - co
1d4c0 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  l2 AS INTEGER ) 
1d4d0 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
1d4e0 2d 0d 0a 2d 32 0d 0a 2d 39 0d 0a 30 0d 0a 0d 0a  -..-2..-9..0....
1d4f0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
1d500 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
1d510 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1d520 72 74 20 6c 61 62 65 6c 2d 36 35 32 0d 0a 53 45  rt label-652..SE
1d530 4c 45 43 54 20 43 4f 55 4e 54 28 20 2d 20 2b 20  LECT COUNT( - + 
1d540 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 32 20 46  col2 ) AS col2 F
1d550 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
1d560 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
1d570 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1d580 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1d590 6f 72 74 20 6c 61 62 65 6c 2d 36 35 32 0d 0a 53  ort label-652..S
1d5a0 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 2d 20  ELECT COUNT ( - 
1d5b0 2b 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 32  + col2 ) AS col2
1d5c0 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
1d5d0 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..3....onlyif my
1d5e0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
1d5f0 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20  syntax: DIV for 
1d600 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
1d610 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1d620 6f 72 74 20 6c 61 62 65 6c 2d 36 35 33 0d 0a 53  ort label-653..S
1d630 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 36  ELECT DISTINCT 6
1d640 38 20 44 49 56 20 2d 20 43 4f 55 4e 54 28 20 2a  8 DIV - COUNT( *
1d650 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
1d660 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32 0d  tab1..----..-22.
1d670 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1d680 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1d690 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1d6a0 74 20 6c 61 62 65 6c 2d 36 35 33 0d 0a 53 45 4c  t label-653..SEL
1d6b0 45 43 54 20 44 49 53 54 49 4e 43 54 20 36 38 20  ECT DISTINCT 68 
1d6c0 2f 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  / - COUNT ( * ) 
1d6d0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
1d6e0 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32 0d 0a 0d 0a  1..----..-22....
1d6f0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
1d700 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
1d710 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
1d720 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
1d730 6c 2d 36 35 34 0d 0a 53 45 4c 45 43 54 20 44 49  l-654..SELECT DI
1d740 53 54 49 4e 43 54 20 2d 20 37 33 2c 20 2b 20 63  STINCT - 73, + c
1d750 6f 6c 32 20 44 49 56 20 2d 20 32 34 20 41 53 20  ol2 DIV - 24 AS 
1d760 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
1d770 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37  S cor0..----..-7
1d780 33 0d 0a 2d 31 0d 0a 2d 37 33 0d 0a 2d 34 0d 0a  3..-1..-73..-4..
1d790 2d 37 33 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  -73..0....skipif
1d7a0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1d7b0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1d7c0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1d7d0 36 35 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  654..SELECT DIST
1d7e0 49 4e 43 54 20 2d 20 37 33 2c 20 2b 20 63 6f 6c  INCT - 73, + col
1d7f0 32 20 2f 20 2d 20 32 34 20 41 53 20 63 6f 6c 31  2 / - 24 AS col1
1d800 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
1d810 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 33 0d 0a 2d  r0..----..-73..-
1d820 31 0d 0a 2d 37 33 0d 0a 2d 34 0d 0a 2d 37 33 0d  1..-73..-4..-73.
1d830 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  .0....query III 
1d840 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1d850 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  * FROM tab2 AS c
1d860 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55  or0 WHERE NOT NU
1d870 4c 4c 20 3d 20 63 6f 6c 32 20 2b 20 2b 20 63 6f  LL = col2 + + co
1d880 6c 30 20 2a 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d  l0 * col0..----.
1d890 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
1d8a0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
1d8b0 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e  ROM tab1 WHERE N
1d8c0 4f 54 20 63 6f 6c 31 20 3d 20 2b 20 39 37 20 2b  OT col1 = + 97 +
1d8d0 20 2b 20 2d 20 28 20 2b 20 36 32 20 29 20 2a 20   + - ( + 62 ) * 
1d8e0 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  col2..----..9 va
1d8f0 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
1d900 63 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64  c6c0a4111b36d04d
1d910 62 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64  bc811a11e4d54cad
1d920 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
1d930 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
1d940 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
1d950 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
1d960 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
1d970 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1d980 4c 45 43 54 20 2d 20 33 33 20 2b 20 37 32 20 63  LECT - 33 + 72 c
1d990 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 2c 20 74  ol1 FROM tab0, t
1d9a0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
1d9b0 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
1d9c0 69 6e 67 20 74 6f 20 35 65 63 63 34 64 33 64 65  ing to 5ecc4d3de
1d9d0 36 38 61 65 38 32 38 61 32 64 35 32 32 64 66 66  68ae828a2d522dff
1d9e0 38 35 37 31 63 62 66 0d 0a 0d 0a 71 75 65 72 79  8571cbf....query
1d9f0 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
1da00 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
1da10 74 61 62 30 20 57 48 45 52 45 20 28 20 4e 4f 54  tab0 WHERE ( NOT
1da20 20 28 20 2b 20 63 6f 6c 32 20 29 20 4e 4f 54 20   ( + col2 ) NOT 
1da30 42 45 54 57 45 45 4e 20 2b 20 63 6f 6c 32 20 2b  BETWEEN + col2 +
1da40 20 32 34 20 41 4e 44 20 2d 20 63 6f 6c 32 20 2a   24 AND - col2 *
1da50 20 2d 20 34 33 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   - 43 )..----...
1da60 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1da70 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
1da80 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
1da90 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
1daa0 65 6c 2d 36 35 39 0d 0a 53 45 4c 45 43 54 20 28  el-659..SELECT (
1dab0 20 2b 20 2b 20 36 39 20 29 2c 20 2b 20 63 6f 6c   + + 69 ), + col
1dac0 30 20 2a 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  0 * CAST( NULL A
1dad0 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f  S SIGNED ) AS co
1dae0 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
1daf0 2d 2d 0d 0a 36 39 0d 0a 4e 55 4c 4c 0d 0a 36 39  --..69..NULL..69
1db00 0d 0a 4e 55 4c 4c 0d 0a 36 39 0d 0a 4e 55 4c 4c  ..NULL..69..NULL
1db10 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1db20 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1db30 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
1db40 6f 72 74 20 6c 61 62 65 6c 2d 36 35 39 0d 0a 53  ort label-659..S
1db50 45 4c 45 43 54 20 28 20 2b 20 2b 20 36 39 20 29  ELECT ( + + 69 )
1db60 2c 20 2b 20 63 6f 6c 30 20 2a 20 43 41 53 54 20  , + col0 * CAST 
1db70 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
1db80 52 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  R ) AS col2 FROM
1db90 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 36 39 0d   tab2..----..69.
1dba0 0a 4e 55 4c 4c 0d 0a 36 39 0d 0a 4e 55 4c 4c 0d  .NULL..69..NULL.
1dbb0 0a 36 39 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65  .69..NULL....que
1dbc0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1dbd0 4c 45 43 54 20 2d 20 2b 20 63 6f 6c 30 20 2a 20  LECT - + col0 * 
1dbe0 2d 20 63 6f 6c 30 20 2d 20 2b 20 63 6f 6c 32 20  - col0 - + col2 
1dbf0 2d 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 2d 20 63  - - col2 + + - c
1dc00 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
1dc10 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 30 36   cor0..----..206
1dc20 35 0d 0a 34 30 31 39 0d 0a 35 35 35 38 0d 0a 0d  5..4019..5558...
1dc30 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1dc40 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1dc50 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1dc60 6f 72 74 20 6c 61 62 65 6c 2d 36 36 31 0d 0a 53  ort label-661..S
1dc70 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 28  ELECT DISTINCT (
1dc80 20 2b 20 2d 20 32 20 29 20 2b 20 2d 20 4d 41 58   + - 2 ) + - MAX
1dc90 28 20 2d 20 35 36 20 29 20 46 52 4f 4d 20 74 61  ( - 56 ) FROM ta
1dca0 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35  b2 cor0..----..5
1dcb0 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  4....skipif mysq
1dcc0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1dcd0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1dce0 6f 72 74 20 6c 61 62 65 6c 2d 36 36 31 0d 0a 53  ort label-661..S
1dcf0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 28  ELECT DISTINCT (
1dd00 20 2b 20 2d 20 32 20 29 20 2b 20 2d 20 4d 41 58   + - 2 ) + - MAX
1dd10 20 28 20 2d 20 35 36 20 29 20 46 52 4f 4d 20 74   ( - 56 ) FROM t
1dd20 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab2 cor0..----..
1dd30 35 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  54....query II r
1dd40 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 37  owsort..SELECT 7
1dd50 37 20 41 53 20 63 6f 6c 30 2c 20 2b 20 63 6f 6c  7 AS col0, + col
1dd60 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
1dd70 2d 0d 0a 37 37 0d 0a 31 30 0d 0a 37 37 0d 0a 34  -..77..10..77..4
1dd80 37 0d 0a 37 37 0d 0a 39 39 0d 0a 0d 0a 6f 6e 6c  7..77..99....onl
1dd90 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
1dda0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
1ddb0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1ddc0 6c 61 62 65 6c 2d 36 36 33 0d 0a 53 45 4c 45 43  label-663..SELEC
1ddd0 54 20 4d 41 58 28 20 2b 20 2b 20 63 6f 6c 32 20  T MAX( + + col2 
1dde0 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  ) col0 FROM tab2
1ddf0 0d 0a 2d 2d 2d 2d 0d 0a 35 38 0d 0a 0d 0a 73 6b  ..----..58....sk
1de00 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1de10 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69   compatible..ski
1de20 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
1de30 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
1de40 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
1de50 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
1de60 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
1de70 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 36 33 0d  wsort label-663.
1de80 0a 53 45 4c 45 43 54 20 4d 41 58 20 28 20 2b 20  .SELECT MAX ( + 
1de90 2b 20 63 6f 6c 32 20 29 20 63 6f 6c 30 20 46 52  + col2 ) col0 FR
1dea0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35  OM tab2..----..5
1deb0 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  8....onlyif mysq
1dec0 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
1ded0 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
1dee0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1def0 6c 61 62 65 6c 2d 36 36 34 0d 0a 53 45 4c 45 43  label-664..SELEC
1df00 54 20 2d 20 63 6f 6c 32 20 44 49 56 20 33 37 20  T - col2 DIV 37 
1df10 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
1df20 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 32 0d  0..----..-1..-2.
1df30 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
1df40 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1df50 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1df60 73 6f 72 74 20 6c 61 62 65 6c 2d 36 36 34 0d 0a  sort label-664..
1df70 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2f 20  SELECT - col2 / 
1df80 33 37 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  37 AS col0 FROM 
1df90 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a  tab0..----..-1..
1dfa0 2d 32 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -2..0....onlyif 
1dfb0 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
1dfc0 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73  tax: aggregate s
1dfd0 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
1dfe0 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
1dff0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 36 35 0d  wsort label-665.
1e000 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 41  .SELECT ALL - CA
1e010 53 54 28 20 2b 20 43 4f 55 4e 54 28 20 44 49 53  ST( + COUNT( DIS
1e020 54 49 4e 43 54 20 2d 20 36 20 29 20 41 53 20 53  TINCT - 6 ) AS S
1e030 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62  IGNED ) FROM tab
1e040 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 73  1..----..-1....s
1e050 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1e060 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1e070 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1e080 62 65 6c 2d 36 36 35 0d 0a 53 45 4c 45 43 54 20  bel-665..SELECT 
1e090 41 4c 4c 20 2d 20 43 41 53 54 20 28 20 2b 20 43  ALL - CAST ( + C
1e0a0 4f 55 4e 54 20 28 20 44 49 53 54 49 4e 43 54 20  OUNT ( DISTINCT 
1e0b0 2d 20 36 20 29 20 41 53 20 49 4e 54 45 47 45 52  - 6 ) AS INTEGER
1e0c0 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d   ) FROM tab1..--
1e0d0 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 6f 6e 6c 79 69 66  --..-1....onlyif
1e0e0 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
1e0f0 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
1e100 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
1e110 73 6f 72 74 20 6c 61 62 65 6c 2d 36 36 36 0d 0a  sort label-666..
1e120 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1e130 2d 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 32 20  - col2 + - col2 
1e140 44 49 56 20 2b 20 39 31 20 41 53 20 63 6f 6c 30  DIV + 91 AS col0
1e150 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d   FROM tab1 cor0.
1e160 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a 2d 36 38 0d  .----..-59..-68.
1e170 0a 2d 39 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-97....skipif m
1e180 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1e190 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1e1a0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 36 36  owsort label-666
1e1b0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1e1c0 54 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c  T - col2 + - col
1e1d0 32 20 2f 20 2b 20 39 31 20 41 53 20 63 6f 6c 30  2 / + 91 AS col0
1e1e0 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d   FROM tab1 cor0.
1e1f0 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a 2d 36 38 0d  .----..-59..-68.
1e200 0a 2d 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-97....onlyif m
1e210 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
1e220 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
1e230 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
1e240 6c 2d 36 36 37 0d 0a 53 45 4c 45 43 54 20 41 4c  l-667..SELECT AL
1e250 4c 20 2d 20 38 33 20 41 53 20 63 6f 6c 32 2c 20  L - 83 AS col2, 
1e260 53 55 4d 28 20 41 4c 4c 20 2b 20 63 6f 6c 32 20  SUM( ALL + col2 
1e270 29 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  ) FROM tab1 cor0
1e280 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 33 0d 0a 32 32 33  ..----..-83..223
1e290 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1e2a0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1e2b0 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
1e2c0 6f 72 74 20 6c 61 62 65 6c 2d 36 36 37 0d 0a 53  ort label-667..S
1e2d0 45 4c 45 43 54 20 41 4c 4c 20 2d 20 38 33 20 41  ELECT ALL - 83 A
1e2e0 53 20 63 6f 6c 32 2c 20 53 55 4d 20 28 20 41 4c  S col2, SUM ( AL
1e2f0 4c 20 2b 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20  L + col2 ) FROM 
1e300 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
1e310 0a 2d 38 33 0d 0a 32 32 33 0d 0a 0d 0a 6f 6e 6c  .-83..223....onl
1e320 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
1e330 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
1e340 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
1e350 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 36  rowsort label-66
1e360 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41  8..SELECT ALL CA
1e370 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
1e380 45 44 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  ED ) AS col1 FRO
1e390 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
1e3a0 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 55 4c  HERE NULL IS NUL
1e3b0 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  L..----..NULL..N
1e3c0 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ULL..NULL....ski
1e3d0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1e3e0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1e3f0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1e400 6c 2d 36 36 38 0d 0a 53 45 4c 45 43 54 20 41 4c  l-668..SELECT AL
1e410 4c 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  L CAST ( NULL AS
1e420 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f   INTEGER ) AS co
1e430 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
1e440 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  cor0 WHERE NULL 
1e450 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e  IS NULL..----..N
1e460 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
1e470 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1e480 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
1e490 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
1e4a0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 36 39 0d  wsort label-669.
1e4b0 0a 53 45 4c 45 43 54 20 2b 20 2b 20 36 38 20 2b  .SELECT + + 68 +
1e4c0 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 63 6f   - COUNT( * ) co
1e4d0 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
1e4e0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 35 0d 0a  cor0..----..65..
1e4f0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1e500 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1e510 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
1e520 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
1e530 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
1e540 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
1e550 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
1e560 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1e570 36 36 39 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20  669..SELECT + + 
1e580 36 38 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a  68 + - COUNT ( *
1e590 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   ) col0 FROM tab
1e5a0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
1e5b0 0a 36 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .65....query I r
1e5c0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
1e5d0 20 32 30 20 2b 20 32 30 20 41 53 20 63 6f 6c 31   20 + 20 AS col1
1e5e0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
1e5f0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 30 0d 0a 34 30  r0..----..40..40
1e600 0d 0a 34 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..40....query I 
1e610 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1e620 63 6f 6c 30 20 2a 20 63 6f 6c 30 20 46 52 4f 4d  col0 * col0 FROM
1e630 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
1e640 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 49 4e 20  ERE ( NULL ) IN 
1e650 28 20 37 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71  ( 7 )..----....q
1e660 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1e670 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1e680 37 31 20 2b 20 2b 20 34 20 41 53 20 63 6f 6c 30  71 + + 4 AS col0
1e690 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
1e6a0 0d 0a 37 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..75....query I 
1e6b0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1e6c0 41 4c 4c 20 63 6f 6c 31 20 2a 20 2d 20 2d 20 32  ALL col1 * - - 2
1e6d0 34 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  4 AS col2 FROM t
1e6e0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 34 34 0d  ab0..----..1944.
1e6f0 0a 32 34 0d 0a 35 30 34 0d 0a 0d 0a 71 75 65 72  .24..504....quer
1e700 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1e710 45 43 54 20 41 4c 4c 20 2d 20 37 20 2a 20 2b 20  ECT ALL - 7 * + 
1e720 34 33 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  43 FROM tab2..--
1e730 2d 2d 0d 0a 2d 33 30 31 0d 0a 2d 33 30 31 0d 0a  --..-301..-301..
1e740 2d 33 30 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -301....query I 
1e750 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1e760 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20  DISTINCT + col1 
1e770 2a 20 63 6f 6c 31 20 2a 20 2d 20 37 30 20 41 53  * col1 * - 70 AS
1e780 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
1e790 0a 2d 2d 2d 2d 0d 0a 2d 31 33 37 32 30 0d 0a 2d  .----..-13720..-
1e7a0 31 35 34 36 33 30 0d 0a 2d 31 37 35 30 0d 0a 0d  154630..-1750...
1e7b0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1e7c0 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
1e7d0 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
1e7e0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1e7f0 6c 2d 36 37 36 0d 0a 53 45 4c 45 43 54 20 44 49  l-676..SELECT DI
1e800 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20 2a 20  STINCT + col2 * 
1e810 2b 20 43 41 53 54 28 20 63 6f 6c 31 20 41 53 20  + CAST( col1 AS 
1e820 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 32  SIGNED ) AS col2
1e830 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
1e840 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 30 0d 0a 33  r0..----..210..3
1e850 38 30 37 0d 0a 39 39 0d 0a 0d 0a 73 6b 69 70 69  807..99....skipi
1e860 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1e870 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
1e880 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1e890 36 37 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  676..SELECT DIST
1e8a0 49 4e 43 54 20 2b 20 63 6f 6c 32 20 2a 20 2b 20  INCT + col2 * + 
1e8b0 43 41 53 54 20 28 20 63 6f 6c 31 20 41 53 20 49  CAST ( col1 AS I
1e8c0 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 32  NTEGER ) AS col2
1e8d0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
1e8e0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 30 0d 0a 33  r0..----..210..3
1e8f0 38 30 37 0d 0a 39 39 0d 0a 0d 0a 71 75 65 72 79  807..99....query
1e900 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1e910 43 54 20 41 4c 4c 20 2b 20 32 32 20 2b 20 2d 20  CT ALL + 22 + - 
1e920 34 38 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  48 FROM tab2 AS 
1e930 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
1e940 74 61 62 31 20 41 53 20 63 6f 72 31 0d 0a 2d 2d  tab1 AS cor1..--
1e950 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
1e960 68 69 6e 67 20 74 6f 20 34 37 64 30 35 37 34 32  hing to 47d05742
1e970 37 34 31 34 36 64 65 32 37 33 38 32 39 37 38 35  74146de273829785
1e980 33 36 34 61 64 61 33 39 0d 0a 0d 0a 71 75 65 72  364ada39....quer
1e990 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1e9a0 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 2f  ECT ALL - col2 /
1e9b0 20 2d 20 2b 20 32 39 20 41 53 20 63 6f 6c 31 20   - + 29 AS col1 
1e9c0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
1e9d0 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30  0 WHERE NOT col0
1e9e0 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e   BETWEEN NULL AN
1e9f0 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  D NULL..----....
1ea00 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
1ea10 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
1ea20 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
1ea30 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3e 3d 20  ERE NOT NULL >= 
1ea40 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 32 0d 0a 2d  col2 + - col2..-
1ea50 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
1ea60 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
1ea70 6f 6c 32 20 2b 20 2b 20 63 6f 6c 30 20 2d 20 2d  ol2 + + col0 - -
1ea80 20 2b 20 34 32 20 46 52 4f 4d 20 74 61 62 32 20   + 42 FROM tab2 
1ea90 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
1eaa0 31 31 0d 0a 31 34 36 0d 0a 31 37 35 0d 0a 0d 0a  11..146..175....
1eab0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
1eac0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
1ead0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1eae0 72 74 20 6c 61 62 65 6c 2d 36 38 31 0d 0a 53 45  rt label-681..SE
1eaf0 4c 45 43 54 20 2d 20 4d 49 4e 28 20 2b 20 2d 20  LECT - MIN( + - 
1eb00 33 32 20 29 20 2b 20 4d 49 4e 28 20 2b 20 2b 20  32 ) + MIN( + + 
1eb10 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 30  col0 ) FROM tab0
1eb20 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1eb30 34 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  47....skipif mys
1eb40 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1eb50 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1eb60 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38 31 0d 0a  sort label-681..
1eb70 53 45 4c 45 43 54 20 2d 20 4d 49 4e 20 28 20 2b  SELECT - MIN ( +
1eb80 20 2d 20 33 32 20 29 20 2b 20 4d 49 4e 20 28 20   - 32 ) + MIN ( 
1eb90 2b 20 2b 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20  + + col0 ) FROM 
1eba0 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
1ebb0 2d 2d 0d 0a 34 37 0d 0a 0d 0a 71 75 65 72 79 20  --..47....query 
1ebc0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1ebd0 54 20 44 49 53 54 49 4e 43 54 20 2b 20 36 34 20  T DISTINCT + 64 
1ebe0 2a 20 2d 20 38 35 20 46 52 4f 4d 20 74 61 62 32  * - 85 FROM tab2
1ebf0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1ec00 2d 35 34 34 30 0d 0a 0d 0a 71 75 65 72 79 20 49  -5440....query I
1ec10 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1ec20 20 2b 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 63 6f   + - col0 + + co
1ec30 6c 32 20 2b 20 2d 20 63 6f 6c 30 20 2b 20 38 31  l2 + - col0 + 81
1ec40 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
1ec50 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 0d 0a 2d  r0..----..-11..-
1ec60 37 0d 0a 31 32 0d 0a 0d 0a 71 75 65 72 79 20 49  7..12....query I
1ec70 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1ec80 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
1ec90 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
1eca0 20 4e 4f 54 20 36 31 20 49 53 20 4e 55 4c 4c 0d   NOT 61 IS NULL.
1ecb0 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
1ecc0 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61  hashing to c6c0a
1ecd0 34 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31  4111b36d04dbc811
1ece0 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 6f  a11e4d54cad....o
1ecf0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
1ed00 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d  ST syntax: DECIM
1ed10 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  AL type: ..query
1ed20 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1ed30 2d 36 38 35 0d 0a 53 45 4c 45 43 54 20 44 49 53  -685..SELECT DIS
1ed40 54 49 4e 43 54 20 2b 20 2d 20 43 41 53 54 28 20  TINCT + - CAST( 
1ed50 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20  NULL AS DECIMAL 
1ed60 29 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20  ) + - col0 FROM 
1ed70 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
1ed80 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
1ed90 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1eda0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1edb0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1edc0 2d 36 38 35 0d 0a 53 45 4c 45 43 54 20 44 49 53  -685..SELECT DIS
1edd0 54 49 4e 43 54 20 2b 20 2d 20 43 41 53 54 20 28  TINCT + - CAST (
1ede0 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20   NULL AS REAL ) 
1edf0 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  + - col0 FROM ta
1ee00 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
1ee10 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..NULL....onlyif
1ee20 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
1ee30 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
1ee40 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  n: ..query II ro
1ee50 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38 36 0d  wsort label-686.
1ee60 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 44 49 56  .SELECT col0 DIV
1ee70 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 2c 20 2d   col0 AS col1, -
1ee80 20 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   1 FROM tab0..--
1ee90 2d 2d 0d 0a 31 0d 0a 2d 31 0d 0a 31 0d 0a 2d 31  --..1..-1..1..-1
1eea0 0d 0a 31 0d 0a 2d 31 0d 0a 0d 0a 73 6b 69 70 69  ..1..-1....skipi
1eeb0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1eec0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
1eed0 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
1eee0 2d 36 38 36 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  -686..SELECT col
1eef0 30 20 2f 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31  0 / col0 AS col1
1ef00 2c 20 2d 20 31 20 46 52 4f 4d 20 74 61 62 30 0d  , - 1 FROM tab0.
1ef10 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 2d 31 0d 0a 31 0d  .----..1..-1..1.
1ef20 0a 2d 31 0d 0a 31 0d 0a 2d 31 0d 0a 0d 0a 71 75  .-1..1..-1....qu
1ef30 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
1ef40 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
1ef50 61 62 30 20 57 48 45 52 45 20 2d 20 28 20 63 6f  ab0 WHERE - ( co
1ef60 6c 31 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  l1 ) IS NOT NULL
1ef70 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
1ef80 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34   hashing to c4b4
1ef90 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30  2765dff94eaaa460
1efa0 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a  40e537fb43b7....
1efb0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
1efc0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1efd0 54 20 37 38 20 41 53 20 63 6f 6c 30 2c 20 31 30  T 78 AS col0, 10
1efe0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
1eff0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 37 38 0d 0a 31 30  b2..----..78..10
1f000 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
1f010 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
1f020 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
1f030 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
1f040 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
1f050 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1f060 4c 45 43 54 20 63 6f 6c 32 20 2a 20 2d 20 36 35  LECT col2 * - 65
1f070 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d   col2 FROM tab2.
1f080 0a 2d 2d 2d 2d 0d 0a 2d 31 34 39 35 0d 0a 2d 32  .----..-1495..-2
1f090 36 30 30 0d 0a 2d 33 37 37 30 0d 0a 0d 0a 6f 6e  600..-3770....on
1f0a0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
1f0b0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
1f0c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1f0d0 20 6c 61 62 65 6c 2d 36 39 30 0d 0a 53 45 4c 45   label-690..SELE
1f0e0 43 54 20 33 34 20 2d 20 2b 20 53 55 4d 28 20 34  CT 34 - + SUM( 4
1f0f0 36 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  6 ) AS col0 FROM
1f100 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
1f110 2d 2d 2d 0d 0a 2d 31 30 34 0d 0a 0d 0a 73 6b 69  ---..-104....ski
1f120 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1f130 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1f140 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1f150 6c 2d 36 39 30 0d 0a 53 45 4c 45 43 54 20 33 34  l-690..SELECT 34
1f160 20 2d 20 2b 20 53 55 4d 20 28 20 34 36 20 29 20   - + SUM ( 46 ) 
1f170 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
1f180 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
1f190 0a 2d 31 30 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .-104....onlyif 
1f1a0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
1f1b0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
1f1c0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1f1d0 6c 2d 36 39 31 0d 0a 53 45 4c 45 43 54 20 41 4c  l-691..SELECT AL
1f1e0 4c 20 2d 20 28 20 36 20 29 20 2a 20 43 4f 55 4e  L - ( 6 ) * COUN
1f1f0 54 28 20 2a 20 29 20 2b 20 43 4f 55 4e 54 28 20  T( * ) + COUNT( 
1f200 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  * ) AS col1 FROM
1f210 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35   tab0..----..-15
1f220 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1f230 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1f240 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
1f250 72 74 20 6c 61 62 65 6c 2d 36 39 31 0d 0a 53 45  rt label-691..SE
1f260 4c 45 43 54 20 41 4c 4c 20 2d 20 28 20 36 20 29  LECT ALL - ( 6 )
1f270 20 2a 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b   * COUNT ( * ) +
1f280 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
1f290 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
1f2a0 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 0d 0a 6f 6e 6c  ----..-15....onl
1f2b0 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
1f2c0 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
1f2d0 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49  sion: ..query II
1f2e0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1f2f0 39 32 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c  92..SELECT + col
1f300 30 20 44 49 56 20 2b 20 2d 20 63 6f 6c 30 20 41  0 DIV + - col0 A
1f310 53 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c 30 20 41  S col1, + col0 A
1f320 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
1f330 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 35 31 0d 0a  ..----..-1..51..
1f340 2d 31 0d 0a 38 35 0d 0a 2d 31 0d 0a 39 31 0d 0a  -1..85..-1..91..
1f350 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1f360 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1f370 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
1f380 74 20 6c 61 62 65 6c 2d 36 39 32 0d 0a 53 45 4c  t label-692..SEL
1f390 45 43 54 20 2b 20 63 6f 6c 30 20 2f 20 2b 20 2d  ECT + col0 / + -
1f3a0 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 2c 20 2b   col0 AS col1, +
1f3b0 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52   col0 AS col1 FR
1f3c0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
1f3d0 31 0d 0a 35 31 0d 0a 2d 31 0d 0a 38 35 0d 0a 2d  1..51..-1..85..-
1f3e0 31 0d 0a 39 31 0d 0a 0d 0a 71 75 65 72 79 20 49  1..91....query I
1f3f0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1f400 20 44 49 53 54 49 4e 43 54 20 39 36 20 2b 20 2d   DISTINCT 96 + -
1f410 20 36 37 20 2a 20 2d 20 2b 20 63 6f 6c 32 20 2b   67 * - + col2 +
1f420 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
1f430 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
1f440 36 38 33 0d 0a 32 38 34 30 0d 0a 34 30 35 37 0d  683..2840..4057.
1f450 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1f460 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
1f470 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
1f480 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39 34 0d  wsort label-694.
1f490 0a 53 45 4c 45 43 54 20 2d 20 53 55 4d 28 20 2b  .SELECT - SUM( +
1f4a0 20 63 6f 6c 30 20 29 20 2a 20 2b 20 37 38 20 41   col0 ) * + 78 A
1f4b0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
1f4c0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1f4d0 2d 31 35 35 32 32 0d 0a 0d 0a 73 6b 69 70 69 66  -15522....skipif
1f4e0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1f4f0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1f500 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1f510 39 34 0d 0a 53 45 4c 45 43 54 20 2d 20 53 55 4d  94..SELECT - SUM
1f520 20 28 20 2b 20 63 6f 6c 30 20 29 20 2a 20 2b 20   ( + col0 ) * + 
1f530 37 38 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  78 AS col2 FROM 
1f540 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
1f550 2d 2d 0d 0a 2d 31 35 35 32 32 0d 0a 0d 0a 6f 6e  --..-15522....on
1f560 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
1f570 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
1f580 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
1f590 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
1f5a0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1f5b0 2d 36 39 35 0d 0a 53 45 4c 45 43 54 20 44 49 53  -695..SELECT DIS
1f5c0 54 49 4e 43 54 20 2d 20 4d 49 4e 28 20 44 49 53  TINCT - MIN( DIS
1f5d0 54 49 4e 43 54 20 2d 20 43 41 53 54 28 20 4e 55  TINCT - CAST( NU
1f5e0 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 29  LL AS SIGNED ) )
1f5f0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
1f600 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
1f610 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1f620 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1f630 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1f640 20 6c 61 62 65 6c 2d 36 39 35 0d 0a 53 45 4c 45   label-695..SELE
1f650 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 4d 49  CT DISTINCT - MI
1f660 4e 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 43  N ( DISTINCT - C
1f670 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
1f680 54 45 47 45 52 20 29 20 29 20 46 52 4f 4d 20 74  TEGER ) ) FROM t
1f690 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
1f6a0 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79  -..NULL....query
1f6b0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1f6c0 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20  CT DISTINCT - - 
1f6d0 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f  col2 AS col1 FRO
1f6e0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
1f6f0 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 4e 4f  HERE ( NULL ) NO
1f700 54 20 42 45 54 57 45 45 4e 20 2b 20 35 20 2d 20  T BETWEEN + 5 - 
1f710 2b 20 31 20 2a 20 2b 20 39 35 20 2a 20 2d 20 37  + 1 * + 95 * - 7
1f720 39 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  9 AND NULL..----
1f730 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1f740 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
1f750 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
1f760 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39 37  owsort label-697
1f770 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1f780 54 20 2b 20 2b 20 4d 41 58 28 20 41 4c 4c 20 2d  T + + MAX( ALL -
1f790 20 35 36 20 29 20 41 53 20 63 6f 6c 31 20 46 52   56 ) AS col1 FR
1f7a0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
1f7b0 0a 2d 2d 2d 2d 0d 0a 2d 35 36 0d 0a 0d 0a 73 6b  .----..-56....sk
1f7c0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1f7d0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1f7e0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1f7f0 65 6c 2d 36 39 37 0d 0a 53 45 4c 45 43 54 20 44  el-697..SELECT D
1f800 49 53 54 49 4e 43 54 20 2b 20 2b 20 4d 41 58 20  ISTINCT + + MAX 
1f810 28 20 41 4c 4c 20 2d 20 35 36 20 29 20 41 53 20  ( ALL - 56 ) AS 
1f820 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
1f830 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  S cor0..----..-5
1f840 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  6....query I row
1f850 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
1f860 54 49 4e 43 54 20 2b 20 31 32 20 41 53 20 63 6f  TINCT + 12 AS co
1f870 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
1f880 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 30 20  cor0 WHERE col0 
1f890 2b 20 2d 20 34 31 20 2b 20 2b 20 63 6f 6c 30 20  + - 41 + + col0 
1f8a0 2b 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a  + col1 IS NULL..
1f8b0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
1f8c0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1f8d0 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  T * FROM tab2 WH
1f8e0 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54  ERE NOT NULL NOT
1f8f0 20 49 4e 20 28 20 2d 20 2b 20 63 6f 6c 32 20 2a   IN ( - + col2 *
1f900 20 2d 20 2b 20 63 6f 6c 32 2c 20 63 6f 6c 32 2c   - + col2, col2,
1f910 20 63 6f 6c 31 2c 20 2b 20 2d 20 28 20 2b 20 39   col1, + - ( + 9
1f920 37 20 29 20 2a 20 2d 20 63 6f 6c 32 2c 20 2b 20  7 ) * - col2, + 
1f930 28 20 63 6f 6c 32 20 29 2c 20 2d 20 2d 20 33 31  ( col2 ), - - 31
1f940 2c 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 2b 20 63  , + col1 + - + c
1f950 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71  ol0 )..----....q
1f960 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1f970 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1f980 2d 20 34 36 20 2a 20 2b 20 63 6f 6c 30 20 41 53  - 46 * + col0 AS
1f990 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
1f9a0 0a 2d 2d 2d 2d 0d 0a 2d 32 31 31 36 0d 0a 2d 32  .----..-2116..-2
1f9b0 39 34 34 0d 0a 2d 33 34 35 30 0d 0a 0d 0a 71 75  944..-3450....qu
1f9c0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
1f9d0 53 45 4c 45 43 54 20 63 6f 6c 31 2c 20 31 37 20  SELECT col1, 17 
1f9e0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
1f9f0 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 31 37 0d  1..----..14..17.
1fa00 0a 34 37 0d 0a 31 37 0d 0a 35 0d 0a 31 37 0d 0a  .47..17..5..17..
1fa10 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
1fa20 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 33 20 41  rt..SELECT - 3 A
1fa30 53 20 63 6f 6c 30 2c 20 39 33 20 46 52 4f 4d 20  S col0, 93 FROM 
1fa40 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a  tab1..----..-3..
1fa50 39 33 0d 0a 2d 33 0d 0a 39 33 0d 0a 2d 33 0d 0a  93..-3..93..-3..
1fa60 39 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  93....skipif pos
1fa70 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
1fa80 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
1fa90 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
1faa0 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
1fab0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
1fac0 0a 53 45 4c 45 43 54 20 2d 20 2b 20 63 6f 6c 32  .SELECT - + col2
1fad0 2c 20 2b 20 38 39 20 2a 20 63 6f 6c 30 20 63 6f  , + 89 * col0 co
1fae0 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
1faf0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d  cor0..----..-59.
1fb00 0a 37 35 36 35 0d 0a 2d 36 38 0d 0a 38 30 39 39  .7565..-68..8099
1fb10 0d 0a 2d 39 36 0d 0a 34 35 33 39 0d 0a 0d 0a 71  ..-96..4539....q
1fb20 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
1fb30 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 41  .SELECT - col0 A
1fb40 53 20 63 6f 6c 30 2c 20 33 37 20 46 52 4f 4d 20  S col0, 37 FROM 
1fb50 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
1fb60 2d 2d 0d 0a 2d 35 31 0d 0a 33 37 0d 0a 2d 38 35  --..-51..37..-85
1fb70 0d 0a 33 37 0d 0a 2d 39 31 0d 0a 33 37 0d 0a 0d  ..37..-91..37...
1fb80 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
1fb90 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
1fba0 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
1fbb0 20 2d 20 63 6f 6c 30 20 2a 20 63 6f 6c 30 20 4e   - col0 * col0 N
1fbc0 4f 54 20 49 4e 20 28 20 32 31 20 29 0d 0a 2d 2d  OT IN ( 21 )..--
1fbd0 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
1fbe0 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35  hing to c4b42765
1fbf0 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35  dff94eaaa46040e5
1fc00 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72  37fb43b7....quer
1fc10 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1fc20 45 43 54 20 44 49 53 54 49 4e 43 54 20 28 20 63  ECT DISTINCT ( c
1fc30 6f 6c 31 20 29 20 2b 20 36 30 20 2a 20 2b 20 63  ol1 ) + 60 * + c
1fc40 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
1fc50 2d 2d 2d 0d 0a 31 34 33 31 0d 0a 32 34 37 37 0d  ---..1431..2477.
1fc60 0a 33 35 34 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .3547....onlyif 
1fc70 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
1fc80 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
1fc90 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1fca0 6c 2d 37 30 37 0d 0a 53 45 4c 45 43 54 20 41 4c  l-707..SELECT AL
1fcb0 4c 20 43 4f 55 4e 54 28 20 2a 20 29 20 2d 20 43  L COUNT( * ) - C
1fcc0 4f 55 4e 54 28 20 44 49 53 54 49 4e 43 54 20 63  OUNT( DISTINCT c
1fcd0 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ol0 ) AS col0 FR
1fce0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30  OM tab2..----..0
1fcf0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1fd00 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1fd10 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
1fd20 72 74 20 6c 61 62 65 6c 2d 37 30 37 0d 0a 53 45  rt label-707..SE
1fd30 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20 28  LECT ALL COUNT (
1fd40 20 2a 20 29 20 2d 20 43 4f 55 4e 54 20 28 20 44   * ) - COUNT ( D
1fd50 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 29 20 41  ISTINCT col0 ) A
1fd60 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
1fd70 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65  ..----..0....que
1fd80 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
1fd90 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1fda0 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  * FROM tab1 WHER
1fdb0 45 20 63 6f 6c 32 20 2a 20 63 6f 6c 32 20 3e 20  E col2 * col2 > 
1fdc0 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20  - col2..----..9 
1fdd0 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
1fde0 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64 30  o c6c0a4111b36d0
1fdf0 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34 63  4dbc811a11e4d54c
1fe00 61 64 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  ad....query I ro
1fe10 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
1fe20 63 6f 6c 30 20 2d 20 28 20 63 6f 6c 30 20 29 20  col0 - ( col0 ) 
1fe30 2a 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  * - col1 FROM ta
1fe40 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 34 30 0d 0a 34  b1..----..340..4
1fe50 31 38 36 0d 0a 36 36 33 0d 0a 0d 0a 6f 6e 6c 79  186..663....only
1fe60 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
1fe70 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74  syntax: aggregat
1fe80 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  e syntax: SIGNED
1fe90 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
1fea0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
1feb0 31 30 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 28  10..SELECT CAST(
1fec0 20 43 4f 55 4e 54 28 20 2d 20 63 6f 6c 30 20 29   COUNT( - col0 )
1fed0 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20   AS SIGNED ) AS 
1fee0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col2 FROM tab2..
1fef0 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69  ----..3....skipi
1ff00 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1ff10 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
1ff20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1ff30 37 31 30 0d 0a 53 45 4c 45 43 54 20 43 41 53 54  710..SELECT CAST
1ff40 20 28 20 43 4f 55 4e 54 20 28 20 2d 20 63 6f 6c   ( COUNT ( - col
1ff50 30 20 29 20 41 53 20 49 4e 54 45 47 45 52 20 29  0 ) AS INTEGER )
1ff60 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
1ff70 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71  b2..----..3....q
1ff80 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1ff90 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 2a 20  SELECT + col0 * 
1ffa0 2b 20 35 30 20 46 52 4f 4d 20 74 61 62 32 20 57  + 50 FROM tab2 W
1ffb0 48 45 52 45 20 28 20 63 6f 6c 30 20 29 20 3c 3d  HERE ( col0 ) <=
1ffc0 20 28 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d   ( col2 )..----.
1ffd0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1ffe0 72 74 0d 0a 53 45 4c 45 43 54 20 31 39 20 2d 20  rt..SELECT 19 - 
1fff0 2d 20 28 20 2b 20 63 6f 6c 30 20 29 20 2a 20 2d  - ( + col0 ) * -
20000 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
20010 0a 2d 2d 2d 2d 0d 0a 2d 32 35 38 32 0d 0a 2d 37  .----..-2582..-7
20020 32 30 36 0d 0a 2d 38 32 36 32 0d 0a 0d 0a 6f 6e  206..-8262....on
20030 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
20040 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
20050 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
20060 20 6c 61 62 65 6c 2d 37 31 33 0d 0a 53 45 4c 45   label-713..SELE
20070 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 33 32  CT DISTINCT - 32
20080 20 2a 20 2d 20 4d 49 4e 28 20 33 32 20 2a 20 63   * - MIN( 32 * c
20090 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 32 0d  ol0 ) FROM tab2.
200a0 0a 2d 2d 2d 2d 0d 0a 34 37 31 30 34 0d 0a 0d 0a  .----..47104....
200b0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
200c0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
200d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
200e0 61 62 65 6c 2d 37 31 33 0d 0a 53 45 4c 45 43 54  abel-713..SELECT
200f0 20 44 49 53 54 49 4e 43 54 20 2d 20 33 32 20 2a   DISTINCT - 32 *
20100 20 2d 20 4d 49 4e 20 28 20 33 32 20 2a 20 63 6f   - MIN ( 32 * co
20110 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a  l0 ) FROM tab2..
20120 2d 2d 2d 2d 0d 0a 34 37 31 30 34 0d 0a 0d 0a 6f  ----..47104....o
20130 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
20140 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
20150 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
20160 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
20170 37 31 34 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  714..SELECT - co
20180 6c 32 20 2b 20 2b 20 37 31 20 2a 20 28 20 2d 20  l2 + + 71 * ( - 
20190 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
201a0 47 4e 45 44 20 29 20 2b 20 63 6f 6c 31 20 29 20  GNED ) + col1 ) 
201b0 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
201c0 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
201d0 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
201e0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
201f0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
20200 6f 72 74 20 6c 61 62 65 6c 2d 37 31 34 0d 0a 53  ort label-714..S
20210 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2b 20 2b  ELECT - col2 + +
20220 20 37 31 20 2a 20 28 20 2d 20 43 41 53 54 20 28   71 * ( - CAST (
20230 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
20240 20 29 20 2b 20 63 6f 6c 31 20 29 20 46 52 4f 4d   ) + col1 ) FROM
20250 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   tab1..----..NUL
20260 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
20270 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
20280 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
20290 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
202a0 20 4e 4f 54 20 28 20 2b 20 28 20 2b 20 63 6f 6c   NOT ( + ( + col
202b0 31 20 29 20 29 20 3e 20 2b 20 63 6f 6c 32 20 2a  1 ) ) > + col2 *
202c0 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 39   + col1..----..9
202d0 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
202e0 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64  to c6c0a4111b36d
202f0 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34  04dbc811a11e4d54
20300 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  cad....query I r
20310 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
20320 4c 4c 20 33 33 20 2a 20 2d 20 36 37 20 2b 20 2d  LL 33 * - 67 + -
20330 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
20340 0a 2d 2d 2d 2d 0d 0a 2d 32 32 36 32 0d 0a 2d 32  .----..-2262..-2
20350 32 39 36 0d 0a 2d 32 33 30 32 0d 0a 0d 0a 71 75  296..-2302....qu
20360 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
20370 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
20380 20 28 20 63 6f 6c 30 20 29 20 2a 20 2b 20 63 6f   ( col0 ) * + co
20390 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
203a0 2d 2d 0d 0a 34 32 35 0d 0a 34 32 37 37 0d 0a 37  --..425..4277..7
203b0 31 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  14....onlyif mys
203c0 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
203d0 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  : aggregate synt
203e0 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
203f0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
20400 72 74 20 6c 61 62 65 6c 2d 37 31 38 0d 0a 53 45  rt label-718..SE
20410 4c 45 43 54 20 2d 20 43 41 53 54 28 20 4d 41 58  LECT - CAST( MAX
20420 28 20 2b 20 35 36 20 29 20 41 53 20 53 49 47 4e  ( + 56 ) AS SIGN
20430 45 44 20 29 20 46 52 4f 4d 20 74 61 62 30 20 57  ED ) FROM tab0 W
20440 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 32 20  HERE NOT - col2 
20450 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d  IS NULL..----..-
20460 35 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  56....skipif mys
20470 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
20480 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
20490 73 6f 72 74 20 6c 61 62 65 6c 2d 37 31 38 0d 0a  sort label-718..
204a0 53 45 4c 45 43 54 20 2d 20 43 41 53 54 20 28 20  SELECT - CAST ( 
204b0 4d 41 58 20 28 20 2b 20 35 36 20 29 20 41 53 20  MAX ( + 56 ) AS 
204c0 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74  INTEGER ) FROM t
204d0 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab0 WHERE NOT - 
204e0 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  col2 IS NULL..--
204f0 2d 2d 0d 0a 2d 35 36 0d 0a 0d 0a 71 75 65 72 79  --..-56....query
20500 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
20510 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
20520 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2d  tab2 WHERE NOT -
20530 20 63 6f 6c 30 20 2a 20 38 20 49 53 20 4e 55 4c   col0 * 8 IS NUL
20540 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  L..----..9 value
20550 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63  s hashing to 75c
20560 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62  998aa53ac83218cb
20570 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d  f2feb962d0a49...
20580 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
20590 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
205a0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
205b0 6f 72 74 20 6c 61 62 65 6c 2d 37 32 30 0d 0a 53  ort label-720..S
205c0 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 41  ELECT + COUNT( A
205d0 4c 4c 20 2d 20 63 6f 6c 32 20 29 20 46 52 4f 4d  LL - col2 ) FROM
205e0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   tab0..----..3..
205f0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
20600 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
20610 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
20620 20 6c 61 62 65 6c 2d 37 32 30 0d 0a 53 45 4c 45   label-720..SELE
20630 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 41 4c 4c  CT + COUNT ( ALL
20640 20 2d 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74   - col2 ) FROM t
20650 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a  ab0..----..3....
20660 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
20670 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
20680 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   - col1 FROM tab
20690 32 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55  2 WHERE NOT ( NU
206a0 4c 4c 20 29 20 4e 4f 54 20 42 45 54 57 45 45 4e  LL ) NOT BETWEEN
206b0 20 4e 55 4c 4c 20 41 4e 44 20 28 20 2d 20 32 35   NULL AND ( - 25
206c0 20 2d 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d   - col2 )..----.
206d0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
206e0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
206f0 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   * FROM tab2 WHE
20700 52 45 20 4e 4f 54 20 2d 20 39 34 20 4e 4f 54 20  RE NOT - 94 NOT 
20710 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44  BETWEEN NULL AND
20720 20 35 34 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c   54..----....onl
20730 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
20740 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
20750 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
20760 6c 61 62 65 6c 2d 37 32 33 0d 0a 53 45 4c 45 43  label-723..SELEC
20770 54 20 41 4c 4c 20 2d 20 4d 49 4e 28 20 38 20 29  T ALL - MIN( 8 )
20780 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
20790 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 0d 0a 0d 0a  b0..----..-8....
207a0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
207b0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
207c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
207d0 61 62 65 6c 2d 37 32 33 0d 0a 53 45 4c 45 43 54  abel-723..SELECT
207e0 20 41 4c 4c 20 2d 20 4d 49 4e 20 28 20 38 20 29   ALL - MIN ( 8 )
207f0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
20800 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 0d 0a 0d 0a  b0..----..-8....
20810 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
20820 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
20830 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
20840 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
20850 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
20860 65 6c 2d 37 32 34 0d 0a 53 45 4c 45 43 54 20 44  el-724..SELECT D
20870 49 53 54 49 4e 43 54 20 2d 20 31 33 20 44 49 56  ISTINCT - 13 DIV
20880 20 2b 20 37 39 20 2d 20 2d 20 43 4f 55 4e 54 28   + 79 - - COUNT(
20890 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 29 20 46 52   ALL - col1 ) FR
208a0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33  OM tab1..----..3
208b0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
208c0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
208d0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
208e0 72 74 20 6c 61 62 65 6c 2d 37 32 34 0d 0a 53 45  rt label-724..SE
208f0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
20900 31 33 20 2f 20 2b 20 37 39 20 2d 20 2d 20 43 4f  13 / + 79 - - CO
20910 55 4e 54 20 28 20 41 4c 4c 20 2d 20 63 6f 6c 31  UNT ( ALL - col1
20920 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d   ) FROM tab1..--
20930 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49  --..3....query I
20940 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
20950 20 63 6f 6c 31 20 2a 20 2b 20 28 20 63 6f 6c 30   col1 * + ( col0
20960 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
20970 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 34  tab2 WHERE NOT 4
20980 35 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  5 IS NOT NULL..-
20990 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
209a0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
209b0 20 34 32 20 2a 20 2d 20 39 38 20 46 52 4f 4d 20   42 * - 98 FROM 
209c0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 34 31 31 36  tab1..----..4116
209d0 0d 0a 34 31 31 36 0d 0a 34 31 31 36 0d 0a 0d 0a  ..4116..4116....
209e0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
209f0 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
20a00 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
20a10 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
20a20 2d 37 32 37 0d 0a 53 45 4c 45 43 54 20 44 49 53  -727..SELECT DIS
20a30 54 49 4e 43 54 20 63 6f 6c 32 20 2b 20 2b 20 28  TINCT col2 + + (
20a40 20 43 41 53 54 28 20 2d 20 63 6f 6c 32 20 41 53   CAST( - col2 AS
20a50 20 53 49 47 4e 45 44 20 29 20 29 20 46 52 4f 4d   SIGNED ) ) FROM
20a60 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   tab2..----..0..
20a70 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
20a80 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
20a90 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
20aa0 20 6c 61 62 65 6c 2d 37 32 37 0d 0a 53 45 4c 45   label-727..SELE
20ab0 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32  CT DISTINCT col2
20ac0 20 2b 20 2b 20 28 20 43 41 53 54 20 28 20 2d 20   + + ( CAST ( - 
20ad0 63 6f 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20  col2 AS INTEGER 
20ae0 29 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ) ) FROM tab2..-
20af0 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ---..0....onlyif
20b00 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
20b10 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79  ntax: DECIMAL ty
20b20 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
20b30 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 32 38 0d  wsort label-728.
20b40 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
20b50 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   + CAST( NULL AS
20b60 20 44 45 43 49 4d 41 4c 20 29 20 2b 20 63 6f 6c   DECIMAL ) + col
20b70 30 20 2a 20 2b 20 39 35 20 46 52 4f 4d 20 74 61  0 * + 95 FROM ta
20b80 62 32 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20  b2 WHERE ( NULL 
20b90 29 20 3d 20 28 20 63 6f 6c 32 20 29 0d 0a 2d 2d  ) = ( col2 )..--
20ba0 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
20bb0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
20bc0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
20bd0 73 6f 72 74 20 6c 61 62 65 6c 2d 37 32 38 0d 0a  sort label-728..
20be0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
20bf0 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
20c00 20 52 45 41 4c 20 29 20 2b 20 63 6f 6c 30 20 2a   REAL ) + col0 *
20c10 20 2b 20 39 35 20 46 52 4f 4d 20 74 61 62 32 20   + 95 FROM tab2 
20c20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 3d  WHERE ( NULL ) =
20c30 20 28 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d   ( col2 )..----.
20c40 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
20c50 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
20c60 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
20c70 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 32 39 0d  wsort label-729.
20c80 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28  .SELECT + COUNT(
20c90 20 2a 20 29 20 2a 20 4d 49 4e 28 20 44 49 53 54   * ) * MIN( DIST
20ca0 49 4e 43 54 20 38 20 29 20 63 6f 6c 30 20 46 52  INCT 8 ) col0 FR
20cb0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32  OM tab0..----..2
20cc0 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  4....skipif mysq
20cd0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
20ce0 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
20cf0 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
20d00 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
20d10 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
20d20 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
20d30 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
20d40 65 6c 2d 37 32 39 0d 0a 53 45 4c 45 43 54 20 2b  el-729..SELECT +
20d50 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 4d   COUNT ( * ) * M
20d60 49 4e 20 28 20 44 49 53 54 49 4e 43 54 20 38 20  IN ( DISTINCT 8 
20d70 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  ) col0 FROM tab0
20d80 0d 0a 2d 2d 2d 2d 0d 0a 32 34 0d 0a 0d 0a 6f 6e  ..----..24....on
20d90 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
20da0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
20db0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
20dc0 20 6c 61 62 65 6c 2d 37 33 30 0d 0a 53 45 4c 45   label-730..SELE
20dd0 43 54 20 2b 20 4d 41 58 28 20 41 4c 4c 20 63 6f  CT + MAX( ALL co
20de0 6c 31 20 29 20 2a 20 2b 20 36 32 20 46 52 4f 4d  l1 ) * + 62 FROM
20df0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 39 31   tab1..----..291
20e00 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  4....skipif mysq
20e10 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
20e20 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
20e30 6f 72 74 20 6c 61 62 65 6c 2d 37 33 30 0d 0a 53  ort label-730..S
20e40 45 4c 45 43 54 20 2b 20 4d 41 58 20 28 20 41 4c  ELECT + MAX ( AL
20e50 4c 20 63 6f 6c 31 20 29 20 2a 20 2b 20 36 32 20  L col1 ) * + 62 
20e60 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
20e70 0a 32 39 31 34 0d 0a 0d 0a 71 75 65 72 79 20 49  .2914....query I
20e80 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
20e90 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
20ea0 62 32 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e 4f  b2 WHERE NULL NO
20eb0 54 20 42 45 54 57 45 45 4e 20 28 20 4e 55 4c 4c  T BETWEEN ( NULL
20ec0 20 29 20 41 4e 44 20 28 20 2b 20 63 6f 6c 31 20   ) AND ( + col1 
20ed0 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  )..----....query
20ee0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
20ef0 43 54 20 2d 20 33 32 20 2a 20 2b 20 63 6f 6c 30  CT - 32 * + col0
20f00 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
20f10 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 33 32 0d  b1..----..-1632.
20f20 0a 2d 32 37 32 30 0d 0a 2d 32 39 31 32 0d 0a 0d  .-2720..-2912...
20f30 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
20f40 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
20f50 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54  M tab0 WHERE NOT
20f60 20 4e 55 4c 4c 20 3c 3d 20 28 20 2b 20 63 6f 6c   NULL <= ( + col
20f70 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  1 )..----....que
20f80 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
20f90 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
20fa0 62 31 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  b1 WHERE NOT col
20fb0 32 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 37 39  2 NOT BETWEEN 79
20fc0 20 41 4e 44 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d   AND col2..----.
20fd0 0a 35 31 0d 0a 31 34 0d 0a 39 36 0d 0a 0d 0a 71  .51..14..96....q
20fe0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
20ff0 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 46 52  SELECT - col1 FR
21000 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 28 20  OM tab2 WHERE ( 
21010 35 33 20 29 20 42 45 54 57 45 45 4e 20 2b 20 63  53 ) BETWEEN + c
21020 6f 6c 30 20 2a 20 32 33 20 41 4e 44 20 28 20 2b  ol0 * 23 AND ( +
21030 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   col1 )..----...
21040 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
21050 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
21060 54 20 63 6f 6c 30 20 2b 20 38 37 20 46 52 4f 4d  T col0 + 87 FROM
21070 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
21080 0d 0a 31 33 33 0d 0a 31 35 31 0d 0a 31 36 32 0d  ..133..151..162.
21090 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
210a0 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
210b0 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
210c0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
210d0 62 65 6c 2d 37 33 37 0d 0a 53 45 4c 45 43 54 20  bel-737..SELECT 
210e0 41 4c 4c 20 2d 20 36 33 20 2b 20 2d 20 34 20 44  ALL - 63 + - 4 D
210f0 49 56 20 2d 20 31 31 20 46 52 4f 4d 20 74 61 62  IV - 11 FROM tab
21100 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
21110 0a 2d 36 33 0d 0a 2d 36 33 0d 0a 2d 36 33 0d 0a  .-63..-63..-63..
21120 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
21130 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
21140 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
21150 20 6c 61 62 65 6c 2d 37 33 37 0d 0a 53 45 4c 45   label-737..SELE
21160 43 54 20 41 4c 4c 20 2d 20 36 33 20 2b 20 2d 20  CT ALL - 63 + - 
21170 34 20 2f 20 2d 20 31 31 20 46 52 4f 4d 20 74 61  4 / - 11 FROM ta
21180 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
21190 0d 0a 2d 36 33 0d 0a 2d 36 33 0d 0a 2d 36 33 0d  ..-63..-63..-63.
211a0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
211b0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
211c0 4e 43 54 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20  NCT - col2 FROM 
211d0 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
211e0 52 45 20 28 20 2d 20 34 34 20 29 20 49 53 20 4e  RE ( - 44 ) IS N
211f0 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d  OT NULL..----..-
21200 32 33 0d 0a 2d 34 30 0d 0a 2d 35 38 0d 0a 0d 0a  23..-40..-58....
21210 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
21220 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
21230 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
21240 45 52 45 20 35 35 20 2b 20 63 6f 6c 30 20 3e 20  ERE 55 + col0 > 
21250 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 32 20 2a 20  col0 + + col2 * 
21260 34 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  42..----....quer
21270 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
21280 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63  ECT DISTINCT - c
21290 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
212a0 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 28 20   cor0 WHERE + ( 
212b0 2b 20 38 32 20 29 20 4e 4f 54 20 42 45 54 57 45  + 82 ) NOT BETWE
212c0 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c  EN NULL AND NULL
212d0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
212e0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
212f0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
21300 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
21310 20 57 48 45 52 45 20 32 33 20 3e 3d 20 28 20 63   WHERE 23 >= ( c
21320 6f 6c 32 20 2f 20 63 6f 6c 32 20 29 0d 0a 2d 2d  ol2 / col2 )..--
21330 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
21340 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35  hing to c4b42765
21350 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35  dff94eaaa46040e5
21360 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72  37fb43b7....quer
21370 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
21380 45 43 54 20 28 20 2d 20 37 34 20 29 20 41 53 20  ECT ( - 74 ) AS 
21390 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
213a0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37  S cor0..----..-7
213b0 34 0d 0a 2d 37 34 0d 0a 2d 37 34 0d 0a 0d 0a 71  4..-74..-74....q
213c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
213d0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
213e0 2b 20 34 31 20 2d 20 63 6f 6c 31 20 2a 20 63 6f  + 41 - col1 * co
213f0 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l0 AS col1 FROM 
21400 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 37  tab0..----..-117
21410 34 0d 0a 2d 31 37 38 36 0d 0a 2d 35 36 0d 0a 0d  4..-1786..-56...
21420 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
21430 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
21440 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
21450 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
21460 6c 2d 37 34 34 0d 0a 53 45 4c 45 43 54 20 41 4c  l-744..SELECT AL
21470 4c 20 2b 20 63 6f 6c 31 20 44 49 56 20 2b 20 63  L + col1 DIV + c
21480 6f 6c 32 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  ol2 col1 FROM ta
21490 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
214a0 0d 0a 30 0d 0a 31 0d 0a 32 0d 0a 0d 0a 73 6b 69  ..0..1..2....ski
214b0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
214c0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70  compatible..skip
214d0 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
214e0 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
214f0 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
21500 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
21510 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
21520 73 6f 72 74 20 6c 61 62 65 6c 2d 37 34 34 0d 0a  sort label-744..
21530 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c  SELECT ALL + col
21540 31 20 2f 20 2b 20 63 6f 6c 32 20 63 6f 6c 31 20  1 / + col2 col1 
21550 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
21560 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31 0d 0a 32  0..----..0..1..2
21570 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
21580 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
21590 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
215a0 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2b 20  0 WHERE NOT ( + 
215b0 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 30 20 29 20  col1 * - col0 ) 
215c0 4e 4f 54 20 42 45 54 57 45 45 4e 20 28 20 37 38  NOT BETWEEN ( 78
215d0 20 2a 20 28 20 34 30 20 2a 20 2b 20 63 6f 6c 32   * ( 40 * + col2
215e0 20 29 20 29 20 41 4e 44 20 2d 20 63 6f 6c 32 0d   ) ) AND - col2.
215f0 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
21600 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
21610 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
21620 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  : ..query III ro
21630 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 34 36 0d  wsort label-746.
21640 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
21650 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
21660 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28  cor0 WHERE NOT (
21670 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   + CAST( NULL AS
21680 20 53 49 47 4e 45 44 20 29 20 29 20 49 53 20 4e   SIGNED ) ) IS N
21690 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  OT NULL..----..9
216a0 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
216b0 74 6f 20 63 34 62 34 32 37 36 35 64 66 66 39 34  to c4b42765dff94
216c0 65 61 61 61 34 36 30 34 30 65 35 33 37 66 62 34  eaaa46040e537fb4
216d0 33 62 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  3b7....skipif my
216e0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
216f0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20  ible..query III 
21700 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 34  rowsort label-74
21710 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  6..SELECT DISTIN
21720 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41  CT * FROM tab0 A
21730 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
21740 20 28 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c   ( + CAST ( NULL
21750 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20   AS INTEGER ) ) 
21760 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
21770 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
21780 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35 64  ing to c4b42765d
21790 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35 33  ff94eaaa46040e53
217a0 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72 79  7fb43b7....query
217b0 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
217c0 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  LECT * FROM tab2
217d0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
217e0 4f 54 20 28 20 63 6f 6c 32 20 29 20 49 4e 20 28  OT ( col2 ) IN (
217f0 20 2d 20 63 6f 6c 30 20 2a 20 35 32 20 29 0d 0a   - col0 * 52 )..
21800 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
21810 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38  ashing to 75c998
21820 61 61 35 33 61 63 38 33 32 31 38 63 62 66 32 66  aa53ac83218cbf2f
21830 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 73 6b  eb962d0a49....sk
21840 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
21850 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
21860 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
21870 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
21880 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
21890 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
218a0 4c 4c 20 2d 20 2b 20 37 30 20 63 6f 6c 32 20 46  LL - + 70 col2 F
218b0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
218c0 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 30 0d 0a 2d 37 30  ..----..-70..-70
218d0 0d 0a 2d 37 30 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-70....query I
218e0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
218f0 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
21900 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
21910 20 4e 4f 54 20 36 31 20 2a 20 2b 20 31 31 20 2b   NOT 61 * + 11 +
21920 20 2d 20 63 6f 6c 31 20 3e 20 4e 55 4c 4c 0d 0a   - col1 > NULL..
21930 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
21940 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
21950 63 6f 6c 30 20 2a 20 63 6f 6c 32 20 46 52 4f 4d  col0 * col2 FROM
21960 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
21970 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20  ERE NOT NULL IS 
21980 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
21990 34 38 39 36 0d 0a 35 30 31 35 0d 0a 36 31 38 38  4896..5015..6188
219a0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
219b0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
219c0 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
219d0 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
219e0 20 4e 55 4c 4c 20 3c 3e 20 2d 20 63 6f 6c 30 20   NULL <> - col0 
219f0 2a 20 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a  * - col0..----..
21a00 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
21a10 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67   CAST syntax: ag
21a20 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
21a30 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
21a40 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
21a50 61 62 65 6c 2d 37 35 32 0d 0a 53 45 4c 45 43 54  abel-752..SELECT
21a60 20 43 41 53 54 28 20 53 55 4d 28 20 63 6f 6c 31   CAST( SUM( col1
21a70 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 46   ) AS SIGNED ) F
21a80 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
21a90 0d 0a 2d 2d 2d 2d 0d 0a 31 39 35 0d 0a 0d 0a 73  ..----..195....s
21aa0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
21ab0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
21ac0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
21ad0 62 65 6c 2d 37 35 32 0d 0a 53 45 4c 45 43 54 20  bel-752..SELECT 
21ae0 43 41 53 54 20 28 20 53 55 4d 20 28 20 63 6f 6c  CAST ( SUM ( col
21af0 31 20 29 20 41 53 20 49 4e 54 45 47 45 52 20 29  1 ) AS INTEGER )
21b00 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
21b10 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 35 0d 0a 0d  r0..----..195...
21b20 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
21b30 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
21b40 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  NCT * FROM tab2 
21b50 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63  cor0 WHERE NOT c
21b60 6f 6c 32 20 3e 20 63 6f 6c 30 20 2a 20 2d 20 63  ol2 > col0 * - c
21b70 6f 6c 32 20 2d 20 63 6f 6c 31 20 2a 20 34 33 0d  ol2 - col1 * 43.
21b80 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
21b90 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
21ba0 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
21bb0 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20  : DECIMAL type: 
21bc0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
21bd0 74 20 6c 61 62 65 6c 2d 37 35 34 0d 0a 53 45 4c  t label-754..SEL
21be0 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20 2b 20 2d  ECT ALL col2 + -
21bf0 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52   col1 AS col1 FR
21c00 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
21c10 57 48 45 52 45 20 4e 4f 54 20 38 35 20 2b 20 2d  WHERE NOT 85 + -
21c20 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44   CAST( NULL AS D
21c30 45 43 49 4d 41 4c 20 29 20 2a 20 2d 20 63 6f 6c  ECIMAL ) * - col
21c40 31 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 43 41  1 NOT BETWEEN CA
21c50 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
21c60 45 44 20 29 20 41 4e 44 20 38 35 0d 0a 2d 2d 2d  ED ) AND 85..---
21c70 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  -....skipif mysq
21c80 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
21c90 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
21ca0 6f 72 74 20 6c 61 62 65 6c 2d 37 35 34 0d 0a 53  ort label-754..S
21cb0 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20 2b  ELECT ALL col2 +
21cc0 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20   - col1 AS col1 
21cd0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
21ce0 30 20 57 48 45 52 45 20 4e 4f 54 20 38 35 20 2b  0 WHERE NOT 85 +
21cf0 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   - CAST ( NULL A
21d00 53 20 52 45 41 4c 20 29 20 2a 20 2d 20 63 6f 6c  S REAL ) * - col
21d10 31 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 43 41  1 NOT BETWEEN CA
21d20 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
21d30 45 47 45 52 20 29 20 41 4e 44 20 38 35 0d 0a 2d  EGER ) AND 85..-
21d40 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
21d50 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
21d60 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
21d70 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
21d80 37 35 35 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f  755..SELECT + CO
21d90 55 4e 54 28 20 2a 20 29 20 2b 20 32 32 20 46 52  UNT( * ) + 22 FR
21da0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
21db0 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20 2a  WHERE NOT col2 *
21dc0 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c   col1 IS NOT NUL
21dd0 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 32 0d 0a 0d 0a 73  L..----..22....s
21de0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
21df0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
21e00 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
21e10 62 65 6c 2d 37 35 35 0d 0a 53 45 4c 45 43 54 20  bel-755..SELECT 
21e20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20  + COUNT ( * ) + 
21e30 32 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  22 FROM tab2 AS 
21e40 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63  cor0 WHERE NOT c
21e50 6f 6c 32 20 2a 20 63 6f 6c 31 20 49 53 20 4e 4f  ol2 * col1 IS NO
21e60 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 32  T NULL..----..22
21e70 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
21e80 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
21e90 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
21ea0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
21eb0 61 62 65 6c 2d 37 35 36 0d 0a 53 45 4c 45 43 54  abel-756..SELECT
21ec0 20 2b 20 28 20 2b 20 63 6f 6c 31 20 29 20 44 49   + ( + col1 ) DI
21ed0 56 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  V col1 FROM tab0
21ee0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
21ef0 31 0d 0a 31 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69  1..1..1....skipi
21f00 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
21f10 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
21f20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
21f30 37 35 36 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20  756..SELECT + ( 
21f40 2b 20 63 6f 6c 31 20 29 20 2f 20 63 6f 6c 31 20  + col1 ) / col1 
21f50 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
21f60 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31 0d 0a 31  0..----..1..1..1
21f70 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
21f80 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
21f90 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74  tax: DIV for int
21fa0 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
21fb0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
21fc0 20 6c 61 62 65 6c 2d 37 35 37 0d 0a 53 45 4c 45   label-757..SELE
21fd0 43 54 20 2b 20 2d 20 38 30 20 44 49 56 20 2b 20  CT + - 80 DIV + 
21fe0 43 4f 55 4e 54 28 20 44 49 53 54 49 4e 43 54 20  COUNT( DISTINCT 
21ff0 39 34 20 2b 20 2b 20 32 31 20 29 20 46 52 4f 4d  94 + + 21 ) FROM
22000 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
22010 0d 0a 2d 38 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-80....skipif 
22020 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
22030 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
22040 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 35  rowsort label-75
22050 37 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 38 30  7..SELECT + - 80
22060 20 2f 20 2b 20 43 4f 55 4e 54 20 28 20 44 49 53   / + COUNT ( DIS
22070 54 49 4e 43 54 20 39 34 20 2b 20 2b 20 32 31 20  TINCT 94 + + 21 
22080 29 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  ) FROM tab1 cor0
22090 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 30 0d 0a 0d 0a 6f  ..----..-80....o
220a0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
220b0 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
220c0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
220d0 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
220e0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
220f0 6c 2d 37 35 38 0d 0a 53 45 4c 45 43 54 20 37 37  l-758..SELECT 77
22100 20 2a 20 2d 20 53 55 4d 28 20 41 4c 4c 20 43 41   * - SUM( ALL CA
22110 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
22120 45 44 20 29 20 29 20 2a 20 34 39 20 46 52 4f 4d  ED ) ) * 49 FROM
22130 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   tab2..----..NUL
22140 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
22150 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
22160 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
22170 6f 72 74 20 6c 61 62 65 6c 2d 37 35 38 0d 0a 53  ort label-758..S
22180 45 4c 45 43 54 20 37 37 20 2a 20 2d 20 53 55 4d  ELECT 77 * - SUM
22190 20 28 20 41 4c 4c 20 43 41 53 54 20 28 20 4e 55   ( ALL CAST ( NU
221a0 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
221b0 29 20 2a 20 34 39 20 46 52 4f 4d 20 74 61 62 32  ) * 49 FROM tab2
221c0 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
221d0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
221e0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
221f0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  CT * FROM tab2 W
22200 48 45 52 45 20 63 6f 6c 31 20 4e 4f 54 20 42 45  HERE col1 NOT BE
22210 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e  TWEEN NULL AND N
22220 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
22230 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
22240 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20  LECT ALL - col2 
22250 2a 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31  * - col1 AS col1
22260 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
22270 20 33 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d   30 IS NULL..---
22280 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
22290 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
222a0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
222b0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 36  rowsort label-76
222c0 31 0d 0a 53 45 4c 45 43 54 20 2d 20 4d 49 4e 28  1..SELECT - MIN(
222d0 20 2d 20 34 36 20 29 20 41 53 20 63 6f 6c 32 20   - 46 ) AS col2 
222e0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
222f0 0a 34 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .46....skipif my
22300 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
22310 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
22320 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 36 31 0d  wsort label-761.
22330 0a 53 45 4c 45 43 54 20 2d 20 4d 49 4e 20 28 20  .SELECT - MIN ( 
22340 2d 20 34 36 20 29 20 41 53 20 63 6f 6c 32 20 46  - 46 ) AS col2 F
22350 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
22360 34 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  46....query I ro
22370 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
22380 28 20 2d 20 2b 20 28 20 2d 20 37 35 20 29 20 29  ( - + ( - 75 ) )
22390 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
223a0 0d 0a 37 35 0d 0a 37 35 0d 0a 37 35 0d 0a 0d 0a  ..75..75..75....
223b0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
223c0 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
223d0 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20   tab1 WHERE NOT 
223e0 2b 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 32 20  + col2 + - col2 
223f0 3c 3d 20 28 20 33 30 20 2b 20 63 6f 6c 31 20 29  <= ( 30 + col1 )
22400 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
22410 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
22420 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
22430 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 2d  ROM tab1 WHERE -
22440 20 33 38 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d   38 IS NULL..---
22450 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  -....query III r
22460 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
22470 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
22480 20 4e 4f 54 20 33 30 20 3e 3d 20 28 20 2d 20 63   NOT 30 >= ( - c
22490 6f 6c 32 20 2a 20 63 6f 6c 30 20 29 0d 0a 2d 2d  ol2 * col0 )..--
224a0 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  --....skipif pos
224b0 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
224c0 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
224d0 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
224e0 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
224f0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
22500 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
22510 63 6f 6c 30 20 63 6f 6c 31 20 46 52 4f 4d 20 74  col0 col1 FROM t
22520 61 62 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e  ab0 WHERE NULL N
22530 4f 54 20 42 45 54 57 45 45 4e 20 28 20 2b 20 63  OT BETWEEN ( + c
22540 6f 6c 32 20 29 20 2d 20 2b 20 35 33 20 2f 20 2b  ol2 ) - + 53 / +
22550 20 37 38 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d   78 AND NULL..--
22560 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  --....query III 
22570 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
22580 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
22590 74 61 62 32 20 57 48 45 52 45 20 28 20 4e 55 4c  tab2 WHERE ( NUL
225a0 4c 20 29 20 49 53 20 4e 55 4c 4c 20 4f 52 20 4e  L ) IS NULL OR N
225b0 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d  OT NULL IS NULL.
225c0 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
225d0 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39  hashing to 75c99
225e0 38 61 61 35 33 61 63 38 33 32 31 38 63 62 66 32  8aa53ac83218cbf2
225f0 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 71  feb962d0a49....q
22600 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
22610 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
22620 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 4e  tab1 WHERE NOT N
22630 55 4c 4c 20 3d 20 31 31 20 2a 20 2d 20 63 6f 6c  ULL = 11 * - col
22640 31 20 2d 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d  1 - + col0..----
22650 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
22660 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
22670 53 49 47 4e 45 44 20 74 79 70 65 3a 20 44 45 43  SIGNED type: DEC
22680 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65  IMAL type: ..que
22690 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
226a0 65 6c 2d 37 36 39 0d 0a 53 45 4c 45 43 54 20 41  el-769..SELECT A
226b0 4c 4c 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20  LL + CAST( NULL 
226c0 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 33 36  AS SIGNED ) * 36
226d0 20 2d 20 2d 20 63 6f 6c 31 20 2a 20 43 41 53 54   - - col1 * CAST
226e0 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41  ( NULL AS DECIMA
226f0 4c 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  L ) AS col1 FROM
22700 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
22710 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54  ERE NOT NULL NOT
22720 20 49 4e 20 28 20 31 34 20 2f 20 2b 20 39 37 20   IN ( 14 / + 97 
22730 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  )..----....skipi
22740 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
22750 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
22760 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
22770 37 36 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  769..SELECT ALL 
22780 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
22790 20 49 4e 54 45 47 45 52 20 29 20 2a 20 33 36 20   INTEGER ) * 36 
227a0 2d 20 2d 20 63 6f 6c 31 20 2a 20 43 41 53 54 20  - - col1 * CAST 
227b0 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29  ( NULL AS REAL )
227c0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
227d0 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
227e0 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e   NOT NULL NOT IN
227f0 20 28 20 31 34 20 2f 20 2b 20 39 37 20 29 0d 0a   ( 14 / + 97 )..
22800 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
22810 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
22820 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
22830 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
22840 72 74 20 6c 61 62 65 6c 2d 37 37 30 0d 0a 53 45  rt label-770..SE
22850 4c 45 43 54 20 28 20 2d 20 33 37 20 29 20 2a 20  LECT ( - 37 ) * 
22860 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
22870 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 30 20 46  GNED ) AS col0 F
22880 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
22890 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
228a0 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
228b0 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
228c0 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
228d0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
228e0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
228f0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 37 30 0d  wsort label-770.
22900 0a 53 45 4c 45 43 54 20 28 20 2d 20 33 37 20 29  .SELECT ( - 37 )
22910 20 2a 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   * CAST ( NULL A
22920 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 63  S INTEGER ) AS c
22930 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
22940 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
22950 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  NULL IS NOT NULL
22960 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
22970 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  LL..NULL....skip
22980 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
22990 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
229a0 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
229b0 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
229c0 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
229d0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 38 35 20  sort..SELECT 85 
229e0 2a 20 2b 20 63 6f 6c 31 20 2a 20 35 31 20 63 6f  * + col1 * 51 co
229f0 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
22a00 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 30 33 37  cor0..----..2037
22a10 34 35 0d 0a 32 31 36 37 35 0d 0a 36 30 36 39 30  45..21675..60690
22a20 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
22a30 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
22a40 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  tax: ..query II 
22a50 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 37  rowsort label-77
22a60 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 32 37  2..SELECT ALL 27
22a70 20 63 6f 6c 32 2c 20 53 55 4d 28 20 44 49 53 54   col2, SUM( DIST
22a80 49 4e 43 54 20 2d 20 34 31 20 29 20 46 52 4f 4d  INCT - 41 ) FROM
22a90 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 37 0d   tab1..----..27.
22aa0 0a 2d 34 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-41....skipif m
22ab0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
22ac0 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
22ad0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
22ae0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
22af0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
22b00 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
22b10 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
22b20 20 6c 61 62 65 6c 2d 37 37 32 0d 0a 53 45 4c 45   label-772..SELE
22b30 43 54 20 41 4c 4c 20 32 37 20 63 6f 6c 32 2c 20  CT ALL 27 col2, 
22b40 53 55 4d 20 28 20 44 49 53 54 49 4e 43 54 20 2d  SUM ( DISTINCT -
22b50 20 34 31 20 29 20 46 52 4f 4d 20 74 61 62 31 0d   41 ) FROM tab1.
22b60 0a 2d 2d 2d 2d 0d 0a 32 37 0d 0a 2d 34 31 0d 0a  .----..27..-41..
22b70 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
22b80 74 0d 0a 53 45 4c 45 43 54 20 34 20 2a 20 2d 20  t..SELECT 4 * - 
22b90 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col1 FROM tab2..
22ba0 2d 2d 2d 2d 0d 0a 2d 32 30 34 0d 0a 2d 32 36 38  ----..-204..-268
22bb0 0d 0a 2d 33 30 38 0d 0a 0d 0a 71 75 65 72 79 20  ..-308....query 
22bc0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
22bd0 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ECT * FROM tab2 
22be0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20  AS cor0 WHERE + 
22bf0 35 35 20 42 45 54 57 45 45 4e 20 2d 20 63 6f 6c  55 BETWEEN - col
22c00 31 20 2f 20 32 33 20 41 4e 44 20 63 6f 6c 30 0d  1 / 23 AND col0.
22c10 0a 2d 2d 2d 2d 0d 0a 36 34 0d 0a 37 37 0d 0a 34  .----..64..77..4
22c20 30 0d 0a 37 35 0d 0a 36 37 0d 0a 35 38 0d 0a 0d  0..75..67..58...
22c30 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
22c40 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b  ..SELECT ALL + +
22c50 20 34 36 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20   46 + + col0 AS 
22c60 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
22c70 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33  S cor0..----..13
22c80 33 0d 0a 31 34 33 0d 0a 36 31 0d 0a 0d 0a 71 75  3..143..61....qu
22c90 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
22ca0 45 4c 45 43 54 20 2d 20 2b 20 63 6f 6c 30 20 2b  ELECT - + col0 +
22cb0 20 2d 20 35 32 20 41 53 20 63 6f 6c 31 20 46 52   - 52 AS col1 FR
22cc0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
22cd0 0a 2d 2d 2d 2d 0d 0a 2d 31 30 33 0d 0a 2d 31 33  .----..-103..-13
22ce0 37 0d 0a 2d 31 34 33 0d 0a 0d 0a 71 75 65 72 79  7..-143....query
22cf0 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
22d00 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
22d10 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 63   AS cor0 WHERE c
22d20 6f 6c 30 20 2a 20 2b 20 63 6f 6c 31 20 2a 20 63  ol0 * + col1 * c
22d30 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ol0 IS NULL..---
22d40 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
22d50 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63  sort..SELECT - c
22d60 6f 6c 31 20 2a 20 2b 20 28 20 2b 20 2b 20 63 6f  ol1 * + ( + + co
22d70 6c 30 20 29 20 2b 20 63 6f 6c 30 20 46 52 4f 4d  l0 ) + col0 FROM
22d80 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
22d90 2d 2d 2d 0d 0a 2d 33 34 30 0d 0a 2d 34 31 38 36  ---..-340..-4186
22da0 0d 0a 2d 36 36 33 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..-663....onlyif
22db0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
22dc0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
22dd0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
22de0 65 6c 2d 37 37 39 0d 0a 53 45 4c 45 43 54 20 44  el-779..SELECT D
22df0 49 53 54 49 4e 43 54 20 2b 20 28 20 2d 20 2b 20  ISTINCT + ( - + 
22e00 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 2b 20 2b  COUNT( * ) ) + +
22e10 20 38 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53   81 FROM tab2 AS
22e20 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 38 0d   cor0..----..78.
22e30 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
22e40 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
22e50 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
22e60 74 20 6c 61 62 65 6c 2d 37 37 39 0d 0a 53 45 4c  t label-779..SEL
22e70 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 28  ECT DISTINCT + (
22e80 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29   - + COUNT ( * )
22e90 20 29 20 2b 20 2b 20 38 31 20 46 52 4f 4d 20 74   ) + + 81 FROM t
22ea0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
22eb0 2d 0d 0a 37 38 0d 0a 0d 0a 71 75 65 72 79 20 49  -..78....query I
22ec0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
22ed0 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 34 20 46 52   - col0 + + 4 FR
22ee0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
22ef0 0a 2d 2d 2d 2d 0d 0a 2d 34 37 0d 0a 2d 38 31 0d  .----..-47..-81.
22f00 0a 2d 38 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-87....query I 
22f10 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
22f20 36 20 2b 20 28 20 2d 20 63 6f 6c 32 20 29 20 2a  6 + ( - col2 ) *
22f30 20 2b 20 38 36 20 41 53 20 63 6f 6c 30 20 46 52   + 86 AS col0 FR
22f40 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
22f50 0a 2d 2d 2d 2d 0d 0a 2d 31 39 37 32 0d 0a 2d 33  .----..-1972..-3
22f60 34 33 34 0d 0a 2d 34 39 38 32 0d 0a 0d 0a 6f 6e  434..-4982....on
22f70 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
22f80 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
22f90 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
22fa0 20 6c 61 62 65 6c 2d 37 38 32 0d 0a 53 45 4c 45   label-782..SELE
22fb0 43 54 20 4d 49 4e 28 20 2d 20 63 6f 6c 32 20 29  CT MIN( - col2 )
22fc0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
22fd0 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b1 cor0..----..-
22fe0 39 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  96....skipif mys
22ff0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
23000 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
23010 73 6f 72 74 20 6c 61 62 65 6c 2d 37 38 32 0d 0a  sort label-782..
23020 53 45 4c 45 43 54 20 4d 49 4e 20 28 20 2d 20 63  SELECT MIN ( - c
23030 6f 6c 32 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ol2 ) AS col2 FR
23040 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d  OM tab1 cor0..--
23050 2d 2d 0d 0a 2d 39 36 0d 0a 0d 0a 71 75 65 72 79  --..-96....query
23060 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
23070 43 54 20 41 4c 4c 20 39 38 20 46 52 4f 4d 20 74  CT ALL 98 FROM t
23080 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 28 20  ab2 WHERE NOT ( 
23090 2b 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 31 20  + col0 * + col1 
230a0 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  ) IS NULL..----.
230b0 0a 39 38 0d 0a 39 38 0d 0a 39 38 0d 0a 0d 0a 6f  .98..98..98....o
230c0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
230d0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
230e0 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
230f0 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
23100 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
23110 6c 2d 37 38 34 0d 0a 53 45 4c 45 43 54 20 2d 20  l-784..SELECT - 
23120 28 20 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  ( - + COUNT( * )
23130 20 29 20 2a 20 36 20 44 49 56 20 2b 20 32 34 20   ) * 6 DIV + 24 
23140 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
23150 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b  1..----..0....sk
23160 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
23170 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
23180 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
23190 65 6c 2d 37 38 34 0d 0a 53 45 4c 45 43 54 20 2d  el-784..SELECT -
231a0 20 28 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a   ( - + COUNT ( *
231b0 20 29 20 29 20 2a 20 36 20 2f 20 2b 20 32 34 20   ) ) * 6 / + 24 
231c0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
231d0 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e  1..----..0....on
231e0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
231f0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
23200 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
23210 20 6c 61 62 65 6c 2d 37 38 35 0d 0a 53 45 4c 45   label-785..SELE
23220 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43 4f  CT DISTINCT - CO
23230 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
23240 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 2d  b1 WHERE NOT - -
23250 20 63 6f 6c 32 20 2d 20 2b 20 38 37 20 2a 20 2d   col2 - + 87 * -
23260 20 31 34 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d   14 IS NOT NULL.
23270 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .----..0....skip
23280 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
23290 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
232a0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
232b0 2d 37 38 35 0d 0a 53 45 4c 45 43 54 20 44 49 53  -785..SELECT DIS
232c0 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 20 28 20  TINCT - COUNT ( 
232d0 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57 48  * ) FROM tab1 WH
232e0 45 52 45 20 4e 4f 54 20 2d 20 2d 20 63 6f 6c 32  ERE NOT - - col2
232f0 20 2d 20 2b 20 38 37 20 2a 20 2d 20 31 34 20 49   - + 87 * - 14 I
23300 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
23310 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..0....onlyif my
23320 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
23330 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
23340 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
23350 74 20 6c 61 62 65 6c 2d 37 38 36 0d 0a 53 45 4c  t label-786..SEL
23360 45 43 54 20 41 4c 4c 20 2b 20 43 41 53 54 28 20  ECT ALL + CAST( 
23370 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
23380 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
23390 20 4e 4f 54 20 28 20 2b 20 63 6f 6c 32 20 29 20   NOT ( + col2 ) 
233a0 4e 4f 54 20 42 45 54 57 45 45 4e 20 28 20 2b 20  NOT BETWEEN ( + 
233b0 63 6f 6c 31 20 29 20 41 4e 44 20 4e 55 4c 4c 0d  col1 ) AND NULL.
233c0 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
233d0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
233e0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
233f0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 38  rowsort label-78
23400 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  6..SELECT ALL + 
23410 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
23420 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61  NTEGER ) FROM ta
23430 62 31 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2b  b1 WHERE NOT ( +
23440 20 63 6f 6c 32 20 29 20 4e 4f 54 20 42 45 54 57   col2 ) NOT BETW
23450 45 45 4e 20 28 20 2b 20 63 6f 6c 31 20 29 20 41  EEN ( + col1 ) A
23460 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  ND NULL..----...
23470 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
23480 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
23490 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
234a0 20 4e 4f 54 20 2d 20 63 6f 6c 31 20 2a 20 33 31   NOT - col1 * 31
234b0 20 2f 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 63 6f   / - col2 + - co
234c0 6c 30 20 2a 20 2b 20 63 6f 6c 30 20 49 53 20 4e  l0 * + col0 IS N
234d0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  ULL..----..9 val
234e0 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
234f0 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61  4b42765dff94eaaa
23500 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d  46040e537fb43b7.
23510 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
23520 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63  rt..SELECT ALL c
23530 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 57 48  ol0 FROM tab0 WH
23540 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 32 20 49  ERE NOT + col2 I
23550 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
23560 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
23570 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  ort..SELECT + co
23580 6c 31 20 2a 20 2b 20 63 6f 6c 32 20 2d 20 2d 20  l1 * + col2 - - 
23590 39 34 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  94 FROM tab0 AS 
235a0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 33 0d  cor0..----..193.
235b0 0a 33 30 34 0d 0a 33 39 30 31 0d 0a 0d 0a 71 75  .304..3901....qu
235c0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
235d0 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 31 34  ELECT ALL - - 14
235e0 20 2b 20 2d 20 2b 20 63 6f 6c 31 20 41 53 20 63   + - + col1 AS c
235f0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
23600 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 37   cor0..----..-67
23610 0d 0a 2d 37 0d 0a 31 33 0d 0a 0d 0a 73 6b 69 70  ..-7..13....skip
23620 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
23630 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
23640 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
23650 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
23660 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
23670 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b  sort..SELECT - +
23680 20 39 31 20 2b 20 2d 20 2d 20 63 6f 6c 31 20 2a   91 + - - col1 *
23690 20 2b 20 2b 20 63 6f 6c 31 20 63 6f 6c 32 20 46   + + col1 col2 F
236a0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
236b0 0d 0a 2d 2d 2d 2d 0d 0a 32 35 31 30 0d 0a 34 33  ..----..2510..43
236c0 39 38 0d 0a 35 38 33 38 0d 0a 0d 0a 6f 6e 6c 79  98..5838....only
236d0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
236e0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
236f0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
23700 61 62 65 6c 2d 37 39 32 0d 0a 53 45 4c 45 43 54  abel-792..SELECT
23710 20 41 4c 4c 20 2b 20 2d 20 33 20 2a 20 2b 20 43   ALL + - 3 * + C
23720 4f 55 4e 54 28 20 2a 20 29 20 2d 20 2b 20 2d 20  OUNT( * ) - + - 
23730 32 36 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  26 FROM tab1 AS 
23740 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37 0d 0a  cor0..----..17..
23750 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
23760 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
23770 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
23780 20 6c 61 62 65 6c 2d 37 39 32 0d 0a 53 45 4c 45   label-792..SELE
23790 43 54 20 41 4c 4c 20 2b 20 2d 20 33 20 2a 20 2b  CT ALL + - 3 * +
237a0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2d 20 2b   COUNT ( * ) - +
237b0 20 2d 20 32 36 20 46 52 4f 4d 20 74 61 62 31 20   - 26 FROM tab1 
237c0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
237d0 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  7....onlyif mysq
237e0 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
237f0 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
23800 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
23810 6c 61 62 65 6c 2d 37 39 33 0d 0a 53 45 4c 45 43  label-793..SELEC
23820 54 20 44 49 53 54 49 4e 43 54 20 43 41 53 54 28  T DISTINCT CAST(
23830 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
23840 29 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  ) FROM tab2 WHER
23850 45 20 2d 20 63 6f 6c 31 20 4e 4f 54 20 49 4e 20  E - col1 NOT IN 
23860 28 20 2b 20 2d 20 63 6f 6c 31 20 29 0d 0a 2d 2d  ( + - col1 )..--
23870 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
23880 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
23890 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
238a0 73 6f 72 74 20 6c 61 62 65 6c 2d 37 39 33 0d 0a  sort label-793..
238b0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
238c0 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
238d0 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61  NTEGER ) FROM ta
238e0 62 32 20 57 48 45 52 45 20 2d 20 63 6f 6c 31 20  b2 WHERE - col1 
238f0 4e 4f 54 20 49 4e 20 28 20 2b 20 2d 20 63 6f 6c  NOT IN ( + - col
23900 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  1 )..----....que
23910 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
23920 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 33 30  LECT DISTINCT 30
23930 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
23940 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
23950 62 30 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d  b0 AS cor1..----
23960 0d 0a 33 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..30....onlyif m
23970 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
23980 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
23990 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
239a0 72 74 20 6c 61 62 65 6c 2d 37 39 35 0d 0a 53 45  rt label-795..SE
239b0 4c 45 43 54 20 63 6f 6c 30 20 2b 20 63 6f 6c 31  LECT col0 + col1
239c0 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
239d0 20 4e 4f 54 20 2d 20 43 41 53 54 28 20 37 39 20   NOT - CAST( 79 
239e0 41 53 20 53 49 47 4e 45 44 20 29 20 42 45 54 57  AS SIGNED ) BETW
239f0 45 45 4e 20 28 20 63 6f 6c 32 20 29 20 41 4e 44  EEN ( col2 ) AND
23a00 20 39 38 20 2a 20 2d 20 63 6f 6c 32 0d 0a 2d 2d   98 * - col2..--
23a10 2d 2d 0d 0a 31 34 31 0d 0a 31 34 32 0d 0a 39 37  --..141..142..97
23a20 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
23a30 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
23a40 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
23a50 72 74 20 6c 61 62 65 6c 2d 37 39 35 0d 0a 53 45  rt label-795..SE
23a60 4c 45 43 54 20 63 6f 6c 30 20 2b 20 63 6f 6c 31  LECT col0 + col1
23a70 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
23a80 20 4e 4f 54 20 2d 20 43 41 53 54 20 28 20 37 39   NOT - CAST ( 79
23a90 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 42 45   AS INTEGER ) BE
23aa0 54 57 45 45 4e 20 28 20 63 6f 6c 32 20 29 20 41  TWEEN ( col2 ) A
23ab0 4e 44 20 39 38 20 2a 20 2d 20 63 6f 6c 32 0d 0a  ND 98 * - col2..
23ac0 2d 2d 2d 2d 0d 0a 31 34 31 0d 0a 31 34 32 0d 0a  ----..141..142..
23ad0 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  97....onlyif mys
23ae0 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
23af0 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
23b00 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
23b10 20 6c 61 62 65 6c 2d 37 39 36 0d 0a 53 45 4c 45   label-796..SELE
23b20 43 54 20 63 6f 6c 30 20 44 49 56 20 31 39 20 46  CT col0 DIV 19 F
23b30 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
23b40 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 34 0d 0a 35 0d  ..----..0..4..5.
23b50 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
23b60 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
23b70 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
23b80 74 20 6c 61 62 65 6c 2d 37 39 36 0d 0a 53 45 4c  t label-796..SEL
23b90 45 43 54 20 63 6f 6c 30 20 2f 20 31 39 20 46 52  ECT col0 / 19 FR
23ba0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
23bb0 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 34 0d 0a 35 0d 0a  .----..0..4..5..
23bc0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
23bd0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
23be0 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67  x: DIV for integ
23bf0 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
23c00 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
23c10 61 62 65 6c 2d 37 39 37 0d 0a 53 45 4c 45 43 54  abel-797..SELECT
23c20 20 41 4c 4c 20 43 4f 55 4e 54 28 20 2a 20 29 20   ALL COUNT( * ) 
23c30 44 49 56 20 2d 20 2b 20 28 20 2b 20 28 20 2d 20  DIV - + ( + ( - 
23c40 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 29 20 2b  COUNT( * ) ) ) +
23c50 20 2b 20 33 30 20 46 52 4f 4d 20 74 61 62 32 20   + 30 FROM tab2 
23c60 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33  AS cor0..----..3
23c70 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
23c80 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
23c90 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
23ca0 6f 72 74 20 6c 61 62 65 6c 2d 37 39 37 0d 0a 53  ort label-797..S
23cb0 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20  ELECT ALL COUNT 
23cc0 28 20 2a 20 29 20 2f 20 2d 20 2b 20 28 20 2b 20  ( * ) / - + ( + 
23cd0 28 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ( - COUNT ( * ) 
23ce0 29 20 29 20 2b 20 2b 20 33 30 20 46 52 4f 4d 20  ) ) + + 30 FROM 
23cf0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
23d00 2d 2d 0d 0a 33 31 0d 0a 0d 0a 71 75 65 72 79 20  --..31....query 
23d10 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
23d20 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
23d30 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
23d40 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c   WHERE NOT ( NUL
23d50 4c 20 29 20 3d 20 28 20 2b 20 28 20 2b 20 31 33  L ) = ( + ( + 13
23d60 20 29 20 2a 20 2b 20 28 20 2d 20 31 35 20 29 20   ) * + ( - 15 ) 
23d70 2b 20 2d 20 35 20 2a 20 2b 20 35 38 20 29 0d 0a  + - 5 * + 58 )..
23d80 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
23d90 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
23da0 44 49 53 54 49 4e 43 54 20 2b 20 39 39 20 2b 20  DISTINCT + 99 + 
23db0 2d 20 2d 20 36 31 20 46 52 4f 4d 20 74 61 62 30  - - 61 FROM tab0
23dc0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28   AS cor0 WHERE (
23dd0 20 4e 55 4c 4c 20 29 20 49 53 20 4e 4f 54 20 4e   NULL ) IS NOT N
23de0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
23df0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
23e00 4c 45 43 54 20 2d 20 2d 20 63 6f 6c 30 20 2a 20  LECT - - col0 * 
23e10 2d 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31  - - col0 AS col1
23e20 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d   FROM tab0 cor0.
23e30 0a 2d 2d 2d 2d 0d 0a 32 32 35 0d 0a 37 35 36 39  .----..225..7569
23e40 0d 0a 39 34 30 39 0d 0a 0d 0a 71 75 65 72 79 20  ..9409....query 
23e50 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
23e60 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31  CT DISTINCT col1
23e70 20 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 32 20 2a   AS col2, col2 *
23e80 20 2b 20 28 20 34 38 20 29 20 2b 20 2b 20 39 34   + ( 48 ) + + 94
23e90 20 2a 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74   * - col2 FROM t
23ea0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
23eb0 2d 0d 0a 35 31 0d 0a 2d 31 30 35 38 0d 0a 36 37  -..51..-1058..67
23ec0 0d 0a 2d 32 36 36 38 0d 0a 37 37 0d 0a 2d 31 38  ..-2668..77..-18
23ed0 34 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  40....query III 
23ee0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
23ef0 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ALL * FROM tab0 
23f00 57 48 45 52 45 20 4e 55 4c 4c 20 3c 3e 20 28 20  WHERE NULL <> ( 
23f10 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  col2 )..----....
23f20 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
23f30 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
23f40 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20   tab2 WHERE NOT 
23f50 2d 20 2b 20 63 6f 6c 31 20 42 45 54 57 45 45 4e  - + col1 BETWEEN
23f60 20 28 20 4e 55 4c 4c 20 29 20 41 4e 44 20 63 6f   ( NULL ) AND co
23f70 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  l0..----....only
23f80 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
23f90 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
23fa0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
23fb0 6c 61 62 65 6c 2d 38 30 34 0d 0a 53 45 4c 45 43  label-804..SELEC
23fc0 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 63 6f 6c  T COUNT( * ) col
23fd0 30 2c 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20  0, - COUNT( * ) 
23fe0 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  + + COUNT( * ) F
23ff0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
24000 33 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  3..0....skipif m
24010 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
24020 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
24030 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
24040 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
24050 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
24060 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
24070 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
24080 20 6c 61 62 65 6c 2d 38 30 34 0d 0a 53 45 4c 45   label-804..SELE
24090 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 63  CT COUNT ( * ) c
240a0 6f 6c 30 2c 20 2d 20 43 4f 55 4e 54 20 28 20 2a  ol0, - COUNT ( *
240b0 20 29 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a   ) + + COUNT ( *
240c0 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
240d0 2d 2d 0d 0a 33 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79  --..3..0....only
240e0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
240f0 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74  syntax: aggregat
24100 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  e syntax: SIGNED
24110 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
24120 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
24130 30 35 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 28  05..SELECT CAST(
24140 20 2d 20 53 55 4d 28 20 44 49 53 54 49 4e 43 54   - SUM( DISTINCT
24150 20 2d 20 2b 20 31 38 20 29 20 41 53 20 53 49 47   - + 18 ) AS SIG
24160 4e 45 44 20 29 20 41 53 20 63 6f 6c 30 20 46 52  NED ) AS col0 FR
24170 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab2..----..1
24180 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  8....skipif mysq
24190 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
241a0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
241b0 6f 72 74 20 6c 61 62 65 6c 2d 38 30 35 0d 0a 53  ort label-805..S
241c0 45 4c 45 43 54 20 43 41 53 54 20 28 20 2d 20 53  ELECT CAST ( - S
241d0 55 4d 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20  UM ( DISTINCT - 
241e0 2b 20 31 38 20 29 20 41 53 20 49 4e 54 45 47 45  + 18 ) AS INTEGE
241f0 52 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  R ) AS col0 FROM
24200 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 38 0d   tab2..----..18.
24210 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
24220 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31  ort..SELECT col1
24230 2c 20 2b 20 35 20 41 53 20 63 6f 6c 31 20 46 52  , + 5 AS col1 FR
24240 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
24250 0d 0a 35 0d 0a 32 31 0d 0a 35 0d 0a 38 31 0d 0a  ..5..21..5..81..
24260 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  5....query I row
24270 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63  sort..SELECT + c
24280 6f 6c 32 20 2a 20 2d 20 63 6f 6c 30 20 2d 20 2d  ol2 * - col0 - -
24290 20 33 34 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   34 AS col0 FROM
242a0 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
242b0 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20 2a 20 2b  ERE NOT col2 * +
242c0 20 2d 20 63 6f 6c 30 20 2b 20 63 6f 6c 30 20 2a   - col0 + col0 *
242d0 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 2d 20   + - col0 * + - 
242e0 33 38 20 2d 20 2b 20 63 6f 6c 31 20 2a 20 63 6f  38 - + col1 * co
242f0 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l2 IS NULL..----
24300 0d 0a 2d 34 38 36 32 0d 0a 2d 34 39 38 31 0d 0a  ..-4862..-4981..
24310 2d 36 31 35 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -6154....onlyif 
24320 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
24330 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
24340 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
24350 6f 72 74 20 6c 61 62 65 6c 2d 38 30 38 0d 0a 53  ort label-808..S
24360 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
24370 20 63 6f 6c 30 20 2b 20 2b 20 2b 20 63 6f 6c 30   col0 + + + col0
24380 20 2a 20 28 20 28 20 63 6f 6c 30 20 29 20 29 20   * ( ( col0 ) ) 
24390 2b 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  + - col2 FROM ta
243a0 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
243b0 20 4e 4f 54 20 2b 20 63 6f 6c 30 20 2a 20 2d 20   NOT + col0 * - 
243c0 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
243d0 47 4e 45 44 20 29 20 3c 3d 20 4e 55 4c 4c 0d 0a  GNED ) <= NULL..
243e0 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ----....skipif m
243f0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
24400 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
24410 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 30 38  owsort label-808
24420 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
24430 54 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 2b 20 63  T + col0 + + + c
24440 6f 6c 30 20 2a 20 28 20 28 20 63 6f 6c 30 20 29  ol0 * ( ( col0 )
24450 20 29 20 2b 20 2d 20 63 6f 6c 32 20 46 52 4f 4d   ) + - col2 FROM
24460 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
24470 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 30 20 2a  ERE NOT + col0 *
24480 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   - CAST ( NULL A
24490 53 20 49 4e 54 45 47 45 52 20 29 20 3c 3d 20 4e  S INTEGER ) <= N
244a0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
244b0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
244c0 4c 45 43 54 20 39 34 20 2a 20 2d 20 2d 20 63 6f  LECT 94 * - - co
244d0 6c 30 20 2a 20 2d 20 2b 20 38 38 20 46 52 4f 4d  l0 * - + 88 FROM
244e0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 38   tab2..----..-38
244f0 30 35 31 32 0d 0a 2d 35 32 39 34 30 38 0d 0a 2d  0512..-529408..-
24500 36 32 30 34 30 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  620400....onlyif
24510 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
24520 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
24530 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
24540 65 6c 2d 38 31 30 0d 0a 53 45 4c 45 43 54 20 2d  el-810..SELECT -
24550 20 4d 49 4e 28 20 2d 20 2d 20 63 6f 6c 32 20 29   MIN( - - col2 )
24560 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
24570 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a 0d  r0..----..-23...
24580 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
24590 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
245a0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
245b0 6c 61 62 65 6c 2d 38 31 30 0d 0a 53 45 4c 45 43  label-810..SELEC
245c0 54 20 2d 20 4d 49 4e 20 28 20 2d 20 2d 20 63 6f  T - MIN ( - - co
245d0 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41  l2 ) FROM tab2 A
245e0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  S cor0..----..-2
245f0 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
24600 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
24610 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
24620 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
24630 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
24640 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
24650 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
24660 6c 2d 38 31 31 0d 0a 53 45 4c 45 43 54 20 2b 20  l-811..SELECT + 
24670 32 33 20 44 49 56 20 43 4f 55 4e 54 28 20 43 41  23 DIV COUNT( CA
24680 53 54 28 20 2b 20 63 6f 6c 30 20 41 53 20 53 49  ST( + col0 AS SI
24690 47 4e 45 44 20 29 20 29 20 2a 20 2b 20 43 41 53  GNED ) ) * + CAS
246a0 54 28 20 43 41 53 54 28 20 41 56 47 20 28 20 44  T( CAST( AVG ( D
246b0 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20 29  ISTINCT + col2 )
246c0 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20   AS SIGNED ) AS 
246d0 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 32  SIGNED ) AS col2
246e0 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20   FROM tab0 cor0 
246f0 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 49  WHERE ( NULL ) I
24700 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33 36  S NULL..----..36
24710 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  4....skipif mysq
24720 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
24730 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
24740 6f 72 74 20 6c 61 62 65 6c 2d 38 31 31 0d 0a 53  ort label-811..S
24750 45 4c 45 43 54 20 2b 20 32 33 20 2f 20 43 4f 55  ELECT + 23 / COU
24760 4e 54 20 28 20 43 41 53 54 20 28 20 2b 20 63 6f  NT ( CAST ( + co
24770 6c 30 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  l0 AS INTEGER ) 
24780 29 20 2a 20 2b 20 43 41 53 54 20 28 20 43 41 53  ) * + CAST ( CAS
24790 54 20 28 20 41 56 47 20 28 20 44 49 53 54 49 4e  T ( AVG ( DISTIN
247a0 43 54 20 2b 20 63 6f 6c 32 20 29 20 41 53 20 49  CT + col2 ) AS I
247b0 4e 54 45 47 45 52 20 29 20 41 53 20 49 4e 54 45  NTEGER ) AS INTE
247c0 47 45 52 20 29 20 41 53 20 63 6f 6c 32 20 46 52  GER ) AS col2 FR
247d0 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45  OM tab0 cor0 WHE
247e0 52 45 20 28 20 4e 55 4c 4c 20 29 20 49 53 20 4e  RE ( NULL ) IS N
247f0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33 36 34 0d 0a  ULL..----..364..
24800 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
24810 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
24820 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  INCT * FROM tab0
24830 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28   AS cor0 WHERE (
24840 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 32 20 29   col2 * + col2 )
24850 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
24860 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
24870 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35  hing to c4b42765
24880 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35  dff94eaaa46040e5
24890 33 37 66 62 34 33 62 37 0d 0a 0d 0a 6f 6e 6c 79  37fb43b7....only
248a0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
248b0 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74  syntax: aggregat
248c0 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  e syntax: SIGNED
248d0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
248e0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
248f0 38 31 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  813..SELECT DIST
24900 49 4e 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20  INCT COUNT( * ) 
24910 2b 20 35 35 20 2f 20 2b 20 43 4f 55 4e 54 28 20  + 55 / + COUNT( 
24920 2a 20 29 20 2b 20 28 20 2d 20 43 41 53 54 28 20  * ) + ( - CAST( 
24930 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
24940 20 29 2c 20 53 55 4d 28 20 2b 20 31 33 20 29 20   ), SUM( + 13 ) 
24950 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
24960 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
24970 0a 4e 55 4c 4c 0d 0a 33 39 0d 0a 0d 0a 73 6b 69  .NULL..39....ski
24980 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
24990 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
249a0 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
249b0 65 6c 2d 38 31 33 0d 0a 53 45 4c 45 43 54 20 44  el-813..SELECT D
249c0 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 20 28 20  ISTINCT COUNT ( 
249d0 2a 20 29 20 2b 20 35 35 20 2f 20 2b 20 43 4f 55  * ) + 55 / + COU
249e0 4e 54 20 28 20 2a 20 29 20 2b 20 28 20 2d 20 43  NT ( * ) + ( - C
249f0 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
24a00 54 45 47 45 52 20 29 20 29 2c 20 53 55 4d 20 28  TEGER ) ), SUM (
24a10 20 2b 20 31 33 20 29 20 41 53 20 63 6f 6c 32 20   + 13 ) AS col2 
24a20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
24a30 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 33  0..----..NULL..3
24a40 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  9....skipif post
24a50 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
24a60 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
24a70 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
24a80 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
24a90 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
24aa0 45 4c 45 43 54 20 41 4c 4c 20 2d 20 28 20 2d 20  ELECT ALL - ( - 
24ab0 63 6f 6c 32 20 29 20 2a 20 2d 20 35 32 20 63 6f  col2 ) * - 52 co
24ac0 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
24ad0 63 6f 72 30 20 57 48 45 52 45 20 2b 20 34 33 20  cor0 WHERE + 43 
24ae0 2b 20 2d 20 37 36 20 49 53 20 4e 4f 54 20 4e 55  + - 76 IS NOT NU
24af0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 39 36 0d  LL..----..-1196.
24b00 0a 2d 32 30 38 30 0d 0a 2d 33 30 31 36 0d 0a 0d  .-2080..-3016...
24b10 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
24b20 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
24b30 54 20 34 33 20 2b 20 2b 20 37 33 20 41 53 20 63  T 43 + + 73 AS c
24b40 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  ol2 FROM tab0 co
24b50 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 36 0d 0a 0d  r0..----..116...
24b60 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
24b70 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20  ..SELECT - col2 
24b80 2b 20 2d 20 32 20 2b 20 2d 20 63 6f 6c 32 20 46  + - 2 + - col2 F
24b90 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
24ba0 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30 30 0d 0a 2d 32  ..----..-200..-2
24bb0 32 0d 0a 2d 39 36 0d 0a 0d 0a 71 75 65 72 79 20  2..-96....query 
24bc0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
24bd0 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f  CT DISTINCT - co
24be0 6c 30 20 41 53 20 63 6f 6c 31 2c 20 2d 20 63 6f  l0 AS col1, - co
24bf0 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l1 AS col2 FROM 
24c00 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d  tab0..----..-15.
24c10 0a 2d 38 31 0d 0a 2d 38 37 0d 0a 2d 32 31 0d 0a  .-81..-87..-21..
24c20 2d 39 37 0d 0a 2d 31 0d 0a 0d 0a 6f 6e 6c 79 69  -97..-1....onlyi
24c30 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
24c40 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
24c50 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
24c60 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 31 38 0d  wsort label-818.
24c70 0a 53 45 4c 45 43 54 20 35 36 20 44 49 56 20 2b  .SELECT 56 DIV +
24c80 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 38 31 20 41   + col1 + + 81 A
24c90 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
24ca0 0d 0a 2d 2d 2d 2d 0d 0a 31 33 37 0d 0a 38 31 0d  ..----..137..81.
24cb0 0a 38 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .83....skipif my
24cc0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
24cd0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
24ce0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 31 38 0d  wsort label-818.
24cf0 0a 53 45 4c 45 43 54 20 35 36 20 2f 20 2b 20 2b  .SELECT 56 / + +
24d00 20 63 6f 6c 31 20 2b 20 2b 20 38 31 20 41 53 20   col1 + + 81 AS 
24d10 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
24d20 2d 2d 2d 2d 0d 0a 31 33 37 0d 0a 38 31 0d 0a 38  ----..137..81..8
24d30 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  3....query I row
24d40 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
24d50 20 31 33 20 2d 20 2d 20 2d 20 35 20 46 52 4f 4d   13 - - - 5 FROM
24d60 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 38 0d 0a   tab0..----..8..
24d70 38 0d 0a 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  8..8....onlyif m
24d80 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
24d90 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
24da0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
24db0 72 74 20 6c 61 62 65 6c 2d 38 32 30 0d 0a 53 45  rt label-820..SE
24dc0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 30 20  LECT DISTINCT 0 
24dd0 2a 20 2b 20 63 6f 6c 32 20 44 49 56 20 35 20 2a  * + col2 DIV 5 *
24de0 20 36 31 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 2a   61 * + - col2 *
24df0 20 2d 20 38 33 20 46 52 4f 4d 20 74 61 62 32 0d   - 83 FROM tab2.
24e00 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .----..0....skip
24e10 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
24e20 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
24e30 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
24e40 2d 38 32 30 0d 0a 53 45 4c 45 43 54 20 44 49 53  -820..SELECT DIS
24e50 54 49 4e 43 54 20 30 20 2a 20 2b 20 63 6f 6c 32  TINCT 0 * + col2
24e60 20 2f 20 35 20 2a 20 36 31 20 2a 20 2b 20 2d 20   / 5 * 61 * + - 
24e70 63 6f 6c 32 20 2a 20 2d 20 38 33 20 46 52 4f 4d  col2 * - 83 FROM
24e80 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   tab2..----..0..
24e90 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
24ea0 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
24eb0 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
24ec0 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
24ed0 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
24ee0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
24ef0 43 54 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 35 37  CT - col2 + + 57
24f00 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
24f10 0a 2d 2d 2d 2d 0d 0a 2d 31 31 0d 0a 2d 32 0d 0a  .----..-11..-2..
24f20 2d 33 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  -39....query I r
24f30 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
24f40 4c 4c 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  LL col0 FROM tab
24f50 32 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  2 WHERE NOT NULL
24f60 20 3e 20 28 20 2b 20 2d 20 63 6f 6c 32 20 29 0d   > ( + - col2 ).
24f70 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
24f80 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
24f90 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
24fa0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
24fb0 6f 72 74 20 6c 61 62 65 6c 2d 38 32 33 0d 0a 53  ort label-823..S
24fc0 45 4c 45 43 54 20 43 41 53 54 28 20 2b 20 63 6f  ELECT CAST( + co
24fd0 6c 31 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b  l1 AS SIGNED ) +
24fe0 20 2d 20 32 38 20 2b 20 63 6f 6c 31 20 46 52 4f   - 28 + col1 FRO
24ff0 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab1..----..-1
25000 38 0d 0a 30 0d 0a 36 36 0d 0a 0d 0a 73 6b 69 70  8..0..66....skip
25010 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
25020 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
25030 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
25040 2d 38 32 33 0d 0a 53 45 4c 45 43 54 20 43 41 53  -823..SELECT CAS
25050 54 20 28 20 2b 20 63 6f 6c 31 20 41 53 20 49 4e  T ( + col1 AS IN
25060 54 45 47 45 52 20 29 20 2b 20 2d 20 32 38 20 2b  TEGER ) + - 28 +
25070 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
25080 0a 2d 2d 2d 2d 0d 0a 2d 31 38 0d 0a 30 0d 0a 36  .----..-18..0..6
25090 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  6....query I row
250a0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 38 38 20  sort..SELECT 88 
250b0 2b 20 2b 20 36 31 20 41 53 20 63 6f 6c 32 20 46  + + 61 AS col2 F
250c0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
250d0 31 34 39 0d 0a 31 34 39 0d 0a 31 34 39 0d 0a 0d  149..149..149...
250e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
250f0 0d 0a 53 45 4c 45 43 54 20 28 20 63 6f 6c 32 20  ..SELECT ( col2 
25100 29 20 2b 20 30 20 41 53 20 63 6f 6c 31 20 46 52  ) + 0 AS col1 FR
25110 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
25120 30 0d 0a 34 37 0d 0a 39 39 0d 0a 0d 0a 6f 6e 6c  0..47..99....onl
25130 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
25140 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61   syntax: aggrega
25150 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  te syntax: SIGNE
25160 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
25170 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
25180 38 32 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  826..SELECT DIST
25190 49 4e 43 54 20 2d 20 53 55 4d 28 20 2b 20 28 20  INCT - SUM( + ( 
251a0 2b 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  + + CAST( NULL A
251b0 53 20 53 49 47 4e 45 44 20 29 20 29 20 29 20 2a  S SIGNED ) ) ) *
251c0 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20   + COUNT( * ) * 
251d0 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41  - - COUNT( * ) A
251e0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
251f0 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
25200 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
25210 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
25220 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
25230 61 62 65 6c 2d 38 32 36 0d 0a 53 45 4c 45 43 54  abel-826..SELECT
25240 20 44 49 53 54 49 4e 43 54 20 2d 20 53 55 4d 20   DISTINCT - SUM 
25250 28 20 2b 20 28 20 2b 20 2b 20 43 41 53 54 20 28  ( + ( + + CAST (
25260 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
25270 20 29 20 29 20 29 20 2a 20 2b 20 43 4f 55 4e 54   ) ) ) * + COUNT
25280 20 28 20 2a 20 29 20 2a 20 2d 20 2d 20 43 4f 55   ( * ) * - - COU
25290 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32  NT ( * ) AS col2
252a0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
252b0 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20  ..NULL....query 
252c0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
252d0 54 20 41 4c 4c 20 2b 20 34 31 20 2a 20 2b 20 63  T ALL + 41 * + c
252e0 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol1 AS col2 FROM
252f0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 33 32   tab0..----..332
25300 31 0d 0a 34 31 0d 0a 38 36 31 0d 0a 0d 0a 71 75  1..41..861....qu
25310 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
25320 45 4c 45 43 54 20 41 4c 4c 20 2d 20 36 31 20 2b  ELECT ALL - 61 +
25330 20 2d 20 2d 20 32 34 20 46 52 4f 4d 20 74 61 62   - - 24 FROM tab
25340 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 37 0d 0a 2d 33  2..----..-37..-3
25350 37 0d 0a 2d 33 37 0d 0a 0d 0a 71 75 65 72 79 20  7..-37....query 
25360 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
25370 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
25380 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
25390 45 20 2d 20 63 6f 6c 32 20 42 45 54 57 45 45 4e  E - col2 BETWEEN
253a0 20 63 6f 6c 30 20 2a 20 2d 20 2b 20 39 34 20 41   col0 * - + 94 A
253b0 4e 44 20 36 32 20 2d 20 2d 20 2b 20 63 6f 6c 31  ND 62 - - + col1
253c0 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
253d0 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30   hashing to c6c0
253e0 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38 31  a4111b36d04dbc81
253f0 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a  1a11e4d54cad....
25400 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
25410 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
25420 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
25430 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
25440 2d 38 33 30 0d 0a 53 45 4c 45 43 54 20 2d 20 2d  -830..SELECT - -
25450 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
25460 49 47 4e 45 44 20 29 20 2a 20 32 36 20 2b 20 63  IGNED ) * 26 + c
25470 6f 6c 30 20 2b 20 2b 20 63 6f 6c 30 20 2d 20 2b  ol0 + + col0 - +
25480 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   + col2 FROM tab
25490 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
254a0 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
254b0 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
254c0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
254d0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
254e0 6f 72 74 20 6c 61 62 65 6c 2d 38 33 30 0d 0a 53  ort label-830..S
254f0 45 4c 45 43 54 20 2d 20 2d 20 43 41 53 54 20 28  ELECT - - CAST (
25500 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
25510 20 29 20 2a 20 32 36 20 2b 20 63 6f 6c 30 20 2b   ) * 26 + col0 +
25520 20 2b 20 63 6f 6c 30 20 2d 20 2b 20 2b 20 63 6f   + col0 - + + co
25530 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
25540 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
25550 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
25560 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
25570 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 2c 20 2b  ..SELECT col1, +
25580 20 63 6f 6c 32 20 2a 20 2b 20 32 20 41 53 20 63   col2 * + 2 AS c
25590 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
255a0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d   cor0..----..51.
255b0 0a 34 36 0d 0a 36 37 0d 0a 31 31 36 0d 0a 37 37  .46..67..116..77
255c0 0d 0a 38 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..80....onlyif m
255d0 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
255e0 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
255f0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
25600 72 74 20 6c 61 62 65 6c 2d 38 33 32 0d 0a 53 45  rt label-832..SE
25610 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
25620 6c 32 20 44 49 56 20 28 20 2d 20 63 6f 6c 30 20  l2 DIV ( - col0 
25630 29 20 2a 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32  ) * col1 AS col2
25640 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
25650 0d 0a 2d 31 0d 0a 2d 32 34 33 0d 0a 30 0d 0a 0d  ..-1..-243..0...
25660 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
25670 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
25680 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
25690 6c 61 62 65 6c 2d 38 33 32 0d 0a 53 45 4c 45 43  label-832..SELEC
256a0 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20  T DISTINCT col2 
256b0 2f 20 28 20 2d 20 63 6f 6c 30 20 29 20 2a 20 63  / ( - col0 ) * c
256c0 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol1 AS col2 FROM
256d0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d   tab0..----..-1.
256e0 0a 2d 32 34 33 0d 0a 30 0d 0a 0d 0a 71 75 65 72  .-243..0....quer
256f0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
25700 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a  ELECT DISTINCT *
25710 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
25720 20 28 20 28 20 4e 55 4c 4c 20 29 20 3e 20 2d 20   ( ( NULL ) > - 
25730 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  col2 )..----....
25740 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
25750 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
25760 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
25770 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
25780 2d 38 33 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -834..SELECT ALL
25790 20 2d 20 2d 20 63 6f 6c 31 20 44 49 56 20 2b 20   - - col1 DIV + 
257a0 2b 20 28 20 2d 20 63 6f 6c 32 20 29 20 2d 20 2d  + ( - col2 ) - -
257b0 20 34 31 20 44 49 56 20 2d 20 2d 20 63 6f 6c 30   41 DIV - - col0
257c0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
257d0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 30 0d  r0..----..-2..0.
257e0 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .1....skipif mys
257f0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
25800 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
25810 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33 34 0d 0a  sort label-834..
25820 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 63  SELECT ALL - - c
25830 6f 6c 31 20 2f 20 2b 20 2b 20 28 20 2d 20 63 6f  ol1 / + + ( - co
25840 6c 32 20 29 20 2d 20 2d 20 34 31 20 2f 20 2d 20  l2 ) - - 41 / - 
25850 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  - col0 FROM tab0
25860 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
25870 2d 32 0d 0a 30 0d 0a 31 0d 0a 0d 0a 71 75 65 72  -2..0..1....quer
25880 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
25890 4c 45 43 54 20 41 4c 4c 20 2d 20 32 39 20 2a 20  LECT ALL - 29 * 
258a0 63 6f 6c 32 20 41 53 20 63 6f 6c 31 2c 20 2d 20  col2 AS col1, - 
258b0 63 6f 6c 31 20 2a 20 2b 20 2d 20 33 34 20 46 52  col1 * + - 34 FR
258c0 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d  OM tab2 cor0..--
258d0 2d 2d 0d 0a 2d 31 31 36 30 0d 0a 32 36 31 38 0d  --..-1160..2618.
258e0 0a 2d 31 36 38 32 0d 0a 32 32 37 38 0d 0a 2d 36  .-1682..2278..-6
258f0 36 37 0d 0a 31 37 33 34 0d 0a 0d 0a 71 75 65 72  67..1734....quer
25900 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
25910 45 43 54 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 32  ECT - col1 * - 2
25920 33 20 2d 20 2d 20 63 6f 6c 31 20 2b 20 63 6f 6c  3 - - col1 + col
25930 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  1 AS col0 FROM t
25940 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
25950 2d 0d 0a 32 30 32 35 0d 0a 32 35 0d 0a 35 32 35  -..2025..25..525
25960 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
25970 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
25980 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
25990 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
259a0 61 62 65 6c 2d 38 33 37 0d 0a 53 45 4c 45 43 54  abel-837..SELECT
259b0 20 2b 20 2d 20 32 35 20 2a 20 2b 20 43 41 53 54   + - 25 * + CAST
259c0 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
259d0 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   ) col0 FROM tab
259e0 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  0 cor0..----..NU
259f0 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
25a00 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
25a10 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
25a20 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
25a30 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
25a40 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
25a50 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
25a60 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
25a70 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
25a80 38 33 37 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20  837..SELECT + - 
25a90 32 35 20 2a 20 2b 20 43 41 53 54 20 28 20 4e 55  25 * + CAST ( NU
25aa0 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
25ab0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 63  col0 FROM tab0 c
25ac0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
25ad0 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f  .NULL..NULL....o
25ae0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
25af0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
25b00 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
25b10 74 20 6c 61 62 65 6c 2d 38 33 38 0d 0a 53 45 4c  t label-838..SEL
25b20 45 43 54 20 2d 20 2b 20 35 35 20 2a 20 53 55 4d  ECT - + 55 * SUM
25b30 28 20 2d 20 2d 20 35 30 20 29 20 41 53 20 63 6f  ( - - 50 ) AS co
25b40 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
25b50 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 32 35  cor0..----..-825
25b60 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
25b70 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
25b80 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
25b90 6f 72 74 20 6c 61 62 65 6c 2d 38 33 38 0d 0a 53  ort label-838..S
25ba0 45 4c 45 43 54 20 2d 20 2b 20 35 35 20 2a 20 53  ELECT - + 55 * S
25bb0 55 4d 20 28 20 2d 20 2d 20 35 30 20 29 20 41 53  UM ( - - 50 ) AS
25bc0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
25bd0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
25be0 38 32 35 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49  8250....query II
25bf0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
25c00 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53  T * FROM tab1 AS
25c10 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
25c20 28 20 28 20 2b 20 28 20 2b 20 63 6f 6c 30 20 29  ( ( + ( + col0 )
25c30 20 2b 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 2b 20   + - col1 + + + 
25c40 37 36 20 29 20 49 53 20 4e 55 4c 4c 20 29 20 4f  76 ) IS NULL ) O
25c50 52 20 4e 4f 54 20 28 20 2b 20 37 38 20 2a 20 2b  R NOT ( + 78 * +
25c60 20 63 6f 6c 31 20 29 20 42 45 54 57 45 45 4e 20   col1 ) BETWEEN 
25c70 28 20 2d 20 63 6f 6c 30 20 2f 20 2d 20 63 6f 6c  ( - col0 / - col
25c80 31 20 2b 20 2b 20 63 6f 6c 30 20 29 20 41 4e 44  1 + + col0 ) AND
25c90 20 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 39   - col2..----..9
25ca0 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
25cb0 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64  to c6c0a4111b36d
25cc0 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34  04dbc811a11e4d54
25cd0 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  cad....query I r
25ce0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
25cf0 4c 4c 20 2b 20 35 20 2a 20 2d 20 63 6f 6c 30 20  LL + 5 * - col0 
25d00 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
25d10 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
25d20 0a 2d 34 33 35 0d 0a 2d 34 38 35 0d 0a 2d 37 35  .-435..-485..-75
25d30 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
25d40 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
25d50 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
25d60 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
25d70 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
25d80 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
25d90 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
25da0 2d 20 39 20 2a 20 2b 20 63 6f 6c 31 20 63 6f 6c  - 9 * + col1 col
25db0 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
25dc0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 35 39 0d 0a  or0..----..459..
25dd0 36 30 33 0d 0a 36 39 33 0d 0a 0d 0a 6f 6e 6c 79  603..693....only
25de0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
25df0 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
25e00 79 70 65 3a 20 44 49 56 20 66 6f 72 20 69 6e 74  ype: DIV for int
25e10 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
25e20 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
25e30 20 6c 61 62 65 6c 2d 38 34 32 0d 0a 53 45 4c 45   label-842..SELE
25e40 43 54 20 41 4c 4c 20 43 41 53 54 28 20 2d 20 2d  CT ALL CAST( - -
25e50 20 63 6f 6c 32 20 41 53 20 53 49 47 4e 45 44 20   col2 AS SIGNED 
25e60 29 20 44 49 56 20 2b 20 33 35 20 41 53 20 63 6f  ) DIV + 35 AS co
25e70 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
25e80 2d 2d 0d 0a 31 0d 0a 31 0d 0a 32 0d 0a 0d 0a 73  --..1..1..2....s
25e90 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
25ea0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
25eb0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
25ec0 62 65 6c 2d 38 34 32 0d 0a 53 45 4c 45 43 54 20  bel-842..SELECT 
25ed0 41 4c 4c 20 43 41 53 54 20 28 20 2d 20 2d 20 63  ALL CAST ( - - c
25ee0 6f 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20 29  ol2 AS INTEGER )
25ef0 20 2f 20 2b 20 33 35 20 41 53 20 63 6f 6c 31 20   / + 35 AS col1 
25f00 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
25f10 0a 31 0d 0a 31 0d 0a 32 0d 0a 0d 0a 71 75 65 72  .1..1..2....quer
25f20 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
25f30 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63  ECT DISTINCT - c
25f40 6f 6c 32 20 2a 20 2d 20 2d 20 31 32 20 41 53 20  ol2 * - - 12 AS 
25f50 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col1 FROM tab2..
25f60 2d 2d 2d 2d 0d 0a 2d 32 37 36 0d 0a 2d 34 38 30  ----..-276..-480
25f70 0d 0a 2d 36 39 36 0d 0a 0d 0a 71 75 65 72 79 20  ..-696....query 
25f80 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
25f90 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  T DISTINCT + col
25fa0 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  2 AS col0 FROM t
25fb0 61 62 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c  ab1 WHERE NULL <
25fc0 20 2d 20 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d   - - col2..----.
25fd0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
25fe0 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
25ff0 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
26000 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
26010 61 62 65 6c 2d 38 34 35 0d 0a 53 45 4c 45 43 54  abel-845..SELECT
26020 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 2c 20 2b   col0 AS col0, +
26030 20 36 36 20 44 49 56 20 63 6f 6c 30 20 46 52 4f   66 DIV col0 FRO
26040 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35  M tab0..----..15
26050 0d 0a 34 0d 0a 38 37 0d 0a 30 0d 0a 39 37 0d 0a  ..4..87..0..97..
26060 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
26070 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
26080 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
26090 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34 35 0d 0a  sort label-845..
260a0 53 45 4c 45 43 54 20 63 6f 6c 30 20 41 53 20 63  SELECT col0 AS c
260b0 6f 6c 30 2c 20 2b 20 36 36 20 2f 20 63 6f 6c 30  ol0, + 66 / col0
260c0 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
260d0 0d 0a 31 35 0d 0a 34 0d 0a 38 37 0d 0a 30 0d 0a  ..15..4..87..0..
260e0 39 37 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  97..0....onlyif 
260f0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
26100 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
26110 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
26120 6c 2d 38 34 36 0d 0a 53 45 4c 45 43 54 20 44 49  l-846..SELECT DI
26130 53 54 49 4e 43 54 20 2b 20 35 32 20 2b 20 2b 20  STINCT + 52 + + 
26140 4d 41 58 28 20 41 4c 4c 20 63 6f 6c 31 20 29 20  MAX( ALL col1 ) 
26150 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
26160 0a 31 32 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .129....skipif m
26170 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
26180 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
26190 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34 36  owsort label-846
261a0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
261b0 54 20 2b 20 35 32 20 2b 20 2b 20 4d 41 58 20 28  T + 52 + + MAX (
261c0 20 41 4c 4c 20 63 6f 6c 31 20 29 20 46 52 4f 4d   ALL col1 ) FROM
261d0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 32 39   tab2..----..129
261e0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
261f0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
26200 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
26210 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
26220 6c 61 62 65 6c 2d 38 34 37 0d 0a 53 45 4c 45 43  label-847..SELEC
26230 54 20 41 4c 4c 20 63 6f 6c 32 20 41 53 20 63 6f  T ALL col2 AS co
26240 6c 31 2c 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  l1, CAST( NULL A
26250 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2b 20 2d  S SIGNED ) * + -
26260 20 32 30 20 2a 20 2d 20 2d 20 63 6f 6c 32 20 41   20 * - - col2 A
26270 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
26280 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 4e 55 4c 4c  ..----..10..NULL
26290 0d 0a 34 37 0d 0a 4e 55 4c 4c 0d 0a 39 39 0d 0a  ..47..NULL..99..
262a0 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
262b0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
262c0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
262d0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34  rowsort label-84
262e0 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f  7..SELECT ALL co
262f0 6c 32 20 41 53 20 63 6f 6c 31 2c 20 43 41 53 54  l2 AS col1, CAST
26300 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
26310 45 52 20 29 20 2a 20 2b 20 2d 20 32 30 20 2a 20  ER ) * + - 20 * 
26320 2d 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32  - - col2 AS col2
26330 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
26340 0d 0a 31 30 0d 0a 4e 55 4c 4c 0d 0a 34 37 0d 0a  ..10..NULL..47..
26350 4e 55 4c 4c 0d 0a 39 39 0d 0a 4e 55 4c 4c 0d 0a  NULL..99..NULL..
26360 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
26370 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
26380 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
26390 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34 38 0d 0a  sort label-848..
263a0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
263b0 28 20 2d 20 28 20 2d 20 2d 20 43 4f 55 4e 54 28  ( - ( - - COUNT(
263c0 20 2a 20 29 20 29 20 29 20 2b 20 2b 20 2d 20 4d   * ) ) ) + + - M
263d0 49 4e 28 20 44 49 53 54 49 4e 43 54 20 2d 20 63  IN( DISTINCT - c
263e0 6f 6c 31 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ol1 ) AS col2 FR
263f0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 34  OM tab1..----..4
26400 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  4....skipif mysq
26410 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
26420 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
26430 6f 72 74 20 6c 61 62 65 6c 2d 38 34 38 0d 0a 53  ort label-848..S
26440 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 28  ELECT DISTINCT (
26450 20 2d 20 28 20 2d 20 2d 20 43 4f 55 4e 54 20 28   - ( - - COUNT (
26460 20 2a 20 29 20 29 20 29 20 2b 20 2b 20 2d 20 4d   * ) ) ) + + - M
26470 49 4e 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20  IN ( DISTINCT - 
26480 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 32 20 46  col1 ) AS col2 F
26490 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
264a0 34 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  44....onlyif mys
264b0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
264c0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
264d0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
264e0 34 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  49..SELECT DISTI
264f0 4e 43 54 20 4d 49 4e 28 20 41 4c 4c 20 2b 20 63  NCT MIN( ALL + c
26500 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 30 20  ol1 ) FROM tab0 
26510 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
26520 54 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a  T col0 IS NULL..
26530 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69  ----..1....skipi
26540 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
26550 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
26560 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
26570 38 34 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  849..SELECT DIST
26580 49 4e 43 54 20 4d 49 4e 20 28 20 41 4c 4c 20 2b  INCT MIN ( ALL +
26590 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62   col1 ) FROM tab
265a0 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
265b0 4e 4f 54 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c  NOT col0 IS NULL
265c0 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 71 75 65  ..----..1....que
265d0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
265e0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
265f0 36 31 20 2a 20 2b 20 63 6f 6c 32 20 41 53 20 63  61 * + col2 AS c
26600 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
26610 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
26620 28 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20 28 20  ( NULL NOT IN ( 
26630 2b 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 32 20  + col0 * - col2 
26640 2b 20 2b 20 32 34 20 29 20 29 0d 0a 2d 2d 2d 2d  + + 24 ) )..----
26650 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
26660 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
26670 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
26680 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
26690 61 62 65 6c 2d 38 35 31 0d 0a 53 45 4c 45 43 54  abel-851..SELECT
266a0 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 63 6f   DISTINCT + - co
266b0 6c 30 20 2a 20 2d 20 63 6f 6c 30 20 2b 20 2b 20  l0 * - col0 + + 
266c0 43 41 53 54 28 20 2d 20 63 6f 6c 31 20 41 53 20  CAST( - col1 AS 
266d0 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 32  SIGNED ) AS col2
266e0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
266f0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 34 0d 0a 37  r0..----..144..7
26700 35 34 38 0d 0a 39 34 30 38 0d 0a 0d 0a 73 6b 69  548..9408....ski
26710 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
26720 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
26730 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
26740 6c 2d 38 35 31 0d 0a 53 45 4c 45 43 54 20 44 49  l-851..SELECT DI
26750 53 54 49 4e 43 54 20 2b 20 2d 20 63 6f 6c 30 20  STINCT + - col0 
26760 2a 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 43 41 53  * - col0 + + CAS
26770 54 20 28 20 2d 20 63 6f 6c 31 20 41 53 20 49 4e  T ( - col1 AS IN
26780 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 32 20  TEGER ) AS col2 
26790 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
267a0 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 34 0d 0a 37 35  0..----..144..75
267b0 34 38 0d 0a 39 34 30 38 0d 0a 0d 0a 71 75 65 72  48..9408....quer
267c0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
267d0 45 43 54 20 2b 20 2b 20 28 20 2b 20 31 36 20 29  ECT + + ( + 16 )
267e0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
267f0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 0d 0a 31 36  r0..----..16..16
26800 0d 0a 31 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..16....query II
26810 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
26820 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53  T * FROM tab2 AS
26830 20 63 6f 72 30 20 57 48 45 52 45 20 35 34 20 3c   cor0 WHERE 54 <
26840 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  = NULL..----....
26850 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
26860 0a 53 45 4c 45 43 54 20 2b 20 2d 20 63 6f 6c 32  .SELECT + - col2
26870 20 2a 20 2b 20 2d 20 39 32 20 41 53 20 63 6f 6c   * + - 92 AS col
26880 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
26890 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 34 32 38 0d  or0..----..5428.
268a0 0a 36 32 35 36 0d 0a 38 38 33 32 0d 0a 0d 0a 71  .6256..8832....q
268b0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
268c0 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2a 20  SELECT + col2 * 
268d0 2b 20 2d 20 37 34 20 46 52 4f 4d 20 74 61 62 31  + - 74 FROM tab1
268e0 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 33 36 36 0d 0a 2d  ..----..-4366..-
268f0 35 30 33 32 0d 0a 2d 37 31 30 34 0d 0a 0d 0a 71  5032..-7104....q
26900 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
26910 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31  .SELECT ALL col1
26920 20 41 53 20 63 6f 6c 32 2c 20 2d 20 63 6f 6c 30   AS col2, - col0
26930 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
26940 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c   NOT NULL IS NUL
26950 4c 20 4f 52 20 4e 4f 54 20 63 6f 6c 32 20 2a 20  L OR NOT col2 * 
26960 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  col1 IS NULL..--
26970 2d 2d 0d 0a 31 0d 0a 2d 39 37 0d 0a 32 31 0d 0a  --..1..-97..21..
26980 2d 38 37 0d 0a 38 31 0d 0a 2d 31 35 0d 0a 0d 0a  -87..81..-15....
26990 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
269a0 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
269b0 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
269c0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
269d0 2d 38 35 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -857..SELECT ALL
269e0 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 2d 20 37 35   + col0 + - - 75
269f0 20 44 49 56 20 2d 20 39 30 20 2a 20 2b 20 2b 20   DIV - 90 * + + 
26a00 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f  col2 AS col0 FRO
26a10 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
26a20 2d 2d 2d 2d 0d 0a 34 36 0d 0a 36 34 0d 0a 37 35  ----..46..64..75
26a30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
26a40 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
26a50 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
26a60 72 74 20 6c 61 62 65 6c 2d 38 35 37 0d 0a 53 45  rt label-857..SE
26a70 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 30 20  LECT ALL + col0 
26a80 2b 20 2d 20 2d 20 37 35 20 2f 20 2d 20 39 30 20  + - - 75 / - 90 
26a90 2a 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  * + + col2 AS co
26aa0 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l0 FROM tab2 AS 
26ab0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a  cor0..----..46..
26ac0 36 34 0d 0a 37 35 0d 0a 0d 0a 71 75 65 72 79 20  64..75....query 
26ad0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
26ae0 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  T DISTINCT - col
26af0 32 20 2b 20 2d 20 2d 20 63 6f 6c 31 20 41 53 20  2 + - - col1 AS 
26b00 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
26b10 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  S cor0..----..-2
26b20 31 0d 0a 2d 35 34 0d 0a 2d 38 32 0d 0a 0d 0a 71  1..-54..-82....q
26b30 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
26b40 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
26b50 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
26b60 52 45 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 33 37  RE - col2 * - 37
26b70 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
26b80 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
26b90 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
26ba0 43 54 20 2d 20 28 20 2d 20 2b 20 63 6f 6c 32 20  CT - ( - + col2 
26bb0 29 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  ) + col1 FROM ta
26bc0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
26bd0 0d 0a 31 31 30 0d 0a 31 31 35 0d 0a 36 34 0d 0a  ..110..115..64..
26be0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
26bf0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
26c00 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  x: ..query II ro
26c10 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 36 31 0d  wsort label-861.
26c20 0a 53 45 4c 45 43 54 20 2d 20 39 30 20 41 53 20  .SELECT - 90 AS 
26c30 63 6f 6c 31 2c 20 2d 20 43 4f 55 4e 54 28 20 2b  col1, - COUNT( +
26c40 20 2d 20 63 6f 6c 30 20 29 20 63 6f 6c 30 20 46   - col0 ) col0 F
26c50 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
26c60 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 30 0d 0a 2d 33 0d  ..----..-90..-3.
26c70 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
26c80 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
26c90 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
26ca0 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
26cb0 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
26cc0 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
26cd0 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
26ce0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
26cf0 6c 2d 38 36 31 0d 0a 53 45 4c 45 43 54 20 2d 20  l-861..SELECT - 
26d00 39 30 20 41 53 20 63 6f 6c 31 2c 20 2d 20 43 4f  90 AS col1, - CO
26d10 55 4e 54 20 28 20 2b 20 2d 20 63 6f 6c 30 20 29  UNT ( + - col0 )
26d20 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
26d30 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
26d40 39 30 0d 0a 2d 33 0d 0a 0d 0a 6f 6e 6c 79 69 66  90..-3....onlyif
26d50 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
26d60 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
26d70 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
26d80 65 6c 2d 38 36 32 0d 0a 53 45 4c 45 43 54 20 41  el-862..SELECT A
26d90 4c 4c 20 2b 20 2b 20 28 20 2d 20 31 37 20 29 20  LL + + ( - 17 ) 
26da0 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 63  - - COUNT( * ) c
26db0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
26dc0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34   cor0..----..-14
26dd0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
26de0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
26df0 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
26e00 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
26e10 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
26e20 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
26e30 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
26e40 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
26e50 6c 2d 38 36 32 0d 0a 53 45 4c 45 43 54 20 41 4c  l-862..SELECT AL
26e60 4c 20 2b 20 2b 20 28 20 2d 20 31 37 20 29 20 2d  L + + ( - 17 ) -
26e70 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 63   - COUNT ( * ) c
26e80 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
26e90 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34   cor0..----..-14
26ea0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
26eb0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
26ec0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
26ed0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 36 33  owsort label-863
26ee0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
26ef0 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  T - COUNT( * ) F
26f00 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
26f10 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c   WHERE NOT + col
26f20 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  1 IS NOT NULL..-
26f30 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  ---..0....skipif
26f40 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
26f50 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
26f60 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
26f70 36 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  63..SELECT DISTI
26f80 4e 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  NCT - COUNT ( * 
26f90 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
26fa0 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  or0 WHERE NOT + 
26fb0 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col1 IS NOT NULL
26fc0 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c  ..----..0....onl
26fd0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
26fe0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49  egate syntax: DI
26ff0 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
27000 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
27010 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
27020 38 36 34 0d 0a 53 45 4c 45 43 54 20 28 20 43 4f  864..SELECT ( CO
27030 55 4e 54 28 20 2a 20 29 20 29 20 44 49 56 20 2b  UNT( * ) ) DIV +
27040 20 2d 20 36 32 20 2a 20 2d 20 38 38 20 41 53 20   - 62 * - 88 AS 
27050 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
27060 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  ----..0....skipi
27070 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
27080 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
27090 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
270a0 38 36 34 0d 0a 53 45 4c 45 43 54 20 28 20 43 4f  864..SELECT ( CO
270b0 55 4e 54 20 28 20 2a 20 29 20 29 20 2f 20 2b 20  UNT ( * ) ) / + 
270c0 2d 20 36 32 20 2a 20 2d 20 38 38 20 41 53 20 63  - 62 * - 88 AS c
270d0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
270e0 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ---..0....onlyif
270f0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
27100 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
27110 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
27120 65 6c 2d 38 36 35 0d 0a 53 45 4c 45 43 54 20 41  el-865..SELECT A
27130 4c 4c 20 28 20 2d 20 43 4f 55 4e 54 28 20 2a 20  LL ( - COUNT( * 
27140 29 20 29 20 2d 20 2d 20 43 4f 55 4e 54 28 20 44  ) ) - - COUNT( D
27150 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 29  ISTINCT - col2 )
27160 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
27170 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
27180 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
27190 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
271a0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 36 35 0d  wsort label-865.
271b0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28 20 2d 20  .SELECT ALL ( - 
271c0 43 4f 55 4e 54 20 28 20 2a 20 29 20 29 20 2d 20  COUNT ( * ) ) - 
271d0 2d 20 43 4f 55 4e 54 20 28 20 44 49 53 54 49 4e  - COUNT ( DISTIN
271e0 43 54 20 2d 20 63 6f 6c 32 20 29 20 46 52 4f 4d  CT - col2 ) FROM
271f0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   tab1..----..0..
27200 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
27210 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
27220 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 2d 20  OM tab1 WHERE - 
27230 2b 20 63 6f 6c 32 20 49 4e 20 28 20 31 36 20 2a  + col2 IN ( 16 *
27240 20 63 6f 6c 32 20 2f 20 2d 20 2d 20 31 31 20 2b   col2 / - - 11 +
27250 20 2b 20 35 33 20 2b 20 2b 20 28 20 28 20 2b 20   + 53 + + ( ( + 
27260 28 20 2b 20 63 6f 6c 31 20 29 20 29 20 29 20 2a  ( + col1 ) ) ) *
27270 20 2b 20 37 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a   + 7 )..----....
27280 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
27290 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
272a0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
272b0 72 74 20 6c 61 62 65 6c 2d 38 36 37 0d 0a 53 45  rt label-867..SE
272c0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
272d0 28 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  ( + - COUNT( * )
272e0 20 29 20 2d 20 2b 20 37 20 41 53 20 63 6f 6c 30   ) - + 7 AS col0
272f0 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
27300 0d 0a 2d 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..-4....skipif m
27310 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
27320 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
27330 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 36 37  owsort label-867
27340 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
27350 54 20 2d 20 28 20 2b 20 2d 20 43 4f 55 4e 54 20  T - ( + - COUNT 
27360 28 20 2a 20 29 20 29 20 2d 20 2b 20 37 20 41 53  ( * ) ) - + 7 AS
27370 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
27380 0a 2d 2d 2d 2d 0d 0a 2d 34 0d 0a 0d 0a 71 75 65  .----..-4....que
27390 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
273a0 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
273b0 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
273c0 20 2d 20 35 31 20 2b 20 2d 20 63 6f 6c 30 20 3c   - 51 + - col0 <
273d0 20 2d 20 35 33 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   - 53..----....q
273e0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
273f0 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
27400 74 61 62 30 20 57 48 45 52 45 20 2b 20 2b 20 63  tab0 WHERE + + c
27410 6f 6c 31 20 2f 20 2b 20 34 20 2b 20 2b 20 39 39  ol1 / + 4 + + 99
27420 20 2b 20 63 6f 6c 32 20 2b 20 34 38 20 49 53 20   + col2 + 48 IS 
27430 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
27440 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
27450 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2a 20 63  ELECT - col1 * c
27460 6f 6c 31 20 2a 20 2d 20 34 38 20 2d 20 2b 20 2d  ol1 * - 48 - + -
27470 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52   col0 AS col0 FR
27480 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab1..----..1
27490 30 36 31 32 33 0d 0a 31 32 38 35 0d 0a 39 34 35  06123..1285..945
274a0 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  9....query I row
274b0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63  sort..SELECT - c
274c0 6f 6c 32 20 2d 20 2b 20 63 6f 6c 32 20 2b 20 31  ol2 - + col2 + 1
274d0 31 20 2a 20 31 37 20 2a 20 34 36 20 2b 20 2d 20  1 * 17 * 46 + - 
274e0 38 37 20 2a 20 2b 20 2b 20 63 6f 6c 31 20 41 53  87 * + + col1 AS
274f0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
27500 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
27510 34 36 31 0d 0a 36 37 35 35 0d 0a 38 33 31 37 0d  461..6755..8317.
27520 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
27530 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
27540 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
27550 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
27560 2b 20 63 6f 6c 32 20 2f 20 2b 20 63 6f 6c 30 20  + col2 / + col0 
27570 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
27580 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
27590 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35 64  ing to c4b42765d
275a0 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35 33  ff94eaaa46040e53
275b0 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72 79  7fb43b7....query
275c0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
275d0 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f  CT DISTINCT - co
275e0 6c 32 20 2a 20 2b 20 31 37 20 41 53 20 63 6f 6c  l2 * + 17 AS col
275f0 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
27600 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 38 33  or0..----..-1683
27610 0d 0a 2d 31 37 30 0d 0a 2d 37 39 39 0d 0a 0d 0a  ..-170..-799....
27620 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
27630 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f  .SELECT ALL - co
27640 6c 31 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d  l1 + - col0 FROM
27650 20 74 61 62 32 20 57 48 45 52 45 20 4e 55 4c 4c   tab2 WHERE NULL
27660 20 49 4e 20 28 20 2b 20 63 6f 6c 32 20 29 0d 0a   IN ( + col2 )..
27670 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  ----....skipif p
27680 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
27690 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
276a0 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
276b0 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
276c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
276d0 0d 0a 53 45 4c 45 43 54 20 2d 20 37 35 20 63 6f  ..SELECT - 75 co
276e0 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
276f0 2d 2d 0d 0a 2d 37 35 0d 0a 2d 37 35 0d 0a 2d 37  --..-75..-75..-7
27700 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  5....onlyif mysq
27710 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
27720 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
27730 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 37  rowsort label-87
27740 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  6..SELECT ALL + 
27750 4d 41 58 28 20 41 4c 4c 20 2b 20 63 6f 6c 30 20  MAX( ALL + col0 
27760 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
27770 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
27780 2d 0d 0a 39 37 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..97....skipif 
27790 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
277a0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
277b0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 37  rowsort label-87
277c0 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  6..SELECT ALL + 
277d0 4d 41 58 20 28 20 41 4c 4c 20 2b 20 63 6f 6c 30  MAX ( ALL + col0
277e0 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
277f0 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
27800 2d 2d 0d 0a 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  --..97....onlyif
27810 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
27820 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
27830 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
27840 65 6c 2d 38 37 37 0d 0a 53 45 4c 45 43 54 20 44  el-877..SELECT D
27850 49 53 54 49 4e 43 54 20 2b 20 2d 20 4d 41 58 28  ISTINCT + - MAX(
27860 20 2d 20 2b 20 63 6f 6c 31 20 29 20 41 53 20 63   - + col1 ) AS c
27870 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
27880 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a   cor0..----..1..
27890 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
278a0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
278b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
278c0 20 6c 61 62 65 6c 2d 38 37 37 0d 0a 53 45 4c 45   label-877..SELE
278d0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20  CT DISTINCT + - 
278e0 4d 41 58 20 28 20 2d 20 2b 20 63 6f 6c 31 20 29  MAX ( - + col1 )
278f0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
27900 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
27910 0d 0a 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..1....onlyif my
27920 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
27930 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e  x: aggregate syn
27940 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
27950 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
27960 6f 72 74 20 6c 61 62 65 6c 2d 38 37 38 0d 0a 53  ort label-878..S
27970 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
27980 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   - CAST( NULL AS
27990 20 53 49 47 4e 45 44 20 29 20 2a 20 2d 20 43 4f   SIGNED ) * - CO
279a0 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
279b0 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
279c0 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
279d0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
279e0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
279f0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
27a00 37 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  78..SELECT DISTI
27a10 4e 43 54 20 2d 20 2d 20 43 41 53 54 20 28 20 4e  NCT - - CAST ( N
27a20 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
27a30 20 2a 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29   * - COUNT ( * )
27a40 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
27a50 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
27a60 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
27a70 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
27a80 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
27a90 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
27aa0 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
27ab0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
27ac0 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20  CT DISTINCT - - 
27ad0 63 6f 6c 30 20 63 6f 6c 30 20 46 52 4f 4d 20 74  col0 col0 FROM t
27ae0 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
27af0 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 49  E NOT ( NULL ) I
27b00 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
27b10 0d 0a 34 36 0d 0a 36 34 0d 0a 37 35 0d 0a 0d 0a  ..46..64..75....
27b20 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
27b30 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
27b40 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
27b50 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
27b60 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
27b70 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
27b80 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 2a   DISTINCT col2 *
27b90 20 2d 20 39 31 20 63 6f 6c 30 20 46 52 4f 4d 20   - 91 col0 FROM 
27ba0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
27bb0 2d 2d 0d 0a 2d 35 33 36 39 0d 0a 2d 36 31 38 38  --..-5369..-6188
27bc0 0d 0a 2d 38 37 33 36 0d 0a 0d 0a 6f 6e 6c 79 69  ..-8736....onlyi
27bd0 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
27be0 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
27bf0 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72  on: ..query II r
27c00 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 38 31  owsort label-881
27c10 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63  ..SELECT ALL - c
27c20 6f 6c 30 20 44 49 56 20 2b 20 63 6f 6c 31 2c 20  ol0 DIV + col1, 
27c30 63 6f 6c 32 20 2b 20 36 31 20 2a 20 63 6f 6c 31  col2 + 61 * col1
27c40 20 2a 20 2d 20 2d 20 63 6f 6c 32 20 41 53 20 63   * - - col2 AS c
27c50 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol0 FROM tab0..-
27c60 2d 2d 2d 0d 0a 2d 34 0d 0a 31 32 38 32 30 0d 0a  ---..-4..12820..
27c70 2d 39 37 0d 0a 36 31 33 38 0d 0a 30 0d 0a 32 33  -97..6138..0..23
27c80 32 32 37 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  2274....skipif m
27c90 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
27ca0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
27cb0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 38  rowsort label-88
27cc0 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  1..SELECT ALL - 
27cd0 63 6f 6c 30 20 2f 20 2b 20 63 6f 6c 31 2c 20 63  col0 / + col1, c
27ce0 6f 6c 32 20 2b 20 36 31 20 2a 20 63 6f 6c 31 20  ol2 + 61 * col1 
27cf0 2a 20 2d 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f  * - - col2 AS co
27d00 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
27d10 2d 2d 0d 0a 2d 34 0d 0a 31 32 38 32 30 0d 0a 2d  --..-4..12820..-
27d20 39 37 0d 0a 36 31 33 38 0d 0a 30 0d 0a 32 33 32  97..6138..0..232
27d30 32 37 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  274....query III
27d40 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
27d50 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45   * FROM tab1 WHE
27d60 52 45 20 4e 4f 54 20 2b 20 37 38 20 3e 3d 20 2b  RE NOT + 78 >= +
27d70 20 63 6f 6c 31 20 2a 20 2b 20 36 37 20 4f 52 20   col1 * + 67 OR 
27d80 2b 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55  + col2 IS NOT NU
27d90 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  LL..----..9 valu
27da0 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36  es hashing to c6
27db0 63 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63  c0a4111b36d04dbc
27dc0 38 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a  811a11e4d54cad..
27dd0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
27de0 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2a  t..SELECT col2 *
27df0 20 2d 20 63 6f 6c 32 20 2f 20 2d 20 63 6f 6c 32   - col2 / - col2
27e00 20 2f 20 2b 20 31 30 20 46 52 4f 4d 20 74 61 62   / + 10 FROM tab
27e10 32 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  2 WHERE NOT NULL
27e20 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
27e30 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
27e40 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2b  t..SELECT col0 +
27e50 20 31 37 20 2b 20 28 20 2b 20 31 36 20 29 20 46   17 + ( + 16 ) F
27e60 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
27e70 31 30 38 0d 0a 37 39 0d 0a 39 37 0d 0a 0d 0a 71  108..79..97....q
27e80 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
27e90 53 45 4c 45 43 54 20 31 32 20 2a 20 2d 20 2b 20  SELECT 12 * - + 
27ea0 32 37 20 2b 20 2d 20 2b 20 63 6f 6c 32 20 46 52  27 + - + col2 FR
27eb0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
27ec0 33 34 37 0d 0a 2d 33 36 34 0d 0a 2d 33 38 32 0d  347..-364..-382.
27ed0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
27ee0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
27ef0 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
27f00 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
27f10 62 65 6c 2d 38 38 36 0d 0a 53 45 4c 45 43 54 20  bel-886..SELECT 
27f20 2b 20 2d 20 34 32 20 2a 20 2d 20 63 6f 6c 32 20  + - 42 * - col2 
27f30 2b 20 43 41 53 54 28 20 2d 20 37 34 20 41 53 20  + CAST( - 74 AS 
27f40 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 31  SIGNED ) AS col1
27f50 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
27f60 20 2b 20 2d 20 37 20 49 53 20 4e 4f 54 20 4e 55   + - 7 IS NOT NU
27f70 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 34 30 34 0d 0a  LL..----..2404..
27f80 32 37 38 32 0d 0a 33 39 35 38 0d 0a 0d 0a 73 6b  2782..3958....sk
27f90 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
27fa0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
27fb0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
27fc0 65 6c 2d 38 38 36 0d 0a 53 45 4c 45 43 54 20 2b  el-886..SELECT +
27fd0 20 2d 20 34 32 20 2a 20 2d 20 63 6f 6c 32 20 2b   - 42 * - col2 +
27fe0 20 43 41 53 54 20 28 20 2d 20 37 34 20 41 53 20   CAST ( - 74 AS 
27ff0 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c  INTEGER ) AS col
28000 31 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  1 FROM tab1 WHER
28010 45 20 2b 20 2d 20 37 20 49 53 20 4e 4f 54 20 4e  E + - 7 IS NOT N
28020 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 34 30 34 0d  ULL..----..2404.
28030 0a 32 37 38 32 0d 0a 33 39 35 38 0d 0a 0d 0a 6f  .2782..3958....o
28040 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
28050 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
28060 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
28070 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
28080 2d 38 38 37 0d 0a 53 45 4c 45 43 54 20 44 49 53  -887..SELECT DIS
28090 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 2b 20 2d  TINCT - col2 + -
280a0 20 33 37 20 41 53 20 63 6f 6c 32 2c 20 2d 20 63   37 AS col2, - c
280b0 6f 6c 32 20 44 49 56 20 2d 20 63 6f 6c 31 20 41  ol2 DIV - col1 A
280c0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
280d0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
280e0 2d 36 30 0d 0a 30 0d 0a 2d 37 37 0d 0a 30 0d 0a  -60..0..-77..0..
280f0 2d 39 35 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  -95..0....skipif
28100 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
28110 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
28120 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
28130 38 38 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  887..SELECT DIST
28140 49 4e 43 54 20 2d 20 63 6f 6c 32 20 2b 20 2d 20  INCT - col2 + - 
28150 33 37 20 41 53 20 63 6f 6c 32 2c 20 2d 20 63 6f  37 AS col2, - co
28160 6c 32 20 2f 20 2d 20 63 6f 6c 31 20 41 53 20 63  l2 / - col1 AS c
28170 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
28180 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 30   cor0..----..-60
28190 0d 0a 30 0d 0a 2d 37 37 0d 0a 30 0d 0a 2d 39 35  ..0..-77..0..-95
281a0 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ..0....query I r
281b0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
281c0 4c 4c 20 63 6f 6c 31 20 2b 20 2b 20 32 37 20 2b  LL col1 + + 27 +
281d0 20 35 37 20 46 52 4f 4d 20 74 61 62 32 20 41 53   57 FROM tab2 AS
281e0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 35   cor0..----..135
281f0 0d 0a 31 35 31 0d 0a 31 36 31 0d 0a 0d 0a 71 75  ..151..161....qu
28200 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
28210 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
28220 20 37 38 20 2b 20 2d 20 38 30 20 41 53 20 63 6f   78 + - 80 AS co
28230 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
28240 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 0d 0a  cor0..----..-2..
28250 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
28260 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2a  t..SELECT col1 *
28270 20 63 6f 6c 32 20 2a 20 2b 20 2b 20 34 35 20 46   col2 * + + 45 F
28280 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 20 57 48  ROM tab1 cor0 WH
28290 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 3c 3e 20  ERE ( NULL ) <> 
282a0 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  col2..----....qu
282b0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
282c0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
282d0 20 35 39 20 46 52 4f 4d 20 74 61 62 32 20 57 48   59 FROM tab2 WH
282e0 45 52 45 20 4e 4f 54 20 2b 20 34 38 20 3c 20 4e  ERE NOT + 48 < N
282f0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
28300 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
28310 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
28320 62 31 20 57 48 45 52 45 20 63 6f 6c 31 20 2b 20  b1 WHERE col1 + 
28330 2d 20 2b 20 63 6f 6c 30 20 49 53 20 4e 4f 54 20  - + col0 IS NOT 
28340 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  NULL..----..9 va
28350 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
28360 63 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64  c6c0a4111b36d04d
28370 62 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64  bc811a11e4d54cad
28380 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
28390 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
283a0 2b 20 39 36 20 41 53 20 63 6f 6c 31 20 46 52 4f  + 96 AS col1 FRO
283b0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
283c0 48 45 52 45 20 2d 20 63 6f 6c 31 20 3c 20 2b 20  HERE - col1 < + 
283d0 2b 20 63 6f 6c 32 20 2a 20 34 0d 0a 2d 2d 2d 2d  + col2 * 4..----
283e0 0d 0a 39 36 0d 0a 39 36 0d 0a 39 36 0d 0a 0d 0a  ..96..96..96....
283f0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
28400 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
28410 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
28420 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
28430 2d 38 39 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -894..SELECT ALL
28440 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 2b 20 63 6f   + col1 + + + co
28450 6c 32 20 44 49 56 20 39 34 20 41 53 20 63 6f 6c  l2 DIV 94 AS col
28460 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
28470 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 36  or0..----..51..6
28480 37 0d 0a 37 37 0d 0a 0d 0a 73 6b 69 70 69 66 20  7..77....skipif 
28490 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
284a0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
284b0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 39  rowsort label-89
284c0 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  4..SELECT ALL + 
284d0 63 6f 6c 31 20 2b 20 2b 20 2b 20 63 6f 6c 32 20  col1 + + + col2 
284e0 2f 20 39 34 20 41 53 20 63 6f 6c 31 20 46 52 4f  / 94 AS col1 FRO
284f0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
28500 2d 2d 2d 2d 0d 0a 35 31 0d 0a 36 37 0d 0a 37 37  ----..51..67..77
28510 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
28520 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
28530 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
28540 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
28550 61 62 65 6c 2d 38 39 35 0d 0a 53 45 4c 45 43 54  abel-895..SELECT
28560 20 44 49 53 54 49 4e 43 54 20 2b 20 38 33 20 2b   DISTINCT + 83 +
28570 20 2d 20 63 6f 6c 32 20 44 49 56 20 63 6f 6c 31   - col2 DIV col1
28580 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
28590 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 33 0d 0a 0d 0a  r0..----..83....
285a0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
285b0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
285c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
285d0 61 62 65 6c 2d 38 39 35 0d 0a 53 45 4c 45 43 54  abel-895..SELECT
285e0 20 44 49 53 54 49 4e 43 54 20 2b 20 38 33 20 2b   DISTINCT + 83 +
285f0 20 2d 20 63 6f 6c 32 20 2f 20 63 6f 6c 31 20 46   - col2 / col1 F
28600 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
28610 0d 0a 2d 2d 2d 2d 0d 0a 38 33 0d 0a 0d 0a 71 75  ..----..83....qu
28620 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
28630 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 34  ELECT DISTINCT 4
28640 20 2d 20 2b 20 2b 20 38 35 20 2b 20 2b 20 63 6f   - + + 85 + + co
28650 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l2 AS col1 FROM 
28660 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
28670 0a 2d 31 33 0d 0a 2d 32 32 0d 0a 31 35 0d 0a 0d  .-13..-22..15...
28680 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
28690 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
286a0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
286b0 6f 72 74 20 6c 61 62 65 6c 2d 38 39 37 0d 0a 53  ort label-897..S
286c0 45 4c 45 43 54 20 2d 20 4d 41 58 28 20 41 4c 4c  ELECT - MAX( ALL
286d0 20 2d 20 31 20 29 20 46 52 4f 4d 20 74 61 62 32   - 1 ) FROM tab2
286e0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28   AS cor0 WHERE (
286f0 20 4e 55 4c 4c 20 29 20 4e 4f 54 20 42 45 54 57   NULL ) NOT BETW
28700 45 45 4e 20 2b 20 2d 20 63 6f 6c 32 20 41 4e 44  EEN + - col2 AND
28710 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 4e   + col1..----..N
28720 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
28730 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
28740 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
28750 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 39 37 0d  wsort label-897.
28760 0a 53 45 4c 45 43 54 20 2d 20 4d 41 58 20 28 20  .SELECT - MAX ( 
28770 41 4c 4c 20 2d 20 31 20 29 20 46 52 4f 4d 20 74  ALL - 1 ) FROM t
28780 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
28790 45 20 28 20 4e 55 4c 4c 20 29 20 4e 4f 54 20 42  E ( NULL ) NOT B
287a0 45 54 57 45 45 4e 20 2b 20 2d 20 63 6f 6c 32 20  ETWEEN + - col2 
287b0 41 4e 44 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d  AND + col1..----
287c0 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..NULL....onlyif
287d0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
287e0 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
287f0 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
28800 73 6f 72 74 20 6c 61 62 65 6c 2d 38 39 38 0d 0a  sort label-898..
28810 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 41 53  SELECT + col1 AS
28820 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
28830 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20  AS cor0 WHERE - 
28840 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
28850 47 4e 45 44 20 29 20 3c 3e 20 33 33 0d 0a 2d 2d  GNED ) <> 33..--
28860 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
28870 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
28880 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
28890 73 6f 72 74 20 6c 61 62 65 6c 2d 38 39 38 0d 0a  sort label-898..
288a0 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 41 53  SELECT + col1 AS
288b0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
288c0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20  AS cor0 WHERE - 
288d0 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
288e0 4e 54 45 47 45 52 20 29 20 3c 3e 20 33 33 0d 0a  NTEGER ) <> 33..
288f0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
28900 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
28910 41 4c 4c 20 2d 20 38 36 20 2a 20 2b 20 31 36 20  ALL - 86 * + 16 
28920 2d 20 39 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  - 9 FROM tab0..-
28930 2d 2d 2d 0d 0a 2d 31 33 38 35 0d 0a 2d 31 33 38  ---..-1385..-138
28940 35 0d 0a 2d 31 33 38 35 0d 0a 0d 0a 71 75 65 72  5..-1385....quer
28950 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
28960 45 43 54 20 2d 20 32 39 20 46 52 4f 4d 20 74 61  ECT - 29 FROM ta
28970 62 32 20 57 48 45 52 45 20 2d 20 2d 20 63 6f 6c  b2 WHERE - - col
28980 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  0 IS NOT NULL..-
28990 2d 2d 2d 0d 0a 2d 32 39 0d 0a 2d 32 39 0d 0a 2d  ---..-29..-29..-
289a0 32 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  29....query I ro
289b0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
289c0 4c 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c  L + col0 * + col
289d0 32 20 2d 20 32 36 20 2b 20 63 6f 6c 32 20 2a 20  2 - 26 + col2 * 
289e0 2b 20 32 33 20 46 52 4f 4d 20 74 61 62 32 0d 0a  + 23 FROM tab2..
289f0 2d 2d 2d 2d 0d 0a 31 35 36 31 0d 0a 33 34 35 34  ----..1561..3454
28a00 0d 0a 35 36 35 38 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..5658....onlyif
28a10 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
28a20 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
28a30 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
28a40 73 6f 72 74 20 6c 61 62 65 6c 2d 39 30 32 0d 0a  sort label-902..
28a50 53 45 4c 45 43 54 20 43 41 53 54 28 20 4e 55 4c  SELECT CAST( NUL
28a60 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20  L AS SIGNED ) * 
28a70 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 32 20 46 52  col2 + + col2 FR
28a80 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab0..----..N
28a90 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
28aa0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
28ab0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
28ac0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
28ad0 74 20 6c 61 62 65 6c 2d 39 30 32 0d 0a 53 45 4c  t label-902..SEL
28ae0 45 43 54 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  ECT CAST ( NULL 
28af0 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 63  AS INTEGER ) * c
28b00 6f 6c 32 20 2b 20 2b 20 63 6f 6c 32 20 46 52 4f  ol2 + + col2 FRO
28b10 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab0..----..NU
28b20 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
28b30 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
28b40 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
28b50 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  * FROM tab2 WHER
28b60 45 20 2d 20 63 6f 6c 30 20 49 4e 20 28 20 63 6f  E - col0 IN ( co
28b70 6c 32 2c 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d  l2, col1 )..----
28b80 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
28b90 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
28ba0 37 39 20 2a 20 2d 20 30 20 2d 20 2d 20 2b 20 63  79 * - 0 - - + c
28bb0 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol1 AS col1 FROM
28bc0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d   tab1..----..14.
28bd0 0a 34 37 0d 0a 35 0d 0a 0d 0a 71 75 65 72 79 20  .47..5....query 
28be0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
28bf0 54 20 2b 20 34 38 20 46 52 4f 4d 20 74 61 62 30  T + 48 FROM tab0
28c00 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20   WHERE NOT col1 
28c10 3e 20 28 20 2b 20 37 35 20 29 0d 0a 2d 2d 2d 2d  > ( + 75 )..----
28c20 0d 0a 34 38 0d 0a 34 38 0d 0a 0d 0a 6f 6e 6c 79  ..48..48....only
28c30 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
28c40 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
28c50 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
28c60 6c 61 62 65 6c 2d 39 30 36 0d 0a 53 45 4c 45 43  label-906..SELEC
28c70 54 20 31 35 20 41 53 20 63 6f 6c 30 2c 20 2d 20  T 15 AS col0, - 
28c80 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f  COUNT( * ) AS co
28c90 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
28ca0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a  cor0..----..15..
28cb0 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  -3....skipif mys
28cc0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
28cd0 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
28ce0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 30 36 0d  wsort label-906.
28cf0 0a 53 45 4c 45 43 54 20 31 35 20 41 53 20 63 6f  .SELECT 15 AS co
28d00 6c 30 2c 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  l0, - COUNT ( * 
28d10 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
28d20 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
28d30 2d 0d 0a 31 35 0d 0a 2d 33 0d 0a 0d 0a 6f 6e 6c  -..15..-3....onl
28d40 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
28d50 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
28d60 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
28d70 6c 61 62 65 6c 2d 39 30 37 0d 0a 53 45 4c 45 43  label-907..SELEC
28d80 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 28 20 2a  T ALL + COUNT( *
28d90 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   ) col1 FROM tab
28da0 30 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  0 AS cor0 CROSS 
28db0 4a 4f 49 4e 20 74 61 62 30 20 63 6f 72 31 0d 0a  JOIN tab0 cor1..
28dc0 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 73 6b 69 70 69  ----..9....skipi
28dd0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
28de0 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66  mpatible..skipif
28df0 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
28e00 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
28e10 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
28e20 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
28e30 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
28e40 72 74 20 6c 61 62 65 6c 2d 39 30 37 0d 0a 53 45  rt label-907..SE
28e50 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54  LECT ALL + COUNT
28e60 20 28 20 2a 20 29 20 63 6f 6c 31 20 46 52 4f 4d   ( * ) col1 FROM
28e70 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 43 52   tab0 AS cor0 CR
28e80 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 63 6f  OSS JOIN tab0 co
28e90 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 6f  r1..----..9....o
28ea0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
28eb0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
28ec0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
28ed0 74 20 6c 61 62 65 6c 2d 39 30 38 0d 0a 53 45 4c  t label-908..SEL
28ee0 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  ECT + COUNT( * )
28ef0 20 2a 20 4d 49 4e 28 20 2b 20 32 30 20 29 20 2b   * MIN( + 20 ) +
28f00 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52   - COUNT( * ) FR
28f10 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
28f20 0a 2d 2d 2d 2d 0d 0a 35 37 0d 0a 0d 0a 73 6b 69  .----..57....ski
28f30 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
28f40 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
28f50 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
28f60 6c 2d 39 30 38 0d 0a 53 45 4c 45 43 54 20 2b 20  l-908..SELECT + 
28f70 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 4d 49  COUNT ( * ) * MI
28f80 4e 20 28 20 2b 20 32 30 20 29 20 2b 20 2d 20 43  N ( + 20 ) + - C
28f90 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20  OUNT ( * ) FROM 
28fa0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
28fb0 2d 2d 0d 0a 35 37 0d 0a 0d 0a 71 75 65 72 79 20  --..57....query 
28fc0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
28fd0 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ECT * FROM tab1 
28fe0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
28ff0 54 20 4e 55 4c 4c 20 3c 3d 20 2d 20 63 6f 6c 31  T NULL <= - col1
29000 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d   + col0..----...
29010 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
29020 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 37  ..SELECT ALL + 7
29030 30 20 2b 20 2b 20 39 34 20 46 52 4f 4d 20 74 61  0 + + 94 FROM ta
29040 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
29050 0d 0a 31 36 34 0d 0a 31 36 34 0d 0a 31 36 34 0d  ..164..164..164.
29060 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
29070 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
29080 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
29090 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
290a0 62 65 6c 2d 39 31 31 0d 0a 53 45 4c 45 43 54 20  bel-911..SELECT 
290b0 39 38 20 2b 20 2b 20 43 41 53 54 28 20 4e 55 4c  98 + + CAST( NUL
290c0 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52  L AS SIGNED ) FR
290d0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
290e0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
290f0 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  L..NULL....skipi
29100 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
29110 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
29120 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
29130 39 31 31 0d 0a 53 45 4c 45 43 54 20 39 38 20 2b  911..SELECT 98 +
29140 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   + CAST ( NULL A
29150 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d  S INTEGER ) FROM
29160 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
29170 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
29180 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
29190 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
291a0 20 2d 20 63 6f 6c 31 20 2d 20 2d 20 2d 20 63 6f   - col1 - - - co
291b0 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l2 AS col2 FROM 
291c0 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
291d0 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e  RE NOT NULL IS N
291e0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ULL..----....onl
291f0 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
29200 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
29210 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
29220 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 31  rowsort label-91
29230 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  3..SELECT ALL + 
29240 31 20 44 49 56 20 2d 20 2d 20 28 20 2d 20 63 6f  1 DIV - - ( - co
29250 6c 30 20 29 20 2b 20 2d 20 36 20 46 52 4f 4d 20  l0 ) + - 6 FROM 
29260 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
29270 2d 2d 0d 0a 2d 36 0d 0a 2d 36 0d 0a 2d 36 0d 0a  --..-6..-6..-6..
29280 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
29290 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
292a0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
292b0 20 6c 61 62 65 6c 2d 39 31 33 0d 0a 53 45 4c 45   label-913..SELE
292c0 43 54 20 41 4c 4c 20 2b 20 31 20 2f 20 2d 20 2d  CT ALL + 1 / - -
292d0 20 28 20 2d 20 63 6f 6c 30 20 29 20 2b 20 2d 20   ( - col0 ) + - 
292e0 36 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  6 FROM tab2 AS c
292f0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 0d 0a 2d  or0..----..-6..-
29300 36 0d 0a 2d 36 0d 0a 0d 0a 71 75 65 72 79 20 49  6..-6....query I
29310 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
29320 20 63 6f 6c 30 20 2b 20 2b 20 34 30 20 41 53 20   col0 + + 40 AS 
29330 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
29340 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32  S cor0..----..12
29350 35 0d 0a 31 33 31 0d 0a 39 31 0d 0a 0d 0a 73 6b  5..131..91....sk
29360 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
29370 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
29380 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
29390 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
293a0 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20  lumns..query II 
293b0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
293c0 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 2c  DISTINCT - col0,
293d0 20 2d 20 31 20 2b 20 2b 20 32 33 20 63 6f 6c 30   - 1 + + 23 col0
293e0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
293f0 0d 0a 2d 35 31 0d 0a 32 32 0d 0a 2d 38 35 0d 0a  ..-51..22..-85..
29400 32 32 0d 0a 2d 39 31 0d 0a 32 32 0d 0a 0d 0a 6f  22..-91..22....o
29410 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
29420 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
29430 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
29440 74 20 6c 61 62 65 6c 2d 39 31 36 0d 0a 53 45 4c  t label-916..SEL
29450 45 43 54 20 2b 20 31 33 20 2a 20 2d 20 2b 20 28  ECT + 13 * - + (
29460 20 4d 49 4e 28 20 44 49 53 54 49 4e 43 54 20 2d   MIN( DISTINCT -
29470 20 63 6f 6c 30 20 29 20 29 20 41 53 20 63 6f 6c   col0 ) ) AS col
29480 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
29490 2d 0d 0a 31 32 36 31 0d 0a 0d 0a 73 6b 69 70 69  -..1261....skipi
294a0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
294b0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
294c0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
294d0 39 31 36 0d 0a 53 45 4c 45 43 54 20 2b 20 31 33  916..SELECT + 13
294e0 20 2a 20 2d 20 2b 20 28 20 4d 49 4e 20 28 20 44   * - + ( MIN ( D
294f0 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20 29  ISTINCT - col0 )
29500 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
29510 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 36 31  tab0..----..1261
29520 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
29530 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
29540 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
29550 4e 4f 54 20 28 20 2d 20 63 6f 6c 31 20 49 53 20  NOT ( - col1 IS 
29560 4e 4f 54 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d  NOT NULL )..----
29570 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
29580 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
29590 20 2b 20 31 37 20 41 53 20 63 6f 6c 32 2c 20 63   + 17 AS col2, c
295a0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol0 FROM tab0..-
295b0 2d 2d 2d 0d 0a 31 37 0d 0a 31 35 0d 0a 31 37 0d  ---..17..15..17.
295c0 0a 38 37 0d 0a 31 37 0d 0a 39 37 0d 0a 0d 0a 6f  .87..17..97....o
295d0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
295e0 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
295f0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
29600 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
29610 39 31 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  919..SELECT DIST
29620 49 4e 43 54 20 43 41 53 54 28 20 63 6f 6c 31 20  INCT CAST( col1 
29630 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2d 20  AS SIGNED ) + - 
29640 34 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  40 FROM tab0..--
29650 2d 2d 0d 0a 2d 31 39 0d 0a 2d 33 39 0d 0a 34 31  --..-19..-39..41
29660 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
29670 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
29680 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
29690 72 74 20 6c 61 62 65 6c 2d 39 31 39 0d 0a 53 45  rt label-919..SE
296a0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 41  LECT DISTINCT CA
296b0 53 54 20 28 20 63 6f 6c 31 20 41 53 20 49 4e 54  ST ( col1 AS INT
296c0 45 47 45 52 20 29 20 2b 20 2d 20 34 30 20 46 52  EGER ) + - 40 FR
296d0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
296e0 31 39 0d 0a 2d 33 39 0d 0a 34 31 0d 0a 0d 0a 73  19..-39..41....s
296f0 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
29700 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
29710 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
29720 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
29730 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
29740 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
29750 44 49 53 54 49 4e 43 54 20 2d 20 35 38 20 63 6f  DISTINCT - 58 co
29760 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l0 FROM tab2..--
29770 2d 2d 0d 0a 2d 35 38 0d 0a 0d 0a 6f 6e 6c 79 69  --..-58....onlyi
29780 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
29790 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65  yntax: aggregate
297a0 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
297b0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
297c0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 32  rowsort label-92
297d0 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  1..SELECT DISTIN
297e0 43 54 20 2d 20 2d 20 28 20 2d 20 43 4f 55 4e 54  CT - - ( - COUNT
297f0 28 20 2a 20 29 20 29 20 2d 20 43 41 53 54 28 20  ( * ) ) - CAST( 
29800 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  + COUNT( * ) AS 
29810 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 30  SIGNED ) AS col0
29820 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
29830 20 4e 55 4c 4c 20 3c 3d 20 2b 20 63 6f 6c 30 0d   NULL <= + col0.
29840 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .----..0....skip
29850 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
29860 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
29870 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
29880 2d 39 32 31 0d 0a 53 45 4c 45 43 54 20 44 49 53  -921..SELECT DIS
29890 54 49 4e 43 54 20 2d 20 2d 20 28 20 2d 20 43 4f  TINCT - - ( - CO
298a0 55 4e 54 20 28 20 2a 20 29 20 29 20 2d 20 43 41  UNT ( * ) ) - CA
298b0 53 54 20 28 20 2b 20 43 4f 55 4e 54 20 28 20 2a  ST ( + COUNT ( *
298c0 20 29 20 41 53 20 49 4e 54 45 47 45 52 20 29 20   ) AS INTEGER ) 
298d0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
298e0 32 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c 3d 20  2 WHERE NULL <= 
298f0 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  + col0..----..0.
29900 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
29910 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
29920 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
29930 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 32 32 0d  wsort label-922.
29940 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 28 20  .SELECT ALL + ( 
29950 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 46 52 4f  COUNT( * ) ) FRO
29960 4d 20 74 61 62 32 20 57 48 45 52 45 20 28 20 2d  M tab2 WHERE ( -
29970 20 34 31 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c   41 ) IS NOT NUL
29980 4c 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b  L..----..3....sk
29990 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
299a0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
299b0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
299c0 65 6c 2d 39 32 32 0d 0a 53 45 4c 45 43 54 20 41  el-922..SELECT A
299d0 4c 4c 20 2b 20 28 20 43 4f 55 4e 54 20 28 20 2a  LL + ( COUNT ( *
299e0 20 29 20 29 20 46 52 4f 4d 20 74 61 62 32 20 57   ) ) FROM tab2 W
299f0 48 45 52 45 20 28 20 2d 20 34 31 20 29 20 49 53  HERE ( - 41 ) IS
29a00 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
29a10 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .3....query I ro
29a20 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
29a30 53 54 49 4e 43 54 20 2b 20 2d 20 63 6f 6c 30 20  STINCT + - col0 
29a40 2b 20 2b 20 33 30 20 46 52 4f 4d 20 74 61 62 32  + + 30 FROM tab2
29a50 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
29a60 2d 31 36 0d 0a 2d 33 34 0d 0a 2d 34 35 0d 0a 0d  -16..-34..-45...
29a70 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
29a80 0d 0a 53 45 4c 45 43 54 20 2d 20 36 20 2b 20 2d  ..SELECT - 6 + -
29a90 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 2b 20 63 6f   - col2 * - + co
29aa0 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l1 AS col2 FROM 
29ab0 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
29ac0 52 45 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e  RE NULL IS NOT N
29ad0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
29ae0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
29af0 4c 45 43 54 20 2d 20 36 20 2b 20 2b 20 2b 20 35  LECT - 6 + + + 5
29b00 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  0 AS col1 FROM t
29b10 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
29b20 2d 0d 0a 34 34 0d 0a 34 34 0d 0a 34 34 0d 0a 0d  -..44..44..44...
29b30 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
29b40 0d 0a 53 45 4c 45 43 54 20 2b 20 37 37 20 2b 20  ..SELECT + 77 + 
29b50 2b 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31  + - col0 AS col1
29b60 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
29b70 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 2d  r0..----..-10..-
29b80 32 30 0d 0a 36 32 0d 0a 0d 0a 71 75 65 72 79 20  20..62....query 
29b90 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
29ba0 43 54 20 2b 20 2b 20 33 35 20 2a 20 2b 20 2d 20  CT + + 35 * + - 
29bb0 63 6f 6c 32 20 41 53 20 63 6f 6c 32 2c 20 33 32  col2 AS col2, 32
29bc0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
29bd0 62 32 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53  b2 WHERE NULL IS
29be0 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
29bf0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
29c00 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
29c10 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
29c20 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 32 38 0d  wsort label-928.
29c30 0a 53 45 4c 45 43 54 20 2d 20 53 55 4d 28 20 41  .SELECT - SUM( A
29c40 4c 4c 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74  LL col0 ) FROM t
29c50 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
29c60 45 20 2d 20 35 33 20 3c 3e 20 2d 20 2d 20 31 31  E - 53 <> - - 11
29c70 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32 37 0d 0a 0d 0a  ..----..-227....
29c80 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
29c90 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
29ca0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
29cb0 61 62 65 6c 2d 39 32 38 0d 0a 53 45 4c 45 43 54  abel-928..SELECT
29cc0 20 2d 20 53 55 4d 20 28 20 41 4c 4c 20 63 6f 6c   - SUM ( ALL col
29cd0 30 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  0 ) FROM tab1 AS
29ce0 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20 35 33   cor0 WHERE - 53
29cf0 20 3c 3e 20 2d 20 2d 20 31 31 0d 0a 2d 2d 2d 2d   <> - - 11..----
29d00 0d 0a 2d 32 32 37 0d 0a 0d 0a 71 75 65 72 79 20  ..-227....query 
29d10 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
29d20 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 37  T DISTINCT + + 7
29d30 36 20 2a 20 2b 20 63 6f 6c 31 20 2f 20 2d 20 28  6 * + col1 / - (
29d40 20 2b 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74   + col1 ) FROM t
29d50 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
29d60 45 20 4e 4f 54 20 63 6f 6c 30 20 2a 20 2b 20 2d  E NOT col0 * + -
29d70 20 28 20 2d 20 36 30 20 29 20 49 53 20 4e 4f 54   ( - 60 ) IS NOT
29d80 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   NULL..----....o
29d90 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
29da0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
29db0 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
29dc0 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
29dd0 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
29de0 65 6c 2d 39 33 30 0d 0a 53 45 4c 45 43 54 20 43  el-930..SELECT C
29df0 4f 55 4e 54 28 20 2a 20 29 20 44 49 56 20 2d 20  OUNT( * ) DIV - 
29e00 36 33 20 41 53 20 63 6f 6c 32 2c 20 4d 49 4e 28  63 AS col2, MIN(
29e10 20 41 4c 4c 20 2b 20 28 20 63 6f 6c 31 20 29 20   ALL + ( col1 ) 
29e20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
29e30 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab1 cor0..----..
29e40 30 0d 0a 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  0..5....skipif m
29e50 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
29e60 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
29e70 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33  rowsort label-93
29e80 30 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20  0..SELECT COUNT 
29e90 28 20 2a 20 29 20 2f 20 2d 20 36 33 20 41 53 20  ( * ) / - 63 AS 
29ea0 63 6f 6c 32 2c 20 4d 49 4e 20 28 20 41 4c 4c 20  col2, MIN ( ALL 
29eb0 2b 20 28 20 63 6f 6c 31 20 29 20 29 20 41 53 20  + ( col1 ) ) AS 
29ec0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 63  col1 FROM tab1 c
29ed0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 35 0d  or0..----..0..5.
29ee0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
29ef0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
29f00 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
29f10 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
29f20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 4e 4f 54  NOT ( NULL ) NOT
29f30 20 42 45 54 57 45 45 4e 20 28 20 28 20 2b 20 38   BETWEEN ( ( + 8
29f40 20 29 20 29 20 41 4e 44 20 32 34 0d 0a 2d 2d 2d   ) ) AND 24..---
29f50 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
29f60 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
29f70 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
29f80 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33  rowsort label-93
29f90 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  2..SELECT ALL - 
29fa0 36 35 20 2b 20 2d 20 2d 20 43 4f 55 4e 54 28 20  65 + - - COUNT( 
29fb0 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20 57 48  * ) FROM tab0 WH
29fc0 45 52 45 20 28 20 2b 20 35 37 20 29 20 49 53 20  ERE ( + 57 ) IS 
29fd0 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
29fe0 2d 36 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -62....skipif my
29ff0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2a000 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
2a010 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33 32 0d  wsort label-932.
2a020 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 36 35  .SELECT ALL - 65
2a030 20 2b 20 2d 20 2d 20 43 4f 55 4e 54 20 28 20 2a   + - - COUNT ( *
2a040 20 29 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   ) FROM tab0 WHE
2a050 52 45 20 28 20 2b 20 35 37 20 29 20 49 53 20 4e  RE ( + 57 ) IS N
2a060 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d  OT NULL..----..-
2a070 36 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  62....query I ro
2a080 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 39 38  wsort..SELECT 98
2a090 20 2a 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20 63   * + + col0 AS c
2a0a0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
2a0b0 2d 2d 2d 0d 0a 34 35 30 38 0d 0a 36 32 37 32 0d  ---..4508..6272.
2a0c0 0a 37 33 35 30 0d 0a 0d 0a 71 75 65 72 79 20 49  .7350....query I
2a0d0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
2a0e0 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
2a0f0 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 63 6f  OM tab2 WHERE co
2a100 6c 31 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 63  l1 NOT BETWEEN c
2a110 6f 6c 30 20 41 4e 44 20 2b 20 31 36 0d 0a 2d 2d  ol0 AND + 16..--
2a120 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
2a130 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61  hing to 75c998aa
2a140 35 33 61 63 38 33 32 31 38 63 62 66 32 66 65 62  53ac83218cbf2feb
2a150 39 36 32 64 30 61 34 39 0d 0a 0d 0a 6f 6e 6c 79  962d0a49....only
2a160 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
2a170 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
2a180 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
2a190 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33 35  owsort label-935
2a1a0 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20  ..SELECT - col2 
2a1b0 2a 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  * CAST( NULL AS 
2a1c0 53 49 47 4e 45 44 20 29 20 2a 20 63 6f 6c 30 20  SIGNED ) * col0 
2a1d0 2a 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32  * + col2 AS col2
2a1e0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
2a1f0 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
2a200 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
2a210 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2a220 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2a230 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33 35 0d 0a  sort label-935..
2a240 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2a 20  SELECT - col2 * 
2a250 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
2a260 4e 54 45 47 45 52 20 29 20 2a 20 63 6f 6c 30 20  NTEGER ) * col0 
2a270 2a 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32  * + col2 AS col2
2a280 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
2a290 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
2a2a0 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  LL....onlyif mys
2a2b0 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
2a2c0 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
2a2d0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2a2e0 20 6c 61 62 65 6c 2d 39 33 36 0d 0a 53 45 4c 45   label-936..SELE
2a2f0 43 54 20 41 4c 4c 20 2d 20 43 41 53 54 28 20 4e  CT ALL - CAST( N
2a300 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
2a310 2f 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 2d 20 31  / - col1 * - - 1
2a320 38 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  8 AS col1 FROM t
2a330 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
2a340 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
2a350 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
2a360 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2a370 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
2a380 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33 36 0d  wsort label-936.
2a390 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 41  .SELECT ALL - CA
2a3a0 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
2a3b0 45 47 45 52 20 29 20 2f 20 2d 20 63 6f 6c 31 20  EGER ) / - col1 
2a3c0 2a 20 2d 20 2d 20 31 38 20 41 53 20 63 6f 6c 31  * - - 18 AS col1
2a3d0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
2a3e0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
2a3f0 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e  NULL..NULL....on
2a400 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
2a410 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
2a420 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2a430 20 6c 61 62 65 6c 2d 39 33 37 0d 0a 53 45 4c 45   label-937..SELE
2a440 43 54 20 41 4c 4c 20 2d 20 34 38 20 2a 20 2d 20  CT ALL - 48 * - 
2a450 31 37 20 2b 20 2d 20 53 55 4d 28 20 2d 20 63 6f  17 + - SUM( - co
2a460 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41  l1 ) FROM tab0 A
2a470 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
2a480 20 2b 20 39 39 20 2b 20 2b 20 63 6f 6c 32 20 3c   + 99 + + col2 <
2a490 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 39   + col1..----..9
2a4a0 31 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  19....skipif mys
2a4b0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2a4c0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2a4d0 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33 37 0d 0a  sort label-937..
2a4e0 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 34 38 20  SELECT ALL - 48 
2a4f0 2a 20 2d 20 31 37 20 2b 20 2d 20 53 55 4d 20 28  * - 17 + - SUM (
2a500 20 2d 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74   - col1 ) FROM t
2a510 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
2a520 45 20 4e 4f 54 20 2b 20 39 39 20 2b 20 2b 20 63  E NOT + 99 + + c
2a530 6f 6c 32 20 3c 20 2b 20 63 6f 6c 31 0d 0a 2d 2d  ol2 < + col1..--
2a540 2d 2d 0d 0a 39 31 39 0d 0a 0d 0a 6f 6e 6c 79 69  --..919....onlyi
2a550 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
2a560 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
2a570 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2a580 62 65 6c 2d 39 33 38 0d 0a 53 45 4c 45 43 54 20  bel-938..SELECT 
2a590 2d 20 2d 20 53 55 4d 28 20 44 49 53 54 49 4e 43  - - SUM( DISTINC
2a5a0 54 20 2d 20 34 39 20 29 20 46 52 4f 4d 20 74 61  T - 49 ) FROM ta
2a5b0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
2a5c0 0d 0a 2d 34 39 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-49....skipif 
2a5d0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2a5e0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2a5f0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33  rowsort label-93
2a600 38 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 53 55  8..SELECT - - SU
2a610 4d 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 34  M ( DISTINCT - 4
2a620 39 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  9 ) FROM tab1 AS
2a630 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 39   cor0..----..-49
2a640 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2a650 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20  ort..SELECT - ( 
2a660 39 39 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  99 ) AS col1 FRO
2a670 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39  M tab0..----..-9
2a680 39 0d 0a 2d 39 39 0d 0a 2d 39 39 0d 0a 0d 0a 6f  9..-99..-99....o
2a690 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
2a6a0 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
2a6b0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
2a6c0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2a6d0 39 34 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  940..SELECT DIST
2a6e0 49 4e 43 54 20 43 41 53 54 28 20 2d 20 2d 20 43  INCT CAST( - - C
2a6f0 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
2a700 4e 45 44 20 29 20 41 53 20 53 49 47 4e 45 44 20  NED ) AS SIGNED 
2a710 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
2a720 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  -..NULL....skipi
2a730 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2a740 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2a750 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2a760 39 34 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  940..SELECT DIST
2a770 49 4e 43 54 20 43 41 53 54 20 28 20 2d 20 2d 20  INCT CAST ( - - 
2a780 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
2a790 4e 54 45 47 45 52 20 29 20 41 53 20 49 4e 54 45  NTEGER ) AS INTE
2a7a0 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 30 0d  GER ) FROM tab0.
2a7b0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f  .----..NULL....o
2a7c0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
2a7d0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
2a7e0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2a7f0 74 20 6c 61 62 65 6c 2d 39 34 31 0d 0a 53 45 4c  t label-941..SEL
2a800 45 43 54 20 41 4c 4c 20 2b 20 2d 20 43 4f 55 4e  ECT ALL + - COUN
2a810 54 28 20 41 4c 4c 20 2d 20 38 36 20 29 20 46 52  T( ALL - 86 ) FR
2a820 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
2a830 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20  CROSS JOIN tab1 
2a840 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor1..----..-
2a850 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
2a860 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2a870 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2a880 6f 72 74 20 6c 61 62 65 6c 2d 39 34 31 0d 0a 53  ort label-941..S
2a890 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 43 4f  ELECT ALL + - CO
2a8a0 55 4e 54 20 28 20 41 4c 4c 20 2d 20 38 36 20 29  UNT ( ALL - 86 )
2a8b0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
2a8c0 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
2a8d0 62 31 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d  b1 AS cor1..----
2a8e0 0d 0a 2d 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..-9....query II
2a8f0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2a900 20 41 4c 4c 20 63 6f 6c 31 20 2b 20 2b 20 2b 20   ALL col1 + + + 
2a910 63 6f 6c 30 2c 20 2b 20 37 37 20 41 53 20 63 6f  col0, + 77 AS co
2a920 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
2a930 2d 2d 0d 0a 31 33 38 0d 0a 37 37 0d 0a 36 35 0d  --..138..77..65.
2a940 0a 37 37 0d 0a 39 30 0d 0a 37 37 0d 0a 0d 0a 73  .77..90..77....s
2a950 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
2a960 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
2a970 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
2a980 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
2a990 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49  olumns..query II
2a9a0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2a9b0 20 44 49 53 54 49 4e 43 54 20 2d 20 36 38 2c 20   DISTINCT - 68, 
2a9c0 63 6f 6c 32 20 63 6f 6c 31 20 46 52 4f 4d 20 74  col2 col1 FROM t
2a9d0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
2a9e0 2d 0d 0a 2d 36 38 0d 0a 31 30 0d 0a 2d 36 38 0d  -..-68..10..-68.
2a9f0 0a 34 37 0d 0a 2d 36 38 0d 0a 39 39 0d 0a 0d 0a  .47..-68..99....
2aa00 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
2aa10 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2aa20 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2aa30 72 74 20 6c 61 62 65 6c 2d 39 34 34 0d 0a 53 45  rt label-944..SE
2aa40 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
2aa50 53 55 4d 28 20 2d 20 31 30 20 29 20 2a 20 2b 20  SUM( - 10 ) * + 
2aa60 38 39 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  89 AS col2 FROM 
2aa70 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
2aa80 2d 2d 0d 0a 32 36 37 30 0d 0a 0d 0a 73 6b 69 70  --..2670....skip
2aa90 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2aaa0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2aab0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2aac0 2d 39 34 34 0d 0a 53 45 4c 45 43 54 20 44 49 53  -944..SELECT DIS
2aad0 54 49 4e 43 54 20 2d 20 53 55 4d 20 28 20 2d 20  TINCT - SUM ( - 
2aae0 31 30 20 29 20 2a 20 2b 20 38 39 20 41 53 20 63  10 ) * + 89 AS c
2aaf0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
2ab00 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 36 37   cor0..----..267
2ab10 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  0....query III r
2ab20 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
2ab30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
2ab40 72 30 20 57 48 45 52 45 20 4e 4f 54 20 39 38 20  r0 WHERE NOT 98 
2ab50 2b 20 2b 20 38 38 20 49 53 20 4e 4f 54 20 4e 55  + + 88 IS NOT NU
2ab60 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  LL..----....only
2ab70 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
2ab80 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
2ab90 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
2aba0 6c 61 62 65 6c 2d 39 34 36 0d 0a 53 45 4c 45 43  label-946..SELEC
2abb0 54 20 41 4c 4c 20 38 39 20 63 6f 6c 30 2c 20 28  T ALL 89 col0, (
2abc0 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 29 20   - COUNT( * ) ) 
2abd0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2abe0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
2abf0 0a 38 39 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69  .89..-3....skipi
2ac00 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2ac10 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66  mpatible..skipif
2ac20 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
2ac30 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
2ac40 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
2ac50 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
2ac60 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  s..query II rows
2ac70 6f 72 74 20 6c 61 62 65 6c 2d 39 34 36 0d 0a 53  ort label-946..S
2ac80 45 4c 45 43 54 20 41 4c 4c 20 38 39 20 63 6f 6c  ELECT ALL 89 col
2ac90 30 2c 20 28 20 2d 20 43 4f 55 4e 54 20 28 20 2a  0, ( - COUNT ( *
2aca0 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   ) ) AS col1 FRO
2acb0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
2acc0 2d 2d 2d 2d 0d 0a 38 39 0d 0a 2d 33 0d 0a 0d 0a  ----..89..-3....
2acd0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
2ace0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2acf0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2ad00 72 74 20 6c 61 62 65 6c 2d 39 34 37 0d 0a 53 45  rt label-947..SE
2ad10 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54  LECT ALL - COUNT
2ad20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ( * ) AS col0 FR
2ad30 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
2ad40 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49  WHERE NOT NULL I
2ad50 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
2ad60 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..-3....skipif m
2ad70 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2ad80 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
2ad90 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 34 37  owsort label-947
2ada0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43  ..SELECT ALL - C
2adb0 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
2adc0 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
2add0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  cor0 WHERE NOT N
2ade0 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ULL IS NOT NULL.
2adf0 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75 65  .----..-3....que
2ae00 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2ae10 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2b 20 28 20  LECT - col0 + ( 
2ae20 2b 20 2b 20 34 39 20 29 20 46 52 4f 4d 20 74 61  + + 49 ) FROM ta
2ae30 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 2d 33  b1..----..-2..-3
2ae40 36 0d 0a 2d 34 32 0d 0a 0d 0a 6f 6e 6c 79 69 66  6..-42....onlyif
2ae50 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
2ae60 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
2ae70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
2ae80 73 6f 72 74 20 6c 61 62 65 6c 2d 39 34 39 0d 0a  sort label-949..
2ae90 53 45 4c 45 43 54 20 33 30 20 2b 20 2b 20 43 41  SELECT 30 + + CA
2aea0 53 54 28 20 2d 20 2d 20 28 20 2b 20 2b 20 63 6f  ST( - - ( + + co
2aeb0 6c 32 20 29 20 41 53 20 53 49 47 4e 45 44 20 29  l2 ) AS SIGNED )
2aec0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
2aed0 0d 0a 35 33 0d 0a 37 30 0d 0a 38 38 0d 0a 0d 0a  ..53..70..88....
2aee0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2aef0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2af00 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2af10 61 62 65 6c 2d 39 34 39 0d 0a 53 45 4c 45 43 54  abel-949..SELECT
2af20 20 33 30 20 2b 20 2b 20 43 41 53 54 20 28 20 2d   30 + + CAST ( -
2af30 20 2d 20 28 20 2b 20 2b 20 63 6f 6c 32 20 29 20   - ( + + col2 ) 
2af40 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f  AS INTEGER ) FRO
2af50 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 33  M tab2..----..53
2af60 0d 0a 37 30 0d 0a 38 38 0d 0a 0d 0a 71 75 65 72  ..70..88....quer
2af70 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
2af80 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
2af90 30 20 57 48 45 52 45 20 2d 20 2d 20 63 6f 6c 30  0 WHERE - - col0
2afa0 20 3c 3d 20 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d   <= - col0..----
2afb0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2afc0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20  ort..SELECT + ( 
2afd0 2d 20 63 6f 6c 32 20 29 20 2b 20 2b 20 35 36 20  - col2 ) + + 56 
2afe0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
2aff0 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 0d 0a 2d 33  1..----..-12..-3
2b000 0d 0a 2d 34 30 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-40....query I
2b010 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2b020 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30   DISTINCT - col0
2b030 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 2d 20   + + col1 + - - 
2b040 33 33 20 2b 20 33 30 20 46 52 4f 4d 20 74 61 62  33 + 30 FROM tab
2b050 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 2d 33 33  0..----..-3..-33
2b060 0d 0a 31 32 39 0d 0a 0d 0a 71 75 65 72 79 20 49  ..129....query I
2b070 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
2b080 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
2b090 62 31 20 63 6f 72 30 20 57 48 45 52 45 20 28 20  b1 cor0 WHERE ( 
2b0a0 4e 55 4c 4c 20 29 20 3c 3d 20 2b 20 38 31 0d 0a  NULL ) <= + 81..
2b0b0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
2b0c0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2b0d0 2b 20 39 32 20 46 52 4f 4d 20 74 61 62 30 20 41  + 92 FROM tab0 A
2b0e0 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e  S cor0 WHERE ( N
2b0f0 55 4c 4c 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c  ULL ) IS NOT NUL
2b100 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
2b110 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2b120 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 2a 20  CT ALL - col0 * 
2b130 63 6f 6c 30 20 2d 20 2b 20 63 6f 6c 32 20 2d 20  col0 - + col2 - 
2b140 2d 20 2d 20 28 20 2b 20 2b 20 63 6f 6c 31 20 29  - - ( + + col1 )
2b150 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
2b160 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
2b170 0d 0a 2d 32 37 31 31 0d 0a 2d 37 32 38 39 0d 0a  ..-2711..-7289..
2b180 2d 38 33 39 36 0d 0a 0d 0a 71 75 65 72 79 20 49  -8396....query I
2b190 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
2b1a0 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
2b1b0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
2b1c0 57 48 45 52 45 20 32 31 20 3e 3d 20 2d 20 2b 20  WHERE 21 >= - + 
2b1d0 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 30 0d 0a 2d  col2 * + col0..-
2b1e0 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
2b1f0 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31  shing to c6c0a41
2b200 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31  11b36d04dbc811a1
2b210 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65  1e4d54cad....que
2b220 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2b230 4c 45 43 54 20 41 4c 4c 20 2b 20 35 33 20 2a 20  LECT ALL + 53 * 
2b240 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
2b250 2d 2d 2d 2d 0d 0a 32 34 33 38 0d 0a 33 33 39 32  ----..2438..3392
2b260 0d 0a 33 39 37 35 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..3975....onlyif
2b270 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
2b280 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
2b290 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
2b2a0 73 6f 72 74 20 6c 61 62 65 6c 2d 39 35 38 0d 0a  sort label-958..
2b2b0 53 45 4c 45 43 54 20 2d 20 43 41 53 54 28 20 2d  SELECT - CAST( -
2b2c0 20 2d 20 63 6f 6c 32 20 41 53 20 53 49 47 4e 45   - col2 AS SIGNE
2b2d0 44 20 29 20 2a 20 2b 20 37 30 20 46 52 4f 4d 20  D ) * + 70 FROM 
2b2e0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 31 33  tab1..----..-413
2b2f0 30 0d 0a 2d 34 37 36 30 0d 0a 2d 36 37 32 30 0d  0..-4760..-6720.
2b300 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2b310 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2b320 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2b330 74 20 6c 61 62 65 6c 2d 39 35 38 0d 0a 53 45 4c  t label-958..SEL
2b340 45 43 54 20 2d 20 43 41 53 54 20 28 20 2d 20 2d  ECT - CAST ( - -
2b350 20 63 6f 6c 32 20 41 53 20 49 4e 54 45 47 45 52   col2 AS INTEGER
2b360 20 29 20 2a 20 2b 20 37 30 20 46 52 4f 4d 20 74   ) * + 70 FROM t
2b370 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 31 33 30  ab1..----..-4130
2b380 0d 0a 2d 34 37 36 30 0d 0a 2d 36 37 32 30 0d 0a  ..-4760..-6720..
2b390 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2b3a0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2b3b0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
2b3c0 73 6f 72 74 20 6c 61 62 65 6c 2d 39 35 39 0d 0a  sort label-959..
2b3d0 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28 20  SELECT + COUNT( 
2b3e0 2a 20 29 20 2d 20 2b 20 32 20 46 52 4f 4d 20 74  * ) - + 2 FROM t
2b3f0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a  ab2..----..1....
2b400 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2b410 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2b420 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2b430 61 62 65 6c 2d 39 35 39 0d 0a 53 45 4c 45 43 54  abel-959..SELECT
2b440 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2d   + COUNT ( * ) -
2b450 20 2b 20 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a   + 2 FROM tab2..
2b460 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 6f 6e 6c 79 69  ----..1....onlyi
2b470 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
2b480 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
2b490 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2b4a0 62 65 6c 2d 39 36 30 0d 0a 53 45 4c 45 43 54 20  bel-960..SELECT 
2b4b0 2b 20 2b 20 35 38 20 2a 20 2b 20 2d 20 4d 49 4e  + + 58 * + - MIN
2b4c0 28 20 2b 20 36 32 20 29 20 2a 20 2d 20 31 35 20  ( + 62 ) * - 15 
2b4d0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
2b4e0 32 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  2 cor0 CROSS JOI
2b4f0 4e 20 74 61 62 32 20 63 6f 72 31 0d 0a 2d 2d 2d  N tab2 cor1..---
2b500 2d 0d 0a 35 33 39 34 30 0d 0a 0d 0a 73 6b 69 70  -..53940....skip
2b510 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2b520 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2b530 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2b540 2d 39 36 30 0d 0a 53 45 4c 45 43 54 20 2b 20 2b  -960..SELECT + +
2b550 20 35 38 20 2a 20 2b 20 2d 20 4d 49 4e 20 28 20   58 * + - MIN ( 
2b560 2b 20 36 32 20 29 20 2a 20 2d 20 31 35 20 41 53  + 62 ) * - 15 AS
2b570 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
2b580 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
2b590 74 61 62 32 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d  tab2 cor1..----.
2b5a0 0a 35 33 39 34 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  .53940....onlyif
2b5b0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
2b5c0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
2b5d0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2b5e0 65 6c 2d 39 36 31 0d 0a 53 45 4c 45 43 54 20 44  el-961..SELECT D
2b5f0 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 28  ISTINCT - COUNT(
2b600 20 2a 20 29 20 2b 20 2d 20 33 34 20 46 52 4f 4d   * ) + - 34 FROM
2b610 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 37   tab2..----..-37
2b620 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2b630 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2b640 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
2b650 72 74 20 6c 61 62 65 6c 2d 39 36 31 0d 0a 53 45  rt label-961..SE
2b660 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
2b670 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2d 20  COUNT ( * ) + - 
2b680 33 34 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  34 FROM tab2..--
2b690 2d 2d 0d 0a 2d 33 37 0d 0a 0d 0a 6f 6e 6c 79 69  --..-37....onlyi
2b6a0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
2b6b0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
2b6c0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2b6d0 62 65 6c 2d 39 36 32 0d 0a 53 45 4c 45 43 54 20  bel-962..SELECT 
2b6e0 44 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54  DISTINCT + COUNT
2b6f0 28 20 2a 20 29 20 2a 20 2b 20 2d 20 28 20 2d 20  ( * ) * + - ( - 
2b700 2b 20 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20  + MAX( DISTINCT 
2b710 2d 20 63 6f 6c 30 20 29 20 29 20 63 6f 6c 31 20  - col0 ) ) col1 
2b720 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
2b730 0a 2d 34 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-45....skipif m
2b740 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2b750 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
2b760 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
2b770 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
2b780 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
2b790 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
2b7a0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2b7b0 6c 61 62 65 6c 2d 39 36 32 0d 0a 53 45 4c 45 43  label-962..SELEC
2b7c0 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 4f 55  T DISTINCT + COU
2b7d0 4e 54 20 28 20 2a 20 29 20 2a 20 2b 20 2d 20 28  NT ( * ) * + - (
2b7e0 20 2d 20 2b 20 4d 41 58 20 28 20 44 49 53 54 49   - + MAX ( DISTI
2b7f0 4e 43 54 20 2d 20 63 6f 6c 30 20 29 20 29 20 63  NCT - col0 ) ) c
2b800 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
2b810 2d 2d 2d 0d 0a 2d 34 35 0d 0a 0d 0a 71 75 65 72  ---..-45....quer
2b820 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2b830 45 43 54 20 41 4c 4c 20 2d 20 36 38 20 2a 20 2d  ECT ALL - 68 * -
2b840 20 34 38 20 46 52 4f 4d 20 74 61 62 30 20 41 53   48 FROM tab0 AS
2b850 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 32 36   cor0..----..326
2b860 34 0d 0a 33 32 36 34 0d 0a 33 32 36 34 0d 0a 0d  4..3264..3264...
2b870 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2b880 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
2b890 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
2b8a0 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
2b8b0 65 6c 2d 39 36 34 0d 0a 53 45 4c 45 43 54 20 63  el-964..SELECT c
2b8c0 6f 6c 30 20 44 49 56 20 2b 20 63 6f 6c 30 20 41  ol0 DIV + col0 A
2b8d0 53 20 63 6f 6c 32 2c 20 63 6f 6c 30 20 41 53 20  S col2, col0 AS 
2b8e0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
2b8f0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
2b900 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c   NULL IS NOT NUL
2b910 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31 35 0d 0a  L..----..1..15..
2b920 31 0d 0a 38 37 0d 0a 31 0d 0a 39 37 0d 0a 0d 0a  1..87..1..97....
2b930 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2b940 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2b950 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
2b960 6c 61 62 65 6c 2d 39 36 34 0d 0a 53 45 4c 45 43  label-964..SELEC
2b970 54 20 63 6f 6c 30 20 2f 20 2b 20 63 6f 6c 30 20  T col0 / + col0 
2b980 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 30 20 41 53  AS col2, col0 AS
2b990 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
2b9a0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
2b9b0 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55  T NULL IS NOT NU
2b9c0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31 35 0d  LL..----..1..15.
2b9d0 0a 31 0d 0a 38 37 0d 0a 31 0d 0a 39 37 0d 0a 0d  .1..87..1..97...
2b9e0 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
2b9f0 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
2ba00 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
2ba10 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
2ba20 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
2ba30 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2ba40 54 20 2b 20 2b 20 28 20 2b 20 2d 20 35 33 20 29  T + + ( + - 53 )
2ba50 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
2ba60 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
2ba70 35 33 0d 0a 2d 35 33 0d 0a 2d 35 33 0d 0a 0d 0a  53..-53..-53....
2ba80 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2ba90 0a 53 45 4c 45 43 54 20 33 34 20 2b 20 2d 20 31  .SELECT 34 + - 1
2baa0 39 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  9 AS col0 FROM t
2bab0 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
2bac0 45 20 4e 4f 54 20 2d 20 63 6f 6c 30 20 2a 20 2b  E NOT - col0 * +
2bad0 20 33 34 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d   34 IS NOT NULL.
2bae0 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
2baf0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2bb00 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   + col0 FROM tab
2bb10 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
2bb20 4e 4f 54 20 39 30 20 49 53 20 4e 55 4c 4c 0d 0a  NOT 90 IS NULL..
2bb30 2d 2d 2d 2d 0d 0a 34 36 0d 0a 36 34 0d 0a 37 35  ----..46..64..75
2bb40 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2bb50 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
2bb60 2b 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30  + + col1 AS col0
2bb70 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
2bb80 20 28 20 4e 4f 54 20 2b 20 34 31 20 2d 20 2b 20   ( NOT + 41 - + 
2bb90 28 20 2b 20 63 6f 6c 32 20 29 20 2b 20 63 6f 6c  ( + col2 ) + col
2bba0 32 20 2a 20 36 30 20 2a 20 2d 20 32 39 20 49 53  2 * 60 * - 29 IS
2bbb0 20 4e 4f 54 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d   NOT NULL )..---
2bbc0 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
2bbd0 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
2bbe0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2bbf0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
2bc00 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2bc10 74 20 6c 61 62 65 6c 2d 39 36 39 0d 0a 53 45 4c  t label-969..SEL
2bc20 45 43 54 20 2d 20 43 41 53 54 28 20 4d 49 4e 28  ECT - CAST( MIN(
2bc30 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 29 20 41 53   ALL + col0 ) AS
2bc40 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c   SIGNED ) AS col
2bc50 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  2 FROM tab2..---
2bc60 2d 0d 0a 2d 34 36 0d 0a 0d 0a 73 6b 69 70 69 66  -..-46....skipif
2bc70 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2bc80 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2bc90 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2bca0 36 39 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53  69..SELECT - CAS
2bcb0 54 20 28 20 4d 49 4e 20 28 20 41 4c 4c 20 2b 20  T ( MIN ( ALL + 
2bcc0 63 6f 6c 30 20 29 20 41 53 20 49 4e 54 45 47 45  col0 ) AS INTEGE
2bcd0 52 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  R ) AS col2 FROM
2bce0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36   tab2..----..-46
2bcf0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2bd00 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
2bd10 49 4e 43 54 20 63 6f 6c 32 20 2a 20 2d 20 31 32  INCT col2 * - 12
2bd20 20 2a 20 2b 20 32 31 20 46 52 4f 4d 20 74 61 62   * + 21 FROM tab
2bd30 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 38 34 34 0d  0..----..-11844.
2bd40 0a 2d 32 34 39 34 38 0d 0a 2d 32 35 32 30 0d 0a  .-24948..-2520..
2bd50 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2bd60 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2bd70 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
2bd80 73 6f 72 74 20 6c 61 62 65 6c 2d 39 37 31 0d 0a  sort label-971..
2bd90 53 45 4c 45 43 54 20 53 55 4d 28 20 44 49 53 54  SELECT SUM( DIST
2bda0 49 4e 43 54 20 2d 20 2d 20 28 20 2d 20 2d 20 63  INCT - - ( - - c
2bdb0 6f 6c 30 20 29 20 29 20 41 53 20 63 6f 6c 31 20  ol0 ) ) AS col1 
2bdc0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
2bdd0 0a 31 38 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .185....skipif m
2bde0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2bdf0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
2be00 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 37 31  owsort label-971
2be10 0d 0a 53 45 4c 45 43 54 20 53 55 4d 20 28 20 44  ..SELECT SUM ( D
2be20 49 53 54 49 4e 43 54 20 2d 20 2d 20 28 20 2d 20  ISTINCT - - ( - 
2be30 2d 20 63 6f 6c 30 20 29 20 29 20 41 53 20 63 6f  - col0 ) ) AS co
2be40 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
2be50 2d 2d 0d 0a 31 38 35 0d 0a 0d 0a 6f 6e 6c 79 69  --..185....onlyi
2be60 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
2be70 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
2be80 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2be90 62 65 6c 2d 39 37 32 0d 0a 53 45 4c 45 43 54 20  bel-972..SELECT 
2bea0 44 49 53 54 49 4e 43 54 20 2d 20 28 20 2b 20 2d  DISTINCT - ( + -
2beb0 20 43 4f 55 4e 54 28 20 31 34 20 29 20 29 20 46   COUNT( 14 ) ) F
2bec0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
2bed0 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
2bee0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2bef0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2bf00 6f 72 74 20 6c 61 62 65 6c 2d 39 37 32 0d 0a 53  ort label-972..S
2bf10 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
2bf20 20 28 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 31   ( + - COUNT ( 1
2bf30 34 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30 0d  4 ) ) FROM tab0.
2bf40 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72  .----..3....quer
2bf50 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2bf60 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63  ECT DISTINCT + c
2bf70 6f 6c 31 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20  ol1 + - col2 AS 
2bf80 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 57  col1 FROM tab2 W
2bf90 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 4f 54  HERE NULL IS NOT
2bfa0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73   NULL..----....s
2bfb0 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
2bfc0 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
2bfd0 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
2bfe0 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
2bff0 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
2c000 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2c010 41 4c 4c 20 2d 20 2d 20 35 33 20 2b 20 63 6f 6c  ALL - - 53 + col
2c020 30 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  0 col0 FROM tab1
2c030 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 35 32 20   WHERE NOT - 52 
2c040 2a 20 63 6f 6c 30 20 2b 20 63 6f 6c 32 20 49 53  * col0 + col2 IS
2c050 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 30 34   NULL..----..104
2c060 0d 0a 31 33 38 0d 0a 31 34 34 0d 0a 0d 0a 6f 6e  ..138..144....on
2c070 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
2c080 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
2c090 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
2c0a0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2c0b0 37 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28  75..SELECT ALL (
2c0c0 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
2c0d0 49 47 4e 45 44 20 29 20 29 20 2a 20 63 6f 6c 31  IGNED ) ) * col1
2c0e0 20 2b 20 2d 20 2b 20 39 33 20 41 53 20 63 6f 6c   + - + 93 AS col
2c0f0 31 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  1 FROM tab1 WHER
2c100 45 20 4e 4f 54 20 28 20 35 34 20 29 20 49 4e 20  E NOT ( 54 ) IN 
2c110 28 20 28 20 2b 20 63 6f 6c 31 20 29 2c 20 39 2c  ( ( + col1 ), 9,
2c120 20 2b 20 63 6f 6c 30 2c 20 2d 20 2b 20 35 30 20   + col0, - + 50 
2c130 2b 20 2d 20 2b 20 37 30 20 2b 20 2b 20 43 41 53  + - + 70 + + CAS
2c140 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
2c150 44 20 29 20 2a 20 2d 20 2b 20 43 41 53 54 28 20  D ) * - + CAST( 
2c160 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
2c170 20 2d 20 33 35 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   - 35 )..----...
2c180 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2c190 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2c1a0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2c1b0 6c 61 62 65 6c 2d 39 37 35 0d 0a 53 45 4c 45 43  label-975..SELEC
2c1c0 54 20 41 4c 4c 20 28 20 43 41 53 54 20 28 20 4e  T ALL ( CAST ( N
2c1d0 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
2c1e0 20 29 20 2a 20 63 6f 6c 31 20 2b 20 2d 20 2b 20   ) * col1 + - + 
2c1f0 39 33 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  93 AS col1 FROM 
2c200 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 28  tab1 WHERE NOT (
2c210 20 35 34 20 29 20 49 4e 20 28 20 28 20 2b 20 63   54 ) IN ( ( + c
2c220 6f 6c 31 20 29 2c 20 39 2c 20 2b 20 63 6f 6c 30  ol1 ), 9, + col0
2c230 2c 20 2d 20 2b 20 35 30 20 2b 20 2d 20 2b 20 37  , - + 50 + - + 7
2c240 30 20 2b 20 2b 20 43 41 53 54 20 28 20 4e 55 4c  0 + + CAST ( NUL
2c250 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a  L AS INTEGER ) *
2c260 20 2d 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c   - + CAST ( NULL
2c270 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2d 20   AS INTEGER ) - 
2c280 33 35 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  35 )..----....on
2c290 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
2c2a0 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41  T syntax: DECIMA
2c2b0 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  L type: ..query 
2c2c0 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
2c2d0 6c 2d 39 37 36 0d 0a 53 45 4c 45 43 54 20 44 49  l-976..SELECT DI
2c2e0 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
2c2f0 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
2c300 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 42 45   NOT NULL NOT BE
2c310 54 57 45 45 4e 20 28 20 2d 20 34 20 2b 20 63 6f  TWEEN ( - 4 + co
2c320 6c 32 20 2a 20 43 41 53 54 28 20 4e 55 4c 4c 20  l2 * CAST( NULL 
2c330 41 53 20 44 45 43 49 4d 41 4c 20 29 20 29 20 41  AS DECIMAL ) ) A
2c340 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  ND NULL..----...
2c350 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2c360 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2c370 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
2c380 74 20 6c 61 62 65 6c 2d 39 37 36 0d 0a 53 45 4c  t label-976..SEL
2c390 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
2c3a0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
2c3b0 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
2c3c0 4e 4f 54 20 42 45 54 57 45 45 4e 20 28 20 2d 20  NOT BETWEEN ( - 
2c3d0 34 20 2b 20 63 6f 6c 32 20 2a 20 43 41 53 54 20  4 + col2 * CAST 
2c3e0 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29  ( NULL AS REAL )
2c3f0 20 29 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d   ) AND NULL..---
2c400 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
2c410 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
2c420 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
2c430 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 37  rowsort label-97
2c440 37 0d 0a 53 45 4c 45 43 54 20 2b 20 39 31 20 2a  7..SELECT + 91 *
2c450 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
2c460 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
2c470 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 37 33   cor0..----..273
2c480 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2c490 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2c4a0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
2c4b0 72 74 20 6c 61 62 65 6c 2d 39 37 37 0d 0a 53 45  rt label-977..SE
2c4c0 4c 45 43 54 20 2b 20 39 31 20 2a 20 43 4f 55 4e  LECT + 91 * COUN
2c4d0 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20  T ( * ) AS col1 
2c4e0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
2c4f0 30 0d 0a 2d 2d 2d 2d 0d 0a 32 37 33 0d 0a 0d 0a  0..----..273....
2c500 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
2c510 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
2c520 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41  CT * FROM tab1 A
2c530 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
2c540 20 36 39 20 3c 3e 20 2b 20 63 6f 6c 31 0d 0a 2d   69 <> + col1..-
2c550 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
2c560 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
2c570 4c 4c 20 63 6f 6c 32 20 2a 20 2b 20 28 20 2d 20  LL col2 * + ( - 
2c580 2d 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 32  - col2 ) AS col2
2c590 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
2c5a0 0d 0a 33 34 38 31 0d 0a 34 36 32 34 0d 0a 39 32  ..3481..4624..92
2c5b0 31 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  16....query I ro
2c5c0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
2c5d0 53 54 49 4e 43 54 20 63 6f 6c 30 20 2b 20 39 37  STINCT col0 + 97
2c5e0 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   + col1 FROM tab
2c5f0 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 33 0d 0a 31 39  0..----..193..19
2c600 35 0d 0a 32 30 35 0d 0a 0d 0a 71 75 65 72 79 20  5..205....query 
2c610 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
2c620 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f  CT DISTINCT - co
2c630 6c 31 20 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 31  l1 AS col2, col1
2c640 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
2c650 0d 0a 2d 31 34 0d 0a 31 34 0d 0a 2d 34 37 0d 0a  ..-14..14..-47..
2c660 34 37 0d 0a 2d 35 0d 0a 35 0d 0a 0d 0a 71 75 65  47..-5..5....que
2c670 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2c680 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
2c690 2d 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 32 20  - col0 * + col2 
2c6a0 2b 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 39 31 20  + - col1 + - 91 
2c6b0 2b 20 63 6f 6c 32 20 2a 20 2b 20 2d 20 63 6f 6c  + col2 * + - col
2c6c0 30 20 2a 20 2b 20 2d 20 63 6f 6c 31 20 41 53 20  0 * + - col1 AS 
2c6d0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 63  col2 FROM tab1 c
2c6e0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 39 36 38 38  or0..----..29688
2c6f0 36 0d 0a 32 39 39 39 34 0d 0a 37 33 33 33 35 0d  6..29994..73335.
2c700 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2c710 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
2c720 20 35 35 20 2b 20 32 37 20 46 52 4f 4d 20 74 61   55 + 27 FROM ta
2c730 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
2c740 0d 0a 2d 32 38 0d 0a 2d 32 38 0d 0a 2d 32 38 0d  ..-28..-28..-28.
2c750 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2c760 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
2c770 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
2c780 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 38 34 0d  wsort label-984.
2c790 0a 53 45 4c 45 43 54 20 2b 20 28 20 2d 20 2b 20  .SELECT + ( - + 
2c7a0 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 2b 20 36  COUNT( * ) ) + 6
2c7b0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
2c7c0 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33  b1 cor0..----..3
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 38 34 0d 0a 53 45  rt label-984..SE
2c810 4c 45 43 54 20 2b 20 28 20 2d 20 2b 20 43 4f 55  LECT + ( - + COU
2c820 4e 54 20 28 20 2a 20 29 20 29 20 2b 20 36 20 41  NT ( * ) ) + 6 A
2c830 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
2c840 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   cor0..----..3..
2c850 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2c860 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 63 6f  t..SELECT - - co
2c870 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l0 AS col1 FROM 
2c880 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
2c890 52 45 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d  RE col2 IS NULL.
2c8a0 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
2c8b0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2c8c0 20 44 49 53 54 49 4e 43 54 20 33 35 20 2b 20 2b   DISTINCT 35 + +
2c8d0 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20   - col2 AS col1 
2c8e0 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a  FROM tab1 cor0..
2c8f0 2d 2d 2d 2d 0d 0a 2d 32 34 0d 0a 2d 33 33 0d 0a  ----..-24..-33..
2c900 2d 36 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  -61....query II 
2c910 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2c920 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30 2c  DISTINCT + col0,
2c930 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   + col0 FROM tab
2c940 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
2c950 0a 31 35 0d 0a 31 35 0d 0a 38 37 0d 0a 38 37 0d  .15..15..87..87.
2c960 0a 39 37 0d 0a 39 37 0d 0a 0d 0a 71 75 65 72 79  .97..97....query
2c970 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2c980 43 54 20 41 4c 4c 20 2d 20 34 36 20 2a 20 32 32  CT ALL - 46 * 22
2c990 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 2b 20 2b 20   * - - col0 + + 
2c9a0 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  + col1 FROM tab0
2c9b0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2c9c0 2d 31 35 30 39 39 0d 0a 2d 38 38 30 32 33 0d 0a  -15099..-88023..
2c9d0 2d 39 38 31 36 33 0d 0a 0d 0a 71 75 65 72 79 20  -98163....query 
2c9e0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2c9f0 54 20 63 6f 6c 31 20 2f 20 2d 20 63 6f 6c 30 20  T col1 / - col0 
2ca00 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
2ca10 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20  0 WHERE NULL IS 
2ca20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
2ca30 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2ca40 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2ca50 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
2ca60 73 6f 72 74 20 6c 61 62 65 6c 2d 39 39 30 0d 0a  sort label-990..
2ca70 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2ca80 2b 20 4d 49 4e 28 20 41 4c 4c 20 63 6f 6c 30 20  + MIN( ALL col0 
2ca90 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  ) col0 FROM tab2
2caa0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2cab0 34 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  46....skipif mys
2cac0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2cad0 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  ble..skipif post
2cae0 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
2caf0 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
2cb00 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
2cb10 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
2cb20 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2cb30 62 65 6c 2d 39 39 30 0d 0a 53 45 4c 45 43 54 20  bel-990..SELECT 
2cb40 44 49 53 54 49 4e 43 54 20 2b 20 4d 49 4e 20 28  DISTINCT + MIN (
2cb50 20 41 4c 4c 20 63 6f 6c 30 20 29 20 63 6f 6c 30   ALL col0 ) col0
2cb60 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
2cb70 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 0d 0a  r0..----..46....
2cb80 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
2cb90 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
2cba0 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
2cbb0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2cbc0 2d 39 39 31 0d 0a 53 45 4c 45 43 54 20 2d 20 43  -991..SELECT - C
2cbd0 41 53 54 28 20 2b 20 34 32 20 41 53 20 53 49 47  AST( + 42 AS SIG
2cbe0 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62 32 20  NED ) FROM tab2 
2cbf0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
2cc00 34 32 0d 0a 2d 34 32 0d 0a 2d 34 32 0d 0a 0d 0a  42..-42..-42....
2cc10 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2cc20 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2cc30 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2cc40 61 62 65 6c 2d 39 39 31 0d 0a 53 45 4c 45 43 54  abel-991..SELECT
2cc50 20 2d 20 43 41 53 54 20 28 20 2b 20 34 32 20 41   - CAST ( + 42 A
2cc60 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d  S INTEGER ) FROM
2cc70 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
2cc80 2d 2d 2d 0d 0a 2d 34 32 0d 0a 2d 34 32 0d 0a 2d  ---..-42..-42..-
2cc90 34 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  42....onlyif mys
2cca0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
2ccb0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
2ccc0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2ccd0 39 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  92..SELECT DISTI
2cce0 4e 43 54 20 2d 20 2d 20 4d 49 4e 28 20 41 4c 4c  NCT - - MIN( ALL
2ccf0 20 2b 20 2b 20 63 6f 6c 31 20 29 20 46 52 4f 4d   + + col1 ) FROM
2cd00 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
2cd10 2d 2d 2d 0d 0a 35 0d 0a 0d 0a 73 6b 69 70 69 66  ---..5....skipif
2cd20 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2cd30 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2cd40 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2cd50 39 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  92..SELECT DISTI
2cd60 4e 43 54 20 2d 20 2d 20 4d 49 4e 20 28 20 41 4c  NCT - - MIN ( AL
2cd70 4c 20 2b 20 2b 20 63 6f 6c 31 20 29 20 46 52 4f  L + + col1 ) FRO
2cd80 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
2cd90 2d 2d 2d 2d 0d 0a 35 0d 0a 0d 0a 6f 6e 6c 79 69  ----..5....onlyi
2cda0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
2cdb0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
2cdc0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2cdd0 62 65 6c 2d 39 39 33 0d 0a 53 45 4c 45 43 54 20  bel-993..SELECT 
2cde0 41 4c 4c 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  ALL - COUNT( * )
2cdf0 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
2ce00 20 4e 4f 54 20 39 39 20 49 53 20 4e 4f 54 20 4e   NOT 99 IS NOT N
2ce10 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  ULL..----..0....
2ce20 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2ce30 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2ce40 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2ce50 61 62 65 6c 2d 39 39 33 0d 0a 53 45 4c 45 43 54  abel-993..SELECT
2ce60 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 20 28 20 2a   ALL - COUNT ( *
2ce70 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45   ) FROM tab1 WHE
2ce80 52 45 20 4e 4f 54 20 39 39 20 49 53 20 4e 4f 54  RE NOT 99 IS NOT
2ce90 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   NULL..----..0..
2cea0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2ceb0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2cec0 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  x: ..query II ro
2ced0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 39 34 0d  wsort label-994.
2cee0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 31 37 20 41  .SELECT ALL 17 A
2cef0 53 20 63 6f 6c 30 2c 20 43 4f 55 4e 54 28 20 2a  S col0, COUNT( *
2cf00 20 29 20 2a 20 32 35 20 41 53 20 63 6f 6c 30 20   ) * 25 AS col0 
2cf10 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
2cf20 0a 31 37 0d 0a 37 35 0d 0a 0d 0a 73 6b 69 70 69  .17..75....skipi
2cf30 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2cf40 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2cf50 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
2cf60 2d 39 39 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -994..SELECT ALL
2cf70 20 31 37 20 41 53 20 63 6f 6c 30 2c 20 43 4f 55   17 AS col0, COU
2cf80 4e 54 20 28 20 2a 20 29 20 2a 20 32 35 20 41 53  NT ( * ) * 25 AS
2cf90 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
2cfa0 0a 2d 2d 2d 2d 0d 0a 31 37 0d 0a 37 35 0d 0a 0d  .----..17..75...
2cfb0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2cfc0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2cfd0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2cfe0 6f 72 74 20 6c 61 62 65 6c 2d 39 39 35 0d 0a 53  ort label-995..S
2cff0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 39  ELECT DISTINCT 9
2d000 30 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  0 + - COUNT( * )
2d010 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
2d020 62 32 0d 0a 2d 2d 2d 2d 0d 0a 38 37 0d 0a 0d 0a  b2..----..87....
2d030 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2d040 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2d050 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2d060 61 62 65 6c 2d 39 39 35 0d 0a 53 45 4c 45 43 54  abel-995..SELECT
2d070 20 44 49 53 54 49 4e 43 54 20 39 30 20 2b 20 2d   DISTINCT 90 + -
2d080 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
2d090 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col1 FROM tab2..
2d0a0 2d 2d 2d 2d 0d 0a 38 37 0d 0a 0d 0a 71 75 65 72  ----..87....quer
2d0b0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2d0c0 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 2a  ECT ALL + col2 *
2d0d0 20 2d 20 2b 20 34 33 20 2a 20 2d 20 2d 20 28 20   - + 43 * - - ( 
2d0e0 28 20 2d 20 63 6f 6c 32 20 29 20 29 20 46 52 4f  ( - col2 ) ) FRO
2d0f0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 34  M tab2..----..14
2d100 34 36 35 32 0d 0a 32 32 37 34 37 0d 0a 36 38 38  4652..22747..688
2d110 30 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  00....query II r
2d120 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
2d130 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 2d 20 36 39   + col1 * + - 69
2d140 20 2a 20 2b 20 63 6f 6c 30 20 2b 20 63 6f 6c 30   * + col0 + col0
2d150 20 41 53 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c 30   AS col1, + col0
2d160 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
2d170 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 31 38 32  r0..----..-16182
2d180 38 0d 0a 34 36 0d 0a 2d 33 33 39 39 36 38 0d 0a  8..46..-339968..
2d190 36 34 0d 0a 2d 33 34 36 36 35 30 0d 0a 37 35 0d  64..-346650..75.
2d1a0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2d1b0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
2d1c0 4e 43 54 20 36 38 20 2b 20 32 30 20 41 53 20 63  NCT 68 + 20 AS c
2d1d0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
2d1e0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 38 0d   cor0..----..88.
2d1f0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2d200 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
2d210 4e 43 54 20 63 6f 6c 32 20 2d 20 2d 20 63 6f 6c  NCT col2 - - col
2d220 32 20 2a 20 2d 20 37 38 20 46 52 4f 4d 20 74 61  2 * - 78 FROM ta
2d230 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
2d240 0d 0a 2d 31 37 37 31 0d 0a 2d 33 30 38 30 0d 0a  ..-1771..-3080..
2d250 2d 34 34 36 36 0d 0a 0d 0a 71 75 65 72 79 20 49  -4466....query I
2d260 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2d270 20 44 49 53 54 49 4e 43 54 20 2b 20 34 31 20 2d   DISTINCT + 41 -
2d280 20 2d 20 31 35 20 46 52 4f 4d 20 74 61 62 30 0d   - 15 FROM tab0.
2d290 0a 2d 2d 2d 2d 0d 0a 35 36 0d 0a 0d 0a 6f 6e 6c  .----..56....onl
2d2a0 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
2d2b0 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
2d2c0 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
2d2d0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2d2e0 30 31 0d 0a 53 45 4c 45 43 54 20 2d 20 33 31 20  01..SELECT - 31 
2d2f0 44 49 56 20 2d 20 2d 20 63 6f 6c 32 20 41 53 20  DIV - - col2 AS 
2d300 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
2d310 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  S cor0..----..0.
2d320 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  .0..0....skipif 
2d330 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2d340 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2d350 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2d360 30 31 0d 0a 53 45 4c 45 43 54 20 2d 20 33 31 20  01..SELECT - 31 
2d370 2f 20 2d 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f  / - - col2 AS co
2d380 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
2d390 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30  cor0..----..0..0
2d3a0 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..0....onlyif my
2d3b0 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
2d3c0 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
2d3d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2d3e0 74 20 6c 61 62 65 6c 2d 31 30 30 32 0d 0a 53 45  t label-1002..SE
2d3f0 4c 45 43 54 20 2b 20 2d 20 39 32 20 44 49 56 20  LECT + - 92 DIV 
2d400 2b 20 2d 20 63 6f 6c 32 20 63 6f 6c 31 20 46 52  + - col2 col1 FR
2d410 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
2d420 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31 0d 0a 31 0d 0a  .----..0..1..1..
2d430 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2d440 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2d450 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
2d460 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
2d470 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
2d480 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
2d490 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
2d4a0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2d4b0 31 30 30 32 0d 0a 53 45 4c 45 43 54 20 2b 20 2d  1002..SELECT + -
2d4c0 20 39 32 20 2f 20 2b 20 2d 20 63 6f 6c 32 20 63   92 / + - col2 c
2d4d0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol1 FROM tab1 AS
2d4e0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   cor0..----..0..
2d4f0 31 0d 0a 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49  1..1....query II
2d500 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2d510 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
2d520 32 20 57 48 45 52 45 20 2d 20 2b 20 36 39 20 49  2 WHERE - + 69 I
2d530 4e 20 28 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d  N ( col2 )..----
2d540 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
2d550 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
2d560 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
2d570 4e 4f 54 20 34 38 20 3d 20 2b 20 2d 20 35 36 0d  NOT 48 = + - 56.
2d580 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
2d590 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39  hashing to 75c99
2d5a0 38 61 61 35 33 61 63 38 33 32 31 38 63 62 66 32  8aa53ac83218cbf2
2d5b0 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 6f  feb962d0a49....o
2d5c0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
2d5d0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
2d5e0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
2d5f0 72 74 20 6c 61 62 65 6c 2d 31 30 30 35 0d 0a 53  rt label-1005..S
2d600 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
2d610 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 4d 49   COUNT( * ) * MI
2d620 4e 28 20 63 6f 6c 32 20 29 2c 20 43 4f 55 4e 54  N( col2 ), COUNT
2d630 28 20 2a 20 29 20 2d 20 2d 20 39 38 20 41 53 20  ( * ) - - 98 AS 
2d640 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
2d650 2d 2d 2d 2d 0d 0a 36 39 0d 0a 31 30 31 0d 0a 0d  ----..69..101...
2d660 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2d670 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2d680 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
2d690 20 6c 61 62 65 6c 2d 31 30 30 35 0d 0a 53 45 4c   label-1005..SEL
2d6a0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43  ECT DISTINCT + C
2d6b0 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 4d 49 4e  OUNT ( * ) * MIN
2d6c0 20 28 20 63 6f 6c 32 20 29 2c 20 43 4f 55 4e 54   ( col2 ), COUNT
2d6d0 20 28 20 2a 20 29 20 2d 20 2d 20 39 38 20 41 53   ( * ) - - 98 AS
2d6e0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
2d6f0 0a 2d 2d 2d 2d 0d 0a 36 39 0d 0a 31 30 31 0d 0a  .----..69..101..
2d700 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2d710 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
2d720 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
2d730 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2d740 65 6c 2d 31 30 30 36 0d 0a 53 45 4c 45 43 54 20  el-1006..SELECT 
2d750 44 49 53 54 49 4e 43 54 20 2b 20 43 41 53 54 28  DISTINCT + CAST(
2d760 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
2d770 29 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 63 6f 6c  ) * - - col0 col
2d780 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
2d790 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
2d7a0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2d7b0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2d7c0 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
2d7d0 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
2d7e0 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
2d7f0 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
2d800 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
2d810 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2d820 2d 31 30 30 36 0d 0a 53 45 4c 45 43 54 20 44 49  -1006..SELECT DI
2d830 53 54 49 4e 43 54 20 2b 20 43 41 53 54 20 28 20  STINCT + CAST ( 
2d840 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
2d850 29 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 63 6f 6c  ) * - - col0 col
2d860 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
2d870 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
2d880 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2d890 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
2d8a0 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
2d8b0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2d8c0 62 65 6c 2d 31 30 30 37 0d 0a 53 45 4c 45 43 54  bel-1007..SELECT
2d8d0 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 44 49 56 20   ALL + col2 DIV 
2d8e0 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46  - col0 AS col0 F
2d8f0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
2d900 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  0..0..0....skipi
2d910 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2d920 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2d930 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2d940 31 30 30 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1007..SELECT ALL
2d950 20 2b 20 63 6f 6c 32 20 2f 20 2d 20 63 6f 6c 30   + col2 / - col0
2d960 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
2d970 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a  b2..----..0..0..
2d980 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
2d990 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
2d9a0 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
2d9b0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2d9c0 6c 61 62 65 6c 2d 31 30 30 38 0d 0a 53 45 4c 45  label-1008..SELE
2d9d0 43 54 20 63 6f 6c 32 20 44 49 56 20 2b 20 28 20  CT col2 DIV + ( 
2d9e0 2d 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30  - col0 ) AS col0
2d9f0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
2da00 0d 0a 2d 31 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b  ..-1..0..0....sk
2da10 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2da20 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2da30 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2da40 65 6c 2d 31 30 30 38 0d 0a 53 45 4c 45 43 54 20  el-1008..SELECT 
2da50 63 6f 6c 32 20 2f 20 2b 20 28 20 2d 20 63 6f 6c  col2 / + ( - col
2da60 30 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  0 ) AS col0 FROM
2da70 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d   tab1..----..-1.
2da80 0a 30 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49  .0..0....query I
2da90 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2daa0 20 2d 20 31 31 20 2a 20 39 35 20 41 53 20 63 6f   - 11 * 95 AS co
2dab0 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l2 FROM tab0..--
2dac0 2d 2d 0d 0a 2d 31 30 34 35 0d 0a 2d 31 30 34 35  --..-1045..-1045
2dad0 0d 0a 2d 31 30 34 35 0d 0a 0d 0a 71 75 65 72 79  ..-1045....query
2dae0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2daf0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f  CT DISTINCT + co
2db00 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l0 AS col0 FROM 
2db10 74 61 62 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  tab0 WHERE NULL 
2db20 3c 3d 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 2b 20  <= + col1 + + + 
2db30 28 20 2d 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d  ( - col1 )..----
2db40 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
2db50 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
2db60 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57  FROM tab0 cor0 W
2db70 48 45 52 45 20 35 37 20 49 53 20 4e 55 4c 4c 0d  HERE 57 IS NULL.
2db80 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
2db90 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
2dba0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
2dbb0 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
2dbc0 65 6c 2d 31 30 31 32 0d 0a 53 45 4c 45 43 54 20  el-1012..SELECT 
2dbd0 44 49 53 54 49 4e 43 54 20 2d 20 31 34 2c 20 2d  DISTINCT - 14, -
2dbe0 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
2dbf0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
2dc00 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20 63 6f   cor0 WHERE - co
2dc10 6c 31 20 2d 20 2d 20 2d 20 31 33 20 49 53 20 4e  l1 - - - 13 IS N
2dc20 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 0d 0a  ULL..----..-14..
2dc30 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
2dc40 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2dc50 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
2dc60 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31 32 0d  sort label-1012.
2dc70 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2dc80 20 2d 20 31 34 2c 20 2d 20 43 4f 55 4e 54 20 28   - 14, - COUNT (
2dc90 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f   * ) AS col2 FRO
2dca0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
2dcb0 48 45 52 45 20 2d 20 63 6f 6c 31 20 2d 20 2d 20  HERE - col1 - - 
2dcc0 2d 20 31 33 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  - 13 IS NULL..--
2dcd0 2d 2d 0d 0a 2d 31 34 0d 0a 30 0d 0a 0d 0a 6f 6e  --..-14..0....on
2dce0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
2dcf0 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
2dd00 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
2dd10 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2dd20 30 31 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  013..SELECT ALL 
2dd30 2b 20 2d 20 43 41 53 54 28 20 33 35 20 41 53 20  + - CAST( 35 AS 
2dd40 53 49 47 4e 45 44 20 29 20 2a 20 2d 20 33 32 20  SIGNED ) * - 32 
2dd50 2a 20 2b 20 2d 20 63 6f 6c 32 20 2d 20 2d 20 63  * + - col2 - - c
2dd60 6f 6c 32 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  ol2 col0 FROM ta
2dd70 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b0 cor0..----..-
2dd80 31 31 30 37 38 31 0d 0a 2d 31 31 31 39 30 0d 0a  110781..-11190..
2dd90 2d 35 32 35 39 33 0d 0a 0d 0a 73 6b 69 70 69 66  -52593....skipif
2dda0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2ddb0 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
2ddc0 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
2ddd0 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
2dde0 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
2ddf0 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
2de00 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2de10 74 20 6c 61 62 65 6c 2d 31 30 31 33 0d 0a 53 45  t label-1013..SE
2de20 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 43 41 53  LECT ALL + - CAS
2de30 54 20 28 20 33 35 20 41 53 20 49 4e 54 45 47 45  T ( 35 AS INTEGE
2de40 52 20 29 20 2a 20 2d 20 33 32 20 2a 20 2b 20 2d  R ) * - 32 * + -
2de50 20 63 6f 6c 32 20 2d 20 2d 20 63 6f 6c 32 20 63   col2 - - col2 c
2de60 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  ol0 FROM tab0 co
2de70 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 30 37 38  r0..----..-11078
2de80 31 0d 0a 2d 31 31 31 39 30 0d 0a 2d 35 32 35 39  1..-11190..-5259
2de90 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
2dea0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
2deb0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
2dec0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2ded0 31 34 0d 0a 53 45 4c 45 43 54 20 2b 20 35 30 20  14..SELECT + 50 
2dee0 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41  + + COUNT( * ) A
2def0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
2df00 0d 0a 2d 2d 2d 2d 0d 0a 35 33 0d 0a 0d 0a 73 6b  ..----..53....sk
2df10 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2df20 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2df30 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2df40 65 6c 2d 31 30 31 34 0d 0a 53 45 4c 45 43 54 20  el-1014..SELECT 
2df50 2b 20 35 30 20 2b 20 2b 20 43 4f 55 4e 54 20 28  + 50 + + COUNT (
2df60 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f   * ) AS col2 FRO
2df70 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 33  M tab2..----..53
2df80 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2df90 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
2dfa0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
2dfb0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31  owsort label-101
2dfc0 35 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e  5..SELECT + COUN
2dfd0 54 28 20 2a 20 29 20 2b 20 2b 20 2d 20 28 20 37  T( * ) + + - ( 7
2dfe0 33 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  3 ) FROM tab2..-
2dff0 2d 2d 2d 0d 0a 2d 37 30 0d 0a 0d 0a 73 6b 69 70  ---..-70....skip
2e000 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2e010 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2e020 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2e030 2d 31 30 31 35 0d 0a 53 45 4c 45 43 54 20 2b 20  -1015..SELECT + 
2e040 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2b 20  COUNT ( * ) + + 
2e050 2d 20 28 20 37 33 20 29 20 46 52 4f 4d 20 74 61  - ( 73 ) FROM ta
2e060 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 30 0d 0a 0d  b2..----..-70...
2e070 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2e080 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
2e090 4e 45 44 20 74 79 70 65 3a 20 44 45 43 49 4d 41  NED type: DECIMA
2e0a0 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  L type: ..query 
2e0b0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2e0c0 31 30 31 36 0d 0a 53 45 4c 45 43 54 20 44 49 53  1016..SELECT DIS
2e0d0 54 49 4e 43 54 20 2d 20 2d 20 63 6f 6c 32 20 2a  TINCT - - col2 *
2e0e0 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 2b 20 38 35   + col0 + - + 85
2e0f0 20 2d 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 63 6f   - + col1 + - co
2e100 6c 31 20 2a 20 2d 20 2b 20 63 6f 6c 30 20 46 52  l1 * - + col0 FR
2e110 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
2e120 54 20 2b 20 2b 20 31 39 20 49 4e 20 28 20 2b 20  T + + 19 IN ( + 
2e130 2d 20 34 20 2f 20 63 6f 6c 32 2c 20 2d 20 35 2c  - 4 / col2, - 5,
2e140 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44   CAST( NULL AS D
2e150 45 43 49 4d 41 4c 20 29 2c 20 2d 20 39 39 20 2b  ECIMAL ), - 99 +
2e160 20 43 41 53 54 28 20 2b 20 63 6f 6c 31 20 41 53   CAST( + col1 AS
2e170 20 53 49 47 4e 45 44 20 29 2c 20 2d 20 32 32 20   SIGNED ), - 22 
2e180 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  )..----....skipi
2e190 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2e1a0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2e1b0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2e1c0 31 30 31 36 0d 0a 53 45 4c 45 43 54 20 44 49 53  1016..SELECT DIS
2e1d0 54 49 4e 43 54 20 2d 20 2d 20 63 6f 6c 32 20 2a  TINCT - - col2 *
2e1e0 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 2b 20 38 35   + col0 + - + 85
2e1f0 20 2d 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 63 6f   - + col1 + - co
2e200 6c 31 20 2a 20 2d 20 2b 20 63 6f 6c 30 20 46 52  l1 * - + col0 FR
2e210 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
2e220 54 20 2b 20 2b 20 31 39 20 49 4e 20 28 20 2b 20  T + + 19 IN ( + 
2e230 2d 20 34 20 2f 20 63 6f 6c 32 2c 20 2d 20 35 2c  - 4 / col2, - 5,
2e240 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
2e250 52 45 41 4c 20 29 2c 20 2d 20 39 39 20 2b 20 43  REAL ), - 99 + C
2e260 41 53 54 20 28 20 2b 20 63 6f 6c 31 20 41 53 20  AST ( + col1 AS 
2e270 49 4e 54 45 47 45 52 20 29 2c 20 2d 20 32 32 20  INTEGER ), - 22 
2e280 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  )..----....onlyi
2e290 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
2e2a0 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
2e2b0 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
2e2c0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31 37  wsort label-1017
2e2d0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 33  ..SELECT ALL - 3
2e2e0 34 20 44 49 56 20 2d 20 2b 20 63 6f 6c 32 20 41  4 DIV - + col2 A
2e2f0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
2e300 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d  ..----..0..0..0.
2e310 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2e320 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2e330 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2e340 74 20 6c 61 62 65 6c 2d 31 30 31 37 0d 0a 53 45  t label-1017..SE
2e350 4c 45 43 54 20 41 4c 4c 20 2d 20 33 34 20 2f 20  LECT ALL - 34 / 
2e360 2d 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32  - + col2 AS col2
2e370 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
2e380 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 6f 6e 6c  ..0..0..0....onl
2e390 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
2e3a0 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
2e3b0 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
2e3c0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2e3d0 31 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  18..SELECT DISTI
2e3e0 4e 43 54 20 63 6f 6c 32 20 44 49 56 20 32 34 20  NCT col2 DIV 24 
2e3f0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
2e400 0a 30 0d 0a 31 0d 0a 34 0d 0a 0d 0a 73 6b 69 70  .0..1..4....skip
2e410 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2e420 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2e430 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2e440 2d 31 30 31 38 0d 0a 53 45 4c 45 43 54 20 44 49  -1018..SELECT DI
2e450 53 54 49 4e 43 54 20 63 6f 6c 32 20 2f 20 32 34  STINCT col2 / 24
2e460 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
2e470 0d 0a 30 0d 0a 31 0d 0a 34 0d 0a 0d 0a 71 75 65  ..0..1..4....que
2e480 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2e490 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
2e4a0 2d 20 36 31 20 2b 20 2d 20 63 6f 6c 32 20 41 53  - 61 + - col2 AS
2e4b0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
2e4c0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
2e4d0 33 35 0d 0a 2d 37 0d 0a 32 0d 0a 0d 0a 6f 6e 6c  35..-7..2....onl
2e4e0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
2e4f0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
2e500 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2e510 6c 61 62 65 6c 2d 31 30 32 30 0d 0a 53 45 4c 45  label-1020..SELE
2e520 43 54 20 4d 49 4e 28 20 41 4c 4c 20 2b 20 2b 20  CT MIN( ALL + + 
2e530 32 35 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41  25 ) FROM tab2 A
2e540 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 35  S cor0..----..25
2e550 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2e560 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2e570 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
2e580 72 74 20 6c 61 62 65 6c 2d 31 30 32 30 0d 0a 53  rt label-1020..S
2e590 45 4c 45 43 54 20 4d 49 4e 20 28 20 41 4c 4c 20  ELECT MIN ( ALL 
2e5a0 2b 20 2b 20 32 35 20 29 20 46 52 4f 4d 20 74 61  + + 25 ) FROM ta
2e5b0 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
2e5c0 0d 0a 32 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..25....query II
2e5d0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2e5e0 20 2b 20 28 20 2b 20 28 20 63 6f 6c 31 20 29 20   + ( + ( col1 ) 
2e5f0 29 20 41 53 20 63 6f 6c 31 2c 20 2d 20 63 6f 6c  ) AS col1, - col
2e600 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  1 AS col1 FROM t
2e610 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
2e620 2d 0d 0a 35 31 0d 0a 2d 35 31 0d 0a 36 37 0d 0a  -..51..-51..67..
2e630 2d 36 37 0d 0a 37 37 0d 0a 2d 37 37 0d 0a 0d 0a  -67..77..-77....
2e640 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2e650 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2d 20 2d  .SELECT col1 - -
2e660 20 28 20 2b 20 2b 20 63 6f 6c 32 20 29 20 41 53   ( + + col2 ) AS
2e670 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d   col1 FROM tab0.
2e680 0a 2d 2d 2d 2d 0d 0a 31 30 30 0d 0a 31 32 38 0d  .----..100..128.
2e690 0a 33 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .31....onlyif my
2e6a0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
2e6b0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
2e6c0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
2e6d0 72 74 20 6c 61 62 65 6c 2d 31 30 32 33 0d 0a 53  rt label-1023..S
2e6e0 45 4c 45 43 54 20 63 6f 6c 31 20 2d 20 2d 20 2d  ELECT col1 - - -
2e6f0 20 28 20 2d 20 43 41 53 54 28 20 2b 20 28 20 2d   ( - CAST( + ( -
2e700 20 2b 20 63 6f 6c 32 20 29 20 41 53 20 53 49 47   + col2 ) AS SIG
2e710 4e 45 44 20 29 20 29 20 2a 20 2b 20 2d 20 63 6f  NED ) ) * + - co
2e720 6c 30 20 41 53 20 63 6f 6c 32 2c 20 31 34 20 41  l0 AS col2, 14 A
2e730 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
2e740 0d 0a 2d 2d 2d 2d 0d 0a 37 38 36 0d 0a 31 34 0d  ..----..786..14.
2e750 0a 38 39 31 0d 0a 31 34 0d 0a 39 36 30 34 0d 0a  .891..14..9604..
2e760 31 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  14....skipif mys
2e770 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2e780 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
2e790 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 32 33  wsort label-1023
2e7a0 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2d 20  ..SELECT col1 - 
2e7b0 2d 20 2d 20 28 20 2d 20 43 41 53 54 20 28 20 2b  - - ( - CAST ( +
2e7c0 20 28 20 2d 20 2b 20 63 6f 6c 32 20 29 20 41 53   ( - + col2 ) AS
2e7d0 20 49 4e 54 45 47 45 52 20 29 20 29 20 2a 20 2b   INTEGER ) ) * +
2e7e0 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 2c   - col0 AS col2,
2e7f0 20 31 34 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   14 AS col1 FROM
2e800 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 37 38 36   tab0..----..786
2e810 0d 0a 31 34 0d 0a 38 39 31 0d 0a 31 34 0d 0a 39  ..14..891..14..9
2e820 36 30 34 0d 0a 31 34 0d 0a 0d 0a 71 75 65 72 79  604..14....query
2e830 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2e840 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 28 20  CT DISTINCT + ( 
2e850 2d 20 38 36 20 29 20 46 52 4f 4d 20 74 61 62 31  - 86 ) FROM tab1
2e860 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 36   cor0..----..-86
2e870 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2e880 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
2e890 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
2e8a0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 32  owsort label-102
2e8b0 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  5..SELECT DISTIN
2e8c0 43 54 20 2d 20 4d 41 58 28 20 35 37 20 29 20 46  CT - MAX( 57 ) F
2e8d0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
2e8e0 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20   WHERE NOT col1 
2e8f0 2b 20 2b 20 63 6f 6c 31 20 3c 3e 20 2b 20 34 35  + + col1 <> + 45
2e900 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
2e910 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2e920 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2e930 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2e940 61 62 65 6c 2d 31 30 32 35 0d 0a 53 45 4c 45 43  abel-1025..SELEC
2e950 54 20 44 49 53 54 49 4e 43 54 20 2d 20 4d 41 58  T DISTINCT - MAX
2e960 20 28 20 35 37 20 29 20 46 52 4f 4d 20 74 61 62   ( 57 ) FROM tab
2e970 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
2e980 4e 4f 54 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c  NOT col1 + + col
2e990 31 20 3c 3e 20 2b 20 34 35 0d 0a 2d 2d 2d 2d 0d  1 <> + 45..----.
2e9a0 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
2e9b0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2e9c0 54 20 44 49 53 54 49 4e 43 54 20 31 31 2c 20 2d  T DISTINCT 11, -
2e9d0 20 63 6f 6c 32 20 2d 20 2b 20 32 39 20 41 53 20   col2 - + 29 AS 
2e9e0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
2e9f0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31  S cor0..----..11
2ea00 0d 0a 2d 31 32 35 0d 0a 31 31 0d 0a 2d 38 38 0d  ..-125..11..-88.
2ea10 0a 31 31 0d 0a 2d 39 37 0d 0a 0d 0a 6f 6e 6c 79  .11..-97....only
2ea20 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
2ea30 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20  syntax: DECIMAL 
2ea40 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
2ea50 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2ea60 32 37 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53  27..SELECT - CAS
2ea70 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d  T( NULL AS DECIM
2ea80 41 4c 20 29 20 2f 20 2d 20 63 6f 6c 32 20 46 52  AL ) / - col2 FR
2ea90 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
2eaa0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
2eab0 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  L..NULL....skipi
2eac0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2ead0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2eae0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2eaf0 31 30 32 37 0d 0a 53 45 4c 45 43 54 20 2d 20 43  1027..SELECT - C
2eb00 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45  AST ( NULL AS RE
2eb10 41 4c 20 29 20 2f 20 2d 20 63 6f 6c 32 20 46 52  AL ) / - col2 FR
2eb20 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
2eb30 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
2eb40 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79  L..NULL....query
2eb50 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
2eb60 45 43 54 20 2b 20 37 34 2c 20 2b 20 63 6f 6c 30  ECT + 74, + col0
2eb70 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
2eb80 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
2eb90 0d 0a 37 34 0d 0a 31 35 0d 0a 37 34 0d 0a 38 37  ..74..15..74..87
2eba0 0d 0a 37 34 0d 0a 39 37 0d 0a 0d 0a 71 75 65 72  ..74..97....quer
2ebb0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2ebc0 45 43 54 20 28 20 2d 20 28 20 2b 20 63 6f 6c 32  ECT ( - ( + col2
2ebd0 20 29 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f   ) ) AS col0 FRO
2ebe0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
2ebf0 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a 2d 34 30 0d 0a  ----..-23..-40..
2ec00 2d 35 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  -58....query III
2ec10 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2ec20 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
2ec30 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28  cor0 WHERE NOT (
2ec40 20 63 6f 6c 31 20 2a 20 2b 20 2b 20 63 6f 6c 32   col1 * + + col2
2ec50 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 20 29 0d 0a   IS NOT NULL )..
2ec60 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
2ec70 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
2ec80 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
2ec90 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
2eca0 6f 72 74 20 6c 61 62 65 6c 2d 31 30 33 31 0d 0a  ort label-1031..
2ecb0 53 45 4c 45 43 54 20 43 41 53 54 28 20 2b 20 63  SELECT CAST( + c
2ecc0 6f 6c 30 20 41 53 20 53 49 47 4e 45 44 20 29 20  ol0 AS SIGNED ) 
2ecd0 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 30 20 46 52  AS col2, col0 FR
2ece0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
2ecf0 35 0d 0a 31 35 0d 0a 38 37 0d 0a 38 37 0d 0a 39  5..15..87..87..9
2ed00 37 0d 0a 39 37 0d 0a 0d 0a 73 6b 69 70 69 66 20  7..97....skipif 
2ed10 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2ed20 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
2ed30 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2ed40 30 33 31 0d 0a 53 45 4c 45 43 54 20 43 41 53 54  031..SELECT CAST
2ed50 20 28 20 2b 20 63 6f 6c 30 20 41 53 20 49 4e 54   ( + col0 AS INT
2ed60 45 47 45 52 20 29 20 41 53 20 63 6f 6c 32 2c 20  EGER ) AS col2, 
2ed70 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
2ed80 2d 2d 2d 2d 0d 0a 31 35 0d 0a 31 35 0d 0a 38 37  ----..15..15..87
2ed90 0d 0a 38 37 0d 0a 39 37 0d 0a 39 37 0d 0a 0d 0a  ..87..97..97....
2eda0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
2edb0 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72  AST syntax: aggr
2edc0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49  egate syntax: SI
2edd0 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
2ede0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2edf0 65 6c 2d 31 30 33 32 0d 0a 53 45 4c 45 43 54 20  el-1032..SELECT 
2ee00 41 4c 4c 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a  ALL + - COUNT( *
2ee10 20 29 20 2a 20 2d 20 43 41 53 54 28 20 4e 55 4c   ) * - CAST( NUL
2ee20 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52  L AS SIGNED ) FR
2ee30 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
2ee40 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
2ee50 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2ee60 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2ee70 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2ee80 62 65 6c 2d 31 30 33 32 0d 0a 53 45 4c 45 43 54  bel-1032..SELECT
2ee90 20 41 4c 4c 20 2b 20 2d 20 43 4f 55 4e 54 20 28   ALL + - COUNT (
2eea0 20 2a 20 29 20 2a 20 2d 20 43 41 53 54 20 28 20   * ) * - CAST ( 
2eeb0 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
2eec0 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
2eed0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
2eee0 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
2eef0 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
2ef00 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
2ef10 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
2ef20 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
2ef30 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2ef40 45 43 54 20 63 6f 6c 32 20 2a 20 63 6f 6c 32 20  ECT col2 * col2 
2ef50 2a 20 2d 20 63 6f 6c 31 20 63 6f 6c 31 20 46 52  * - col1 col1 FR
2ef60 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
2ef70 0a 2d 2d 2d 2d 0d 0a 2d 31 32 33 32 30 30 0d 0a  .----..-123200..
2ef80 2d 32 32 35 33 38 38 0d 0a 2d 32 36 39 37 39 0d  -225388..-26979.
2ef90 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2efa0 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
2efb0 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
2efc0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
2efd0 61 62 65 6c 2d 31 30 33 34 0d 0a 53 45 4c 45 43  abel-1034..SELEC
2efe0 54 20 44 49 53 54 49 4e 43 54 20 2d 20 37 31 20  T DISTINCT - 71 
2eff0 44 49 56 20 2b 20 37 30 20 2d 20 2b 20 63 6f 6c  DIV + 70 - + col
2f000 32 2c 20 63 6f 6c 31 20 44 49 56 20 2d 20 2d 20  2, col1 DIV - - 
2f010 63 6f 6c 31 20 2b 20 63 6f 6c 31 20 2a 20 2d 20  col1 + col1 * - 
2f020 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f  col2 AS col0 FRO
2f030 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
2f040 2d 2d 2d 2d 0d 0a 2d 36 30 0d 0a 2d 32 39 34 0d  ----..-60..-294.
2f050 0a 2d 36 39 0d 0a 2d 33 31 39 35 0d 0a 2d 39 37  .-69..-3195..-97
2f060 0d 0a 2d 31 33 34 33 0d 0a 0d 0a 73 6b 69 70 69  ..-1343....skipi
2f070 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2f080 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2f090 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
2f0a0 2d 31 30 33 34 0d 0a 53 45 4c 45 43 54 20 44 49  -1034..SELECT DI
2f0b0 53 54 49 4e 43 54 20 2d 20 37 31 20 2f 20 2b 20  STINCT - 71 / + 
2f0c0 37 30 20 2d 20 2b 20 63 6f 6c 32 2c 20 63 6f 6c  70 - + col2, col
2f0d0 31 20 2f 20 2d 20 2d 20 63 6f 6c 31 20 2b 20 63  1 / - - col1 + c
2f0e0 6f 6c 31 20 2a 20 2d 20 63 6f 6c 32 20 41 53 20  ol1 * - col2 AS 
2f0f0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
2f100 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36  S cor0..----..-6
2f110 30 0d 0a 2d 32 39 34 0d 0a 2d 36 39 0d 0a 2d 33  0..-294..-69..-3
2f120 31 39 35 0d 0a 2d 39 37 0d 0a 2d 31 33 34 33 0d  195..-97..-1343.
2f130 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2f140 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
2f150 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
2f160 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 33 35  wsort label-1035
2f170 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2f180 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 63 6f 6c  T COUNT( * ) col
2f190 30 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  0 FROM tab1 WHER
2f1a0 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f  E NOT NULL IS NO
2f1b0 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  T NULL..----..3.
2f1c0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2f1d0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2f1e0 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
2f1f0 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
2f200 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
2f210 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
2f220 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
2f230 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2f240 2d 31 30 33 35 0d 0a 53 45 4c 45 43 54 20 44 49  -1035..SELECT DI
2f250 53 54 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 2a  STINCT COUNT ( *
2f260 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   ) col0 FROM tab
2f270 31 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  1 WHERE NOT NULL
2f280 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
2f290 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49  --..3....query I
2f2a0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
2f2b0 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
2f2c0 62 32 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c 3e  b2 WHERE NULL <>
2f2d0 20 2b 20 2d 20 28 20 36 37 20 29 20 2d 20 2b 20   + - ( 67 ) - + 
2f2e0 37 38 20 2a 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d  78 * - col1..---
2f2f0 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
2f300 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
2f310 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
2f320 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2f330 6c 61 62 65 6c 2d 31 30 33 37 0d 0a 53 45 4c 45  label-1037..SELE
2f340 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 31 36  CT DISTINCT + 16
2f350 20 2b 20 2b 20 2b 20 38 20 2b 20 2d 20 43 41 53   + + + 8 + - CAS
2f360 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
2f370 44 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  D ) AS col2 FROM
2f380 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
2f390 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
2f3a0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2f3b0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2f3c0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2f3d0 30 33 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  037..SELECT DIST
2f3e0 49 4e 43 54 20 2b 20 31 36 20 2b 20 2b 20 2b 20  INCT + 16 + + + 
2f3f0 38 20 2b 20 2d 20 43 41 53 54 20 28 20 4e 55 4c  8 + - CAST ( NUL
2f400 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41  L AS INTEGER ) A
2f410 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
2f420 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
2f430 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  L....onlyif mysq
2f440 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
2f450 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d   DECIMAL type: .
2f460 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2f470 20 6c 61 62 65 6c 2d 31 30 33 38 0d 0a 53 45 4c   label-1038..SEL
2f480 45 43 54 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  ECT CAST( NULL A
2f490 53 20 44 45 43 49 4d 41 4c 20 29 20 2f 20 63 6f  S DECIMAL ) / co
2f4a0 6c 31 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 2b 20  l1 + + col2 * + 
2f4b0 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 30 20 41 53  col2 * - col0 AS
2f4c0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
2f4d0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
2f4e0 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
2f4f0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2f500 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2f510 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2f520 74 20 6c 61 62 65 6c 2d 31 30 33 38 0d 0a 53 45  t label-1038..SE
2f530 4c 45 43 54 20 43 41 53 54 20 28 20 4e 55 4c 4c  LECT CAST ( NULL
2f540 20 41 53 20 52 45 41 4c 20 29 20 2f 20 63 6f 6c   AS REAL ) / col
2f550 31 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 63  1 + + col2 * + c
2f560 6f 6c 32 20 2a 20 2d 20 63 6f 6c 30 20 41 53 20  ol2 * - col0 AS 
2f570 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
2f580 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
2f590 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
2f5a0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2f5b0 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 63 6f  t..SELECT + + co
2f5c0 6c 32 20 2a 20 2b 20 63 6f 6c 32 20 2b 20 2d 20  l2 * + col2 + - 
2f5d0 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 30 20 46 52  col2 + - col0 FR
2f5e0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
2f5f0 0a 2d 2d 2d 2d 0d 0a 31 34 39 36 0d 0a 33 32 33  .----..1496..323
2f600 31 0d 0a 34 36 30 0d 0a 0d 0a 71 75 65 72 79 20  1..460....query 
2f610 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2f620 54 20 2b 20 32 37 20 2b 20 2b 20 2b 20 28 20 2d  T + 27 + + + ( -
2f630 20 63 6f 6c 30 20 29 20 2a 20 2b 20 38 38 20 2b   col0 ) * + 88 +
2f640 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52   col2 AS col0 FR
2f650 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
2f660 57 48 45 52 45 20 4e 55 4c 4c 20 3c 3d 20 34 0d  WHERE NULL <= 4.
2f670 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
2f680 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
2f690 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
2f6a0 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  : ..query III ro
2f6b0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 34 31  wsort label-1041
2f6c0 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
2f6d0 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
2f6e0 52 45 20 2b 20 63 6f 6c 31 20 3e 3d 20 2d 20 43  RE + col1 >= - C
2f6f0 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
2f700 4e 45 44 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73  NED )..----....s
2f710 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2f720 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2f730 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
2f740 6c 61 62 65 6c 2d 31 30 34 31 0d 0a 53 45 4c 45  label-1041..SELE
2f750 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41  CT * FROM tab1 A
2f760 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 63  S cor0 WHERE + c
2f770 6f 6c 31 20 3e 3d 20 2d 20 43 41 53 54 20 28 20  ol1 >= - CAST ( 
2f780 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
2f790 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  )..----....query
2f7a0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2f7b0 43 54 20 2d 20 28 20 2d 20 63 6f 6c 32 20 29 20  CT - ( - col2 ) 
2f7c0 2a 20 63 6f 6c 31 20 2d 20 2b 20 2d 20 63 6f 6c  * col1 - + - col
2f7d0 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
2f7e0 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 32 20 2b  or0 WHERE col2 +
2f7f0 20 2d 20 36 32 20 2b 20 2d 20 2d 20 28 20 63 6f   - 62 + - - ( co
2f800 6c 32 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  l2 ) IS NULL..--
2f810 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
2f820 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
2f830 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69  yntax: DIV for i
2f840 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
2f850 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
2f860 6f 72 74 20 6c 61 62 65 6c 2d 31 30 34 33 0d 0a  ort label-1043..
2f870 53 45 4c 45 43 54 20 37 31 2c 20 53 55 4d 28 20  SELECT 71, SUM( 
2f880 41 4c 4c 20 63 6f 6c 32 20 29 20 44 49 56 20 2d  ALL col2 ) DIV -
2f890 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53   + COUNT( * ) AS
2f8a0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
2f8b0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37  AS cor0..----..7
2f8c0 31 0d 0a 2d 34 30 0d 0a 0d 0a 73 6b 69 70 69 66  1..-40....skipif
2f8d0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2f8e0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2f8f0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2f900 31 30 34 33 0d 0a 53 45 4c 45 43 54 20 37 31 2c  1043..SELECT 71,
2f910 20 53 55 4d 20 28 20 41 4c 4c 20 63 6f 6c 32 20   SUM ( ALL col2 
2f920 29 20 2f 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20  ) / - + COUNT ( 
2f930 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  * ) AS col1 FROM
2f940 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
2f950 2d 2d 2d 0d 0a 37 31 0d 0a 2d 34 30 0d 0a 0d 0a  ---..71..-40....
2f960 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2f970 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2f980 20 2d 20 39 38 20 2b 20 2d 20 63 6f 6c 31 20 46   - 98 + - col1 F
2f990 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d  ROM tab1 cor0..-
2f9a0 2d 2d 2d 0d 0a 2d 31 30 33 0d 0a 2d 31 31 32 0d  ---..-103..-112.
2f9b0 0a 2d 31 34 35 0d 0a 0d 0a 71 75 65 72 79 20 49  .-145....query I
2f9c0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2f9d0 20 41 4c 4c 20 39 32 20 2a 20 2b 20 63 6f 6c 31   ALL 92 * + col1
2f9e0 20 2a 20 31 37 20 41 53 20 63 6f 6c 32 20 46 52   * 17 AS col2 FR
2f9f0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
2fa00 32 36 36 38 34 0d 0a 31 35 36 34 0d 0a 33 32 38  26684..1564..328
2fa10 34 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  44....onlyif mys
2fa20 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
2fa30 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
2fa40 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2fa50 30 34 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  046..SELECT DIST
2fa60 49 4e 43 54 20 2b 20 53 55 4d 28 20 41 4c 4c 20  INCT + SUM( ALL 
2fa70 2b 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 32  + col1 ) AS col2
2fa80 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
2fa90 0d 0a 31 30 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..103....skipif 
2faa0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2fab0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2fac0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2fad0 34 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  46..SELECT DISTI
2fae0 4e 43 54 20 2b 20 53 55 4d 20 28 20 41 4c 4c 20  NCT + SUM ( ALL 
2faf0 2b 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 32  + col1 ) AS col2
2fb00 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
2fb10 0d 0a 31 30 33 0d 0a 0d 0a 71 75 65 72 79 20 49  ..103....query I
2fb20 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2fb30 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 2b 20 2d 20   ALL + col2 + - 
2fb40 31 35 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 41 53  15 * - - col0 AS
2fb50 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
2fb60 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
2fb70 31 30 36 37 0d 0a 2d 36 36 37 0d 0a 2d 39 32 30  1067..-667..-920
2fb80 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2fb90 6f 72 74 0d 0a 53 45 4c 45 43 54 20 37 20 2b 20  ort..SELECT 7 + 
2fba0 2d 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c  - - col2 * + col
2fbb0 30 20 2a 20 2b 20 2b 20 63 6f 6c 31 20 46 52 4f  0 * + + col1 FRO
2fbc0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
2fbd0 2d 2d 2d 2d 0d 0a 31 38 32 37 37 0d 0a 35 37 31  ----..18277..571
2fbe0 31 32 0d 0a 39 36 31 30 0d 0a 0d 0a 71 75 65 72  12..9610....quer
2fbf0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2fc00 45 43 54 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 63  ECT + col2 + + c
2fc10 6f 6c 32 20 2d 20 2b 20 31 37 20 2a 20 2b 20 39  ol2 - + 17 * + 9
2fc20 39 20 2a 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  9 * + col2 AS co
2fc30 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
2fc40 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 38 36  cor0..----..-386
2fc50 36 33 0d 0a 2d 36 37 32 34 30 0d 0a 2d 39 37 34  63..-67240..-974
2fc60 39 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  98....onlyif mys
2fc70 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
2fc80 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
2fc90 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2fca0 20 6c 61 62 65 6c 2d 31 30 35 30 0d 0a 53 45 4c   label-1050..SEL
2fcb0 45 43 54 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c  ECT - CAST( NULL
2fcc0 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2b   AS SIGNED ) + +
2fcd0 20 39 37 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   97 AS col0 FROM
2fce0 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab0 cor0..----
2fcf0 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
2fd00 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
2fd10 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2fd20 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2fd30 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35 30 0d  sort label-1050.
2fd40 0a 53 45 4c 45 43 54 20 2d 20 43 41 53 54 20 28  .SELECT - CAST (
2fd50 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
2fd60 20 29 20 2b 20 2b 20 39 37 20 41 53 20 63 6f 6c   ) + + 97 AS col
2fd70 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  0 FROM tab0 cor0
2fd80 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
2fd90 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72  LL..NULL....quer
2fda0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2fdb0 45 43 54 20 41 4c 4c 20 2d 20 38 33 20 2d 20 38  ECT ALL - 83 - 8
2fdc0 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  2 AS col1 FROM t
2fdd0 61 62 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53  ab2 AS cor0 CROS
2fde0 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63  S JOIN tab0 AS c
2fdf0 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  or1..----..9 val
2fe00 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 62  ues hashing to b
2fe10 61 61 36 37 32 31 34 32 32 30 30 33 30 32 30 30  aa67214220030200
2fe20 61 62 31 38 34 63 32 38 37 33 37 32 39 33 33 0d  ab184c287372933.
2fe30 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2fe40 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
2fe50 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
2fe60 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35 32  wsort label-1052
2fe70 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 43 4f 55  ..SELECT - - COU
2fe80 4e 54 28 20 41 4c 4c 20 2b 20 2d 20 63 6f 6c 32  NT( ALL + - col2
2fe90 20 29 20 2a 20 2b 20 4d 41 58 28 20 2d 20 2d 20   ) * + MAX( - - 
2fea0 37 30 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  70 ) AS col2 FRO
2feb0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
2fec0 2d 2d 2d 2d 0d 0a 32 31 30 0d 0a 0d 0a 73 6b 69  ----..210....ski
2fed0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2fee0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2fef0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2ff00 6c 2d 31 30 35 32 0d 0a 53 45 4c 45 43 54 20 2d  l-1052..SELECT -
2ff10 20 2d 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20 2b   - COUNT ( ALL +
2ff20 20 2d 20 63 6f 6c 32 20 29 20 2a 20 2b 20 4d 41   - col2 ) * + MA
2ff30 58 20 28 20 2d 20 2d 20 37 30 20 29 20 41 53 20  X ( - - 70 ) AS 
2ff40 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41  col2 FROM tab1 A
2ff50 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31  S cor0..----..21
2ff60 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
2ff70 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
2ff80 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
2ff90 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2ffa0 35 33 0d 0a 53 45 4c 45 43 54 20 28 20 4d 41 58  53..SELECT ( MAX
2ffb0 28 20 41 4c 4c 20 28 20 2d 20 63 6f 6c 31 20 29  ( ALL ( - col1 )
2ffc0 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41   ) ) FROM tab0 A
2ffd0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
2ffe0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2fff0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
30000 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
30010 72 74 20 6c 61 62 65 6c 2d 31 30 35 33 0d 0a 53  rt label-1053..S
30020 45 4c 45 43 54 20 28 20 4d 41 58 20 28 20 41 4c  ELECT ( MAX ( AL
30030 4c 20 28 20 2d 20 63 6f 6c 31 20 29 20 29 20 29  L ( - col1 ) ) )
30040 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
30050 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 0d 0a  r0..----..-1....
30060 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
30070 0a 53 45 4c 45 43 54 20 2d 20 36 34 20 2a 20 2b  .SELECT - 64 * +
30080 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   - col1 FROM tab
30090 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
300a0 0a 31 33 34 34 0d 0a 35 31 38 34 0d 0a 36 34 0d  .1344..5184..64.
300b0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
300c0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
300d0 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
300e0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
300f0 61 62 65 6c 2d 31 30 35 35 0d 0a 53 45 4c 45 43  abel-1055..SELEC
30100 54 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31  T - col0 AS col1
30110 2c 20 2d 20 33 36 20 2b 20 2b 20 43 41 53 54 28  , - 36 + + CAST(
30120 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
30130 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  ) FROM tab2 AS c
30140 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a  or0..----..-46..
30150 4e 55 4c 4c 0d 0a 2d 36 34 0d 0a 4e 55 4c 4c 0d  NULL..-64..NULL.
30160 0a 2d 37 35 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  .-75..NULL....sk
30170 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
30180 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
30190 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
301a0 62 65 6c 2d 31 30 35 35 0d 0a 53 45 4c 45 43 54  bel-1055..SELECT
301b0 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 2c   - col0 AS col1,
301c0 20 2d 20 33 36 20 2b 20 2b 20 43 41 53 54 20 28   - 36 + + CAST (
301d0 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
301e0 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
301f0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d  cor0..----..-46.
30200 0a 4e 55 4c 4c 0d 0a 2d 36 34 0d 0a 4e 55 4c 4c  .NULL..-64..NULL
30210 0d 0a 2d 37 35 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  ..-75..NULL....q
30220 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
30230 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
30240 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
30250 52 45 20 2b 20 63 6f 6c 30 20 49 53 20 4e 4f 54  RE + col0 IS NOT
30260 20 4e 55 4c 4c 20 41 4e 44 20 2d 20 28 20 36 34   NULL AND - ( 64
30270 20 29 20 2a 20 32 20 49 53 20 4e 4f 54 20 4e 55   ) * 2 IS NOT NU
30280 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  LL..----..9 valu
30290 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35  es hashing to 75
302a0 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63  c998aa53ac83218c
302b0 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a  bf2feb962d0a49..
302c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
302d0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
302e0 43 54 20 2b 20 28 20 2b 20 63 6f 6c 30 20 29 20  CT + ( + col0 ) 
302f0 2a 20 2b 20 2b 20 63 6f 6c 30 20 2d 20 2b 20 63  * + + col0 - + c
30300 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol0 AS col0 FROM
30310 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
30320 2d 2d 2d 0d 0a 32 35 35 30 0d 0a 37 31 34 30 0d  ---..2550..7140.
30330 0a 38 31 39 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .8190....onlyif 
30340 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
30350 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
30360 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  : ..query III ro
30370 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35 38  wsort label-1058
30380 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
30390 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
303a0 20 57 48 45 52 45 20 2d 20 43 41 53 54 28 20 2d   WHERE - CAST( -
303b0 20 63 6f 6c 32 20 41 53 20 53 49 47 4e 45 44 20   col2 AS SIGNED 
303c0 29 20 2a 20 2b 20 2b 20 63 6f 6c 30 20 2d 20 2d  ) * + + col0 - -
303d0 20 2b 20 36 34 20 49 53 20 4e 55 4c 4c 0d 0a 2d   + 64 IS NULL..-
303e0 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ---....skipif my
303f0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
30400 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20  ible..query III 
30410 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
30420 35 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  58..SELECT ALL *
30430 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
30440 72 30 20 57 48 45 52 45 20 2d 20 43 41 53 54 20  r0 WHERE - CAST 
30450 28 20 2d 20 63 6f 6c 32 20 41 53 20 49 4e 54 45  ( - col2 AS INTE
30460 47 45 52 20 29 20 2a 20 2b 20 2b 20 63 6f 6c 30  GER ) * + + col0
30470 20 2d 20 2d 20 2b 20 36 34 20 49 53 20 4e 55 4c   - - + 64 IS NUL
30480 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
30490 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
304a0 43 54 20 41 4c 4c 20 2b 20 28 20 2d 20 2d 20 63  CT ALL + ( - - c
304b0 6f 6c 32 20 29 20 2a 20 2d 20 28 20 2d 20 2b 20  ol2 ) * - ( - + 
304c0 31 36 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41  16 ) FROM tab0 A
304d0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35  S cor0..----..15
304e0 38 34 0d 0a 31 36 30 0d 0a 37 35 32 0d 0a 0d 0a  84..160..752....
304f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
30500 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
30510 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20   + col0 AS col0 
30520 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
30530 4e 4f 54 20 28 20 4e 55 4c 4c 20 49 53 20 4e 4f  NOT ( NULL IS NO
30540 54 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a  T NULL )..----..
30550 34 36 0d 0a 36 34 0d 0a 37 35 0d 0a 0d 0a 71 75  46..64..75....qu
30560 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
30570 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
30580 2d 20 32 33 2c 20 2d 20 38 32 20 41 53 20 63 6f  - 23, - 82 AS co
30590 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
305a0 2d 2d 0d 0a 2d 32 33 0d 0a 2d 38 32 0d 0a 0d 0a  --..-23..-82....
305b0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
305c0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
305d0 20 2d 20 32 30 20 41 53 20 63 6f 6c 30 20 46 52   - 20 AS col0 FR
305e0 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 2d 20  OM tab1 WHERE - 
305f0 2d 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 31 20  - col0 + - col1 
30600 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
30610 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
30620 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 2c 20  t..SELECT col0, 
30630 2d 20 37 38 20 2b 20 2d 20 28 20 28 20 35 20 29  - 78 + - ( ( 5 )
30640 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d   ) FROM tab1..--
30650 2d 2d 0d 0a 35 31 0d 0a 2d 38 33 0d 0a 38 35 0d  --..51..-83..85.
30660 0a 2d 38 33 0d 0a 39 31 0d 0a 2d 38 33 0d 0a 0d  .-83..91..-83...
30670 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
30680 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
30690 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
306a0 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
306b0 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
306c0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
306d0 43 54 20 63 6f 6c 30 20 63 6f 6c 31 2c 20 63 6f  CT col0 col1, co
306e0 6c 30 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74  l0 + col2 FROM t
306f0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 36  ab0..----..15..6
30700 32 0d 0a 38 37 0d 0a 39 37 0d 0a 39 37 0d 0a 31  2..87..97..97..1
30710 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  96....onlyif mys
30720 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
30730 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
30740 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
30750 30 36 35 0d 0a 53 45 4c 45 43 54 20 4d 49 4e 28  065..SELECT MIN(
30760 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 29 20 46 52   ALL + col1 ) FR
30770 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f  OM tab1 WHERE NO
30780 54 20 2b 20 63 6f 6c 31 20 3c 20 28 20 2b 20 2b  T + col1 < ( + +
30790 20 38 38 20 29 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   88 )..----..NUL
307a0 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
307b0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
307c0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
307d0 6f 72 74 20 6c 61 62 65 6c 2d 31 30 36 35 0d 0a  ort label-1065..
307e0 53 45 4c 45 43 54 20 4d 49 4e 20 28 20 41 4c 4c  SELECT MIN ( ALL
307f0 20 2b 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74   + col1 ) FROM t
30800 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  ab1 WHERE NOT + 
30810 63 6f 6c 31 20 3c 20 28 20 2b 20 2b 20 38 38 20  col1 < ( + + 88 
30820 29 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  )..----..NULL...
30830 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
30840 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f  t..SELECT ALL co
30850 6c 30 20 41 53 20 63 6f 6c 30 2c 20 63 6f 6c 31  l0 AS col0, col1
30860 20 2b 20 2d 20 31 39 20 41 53 20 63 6f 6c 30 20   + - 19 AS col0 
30870 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
30880 0a 34 36 0d 0a 33 32 0d 0a 36 34 0d 0a 35 38 0d  .46..32..64..58.
30890 0a 37 35 0d 0a 34 38 0d 0a 0d 0a 71 75 65 72 79  .75..48....query
308a0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
308b0 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32  CT DISTINCT col2
308c0 20 2b 20 2b 20 2d 20 38 39 20 41 53 20 63 6f 6c   + + - 89 AS col
308d0 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
308e0 2d 0d 0a 2d 32 31 0d 0a 2d 33 30 0d 0a 37 0d 0a  -..-21..-30..7..
308f0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
30900 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
30910 43 54 20 28 20 2b 20 2b 20 39 30 20 29 20 46 52  CT ( + + 90 ) FR
30920 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
30930 0a 2d 2d 2d 2d 0d 0a 39 30 0d 0a 0d 0a 6f 6e 6c  .----..90....onl
30940 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
30950 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
30960 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
30970 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
30980 36 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  69..SELECT DISTI
30990 4e 43 54 20 2d 20 2d 20 63 6f 6c 31 20 2b 20 43  NCT - - col1 + C
309a0 41 53 54 28 20 43 41 53 54 28 20 4e 55 4c 4c 20  AST( CAST( NULL 
309b0 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 53  AS SIGNED ) AS S
309c0 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62  IGNED ) FROM tab
309d0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
309e0 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
309f0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
30a00 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
30a10 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
30a20 36 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  69..SELECT DISTI
30a30 4e 43 54 20 2d 20 2d 20 63 6f 6c 31 20 2b 20 43  NCT - - col1 + C
30a40 41 53 54 20 28 20 43 41 53 54 20 28 20 4e 55 4c  AST ( CAST ( NUL
30a50 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41  L AS INTEGER ) A
30a60 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d  S INTEGER ) FROM
30a70 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
30a80 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65  ---..NULL....que
30a90 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
30aa0 4c 45 43 54 20 2d 20 2d 20 63 6f 6c 31 20 46 52  LECT - - col1 FR
30ab0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
30ac0 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20 2a  WHERE NOT col0 *
30ad0 20 2d 20 2d 20 63 6f 6c 30 20 4e 4f 54 20 49 4e   - - col0 NOT IN
30ae0 20 28 20 2b 20 63 6f 6c 30 2c 20 35 34 20 29 0d   ( + col0, 54 ).
30af0 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
30b00 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
30b10 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
30b20 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
30b30 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
30b40 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
30b50 74 0d 0a 53 45 4c 45 43 54 20 2b 20 38 39 20 2b  t..SELECT + 89 +
30b60 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 32 20 63   col1 * - col2 c
30b70 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
30b80 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30   cor0..----..-10
30b90 38 34 0d 0a 2d 32 39 39 31 0d 0a 2d 33 37 39 37  84..-2991..-3797
30ba0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
30bb0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
30bc0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
30bd0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 37  owsort label-107
30be0 32 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28  2..SELECT COUNT(
30bf0 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41   * ) FROM tab2 A
30c00 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  S cor0 CROSS JOI
30c10 4e 20 74 61 62 30 20 63 6f 72 31 20 57 48 45 52  N tab0 cor1 WHER
30c20 45 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55  E NULL IS NOT NU
30c30 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73  LL..----..0....s
30c40 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
30c50 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
30c60 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
30c70 62 65 6c 2d 31 30 37 32 0d 0a 53 45 4c 45 43 54  bel-1072..SELECT
30c80 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f   COUNT ( * ) FRO
30c90 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 43  M tab2 AS cor0 C
30ca0 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 63  ROSS JOIN tab0 c
30cb0 6f 72 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 49  or1 WHERE NULL I
30cc0 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
30cd0 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..0....onlyif my
30ce0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
30cf0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
30d00 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
30d10 31 30 37 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1073..SELECT ALL
30d20 20 35 39 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a   59 + - COUNT( *
30d30 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
30d40 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
30d50 2d 2d 0d 0a 35 36 0d 0a 0d 0a 73 6b 69 70 69 66  --..56....skipif
30d60 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
30d70 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
30d80 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
30d90 30 37 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  073..SELECT ALL 
30da0 35 39 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a  59 + - COUNT ( *
30db0 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
30dc0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
30dd0 2d 2d 0d 0a 35 36 0d 0a 0d 0a 71 75 65 72 79 20  --..56....query 
30de0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
30df0 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
30e00 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
30e10 45 20 33 39 20 2a 20 2b 20 63 6f 6c 31 20 49 53  E 39 * + col1 IS
30e20 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
30e30 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
30e40 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61  g to 75c998aa53a
30e50 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32  c83218cbf2feb962
30e60 64 30 61 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  d0a49....onlyif 
30e70 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
30e80 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73  tax: aggregate s
30e90 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
30ea0 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
30eb0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 37 35  wsort label-1075
30ec0 0d 0a 53 45 4c 45 43 54 20 53 55 4d 28 20 2b 20  ..SELECT SUM( + 
30ed0 63 6f 6c 31 20 29 20 2d 20 43 41 53 54 28 20 2b  col1 ) - CAST( +
30ee0 20 2d 20 33 20 41 53 20 53 49 47 4e 45 44 20 29   - 3 AS SIGNED )
30ef0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
30f00 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
30f10 0d 0a 36 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..69....skipif m
30f20 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
30f30 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
30f40 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 37  owsort label-107
30f50 35 0d 0a 53 45 4c 45 43 54 20 53 55 4d 20 28 20  5..SELECT SUM ( 
30f60 2b 20 63 6f 6c 31 20 29 20 2d 20 43 41 53 54 20  + col1 ) - CAST 
30f70 28 20 2b 20 2d 20 33 20 41 53 20 49 4e 54 45 47  ( + - 3 AS INTEG
30f80 45 52 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  ER ) AS col2 FRO
30f90 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
30fa0 2d 2d 2d 2d 0d 0a 36 39 0d 0a 0d 0a 71 75 65 72  ----..69....quer
30fb0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
30fc0 45 43 54 20 41 4c 4c 20 2b 20 32 30 20 2b 20 2b  ECT ALL + 20 + +
30fd0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
30fe0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
30ff0 30 31 0d 0a 32 31 0d 0a 34 31 0d 0a 0d 0a 71 75  01..21..41....qu
31000 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
31010 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2b 20 2b  ELECT - col2 + +
31020 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 30   - col2 * - col0
31030 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
31040 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 33 35 0d 0a  r0..----..1035..
31050 32 35 32 30 0d 0a 34 32 39 32 0d 0a 0d 0a 71 75  2520..4292....qu
31060 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
31070 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 28 20  ELECT ALL + - ( 
31080 2b 20 34 33 20 29 20 2d 20 2d 20 63 6f 6c 31 20  + 43 ) - - col1 
31090 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
310a0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
310b0 0a 32 34 0d 0a 33 34 0d 0a 38 0d 0a 0d 0a 6f 6e  .24..34..8....on
310c0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
310d0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
310e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
310f0 20 6c 61 62 65 6c 2d 31 30 37 39 0d 0a 53 45 4c   label-1079..SEL
31100 45 43 54 20 41 4c 4c 20 2b 20 4d 49 4e 28 20 44  ECT ALL + MIN( D
31110 49 53 54 49 4e 43 54 20 2d 20 2d 20 37 33 20 29  ISTINCT - - 73 )
31120 20 2a 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20   * + COUNT( * ) 
31130 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
31140 32 0d 0a 2d 2d 2d 2d 0d 0a 32 31 39 0d 0a 0d 0a  2..----..219....
31150 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
31160 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
31170 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
31180 61 62 65 6c 2d 31 30 37 39 0d 0a 53 45 4c 45 43  abel-1079..SELEC
31190 54 20 41 4c 4c 20 2b 20 4d 49 4e 20 28 20 44 49  T ALL + MIN ( DI
311a0 53 54 49 4e 43 54 20 2d 20 2d 20 37 33 20 29 20  STINCT - - 73 ) 
311b0 2a 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  * + COUNT ( * ) 
311c0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
311d0 32 0d 0a 2d 2d 2d 2d 0d 0a 32 31 39 0d 0a 0d 0a  2..----..219....
311e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
311f0 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2a 20 2d  .SELECT col1 * -
31200 20 63 6f 6c 31 20 2b 20 2b 20 2d 20 63 6f 6c 30   col1 + + - col0
31210 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
31220 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 30 0d 0a  b1..----..-110..
31230 2d 32 33 30 30 0d 0a 2d 32 34 37 0d 0a 0d 0a 71  -2300..-247....q
31240 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
31250 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
31260 74 61 62 31 20 57 48 45 52 45 20 2b 20 35 34 20  tab1 WHERE + 54 
31270 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
31280 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
31290 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2a 20  ..SELECT col0 * 
312a0 2b 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c  + + col2 * + col
312b0 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  0 FROM tab1..---
312c0 2d 0d 0a 32 34 39 36 39 36 0d 0a 34 32 36 32 37  -..249696..42627
312d0 35 0d 0a 35 36 33 31 30 38 0d 0a 0d 0a 71 75 65  5..563108....que
312e0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
312f0 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
31300 62 30 20 57 48 45 52 45 20 2b 20 35 39 20 2b 20  b0 WHERE + 59 + 
31310 2b 20 63 6f 6c 30 20 3c 3e 20 4e 55 4c 4c 0d 0a  + col0 <> NULL..
31320 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
31330 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
31340 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
31350 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
31360 6f 72 74 20 6c 61 62 65 6c 2d 31 30 38 34 0d 0a  ort label-1084..
31370 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 41 53  SELECT + col2 AS
31380 20 63 6f 6c 31 2c 20 2b 20 32 30 20 2b 20 31 36   col1, + 20 + 16
31390 20 44 49 56 20 2d 20 35 39 20 46 52 4f 4d 20 74   DIV - 59 FROM t
313a0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 32  ab0..----..10..2
313b0 30 0d 0a 34 37 0d 0a 32 30 0d 0a 39 39 0d 0a 32  0..47..20..99..2
313c0 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
313d0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
313e0 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
313f0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 38 34 0d  sort label-1084.
31400 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 41  .SELECT + col2 A
31410 53 20 63 6f 6c 31 2c 20 2b 20 32 30 20 2b 20 31  S col1, + 20 + 1
31420 36 20 2f 20 2d 20 35 39 20 46 52 4f 4d 20 74 61  6 / - 59 FROM ta
31430 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 32 30  b0..----..10..20
31440 0d 0a 34 37 0d 0a 32 30 0d 0a 39 39 0d 0a 32 30  ..47..20..99..20
31450 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
31460 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
31470 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
31480 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 38  owsort label-108
31490 35 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 53 55  5..SELECT - + SU
314a0 4d 28 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 29 20  M( ALL - col2 ) 
314b0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
314c0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
314d0 0a 31 32 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .121....skipif m
314e0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
314f0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
31500 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 38  owsort label-108
31510 35 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 53 55  5..SELECT - + SU
31520 4d 20 28 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 29  M ( ALL - col2 )
31530 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
31540 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
31550 0d 0a 31 32 31 0d 0a 0d 0a 71 75 65 72 79 20 49  ..121....query I
31560 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
31570 20 41 4c 4c 20 2b 20 28 20 39 38 20 29 20 41 53   ALL + ( 98 ) AS
31580 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
31590 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39  AS cor0..----..9
315a0 38 0d 0a 39 38 0d 0a 39 38 0d 0a 0d 0a 71 75 65  8..98..98....que
315b0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
315c0 4c 45 43 54 20 41 4c 4c 20 32 35 20 46 52 4f 4d  LECT ALL 25 FROM
315d0 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 43 52   tab1 AS cor0 CR
315e0 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53  OSS JOIN tab0 AS
315f0 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   cor1..----..9 v
31600 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
31610 20 35 32 35 61 35 35 64 35 65 64 32 32 34 61 36   525a55d5ed224a6
31620 32 64 61 36 35 64 66 33 36 37 33 31 38 38 31 61  2da65df36731881a
31630 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  7....query I row
31640 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b  sort..SELECT + +
31650 20 38 37 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   87 AS col2 FROM
31660 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 43 52   tab0 AS cor0 CR
31670 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20 41 53  OSS JOIN tab1 AS
31680 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   cor1..----..9 v
31690 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
316a0 20 66 61 30 63 64 64 38 36 34 38 33 38 34 34 63   fa0cdd86483844c
316b0 64 61 33 62 62 38 30 36 65 30 33 32 64 35 63 36  da3bb806e032d5c6
316c0 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  4....query I row
316d0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 34 32 20  sort..SELECT 42 
316e0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
316f0 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  2 AS cor0 CROSS 
31700 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63 6f 72  JOIN tab0 AS cor
31710 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  1..----..9 value
31720 73 20 68 61 73 68 69 6e 67 20 74 6f 20 36 34 63  s hashing to 64c
31730 32 39 64 62 39 66 31 63 64 37 65 64 34 64 64 65  29db9f1cd7ed4dde
31740 62 31 37 33 35 65 33 65 30 64 34 34 32 0d 0a 0d  b1735e3e0d442...
31750 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
31760 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 41 53  ..SELECT col0 AS
31770 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
31780 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
31790 54 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c  T - col1 * + col
317a0 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  2 IS NOT NULL..-
317b0 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
317c0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
317d0 4c 4c 20 2b 20 2b 20 32 31 20 41 53 20 63 6f 6c  LL + + 21 AS col
317e0 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
317f0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 0d 0a 32  or0..----..21..2
31800 31 0d 0a 32 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  1..21....onlyif 
31810 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
31820 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
31830 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
31840 6c 2d 31 30 39 32 0d 0a 53 45 4c 45 43 54 20 2b  l-1092..SELECT +
31850 20 2b 20 43 4f 55 4e 54 28 20 2b 20 63 6f 6c 31   + COUNT( + col1
31860 20 29 20 2a 20 2b 20 31 35 20 2a 20 2b 20 4d 49   ) * + 15 * + MI
31870 4e 28 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f  N( DISTINCT - co
31880 6c 30 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74  l0 ) col1 FROM t
31890 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
318a0 2d 0d 0a 2d 34 30 39 35 0d 0a 0d 0a 73 6b 69 70  -..-4095....skip
318b0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
318c0 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
318d0 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
318e0 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
318f0 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
31900 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
31910 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
31920 6f 72 74 20 6c 61 62 65 6c 2d 31 30 39 32 0d 0a  ort label-1092..
31930 53 45 4c 45 43 54 20 2b 20 2b 20 43 4f 55 4e 54  SELECT + + COUNT
31940 20 28 20 2b 20 63 6f 6c 31 20 29 20 2a 20 2b 20   ( + col1 ) * + 
31950 31 35 20 2a 20 2b 20 4d 49 4e 20 28 20 44 49 53  15 * + MIN ( DIS
31960 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20 29 20 63  TINCT - col0 ) c
31970 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol1 FROM tab1 AS
31980 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 30   cor0..----..-40
31990 39 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  95....onlyif mys
319a0 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
319b0 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  : aggregate synt
319c0 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
319d0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
319e0 72 74 20 6c 61 62 65 6c 2d 31 30 39 33 0d 0a 53  rt label-1093..S
319f0 45 4c 45 43 54 20 2b 20 4d 49 4e 28 20 44 49 53  ELECT + MIN( DIS
31a00 54 49 4e 43 54 20 2b 20 39 30 20 29 20 2a 20 2b  TINCT + 90 ) * +
31a10 20 2d 20 39 36 20 2b 20 2b 20 43 41 53 54 28 20   - 96 + + CAST( 
31a20 2b 20 2d 20 28 20 2b 20 43 4f 55 4e 54 28 20 44  + - ( + COUNT( D
31a30 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31 20 29  ISTINCT - col1 )
31a40 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 63   ) AS SIGNED ) c
31a50 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
31a60 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 36   cor0..----..-86
31a70 34 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  43....skipif mys
31a80 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
31a90 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  ble..skipif post
31aa0 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
31ab0 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
31ac0 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
31ad0 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
31ae0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
31af0 62 65 6c 2d 31 30 39 33 0d 0a 53 45 4c 45 43 54  bel-1093..SELECT
31b00 20 2b 20 4d 49 4e 20 28 20 44 49 53 54 49 4e 43   + MIN ( DISTINC
31b10 54 20 2b 20 39 30 20 29 20 2a 20 2b 20 2d 20 39  T + 90 ) * + - 9
31b20 36 20 2b 20 2b 20 43 41 53 54 20 28 20 2b 20 2d  6 + + CAST ( + -
31b30 20 28 20 2b 20 43 4f 55 4e 54 20 28 20 44 49 53   ( + COUNT ( DIS
31b40 54 49 4e 43 54 20 2d 20 63 6f 6c 31 20 29 20 29  TINCT - col1 ) )
31b50 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 63 6f   AS INTEGER ) co
31b60 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
31b70 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 36 34  cor0..----..-864
31b80 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
31b90 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
31ba0 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
31bb0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
31bc0 6c 61 62 65 6c 2d 31 30 39 34 0d 0a 53 45 4c 45  label-1094..SELE
31bd0 43 54 20 35 31 20 44 49 56 20 2d 20 2d 20 63 6f  CT 51 DIV - - co
31be0 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l2 FROM tab0..--
31bf0 2d 2d 0d 0a 30 0d 0a 31 0d 0a 35 0d 0a 0d 0a 73  --..0..1..5....s
31c00 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
31c10 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
31c20 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
31c30 62 65 6c 2d 31 30 39 34 0d 0a 53 45 4c 45 43 54  bel-1094..SELECT
31c40 20 35 31 20 2f 20 2d 20 2d 20 63 6f 6c 32 20 46   51 / - - col2 F
31c50 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
31c60 30 0d 0a 31 0d 0a 35 0d 0a 0d 0a 71 75 65 72 79  0..1..5....query
31c70 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
31c80 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32  CT DISTINCT col2
31c90 20 2a 20 2d 20 2b 20 63 6f 6c 32 20 41 53 20 63   * - + col2 AS c
31ca0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
31cb0 2d 2d 2d 0d 0a 2d 31 30 30 0d 0a 2d 32 32 30 39  ---..-100..-2209
31cc0 0d 0a 2d 39 38 30 31 0d 0a 0d 0a 6f 6e 6c 79 69  ..-9801....onlyi
31cd0 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
31ce0 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
31cf0 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
31d00 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 39 36  wsort label-1096
31d10 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63  ..SELECT ALL - c
31d20 6f 6c 30 20 2a 20 2d 20 63 6f 6c 31 20 46 52 4f  ol0 * - col1 FRO
31d30 4d 20 74 61 62 30 20 57 48 45 52 45 20 2d 20 2d  M tab0 WHERE - -
31d40 20 63 6f 6c 31 20 2a 20 2d 20 43 41 53 54 28 20   col1 * - CAST( 
31d50 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
31d60 20 2f 20 2d 20 63 6f 6c 30 20 42 45 54 57 45 45   / - col0 BETWEE
31d70 4e 20 63 6f 6c 31 20 41 4e 44 20 33 39 20 2a 20  N col1 AND 39 * 
31d80 2b 20 2b 20 33 37 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  + + 37..----....
31d90 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
31da0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
31db0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
31dc0 61 62 65 6c 2d 31 30 39 36 0d 0a 53 45 4c 45 43  abel-1096..SELEC
31dd0 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 2a 20 2d  T ALL - col0 * -
31de0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
31df0 57 48 45 52 45 20 2d 20 2d 20 63 6f 6c 31 20 2a  WHERE - - col1 *
31e00 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   - CAST ( NULL A
31e10 53 20 49 4e 54 45 47 45 52 20 29 20 2f 20 2d 20  S INTEGER ) / - 
31e20 63 6f 6c 30 20 42 45 54 57 45 45 4e 20 63 6f 6c  col0 BETWEEN col
31e30 31 20 41 4e 44 20 33 39 20 2a 20 2b 20 2b 20 33  1 AND 39 * + + 3
31e40 37 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  7..----....query
31e50 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
31e60 43 54 20 41 4c 4c 20 2b 20 33 32 20 2b 20 2d 20  CT ALL + 32 + - 
31e70 36 36 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  66 FROM tab0..--
31e80 2d 2d 0d 0a 2d 33 34 0d 0a 2d 33 34 0d 0a 2d 33  --..-34..-34..-3
31e90 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  4....onlyif mysq
31ea0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
31eb0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
31ec0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
31ed0 39 38 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 41 58  98..SELECT + MAX
31ee0 28 20 2d 20 37 38 20 29 20 46 52 4f 4d 20 74 61  ( - 78 ) FROM ta
31ef0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
31f00 0d 0a 2d 37 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-78....skipif 
31f10 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
31f20 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
31f30 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
31f40 39 38 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 41 58  98..SELECT + MAX
31f50 20 28 20 2d 20 37 38 20 29 20 46 52 4f 4d 20 74   ( - 78 ) FROM t
31f60 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
31f70 2d 0d 0a 2d 37 38 0d 0a 0d 0a 6f 6e 6c 79 69 66  -..-78....onlyif
31f80 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
31f90 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
31fa0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
31fb0 65 6c 2d 31 30 39 39 0d 0a 53 45 4c 45 43 54 20  el-1099..SELECT 
31fc0 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54  DISTINCT - COUNT
31fd0 28 20 2a 20 29 20 2b 20 2d 20 37 35 20 63 6f 6c  ( * ) + - 75 col
31fe0 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
31ff0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 38 0d 0a  or0..----..-78..
32000 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
32010 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
32020 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
32030 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
32040 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
32050 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
32060 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
32070 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
32080 31 30 39 39 0d 0a 53 45 4c 45 43 54 20 44 49 53  1099..SELECT DIS
32090 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 20 28 20  TINCT - COUNT ( 
320a0 2a 20 29 20 2b 20 2d 20 37 35 20 63 6f 6c 31 20  * ) + - 75 col1 
320b0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
320c0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 38 0d 0a 0d 0a  0..----..-78....
320d0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
320e0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
320f0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
32100 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c 20 2b  0 WHERE NULL < +
32110 20 63 6f 6c 32 20 2a 20 2b 20 2d 20 63 6f 6c 30   col2 * + - col0
32120 20 2d 20 2b 20 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d   - + - col0..---
32130 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  -....query III r
32140 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
32150 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
32160 20 2b 20 2b 20 37 35 20 2a 20 2b 20 2d 20 34 35   + + 75 * + - 45
32170 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
32180 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
32190 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
321a0 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
321b0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
321c0 65 6c 2d 31 31 30 32 0d 0a 53 45 4c 45 43 54 20  el-1102..SELECT 
321d0 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  + CAST( NULL AS 
321e0 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 32  SIGNED ) AS col2
321f0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
32200 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
32210 62 31 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39  b1 cor1..----..9
32220 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
32230 74 6f 20 63 64 37 61 37 39 30 31 65 34 37 63 31  to cd7a7901e47c1
32240 35 31 35 35 34 30 34 61 66 66 30 64 32 31 36 66  5155404aff0d216f
32250 65 30 62 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  e0b....skipif my
32260 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
32270 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
32280 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 30 32  wsort label-1102
32290 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54 20  ..SELECT + CAST 
322a0 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
322b0 52 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  R ) AS col2 FROM
322c0 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 43 52   tab2 AS cor0 CR
322d0 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20 63 6f  OSS JOIN tab1 co
322e0 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  r1..----..9 valu
322f0 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 64  es hashing to cd
32300 37 61 37 39 30 31 65 34 37 63 31 35 31 35 35 34  7a7901e47c151554
32310 30 34 61 66 66 30 64 32 31 36 66 65 30 62 0d 0a  04aff0d216fe0b..
32320 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
32330 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
32340 43 54 20 63 6f 6c 32 20 2a 20 34 32 20 46 52 4f  CT col2 * 42 FRO
32350 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 34  M tab1..----..24
32360 37 38 0d 0a 32 38 35 36 0d 0a 34 30 33 32 0d 0a  78..2856..4032..
32370 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
32380 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
32390 63 6f 6c 32 20 2a 20 63 6f 6c 32 20 2a 20 2b 20  col2 * col2 * + 
323a0 32 20 2a 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20  2 * + + col2 AS 
323b0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
323c0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
323d0 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c   NULL IS NOT NUL
323e0 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 37 36 39 34 37 32  L..----..1769472
323f0 0d 0a 34 31 30 37 35 38 0d 0a 36 32 38 38 36 34  ..410758..628864
32400 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
32410 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
32420 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
32430 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
32440 6c 61 62 65 6c 2d 31 31 30 35 0d 0a 53 45 4c 45  label-1105..SELE
32450 43 54 20 2d 20 63 6f 6c 30 2c 20 2b 20 63 6f 6c  CT - col0, + col
32460 31 20 44 49 56 20 2d 20 63 6f 6c 31 20 41 53 20  1 DIV - col1 AS 
32470 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
32480 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
32490 35 0d 0a 2d 31 0d 0a 2d 38 37 0d 0a 2d 31 0d 0a  5..-1..-87..-1..
324a0 2d 39 37 0d 0a 2d 31 0d 0a 0d 0a 73 6b 69 70 69  -97..-1....skipi
324b0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
324c0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
324d0 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
324e0 2d 31 31 30 35 0d 0a 53 45 4c 45 43 54 20 2d 20  -1105..SELECT - 
324f0 63 6f 6c 30 2c 20 2b 20 63 6f 6c 31 20 2f 20 2d  col0, + col1 / -
32500 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52   col1 AS col1 FR
32510 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
32520 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 2d 31 0d 0a  .----..-15..-1..
32530 2d 38 37 0d 0a 2d 31 0d 0a 2d 39 37 0d 0a 2d 31  -87..-1..-97..-1
32540 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
32550 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
32560 49 4e 43 54 20 28 20 2d 20 63 6f 6c 32 20 29 20  INCT ( - col2 ) 
32570 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31  + - col2 AS col1
32580 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
32590 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 38 0d 0a  r0..----..-198..
325a0 2d 32 30 0d 0a 2d 39 34 0d 0a 0d 0a 71 75 65 72  -20..-94....quer
325b0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
325c0 45 43 54 20 41 4c 4c 20 2d 20 32 32 20 2d 20 2b  ECT ALL - 22 - +
325d0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
325e0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
325f0 37 33 0d 0a 2d 38 39 0d 0a 2d 39 39 0d 0a 0d 0a  73..-89..-99....
32600 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
32610 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c  ..SELECT ALL col
32620 32 20 2d 20 36 36 20 41 53 20 63 6f 6c 32 2c 20  2 - 66 AS col2, 
32630 33 33 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  33 AS col2 FROM 
32640 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
32650 2d 2d 0d 0a 2d 31 39 0d 0a 33 33 0d 0a 2d 35 36  --..-19..33..-56
32660 0d 0a 33 33 0d 0a 33 33 0d 0a 33 33 0d 0a 0d 0a  ..33..33..33....
32670 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
32680 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
32690 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
326a0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
326b0 6c 2d 31 31 30 39 0d 0a 53 45 4c 45 43 54 20 63  l-1109..SELECT c
326c0 6f 6c 32 20 2a 20 2d 20 31 35 20 2b 20 2b 20 2b  ol2 * - 15 + + +
326d0 20 31 38 20 2a 20 63 6f 6c 32 20 41 53 20 63 6f   18 * col2 AS co
326e0 6c 32 2c 20 2d 20 36 20 46 52 4f 4d 20 74 61 62  l2, - 6 FROM tab
326f0 31 20 57 48 45 52 45 20 2b 20 63 6f 6c 31 20 2b  1 WHERE + col1 +
32700 20 2b 20 63 6f 6c 32 20 3e 20 43 41 53 54 28 20   + col2 > CAST( 
32710 63 6f 6c 30 20 41 53 20 53 49 47 4e 45 44 20 29  col0 AS SIGNED )
32720 0d 0a 2d 2d 2d 2d 0d 0a 32 30 34 0d 0a 2d 36 0d  ..----..204..-6.
32730 0a 32 38 38 0d 0a 2d 36 0d 0a 0d 0a 73 6b 69 70  .288..-6....skip
32740 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
32750 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
32760 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
32770 6c 2d 31 31 30 39 0d 0a 53 45 4c 45 43 54 20 63  l-1109..SELECT c
32780 6f 6c 32 20 2a 20 2d 20 31 35 20 2b 20 2b 20 2b  ol2 * - 15 + + +
32790 20 31 38 20 2a 20 63 6f 6c 32 20 41 53 20 63 6f   18 * col2 AS co
327a0 6c 32 2c 20 2d 20 36 20 46 52 4f 4d 20 74 61 62  l2, - 6 FROM tab
327b0 31 20 57 48 45 52 45 20 2b 20 63 6f 6c 31 20 2b  1 WHERE + col1 +
327c0 20 2b 20 63 6f 6c 32 20 3e 20 43 41 53 54 20 28   + col2 > CAST (
327d0 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45 52   col0 AS INTEGER
327e0 20 29 0d 0a 2d 2d 2d 2d 0d 0a 32 30 34 0d 0a 2d   )..----..204..-
327f0 36 0d 0a 32 38 38 0d 0a 2d 36 0d 0a 0d 0a 71 75  6..288..-6....qu
32800 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
32810 45 4c 45 43 54 20 2b 20 39 36 20 41 53 20 63 6f  ELECT + 96 AS co
32820 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  l1 FROM tab1 WHE
32830 52 45 20 4e 55 4c 4c 20 3d 20 4e 55 4c 4c 0d 0a  RE NULL = NULL..
32840 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
32850 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
32860 41 4c 4c 20 32 38 20 41 53 20 63 6f 6c 30 20 46  ALL 28 AS col0 F
32870 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
32880 4f 54 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e  OT col1 IS NOT N
32890 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
328a0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
328b0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 37 31  LECT DISTINCT 71
328c0 20 2a 20 2b 20 39 34 20 46 52 4f 4d 20 74 61 62   * + 94 FROM tab
328d0 30 0d 0a 2d 2d 2d 2d 0d 0a 36 36 37 34 0d 0a 0d  0..----..6674...
328e0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
328f0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
32900 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
32910 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31 33 0d 0a  ort label-1113..
32920 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 2d 20  SELECT COUNT( - 
32930 2b 20 28 20 2b 20 2d 20 63 6f 6c 32 20 29 20 29  + ( + - col2 ) )
32940 20 2a 20 2b 20 39 20 46 52 4f 4d 20 74 61 62 30   * + 9 FROM tab0
32950 0d 0a 2d 2d 2d 2d 0d 0a 32 37 0d 0a 0d 0a 73 6b  ..----..27....sk
32960 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
32970 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
32980 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
32990 65 6c 2d 31 31 31 33 0d 0a 53 45 4c 45 43 54 20  el-1113..SELECT 
329a0 43 4f 55 4e 54 20 28 20 2d 20 2b 20 28 20 2b 20  COUNT ( - + ( + 
329b0 2d 20 63 6f 6c 32 20 29 20 29 20 2a 20 2b 20 39  - col2 ) ) * + 9
329c0 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
329d0 0d 0a 32 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..27....query II
329e0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
329f0 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
32a00 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
32a10 34 38 20 2a 20 2b 20 63 6f 6c 30 20 3c 3d 20 63  48 * + col0 <= c
32a20 6f 6c 32 20 2a 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d  ol2 * col2..----
32a30 0d 0a 35 31 0d 0a 31 34 0d 0a 39 36 0d 0a 39 31  ..51..14..96..91
32a40 0d 0a 34 37 0d 0a 36 38 0d 0a 0d 0a 6f 6e 6c 79  ..47..68....only
32a50 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
32a60 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
32a70 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
32a80 61 62 65 6c 2d 31 31 31 35 0d 0a 53 45 4c 45 43  abel-1115..SELEC
32a90 54 20 39 34 20 2a 20 2d 20 43 4f 55 4e 54 28 20  T 94 * - COUNT( 
32aa0 2a 20 29 20 2a 20 2d 20 32 37 20 46 52 4f 4d 20  * ) * - 27 FROM 
32ab0 74 61 62 30 20 41 53 20 63 6f 72 30 20 43 52 4f  tab0 AS cor0 CRO
32ac0 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53 20  SS JOIN tab2 AS 
32ad0 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 32 32 38 34  cor1..----..2284
32ae0 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  2....skipif mysq
32af0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
32b00 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
32b10 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31 35 0d 0a  ort label-1115..
32b20 53 45 4c 45 43 54 20 39 34 20 2a 20 2d 20 43 4f  SELECT 94 * - CO
32b30 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20 32 37  UNT ( * ) * - 27
32b40 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
32b50 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
32b60 62 32 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d  b2 AS cor1..----
32b70 0d 0a 32 32 38 34 32 0d 0a 0d 0a 6f 6e 6c 79 69  ..22842....onlyi
32b80 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
32b90 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65  yntax: aggregate
32ba0 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
32bb0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
32bc0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
32bd0 31 36 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53  16..SELECT - CAS
32be0 54 28 20 2b 20 2b 20 4d 49 4e 28 20 2d 20 63 6f  T( + + MIN( - co
32bf0 6c 32 20 29 20 41 53 20 53 49 47 4e 45 44 20 29  l2 ) AS SIGNED )
32c00 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
32c10 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 38 0d 0a 0d 0a  b2..----..58....
32c20 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
32c30 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
32c40 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
32c50 61 62 65 6c 2d 31 31 31 36 0d 0a 53 45 4c 45 43  abel-1116..SELEC
32c60 54 20 2d 20 43 41 53 54 20 28 20 2b 20 2b 20 4d  T - CAST ( + + M
32c70 49 4e 20 28 20 2d 20 63 6f 6c 32 20 29 20 41 53  IN ( - col2 ) AS
32c80 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f   INTEGER ) AS co
32c90 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l0 FROM tab2..--
32ca0 2d 2d 0d 0a 35 38 0d 0a 0d 0a 6f 6e 6c 79 69 66  --..58....onlyif
32cb0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
32cc0 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
32cd0 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
32ce0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31 37 0d  sort label-1117.
32cf0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20  .SELECT ALL - - 
32d00 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
32d10 47 4e 45 44 20 29 20 2f 20 34 35 20 2d 20 2d 20  GNED ) / 45 - - 
32d20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f  col2 AS col2 FRO
32d30 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 55 4c  M tab0 WHERE NUL
32d40 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  L IS NOT NULL..-
32d50 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ---....skipif my
32d60 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
32d70 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
32d80 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31 37  wsort label-1117
32d90 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d  ..SELECT ALL - -
32da0 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
32db0 49 4e 54 45 47 45 52 20 29 20 2f 20 34 35 20 2d  INTEGER ) / 45 -
32dc0 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20   - col2 AS col2 
32dd0 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
32de0 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  NULL IS NOT NULL
32df0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
32e00 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
32e10 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 32  T DISTINCT - + 2
32e20 33 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  3 AS col0 FROM t
32e30 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
32e40 2d 0d 0a 2d 32 33 0d 0a 0d 0a 73 6b 69 70 69 66  -..-23....skipif
32e50 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
32e60 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
32e70 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
32e80 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
32e90 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  s..query II rows
32ea0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20  ort..SELECT + - 
32eb0 31 33 20 2a 20 2d 20 28 20 2b 20 2b 20 35 35 20  13 * - ( + + 55 
32ec0 29 20 63 6f 6c 30 2c 20 38 39 20 41 53 20 63 6f  ) col0, 89 AS co
32ed0 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
32ee0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 31 35 0d  cor0..----..715.
32ef0 0a 38 39 0d 0a 37 31 35 0d 0a 38 39 0d 0a 37 31  .89..715..89..71
32f00 35 0d 0a 38 39 0d 0a 0d 0a 71 75 65 72 79 20 49  5..89....query I
32f10 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
32f20 20 2b 20 28 20 2d 20 2d 20 35 35 20 29 20 41 53   + ( - - 55 ) AS
32f30 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
32f40 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35  AS cor0..----..5
32f50 35 0d 0a 35 35 0d 0a 35 35 0d 0a 0d 0a 71 75 65  5..55..55....que
32f60 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
32f70 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
32f80 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
32f90 20 4e 4f 54 20 28 20 2d 20 28 20 63 6f 6c 31 20   NOT ( - ( col1 
32fa0 29 20 3c 3e 20 2d 20 2d 20 63 6f 6c 30 20 29 0d  ) <> - - col0 ).
32fb0 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
32fc0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
32fd0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
32fe0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
32ff0 6c 2d 31 31 32 32 0d 0a 53 45 4c 45 43 54 20 2b  l-1122..SELECT +
33000 20 2d 20 4d 49 4e 28 20 41 4c 4c 20 2b 20 2b 20   - MIN( ALL + + 
33010 31 34 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74  14 ) col2 FROM t
33020 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab0 cor0..----..
33030 2d 31 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -14....skipif my
33040 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
33050 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
33060 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
33070 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
33080 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
33090 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
330a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
330b0 61 62 65 6c 2d 31 31 32 32 0d 0a 53 45 4c 45 43  abel-1122..SELEC
330c0 54 20 2b 20 2d 20 4d 49 4e 20 28 20 41 4c 4c 20  T + - MIN ( ALL 
330d0 2b 20 2b 20 31 34 20 29 20 63 6f 6c 32 20 46 52  + + 14 ) col2 FR
330e0 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d  OM tab0 cor0..--
330f0 2d 2d 0d 0a 2d 31 34 0d 0a 0d 0a 71 75 65 72 79  --..-14....query
33100 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
33110 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  LECT * FROM tab1
33120 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
33130 4f 54 20 28 20 2d 20 2b 20 63 6f 6c 30 20 2a 20  OT ( - + col0 * 
33140 2b 20 32 32 20 2a 20 2d 20 2b 20 63 6f 6c 30 20  + 22 * - + col0 
33150 49 53 20 4e 4f 54 20 4e 55 4c 4c 20 29 0d 0a 2d  IS NOT NULL )..-
33160 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
33170 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
33180 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
33190 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
331a0 31 31 32 34 0d 0a 53 45 4c 45 43 54 20 44 49 53  1124..SELECT DIS
331b0 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 28 20 2b  TINCT - COUNT( +
331c0 20 39 34 20 29 20 41 53 20 63 6f 6c 31 20 46 52   94 ) AS col1 FR
331d0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
331e0 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69  .----..-3....ski
331f0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
33200 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
33210 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
33220 6c 2d 31 31 32 34 0d 0a 53 45 4c 45 43 54 20 44  l-1124..SELECT D
33230 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 20  ISTINCT - COUNT 
33240 28 20 2b 20 39 34 20 29 20 41 53 20 63 6f 6c 31  ( + 94 ) AS col1
33250 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
33260 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a  r0..----..-3....
33270 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
33280 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
33290 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
332a0 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
332b0 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
332c0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
332d0 54 20 2b 20 33 35 20 41 53 20 63 6f 6c 32 2c 20  T + 35 AS col2, 
332e0 63 6f 6c 31 20 2a 20 63 6f 6c 32 20 2b 20 63 6f  col1 * col2 + co
332f0 6c 30 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  l0 col2 FROM tab
33300 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
33310 0a 33 35 0d 0a 31 32 31 39 0d 0a 33 35 0d 0a 33  .35..1219..35..3
33320 31 34 34 0d 0a 33 35 0d 0a 33 39 36 31 0d 0a 0d  144..35..3961...
33330 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
33340 0d 0a 53 45 4c 45 43 54 20 2b 20 34 33 20 2a 20  ..SELECT + 43 * 
33350 2b 20 2b 20 32 37 20 2a 20 2b 20 2d 20 63 6f 6c  + + 27 * + - col
33360 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  0 FROM tab1..---
33370 2d 0d 0a 2d 31 30 35 36 35 31 0d 0a 2d 35 39 32  -..-105651..-592
33380 31 31 0d 0a 2d 39 38 36 38 35 0d 0a 0d 0a 6f 6e  11..-98685....on
33390 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
333a0 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
333b0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
333c0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
333d0 31 32 37 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30  127..SELECT col0
333e0 20 2b 20 2b 20 43 41 53 54 28 20 2d 20 63 6f 6c   + + CAST( - col
333f0 30 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52  0 AS SIGNED ) FR
33400 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30  OM tab0..----..0
33410 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  ..0..0....skipif
33420 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
33430 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
33440 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
33450 31 32 37 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30  127..SELECT col0
33460 20 2b 20 2b 20 43 41 53 54 20 28 20 2d 20 63 6f   + + CAST ( - co
33470 6c 30 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  l0 AS INTEGER ) 
33480 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
33490 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79  .0..0..0....only
334a0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
334b0 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
334c0 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
334d0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 32  owsort label-112
334e0 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  8..SELECT ALL + 
334f0 31 35 20 2b 20 43 41 53 54 28 20 63 6f 6c 30 20  15 + CAST( col0 
33500 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2d 20  AS SIGNED ) + - 
33510 34 36 20 2a 20 2b 20 2d 20 63 6f 6c 30 20 2d 20  46 * + - col0 - 
33520 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  - col2 FROM tab2
33530 0d 0a 2d 2d 2d 2d 0d 0a 32 32 30 30 0d 0a 33 30  ..----..2200..30
33540 36 33 0d 0a 33 35 39 38 0d 0a 0d 0a 73 6b 69 70  63..3598....skip
33550 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
33560 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
33570 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
33580 2d 31 31 32 38 0d 0a 53 45 4c 45 43 54 20 41 4c  -1128..SELECT AL
33590 4c 20 2b 20 31 35 20 2b 20 43 41 53 54 20 28 20  L + 15 + CAST ( 
335a0 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45 52 20  col0 AS INTEGER 
335b0 29 20 2b 20 2d 20 34 36 20 2a 20 2b 20 2d 20 63  ) + - 46 * + - c
335c0 6f 6c 30 20 2d 20 2d 20 63 6f 6c 32 20 46 52 4f  ol0 - - col2 FRO
335d0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 32  M tab2..----..22
335e0 30 30 0d 0a 33 30 36 33 0d 0a 33 35 39 38 0d 0a  00..3063..3598..
335f0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
33600 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f  t..SELECT ALL co
33610 6c 32 20 2b 20 2d 20 2b 20 32 33 20 41 53 20 63  l2 + - + 23 AS c
33620 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol2 FROM tab1..-
33630 2d 2d 2d 0d 0a 33 36 0d 0a 34 35 0d 0a 37 33 0d  ---..36..45..73.
33640 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
33650 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 39 30 20  rt..SELECT - 90 
33660 2b 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c  + - col2 * + col
33670 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  2 AS col0 FROM t
33680 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 30 0d  ab0..----..-190.
33690 0a 2d 32 32 39 39 0d 0a 2d 39 38 39 31 0d 0a 0d  .-2299..-9891...
336a0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
336b0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
336c0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
336d0 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33 31 0d 0a  ort label-1131..
336e0 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55  SELECT ALL - COU
336f0 4e 54 28 20 2a 20 29 20 2b 20 2d 20 35 32 20 2a  NT( * ) + - 52 *
33700 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
33710 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
33720 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35   cor0..----..-15
33730 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
33740 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
33750 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
33760 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33 31 0d 0a  ort label-1131..
33770 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55  SELECT ALL - COU
33780 4e 54 20 28 20 2a 20 29 20 2b 20 2d 20 35 32 20  NT ( * ) + - 52 
33790 2a 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53  * COUNT ( * ) AS
337a0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
337b0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
337c0 31 35 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  159....onlyif my
337d0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
337e0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
337f0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
33800 31 31 33 32 0d 0a 53 45 4c 45 43 54 20 2b 20 2d  1132..SELECT + -
33810 20 28 20 2b 20 4d 41 58 28 20 2d 20 63 6f 6c 30   ( + MAX( - col0
33820 20 29 20 29 20 46 52 4f 4d 20 74 61 62 32 20 63   ) ) FROM tab2 c
33830 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 0d  or0..----..46...
33840 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
33850 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
33860 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
33870 6c 61 62 65 6c 2d 31 31 33 32 0d 0a 53 45 4c 45  label-1132..SELE
33880 43 54 20 2b 20 2d 20 28 20 2b 20 4d 41 58 20 28  CT + - ( + MAX (
33890 20 2d 20 63 6f 6c 30 20 29 20 29 20 46 52 4f 4d   - col0 ) ) FROM
338a0 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
338b0 0d 0a 34 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..46....query II
338c0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
338d0 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48  T * FROM tab1 WH
338e0 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 4e 4f 54  ERE ( NULL ) NOT
338f0 20 42 45 54 57 45 45 4e 20 2b 20 37 39 20 2d 20   BETWEEN + 79 - 
33900 2b 20 63 6f 6c 31 20 41 4e 44 20 2d 20 63 6f 6c  + col1 AND - col
33910 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  0..----....query
33920 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
33930 43 54 20 44 49 53 54 49 4e 43 54 20 39 36 20 2b  CT DISTINCT 96 +
33940 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 32   + col2 + - col2
33950 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
33960 62 32 0d 0a 2d 2d 2d 2d 0d 0a 39 36 0d 0a 0d 0a  b2..----..96....
33970 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
33980 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2b 20 2d  .SELECT col2 + -
33990 20 63 6f 6c 32 20 2b 20 35 39 20 2a 20 2b 20 2d   col2 + 59 * + -
339a0 20 63 6f 6c 32 20 2d 20 2d 20 63 6f 6c 30 20 41   col2 - - col0 A
339b0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
339c0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b   AS cor0 WHERE +
339d0 20 32 39 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d   29 IS NULL..---
339e0 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
339f0 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
33a00 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
33a10 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
33a20 6c 61 62 65 6c 2d 31 31 33 36 0d 0a 53 45 4c 45  label-1136..SELE
33a30 43 54 20 43 41 53 54 28 20 2b 20 63 6f 6c 31 20  CT CAST( + col1 
33a40 41 53 20 53 49 47 4e 45 44 20 29 20 2d 20 2b 20  AS SIGNED ) - + 
33a50 2b 20 28 20 2d 20 37 33 20 29 20 2a 20 63 6f 6c  + ( - 73 ) * col
33a60 32 20 2a 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  2 * col0 FROM ta
33a70 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
33a80 0d 0a 31 38 36 39 35 37 0d 0a 33 31 37 36 31 37  ..186957..317617
33a90 0d 0a 37 37 32 38 35 0d 0a 0d 0a 73 6b 69 70 69  ..77285....skipi
33aa0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
33ab0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
33ac0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
33ad0 31 31 33 36 0d 0a 53 45 4c 45 43 54 20 43 41 53  1136..SELECT CAS
33ae0 54 20 28 20 2b 20 63 6f 6c 31 20 41 53 20 49 4e  T ( + col1 AS IN
33af0 54 45 47 45 52 20 29 20 2d 20 2b 20 2b 20 28 20  TEGER ) - + + ( 
33b00 2d 20 37 33 20 29 20 2a 20 63 6f 6c 32 20 2a 20  - 73 ) * col2 * 
33b10 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
33b20 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 38  S cor0..----..18
33b30 36 39 35 37 0d 0a 33 31 37 36 31 37 0d 0a 37 37  6957..317617..77
33b40 32 38 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  285....onlyif my
33b50 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
33b60 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
33b70 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
33b80 74 20 6c 61 62 65 6c 2d 31 31 33 37 0d 0a 53 45  t label-1137..SE
33b90 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
33ba0 2d 20 43 41 53 54 28 20 2b 20 28 20 63 6f 6c 30  - CAST( + ( col0
33bb0 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b   ) AS SIGNED ) +
33bc0 20 2d 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c   - + col1 AS col
33bd0 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  0 FROM tab0 cor0
33be0 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 36 0d 0a 36 36 0d  ..----..-66..66.
33bf0 0a 39 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .96....skipif my
33c00 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
33c10 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
33c20 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33 37  wsort label-1137
33c30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
33c40 54 20 2d 20 2d 20 43 41 53 54 20 28 20 2b 20 28  T - - CAST ( + (
33c50 20 63 6f 6c 30 20 29 20 41 53 20 49 4e 54 45 47   col0 ) AS INTEG
33c60 45 52 20 29 20 2b 20 2d 20 2b 20 63 6f 6c 31 20  ER ) + - + col1 
33c70 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
33c80 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36  0 cor0..----..-6
33c90 36 0d 0a 36 36 0d 0a 39 36 0d 0a 0d 0a 71 75 65  6..66..96....que
33ca0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
33cb0 4c 45 43 54 20 41 4c 4c 20 28 20 2b 20 2b 20 37  LECT ALL ( + + 7
33cc0 31 20 29 20 2b 20 2d 20 37 31 20 41 53 20 63 6f  1 ) + - 71 AS co
33cd0 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
33ce0 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  cor0 WHERE NULL 
33cf0 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30  IS NULL..----..0
33d00 0d 0a 30 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20  ..0..0....query 
33d10 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
33d20 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  T DISTINCT - col
33d30 30 20 2b 20 2d 20 2d 20 63 6f 6c 31 20 2b 20 2d  0 + - - col1 + -
33d40 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
33d50 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
33d60 31 35 33 0d 0a 2d 31 39 33 0d 0a 35 31 0d 0a 0d  153..-193..51...
33d70 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
33d80 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43  CAST syntax: DEC
33d90 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65  IMAL type: ..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 34 30 0d 0a 53 45 4c 45 43 54 20  el-1140..SELECT 
33dc0 2b 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  + - CAST( NULL A
33dd0 53 20 44 45 43 49 4d 41 4c 20 29 20 2b 20 2d 20  S DECIMAL ) + - 
33de0 63 6f 6c 32 20 2b 20 2d 20 2b 20 43 41 53 54 28  col2 + - + CAST(
33df0 20 2d 20 2b 20 37 32 20 41 53 20 44 45 43 49 4d   - + 72 AS DECIM
33e00 41 4c 20 29 20 2f 20 2b 20 2b 20 63 6f 6c 32 20  AL ) / + + col2 
33e10 2b 20 2d 20 35 33 20 2a 20 2d 20 63 6f 6c 31 20  + - 53 * - col1 
33e20 2a 20 2d 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 2b  * - + col0 * - +
33e30 20 33 37 20 46 52 4f 4d 20 74 61 62 30 20 41 53   37 FROM tab0 AS
33e40 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
33e50 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
33e60 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
33e70 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
33e80 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
33e90 6c 61 62 65 6c 2d 31 31 34 30 0d 0a 53 45 4c 45  label-1140..SELE
33ea0 43 54 20 2b 20 2d 20 43 41 53 54 20 28 20 4e 55  CT + - CAST ( NU
33eb0 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 2b 20 2d  LL AS REAL ) + -
33ec0 20 63 6f 6c 32 20 2b 20 2d 20 2b 20 43 41 53 54   col2 + - + CAST
33ed0 20 28 20 2d 20 2b 20 37 32 20 41 53 20 52 45 41   ( - + 72 AS REA
33ee0 4c 20 29 20 2f 20 2b 20 2b 20 63 6f 6c 32 20 2b  L ) / + + col2 +
33ef0 20 2d 20 35 33 20 2a 20 2d 20 63 6f 6c 31 20 2a   - 53 * - col1 *
33f00 20 2d 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 2b 20   - + col0 * - + 
33f10 33 37 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  37 FROM tab0 AS 
33f20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
33f30 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
33f40 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
33f50 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
33f60 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
33f70 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
33f80 2d 31 31 34 31 0d 0a 53 45 4c 45 43 54 20 44 49  -1141..SELECT DI
33f90 53 54 49 4e 43 54 20 2d 20 43 41 53 54 28 20 4e  STINCT - CAST( N
33fa0 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
33fb0 2b 20 63 6f 6c 30 20 63 6f 6c 31 20 46 52 4f 4d  + col0 col1 FROM
33fc0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
33fd0 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ---..NULL....ski
33fe0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
33ff0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70  compatible..skip
34000 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
34010 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
34020 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
34030 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
34040 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
34050 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 34 31 0d  sort label-1141.
34060 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
34070 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   - CAST ( NULL A
34080 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20 63 6f  S INTEGER ) + co
34090 6c 30 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  l0 col1 FROM tab
340a0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
340b0 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .NULL....onlyif 
340c0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
340d0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
340e0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
340f0 6c 2d 31 31 34 32 0d 0a 53 45 4c 45 43 54 20 44  l-1142..SELECT D
34100 49 53 54 49 4e 43 54 20 2d 20 4d 41 58 28 20 2b  ISTINCT - MAX( +
34110 20 63 6f 6c 31 20 29 20 2d 20 2b 20 31 30 20 46   col1 ) - + 10 F
34120 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
34130 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 37 0d 0a 0d 0a 73  ..----..-57....s
34140 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
34150 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
34160 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
34170 62 65 6c 2d 31 31 34 32 0d 0a 53 45 4c 45 43 54  bel-1142..SELECT
34180 20 44 49 53 54 49 4e 43 54 20 2d 20 4d 41 58 20   DISTINCT - MAX 
34190 28 20 2b 20 63 6f 6c 31 20 29 20 2d 20 2b 20 31  ( + col1 ) - + 1
341a0 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
341b0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 37 0d 0a  or0..----..-57..
341c0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
341d0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
341e0 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  INCT * FROM tab1
341f0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
34200 55 4c 4c 20 3c 3e 20 28 20 2b 20 63 6f 6c 31 20  ULL <> ( + col1 
34210 29 20 2b 20 2b 20 35 39 0d 0a 2d 2d 2d 2d 0d 0a  ) + + 59..----..
34220 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
34230 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
34240 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
34250 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 34 34 0d  sort label-1144.
34260 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
34270 20 32 37 20 2a 20 2d 20 2b 20 43 4f 55 4e 54 28   27 * - + COUNT(
34280 20 2a 20 29 20 2d 20 37 38 20 46 52 4f 4d 20 74   * ) - 78 FROM t
34290 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
342a0 2d 0d 0a 2d 31 35 39 0d 0a 0d 0a 73 6b 69 70 69  -..-159....skipi
342b0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
342c0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
342d0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
342e0 31 31 34 34 0d 0a 53 45 4c 45 43 54 20 44 49 53  1144..SELECT DIS
342f0 54 49 4e 43 54 20 32 37 20 2a 20 2d 20 2b 20 43  TINCT 27 * - + C
34300 4f 55 4e 54 20 28 20 2a 20 29 20 2d 20 37 38 20  OUNT ( * ) - 78 
34310 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
34320 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 39 0d 0a 0d  0..----..-159...
34330 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
34340 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
34350 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45 52  M tab0 cor0 WHER
34360 45 20 2d 20 32 31 20 3d 20 4e 55 4c 4c 0d 0a 2d  E - 21 = NULL..-
34370 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
34380 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
34390 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 2b 20 2d  ISTINCT col2 + -
343a0 20 38 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   8 FROM tab1 AS 
343b0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a  cor0..----..51..
343c0 36 30 0d 0a 38 38 0d 0a 0d 0a 6f 6e 6c 79 69 66  60..88....onlyif
343d0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
343e0 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66  te syntax: DIV f
343f0 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
34400 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
34410 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 34  owsort label-114
34420 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  7..SELECT DISTIN
34430 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20  CT + COUNT( * ) 
34440 44 49 56 20 43 4f 55 4e 54 28 20 2a 20 29 20 41  DIV COUNT( * ) A
34450 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
34460 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 73 6b 69  ..----..1....ski
34470 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
34480 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
34490 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
344a0 6c 2d 31 31 34 37 0d 0a 53 45 4c 45 43 54 20 44  l-1147..SELECT D
344b0 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54 20  ISTINCT + COUNT 
344c0 28 20 2a 20 29 20 2f 20 43 4f 55 4e 54 20 28 20  ( * ) / COUNT ( 
344d0 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  * ) AS col2 FROM
344e0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a   tab2..----..1..
344f0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
34500 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
34510 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
34520 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
34530 65 6c 2d 31 31 34 38 0d 0a 53 45 4c 45 43 54 20  el-1148..SELECT 
34540 41 4c 4c 20 63 6f 6c 32 20 2a 20 2d 20 43 41 53  ALL col2 * - CAS
34550 54 28 20 2d 20 2d 20 63 6f 6c 30 20 41 53 20 53  T( - - col0 AS S
34560 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62  IGNED ) FROM tab
34570 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 35 38 0d 0a  2..----..-1058..
34580 2d 32 35 36 30 0d 0a 2d 34 33 35 30 0d 0a 0d 0a  -2560..-4350....
34590 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
345a0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
345b0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
345c0 61 62 65 6c 2d 31 31 34 38 0d 0a 53 45 4c 45 43  abel-1148..SELEC
345d0 54 20 41 4c 4c 20 63 6f 6c 32 20 2a 20 2d 20 43  T ALL col2 * - C
345e0 41 53 54 20 28 20 2d 20 2d 20 63 6f 6c 30 20 41  AST ( - - col0 A
345f0 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d  S INTEGER ) FROM
34600 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30   tab2..----..-10
34610 35 38 0d 0a 2d 32 35 36 30 0d 0a 2d 34 33 35 30  58..-2560..-4350
34620 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
34630 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
34640 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
34650 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
34660 20 6c 61 62 65 6c 2d 31 31 34 39 0d 0a 53 45 4c   label-1149..SEL
34670 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
34680 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab1 WHERE NOT - 
34690 2d 20 28 20 63 6f 6c 32 20 29 20 2a 20 36 38 20  - ( col2 ) * 68 
346a0 4e 4f 54 20 49 4e 20 28 20 2b 20 63 6f 6c 32 2c  NOT IN ( + col2,
346b0 20 43 41 53 54 28 20 2b 20 39 37 20 41 53 20 53   CAST( + 97 AS S
346c0 49 47 4e 45 44 20 29 2c 20 63 6f 6c 32 20 29 0d  IGNED ), col2 ).
346d0 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
346e0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
346f0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
34700 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
34710 31 31 34 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1149..SELECT ALL
34720 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45   * FROM tab1 WHE
34730 52 45 20 4e 4f 54 20 2d 20 2d 20 28 20 63 6f 6c  RE NOT - - ( col
34740 32 20 29 20 2a 20 36 38 20 4e 4f 54 20 49 4e 20  2 ) * 68 NOT IN 
34750 28 20 2b 20 63 6f 6c 32 2c 20 43 41 53 54 20 28  ( + col2, CAST (
34760 20 2b 20 39 37 20 41 53 20 49 4e 54 45 47 45 52   + 97 AS INTEGER
34770 20 29 2c 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d   ), col2 )..----
34780 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
34790 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20  ort..SELECT - ( 
347a0 2b 20 39 32 20 29 20 41 53 20 63 6f 6c 30 20 46  + 92 ) AS col0 F
347b0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
347c0 2d 39 32 0d 0a 2d 39 32 0d 0a 2d 39 32 0d 0a 0d  -92..-92..-92...
347d0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
347e0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
347f0 54 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 2b 20 63  T - col2 * + + c
34800 6f 6c 31 20 2a 20 2d 20 63 6f 6c 30 20 46 52 4f  ol1 * - col0 FRO
34810 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 35  M tab1..----..25
34820 30 37 35 0d 0a 32 39 30 38 33 36 0d 0a 36 38 35  075..290836..685
34830 34 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  44....query III 
34840 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
34850 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  * FROM tab2 AS c
34860 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  or0 WHERE NOT + 
34870 63 6f 6c 31 20 3e 20 2b 20 63 6f 6c 30 20 2f 20  col1 > + col0 / 
34880 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  - col2..----....
34890 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
348a0 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
348b0 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
348c0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
348d0 6c 2d 31 31 35 33 0d 0a 53 45 4c 45 43 54 20 41  l-1153..SELECT A
348e0 4c 4c 20 2b 20 63 6f 6c 32 20 44 49 56 20 2b 20  LL + col2 DIV + 
348f0 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 2c 20  - col0 AS col2, 
34900 63 6f 6c 32 20 2a 20 2d 20 36 39 20 2b 20 2b 20  col2 * - 69 + + 
34910 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
34920 2d 2d 2d 2d 0d 0a 30 0d 0a 2d 31 35 34 31 0d 0a  ----..0..-1541..
34930 30 0d 0a 2d 32 36 39 36 0d 0a 30 0d 0a 2d 33 39  0..-2696..0..-39
34940 32 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  27....skipif mys
34950 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
34960 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
34970 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 35 33  wsort label-1153
34980 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63  ..SELECT ALL + c
34990 6f 6c 32 20 2f 20 2b 20 2d 20 63 6f 6c 30 20 41  ol2 / + - col0 A
349a0 53 20 63 6f 6c 32 2c 20 63 6f 6c 32 20 2a 20 2d  S col2, col2 * -
349b0 20 36 39 20 2b 20 2b 20 63 6f 6c 30 20 46 52 4f   69 + + col0 FRO
349c0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab2..----..0.
349d0 0a 2d 31 35 34 31 0d 0a 30 0d 0a 2d 32 36 39 36  .-1541..0..-2696
349e0 0d 0a 30 0d 0a 2d 33 39 32 37 0d 0a 0d 0a 71 75  ..0..-3927....qu
349f0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
34a00 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
34a10 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52   col2 AS col0 FR
34a20 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
34a30 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20 2a  WHERE NOT col2 *
34a40 20 2d 20 63 6f 6c 31 20 2f 20 63 6f 6c 31 20 2a   - col1 / col1 *
34a50 20 2d 20 2d 20 63 6f 6c 30 20 3c 3d 20 2d 20 2b   - - col0 <= - +
34a60 20 34 37 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c   47..----....onl
34a70 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
34a80 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
34a90 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
34aa0 6c 61 62 65 6c 2d 31 31 35 35 0d 0a 53 45 4c 45  label-1155..SELE
34ab0 43 54 20 2b 20 43 4f 55 4e 54 28 20 63 6f 6c 32  CT + COUNT( col2
34ac0 20 29 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72   ) FROM tab1 cor
34ad0 30 20 57 48 45 52 45 20 63 6f 6c 31 20 49 53 20  0 WHERE col1 IS 
34ae0 4e 4f 54 20 4e 55 4c 4c 20 41 4e 44 20 2b 20 63  NOT NULL AND + c
34af0 6f 6c 30 20 2b 20 2b 20 2d 20 35 33 20 2b 20 2b  ol0 + + - 53 + +
34b00 20 36 35 20 2a 20 63 6f 6c 32 20 4e 4f 54 20 49   65 * col2 NOT I
34b10 4e 20 28 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c 32  N ( col1, + col2
34b20 20 2b 20 34 30 2c 20 63 6f 6c 31 20 2f 20 63 6f   + 40, col1 / co
34b30 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d  l2 )..----..3...
34b40 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
34b50 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
34b60 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
34b70 6c 61 62 65 6c 2d 31 31 35 35 0d 0a 53 45 4c 45  label-1155..SELE
34b80 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 63 6f 6c  CT + COUNT ( col
34b90 32 20 29 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  2 ) FROM tab1 co
34ba0 72 30 20 57 48 45 52 45 20 63 6f 6c 31 20 49 53  r0 WHERE col1 IS
34bb0 20 4e 4f 54 20 4e 55 4c 4c 20 41 4e 44 20 2b 20   NOT NULL AND + 
34bc0 63 6f 6c 30 20 2b 20 2b 20 2d 20 35 33 20 2b 20  col0 + + - 53 + 
34bd0 2b 20 36 35 20 2a 20 63 6f 6c 32 20 4e 4f 54 20  + 65 * col2 NOT 
34be0 49 4e 20 28 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c  IN ( col1, + col
34bf0 32 20 2b 20 34 30 2c 20 63 6f 6c 31 20 2f 20 63  2 + 40, col1 / c
34c00 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a  ol2 )..----..3..
34c10 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
34c20 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45   CAST syntax: DE
34c30 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75  CIMAL type: ..qu
34c40 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
34c50 62 65 6c 2d 31 31 35 36 0d 0a 53 45 4c 45 43 54  bel-1156..SELECT
34c60 20 2d 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 43 41   - + col2 * - CA
34c70 53 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49  ST( NULL AS DECI
34c80 4d 41 4c 20 29 20 41 53 20 63 6f 6c 31 20 46 52  MAL ) AS col1 FR
34c90 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
34ca0 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20 3d  WHERE NOT col2 =
34cb0 20 2b 20 36 39 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   + 69..----..NUL
34cc0 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
34cd0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
34ce0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
34cf0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
34d00 6c 61 62 65 6c 2d 31 31 35 36 0d 0a 53 45 4c 45  label-1156..SELE
34d10 43 54 20 2d 20 2b 20 63 6f 6c 32 20 2a 20 2d 20  CT - + col2 * - 
34d20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52  CAST ( NULL AS R
34d30 45 41 4c 20 29 20 41 53 20 63 6f 6c 31 20 46 52  EAL ) AS col1 FR
34d40 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
34d50 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20 3d  WHERE NOT col2 =
34d60 20 2b 20 36 39 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   + 69..----..NUL
34d70 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
34d80 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
34d90 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 36 20 2a  ..SELECT ALL 6 *
34da0 20 2b 20 2b 20 37 35 20 41 53 20 63 6f 6c 30 20   + + 75 AS col0 
34db0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
34dc0 30 0d 0a 2d 2d 2d 2d 0d 0a 34 35 30 0d 0a 34 35  0..----..450..45
34dd0 30 0d 0a 34 35 30 0d 0a 0d 0a 73 6b 69 70 69 66  0..450....skipif
34de0 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
34df0 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
34e00 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
34e10 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
34e20 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  s..query II rows
34e30 6f 72 74 0d 0a 53 45 4c 45 43 54 20 35 36 20 2b  ort..SELECT 56 +
34e40 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 31   - col0 * + col1
34e50 20 63 6f 6c 30 2c 20 2d 20 63 6f 6c 32 20 2a 20   col0, - col2 * 
34e60 2d 20 2b 20 63 6f 6c 30 20 2a 20 35 38 20 41 53  - + col0 * 58 AS
34e70 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
34e80 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
34e90 31 31 35 39 0d 0a 34 30 38 39 30 0d 0a 2d 31 37  1159..40890..-17
34ea0 37 31 0d 0a 35 30 34 36 30 0d 0a 2d 34 31 0d 0a  71..50460..-41..
34eb0 35 35 36 39 37 34 0d 0a 0d 0a 6f 6e 6c 79 69 66  556974....onlyif
34ec0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
34ed0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
34ee0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
34ef0 65 6c 2d 31 31 35 39 0d 0a 53 45 4c 45 43 54 20  el-1159..SELECT 
34f00 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  - - COUNT( * ) F
34f10 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
34f20 20 57 48 45 52 45 20 2d 20 32 20 3c 3d 20 63 6f   WHERE - 2 <= co
34f30 6c 32 20 2f 20 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d  l2 / - col0..---
34f40 2d 0d 0a 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..2....skipif m
34f50 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
34f60 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
34f70 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 35  owsort label-115
34f80 39 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 43 4f  9..SELECT - - CO
34f90 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
34fa0 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
34fb0 45 20 2d 20 32 20 3c 3d 20 63 6f 6c 32 20 2f 20  E - 2 <= col2 / 
34fc0 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 32 0d  - col0..----..2.
34fd0 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
34fe0 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
34ff0 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
35000 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
35010 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
35020 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
35030 4c 45 43 54 20 41 4c 4c 20 2d 20 36 37 20 41 53  LECT ALL - 67 AS
35040 20 63 6f 6c 30 2c 20 63 6f 6c 31 20 63 6f 6c 30   col0, col1 col0
35050 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
35060 0d 0a 2d 36 37 0d 0a 35 31 0d 0a 2d 36 37 0d 0a  ..-67..51..-67..
35070 36 37 0d 0a 2d 36 37 0d 0a 37 37 0d 0a 0d 0a 71  67..-67..77....q
35080 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
35090 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2a 20  SELECT + col2 * 
350a0 2b 20 31 35 20 2a 20 32 20 46 52 4f 4d 20 74 61  + 15 * 2 FROM ta
350b0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 37 37 30 0d 0a  b1..----..1770..
350c0 32 30 34 30 0d 0a 32 38 38 30 0d 0a 0d 0a 6f 6e  2040..2880....on
350d0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
350e0 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
350f0 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
35100 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
35110 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
35120 2d 31 31 36 32 0d 0a 53 45 4c 45 43 54 20 44 49  -1162..SELECT DI
35130 53 54 49 4e 43 54 20 33 33 20 2b 20 2b 20 2d 20  STINCT 33 + + - 
35140 43 4f 55 4e 54 28 20 44 49 53 54 49 4e 43 54 20  COUNT( DISTINCT 
35150 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  + CAST( NULL AS 
35160 53 49 47 4e 45 44 20 29 20 29 20 46 52 4f 4d 20  SIGNED ) ) FROM 
35170 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 33 0d 0a  tab2..----..33..
35180 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
35190 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
351a0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
351b0 20 6c 61 62 65 6c 2d 31 31 36 32 0d 0a 53 45 4c   label-1162..SEL
351c0 45 43 54 20 44 49 53 54 49 4e 43 54 20 33 33 20  ECT DISTINCT 33 
351d0 2b 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 44 49  + + - COUNT ( DI
351e0 53 54 49 4e 43 54 20 2b 20 43 41 53 54 20 28 20  STINCT + CAST ( 
351f0 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
35200 29 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ) ) FROM tab2..-
35210 2d 2d 2d 0d 0a 33 33 0d 0a 0d 0a 71 75 65 72 79  ---..33....query
35220 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
35230 43 54 20 41 4c 4c 20 63 6f 6c 30 20 2a 20 2d 20  CT ALL col0 * - 
35240 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  + col2 FROM tab1
35250 20 57 48 45 52 45 20 4e 55 4c 4c 20 3e 20 63 6f   WHERE NULL > co
35260 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  l0..----....only
35270 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
35280 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
35290 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
352a0 6c 61 62 65 6c 2d 31 31 36 34 0d 0a 53 45 4c 45  label-1164..SELE
352b0 43 54 20 2b 20 35 38 20 41 53 20 63 6f 6c 30 2c  CT + 58 AS col0,
352c0 20 2d 20 53 55 4d 28 20 41 4c 4c 20 63 6f 6c 31   - SUM( ALL col1
352d0 20 29 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72   ) FROM tab0 cor
352e0 30 0d 0a 2d 2d 2d 2d 0d 0a 35 38 0d 0a 2d 31 30  0..----..58..-10
352f0 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
35300 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
35310 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
35320 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 36 34 0d  sort label-1164.
35330 0a 53 45 4c 45 43 54 20 2b 20 35 38 20 41 53 20  .SELECT + 58 AS 
35340 63 6f 6c 30 2c 20 2d 20 53 55 4d 20 28 20 41 4c  col0, - SUM ( AL
35350 4c 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61  L col1 ) FROM ta
35360 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35  b0 cor0..----..5
35370 38 0d 0a 2d 31 30 33 0d 0a 0d 0a 6f 6e 6c 79 69  8..-103....onlyi
35380 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
35390 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
353a0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
353b0 62 65 6c 2d 31 31 36 35 0d 0a 53 45 4c 45 43 54  bel-1165..SELECT
353c0 20 31 35 20 2b 20 2b 20 2d 20 43 4f 55 4e 54 28   15 + + - COUNT(
353d0 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41   * ) FROM tab1 A
353e0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32  S cor0..----..12
353f0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
35400 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
35410 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
35420 72 74 20 6c 61 62 65 6c 2d 31 31 36 35 0d 0a 53  rt label-1165..S
35430 45 4c 45 43 54 20 31 35 20 2b 20 2b 20 2d 20 43  ELECT 15 + + - C
35440 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20  OUNT ( * ) FROM 
35450 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
35460 2d 2d 0d 0a 31 32 0d 0a 0d 0a 71 75 65 72 79 20  --..12....query 
35470 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
35480 54 20 44 49 53 54 49 4e 43 54 20 2b 20 35 33 20  T DISTINCT + 53 
35490 2a 20 37 38 20 41 53 20 63 6f 6c 30 20 46 52 4f  * 78 AS col0 FRO
354a0 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 34 31  M tab1..----..41
354b0 33 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  34....onlyif mys
354c0 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
354d0 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
354e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
354f0 20 6c 61 62 65 6c 2d 31 31 36 37 0d 0a 53 45 4c   label-1167..SEL
35500 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 41 53  ECT DISTINCT CAS
35510 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
35520 44 20 29 20 2a 20 38 39 20 2b 20 34 38 20 41 53  D ) * 89 + 48 AS
35530 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d   col1 FROM tab0.
35540 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
35550 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
35560 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
35570 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
35580 62 65 6c 2d 31 31 36 37 0d 0a 53 45 4c 45 43 54  bel-1167..SELECT
35590 20 44 49 53 54 49 4e 43 54 20 43 41 53 54 20 28   DISTINCT CAST (
355a0 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
355b0 20 29 20 2a 20 38 39 20 2b 20 34 38 20 41 53 20   ) * 89 + 48 AS 
355c0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
355d0 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e  ----..NULL....on
355e0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
355f0 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
35600 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
35610 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
35620 31 36 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  168..SELECT DIST
35630 49 4e 43 54 20 2b 20 43 41 53 54 28 20 4e 55 4c  INCT + CAST( NUL
35640 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52  L AS SIGNED ) FR
35650 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 55  OM tab1 WHERE NU
35660 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  LL IS NOT NULL..
35670 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ----....skipif m
35680 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
35690 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
356a0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 36  owsort label-116
356b0 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  8..SELECT DISTIN
356c0 43 54 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c  CT + CAST ( NULL
356d0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52   AS INTEGER ) FR
356e0 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 55  OM tab1 WHERE NU
356f0 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  LL IS NOT NULL..
35700 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
35710 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
35720 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
35730 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
35740 2d 31 31 36 39 0d 0a 53 45 4c 45 43 54 20 33 32  -1169..SELECT 32
35750 20 2a 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20   * + COUNT( * ) 
35760 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col0 FROM tab1..
35770 2d 2d 2d 2d 0d 0a 39 36 0d 0a 0d 0a 73 6b 69 70  ----..96....skip
35780 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
35790 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
357a0 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
357b0 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
357c0 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
357d0 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
357e0 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
357f0 6f 72 74 20 6c 61 62 65 6c 2d 31 31 36 39 0d 0a  ort label-1169..
35800 53 45 4c 45 43 54 20 33 32 20 2a 20 2b 20 43 4f  SELECT 32 * + CO
35810 55 4e 54 20 28 20 2a 20 29 20 63 6f 6c 30 20 46  UNT ( * ) col0 F
35820 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
35830 39 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  96....query I ro
35840 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
35850 63 6f 6c 30 20 2a 20 32 32 20 41 53 20 63 6f 6c  col0 * 22 AS col
35860 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
35870 2d 0d 0a 31 39 31 34 0d 0a 32 31 33 34 0d 0a 33  -..1914..2134..3
35880 33 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  30....query I ro
35890 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
358a0 37 34 20 2a 20 38 30 20 2d 20 63 6f 6c 32 20 46  74 * 80 - col2 F
358b0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
358c0 2d 35 39 33 30 0d 0a 2d 35 39 36 37 0d 0a 2d 36  -5930..-5967..-6
358d0 30 31 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  019....query III
358e0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
358f0 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
35900 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20   tab0 WHERE NOT 
35910 35 35 20 2b 20 63 6f 6c 30 20 49 53 20 4e 55 4c  55 + col0 IS NUL
35920 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  L..----..9 value
35930 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62  s hashing to c4b
35940 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36  42765dff94eaaa46
35950 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d  040e537fb43b7...
35960 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
35970 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
35980 4d 20 74 61 62 32 20 57 48 45 52 45 20 28 20 28  M tab2 WHERE ( (
35990 20 2b 20 63 6f 6c 31 20 29 20 29 20 49 53 20 4e   + col1 ) ) IS N
359a0 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  OT NULL..----..9
359b0 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
359c0 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38  to 75c998aa53ac8
359d0 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30  3218cbf2feb962d0
359e0 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  a49....query III
359f0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
35a00 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32   ALL * FROM tab2
35a10 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c   WHERE NOT ( NUL
35a20 4c 20 29 20 3e 20 35 31 20 2b 20 2d 20 63 6f 6c  L ) > 51 + - col
35a30 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  2..----....onlyi
35a40 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
35a50 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
35a60 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
35a70 62 65 6c 2d 31 31 37 35 0d 0a 53 45 4c 45 43 54  bel-1175..SELECT
35a80 20 2b 20 53 55 4d 28 20 41 4c 4c 20 28 20 63 6f   + SUM( ALL ( co
35a90 6c 30 20 29 20 29 20 46 52 4f 4d 20 74 61 62 32  l0 ) ) FROM tab2
35aa0 0d 0a 2d 2d 2d 2d 0d 0a 31 38 35 0d 0a 0d 0a 73  ..----..185....s
35ab0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
35ac0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
35ad0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
35ae0 62 65 6c 2d 31 31 37 35 0d 0a 53 45 4c 45 43 54  bel-1175..SELECT
35af0 20 2b 20 53 55 4d 20 28 20 41 4c 4c 20 28 20 63   + SUM ( ALL ( c
35b00 6f 6c 30 20 29 20 29 20 46 52 4f 4d 20 74 61 62  ol0 ) ) FROM tab
35b10 32 0d 0a 2d 2d 2d 2d 0d 0a 31 38 35 0d 0a 0d 0a  2..----..185....
35b20 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
35b30 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
35b40 20 74 61 62 32 20 57 48 45 52 45 20 2d 20 63 6f   tab2 WHERE - co
35b50 6c 31 20 2a 20 36 37 20 3c 20 4e 55 4c 4c 0d 0a  l1 * 67 < NULL..
35b60 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
35b70 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
35b80 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
35b90 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
35ba0 72 74 20 6c 61 62 65 6c 2d 31 31 37 37 0d 0a 53  rt label-1177..S
35bb0 45 4c 45 43 54 20 63 6f 6c 30 20 46 52 4f 4d 20  ELECT col0 FROM 
35bc0 74 61 62 30 20 57 48 45 52 45 20 43 41 53 54 28  tab0 WHERE CAST(
35bd0 20 2d 20 63 6f 6c 31 20 41 53 20 53 49 47 4e 45   - col1 AS SIGNE
35be0 44 20 29 20 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  D ) > NULL..----
35bf0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
35c00 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
35c10 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
35c20 72 74 20 6c 61 62 65 6c 2d 31 31 37 37 0d 0a 53  rt label-1177..S
35c30 45 4c 45 43 54 20 63 6f 6c 30 20 46 52 4f 4d 20  ELECT col0 FROM 
35c40 74 61 62 30 20 57 48 45 52 45 20 43 41 53 54 20  tab0 WHERE CAST 
35c50 28 20 2d 20 63 6f 6c 31 20 41 53 20 49 4e 54 45  ( - col1 AS INTE
35c60 47 45 52 20 29 20 3e 20 4e 55 4c 4c 0d 0a 2d 2d  GER ) > NULL..--
35c70 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
35c80 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
35c90 53 54 49 4e 43 54 20 2d 20 36 36 20 2b 20 2d 20  STINCT - 66 + - 
35ca0 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 30 20 41 53  col0 * + col0 AS
35cb0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
35cc0 0a 2d 2d 2d 2d 0d 0a 2d 32 36 36 37 0d 0a 2d 37  .----..-2667..-7
35cd0 32 39 31 0d 0a 2d 38 33 34 37 0d 0a 0d 0a 71 75  291..-8347....qu
35ce0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
35cf0 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2a  ELECT ALL col1 *
35d00 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 39 31 20 46   + col2 + + 91 F
35d10 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
35d20 31 34 33 35 0d 0a 33 32 38 37 0d 0a 33 38 36 0d  1435..3287..386.
35d30 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
35d40 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 31 32 20  rt..SELECT + 12 
35d50 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
35d60 4e 55 4c 4c 20 3e 3d 20 63 6f 6c 30 0d 0a 2d 2d  NULL >= col0..--
35d70 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
35d80 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
35d90 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
35da0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
35db0 72 74 20 6c 61 62 65 6c 2d 31 31 38 31 0d 0a 53  rt label-1181..S
35dc0 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
35dd0 20 74 61 62 30 20 57 48 45 52 45 20 28 20 2b 20   tab0 WHERE ( + 
35de0 63 6f 6c 30 20 29 20 42 45 54 57 45 45 4e 20 63  col0 ) BETWEEN c
35df0 6f 6c 30 20 2b 20 2d 20 43 41 53 54 28 20 4e 55  ol0 + - CAST( NU
35e00 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 41  LL AS SIGNED ) A
35e10 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  ND NULL..----...
35e20 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
35e30 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
35e40 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
35e50 74 20 6c 61 62 65 6c 2d 31 31 38 31 0d 0a 53 45  t label-1181..SE
35e60 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
35e70 74 61 62 30 20 57 48 45 52 45 20 28 20 2b 20 63  tab0 WHERE ( + c
35e80 6f 6c 30 20 29 20 42 45 54 57 45 45 4e 20 63 6f  ol0 ) BETWEEN co
35e90 6c 30 20 2b 20 2d 20 43 41 53 54 20 28 20 4e 55  l0 + - CAST ( NU
35ea0 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
35eb0 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  AND NULL..----..
35ec0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
35ed0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
35ee0 63 6f 6c 30 20 2a 20 32 30 20 2b 20 31 36 20 46  col0 * 20 + 16 F
35ef0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
35f00 31 37 35 36 0d 0a 31 39 35 36 0d 0a 33 31 36 0d  1756..1956..316.
35f10 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
35f20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
35f30 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
35f40 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
35f50 62 65 6c 2d 31 31 38 33 0d 0a 53 45 4c 45 43 54  bel-1183..SELECT
35f60 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 2a   DISTINCT col0 *
35f70 20 2d 20 28 20 2b 20 63 6f 6c 31 20 44 49 56 20   - ( + col1 DIV 
35f80 38 39 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41  89 ) FROM tab1 A
35f90 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  S cor0..----..0.
35fa0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
35fb0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
35fc0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
35fd0 74 20 6c 61 62 65 6c 2d 31 31 38 33 0d 0a 53 45  t label-1183..SE
35fe0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
35ff0 6c 30 20 2a 20 2d 20 28 20 2b 20 63 6f 6c 31 20  l0 * - ( + col1 
36000 2f 20 38 39 20 29 20 46 52 4f 4d 20 74 61 62 31  / 89 ) FROM tab1
36010 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
36020 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
36030 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
36040 20 2b 20 35 39 20 2a 20 2b 20 63 6f 6c 30 20 46   + 59 * + col0 F
36050 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
36060 0d 0a 2d 2d 2d 2d 0d 0a 35 31 33 33 0d 0a 35 37  ..----..5133..57
36070 32 33 0d 0a 38 38 35 0d 0a 0d 0a 71 75 65 72 79  23..885....query
36080 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
36090 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 32 35  CT DISTINCT - 25
360a0 20 2a 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20   * col1 AS col2 
360b0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
360c0 0a 2d 31 32 37 35 0d 0a 2d 31 36 37 35 0d 0a 2d  .-1275..-1675..-
360d0 31 39 32 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  1925....onlyif m
360e0 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
360f0 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
36100 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
36110 72 74 20 6c 61 62 65 6c 2d 31 31 38 36 0d 0a 53  rt label-1186..S
36120 45 4c 45 43 54 20 41 4c 4c 20 2d 20 33 32 20 44  ELECT ALL - 32 D
36130 49 56 20 39 39 20 46 52 4f 4d 20 74 61 62 31 0d  IV 99 FROM tab1.
36140 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a  .----..0..0..0..
36150 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
36160 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
36170 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
36180 20 6c 61 62 65 6c 2d 31 31 38 36 0d 0a 53 45 4c   label-1186..SEL
36190 45 43 54 20 41 4c 4c 20 2d 20 33 32 20 2f 20 39  ECT ALL - 32 / 9
361a0 39 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  9 FROM tab1..---
361b0 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 71 75  -..0..0..0....qu
361c0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
361d0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
361e0 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 28 20  OM tab0 WHERE ( 
361f0 31 33 20 29 20 42 45 54 57 45 45 4e 20 28 20 63  13 ) BETWEEN ( c
36200 6f 6c 30 20 2f 20 28 20 2b 20 63 6f 6c 30 20 29  ol0 / ( + col0 )
36210 20 29 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d   ) AND NULL..---
36220 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
36230 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 32 36 20  sort..SELECT 26 
36240 2a 20 36 37 20 41 53 20 63 6f 6c 31 20 46 52 4f  * 67 AS col1 FRO
36250 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 37  M tab2..----..17
36260 34 32 0d 0a 31 37 34 32 0d 0a 31 37 34 32 0d 0a  42..1742..1742..
36270 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
36280 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
36290 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
362a0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 38 39 0d  sort label-1189.
362b0 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28  .SELECT + COUNT(
362c0 20 44 49 53 54 49 4e 43 54 20 2d 20 34 35 20 29   DISTINCT - 45 )
362d0 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53   + COUNT( * ) AS
362e0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
362f0 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
36300 49 4e 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31  IN tab1..----..1
36310 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
36320 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
36330 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
36340 6f 72 74 20 6c 61 62 65 6c 2d 31 31 38 39 0d 0a  ort label-1189..
36350 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20 28  SELECT + COUNT (
36360 20 44 49 53 54 49 4e 43 54 20 2d 20 34 35 20 29   DISTINCT - 45 )
36370 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41   + COUNT ( * ) A
36380 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
36390 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a   AS cor0 CROSS J
363a0 4f 49 4e 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  OIN tab1..----..
363b0 31 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  10....skipif pos
363c0 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
363d0 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
363e0 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
363f0 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
36400 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
36410 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20  SELECT ALL col2 
36420 2b 20 33 36 20 2a 20 2b 20 63 6f 6c 31 20 63 6f  + 36 * + col1 co
36430 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l0 FROM tab2..--
36440 2d 2d 0d 0a 31 38 35 39 0d 0a 32 34 37 30 0d 0a  --..1859..2470..
36450 32 38 31 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49  2812....query II
36460 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
36470 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  T * FROM tab2 WH
36480 45 52 45 20 4e 4f 54 20 28 20 2b 20 33 36 20 2a  ERE NOT ( + 36 *
36490 20 2d 20 28 20 63 6f 6c 32 20 29 20 29 20 3e 3d   - ( col2 ) ) >=
364a0 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d   ( NULL )..----.
364b0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
364c0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
364d0 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52   col0 AS col2 FR
364e0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
364f0 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 49  WHERE ( NULL ) I
36500 4e 20 28 20 33 36 20 29 0d 0a 2d 2d 2d 2d 0d 0a  N ( 36 )..----..
36510 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
36520 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
36530 35 39 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63  59 + - col2 AS c
36540 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
36550 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a   cor0..----..1..
36560 31 39 0d 0a 33 36 0d 0a 0d 0a 71 75 65 72 79 20  19..36....query 
36570 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
36580 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 2a 20 2b  T ALL - col2 * +
36590 20 35 38 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   58 AS col2 FROM
365a0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
365b0 2d 2d 2d 0d 0a 2d 33 34 32 32 0d 0a 2d 33 39 34  ---..-3422..-394
365c0 34 0d 0a 2d 35 35 36 38 0d 0a 0d 0a 71 75 65 72  4..-5568....quer
365d0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
365e0 45 43 54 20 2b 20 33 37 20 41 53 20 63 6f 6c 32  ECT + 37 AS col2
365f0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
36600 72 30 20 57 48 45 52 45 20 30 20 2a 20 28 20 2b  r0 WHERE 0 * ( +
36610 20 63 6f 6c 31 20 2a 20 63 6f 6c 31 20 29 20 3c   col1 * col1 ) <
36620 3e 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a  > + col1..----..
36630 33 37 0d 0a 33 37 0d 0a 33 37 0d 0a 0d 0a 71 75  37..37..37....qu
36640 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
36650 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 46 52 4f  ELECT + col1 FRO
36660 4d 20 74 61 62 31 20 63 6f 72 30 20 57 48 45 52  M tab1 cor0 WHER
36670 45 20 28 20 2b 20 32 20 2a 20 63 6f 6c 31 20 29  E ( + 2 * col1 )
36680 20 42 45 54 57 45 45 4e 20 2b 20 63 6f 6c 31 20   BETWEEN + col1 
36690 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  AND NULL..----..
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 41 4c 4c 20 2d 20  t..SELECT ALL - 
366c0 2d 20 63 6f 6c 32 20 2b 20 36 35 20 41 53 20 63  - col2 + 65 AS c
366d0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
366e0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 32   cor0..----..112
366f0 0d 0a 31 36 34 0d 0a 37 35 0d 0a 0d 0a 6f 6e 6c  ..164..75....onl
36700 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
36710 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
36720 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
36730 6c 61 62 65 6c 2d 31 31 39 38 0d 0a 53 45 4c 45  label-1198..SELE
36740 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43 4f  CT DISTINCT - CO
36750 55 4e 54 28 20 2a 20 29 20 2b 20 2d 20 37 20 46  UNT( * ) + - 7 F
36760 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
36770 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 0d 0a 73  ..----..-10....s
36780 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
36790 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
367a0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
367b0 62 65 6c 2d 31 31 39 38 0d 0a 53 45 4c 45 43 54  bel-1198..SELECT
367c0 20 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e   DISTINCT - COUN
367d0 54 20 28 20 2a 20 29 20 2b 20 2d 20 37 20 46 52  T ( * ) + - 7 FR
367e0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
367f0 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 0d 0a 71 75  .----..-10....qu
36800 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
36810 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 31  ELECT ALL + col1
36820 20 2b 20 35 38 20 41 53 20 63 6f 6c 30 20 46 52   + 58 AS col0 FR
36830 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d  OM tab0 cor0..--
36840 2d 2d 0d 0a 31 33 39 0d 0a 35 39 0d 0a 37 39 0d  --..139..59..79.
36850 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
36860 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
36870 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
36880 20 57 48 45 52 45 20 4e 55 4c 4c 20 42 45 54 57   WHERE NULL BETW
36890 45 45 4e 20 63 6f 6c 32 20 2a 20 2b 20 28 20 28  EEN col2 * + ( (
368a0 20 28 20 2b 20 63 6f 6c 30 20 29 20 29 20 29 20   ( + col0 ) ) ) 
368b0 41 4e 44 20 2d 20 32 30 0d 0a 2d 2d 2d 2d 0d 0a  AND - 20..----..
368c0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
368d0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
368e0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
368f0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 30 31 0d  sort label-1201.
36900 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
36910 20 2d 20 53 55 4d 28 20 41 4c 4c 20 35 32 20 29   - SUM( ALL 52 )
36920 20 2a 20 37 30 20 46 52 4f 4d 20 74 61 62 31 20   * 70 FROM tab1 
36930 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
36940 31 30 39 32 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  10920....skipif 
36950 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
36960 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
36970 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
36980 30 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  01..SELECT DISTI
36990 4e 43 54 20 2d 20 53 55 4d 20 28 20 41 4c 4c 20  NCT - SUM ( ALL 
369a0 35 32 20 29 20 2a 20 37 30 20 46 52 4f 4d 20 74  52 ) * 70 FROM t
369b0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
369c0 2d 0d 0a 2d 31 30 39 32 30 0d 0a 0d 0a 6f 6e 6c  -..-10920....onl
369d0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
369e0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
369f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
36a00 6c 61 62 65 6c 2d 31 32 30 32 0d 0a 53 45 4c 45  label-1202..SELE
36a10 43 54 20 41 4c 4c 20 2b 20 4d 49 4e 28 20 44 49  CT ALL + MIN( DI
36a20 53 54 49 4e 43 54 20 2d 20 28 20 2b 20 63 6f 6c  STINCT - ( + col
36a30 30 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30 0d  0 ) ) FROM tab0.
36a40 0a 2d 2d 2d 2d 0d 0a 2d 39 37 0d 0a 0d 0a 73 6b  .----..-97....sk
36a50 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
36a60 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
36a70 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
36a80 65 6c 2d 31 32 30 32 0d 0a 53 45 4c 45 43 54 20  el-1202..SELECT 
36a90 41 4c 4c 20 2b 20 4d 49 4e 20 28 20 44 49 53 54  ALL + MIN ( DIST
36aa0 49 4e 43 54 20 2d 20 28 20 2b 20 63 6f 6c 30 20  INCT - ( + col0 
36ab0 29 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ) ) FROM tab0..-
36ac0 2d 2d 2d 0d 0a 2d 39 37 0d 0a 0d 0a 71 75 65 72  ---..-97....quer
36ad0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
36ae0 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  ECT DISTINCT col
36af0 30 20 2a 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 63  0 * + col0 * + c
36b00 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol1 AS col0 FROM
36b10 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 38   tab0..----..158
36b20 39 34 39 0d 0a 31 38 32 32 35 0d 0a 39 34 30 39  949..18225..9409
36b30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
36b40 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
36b50 49 4e 43 54 20 32 36 20 2a 20 63 6f 6c 30 20 46  INCT 26 * col0 F
36b60 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
36b70 4f 54 20 31 34 20 3d 20 2b 20 63 6f 6c 31 0d 0a  OT 14 = + col1..
36b80 2d 2d 2d 2d 0d 0a 31 31 39 36 0d 0a 31 36 36 34  ----..1196..1664
36b90 0d 0a 31 39 35 30 0d 0a 0d 0a 71 75 65 72 79 20  ..1950....query 
36ba0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
36bb0 54 20 2b 20 33 32 20 2a 20 2b 20 63 6f 6c 31 20  T + 32 * + col1 
36bc0 2b 20 2b 20 34 37 20 41 53 20 63 6f 6c 30 20 46  + + 47 AS col0 F
36bd0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
36be0 32 36 33 39 0d 0a 37 31 39 0d 0a 37 39 0d 0a 0d  2639..719..79...
36bf0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
36c00 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
36c10 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
36c20 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
36c30 6c 2d 31 32 30 36 0d 0a 53 45 4c 45 43 54 20 2b  l-1206..SELECT +
36c40 20 28 20 63 6f 6c 32 20 29 20 44 49 56 20 2d 20   ( col2 ) DIV - 
36c50 63 6f 6c 32 20 2b 20 63 6f 6c 32 20 41 53 20 63  col2 + col2 AS c
36c60 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
36c70 2d 2d 2d 0d 0a 32 32 0d 0a 33 39 0d 0a 35 37 0d  ---..22..39..57.
36c80 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
36c90 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
36ca0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
36cb0 74 20 6c 61 62 65 6c 2d 31 32 30 36 0d 0a 53 45  t label-1206..SE
36cc0 4c 45 43 54 20 2b 20 28 20 63 6f 6c 32 20 29 20  LECT + ( col2 ) 
36cd0 2f 20 2d 20 63 6f 6c 32 20 2b 20 63 6f 6c 32 20  / - col2 + col2 
36ce0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
36cf0 32 0d 0a 2d 2d 2d 2d 0d 0a 32 32 0d 0a 33 39 0d  2..----..22..39.
36d00 0a 35 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .57....onlyif my
36d10 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
36d20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
36d30 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
36d40 31 32 30 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1207..SELECT ALL
36d50 20 43 4f 55 4e 54 28 20 2d 20 31 20 29 20 2b 20   COUNT( - 1 ) + 
36d60 2b 20 33 33 20 46 52 4f 4d 20 74 61 62 30 0d 0a  + 33 FROM tab0..
36d70 2d 2d 2d 2d 0d 0a 33 36 0d 0a 0d 0a 73 6b 69 70  ----..36....skip
36d80 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
36d90 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
36da0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
36db0 2d 31 32 30 37 0d 0a 53 45 4c 45 43 54 20 41 4c  -1207..SELECT AL
36dc0 4c 20 43 4f 55 4e 54 20 28 20 2d 20 31 20 29 20  L COUNT ( - 1 ) 
36dd0 2b 20 2b 20 33 33 20 46 52 4f 4d 20 74 61 62 30  + + 33 FROM tab0
36de0 0d 0a 2d 2d 2d 2d 0d 0a 33 36 0d 0a 0d 0a 6f 6e  ..----..36....on
36df0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
36e00 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
36e10 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
36e20 20 6c 61 62 65 6c 2d 31 32 30 38 0d 0a 53 45 4c   label-1208..SEL
36e30 45 43 54 20 2d 20 38 33 20 2b 20 2d 20 2b 20 43  ECT - 83 + - + C
36e40 4f 55 4e 54 28 20 2a 20 29 20 2a 20 33 39 20 41  OUNT( * ) * 39 A
36e50 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
36e60 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30 30 0d 0a 0d 0a  ..----..-200....
36e70 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
36e80 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
36e90 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
36ea0 61 62 65 6c 2d 31 32 30 38 0d 0a 53 45 4c 45 43  abel-1208..SELEC
36eb0 54 20 2d 20 38 33 20 2b 20 2d 20 2b 20 43 4f 55  T - 83 + - + COU
36ec0 4e 54 20 28 20 2a 20 29 20 2a 20 33 39 20 41 53  NT ( * ) * 39 AS
36ed0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d   col2 FROM tab2.
36ee0 0a 2d 2d 2d 2d 0d 0a 2d 32 30 30 0d 0a 0d 0a 73  .----..-200....s
36ef0 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
36f00 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
36f10 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
36f20 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
36f30 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
36f40 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
36f50 33 38 20 2b 20 2b 20 63 6f 6c 32 20 63 6f 6c 31  38 + + col2 col1
36f60 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
36f70 72 30 20 57 48 45 52 45 20 63 6f 6c 30 20 3d 20  r0 WHERE col0 = 
36f80 2d 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 31 20  - col0 + + col1 
36f90 2f 20 32 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  / 20..----....on
36fa0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
36fb0 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
36fc0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
36fd0 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
36fe0 2d 31 32 31 30 0d 0a 53 45 4c 45 43 54 20 44 49  -1210..SELECT DI
36ff0 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
37000 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
37010 20 28 20 2b 20 38 31 20 29 20 4e 4f 54 20 42 45   ( + 81 ) NOT BE
37020 54 57 45 45 4e 20 2b 20 43 41 53 54 28 20 4e 55  TWEEN + CAST( NU
37030 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 41  LL AS SIGNED ) A
37040 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  ND NULL..----...
37050 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
37060 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
37070 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
37080 74 20 6c 61 62 65 6c 2d 31 32 31 30 0d 0a 53 45  t label-1210..SE
37090 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
370a0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
370b0 30 20 57 48 45 52 45 20 28 20 2b 20 38 31 20 29  0 WHERE ( + 81 )
370c0 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2b 20 43   NOT BETWEEN + C
370d0 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
370e0 54 45 47 45 52 20 29 20 41 4e 44 20 4e 55 4c 4c  TEGER ) AND NULL
370f0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
37100 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
37110 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
37120 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
37130 65 6c 2d 31 32 31 31 0d 0a 53 45 4c 45 43 54 20  el-1211..SELECT 
37140 41 4c 4c 20 2b 20 2d 20 36 31 20 2b 20 35 35 20  ALL + - 61 + 55 
37150 2b 20 53 55 4d 28 20 2d 20 63 6f 6c 32 20 2b 20  + SUM( - col2 + 
37160 2b 20 63 6f 6c 31 20 29 20 63 6f 6c 30 20 46 52  + col1 ) col0 FR
37170 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
37180 0a 2d 2d 2d 2d 0d 0a 2d 31 36 33 0d 0a 0d 0a 73  .----..-163....s
37190 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
371a0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
371b0 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
371c0 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
371d0 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
371e0 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
371f0 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
37200 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 31  owsort label-121
37210 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  1..SELECT ALL + 
37220 2d 20 36 31 20 2b 20 35 35 20 2b 20 53 55 4d 20  - 61 + 55 + SUM 
37230 28 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c  ( - col2 + + col
37240 31 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  1 ) col0 FROM ta
37250 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
37260 0d 0a 2d 31 36 33 0d 0a 0d 0a 71 75 65 72 79 20  ..-163....query 
37270 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
37280 54 20 41 4c 4c 20 38 20 2b 20 2b 20 63 6f 6c 31  T ALL 8 + + col1
37290 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
372a0 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
372b0 20 2b 20 63 6f 6c 32 20 2a 20 63 6f 6c 32 20 49   + col2 * col2 I
372c0 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
372d0 0d 0a 32 39 0d 0a 38 39 0d 0a 39 0d 0a 0d 0a 6f  ..29..89..9....o
372e0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
372f0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
37300 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
37310 74 20 6c 61 62 65 6c 2d 31 32 31 33 0d 0a 53 45  t label-1213..SE
37320 4c 45 43 54 20 2b 20 2b 20 4d 49 4e 28 20 2d 20  LECT + + MIN( - 
37330 38 33 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  83 ) AS col2 FRO
37340 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
37350 2d 2d 2d 2d 0d 0a 2d 38 33 0d 0a 0d 0a 73 6b 69  ----..-83....ski
37360 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
37370 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
37380 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
37390 6c 2d 31 32 31 33 0d 0a 53 45 4c 45 43 54 20 2b  l-1213..SELECT +
373a0 20 2b 20 4d 49 4e 20 28 20 2d 20 38 33 20 29 20   + MIN ( - 83 ) 
373b0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
373c0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
373d0 0a 2d 38 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-83....onlyif m
373e0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
373f0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
37400 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
37410 2d 31 32 31 34 0d 0a 53 45 4c 45 43 54 20 41 4c  -1214..SELECT AL
37420 4c 20 2b 20 39 30 20 2a 20 2b 20 43 4f 55 4e 54  L + 90 * + COUNT
37430 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ( * ) AS col2 FR
37440 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 43 52 4f  OM tab0 cor0 CRO
37450 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53 20  SS JOIN tab2 AS 
37460 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 38 31 30 0d  cor1..----..810.
37470 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
37480 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
37490 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
374a0 74 20 6c 61 62 65 6c 2d 31 32 31 34 0d 0a 53 45  t label-1214..SE
374b0 4c 45 43 54 20 41 4c 4c 20 2b 20 39 30 20 2a 20  LECT ALL + 90 * 
374c0 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53  + COUNT ( * ) AS
374d0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
374e0 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
374f0 74 61 62 32 20 41 53 20 63 6f 72 31 0d 0a 2d 2d  tab2 AS cor1..--
37500 2d 2d 0d 0a 38 31 30 0d 0a 0d 0a 71 75 65 72 79  --..810....query
37510 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
37520 43 54 20 63 6f 6c 32 20 2d 20 2b 20 2b 20 34 20  CT col2 - + + 4 
37530 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
37540 0a 35 35 0d 0a 36 34 0d 0a 39 32 0d 0a 0d 0a 71  .55..64..92....q
37550 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
37560 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
37570 32 35 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  25 FROM tab2 AS 
37580 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
37590 74 61 62 32 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d  tab2 cor1..----.
375a0 0a 32 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .25....onlyif my
375b0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
375c0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
375d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
375e0 74 20 6c 61 62 65 6c 2d 31 32 31 37 0d 0a 53 45  t label-1217..SE
375f0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 41  LECT DISTINCT CA
37600 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
37610 45 44 20 29 20 2d 20 63 6f 6c 30 20 2f 20 37 34  ED ) - col0 / 74
37620 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
37630 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 49 53 20 4e   NOT ( NULL IS N
37640 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73  ULL )..----....s
37650 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
37660 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
37670 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
37680 62 65 6c 2d 31 32 31 37 0d 0a 53 45 4c 45 43 54  bel-1217..SELECT
37690 20 44 49 53 54 49 4e 43 54 20 43 41 53 54 20 28   DISTINCT CAST (
376a0 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
376b0 20 29 20 2d 20 63 6f 6c 30 20 2f 20 37 34 20 46   ) - col0 / 74 F
376c0 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e  ROM tab1 WHERE N
376d0 4f 54 20 28 20 4e 55 4c 4c 20 49 53 20 4e 55 4c  OT ( NULL IS NUL
376e0 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  L )..----....que
376f0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
37700 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
37710 20 38 34 2c 20 2b 20 34 30 20 41 53 20 63 6f 6c   84, + 40 AS col
37720 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  1 FROM tab0 cor0
37730 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 34 0d 0a 34 30 0d  ..----..-84..40.
37740 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
37750 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20  rt..SELECT col2 
37760 2a 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46  * col0 AS col0 F
37770 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
37780 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2d 20 37   WHERE NOT ( - 7
37790 35 20 2a 20 36 31 20 29 20 4e 4f 54 20 42 45 54  5 * 61 ) NOT BET
377a0 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2d 20  WEEN NULL AND - 
377b0 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  col1..----....qu
377c0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
377d0 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
377e0 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
377f0 45 20 4e 4f 54 20 34 33 20 2a 20 2b 20 2b 20 31  E NOT 43 * + + 1
37800 33 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  3 IS NULL..----.
37810 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
37820 67 20 74 6f 20 63 36 63 30 61 34 31 31 31 62 33  g to c6c0a4111b3
37830 36 64 30 34 64 62 63 38 31 31 61 31 31 65 34 64  6d04dbc811a11e4d
37840 35 34 63 61 64 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  54cad....onlyif 
37850 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
37860 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
37870 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
37880 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 32 31 0d  sort label-1221.
37890 0a 53 45 4c 45 43 54 20 2d 20 43 41 53 54 28 20  .SELECT - CAST( 
378a0 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
378b0 2c 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  , col0 FROM tab2
378c0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
378d0 4e 55 4c 4c 0d 0a 34 36 0d 0a 4e 55 4c 4c 0d 0a  NULL..46..NULL..
378e0 36 34 0d 0a 4e 55 4c 4c 0d 0a 37 35 0d 0a 0d 0a  64..NULL..75....
378f0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
37900 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
37910 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
37920 6c 61 62 65 6c 2d 31 32 32 31 0d 0a 53 45 4c 45  label-1221..SELE
37930 43 54 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c  CT - CAST ( NULL
37940 20 41 53 20 49 4e 54 45 47 45 52 20 29 2c 20 63   AS INTEGER ), c
37950 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
37960 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
37970 4c 0d 0a 34 36 0d 0a 4e 55 4c 4c 0d 0a 36 34 0d  L..46..NULL..64.
37980 0a 4e 55 4c 4c 0d 0a 37 35 0d 0a 0d 0a 6f 6e 6c  .NULL..75....onl
37990 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
379a0 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61   syntax: aggrega
379b0 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  te syntax: SIGNE
379c0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
379d0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
379e0 31 32 32 32 0d 0a 53 45 4c 45 43 54 20 44 49 53  1222..SELECT DIS
379f0 54 49 4e 43 54 20 2d 20 53 55 4d 28 20 43 41 53  TINCT - SUM( CAS
37a00 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
37a10 44 20 29 20 29 20 2a 20 2d 20 38 20 41 53 20 63  D ) ) * - 8 AS c
37a20 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol1 FROM tab1 AS
37a30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
37a40 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
37a50 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
37a60 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
37a70 6f 72 74 20 6c 61 62 65 6c 2d 31 32 32 32 0d 0a  ort label-1222..
37a80 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
37a90 2d 20 53 55 4d 20 28 20 43 41 53 54 20 28 20 4e  - SUM ( CAST ( N
37aa0 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
37ab0 20 29 20 2a 20 2d 20 38 20 41 53 20 63 6f 6c 31   ) * - 8 AS col1
37ac0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
37ad0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
37ae0 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
37af0 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
37b00 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
37b10 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
37b20 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
37b30 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
37b40 43 54 20 2d 20 2b 20 38 37 20 2a 20 2b 20 2b 20  CT - + 87 * + + 
37b50 63 6f 6c 32 20 63 6f 6c 30 20 46 52 4f 4d 20 74  col2 col0 FROM t
37b60 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
37b70 2d 0d 0a 2d 34 30 38 39 0d 0a 2d 38 36 31 33 0d  -..-4089..-8613.
37b80 0a 2d 38 37 30 0d 0a 0d 0a 71 75 65 72 79 20 49  .-870....query I
37b90 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
37ba0 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 2f   DISTINCT col2 /
37bb0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
37bc0 57 48 45 52 45 20 2d 20 63 6f 6c 30 20 2b 20 2d  WHERE - col0 + -
37bd0 20 63 6f 6c 32 20 2f 20 28 20 2b 20 63 6f 6c 32   col2 / ( + col2
37be0 20 29 20 49 4e 20 28 20 63 6f 6c 30 20 2a 20 2b   ) IN ( col0 * +
37bf0 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   col2 )..----...
37c00 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
37c10 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
37c20 54 20 63 6f 6c 31 20 2b 20 2b 20 2d 20 31 31 20  T col1 + + - 11 
37c30 2b 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c  + + col2 * + col
37c40 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  2 FROM tab1 WHER
37c50 45 20 28 20 4e 55 4c 4c 20 29 20 49 53 20 4e 4f  E ( NULL ) IS NO
37c60 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  T NULL..----....
37c70 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
37c80 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2a  .SELECT - col2 *
37c90 20 2b 20 2d 20 33 30 20 2a 20 28 20 63 6f 6c 30   + - 30 * ( col0
37ca0 20 29 20 2a 20 2b 20 63 6f 6c 32 20 41 53 20 63   ) * + col2 AS c
37cb0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol2 FROM tab1..-
37cc0 2d 2d 2d 0d 0a 31 32 36 32 33 35 32 30 0d 0a 31  ---..12623520..1
37cd0 34 31 30 30 34 38 30 0d 0a 38 38 37 36 35 35 30  4100480..8876550
37ce0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
37cf0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
37d00 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
37d10 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 32  owsort label-122
37d20 37 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e  7..SELECT - COUN
37d30 54 28 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 29 20  T( ALL - col0 ) 
37d40 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
37d50 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2b 20  0 WHERE NOT ( + 
37d60 63 6f 6c 32 20 2b 20 2b 20 2b 20 32 30 20 2b 20  col2 + + + 20 + 
37d70 63 6f 6c 32 20 29 20 49 53 20 4e 55 4c 4c 20 41  col2 ) IS NULL A
37d80 4e 44 20 4e 4f 54 20 2b 20 39 33 20 2a 20 35 31  ND NOT + 93 * 51
37d90 20 2b 20 2b 20 28 20 2d 20 63 6f 6c 31 20 29 20   + + ( - col1 ) 
37da0 4e 4f 54 20 49 4e 20 28 20 2b 20 63 6f 6c 32 20  NOT IN ( + col2 
37db0 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b  )..----..0....sk
37dc0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
37dd0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
37de0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
37df0 65 6c 2d 31 32 32 37 0d 0a 53 45 4c 45 43 54 20  el-1227..SELECT 
37e00 2d 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20 2d 20  - COUNT ( ALL - 
37e10 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 31 20 46  col0 ) AS col1 F
37e20 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
37e30 4f 54 20 28 20 2b 20 63 6f 6c 32 20 2b 20 2b 20  OT ( + col2 + + 
37e40 2b 20 32 30 20 2b 20 63 6f 6c 32 20 29 20 49 53  + 20 + col2 ) IS
37e50 20 4e 55 4c 4c 20 41 4e 44 20 4e 4f 54 20 2b 20   NULL AND NOT + 
37e60 39 33 20 2a 20 35 31 20 2b 20 2b 20 28 20 2d 20  93 * 51 + + ( - 
37e70 63 6f 6c 31 20 29 20 4e 4f 54 20 49 4e 20 28 20  col1 ) NOT IN ( 
37e80 2b 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a  + col2 )..----..
37e90 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
37ea0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
37eb0 20 2d 20 2b 20 34 35 20 46 52 4f 4d 20 74 61 62   - + 45 FROM tab
37ec0 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20  0 WHERE NULL IS 
37ed0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 35 0d  NULL..----..-45.
37ee0 0a 2d 34 35 0d 0a 2d 34 35 0d 0a 0d 0a 71 75 65  .-45..-45....que
37ef0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
37f00 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
37f10 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
37f20 20 4e 4f 54 20 28 20 2d 20 32 37 20 29 20 4e 4f   NOT ( - 27 ) NO
37f30 54 20 49 4e 20 28 20 37 34 20 29 0d 0a 2d 2d 2d  T IN ( 74 )..---
37f40 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
37f50 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
37f60 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 41 53 20  TINCT - col2 AS 
37f70 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
37f80 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
37f90 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 31 20 4e   col2 * + col1 N
37fa0 4f 54 20 49 4e 20 28 20 2d 20 63 6f 6c 30 20 2a  OT IN ( - col0 *
37fb0 20 2d 20 28 20 2b 20 63 6f 6c 30 20 29 20 29 0d   - ( + col0 ) ).
37fc0 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
37fd0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
37fe0 20 44 49 53 54 49 4e 43 54 20 2d 20 34 30 20 41   DISTINCT - 40 A
37ff0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
38000 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
38010 20 74 61 62 31 20 41 53 20 63 6f 72 31 0d 0a 2d   tab1 AS cor1..-
38020 2d 2d 2d 0d 0a 2d 34 30 0d 0a 0d 0a 71 75 65 72  ---..-40....quer
38030 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
38040 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  ECT DISTINCT col
38050 31 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  1 FROM tab0 WHER
38060 45 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20 28 20  E NULL NOT IN ( 
38070 2d 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a  - col0 )..----..
38080 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
38090 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
380a0 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
380b0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
380c0 65 6c 2d 31 32 33 33 0d 0a 53 45 4c 45 43 54 20  el-1233..SELECT 
380d0 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20  DISTINCT - col0 
380e0 2b 20 43 41 53 54 28 20 2b 20 2b 20 63 6f 6c 31  + CAST( + + col1
380f0 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2b   AS SIGNED ) + +
38100 20 28 20 63 6f 6c 32 20 29 20 2b 20 2d 20 63 6f   ( col2 ) + - co
38110 6c 32 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  l2 col2 FROM tab
38120 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  1 cor0..----..-3
38130 37 0d 0a 2d 34 34 0d 0a 2d 38 30 0d 0a 0d 0a 73  7..-44..-80....s
38140 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
38150 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
38160 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
38170 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
38180 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
38190 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
381a0 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
381b0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 33  owsort label-123
381c0 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  3..SELECT DISTIN
381d0 43 54 20 2d 20 63 6f 6c 30 20 2b 20 43 41 53 54  CT - col0 + CAST
381e0 20 28 20 2b 20 2b 20 63 6f 6c 31 20 41 53 20 49   ( + + col1 AS I
381f0 4e 54 45 47 45 52 20 29 20 2b 20 2b 20 28 20 63  NTEGER ) + + ( c
38200 6f 6c 32 20 29 20 2b 20 2d 20 63 6f 6c 32 20 63  ol2 ) + - col2 c
38210 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  ol2 FROM tab1 co
38220 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 37 0d 0a 2d  r0..----..-37..-
38230 34 34 0d 0a 2d 38 30 0d 0a 0d 0a 71 75 65 72 79  44..-80....query
38240 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
38250 43 54 20 2d 20 2b 20 28 20 2b 20 2d 20 63 6f 6c  CT - + ( + - col
38260 30 20 29 20 2b 20 2b 20 2b 20 63 6f 6c 32 20 46  0 ) + + + col2 F
38270 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
38280 0d 0a 2d 2d 2d 2d 0d 0a 31 30 34 0d 0a 31 33 33  ..----..104..133
38290 0d 0a 36 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..69....query II
382a0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
382b0 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
382c0 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
382d0 4e 55 4c 4c 20 3c 3e 20 34 32 0d 0a 2d 2d 2d 2d  NULL <> 42..----
382e0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
382f0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
38300 2d 20 2d 20 32 34 20 2b 20 63 6f 6c 32 20 2a 20  - - 24 + col2 * 
38310 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  - col0 FROM tab2
38320 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
38330 2d 31 30 33 34 0d 0a 2d 32 35 33 36 0d 0a 2d 34  -1034..-2536..-4
38340 33 32 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  326....query I r
38350 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
38360 20 2b 20 63 6f 6c 32 20 2b 20 39 37 20 2a 20 2d   + col2 + 97 * -
38370 20 37 39 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   79 AS col2 FROM
38380 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
38390 2d 2d 2d 0d 0a 2d 37 35 36 37 0d 0a 2d 37 35 39  ---..-7567..-759
383a0 35 0d 0a 2d 37 36 30 34 0d 0a 0d 0a 71 75 65 72  5..-7604....quer
383b0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
383c0 45 43 54 20 2b 20 63 6f 6c 31 20 2f 20 2b 20 34  ECT + col1 / + 4
383d0 35 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  5 AS col1 FROM t
383e0 61 62 32 20 63 6f 72 30 20 57 48 45 52 45 20 4e  ab2 cor0 WHERE N
383f0 55 4c 4c 20 4e 4f 54 20 49 4e 20 28 20 36 31 20  ULL NOT IN ( 61 
38400 2a 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a  * col1 )..----..
38410 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
38420 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
38430 43 54 20 2d 20 2b 20 33 38 20 2a 20 2d 20 28 20  CT - + 38 * - ( 
38440 63 6f 6c 32 20 29 20 2d 20 2d 20 2d 20 63 6f 6c  col2 ) - - - col
38450 30 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 63  0 + - col0 * - c
38460 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol1 AS col0 FROM
38470 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
38480 2d 2d 2d 0d 0a 32 35 38 32 0d 0a 34 33 31 31 0d  ---..2582..4311.
38490 0a 36 37 37 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .6770....onlyif 
384a0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
384b0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
384c0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
384d0 6c 2d 31 32 34 30 0d 0a 53 45 4c 45 43 54 20 2b  l-1240..SELECT +
384e0 20 30 20 2a 20 2d 20 2b 20 43 4f 55 4e 54 28 20   0 * - + COUNT( 
384f0 2a 20 29 20 2a 20 2b 20 43 4f 55 4e 54 28 20 41  * ) * + COUNT( A
38500 4c 4c 20 2b 20 31 33 20 29 20 46 52 4f 4d 20 74  LL + 13 ) FROM t
38510 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
38520 45 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a  E NULL IS NULL..
38530 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  ----..0....skipi
38540 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
38550 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
38560 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
38570 31 32 34 30 0d 0a 53 45 4c 45 43 54 20 2b 20 30  1240..SELECT + 0
38580 20 2a 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a   * - + COUNT ( *
38590 20 29 20 2a 20 2b 20 43 4f 55 4e 54 20 28 20 41   ) * + COUNT ( A
385a0 4c 4c 20 2b 20 31 33 20 29 20 46 52 4f 4d 20 74  LL + 13 ) FROM t
385b0 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
385c0 45 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a  E NULL IS NULL..
385d0 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69  ----..0....onlyi
385e0 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
385f0 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
38600 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
38610 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 34 31  wsort label-1241
38620 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 35  ..SELECT ALL - 5
38630 39 20 2b 20 2d 20 2d 20 63 6f 6c 32 20 44 49 56  9 + - - col2 DIV
38640 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20   - col1 AS col1 
38650 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a  FROM tab0 cor0..
38660 2d 2d 2d 2d 0d 0a 2d 31 35 38 0d 0a 2d 35 39 0d  ----..-158..-59.
38670 0a 2d 35 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-59....skipif m
38680 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
38690 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
386a0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 34  owsort label-124
386b0 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  1..SELECT ALL - 
386c0 35 39 20 2b 20 2d 20 2d 20 63 6f 6c 32 20 2f 20  59 + - - col2 / 
386d0 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46  - col1 AS col1 F
386e0 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d  ROM tab0 cor0..-
386f0 2d 2d 2d 0d 0a 2d 31 35 38 0d 0a 2d 35 39 0d 0a  ---..-158..-59..
38700 2d 35 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  -59....query III
38710 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
38720 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
38730 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 31 20  cor0 WHERE col1 
38740 2a 20 2d 20 32 30 20 49 53 20 4e 55 4c 4c 0d 0a  * - 20 IS NULL..
38750 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
38760 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
38770 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
38780 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
38790 2d 31 32 34 33 0d 0a 53 45 4c 45 43 54 20 44 49  -1243..SELECT DI
387a0 53 54 49 4e 43 54 20 2d 20 2b 20 4d 41 58 28 20  STINCT - + MAX( 
387b0 41 4c 4c 20 2b 20 63 6f 6c 32 20 29 20 41 53 20  ALL + col2 ) AS 
387c0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
387d0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  S cor0..----..-5
387e0 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  8....skipif mysq
387f0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
38800 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
38810 6f 72 74 20 6c 61 62 65 6c 2d 31 32 34 33 0d 0a  ort label-1243..
38820 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
38830 2d 20 2b 20 4d 41 58 20 28 20 41 4c 4c 20 2b 20  - + MAX ( ALL + 
38840 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 30 20 46  col2 ) AS col0 F
38850 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
38860 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 38 0d 0a 0d 0a 6f  ..----..-58....o
38870 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
38880 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
38890 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
388a0 74 20 6c 61 62 65 6c 2d 31 32 34 34 0d 0a 53 45  t label-1244..SE
388b0 4c 45 43 54 20 28 20 2d 20 4d 49 4e 28 20 2d 20  LECT ( - MIN( - 
388c0 63 6f 6c 32 20 29 20 29 20 41 53 20 63 6f 6c 32  col2 ) ) AS col2
388d0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
388e0 0d 0a 39 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..96....skipif m
388f0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
38900 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
38910 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 34  owsort label-124
38920 34 0d 0a 53 45 4c 45 43 54 20 28 20 2d 20 4d 49  4..SELECT ( - MI
38930 4e 20 28 20 2d 20 63 6f 6c 32 20 29 20 29 20 41  N ( - col2 ) ) A
38940 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
38950 0d 0a 2d 2d 2d 2d 0d 0a 39 36 0d 0a 0d 0a 71 75  ..----..96....qu
38960 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
38970 45 4c 45 43 54 20 41 4c 4c 20 2b 20 39 32 20 2d  ELECT ALL + 92 -
38980 20 31 33 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d   13 FROM tab1..-
38990 2d 2d 2d 0d 0a 37 39 0d 0a 37 39 0d 0a 37 39 0d  ---..79..79..79.
389a0 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
389b0 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
389c0 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
389d0 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
389e0 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
389f0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
38a00 45 43 54 20 41 4c 4c 20 2d 20 38 37 20 2a 20 38  ECT ALL - 87 * 8
38a10 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d   col1 FROM tab0.
38a20 0a 2d 2d 2d 2d 0d 0a 2d 36 39 36 0d 0a 2d 36 39  .----..-696..-69
38a30 36 0d 0a 2d 36 39 36 0d 0a 0d 0a 71 75 65 72 79  6..-696....query
38a40 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
38a50 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 2a 20  CT ALL + col2 * 
38a60 2d 20 36 36 20 2a 20 2d 20 63 6f 6c 31 20 46 52  - 66 * - col1 FR
38a70 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32  OM tab2..----..2
38a80 30 33 32 38 30 0d 0a 32 35 36 34 37 36 0d 0a 37  03280..256476..7
38a90 37 34 31 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  7418....onlyif m
38aa0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
38ab0 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
38ac0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
38ad0 72 74 20 6c 61 62 65 6c 2d 31 32 34 38 0d 0a 53  rt label-1248..S
38ae0 45 4c 45 43 54 20 28 20 2d 20 34 20 29 20 2f 20  ELECT ( - 4 ) / 
38af0 2d 20 63 6f 6c 32 20 2b 20 2b 20 31 33 20 2b 20  - col2 + + 13 + 
38b00 2b 20 2d 20 39 33 20 2d 20 43 41 53 54 28 20 4e  + - 93 - CAST( N
38b10 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
38b20 2b 20 63 6f 6c 32 20 2a 20 28 20 63 6f 6c 32 20  + col2 * ( col2 
38b30 2a 20 2b 20 35 20 29 20 2a 20 63 6f 6c 30 20 46  * + 5 ) * col0 F
38b40 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
38b50 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
38b60 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
38b70 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
38b80 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
38b90 72 74 20 6c 61 62 65 6c 2d 31 32 34 38 0d 0a 53  rt label-1248..S
38ba0 45 4c 45 43 54 20 28 20 2d 20 34 20 29 20 2f 20  ELECT ( - 4 ) / 
38bb0 2d 20 63 6f 6c 32 20 2b 20 2b 20 31 33 20 2b 20  - col2 + + 13 + 
38bc0 2b 20 2d 20 39 33 20 2d 20 43 41 53 54 20 28 20  + - 93 - CAST ( 
38bd0 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
38be0 29 20 2b 20 63 6f 6c 32 20 2a 20 28 20 63 6f 6c  ) + col2 * ( col
38bf0 32 20 2a 20 2b 20