sqllogictest
Hex Artifact Content
Not logged in

Artifact e7004278bdeb81f071ed1e553c5f460b96383325:


0000: 68 61 73 68 2d 74 68 72 65 73 68 6f 6c 64 20 38  hash-threshold 8
0010: 0d 0a 0d 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b  ....statement ok
0020: 0d 0a 43 52 45 41 54 45 20 54 41 42 4c 45 20 74  ..CREATE TABLE t
0030: 61 62 30 28 63 6f 6c 30 20 49 4e 54 45 47 45 52  ab0(col0 INTEGER
0040: 2c 20 63 6f 6c 31 20 49 4e 54 45 47 45 52 2c 20  , col1 INTEGER, 
0050: 63 6f 6c 32 20 49 4e 54 45 47 45 52 29 0d 0a 0d  col2 INTEGER)...
0060: 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 43  .statement ok..C
0070: 52 45 41 54 45 20 54 41 42 4c 45 20 74 61 62 31  REATE TABLE tab1
0080: 28 63 6f 6c 30 20 49 4e 54 45 47 45 52 2c 20 63  (col0 INTEGER, c
0090: 6f 6c 31 20 49 4e 54 45 47 45 52 2c 20 63 6f 6c  ol1 INTEGER, col
00a0: 32 20 49 4e 54 45 47 45 52 29 0d 0a 0d 0a 73 74  2 INTEGER)....st
00b0: 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 43 52 45 41  atement ok..CREA
00c0: 54 45 20 54 41 42 4c 45 20 74 61 62 32 28 63 6f  TE TABLE tab2(co
00d0: 6c 30 20 49 4e 54 45 47 45 52 2c 20 63 6f 6c 31  l0 INTEGER, col1
00e0: 20 49 4e 54 45 47 45 52 2c 20 63 6f 6c 32 20 49   INTEGER, col2 I
00f0: 4e 54 45 47 45 52 29 0d 0a 0d 0a 73 74 61 74 65  NTEGER)....state
0100: 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45 52 54 20  ment ok..INSERT 
0110: 49 4e 54 4f 20 74 61 62 30 20 56 41 4c 55 45 53  INTO tab0 VALUES
0120: 28 39 37 2c 31 2c 39 39 29 0d 0a 0d 0a 73 74 61  (97,1,99)....sta
0130: 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45 52  tement ok..INSER
0140: 54 20 49 4e 54 4f 20 74 61 62 30 20 56 41 4c 55  T INTO tab0 VALU
0150: 45 53 28 31 35 2c 38 31 2c 34 37 29 0d 0a 0d 0a  ES(15,81,47)....
0160: 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49 4e  statement ok..IN
0170: 53 45 52 54 20 49 4e 54 4f 20 74 61 62 30 20 56  SERT INTO tab0 V
0180: 41 4c 55 45 53 28 38 37 2c 32 31 2c 31 30 29 0d  ALUES(87,21,10).
0190: 0a 0d 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d  ...statement ok.
01a0: 0a 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 61 62  .INSERT INTO tab
01b0: 31 20 56 41 4c 55 45 53 28 35 31 2c 31 34 2c 39  1 VALUES(51,14,9
01c0: 36 29 0d 0a 0d 0a 73 74 61 74 65 6d 65 6e 74 20  6)....statement 
01d0: 6f 6b 0d 0a 49 4e 53 45 52 54 20 49 4e 54 4f 20  ok..INSERT INTO 
01e0: 74 61 62 31 20 56 41 4c 55 45 53 28 38 35 2c 35  tab1 VALUES(85,5
01f0: 2c 35 39 29 0d 0a 0d 0a 73 74 61 74 65 6d 65 6e  ,59)....statemen
0200: 74 20 6f 6b 0d 0a 49 4e 53 45 52 54 20 49 4e 54  t ok..INSERT INT
0210: 4f 20 74 61 62 31 20 56 41 4c 55 45 53 28 39 31  O tab1 VALUES(91
0220: 2c 34 37 2c 36 38 29 0d 0a 0d 0a 73 74 61 74 65  ,47,68)....state
0230: 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45 52 54 20  ment ok..INSERT 
0240: 49 4e 54 4f 20 74 61 62 32 20 56 41 4c 55 45 53  INTO tab2 VALUES
0250: 28 36 34 2c 37 37 2c 34 30 29 0d 0a 0d 0a 73 74  (64,77,40)....st
0260: 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45  atement ok..INSE
0270: 52 54 20 49 4e 54 4f 20 74 61 62 32 20 56 41 4c  RT INTO tab2 VAL
0280: 55 45 53 28 37 35 2c 36 37 2c 35 38 29 0d 0a 0d  UES(75,67,58)...
0290: 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49  .statement ok..I
02a0: 4e 53 45 52 54 20 49 4e 54 4f 20 74 61 62 32 20  NSERT INTO tab2 
02b0: 56 41 4c 55 45 53 28 34 36 2c 35 31 2c 32 33 29  VALUES(46,51,23)
02c0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
02d0: 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
02e0: 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
02f0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
0300: 61 62 65 6c 2d 30 0d 0a 53 45 4c 45 43 54 20 2b  abel-0..SELECT +
0310: 20 2b 20 63 6f 6c 32 20 2b 20 35 38 20 2a 20 2d   + col2 + 58 * -
0320: 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 30   - col1 + + col0
0330: 20 2d 20 2d 20 63 6f 6c 30 20 44 49 56 20 2d 20   - - col0 DIV - 
0340: 2b 20 37 36 20 46 52 4f 4d 20 74 61 62 32 20 41  + 76 FROM tab2 A
0350: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 30  S cor0..----..30
0360: 32 37 0d 0a 34 30 31 39 0d 0a 34 35 37 30 0d 0a  27..4019..4570..
0370: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
0380: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
0390: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
03a0: 20 6c 61 62 65 6c 2d 30 0d 0a 53 45 4c 45 43 54   label-0..SELECT
03b0: 20 2b 20 2b 20 63 6f 6c 32 20 2b 20 35 38 20 2a   + + col2 + 58 *
03c0: 20 2d 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 63 6f   - - col1 + + co
03d0: 6c 30 20 2d 20 2d 20 63 6f 6c 30 20 2f 20 2d 20  l0 - - col0 / - 
03e0: 2b 20 37 36 20 46 52 4f 4d 20 74 61 62 32 20 41  + 76 FROM tab2 A
03f0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 30  S cor0..----..30
0400: 32 37 0d 0a 34 30 31 39 0d 0a 34 35 37 30 0d 0a  27..4019..4570..
0410: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
0420: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
0430: 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 2c 20 63   col0 AS col0, c
0440: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
0450: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d   cor0..----..46.
0460: 0a 35 31 0d 0a 36 34 0d 0a 37 37 0d 0a 37 35 0d  .51..64..77..75.
0470: 0a 36 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .67....onlyif my
0480: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
0490: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
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 2b 20 63 6f 6c 31 20 2d 20 2d 20 43 41 53  T + col1 - - CAS
04d0: 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
04e0: 44 20 29 20 2b 20 2b 20 2b 20 28 20 63 6f 6c 31  D ) + + + ( col1
04f0: 20 29 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   ) FROM tab0 WHE
0500: 52 45 20 2d 20 2b 20 32 32 20 49 53 20 4e 55 4c  RE - + 22 IS NUL
0510: 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  L..----....skipi
0520: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
0530: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
0540: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
0550: 32 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31  2..SELECT + col1
0560: 20 2d 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c   - - CAST ( NULL
0570: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20   AS INTEGER ) + 
0580: 2b 20 2b 20 28 20 63 6f 6c 31 20 29 20 46 52 4f  + + ( col1 ) FRO
0590: 4d 20 74 61 62 30 20 57 48 45 52 45 20 2d 20 2b  M tab0 WHERE - +
05a0: 20 32 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d   22 IS NULL..---
05b0: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
05c0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
05d0: 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 2a 20 2d  TINCT - col2 * -
05e0: 20 63 6f 6c 30 20 2a 20 2b 20 2d 20 63 6f 6c 31   col0 * + - col1
05f0: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
0600: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 37 31 32  r0..----..-19712
0610: 30 0d 0a 2d 32 39 31 34 35 30 0d 0a 2d 35 33 39  0..-291450..-539
0620: 35 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  58....query I ro
0630: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
0640: 28 20 2b 20 2b 20 63 6f 6c 31 20 29 20 2a 20 2d  ( + + col1 ) * -
0650: 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 31   + col1 + + col1
0660: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
0670: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 32 30 0d 0a  r0..----..-420..
0680: 2d 36 34 38 30 0d 0a 30 0d 0a 0d 0a 71 75 65 72  -6480..0....quer
0690: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
06a0: 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
06b0: 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
06c0: 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3c 3e 20  ERE NOT NULL <> 
06d0: 2d 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 30 0d  - col0 * - col0.
06e0: 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
06f0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
0700: 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 2b 20 28 20   ALL + col1 + ( 
0710: 2b 20 63 6f 6c 31 20 29 20 2b 20 63 6f 6c 30 20  + col1 ) + col0 
0720: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
0730: 30 0d 0a 2d 2d 2d 2d 0d 0a 31 38 35 0d 0a 37 39  0..----..185..79
0740: 0d 0a 39 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..95....onlyif m
0750: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
0760: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
0770: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
0780: 2d 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  -7..SELECT ALL +
0790: 20 2d 20 28 20 2b 20 53 55 4d 28 20 41 4c 4c 20   - ( + SUM( ALL 
07a0: 63 6f 6c 32 20 29 20 29 20 46 52 4f 4d 20 74 61  col2 ) ) FROM ta
07b0: 62 30 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  b0 cor0 WHERE NO
07c0: 54 20 36 36 20 2f 20 63 6f 6c 31 20 42 45 54 57  T 66 / col1 BETW
07d0: 45 45 4e 20 2d 20 28 20 2b 20 63 6f 6c 30 20 29  EEN - ( + col0 )
07e0: 20 41 4e 44 20 2b 20 2d 20 63 6f 6c 31 0d 0a 2d   AND + - col1..-
07f0: 2d 2d 2d 0d 0a 2d 31 35 36 0d 0a 0d 0a 73 6b 69  ---..-156....ski
0800: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
0810: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
0820: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
0830: 6c 2d 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  l-7..SELECT ALL 
0840: 2b 20 2d 20 28 20 2b 20 53 55 4d 20 28 20 41 4c  + - ( + SUM ( AL
0850: 4c 20 63 6f 6c 32 20 29 20 29 20 46 52 4f 4d 20  L col2 ) ) FROM 
0860: 74 61 62 30 20 63 6f 72 30 20 57 48 45 52 45 20  tab0 cor0 WHERE 
0870: 4e 4f 54 20 36 36 20 2f 20 63 6f 6c 31 20 42 45  NOT 66 / col1 BE
0880: 54 57 45 45 4e 20 2d 20 28 20 2b 20 63 6f 6c 30  TWEEN - ( + col0
0890: 20 29 20 41 4e 44 20 2b 20 2d 20 63 6f 6c 31 0d   ) AND + - col1.
08a0: 0a 2d 2d 2d 2d 0d 0a 2d 31 35 36 0d 0a 0d 0a 6f  .----..-156....o
08b0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
08c0: 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
08d0: 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
08e0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
08f0: 38 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 44  8..SELECT col1 D
0900: 49 56 20 2b 20 31 20 2b 20 2b 20 63 6f 6c 31 20  IV + 1 + + col1 
0910: 2b 20 2b 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 2b  + + - col2 * - +
0920: 20 31 38 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   18 AS col2 FROM
0930: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 31 37   tab2..----..117
0940: 38 0d 0a 35 31 36 0d 0a 38 37 34 0d 0a 0d 0a 73  8..516..874....s
0950: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
0960: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
0970: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
0980: 62 65 6c 2d 38 0d 0a 53 45 4c 45 43 54 20 63 6f  bel-8..SELECT co
0990: 6c 31 20 2f 20 2b 20 31 20 2b 20 2b 20 63 6f 6c  l1 / + 1 + + col
09a0: 31 20 2b 20 2b 20 2d 20 63 6f 6c 32 20 2a 20 2d  1 + + - col2 * -
09b0: 20 2b 20 31 38 20 41 53 20 63 6f 6c 32 20 46 52   + 18 AS col2 FR
09c0: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab2..----..1
09d0: 31 37 38 0d 0a 35 31 36 0d 0a 38 37 34 0d 0a 0d  178..516..874...
09e0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
09f0: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67  CAST syntax: agg
0a00: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53  regate syntax: S
0a10: 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
0a20: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
0a30: 62 65 6c 2d 39 0d 0a 53 45 4c 45 43 54 20 44 49  bel-9..SELECT DI
0a40: 53 54 49 4e 43 54 20 2b 20 43 41 53 54 28 20 4e  STINCT + CAST( N
0a50: 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
0a60: 2b 20 38 30 20 2b 20 2d 20 2b 20 43 4f 55 4e 54  + 80 + - + COUNT
0a70: 28 20 2a 20 29 20 2b 20 43 4f 55 4e 54 28 20 2a  ( * ) + COUNT( *
0a80: 20 29 20 2b 20 2d 20 2d 20 30 20 2a 20 2b 20 32   ) + - - 0 * + 2
0a90: 34 20 2a 20 28 20 2b 20 32 30 20 29 20 41 53 20  4 * ( + 20 ) AS 
0aa0: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
0ab0: 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  ----..NULL....sk
0ac0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
0ad0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
0ae0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
0af0: 65 6c 2d 39 0d 0a 53 45 4c 45 43 54 20 44 49 53  el-9..SELECT DIS
0b00: 54 49 4e 43 54 20 2b 20 43 41 53 54 20 28 20 4e  TINCT + CAST ( N
0b10: 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
0b20: 20 2b 20 38 30 20 2b 20 2d 20 2b 20 43 4f 55 4e   + 80 + - + COUN
0b30: 54 20 28 20 2a 20 29 20 2b 20 43 4f 55 4e 54 20  T ( * ) + COUNT 
0b40: 28 20 2a 20 29 20 2b 20 2d 20 2d 20 30 20 2a 20  ( * ) + - - 0 * 
0b50: 2b 20 32 34 20 2a 20 28 20 2b 20 32 30 20 29 20  + 24 * ( + 20 ) 
0b60: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
0b70: 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  0..----..NULL...
0b80: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
0b90: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
0ba0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
0bb0: 6f 72 74 20 6c 61 62 65 6c 2d 31 30 0d 0a 53 45  ort label-10..SE
0bc0: 4c 45 43 54 20 2b 20 2d 20 4d 41 58 28 20 2b 20  LECT + - MAX( + 
0bd0: 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 31  col0 ) FROM tab1
0be0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
0bf0: 2d 39 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -91....skipif my
0c00: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
0c10: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
0c20: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 0d 0a  wsort label-10..
0c30: 53 45 4c 45 43 54 20 2b 20 2d 20 4d 41 58 20 28  SELECT + - MAX (
0c40: 20 2b 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74   + col0 ) FROM t
0c50: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
0c60: 2d 0d 0a 2d 39 31 0d 0a 0d 0a 6f 6e 6c 79 69 66  -..-91....onlyif
0c70: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
0c80: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
0c90: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
0ca0: 65 6c 2d 31 31 0d 0a 53 45 4c 45 43 54 20 2b 20  el-11..SELECT + 
0cb0: 28 20 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  ( - + COUNT( * )
0cc0: 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
0cd0: 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
0ce0: 52 45 20 2b 20 39 33 20 49 53 20 4e 4f 54 20 4e  RE + 93 IS NOT N
0cf0: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d  ULL..----..-3...
0d00: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
0d10: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
0d20: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
0d30: 6c 61 62 65 6c 2d 31 31 0d 0a 53 45 4c 45 43 54  label-11..SELECT
0d40: 20 2b 20 28 20 2d 20 2b 20 43 4f 55 4e 54 20 28   + ( - + COUNT (
0d50: 20 2a 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46   * ) ) AS col1 F
0d60: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
0d70: 20 57 48 45 52 45 20 2b 20 39 33 20 49 53 20 4e   WHERE + 93 IS N
0d80: 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d  OT NULL..----..-
0d90: 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  3....query III r
0da0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
0db0: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
0dc0: 72 30 20 57 48 45 52 45 20 2b 20 32 30 20 3c 3e  r0 WHERE + 20 <>
0dd0: 20 2b 20 2b 20 28 20 2b 20 63 6f 6c 32 20 29 0d   + + ( + col2 ).
0de0: 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
0df0: 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61  hashing to c6c0a
0e00: 34 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31  4111b36d04dbc811
0e10: 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 6f  a11e4d54cad....o
0e20: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
0e30: 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
0e40: 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
0e50: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
0e60: 31 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  13..SELECT ALL -
0e70: 20 63 6f 6c 30 20 2d 20 2b 20 63 6f 6c 30 20 2b   col0 - + col0 +
0e80: 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 2d 20 43 41   - col0 + + - CA
0e90: 53 54 28 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c  ST( - CAST( NULL
0ea0: 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20   AS SIGNED ) AS 
0eb0: 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 30  SIGNED ) AS col0
0ec0: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
0ed0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
0ee0: 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  NULL..NULL....sk
0ef0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
0f00: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
0f10: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
0f20: 65 6c 2d 31 33 0d 0a 53 45 4c 45 43 54 20 41 4c  el-13..SELECT AL
0f30: 4c 20 2d 20 63 6f 6c 30 20 2d 20 2b 20 63 6f 6c  L - col0 - + col
0f40: 30 20 2b 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 2d  0 + - col0 + + -
0f50: 20 43 41 53 54 20 28 20 2d 20 43 41 53 54 20 28   CAST ( - CAST (
0f60: 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
0f70: 20 29 20 41 53 20 49 4e 54 45 47 45 52 20 29 20   ) AS INTEGER ) 
0f80: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
0f90: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
0fa0: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
0fb0: 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  L....onlyif mysq
0fc0: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
0fd0: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
0fe0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 34  rowsort label-14
0ff0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1000: 54 20 2b 20 4d 41 58 28 20 2b 20 32 31 20 29 20  T + MAX( + 21 ) 
1010: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
1020: 31 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  1 AS cor0 CROSS 
1030: 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63 6f 72  JOIN tab0 AS cor
1040: 31 0d 0a 2d 2d 2d 2d 0d 0a 32 31 0d 0a 0d 0a 73  1..----..21....s
1050: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1060: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1070: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1080: 62 65 6c 2d 31 34 0d 0a 53 45 4c 45 43 54 20 44  bel-14..SELECT D
1090: 49 53 54 49 4e 43 54 20 2b 20 4d 41 58 20 28 20  ISTINCT + MAX ( 
10a0: 2b 20 32 31 20 29 20 41 53 20 63 6f 6c 32 20 46  + 21 ) AS col2 F
10b0: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
10c0: 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30   CROSS JOIN tab0
10d0: 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
10e0: 32 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  21....query I ro
10f0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
1100: 4c 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 2d 20 33  L - col2 * - - 3
1110: 33 20 2b 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20  3 + + col1 FROM 
1120: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
1130: 2d 2d 0d 0a 2d 31 39 34 32 0d 0a 2d 32 31 39 37  --..-1942..-2197
1140: 0d 0a 2d 33 31 35 34 0d 0a 0d 0a 6f 6e 6c 79 69  ..-3154....onlyi
1150: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
1160: 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
1170: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72  pe: ..query II r
1180: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 36 0d  owsort label-16.
1190: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
11a0: 20 2b 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 63 6f   + - col2 * + co
11b0: 6c 30 20 41 53 20 63 6f 6c 32 2c 20 43 41 53 54  l0 AS col2, CAST
11c0: 28 20 2d 20 2b 20 38 34 20 41 53 20 53 49 47 4e  ( - + 84 AS SIGN
11d0: 45 44 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ED ) col2 FROM t
11e0: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
11f0: 2d 0d 0a 2d 37 30 35 0d 0a 2d 38 34 0d 0a 2d 38  -..-705..-84..-8
1200: 37 30 0d 0a 2d 38 34 0d 0a 2d 39 36 30 33 0d 0a  70..-84..-9603..
1210: 2d 38 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -84....skipif my
1220: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1230: 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
1240: 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
1250: 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
1260: 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
1270: 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
1280: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
1290: 6c 61 62 65 6c 2d 31 36 0d 0a 53 45 4c 45 43 54  label-16..SELECT
12a0: 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 63 6f   DISTINCT + - co
12b0: 6c 32 20 2a 20 2b 20 63 6f 6c 30 20 41 53 20 63  l2 * + col0 AS c
12c0: 6f 6c 32 2c 20 43 41 53 54 20 28 20 2d 20 2b 20  ol2, CAST ( - + 
12d0: 38 34 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  84 AS INTEGER ) 
12e0: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
12f0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37  S cor0..----..-7
1300: 30 35 0d 0a 2d 38 34 0d 0a 2d 38 37 30 0d 0a 2d  05..-84..-870..-
1310: 38 34 0d 0a 2d 39 36 30 33 0d 0a 2d 38 34 0d 0a  84..-9603..-84..
1320: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1330: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
1340: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
1350: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37 0d 0a 53  sort label-17..S
1360: 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 2d  ELECT + COUNT( -
1370: 20 2d 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74   - col1 ) FROM t
1380: 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
1390: 45 20 4e 4f 54 20 63 6f 6c 31 20 3d 20 4e 55 4c  E NOT col1 = NUL
13a0: 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b  L..----..0....sk
13b0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
13c0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
13d0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
13e0: 65 6c 2d 31 37 0d 0a 53 45 4c 45 43 54 20 2b 20  el-17..SELECT + 
13f0: 43 4f 55 4e 54 20 28 20 2d 20 2d 20 63 6f 6c 31  COUNT ( - - col1
1400: 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
1410: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63  cor0 WHERE NOT c
1420: 6f 6c 31 20 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  ol1 = NULL..----
1430: 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  ..0....skipif po
1440: 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
1450: 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
1460: 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
1470: 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
1480: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1490: 0a 53 45 4c 45 43 54 20 39 33 20 63 6f 6c 31 20  .SELECT 93 col1 
14a0: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
14b0: 30 0d 0a 2d 2d 2d 2d 0d 0a 39 33 0d 0a 39 33 0d  0..----..93..93.
14c0: 0a 39 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  .93....query III
14d0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
14e0: 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
14f0: 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
1500: 45 52 45 20 2b 20 35 38 20 2a 20 2d 20 2d 20 63  ERE + 58 * - - c
1510: 6f 6c 31 20 2a 20 2b 20 38 31 20 49 53 20 4e 55  ol1 * + 81 IS NU
1520: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
1530: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
1540: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
1550: 31 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 2d 20  1 WHERE NOT - - 
1560: 28 20 63 6f 6c 32 20 29 20 49 53 20 4e 4f 54 20  ( col2 ) IS NOT 
1570: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
1580: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
1590: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
15a0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
15b0: 20 6c 61 62 65 6c 2d 32 31 0d 0a 53 45 4c 45 43   label-21..SELEC
15c0: 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 28 20 2a  T ALL - COUNT( *
15d0: 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   ) col2 FROM tab
15e0: 31 20 57 48 45 52 45 20 2b 20 63 6f 6c 32 20 49  1 WHERE + col2 I
15f0: 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
1600: 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..-3....skipif m
1610: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1620: 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
1630: 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
1640: 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
1650: 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
1660: 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
1670: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1680: 6c 61 62 65 6c 2d 32 31 0d 0a 53 45 4c 45 43 54  label-21..SELECT
1690: 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 20 28 20 2a   ALL - COUNT ( *
16a0: 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   ) col2 FROM tab
16b0: 31 20 57 48 45 52 45 20 2b 20 63 6f 6c 32 20 49  1 WHERE + col2 I
16c0: 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
16d0: 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  ..-3....skipif p
16e0: 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
16f0: 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
1700: 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
1710: 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
1720: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1730: 0d 0a 53 45 4c 45 43 54 20 35 39 20 2a 20 2d 20  ..SELECT 59 * - 
1740: 63 6f 6c 32 20 63 6f 6c 32 20 46 52 4f 4d 20 74  col2 col2 FROM t
1750: 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 35 37  ab2..----..-1357
1760: 0d 0a 2d 32 33 36 30 0d 0a 2d 33 34 32 32 0d 0a  ..-2360..-3422..
1770: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1780: 74 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 2b 20  t..SELECT + ( + 
1790: 34 30 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  40 ) AS col0 FRO
17a0: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 34 30  M tab1..----..40
17b0: 0d 0a 34 30 0d 0a 34 30 0d 0a 0d 0a 71 75 65 72  ..40..40....quer
17c0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
17d0: 45 43 54 20 33 30 20 2a 20 2b 20 63 6f 6c 32 20  ECT 30 * + col2 
17e0: 2a 20 2d 20 34 31 20 46 52 4f 4d 20 74 61 62 30  * - 41 FROM tab0
17f0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 31 37 37 30 0d  ..----..-121770.
1800: 0a 2d 31 32 33 30 30 0d 0a 2d 35 37 38 31 30 0d  .-12300..-57810.
1810: 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
1820: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
1830: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
1840: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
1850: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
1860: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1870: 45 43 54 20 41 4c 4c 20 2b 20 33 30 20 63 6f 6c  ECT ALL + 30 col
1880: 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
1890: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 30 0d 0a 33  or0..----..30..3
18a0: 30 0d 0a 33 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  0..30....onlyif 
18b0: 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
18c0: 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
18d0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
18e0: 6f 72 74 20 6c 61 62 65 6c 2d 32 36 0d 0a 53 45  ort label-26..SE
18f0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
1900: 63 6f 6c 30 20 2b 20 2b 20 2d 20 33 36 20 2d 20  col0 + + - 36 - 
1910: 2d 20 63 6f 6c 30 20 44 49 56 20 2b 20 37 34 20  - col0 DIV + 74 
1920: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
1930: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 0d 0a 35 32  0..----..-21..52
1940: 0d 0a 36 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..62....skipif m
1950: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1960: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1970: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 36 0d  owsort label-26.
1980: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1990: 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 2d 20 33 36   + col0 + + - 36
19a0: 20 2d 20 2d 20 63 6f 6c 30 20 2f 20 2b 20 37 34   - - col0 / + 74
19b0: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
19c0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 0d 0a 35  r0..----..-21..5
19d0: 32 0d 0a 36 32 0d 0a 0d 0a 71 75 65 72 79 20 49  2..62....query I
19e0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
19f0: 20 41 4c 4c 20 2d 20 35 36 20 41 53 20 63 6f 6c   ALL - 56 AS col
1a00: 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  2 FROM tab1 WHER
1a10: 45 20 4e 4f 54 20 2d 20 28 20 2b 20 2b 20 63 6f  E NOT - ( + + co
1a20: 6c 31 20 29 20 2a 20 2d 20 31 35 20 2b 20 2d 20  l1 ) * - 15 + - 
1a30: 2b 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c 20 4f  + col0 IS NULL O
1a40: 52 20 4e 55 4c 4c 20 3c 3e 20 2b 20 33 38 0d 0a  R NULL <> + 38..
1a50: 2d 2d 2d 2d 0d 0a 2d 35 36 0d 0a 2d 35 36 0d 0a  ----..-56..-56..
1a60: 2d 35 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  -56....query II 
1a70: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1a80: 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 2c 20  - col0 AS col2, 
1a90: 2d 20 63 6f 6c 32 20 2a 20 35 34 20 46 52 4f 4d  - col2 * 54 FROM
1aa0: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36   tab2..----..-46
1ab0: 0d 0a 2d 31 32 34 32 0d 0a 2d 36 34 0d 0a 2d 32  ..-1242..-64..-2
1ac0: 31 36 30 0d 0a 2d 37 35 0d 0a 2d 33 31 33 32 0d  160..-75..-3132.
1ad0: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1ae0: 72 74 0d 0a 53 45 4c 45 43 54 20 39 30 20 41 53  rt..SELECT 90 AS
1af0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
1b00: 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
1b10: 74 61 62 32 20 63 6f 72 31 20 57 48 45 52 45 20  tab2 cor1 WHERE 
1b20: 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c  NOT NULL IS NULL
1b30: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
1b40: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
1b50: 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
1b60: 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
1b70: 45 20 2b 20 36 32 20 4e 4f 54 20 42 45 54 57 45  E + 62 NOT BETWE
1b80: 45 4e 20 2b 20 63 6f 6c 31 20 41 4e 44 20 4e 55  EN + col1 AND NU
1b90: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  LL..----....only
1ba0: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
1bb0: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
1bc0: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49  ype: ..query III
1bd0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
1be0: 31 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  1..SELECT * FROM
1bf0: 20 74 61 62 32 20 63 6f 72 30 20 57 48 45 52 45   tab2 cor0 WHERE
1c00: 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
1c10: 49 47 4e 45 44 20 29 20 3c 3d 20 2d 20 33 34 0d  IGNED ) <= - 34.
1c20: 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
1c30: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1c40: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
1c50: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1c60: 33 31 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  31..SELECT * FRO
1c70: 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48 45 52  M tab2 cor0 WHER
1c80: 45 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  E CAST ( NULL AS
1c90: 20 49 4e 54 45 47 45 52 20 29 20 3c 3d 20 2d 20   INTEGER ) <= - 
1ca0: 33 34 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  34..----....quer
1cb0: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
1cc0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
1cd0: 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
1ce0: 4e 55 4c 4c 20 3e 3d 20 36 36 20 2a 20 2b 20 2b  NULL >= 66 * + +
1cf0: 20 63 6f 6c 32 20 2b 20 2b 20 2d 20 63 6f 6c 31   col2 + + - col1
1d00: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
1d10: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1d20: 54 20 2d 20 2d 20 38 20 2a 20 39 30 20 2b 20 28  T - - 8 * 90 + (
1d30: 20 2d 20 63 6f 6c 30 20 29 20 2b 20 63 6f 6c 31   - col0 ) + col1
1d40: 20 2d 20 2b 20 38 34 20 2b 20 2d 20 63 6f 6c 30   - + 84 + - col0
1d50: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
1d60: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
1d70: 0d 0a 34 34 33 0d 0a 34 38 33 0d 0a 36 38 37 0d  ..443..483..687.
1d80: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
1d90: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
1da0: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
1db0: 20 57 48 45 52 45 20 2d 20 28 20 2b 20 63 6f 6c   WHERE - ( + col
1dc0: 30 20 29 20 2a 20 63 6f 6c 30 20 2b 20 63 6f 6c  0 ) * col0 + col
1dd0: 31 20 42 45 54 57 45 45 4e 20 38 39 20 41 4e 44  1 BETWEEN 89 AND
1de0: 20 2d 20 34 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   - 42..----....q
1df0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1e00: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1e10: 2d 20 2b 20 33 33 20 2a 20 2d 20 2b 20 28 20 2d  - + 33 * - + ( -
1e20: 20 63 6f 6c 32 20 29 20 2b 20 2b 20 63 6f 6c 31   col2 ) + + col1
1e30: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
1e40: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 34 33 0d  r0..----..-1243.
1e50: 0a 2d 31 38 34 37 0d 0a 2d 37 30 38 0d 0a 0d 0a  .-1847..-708....
1e60: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1e70: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20  .SELECT ALL - - 
1e80: 28 20 38 35 20 29 20 41 53 20 63 6f 6c 30 20 46  ( 85 ) AS col0 F
1e90: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1ea0: 0d 0a 2d 2d 2d 2d 0d 0a 38 35 0d 0a 38 35 0d 0a  ..----..85..85..
1eb0: 38 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  85....skipif pos
1ec0: 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
1ed0: 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
1ee0: 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
1ef0: 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
1f00: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1f10: 53 45 4c 45 43 54 20 2b 20 2b 20 32 34 20 2a 20  SELECT + + 24 * 
1f20: 2d 20 2b 20 63 6f 6c 32 20 63 6f 6c 32 20 46 52  - + col2 col2 FR
1f30: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
1f40: 0a 2d 2d 2d 2d 0d 0a 2d 31 33 39 32 0d 0a 2d 35  .----..-1392..-5
1f50: 35 32 0d 0a 2d 39 36 30 0d 0a 0d 0a 71 75 65 72  52..-960....quer
1f60: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1f70: 45 43 54 20 2b 20 31 38 20 2a 20 2d 20 2b 20 63  ECT + 18 * - + c
1f80: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
1f90: 2d 2d 2d 0d 0a 2d 31 35 33 30 0d 0a 2d 31 36 33  ---..-1530..-163
1fa0: 38 0d 0a 2d 39 31 38 0d 0a 0d 0a 71 75 65 72 79  8..-918....query
1fb0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1fc0: 43 54 20 41 4c 4c 20 2b 20 28 20 63 6f 6c 31 20  CT ALL + ( col1 
1fd0: 29 20 2a 20 37 31 20 2b 20 2d 20 63 6f 6c 31 20  ) * 71 + - col1 
1fe0: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
1ff0: 0a 31 34 37 30 0d 0a 35 36 37 30 0d 0a 37 30 0d  .1470..5670..70.
2000: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
2010: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
2020: 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
2030: 52 45 20 4e 4f 54 20 2d 20 36 31 20 4e 4f 54 20  RE NOT - 61 NOT 
2040: 49 4e 20 28 20 2d 20 35 32 20 2a 20 63 6f 6c 30  IN ( - 52 * col0
2050: 2c 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 36 37 20  , - col2 + + 67 
2060: 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  )..----....query
2070: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2080: 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f  CT DISTINCT - co
2090: 6c 30 20 2b 20 2b 20 2d 20 36 38 20 2b 20 2b 20  l0 + + - 68 + + 
20a0: 39 38 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  98 AS col0 FROM 
20b0: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 0d  tab2..----..-16.
20c0: 0a 2d 33 34 0d 0a 2d 34 35 0d 0a 0d 0a 6f 6e 6c  .-34..-45....onl
20d0: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
20e0: 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c   syntax: DECIMAL
20f0: 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
2100: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
2110: 32 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2d  2..SELECT col0 -
2120: 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44   CAST( NULL AS D
2130: 45 43 49 4d 41 4c 20 29 20 2b 20 2b 20 28 20 2d  ECIMAL ) + + ( -
2140: 20 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74   - col0 ) FROM t
2150: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab0..----..NULL.
2160: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .NULL..NULL....s
2170: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2180: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2190: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
21a0: 62 65 6c 2d 34 32 0d 0a 53 45 4c 45 43 54 20 63  bel-42..SELECT c
21b0: 6f 6c 30 20 2d 20 43 41 53 54 20 28 20 4e 55 4c  ol0 - CAST ( NUL
21c0: 4c 20 41 53 20 52 45 41 4c 20 29 20 2b 20 2b 20  L AS REAL ) + + 
21d0: 28 20 2d 20 2d 20 63 6f 6c 30 20 29 20 46 52 4f  ( - - col0 ) FRO
21e0: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab0..----..NU
21f0: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
2200: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2210: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2220: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
2230: 73 6f 72 74 20 6c 61 62 65 6c 2d 34 33 0d 0a 53  sort label-43..S
2240: 45 4c 45 43 54 20 41 4c 4c 20 2d 20 28 20 2d 20  ELECT ALL - ( - 
2250: 4d 41 58 28 20 2b 20 28 20 2d 20 63 6f 6c 32 20  MAX( + ( - col2 
2260: 29 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ) ) ) AS col1 FR
2270: 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
2280: 35 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  59....skipif mys
2290: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
22a0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
22b0: 73 6f 72 74 20 6c 61 62 65 6c 2d 34 33 0d 0a 53  sort label-43..S
22c0: 45 4c 45 43 54 20 41 4c 4c 20 2d 20 28 20 2d 20  ELECT ALL - ( - 
22d0: 4d 41 58 20 28 20 2b 20 28 20 2d 20 63 6f 6c 32  MAX ( + ( - col2
22e0: 20 29 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46   ) ) ) AS col1 F
22f0: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
2300: 2d 35 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  -59....query I r
2310: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
2320: 4c 4c 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20  LL col0 AS col2 
2330: 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
2340: 4e 4f 54 20 2b 20 2d 20 63 6f 6c 32 20 2a 20 2b  NOT + - col2 * +
2350: 20 2b 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d   + col0 IS NULL.
2360: 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 38 35 0d 0a 39  .----..51..85..9
2370: 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
2380: 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
2390: 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
23a0: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
23b0: 20 6c 61 62 65 6c 2d 34 35 0d 0a 53 45 4c 45 43   label-45..SELEC
23c0: 54 20 41 4c 4c 20 2d 20 38 35 20 44 49 56 20 2b  T ALL - 85 DIV +
23d0: 20 34 38 20 2b 20 37 39 2c 20 2b 20 63 6f 6c 30   48 + 79, + col0
23e0: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
23f0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 38 0d 0a 34 36  r0..----..78..46
2400: 0d 0a 37 38 0d 0a 36 34 0d 0a 37 38 0d 0a 37 35  ..78..64..78..75
2410: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2420: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2430: 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
2440: 6f 72 74 20 6c 61 62 65 6c 2d 34 35 0d 0a 53 45  ort label-45..SE
2450: 4c 45 43 54 20 41 4c 4c 20 2d 20 38 35 20 2f 20  LECT ALL - 85 / 
2460: 2b 20 34 38 20 2b 20 37 39 2c 20 2b 20 63 6f 6c  + 48 + 79, + col
2470: 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
2480: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 38 0d 0a 34  or0..----..78..4
2490: 36 0d 0a 37 38 0d 0a 36 34 0d 0a 37 38 0d 0a 37  6..78..64..78..7
24a0: 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  5....onlyif mysq
24b0: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
24c0: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
24d0: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
24e0: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
24f0: 72 74 20 6c 61 62 65 6c 2d 34 36 0d 0a 53 45 4c  rt label-46..SEL
2500: 45 43 54 20 28 20 2b 20 28 20 2d 20 36 33 20 29  ECT ( + ( - 63 )
2510: 20 29 20 41 53 20 63 6f 6c 32 2c 20 43 41 53 54   ) AS col2, CAST
2520: 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
2530: 20 29 20 2f 20 2d 20 2d 20 53 55 4d 28 20 41 4c   ) / - - SUM( AL
2540: 4c 20 2d 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20  L - col1 ) FROM 
2550: 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
2560: 2d 2d 0d 0a 2d 36 33 0d 0a 4e 55 4c 4c 0d 0a 0d  --..-63..NULL...
2570: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2580: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2590: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
25a0: 20 6c 61 62 65 6c 2d 34 36 0d 0a 53 45 4c 45 43   label-46..SELEC
25b0: 54 20 28 20 2b 20 28 20 2d 20 36 33 20 29 20 29  T ( + ( - 63 ) )
25c0: 20 41 53 20 63 6f 6c 32 2c 20 43 41 53 54 20 28   AS col2, CAST (
25d0: 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
25e0: 20 29 20 2f 20 2d 20 2d 20 53 55 4d 20 28 20 41   ) / - - SUM ( A
25f0: 4c 4c 20 2d 20 63 6f 6c 31 20 29 20 46 52 4f 4d  LL - col1 ) FROM
2600: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
2610: 2d 2d 2d 0d 0a 2d 36 33 0d 0a 4e 55 4c 4c 0d 0a  ---..-63..NULL..
2620: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2630: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2640: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
2650: 73 6f 72 74 20 6c 61 62 65 6c 2d 34 37 0d 0a 53  sort label-47..S
2660: 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e  ELECT ALL - COUN
2670: 54 28 20 2a 20 29 20 2a 20 2b 20 39 20 41 53 20  T( * ) * + 9 AS 
2680: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
2690: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  S cor0..----..-2
26a0: 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  7....skipif mysq
26b0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
26c0: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
26d0: 6f 72 74 20 6c 61 62 65 6c 2d 34 37 0d 0a 53 45  ort label-47..SE
26e0: 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54  LECT ALL - COUNT
26f0: 20 28 20 2a 20 29 20 2a 20 2b 20 39 20 41 53 20   ( * ) * + 9 AS 
2700: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
2710: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  S cor0..----..-2
2720: 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  7....query I row
2730: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
2740: 31 20 2a 20 2d 20 2b 20 31 39 20 41 53 20 63 6f  1 * - + 19 AS co
2750: 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
2760: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 36 36  cor0..----..-266
2770: 0d 0a 2d 38 39 33 0d 0a 2d 39 35 0d 0a 0d 0a 71  ..-893..-95....q
2780: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
2790: 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
27a0: 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
27b0: 52 45 20 4e 4f 54 20 2b 20 32 36 20 2a 20 2d 20  RE NOT + 26 * - 
27c0: 2b 20 63 6f 6c 31 20 3c 3e 20 4e 55 4c 4c 0d 0a  + col1 <> NULL..
27d0: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
27e0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
27f0: 44 49 53 54 49 4e 43 54 20 2d 20 28 20 2b 20 28  DISTINCT - ( + (
2800: 20 2b 20 63 6f 6c 31 20 29 20 29 20 2a 20 2d 20   + col1 ) ) * - 
2810: 2b 20 35 20 46 52 4f 4d 20 74 61 62 32 20 41 53  + 5 FROM tab2 AS
2820: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 35 35   cor0..----..255
2830: 0d 0a 33 33 35 0d 0a 33 38 35 0d 0a 0d 0a 6f 6e  ..335..385....on
2840: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
2850: 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
2860: 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
2870: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
2880: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2890: 2d 35 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  -51..SELECT ALL 
28a0: 2d 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  - - CAST( NULL A
28b0: 53 20 53 49 47 4e 45 44 20 29 20 2f 20 43 4f 55  S SIGNED ) / COU
28c0: 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  NT( * ) FROM tab
28d0: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
28e0: 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
28f0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2900: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2910: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 31  rowsort label-51
2920: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d  ..SELECT ALL - -
2930: 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
2940: 49 4e 54 45 47 45 52 20 29 20 2f 20 43 4f 55 4e  INTEGER ) / COUN
2950: 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  T ( * ) FROM tab
2960: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
2970: 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
2980: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2990: 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  T DISTINCT + col
29a0: 31 20 2a 20 2d 20 38 31 20 2a 20 2d 20 63 6f 6c  1 * - 81 * - col
29b0: 30 20 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 32 20  0 AS col2, col2 
29c0: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
29d0: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
29e0: 0a 31 39 30 30 32 36 0d 0a 32 33 0d 0a 33 39 39  .190026..23..399
29f0: 31 36 38 0d 0a 34 30 0d 0a 34 30 37 30 32 35 0d  168..40..407025.
2a00: 0a 35 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .58....onlyif my
2a10: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
2a20: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
2a30: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2a40: 35 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  53..SELECT DISTI
2a50: 4e 43 54 20 2b 20 43 4f 55 4e 54 28 20 41 4c 4c  NCT + COUNT( ALL
2a60: 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62   col1 ) FROM tab
2a70: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
2a80: 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .3....skipif mys
2a90: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2aa0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2ab0: 73 6f 72 74 20 6c 61 62 65 6c 2d 35 33 0d 0a 53  sort label-53..S
2ac0: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
2ad0: 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20 63 6f 6c   COUNT ( ALL col
2ae0: 31 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  1 ) FROM tab0 AS
2af0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   cor0..----..3..
2b00: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2b10: 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
2b20: 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
2b30: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
2b40: 62 65 6c 2d 35 34 0d 0a 53 45 4c 45 43 54 20 2d  bel-54..SELECT -
2b50: 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   + CAST( NULL AS
2b60: 20 53 49 47 4e 45 44 20 29 2c 20 2b 20 63 6f 6c   SIGNED ), + col
2b70: 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  2 AS col0 FROM t
2b80: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
2b90: 2d 0d 0a 4e 55 4c 4c 0d 0a 35 39 0d 0a 4e 55 4c  -..NULL..59..NUL
2ba0: 4c 0d 0a 36 38 0d 0a 4e 55 4c 4c 0d 0a 39 36 0d  L..68..NULL..96.
2bb0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2bc0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2bd0: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
2be0: 72 74 20 6c 61 62 65 6c 2d 35 34 0d 0a 53 45 4c  rt label-54..SEL
2bf0: 45 43 54 20 2d 20 2b 20 43 41 53 54 20 28 20 4e  ECT - + CAST ( N
2c00: 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
2c10: 2c 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30  , + col2 AS col0
2c20: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
2c30: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
2c40: 35 39 0d 0a 4e 55 4c 4c 0d 0a 36 38 0d 0a 4e 55  59..NULL..68..NU
2c50: 4c 4c 0d 0a 39 36 0d 0a 0d 0a 71 75 65 72 79 20  LL..96....query 
2c60: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2c70: 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20  T DISTINCT col0 
2c80: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
2c90: 30 20 57 48 45 52 45 20 2d 20 63 6f 6c 30 20 3e  0 WHERE - col0 >
2ca0: 20 2b 20 32 36 20 4f 52 20 2d 20 63 6f 6c 32 20   + 26 OR - col2 
2cb0: 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
2cc0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2cd0: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
2ce0: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
2cf0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2d00: 6c 2d 35 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  l-56..SELECT ALL
2d10: 20 43 41 53 54 28 20 2d 20 2d 20 38 37 20 41 53   CAST( - - 87 AS
2d20: 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74   SIGNED ) FROM t
2d30: 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 38 37 0d 0a 38  ab2..----..87..8
2d40: 37 0d 0a 38 37 0d 0a 0d 0a 73 6b 69 70 69 66 20  7..87....skipif 
2d50: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2d60: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2d70: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 36  rowsort label-56
2d80: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41 53  ..SELECT ALL CAS
2d90: 54 20 28 20 2d 20 2d 20 38 37 20 41 53 20 49 4e  T ( - - 87 AS IN
2da0: 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62  TEGER ) FROM tab
2db0: 32 0d 0a 2d 2d 2d 2d 0d 0a 38 37 0d 0a 38 37 0d  2..----..87..87.
2dc0: 0a 38 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  .87....query III
2dd0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2de0: 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45   * FROM tab1 WHE
2df0: 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3e 3d 20 2d  RE NOT NULL >= -
2e00: 20 28 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d   ( col0 )..----.
2e10: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2e20: 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 34 30 20  rt..SELECT + 40 
2e30: 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
2e40: 4e 4f 54 20 2d 20 28 20 2b 20 2d 20 63 6f 6c 30  NOT - ( + - col0
2e50: 20 29 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20   ) BETWEEN NULL 
2e60: 41 4e 44 20 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d  AND - col0..----
2e70: 0d 0a 34 30 0d 0a 34 30 0d 0a 34 30 0d 0a 0d 0a  ..40..40..40....
2e80: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2e90: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2ea0: 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 32   + col2 + + col2
2eb0: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
2ec0: 62 30 20 57 48 45 52 45 20 2d 20 63 6f 6c 32 20  b0 WHERE - col2 
2ed0: 2f 20 2b 20 2b 20 63 6f 6c 31 20 49 53 20 4e 55  / + + col1 IS NU
2ee0: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
2ef0: 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
2f00: 4c 45 43 54 20 33 31 2c 20 28 20 2b 20 2d 20 63  LECT 31, ( + - c
2f10: 6f 6c 32 20 29 20 2b 20 63 6f 6c 30 20 41 53 20  ol2 ) + col0 AS 
2f20: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57  col2 FROM tab1 W
2f30: 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3c 20  HERE NOT NULL < 
2f40: 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  col0..----....qu
2f50: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2f60: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
2f70: 20 2d 20 39 20 2b 20 2d 20 2d 20 34 39 20 2a 20   - 9 + - - 49 * 
2f80: 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  + col2 FROM tab2
2f90: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 31   cor0..----..111
2fa0: 38 0d 0a 31 39 35 31 0d 0a 32 38 33 33 0d 0a 0d  8..1951..2833...
2fb0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2fc0: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2fd0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2fe0: 6f 72 74 20 6c 61 62 65 6c 2d 36 32 0d 0a 53 45  ort label-62..SE
2ff0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f  LECT DISTINCT CO
3000: 55 4e 54 28 20 41 4c 4c 20 2d 20 63 6f 6c 30 20  UNT( ALL - col0 
3010: 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
3020: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
3030: 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..3....skipif m
3040: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
3050: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
3060: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32 0d  owsort label-62.
3070: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
3080: 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20 2d 20 63   COUNT ( ALL - c
3090: 6f 6c 30 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ol0 ) AS col1 FR
30a0: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
30b0: 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72  .----..3....quer
30c0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
30d0: 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 2d  ECT ALL + col0 -
30e0: 20 2b 20 2b 20 34 30 20 41 53 20 63 6f 6c 32 20   + + 40 AS col2 
30f0: 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57  FROM tab0 cor0 W
3100: 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20 2a 20  HERE NOT col2 * 
3110: 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  col2 IS NULL..--
3120: 2d 2d 0d 0a 2d 32 35 0d 0a 34 37 0d 0a 35 37 0d  --..-25..47..57.
3130: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
3140: 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 32 34 20  rt..SELECT + 24 
3150: 2a 20 2b 20 28 20 2b 20 2b 20 63 6f 6c 31 20 29  * + ( + + col1 )
3160: 20 2b 20 28 20 31 37 20 29 20 41 53 20 63 6f 6c   + ( 17 ) AS col
3170: 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
3180: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 34 35 0d  or0..----..1145.
3190: 0a 31 33 37 0d 0a 33 35 33 0d 0a 0d 0a 71 75 65  .137..353....que
31a0: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
31b0: 45 4c 45 43 54 20 2b 20 2b 20 63 6f 6c 32 20 41  ELECT + + col2 A
31c0: 53 20 63 6f 6c 32 2c 20 2d 20 63 6f 6c 32 20 2b  S col2, - col2 +
31d0: 20 2b 20 2b 20 28 20 63 6f 6c 31 20 29 20 46 52   + + ( col1 ) FR
31e0: 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 2b 20  OM tab1 WHERE + 
31f0: 2b 20 63 6f 6c 32 20 3e 20 2b 20 2b 20 31 34 0d  + col2 > + + 14.
3200: 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 2d 35 34 0d 0a  .----..59..-54..
3210: 36 38 0d 0a 2d 32 31 0d 0a 39 36 0d 0a 2d 38 32  68..-21..96..-82
3220: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
3230: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20  ort..SELECT + - 
3240: 38 34 20 46 52 4f 4d 20 28 20 74 61 62 32 20 41  84 FROM ( tab2 A
3250: 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  S cor0 CROSS JOI
3260: 4e 20 74 61 62 30 20 41 53 20 63 6f 72 31 20 29  N tab0 AS cor1 )
3270: 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
3280: 20 68 61 73 68 69 6e 67 20 74 6f 20 39 37 35 65   hashing to 975e
3290: 32 65 66 32 61 33 62 66 31 65 65 32 36 32 32 33  2ef2a3bf1ee26223
32a0: 36 32 66 34 65 34 33 35 37 35 32 66 0d 0a 0d 0a  62f4e435752f....
32b0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
32c0: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
32d0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
32e0: 72 74 20 6c 61 62 65 6c 2d 36 37 0d 0a 53 45 4c  rt label-67..SEL
32f0: 45 43 54 20 2d 20 53 55 4d 28 20 41 4c 4c 20 2b  ECT - SUM( ALL +
3300: 20 28 20 2b 20 28 20 35 39 20 29 20 29 20 29 20   ( + ( 59 ) ) ) 
3310: 2d 20 2d 20 36 39 20 41 53 20 63 6f 6c 32 20 46  - - 69 AS col2 F
3320: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
3330: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 38 0d 0a 0d 0a  ..----..-108....
3340: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
3350: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
3360: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
3370: 61 62 65 6c 2d 36 37 0d 0a 53 45 4c 45 43 54 20  abel-67..SELECT 
3380: 2d 20 53 55 4d 20 28 20 41 4c 4c 20 2b 20 28 20  - SUM ( ALL + ( 
3390: 2b 20 28 20 35 39 20 29 20 29 20 29 20 2d 20 2d  + ( 59 ) ) ) - -
33a0: 20 36 39 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   69 AS col2 FROM
33b0: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
33c0: 2d 2d 2d 0d 0a 2d 31 30 38 0d 0a 0d 0a 71 75 65  ---..-108....que
33d0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
33e0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
33f0: 2d 20 37 35 20 2b 20 2d 20 28 20 2d 20 2d 20 63  - 75 + - ( - - c
3400: 6f 6c 30 20 29 20 2d 20 2b 20 63 6f 6c 31 20 46  ol0 ) - + col1 F
3410: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
3420: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 30 0d 0a 2d 31  ..----..-140..-1
3430: 36 35 0d 0a 2d 32 31 33 0d 0a 0d 0a 71 75 65 72  65..-213....quer
3440: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
3450: 45 43 54 20 41 4c 4c 20 2b 20 28 20 2b 20 33 35  ECT ALL + ( + 35
3460: 20 29 20 2d 20 2b 20 2d 20 33 34 20 41 53 20 63   ) - + - 34 AS c
3470: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
3480: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 39 0d   cor0..----..69.
3490: 0a 36 39 0d 0a 36 39 0d 0a 0d 0a 71 75 65 72 79  .69..69....query
34a0: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
34b0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
34c0: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28   AS cor0 WHERE (
34d0: 20 4e 55 4c 4c 20 29 20 4e 4f 54 20 42 45 54 57   NULL ) NOT BETW
34e0: 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2d 20 2d  EEN NULL AND - -
34f0: 20 33 36 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c   36..----....onl
3500: 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
3510: 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
3520: 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
3530: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 31  rowsort label-71
3540: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
3550: 54 20 63 6f 6c 32 20 2d 20 2d 20 63 6f 6c 32 20  T col2 - - col2 
3560: 2d 20 2b 20 2d 20 28 20 2d 20 2d 20 63 6f 6c 32  - + - ( - - col2
3570: 20 29 20 2d 20 2b 20 63 6f 6c 32 20 44 49 56 20   ) - + col2 DIV 
3580: 2b 20 63 6f 6c 31 20 2d 20 63 6f 6c 32 20 46 52  + col1 - col2 FR
3590: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
35a0: 0a 2d 2d 2d 2d 0d 0a 32 30 0d 0a 39 34 0d 0a 39  .----..20..94..9
35b0: 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
35c0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
35d0: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
35e0: 6f 72 74 20 6c 61 62 65 6c 2d 37 31 0d 0a 53 45  ort label-71..SE
35f0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
3600: 6c 32 20 2d 20 2d 20 63 6f 6c 32 20 2d 20 2b 20  l2 - - col2 - + 
3610: 2d 20 28 20 2d 20 2d 20 63 6f 6c 32 20 29 20 2d  - ( - - col2 ) -
3620: 20 2b 20 63 6f 6c 32 20 2f 20 2b 20 63 6f 6c 31   + col2 / + col1
3630: 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   - col2 FROM tab
3640: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
3650: 0a 32 30 0d 0a 39 34 0d 0a 39 39 0d 0a 0d 0a 71  .20..94..99....q
3660: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
3670: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
3680: 2b 20 31 37 20 2d 20 2b 20 63 6f 6c 31 20 41 53  + 17 - + col1 AS
3690: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
36a0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 0d 0a  cor0..----..-4..
36b0: 2d 36 34 0d 0a 31 36 0d 0a 0d 0a 71 75 65 72 79  -64..16....query
36c0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
36d0: 43 54 20 2b 20 37 30 20 2a 20 63 6f 6c 32 20 46  CT + 70 * col2 F
36e0: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
36f0: 31 36 31 30 0d 0a 32 38 30 30 0d 0a 34 30 36 30  1610..2800..4060
3700: 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
3710: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
3720: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
3730: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
3740: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
3750: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
3760: 45 4c 45 43 54 20 63 6f 6c 32 20 63 6f 6c 32 2c  ELECT col2 col2,
3770: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
3780: 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 35 0d 0a 36 38  .----..59..5..68
3790: 0d 0a 34 37 0d 0a 39 36 0d 0a 31 34 0d 0a 0d 0a  ..47..96..14....
37a0: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
37b0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
37c0: 54 20 63 6f 6c 32 2c 20 31 20 41 53 20 63 6f 6c  T col2, 1 AS col
37d0: 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
37e0: 2d 0d 0a 32 33 0d 0a 31 0d 0a 34 30 0d 0a 31 0d  -..23..1..40..1.
37f0: 0a 35 38 0d 0a 31 0d 0a 0d 0a 71 75 65 72 79 20  .58..1....query 
3800: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
3810: 54 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 2b 20 2b  T ALL - col1 + +
3820: 20 32 33 20 2b 20 2b 20 38 20 41 53 20 63 6f 6c   23 + + 8 AS col
3830: 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  0 FROM tab1..---
3840: 2d 0d 0a 2d 31 36 0d 0a 31 37 0d 0a 32 36 0d 0a  -..-16..17..26..
3850: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
3860: 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 2c  rt..SELECT col0,
3870: 20 63 6f 6c 31 20 2a 20 2d 20 2b 20 31 32 20 46   col1 * - + 12 F
3880: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
3890: 35 31 0d 0a 2d 31 36 38 0d 0a 38 35 0d 0a 2d 36  51..-168..85..-6
38a0: 30 0d 0a 39 31 0d 0a 2d 35 36 34 0d 0a 0d 0a 71  0..91..-564....q
38b0: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
38c0: 0a 53 45 4c 45 43 54 20 33 36 20 41 53 20 63 6f  .SELECT 36 AS co
38d0: 6c 31 2c 20 2b 20 31 33 20 46 52 4f 4d 20 74 61  l1, + 13 FROM ta
38e0: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 36 0d 0a 31 33  b0..----..36..13
38f0: 0d 0a 33 36 0d 0a 31 33 0d 0a 33 36 0d 0a 31 33  ..36..13..36..13
3900: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
3910: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 36 38  ort..SELECT - 68
3920: 20 2a 20 2d 20 2d 20 63 6f 6c 31 20 41 53 20 63   * - - col1 AS c
3930: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
3940: 2d 2d 2d 0d 0a 2d 33 31 39 36 0d 0a 2d 33 34 30  ---..-3196..-340
3950: 0d 0a 2d 39 35 32 0d 0a 0d 0a 71 75 65 72 79 20  ..-952....query 
3960: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
3970: 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32  CT DISTINCT col2
3980: 20 41 53 20 63 6f 6c 32 2c 20 35 33 20 2b 20 2d   AS col2, 53 + -
3990: 20 63 6f 6c 32 20 2a 20 2d 20 2d 20 31 37 20 46   col2 * - - 17 F
39a0: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
39b0: 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 2d 39 35 30  ..----..59..-950
39c0: 0d 0a 36 38 0d 0a 2d 31 31 30 33 0d 0a 39 36 0d  ..68..-1103..96.
39d0: 0a 2d 31 35 37 39 0d 0a 0d 0a 71 75 65 72 79 20  .-1579....query 
39e0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
39f0: 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 2a 20 2d  T ALL + col1 * -
3a00: 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20   + col2 AS col2 
3a10: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
3a20: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 34 34 0d 0a  0..----..-1344..
3a30: 2d 32 39 35 0d 0a 2d 33 31 39 36 0d 0a 0d 0a 6f  -295..-3196....o
3a40: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
3a50: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
3a60: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
3a70: 72 74 20 6c 61 62 65 6c 2d 38 32 0d 0a 53 45 4c  rt label-82..SEL
3a80: 45 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  ECT - COUNT( * )
3a90: 2c 20 35 38 20 63 6f 6c 31 20 46 52 4f 4d 20 74  , 58 col1 FROM t
3aa0: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
3ab0: 2d 0d 0a 2d 33 0d 0a 35 38 0d 0a 0d 0a 73 6b 69  -..-3..58....ski
3ac0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
3ad0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70  compatible..skip
3ae0: 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
3af0: 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
3b00: 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
3b10: 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
3b20: 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  mns..query II ro
3b30: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 32 0d 0a  wsort label-82..
3b40: 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 20 28  SELECT - COUNT (
3b50: 20 2a 20 29 2c 20 35 38 20 63 6f 6c 31 20 46 52   * ), 58 col1 FR
3b60: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
3b70: 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 35 38 0d 0a 0d  .----..-3..58...
3b80: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
3b90: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
3ba0: 43 54 20 63 6f 6c 30 2c 20 28 20 2d 20 2b 20 63  CT col0, ( - + c
3bb0: 6f 6c 31 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ol1 ) AS col0 FR
3bc0: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
3bd0: 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 2d 31 34 0d 0a  .----..51..-14..
3be0: 38 35 0d 0a 2d 35 0d 0a 39 31 0d 0a 2d 34 37 0d  85..-5..91..-47.
3bf0: 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
3c00: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
3c10: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
3c20: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
3c30: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
3c40: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
3c50: 45 43 54 20 38 39 20 63 6f 6c 31 20 46 52 4f 4d  ECT 89 col1 FROM
3c60: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 38 39 0d   tab1..----..89.
3c70: 0a 38 39 0d 0a 38 39 0d 0a 0d 0a 71 75 65 72 79  .89..89....query
3c80: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
3c90: 43 54 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 2d 20  CT + col2 * + - 
3ca0: 33 37 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  37 AS col1 FROM 
3cb0: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 38  tab2..----..-148
3cc0: 30 0d 0a 2d 32 31 34 36 0d 0a 2d 38 35 31 0d 0a  0..-2146..-851..
3cd0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
3ce0: 74 0d 0a 53 45 4c 45 43 54 20 2b 20 39 38 20 2a  t..SELECT + 98 *
3cf0: 20 2b 20 2b 20 33 20 41 53 20 63 6f 6c 31 20 46   + + 3 AS col1 F
3d00: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
3d10: 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30   CROSS JOIN tab0
3d20: 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
3d30: 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
3d40: 20 74 6f 20 34 31 30 64 30 65 37 35 34 34 63 36   to 410d0e7544c6
3d50: 62 35 37 38 30 35 33 33 33 33 33 34 39 61 62 34  b578053333349ab4
3d60: 32 61 30 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20  2a03....query I 
3d70: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
3d80: 41 4c 4c 20 2d 20 31 36 20 41 53 20 63 6f 6c 32  ALL - 16 AS col2
3d90: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
3da0: 72 30 20 57 48 45 52 45 20 4e 4f 54 20 31 20 3d  r0 WHERE NOT 1 =
3db0: 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 2d   + col1..----..-
3dc0: 31 36 0d 0a 2d 31 36 0d 0a 0d 0a 71 75 65 72 79  16..-16....query
3dd0: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
3de0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  LECT * FROM tab1
3df0: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
3e00: 4f 54 20 2d 20 36 33 20 2b 20 2b 20 63 6f 6c 30  OT - 63 + + col0
3e10: 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
3e20: 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
3e30: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
3e40: 6c 31 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74  l1 - col1 FROM t
3e50: 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
3e60: 45 20 4e 4f 54 20 2b 20 63 6f 6c 31 20 2d 20 33  E NOT + col1 - 3
3e70: 33 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  3 IS NOT NULL..-
3e80: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ---....query III
3e90: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
3ea0: 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32   ALL * FROM tab2
3eb0: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28   AS cor0 WHERE (
3ec0: 20 4e 55 4c 4c 20 29 20 3c 20 63 6f 6c 30 0d 0a   NULL ) < col0..
3ed0: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
3ee0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
3ef0: 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  T * FROM tab2 WH
3f00: 45 52 45 20 4e 4f 54 20 2d 20 2b 20 34 39 20 3c  ERE NOT - + 49 <
3f10: 3d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  = col1..----....
3f20: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
3f30: 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
3f40: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
3f50: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
3f60: 2d 39 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  -92..SELECT ALL 
3f70: 43 41 53 54 28 20 2b 20 32 34 20 41 53 20 53 49  CAST( + 24 AS SI
3f80: 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62 31  GNED ) FROM tab1
3f90: 0d 0a 2d 2d 2d 2d 0d 0a 32 34 0d 0a 32 34 0d 0a  ..----..24..24..
3fa0: 32 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  24....skipif mys
3fb0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
3fc0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
3fd0: 73 6f 72 74 20 6c 61 62 65 6c 2d 39 32 0d 0a 53  sort label-92..S
3fe0: 45 4c 45 43 54 20 41 4c 4c 20 43 41 53 54 20 28  ELECT ALL CAST (
3ff0: 20 2b 20 32 34 20 41 53 20 49 4e 54 45 47 45 52   + 24 AS INTEGER
4000: 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d   ) FROM tab1..--
4010: 2d 2d 0d 0a 32 34 0d 0a 32 34 0d 0a 32 34 0d 0a  --..24..24..24..
4020: 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
4030: 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
4040: 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
4050: 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
4060: 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
4070: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
4080: 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32  CT DISTINCT col2
4090: 20 2b 20 2b 20 2b 20 63 6f 6c 31 20 63 6f 6c 31   + + + col1 col1
40a0: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
40b0: 0d 0a 31 31 37 0d 0a 31 32 35 0d 0a 37 34 0d 0a  ..117..125..74..
40c0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
40d0: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
40e0: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
40f0: 73 6f 72 74 20 6c 61 62 65 6c 2d 39 34 0d 0a 53  sort label-94..S
4100: 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 2d 20 63  ELECT COUNT( - c
4110: 6f 6c 30 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ol0 ) AS col1 FR
4120: 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
4130: 54 20 4e 55 4c 4c 20 3d 20 28 20 2d 20 36 34 20  T NULL = ( - 64 
4140: 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b  )..----..0....sk
4150: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
4160: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
4170: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
4180: 65 6c 2d 39 34 0d 0a 53 45 4c 45 43 54 20 43 4f  el-94..SELECT CO
4190: 55 4e 54 20 28 20 2d 20 63 6f 6c 30 20 29 20 41  UNT ( - col0 ) A
41a0: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
41b0: 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
41c0: 3d 20 28 20 2d 20 36 34 20 29 0d 0a 2d 2d 2d 2d  = ( - 64 )..----
41d0: 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..0....onlyif my
41e0: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
41f0: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
4200: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
4210: 39 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 32  95..SELECT ALL 2
4220: 36 20 2a 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  6 * - COUNT( * )
4230: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
4240: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 38 0d 0a 0d  b2..----..-78...
4250: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
4260: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
4270: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
4280: 6c 61 62 65 6c 2d 39 35 0d 0a 53 45 4c 45 43 54  label-95..SELECT
4290: 20 41 4c 4c 20 32 36 20 2a 20 2d 20 43 4f 55 4e   ALL 26 * - COUN
42a0: 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20  T ( * ) AS col1 
42b0: 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
42c0: 0a 2d 37 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-78....query I 
42d0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
42e0: 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20  DISTINCT + col1 
42f0: 2a 20 37 30 20 41 53 20 63 6f 6c 32 20 46 52 4f  * 70 AS col2 FRO
4300: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 35  M tab2..----..35
4310: 37 30 0d 0a 34 36 39 30 0d 0a 35 33 39 30 0d 0a  70..4690..5390..
4320: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
4330: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 35 33  t..SELECT ALL 53
4340: 20 2b 20 2b 20 2b 20 32 31 20 46 52 4f 4d 20 74   + + + 21 FROM t
4350: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 37 34 0d 0a 37  ab1..----..74..7
4360: 34 0d 0a 37 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  4..74....onlyif 
4370: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
4380: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
4390: 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  : DIV for intege
43a0: 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
43b0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
43c0: 62 65 6c 2d 39 38 0d 0a 53 45 4c 45 43 54 20 41  bel-98..SELECT A
43d0: 4c 4c 20 2b 20 63 6f 6c 31 20 44 49 56 20 2b 20  LL + col1 DIV + 
43e0: 43 41 53 54 28 20 2b 20 43 41 53 54 28 20 2d 20  CAST( + CAST( - 
43f0: 63 6f 6c 31 20 41 53 20 53 49 47 4e 45 44 20 29  col1 AS SIGNED )
4400: 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f   AS SIGNED ) FRO
4410: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab0..----..-1
4420: 0d 0a 2d 31 0d 0a 2d 31 0d 0a 0d 0a 73 6b 69 70  ..-1..-1....skip
4430: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
4440: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
4450: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
4460: 2d 39 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  -98..SELECT ALL 
4470: 2b 20 63 6f 6c 31 20 2f 20 2b 20 43 41 53 54 20  + col1 / + CAST 
4480: 28 20 2b 20 43 41 53 54 20 28 20 2d 20 63 6f 6c  ( + CAST ( - col
4490: 31 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41  1 AS INTEGER ) A
44a0: 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d  S INTEGER ) FROM
44b0: 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d   tab0..----..-1.
44c0: 0a 2d 31 0d 0a 2d 31 0d 0a 0d 0a 6f 6e 6c 79 69  .-1..-1....onlyi
44d0: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
44e0: 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
44f0: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
4500: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 39 0d 0a  wsort label-99..
4510: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
4520: 2d 20 38 31 20 2f 20 2d 20 2d 20 31 20 2a 20 32  - 81 / - - 1 * 2
4530: 20 2b 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20   + + CAST( NULL 
4540: 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d  AS SIGNED ) FROM
4550: 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
4560: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
4570: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
4580: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
4590: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
45a0: 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  9..SELECT DISTIN
45b0: 43 54 20 2d 20 38 31 20 2f 20 2d 20 2d 20 31 20  CT - 81 / - - 1 
45c0: 2a 20 32 20 2b 20 2b 20 43 41 53 54 20 28 20 4e  * 2 + + CAST ( N
45d0: 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
45e0: 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d   FROM tab2 cor0.
45f0: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  .----..NULL....q
4600: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
4610: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
4620: 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53  T * FROM tab0 AS
4630: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
4640: 35 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e 55  5 NOT BETWEEN NU
4650: 4c 4c 20 41 4e 44 20 2b 20 63 6f 6c 30 20 2a 20  LL AND + col0 * 
4660: 2b 20 34 37 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  + 47..----....on
4670: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
4680: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
4690: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
46a0: 20 6c 61 62 65 6c 2d 31 30 31 0d 0a 53 45 4c 45   label-101..SELE
46b0: 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e  CT DISTINCT COUN
46c0: 54 28 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 29 20  T( ALL - col2 ) 
46d0: 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41  + - COUNT( * ) A
46e0: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
46f0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
4700: 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
4710: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
4720: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
4730: 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31 0d 0a 53  ort label-101..S
4740: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43  ELECT DISTINCT C
4750: 4f 55 4e 54 20 28 20 41 4c 4c 20 2d 20 63 6f 6c  OUNT ( ALL - col
4760: 32 20 29 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20  2 ) + - COUNT ( 
4770: 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  * ) AS col1 FROM
4780: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
4790: 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ---..0....onlyif
47a0: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
47b0: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
47c0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
47d0: 65 6c 2d 31 30 32 0d 0a 53 45 4c 45 43 54 20 41  el-102..SELECT A
47e0: 4c 4c 20 2b 20 2b 20 53 55 4d 28 20 63 6f 6c 30  LL + + SUM( col0
47f0: 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
4800: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 32 37 0d  cor0..----..227.
4810: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
4820: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
4830: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
4840: 74 20 6c 61 62 65 6c 2d 31 30 32 0d 0a 53 45 4c  t label-102..SEL
4850: 45 43 54 20 41 4c 4c 20 2b 20 2b 20 53 55 4d 20  ECT ALL + + SUM 
4860: 28 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61  ( col0 ) FROM ta
4870: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
4880: 0d 0a 32 32 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..227....onlyif 
4890: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
48a0: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
48b0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
48c0: 6f 72 74 20 6c 61 62 65 6c 2d 31 30 33 0d 0a 53  ort label-103..S
48d0: 45 4c 45 43 54 20 41 4c 4c 20 2b 20 39 38 20 2a  ELECT ALL + 98 *
48e0: 20 63 6f 6c 31 20 2b 20 63 6f 6c 31 20 2a 20 2b   col1 + col1 * +
48f0: 20 2d 20 28 20 2d 20 43 41 53 54 28 20 63 6f 6c   - ( - CAST( col
4900: 30 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20  0 AS SIGNED ) ) 
4910: 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  + - col0 FROM ta
4920: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
4930: 0d 0a 31 31 35 31 36 0d 0a 31 32 34 31 30 0d 0a  ..11516..12410..
4940: 37 32 39 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  7298....skipif m
4950: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
4960: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
4970: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 33  owsort label-103
4980: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 39  ..SELECT ALL + 9
4990: 38 20 2a 20 63 6f 6c 31 20 2b 20 63 6f 6c 31 20  8 * col1 + col1 
49a0: 2a 20 2b 20 2d 20 28 20 2d 20 43 41 53 54 20 28  * + - ( - CAST (
49b0: 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45 52   col0 AS INTEGER
49c0: 20 29 20 29 20 2b 20 2d 20 63 6f 6c 30 20 46 52   ) ) + - col0 FR
49d0: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
49e0: 0a 2d 2d 2d 2d 0d 0a 31 31 35 31 36 0d 0a 31 32  .----..11516..12
49f0: 34 31 30 0d 0a 37 32 39 38 0d 0a 0d 0a 6f 6e 6c  410..7298....onl
4a00: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
4a10: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
4a20: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
4a30: 6c 61 62 65 6c 2d 31 30 34 0d 0a 53 45 4c 45 43  label-104..SELEC
4a40: 54 20 2b 20 4d 49 4e 28 20 44 49 53 54 49 4e 43  T + MIN( DISTINC
4a50: 54 20 63 6f 6c 31 20 29 20 2a 20 2b 20 43 4f 55  T col1 ) * + COU
4a60: 4e 54 28 20 2a 20 29 20 2d 20 2d 20 43 4f 55 4e  NT( * ) - - COUN
4a70: 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46  T( * ) AS col0 F
4a80: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
4a90: 31 35 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  156....skipif my
4aa0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
4ab0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
4ac0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 34 0d  wsort label-104.
4ad0: 0a 53 45 4c 45 43 54 20 2b 20 4d 49 4e 20 28 20  .SELECT + MIN ( 
4ae0: 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 29 20  DISTINCT col1 ) 
4af0: 2a 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  * + COUNT ( * ) 
4b00: 2d 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  - - COUNT ( * ) 
4b10: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
4b20: 32 0d 0a 2d 2d 2d 2d 0d 0a 31 35 36 0d 0a 0d 0a  2..----..156....
4b30: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
4b40: 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2a  .SELECT - col0 *
4b50: 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 32 20 41   col0 + - col2 A
4b60: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
4b70: 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 37 32 0d 0a 2d 37  ..----..-272..-7
4b80: 35 37 39 0d 0a 2d 39 35 30 38 0d 0a 0d 0a 6f 6e  579..-9508....on
4b90: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
4ba0: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
4bb0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
4bc0: 20 6c 61 62 65 6c 2d 31 30 36 0d 0a 53 45 4c 45   label-106..SELE
4bd0: 43 54 20 44 49 53 54 49 4e 43 54 20 4d 41 58 28  CT DISTINCT MAX(
4be0: 20 41 4c 4c 20 63 6f 6c 31 20 29 20 2a 20 37 39   ALL col1 ) * 79
4bf0: 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
4c00: 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d   NULL IS NULL..-
4c10: 2d 2d 2d 0d 0a 33 37 31 33 0d 0a 0d 0a 73 6b 69  ---..3713....ski
4c20: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
4c30: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
4c40: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
4c50: 6c 2d 31 30 36 0d 0a 53 45 4c 45 43 54 20 44 49  l-106..SELECT DI
4c60: 53 54 49 4e 43 54 20 4d 41 58 20 28 20 41 4c 4c  STINCT MAX ( ALL
4c70: 20 63 6f 6c 31 20 29 20 2a 20 37 39 20 46 52 4f   col1 ) * 79 FRO
4c80: 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 55 4c  M tab1 WHERE NUL
4c90: 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  L IS NULL..----.
4ca0: 0a 33 37 31 33 0d 0a 0d 0a 71 75 65 72 79 20 49  .3713....query I
4cb0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
4cc0: 20 2d 20 36 39 20 2a 20 63 6f 6c 32 20 46 52 4f   - 69 * col2 FRO
4cd0: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab2..----..-1
4ce0: 35 38 37 0d 0a 2d 32 37 36 30 0d 0a 2d 34 30 30  587..-2760..-400
4cf0: 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  2....query III r
4d00: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
4d10: 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
4d20: 61 62 31 20 57 48 45 52 45 20 2d 20 28 20 31 37  ab1 WHERE - ( 17
4d30: 20 29 20 3c 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d   ) <= NULL..----
4d40: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
4d50: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
4d60: 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
4d70: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
4d80: 61 62 65 6c 2d 31 30 39 0d 0a 53 45 4c 45 43 54  abel-109..SELECT
4d90: 20 44 49 53 54 49 4e 43 54 20 28 20 2b 20 63 6f   DISTINCT ( + co
4da0: 6c 32 20 29 20 2b 20 43 41 53 54 28 20 4e 55 4c  l2 ) + CAST( NUL
4db0: 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 63 6f  L AS SIGNED ) co
4dc0: 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
4dd0: 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
4de0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
4df0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
4e00: 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
4e10: 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
4e20: 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
4e30: 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
4e40: 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
4e50: 6f 72 74 20 6c 61 62 65 6c 2d 31 30 39 0d 0a 53  ort label-109..S
4e60: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 28  ELECT DISTINCT (
4e70: 20 2b 20 63 6f 6c 32 20 29 20 2b 20 43 41 53 54   + col2 ) + CAST
4e80: 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
4e90: 45 52 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ER ) col1 FROM t
4ea0: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab1..----..NULL.
4eb0: 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
4ec0: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
4ed0: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
4ee0: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
4ef0: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
4f00: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
4f10: 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  ECT DISTINCT col
4f20: 32 20 2a 20 2b 20 32 30 20 63 6f 6c 32 20 46 52  2 * + 20 col2 FR
4f30: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
4f40: 39 38 30 0d 0a 32 30 30 0d 0a 39 34 30 0d 0a 0d  980..200..940...
4f50: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
4f60: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
4f70: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
4f80: 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31 0d 0a 53  ort label-111..S
4f90: 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a  ELECT + COUNT( *
4fa0: 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   ) col2 FROM tab
4fb0: 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 3e 20 2d  1 WHERE NULL > -
4fc0: 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 30 0d 0a   col2 * - col0..
4fd0: 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  ----..0....skipi
4fe0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
4ff0: 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66  mpatible..skipif
5000: 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
5010: 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
5020: 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
5030: 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
5040: 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
5050: 72 74 20 6c 61 62 65 6c 2d 31 31 31 0d 0a 53 45  rt label-111..SE
5060: 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a  LECT + COUNT ( *
5070: 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   ) col2 FROM tab
5080: 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 3e 20 2d  1 WHERE NULL > -
5090: 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 30 0d 0a   col2 * - col0..
50a0: 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79  ----..0....query
50b0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
50c0: 43 54 20 63 6f 6c 32 20 2a 20 33 34 20 41 53 20  CT col2 * 34 AS 
50d0: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col2 FROM tab1..
50e0: 2d 2d 2d 2d 0d 0a 32 30 30 36 0d 0a 32 33 31 32  ----..2006..2312
50f0: 0d 0a 33 32 36 34 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..3264....onlyif
5100: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
5110: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
5120: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
5130: 65 6c 2d 31 31 33 0d 0a 53 45 4c 45 43 54 20 28  el-113..SELECT (
5140: 20 37 31 20 29 20 2a 20 28 20 43 4f 55 4e 54 28   71 ) * ( COUNT(
5150: 20 2a 20 29 20 2b 20 43 4f 55 4e 54 28 20 2a 20   * ) + COUNT( * 
5160: 29 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  ) ) col0 FROM ta
5170: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 32 36 0d 0a 0d  b2..----..426...
5180: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
5190: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
51a0: 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
51b0: 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
51c0: 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
51d0: 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
51e0: 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
51f0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
5200: 31 33 0d 0a 53 45 4c 45 43 54 20 28 20 37 31 20  13..SELECT ( 71 
5210: 29 20 2a 20 28 20 43 4f 55 4e 54 20 28 20 2a 20  ) * ( COUNT ( * 
5220: 29 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ) + COUNT ( * ) 
5230: 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  ) col0 FROM tab2
5240: 0d 0a 2d 2d 2d 2d 0d 0a 34 32 36 0d 0a 0d 0a 6f  ..----..426....o
5250: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
5260: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
5270: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
5280: 74 20 6c 61 62 65 6c 2d 31 31 34 0d 0a 53 45 4c  t label-114..SEL
5290: 45 43 54 20 4d 49 4e 28 20 28 20 36 35 20 29 20  ECT MIN( ( 65 ) 
52a0: 29 20 2a 20 2b 20 4d 41 58 28 20 41 4c 4c 20 2b  ) * + MAX( ALL +
52b0: 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62   col1 ) FROM tab
52c0: 32 0d 0a 2d 2d 2d 2d 0d 0a 35 30 30 35 0d 0a 0d  2..----..5005...
52d0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
52e0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
52f0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
5300: 6c 61 62 65 6c 2d 31 31 34 0d 0a 53 45 4c 45 43  label-114..SELEC
5310: 54 20 4d 49 4e 20 28 20 28 20 36 35 20 29 20 29  T MIN ( ( 65 ) )
5320: 20 2a 20 2b 20 4d 41 58 20 28 20 41 4c 4c 20 2b   * + MAX ( ALL +
5330: 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62   col1 ) FROM tab
5340: 32 0d 0a 2d 2d 2d 2d 0d 0a 35 30 30 35 0d 0a 0d  2..----..5005...
5350: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
5360: 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
5370: 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
5380: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
5390: 6c 2d 31 31 35 0d 0a 53 45 4c 45 43 54 20 63 6f  l-115..SELECT co
53a0: 6c 30 20 2b 20 2d 20 63 6f 6c 31 20 44 49 56 20  l0 + - col1 DIV 
53b0: 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f  col1 AS col0 FRO
53c0: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 30  M tab1..----..50
53d0: 0d 0a 38 34 0d 0a 39 30 0d 0a 0d 0a 73 6b 69 70  ..84..90....skip
53e0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
53f0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
5400: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
5410: 2d 31 31 35 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  -115..SELECT col
5420: 30 20 2b 20 2d 20 63 6f 6c 31 20 2f 20 63 6f 6c  0 + - col1 / col
5430: 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  1 AS col0 FROM t
5440: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 30 0d 0a 38  ab1..----..50..8
5450: 34 0d 0a 39 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  4..90....onlyif 
5460: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
5470: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
5480: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
5490: 6f 72 74 20 6c 61 62 65 6c 2d 31 31 36 0d 0a 53  ort label-116..S
54a0: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43  ELECT DISTINCT C
54b0: 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
54c0: 4e 45 44 20 29 20 2f 20 2b 20 35 34 20 46 52 4f  NED ) / + 54 FRO
54d0: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab0..----..NU
54e0: 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
54f0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
5500: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
5510: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 36 0d 0a  sort label-116..
5520: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
5530: 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
5540: 4e 54 45 47 45 52 20 29 20 2f 20 2b 20 35 34 20  NTEGER ) / + 54 
5550: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
5560: 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .NULL....onlyif 
5570: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
5580: 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73  tax: aggregate s
5590: 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74  yntax: DECIMAL t
55a0: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
55b0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 37  owsort label-117
55c0: 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54  ..SELECT + COUNT
55d0: 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ( * ) FROM tab2 
55e0: 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3d  WHERE NOT NULL =
55f0: 20 2b 20 28 20 63 6f 6c 30 20 29 20 2a 20 43 41   + ( col0 ) * CA
5600: 53 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49  ST( NULL AS DECI
5610: 4d 41 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a  MAL )..----..0..
5620: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
5630: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
5640: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
5650: 20 6c 61 62 65 6c 2d 31 31 37 0d 0a 53 45 4c 45   label-117..SELE
5660: 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29  CT + COUNT ( * )
5670: 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
5680: 20 4e 4f 54 20 4e 55 4c 4c 20 3d 20 2b 20 28 20   NOT NULL = + ( 
5690: 63 6f 6c 30 20 29 20 2a 20 43 41 53 54 20 28 20  col0 ) * CAST ( 
56a0: 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 0d 0a  NULL AS REAL )..
56b0: 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79  ----..0....query
56c0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
56d0: 43 54 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20  CT col0 AS col0 
56e0: 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
56f0: 2d 20 63 6f 6c 30 20 4e 4f 54 20 49 4e 20 28 20  - col0 NOT IN ( 
5700: 2d 20 28 20 2d 20 63 6f 6c 31 20 29 20 29 0d 0a  - ( - col1 ) )..
5710: 2d 2d 2d 2d 0d 0a 35 31 0d 0a 38 35 0d 0a 39 31  ----..51..85..91
5720: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
5730: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
5740: 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
5750: 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54  NOT NULL NOT BET
5760: 57 45 45 4e 20 2d 20 63 6f 6c 32 20 2d 20 2b 20  WEEN - col2 - + 
5770: 63 6f 6c 32 20 2a 20 2b 20 31 39 20 41 4e 44 20  col2 * + 19 AND 
5780: 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  col0..----....qu
5790: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
57a0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
57b0: 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
57c0: 52 45 20 4e 4f 54 20 63 6f 6c 32 20 4e 4f 54 20  RE NOT col2 NOT 
57d0: 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44  BETWEEN NULL AND
57e0: 20 2d 20 34 33 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   - 43..----....o
57f0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
5800: 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
5810: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
5820: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
5830: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
5840: 6c 2d 31 32 31 0d 0a 53 45 4c 45 43 54 20 2d 20  l-121..SELECT - 
5850: 43 4f 55 4e 54 28 20 2a 20 29 20 2d 20 2d 20 43  COUNT( * ) - - C
5860: 41 53 54 28 20 28 20 2d 20 33 34 20 29 20 41 53  AST( ( - 34 ) AS
5870: 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c   SIGNED ) AS col
5880: 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
5890: 2d 0d 0a 2d 33 37 0d 0a 0d 0a 73 6b 69 70 69 66  -..-37....skipif
58a0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
58b0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
58c0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
58d0: 32 31 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55  21..SELECT - COU
58e0: 4e 54 20 28 20 2a 20 29 20 2d 20 2d 20 43 41 53  NT ( * ) - - CAS
58f0: 54 20 28 20 28 20 2d 20 33 34 20 29 20 41 53 20  T ( ( - 34 ) AS 
5900: 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c  INTEGER ) AS col
5910: 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
5920: 2d 0d 0a 2d 33 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  -..-37....onlyif
5930: 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
5940: 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
5950: 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
5960: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 32 0d 0a  sort label-122..
5970: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
5980: 2b 20 28 20 2d 20 63 6f 6c 31 20 29 20 44 49 56  + ( - col1 ) DIV
5990: 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   + col1 FROM tab
59a0: 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 73  2..----..-1....s
59b0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
59c0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
59d0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
59e0: 62 65 6c 2d 31 32 32 0d 0a 53 45 4c 45 43 54 20  bel-122..SELECT 
59f0: 44 49 53 54 49 4e 43 54 20 2b 20 28 20 2d 20 63  DISTINCT + ( - c
5a00: 6f 6c 31 20 29 20 2f 20 2b 20 63 6f 6c 31 20 46  ol1 ) / + col1 F
5a10: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
5a20: 2d 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  -1....query I ro
5a30: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
5a40: 53 54 49 4e 43 54 20 32 33 20 2b 20 2b 20 31 33  STINCT 23 + + 13
5a50: 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
5a60: 20 4e 4f 54 20 28 20 2b 20 63 6f 6c 30 20 29 20   NOT ( + col0 ) 
5a70: 42 45 54 57 45 45 4e 20 2d 20 63 6f 6c 32 20 41  BETWEEN - col2 A
5a80: 4e 44 20 31 39 0d 0a 2d 2d 2d 2d 0d 0a 33 36 0d  ND 19..----..36.
5a90: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
5aa0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
5ab0: 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 28  ROM tab2 WHERE (
5ac0: 20 2b 20 63 6f 6c 30 20 2b 20 63 6f 6c 31 20 2a   + col0 + col1 *
5ad0: 20 2b 20 63 6f 6c 30 20 29 20 49 53 20 4e 55 4c   + col0 ) IS NUL
5ae0: 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
5af0: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
5b00: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  LECT * FROM tab1
5b10: 20 57 48 45 52 45 20 28 20 2b 20 28 20 2d 20 38   WHERE ( + ( - 8
5b20: 38 20 29 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c  8 ) ) IS NOT NUL
5b30: 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  L..----..9 value
5b40: 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63  s hashing to c6c
5b50: 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38  0a4111b36d04dbc8
5b60: 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d  11a11e4d54cad...
5b70: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
5b80: 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20  ..SELECT + col1 
5b90: 2b 20 28 20 2d 20 63 6f 6c 31 20 2d 20 63 6f 6c  + ( - col1 - col
5ba0: 31 20 29 20 46 52 4f 4d 20 74 61 62 32 20 57 48  1 ) FROM tab2 WH
5bb0: 45 52 45 20 2d 20 35 20 49 53 20 4e 4f 54 20 4e  ERE - 5 IS NOT N
5bc0: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a  ULL..----..-51..
5bd0: 2d 36 37 0d 0a 2d 37 37 0d 0a 0d 0a 71 75 65 72  -67..-77....quer
5be0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
5bf0: 45 43 54 20 41 4c 4c 20 2b 20 34 37 20 2b 20 2b  ECT ALL + 47 + +
5c00: 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52   col1 AS col1 FR
5c10: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
5c20: 32 38 0d 0a 34 38 0d 0a 36 38 0d 0a 0d 0a 6f 6e  28..48..68....on
5c30: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
5c40: 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
5c50: 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
5c60: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
5c70: 32 38 0d 0a 53 45 4c 45 43 54 20 33 34 20 44 49  28..SELECT 34 DI
5c80: 56 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  V - col2 FROM ta
5c90: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a  b1..----..0..0..
5ca0: 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
5cb0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
5cc0: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
5cd0: 6f 72 74 20 6c 61 62 65 6c 2d 31 32 38 0d 0a 53  ort label-128..S
5ce0: 45 4c 45 43 54 20 33 34 20 2f 20 2d 20 63 6f 6c  ELECT 34 / - col
5cf0: 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  2 FROM tab1..---
5d00: 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 71 75  -..0..0..0....qu
5d10: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
5d20: 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2b  ELECT ALL col1 +
5d30: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
5d40: 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 49  WHERE ( NULL ) I
5d50: 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 30  S NULL..----..10
5d60: 0d 0a 32 38 0d 0a 39 34 0d 0a 0d 0a 6f 6e 6c 79  ..28..94....only
5d70: 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
5d80: 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
5d90: 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
5da0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 33 30  owsort label-130
5db0: 0d 0a 53 45 4c 45 43 54 20 34 30 20 44 49 56 20  ..SELECT 40 DIV 
5dc0: 37 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  71 AS col1 FROM 
5dd0: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30  tab2..----..0..0
5de0: 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
5df0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
5e00: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
5e10: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 33 30 0d  wsort label-130.
5e20: 0a 53 45 4c 45 43 54 20 34 30 20 2f 20 37 31 20  .SELECT 40 / 71 
5e30: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
5e40: 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30  2..----..0..0..0
5e50: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
5e60: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
5e70: 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a  DECIMAL type: ..
5e80: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
5e90: 74 20 6c 61 62 65 6c 2d 31 33 31 0d 0a 53 45 4c  t label-131..SEL
5ea0: 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
5eb0: 61 62 32 20 57 48 45 52 45 20 2b 20 63 6f 6c 31  ab2 WHERE + col1
5ec0: 20 2a 20 2d 20 28 20 2b 20 43 41 53 54 28 20 4e   * - ( + CAST( N
5ed0: 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29  ULL AS DECIMAL )
5ee0: 20 29 20 2b 20 2b 20 33 34 20 3e 20 63 6f 6c 30   ) + + 34 > col0
5ef0: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
5f00: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
5f10: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
5f20: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
5f30: 2d 31 33 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -131..SELECT ALL
5f40: 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   * FROM tab2 WHE
5f50: 52 45 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 28 20  RE + col1 * - ( 
5f60: 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
5f70: 20 52 45 41 4c 20 29 20 29 20 2b 20 2b 20 33 34   REAL ) ) + + 34
5f80: 20 3e 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d   > col0..----...
5f90: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
5fa0: 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
5fb0: 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
5fc0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
5fd0: 6c 2d 31 33 32 0d 0a 53 45 4c 45 43 54 20 2d 20  l-132..SELECT - 
5fe0: 38 31 20 44 49 56 20 2b 20 63 6f 6c 31 20 41 53  81 DIV + col1 AS
5ff0: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
6000: 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 33 0d 0a 2d  .----..-1..-3..-
6010: 38 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  81....skipif mys
6020: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
6030: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
6040: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 33 32 0d 0a  sort label-132..
6050: 53 45 4c 45 43 54 20 2d 20 38 31 20 2f 20 2b 20  SELECT - 81 / + 
6060: 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f  col1 AS col0 FRO
6070: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab0..----..-1
6080: 0d 0a 2d 33 0d 0a 2d 38 31 0d 0a 0d 0a 6f 6e 6c  ..-3..-81....onl
6090: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
60a0: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
60b0: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
60c0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 33  rowsort label-13
60d0: 33 0d 0a 53 45 4c 45 43 54 20 28 20 41 56 47 20  3..SELECT ( AVG 
60e0: 28 20 41 4c 4c 20 63 6f 6c 30 20 29 20 29 20 2f  ( ALL col0 ) ) /
60f0: 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   - CAST( NULL AS
6100: 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74   SIGNED ) FROM t
6110: 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab2..----..NULL.
6120: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
6130: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
6140: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
6150: 74 20 6c 61 62 65 6c 2d 31 33 33 0d 0a 53 45 4c  t label-133..SEL
6160: 45 43 54 20 28 20 41 56 47 20 28 20 41 4c 4c 20  ECT ( AVG ( ALL 
6170: 63 6f 6c 30 20 29 20 29 20 2f 20 2d 20 43 41 53  col0 ) ) / - CAS
6180: 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
6190: 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 32 0d  GER ) FROM tab2.
61a0: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  .----..NULL....q
61b0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
61c0: 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20  SELECT ALL col2 
61d0: 2b 20 2b 20 31 37 20 41 53 20 63 6f 6c 31 20 46  + + 17 AS col1 F
61e0: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
61f0: 31 31 33 0d 0a 37 36 0d 0a 38 35 0d 0a 0d 0a 71  113..76..85....q
6200: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
6210: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
6220: 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48  T * FROM tab1 WH
6230: 45 52 45 20 2d 20 63 6f 6c 31 20 2f 20 63 6f 6c  ERE - col1 / col
6240: 31 20 2d 20 2b 20 63 6f 6c 30 20 4e 4f 54 20 42  1 - + col0 NOT B
6250: 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20  ETWEEN NULL AND 
6260: 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a  ( NULL )..----..
6270: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
6280: 74 0d 0a 53 45 4c 45 43 54 20 2b 20 35 30 20 2d  t..SELECT + 50 -
6290: 20 33 35 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d   35 FROM tab1..-
62a0: 2d 2d 2d 0d 0a 31 35 0d 0a 31 35 0d 0a 31 35 0d  ---..15..15..15.
62b0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
62c0: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
62d0: 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
62e0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
62f0: 62 65 6c 2d 31 33 37 0d 0a 53 45 4c 45 43 54 20  bel-137..SELECT 
6300: 44 49 53 54 49 4e 43 54 20 43 41 53 54 28 20 4e  DISTINCT CAST( N
6310: 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
6320: 2a 20 2b 20 41 56 47 20 28 20 41 4c 4c 20 2d 20  * + AVG ( ALL - 
6330: 31 31 20 2a 20 2b 20 33 37 20 29 20 46 52 4f 4d  11 * + 37 ) FROM
6340: 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
6350: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
6360: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
6370: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
6380: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
6390: 33 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  37..SELECT DISTI
63a0: 4e 43 54 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  NCT CAST ( NULL 
63b0: 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2b  AS INTEGER ) * +
63c0: 20 41 56 47 20 28 20 41 4c 4c 20 2d 20 31 31 20   AVG ( ALL - 11 
63d0: 2a 20 2b 20 33 37 20 29 20 46 52 4f 4d 20 74 61  * + 37 ) FROM ta
63e0: 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  b2 cor0..----..N
63f0: 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ULL....query I r
6400: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
6410: 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 41 53 20  ISTINCT col1 AS 
6420: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
6430: 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e  S cor0 WHERE ( N
6440: 55 4c 4c 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c  ULL ) IS NOT NUL
6450: 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  L..----....onlyi
6460: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
6470: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
6480: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
6490: 62 65 6c 2d 31 33 39 0d 0a 53 45 4c 45 43 54 20  bel-139..SELECT 
64a0: 44 49 53 54 49 4e 43 54 20 53 55 4d 28 20 41 4c  DISTINCT SUM( AL
64b0: 4c 20 2d 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20  L - col2 ) FROM 
64c0: 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
64d0: 2d 2d 0d 0a 2d 31 35 36 0d 0a 0d 0a 73 6b 69 70  --..-156....skip
64e0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
64f0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
6500: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
6510: 2d 31 33 39 0d 0a 53 45 4c 45 43 54 20 44 49 53  -139..SELECT DIS
6520: 54 49 4e 43 54 20 53 55 4d 20 28 20 41 4c 4c 20  TINCT SUM ( ALL 
6530: 2d 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61  - col2 ) FROM ta
6540: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
6550: 0d 0a 2d 31 35 36 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..-156....onlyif
6560: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
6570: 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20  ntax: aggregate 
6580: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
6590: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
65a0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 34 30  owsort label-140
65b0: 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 28 20 2b  ..SELECT CAST( +
65c0: 20 43 4f 55 4e 54 28 20 63 6f 6c 32 20 29 20 41   COUNT( col2 ) A
65d0: 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20  S SIGNED ) FROM 
65e0: 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
65f0: 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..3....skipif 
6600: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
6610: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
6620: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 34  rowsort label-14
6630: 30 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 20 28  0..SELECT CAST (
6640: 20 2b 20 43 4f 55 4e 54 20 28 20 63 6f 6c 32 20   + COUNT ( col2 
6650: 29 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 46  ) AS INTEGER ) F
6660: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
6670: 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65  ..----..3....que
6680: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
6690: 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
66a0: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
66b0: 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20  HERE NOT ( NULL 
66c0: 29 20 3c 20 2d 20 34 30 0d 0a 2d 2d 2d 2d 0d 0a  ) < - 40..----..
66d0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
66e0: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
66f0: 43 54 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 37 36  CT + col1 * + 76
6700: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
6710: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 39 36 0d 0a  b0..----..1596..
6720: 36 31 35 36 0d 0a 37 36 0d 0a 0d 0a 71 75 65 72  6156..76....quer
6730: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
6740: 45 43 54 20 41 4c 4c 20 2d 20 2b 20 35 20 2a 20  ECT ALL - + 5 * 
6750: 2b 20 63 6f 6c 31 20 2b 20 63 6f 6c 32 20 46 52  + col1 + col2 FR
6760: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
6770: 0a 2d 2d 2d 2d 0d 0a 2d 33 35 38 0d 0a 2d 39 35  .----..-358..-95
6780: 0d 0a 39 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..94....onlyif m
6790: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
67a0: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
67b0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
67c0: 2d 31 34 34 0d 0a 53 45 4c 45 43 54 20 2d 20 43  -144..SELECT - C
67d0: 4f 55 4e 54 28 20 2a 20 29 20 2a 20 32 37 20 41  OUNT( * ) * 27 A
67e0: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
67f0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
6800: 2d 38 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -81....skipif my
6810: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
6820: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
6830: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 34 34 0d  wsort label-144.
6840: 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 20  .SELECT - COUNT 
6850: 28 20 2a 20 29 20 2a 20 32 37 20 41 53 20 63 6f  ( * ) * 27 AS co
6860: 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
6870: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 31 0d  cor0..----..-81.
6880: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
6890: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
68a0: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
68b0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 34 35 0d  wsort label-145.
68c0: 0a 53 45 4c 45 43 54 20 2b 20 2d 20 39 35 20 2a  .SELECT + - 95 *
68d0: 20 2b 20 4d 49 4e 28 20 34 33 20 29 20 46 52 4f   + MIN( 43 ) FRO
68e0: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
68f0: 2d 2d 2d 2d 0d 0a 2d 34 30 38 35 0d 0a 0d 0a 73  ----..-4085....s
6900: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
6910: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
6920: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
6930: 62 65 6c 2d 31 34 35 0d 0a 53 45 4c 45 43 54 20  bel-145..SELECT 
6940: 2b 20 2d 20 39 35 20 2a 20 2b 20 4d 49 4e 20 28  + - 95 * + MIN (
6950: 20 34 33 20 29 20 46 52 4f 4d 20 74 61 62 31 20   43 ) FROM tab1 
6960: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
6970: 34 30 38 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  4085....onlyif m
6980: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
6990: 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
69a0: 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77   ..query III row
69b0: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 34 36 0d 0a  sort label-146..
69c0: 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
69d0: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
69e0: 48 45 52 45 20 4e 4f 54 20 2b 20 43 41 53 54 28  HERE NOT + CAST(
69f0: 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
6a00: 29 20 2a 20 2d 20 63 6f 6c 32 20 49 53 20 4e 4f  ) * - col2 IS NO
6a10: 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20  T NULL..----..9 
6a20: 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
6a30: 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38 33  o 75c998aa53ac83
6a40: 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30 61  218cbf2feb962d0a
6a50: 34 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  49....skipif mys
6a60: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
6a70: 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72  ble..query III r
6a80: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 34 36  owsort label-146
6a90: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
6aa0: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
6ab0: 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 43 41 53   WHERE NOT + CAS
6ac0: 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
6ad0: 47 45 52 20 29 20 2a 20 2d 20 63 6f 6c 32 20 49  GER ) * - col2 I
6ae0: 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
6af0: 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
6b00: 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33  ng to 75c998aa53
6b10: 61 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36  ac83218cbf2feb96
6b20: 32 64 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20  2d0a49....query 
6b30: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
6b40: 54 20 2d 20 2d 20 37 37 20 46 52 4f 4d 20 74 61  T - - 77 FROM ta
6b50: 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37  b0 cor0..----..7
6b60: 37 0d 0a 37 37 0d 0a 37 37 0d 0a 0d 0a 6f 6e 6c  7..77..77....onl
6b70: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
6b80: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
6b90: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
6ba0: 6c 61 62 65 6c 2d 31 34 38 0d 0a 53 45 4c 45 43  label-148..SELEC
6bb0: 54 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  T - - COUNT( * )
6bc0: 20 2a 20 2b 20 39 38 20 41 53 20 63 6f 6c 30 20   * + 98 AS col0 
6bd0: 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a  FROM tab2 cor0..
6be0: 2d 2d 2d 2d 0d 0a 32 39 34 0d 0a 0d 0a 73 6b 69  ----..294....ski
6bf0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
6c00: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
6c10: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
6c20: 6c 2d 31 34 38 0d 0a 53 45 4c 45 43 54 20 2d 20  l-148..SELECT - 
6c30: 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20  - COUNT ( * ) * 
6c40: 2b 20 39 38 20 41 53 20 63 6f 6c 30 20 46 52 4f  + 98 AS col0 FRO
6c50: 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab2 cor0..---
6c60: 2d 0d 0a 32 39 34 0d 0a 0d 0a 71 75 65 72 79 20  -..294....query 
6c70: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
6c80: 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 41 53 20  T ALL - col0 AS 
6c90: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
6ca0: 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
6cb0: 20 28 20 63 6f 6c 32 20 29 20 42 45 54 57 45 45   ( col2 ) BETWEE
6cc0: 4e 20 63 6f 6c 31 20 41 4e 44 20 28 20 4e 55 4c  N col1 AND ( NUL
6cd0: 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a  L )..----..-15..
6ce0: 2d 38 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -87....onlyif my
6cf0: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
6d00: 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20  syntax: DIV for 
6d10: 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
6d20: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
6d30: 6f 72 74 20 6c 61 62 65 6c 2d 31 35 30 0d 0a 53  ort label-150..S
6d40: 45 4c 45 43 54 20 2b 20 53 55 4d 28 20 44 49 53  ELECT + SUM( DIS
6d50: 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 29 20 44  TINCT - col2 ) D
6d60: 49 56 20 2b 20 32 33 20 46 52 4f 4d 20 74 61 62  IV + 23 FROM tab
6d70: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
6d80: 0a 2d 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .-5....skipif my
6d90: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
6da0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
6db0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 35 30 0d  wsort label-150.
6dc0: 0a 53 45 4c 45 43 54 20 2b 20 53 55 4d 20 28 20  .SELECT + SUM ( 
6dd0: 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20  DISTINCT - col2 
6de0: 29 20 2f 20 2b 20 32 33 20 46 52 4f 4d 20 74 61  ) / + 23 FROM ta
6df0: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
6e00: 0d 0a 2d 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  ..-5....skipif p
6e10: 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
6e20: 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
6e30: 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
6e40: 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
6e50: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
6e60: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 36 38 20  ..SELECT ALL 68 
6e70: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
6e80: 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e  S cor0 WHERE ( N
6e90: 55 4c 4c 20 29 20 42 45 54 57 45 45 4e 20 28 20  ULL ) BETWEEN ( 
6ea0: 38 38 20 29 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d  88 ) AND NULL..-
6eb0: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
6ec0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
6ed0: 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 2a  ISTINCT + col1 *
6ee0: 20 31 38 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   18 AS col2 FROM
6ef0: 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20   tab2 WHERE NOT 
6f00: 2b 20 63 6f 6c 30 20 2a 20 32 34 20 49 53 20 4e  + col0 * 24 IS N
6f10: 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  OT NULL..----...
6f20: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
6f30: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
6f40: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
6f50: 6f 72 74 20 6c 61 62 65 6c 2d 31 35 33 0d 0a 53  ort label-153..S
6f60: 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a 20 29  ELECT COUNT( * )
6f70: 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
6f80: 20 2d 20 63 6f 6c 30 20 4e 4f 54 20 42 45 54 57   - col0 NOT BETW
6f90: 45 45 4e 20 28 20 39 31 20 29 20 41 4e 44 20 28  EEN ( 91 ) AND (
6fa0: 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 32 20 29   col0 * - col2 )
6fb0: 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69  ..----..3....ski
6fc0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
6fd0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
6fe0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
6ff0: 6c 2d 31 35 33 0d 0a 53 45 4c 45 43 54 20 43 4f  l-153..SELECT CO
7000: 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
7010: 61 62 31 20 57 48 45 52 45 20 2d 20 63 6f 6c 30  ab1 WHERE - col0
7020: 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 28 20 39   NOT BETWEEN ( 9
7030: 31 20 29 20 41 4e 44 20 28 20 63 6f 6c 30 20 2a  1 ) AND ( col0 *
7040: 20 2d 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d   - col2 )..----.
7050: 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .3....onlyif mys
7060: 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
7070: 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
7080: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
7090: 20 6c 61 62 65 6c 2d 31 35 34 0d 0a 53 45 4c 45   label-154..SELE
70a0: 43 54 20 41 4c 4c 20 43 41 53 54 28 20 4e 55 4c  CT ALL CAST( NUL
70b0: 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53  L AS SIGNED ) AS
70c0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
70d0: 57 48 45 52 45 20 4e 55 4c 4c 20 3c 3e 20 28 20  WHERE NULL <> ( 
70e0: 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  NULL )..----....
70f0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
7100: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
7110: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
7120: 61 62 65 6c 2d 31 35 34 0d 0a 53 45 4c 45 43 54  abel-154..SELECT
7130: 20 41 4c 4c 20 43 41 53 54 20 28 20 4e 55 4c 4c   ALL CAST ( NULL
7140: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53   AS INTEGER ) AS
7150: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
7160: 57 48 45 52 45 20 4e 55 4c 4c 20 3c 3e 20 28 20  WHERE NULL <> ( 
7170: 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  NULL )..----....
7180: 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
7190: 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
71a0: 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
71b0: 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
71c0: 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
71d0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
71e0: 20 41 4c 4c 20 38 33 20 2a 20 2d 20 63 6f 6c 32   ALL 83 * - col2
71f0: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
7200: 0a 2d 2d 2d 2d 0d 0a 2d 33 39 30 31 0d 0a 2d 38  .----..-3901..-8
7210: 32 31 37 0d 0a 2d 38 33 30 0d 0a 0d 0a 71 75 65  217..-830....que
7220: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
7230: 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
7240: 4d 20 74 61 62 30 20 57 48 45 52 45 20 37 31 20  M tab0 WHERE 71 
7250: 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
7260: 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
7270: 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35 64  ing to c4b42765d
7280: 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35 33  ff94eaaa46040e53
7290: 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72 79  7fb43b7....query
72a0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
72b0: 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 28 20  CT DISTINCT - ( 
72c0: 2d 20 2b 20 28 20 63 6f 6c 32 20 29 20 29 20 2a  - + ( col2 ) ) *
72d0: 20 2d 20 63 6f 6c 32 20 2b 20 63 6f 6c 31 20 46   - col2 + col1 F
72e0: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
72f0: 2d 31 35 32 33 0d 0a 2d 33 32 39 37 0d 0a 2d 34  -1523..-3297..-4
7300: 37 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  78....query I ro
7310: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
7320: 38 34 20 2a 20 2b 20 34 33 20 2a 20 2d 20 63 6f  84 * + 43 * - co
7330: 6c 32 20 2b 20 31 35 20 2a 20 2b 20 63 6f 6c 32  l2 + 15 * + col2
7340: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
7350: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 32 32 32  b1..----..-21222
7360: 33 0d 0a 2d 32 34 34 35 39 36 0d 0a 2d 33 34 35  3..-244596..-345
7370: 33 31 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  312....query III
7380: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
7390: 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31   ALL * FROM tab1
73a0: 20 57 48 45 52 45 20 28 20 63 6f 6c 32 20 29 20   WHERE ( col2 ) 
73b0: 3c 3e 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 39  <> col1..----..9
73c0: 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
73d0: 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64  to c6c0a4111b36d
73e0: 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34  04dbc811a11e4d54
73f0: 63 61 64 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  cad....onlyif my
7400: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
7410: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
7420: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
7430: 31 36 30 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f  160..SELECT - CO
7440: 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
7450: 62 31 20 57 48 45 52 45 20 2d 20 63 6f 6c 31 20  b1 WHERE - col1 
7460: 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
7470: 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..-3....skipif 
7480: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
7490: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
74a0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 36  rowsort label-16
74b0: 30 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e  0..SELECT - COUN
74c0: 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  T ( * ) FROM tab
74d0: 31 20 57 48 45 52 45 20 2d 20 63 6f 6c 31 20 49  1 WHERE - col1 I
74e0: 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
74f0: 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  ..-3....skipif p
7500: 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
7510: 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
7520: 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
7530: 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
7540: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
7550: 0d 0a 53 45 4c 45 43 54 20 35 38 20 2a 20 2d 20  ..SELECT 58 * - 
7560: 63 6f 6c 32 20 63 6f 6c 30 20 46 52 4f 4d 20 74  col2 col0 FROM t
7570: 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
7580: 45 20 28 20 2d 20 63 6f 6c 30 20 29 20 49 53 20  E ( - col0 ) IS 
7590: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
75a0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
75b0: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
75c0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
75d0: 20 6c 61 62 65 6c 2d 31 36 32 0d 0a 53 45 4c 45   label-162..SELE
75e0: 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20 2a 20  CT ALL COUNT( * 
75f0: 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  ) FROM tab0 AS c
7600: 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c  or0 WHERE NULL <
7610: 3e 20 28 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d  > ( col0 )..----
7620: 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
7630: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
7640: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
7650: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 36 32 0d  wsort label-162.
7660: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e  .SELECT ALL COUN
7670: 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  T ( * ) FROM tab
7680: 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
7690: 4e 55 4c 4c 20 3c 3e 20 28 20 63 6f 6c 30 20 29  NULL <> ( col0 )
76a0: 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c  ..----..0....onl
76b0: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
76c0: 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61   syntax: aggrega
76d0: 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  te syntax: SIGNE
76e0: 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
76f0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
7700: 31 36 33 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41  163..SELECT - CA
7710: 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
7720: 45 44 20 29 20 2f 20 2d 20 41 56 47 20 28 20 2b  ED ) / - AVG ( +
7730: 20 63 6f 6c 32 20 29 20 2d 20 4d 49 4e 28 20 41   col2 ) - MIN( A
7740: 4c 4c 20 2d 20 63 6f 6c 31 20 29 20 63 6f 6c 31  LL - col1 ) col1
7750: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
7760: 72 30 20 57 48 45 52 45 20 63 6f 6c 32 20 2b 20  r0 WHERE col2 + 
7770: 2b 20 36 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  + 61 IS NULL..--
7780: 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
7790: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
77a0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
77b0: 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
77c0: 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
77d0: 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
77e0: 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
77f0: 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
7800: 6f 72 74 20 6c 61 62 65 6c 2d 31 36 33 0d 0a 53  ort label-163..S
7810: 45 4c 45 43 54 20 2d 20 43 41 53 54 20 28 20 4e  ELECT - CAST ( N
7820: 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
7830: 20 2f 20 2d 20 41 56 47 20 28 20 2b 20 63 6f 6c   / - AVG ( + col
7840: 32 20 29 20 2d 20 4d 49 4e 20 28 20 41 4c 4c 20  2 ) - MIN ( ALL 
7850: 2d 20 63 6f 6c 31 20 29 20 63 6f 6c 31 20 46 52  - col1 ) col1 FR
7860: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
7870: 57 48 45 52 45 20 63 6f 6c 32 20 2b 20 2b 20 36  WHERE col2 + + 6
7880: 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  1 IS NULL..----.
7890: 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
78a0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
78b0: 20 2d 20 2b 20 37 30 20 2b 20 2b 20 33 30 20 2b   - + 70 + + 30 +
78c0: 20 2d 20 34 34 20 46 52 4f 4d 20 74 61 62 32 20   - 44 FROM tab2 
78d0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
78e0: 38 34 0d 0a 2d 38 34 0d 0a 2d 38 34 0d 0a 0d 0a  84..-84..-84....
78f0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
7900: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32  .SELECT ALL col2
7910: 20 2b 20 2d 20 2b 20 32 35 20 2d 20 63 6f 6c 32   + - + 25 - col2
7920: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
7930: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35 0d 0a 2d  r0..----..-25..-
7940: 32 35 0d 0a 2d 32 35 0d 0a 0d 0a 71 75 65 72 79  25..-25....query
7950: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
7960: 43 54 20 63 6f 6c 31 20 2d 20 32 30 20 2a 20 63  CT col1 - 20 * c
7970: 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol2 AS col2 FROM
7980: 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
7990: 45 52 45 20 2b 20 63 6f 6c 31 20 49 53 20 4e 55  ERE + col1 IS NU
79a0: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
79b0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
79c0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 28  ECT DISTINCT - (
79d0: 20 2d 20 2b 20 36 35 20 29 20 41 53 20 63 6f 6c   - + 65 ) AS col
79e0: 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
79f0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 35 0d 0a 0d  or0..----..65...
7a00: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
7a10: 0d 0a 53 45 4c 45 43 54 20 37 31 20 2b 20 32 35  ..SELECT 71 + 25
7a20: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
7a30: 72 30 20 57 48 45 52 45 20 2d 20 39 36 20 2a 20  r0 WHERE - 96 * 
7a40: 63 6f 6c 31 20 3c 3e 20 2d 20 39 32 20 2b 20 2d  col1 <> - 92 + -
7a50: 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 39 36 0d   col1..----..96.
7a60: 0a 39 36 0d 0a 39 36 0d 0a 0d 0a 71 75 65 72 79  .96..96....query
7a70: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
7a80: 43 54 20 41 4c 4c 20 2b 20 39 32 20 2a 20 63 6f  CT ALL + 92 * co
7a90: 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l0 AS col0 FROM 
7aa0: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
7ab0: 2d 2d 0d 0a 34 36 39 32 0d 0a 37 38 32 30 0d 0a  --..4692..7820..
7ac0: 38 33 37 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  8372....onlyif m
7ad0: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
7ae0: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
7af0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
7b00: 2d 31 37 30 0d 0a 53 45 4c 45 43 54 20 2b 20 28  -170..SELECT + (
7b10: 20 36 30 20 29 20 2d 20 2d 20 36 38 20 2a 20 43   60 ) - - 68 * C
7b20: 4f 55 4e 54 28 20 2a 20 29 20 63 6f 6c 32 20 46  OUNT( * ) col2 F
7b30: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
7b40: 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30   CROSS JOIN tab0
7b50: 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 36 37 32   cor1..----..672
7b60: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
7b70: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
7b80: 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
7b90: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
7ba0: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
7bb0: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
7bc0: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
7bd0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
7be0: 6c 2d 31 37 30 0d 0a 53 45 4c 45 43 54 20 2b 20  l-170..SELECT + 
7bf0: 28 20 36 30 20 29 20 2d 20 2d 20 36 38 20 2a 20  ( 60 ) - - 68 * 
7c00: 43 4f 55 4e 54 20 28 20 2a 20 29 20 63 6f 6c 32  COUNT ( * ) col2
7c10: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
7c20: 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
7c30: 62 30 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 36  b0 cor1..----..6
7c40: 37 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  72....query III 
7c50: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
7c60: 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ALL * FROM tab2 
7c70: 57 48 45 52 45 20 4e 4f 54 20 35 38 20 2f 20 2b  WHERE NOT 58 / +
7c80: 20 33 34 20 2b 20 63 6f 6c 32 20 2a 20 63 6f 6c   34 + col2 * col
7c90: 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  2 IS NULL..----.
7ca0: 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
7cb0: 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61  g to 75c998aa53a
7cc0: 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32  c83218cbf2feb962
7cd0: 64 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49  d0a49....query I
7ce0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
7cf0: 20 41 4c 4c 20 2d 20 28 20 63 6f 6c 31 20 29 20   ALL - ( col1 ) 
7d00: 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46  + col2 AS col0 F
7d10: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
7d20: 32 31 0d 0a 35 34 0d 0a 38 32 0d 0a 0d 0a 6f 6e  21..54..82....on
7d30: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
7d40: 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
7d50: 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
7d60: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
7d70: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
7d80: 2d 31 37 33 0d 0a 53 45 4c 45 43 54 20 44 49 53  -173..SELECT DIS
7d90: 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a  TINCT - COUNT( *
7da0: 20 29 20 2b 20 2b 20 43 41 53 54 28 20 4e 55 4c   ) + + CAST( NUL
7db0: 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53  L AS SIGNED ) AS
7dc0: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
7dd0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
7de0: 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
7df0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
7e00: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
7e10: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37 33 0d  wsort label-173.
7e20: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
7e30: 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b   - COUNT ( * ) +
7e40: 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   + CAST ( NULL A
7e50: 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 63  S INTEGER ) AS c
7e60: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
7e70: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
7e80: 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  L....query I row
7e90: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
7ea0: 20 28 20 2b 20 63 6f 6c 31 20 29 20 2b 20 2d 20   ( + col1 ) + - 
7eb0: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 63  col2 FROM tab1 c
7ec0: 6f 72 30 20 57 48 45 52 45 20 2d 20 30 20 3c 3d  or0 WHERE - 0 <=
7ed0: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   NULL..----....o
7ee0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
7ef0: 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
7f00: 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
7f10: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
7f20: 31 37 35 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20  175..SELECT + - 
7f30: 33 30 20 2a 20 2d 20 38 32 20 2b 20 43 41 53 54  30 * - 82 + CAST
7f40: 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
7f50: 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
7f60: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
7f70: 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
7f80: 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
7f90: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
7fa0: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
7fb0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37 35  owsort label-175
7fc0: 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 33 30 20  ..SELECT + - 30 
7fd0: 2a 20 2d 20 38 32 20 2b 20 43 41 53 54 20 28 20  * - 82 + CAST ( 
7fe0: 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
7ff0: 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
8000: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
8010: 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
8020: 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ULL....query I r
8030: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
8040: 4c 4c 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74  LL - col0 FROM t
8050: 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
8060: 45 20 28 20 2b 20 33 33 20 29 20 3c 3d 20 28 20  E ( + 33 ) <= ( 
8070: 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 2d 38  col0 )..----..-8
8080: 37 0d 0a 2d 39 37 0d 0a 0d 0a 71 75 65 72 79 20  7..-97....query 
8090: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
80a0: 54 20 41 4c 4c 20 38 20 2b 20 2b 20 63 6f 6c 30  T ALL 8 + + col0
80b0: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
80c0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 39 33  r0..----..59..93
80d0: 0d 0a 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..99....query II
80e0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
80f0: 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
8100: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
8110: 48 45 52 45 20 28 20 2d 20 34 30 20 29 20 3e 20  HERE ( - 40 ) > 
8120: 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  col0..----....qu
8130: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
8140: 45 4c 45 43 54 20 2b 20 34 35 20 2b 20 63 6f 6c  ELECT + 45 + col
8150: 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
8160: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 33 0d 0a  or0..----..103..
8170: 36 38 0d 0a 38 35 0d 0a 0d 0a 6f 6e 6c 79 69 66  68..85....onlyif
8180: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
8190: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
81a0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
81b0: 65 6c 2d 31 38 30 0d 0a 53 45 4c 45 43 54 20 44  el-180..SELECT D
81c0: 49 53 54 49 4e 43 54 20 2d 20 31 37 20 2a 20 2d  ISTINCT - 17 * -
81d0: 20 2d 20 4d 41 58 28 20 41 4c 4c 20 2b 20 2b 20   - MAX( ALL + + 
81e0: 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 31  col1 ) FROM tab1
81f0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 39   cor0..----..-79
8200: 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
8210: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
8220: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
8230: 6f 72 74 20 6c 61 62 65 6c 2d 31 38 30 0d 0a 53  ort label-180..S
8240: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
8250: 20 31 37 20 2a 20 2d 20 2d 20 4d 41 58 20 28 20   17 * - - MAX ( 
8260: 41 4c 4c 20 2b 20 2b 20 63 6f 6c 31 20 29 20 46  ALL + + col1 ) F
8270: 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d  ROM tab1 cor0..-
8280: 2d 2d 2d 0d 0a 2d 37 39 39 0d 0a 0d 0a 71 75 65  ---..-799....que
8290: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
82a0: 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
82b0: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
82c0: 48 45 52 45 20 31 32 20 3e 20 2d 20 31 32 20 2b  HERE 12 > - 12 +
82d0: 20 2b 20 35 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   + 50..----....q
82e0: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
82f0: 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
8300: 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 28  tab1 WHERE NOT (
8310: 20 2b 20 63 6f 6c 31 20 29 20 3e 20 28 20 4e 55   + col1 ) > ( NU
8320: 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  LL )..----....qu
8330: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
8340: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
8350: 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45   * FROM tab1 WHE
8360: 52 45 20 2b 20 63 6f 6c 32 20 42 45 54 57 45 45  RE + col2 BETWEE
8370: 4e 20 28 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 63  N ( + col0 * + c
8380: 6f 6c 32 20 29 20 41 4e 44 20 28 20 37 32 20 29  ol2 ) AND ( 72 )
8390: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
83a0: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
83b0: 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
83c0: 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 42  WHERE NOT NULL B
83d0: 45 54 57 45 45 4e 20 28 20 2d 20 2d 20 63 6f 6c  ETWEEN ( - - col
83e0: 31 20 29 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d  1 ) AND NULL..--
83f0: 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  --....query III 
8400: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
8410: 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ALL * FROM tab0 
8420: 57 48 45 52 45 20 4e 4f 54 20 2b 20 35 32 20 2a  WHERE NOT + 52 *
8430: 20 2b 20 38 30 20 2b 20 2b 20 63 6f 6c 30 20 49   + 80 + + col0 I
8440: 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
8450: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
8460: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
8470: 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  L * FROM tab2 WH
8480: 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 4e 20  ERE NOT NULL IN 
8490: 28 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c  ( + col2 * + col
84a0: 30 20 2a 20 31 38 20 29 0d 0a 2d 2d 2d 2d 0d 0a  0 * 18 )..----..
84b0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
84c0: 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 46  t..SELECT col1 F
84d0: 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
84e0: 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54 57  OT NULL NOT BETW
84f0: 45 45 4e 20 2b 20 63 6f 6c 32 20 41 4e 44 20 2d  EEN + col2 AND -
8500: 20 63 6f 6c 30 20 2a 20 63 6f 6c 32 20 2b 20 33   col0 * col2 + 3
8510: 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  1..----....query
8520: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
8530: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  LECT * FROM tab2
8540: 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2d 20 63   WHERE NOT ( - c
8550: 6f 6c 30 20 2b 20 2d 20 63 6f 6c 30 20 29 20 4e  ol0 + - col0 ) N
8560: 4f 54 20 49 4e 20 28 20 28 20 2d 20 28 20 2d 20  OT IN ( ( - ( - 
8570: 63 6f 6c 30 20 29 20 29 20 29 0d 0a 2d 2d 2d 2d  col0 ) ) )..----
8580: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
8590: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30  ort..SELECT col0
85a0: 20 2a 20 2d 20 34 33 20 2a 20 2d 20 2b 20 63 6f   * - 43 * - + co
85b0: 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l0 AS col2 FROM 
85c0: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 32 35 34  tab0..----..3254
85d0: 36 37 0d 0a 34 30 34 35 38 37 0d 0a 39 36 37 35  67..404587..9675
85e0: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
85f0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
8600: 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
8610: 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20  NOT NULL NOT IN 
8620: 28 20 38 37 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  ( 87 )..----....
8630: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
8640: 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49  AST syntax: DECI
8650: 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  MAL type: ..quer
8660: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
8670: 6c 2d 31 39 31 0d 0a 53 45 4c 45 43 54 20 44 49  l-191..SELECT DI
8680: 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 2a 20  STINCT + col1 * 
8690: 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  - CAST( NULL AS 
86a0: 44 45 43 49 4d 41 4c 20 29 20 46 52 4f 4d 20 74  DECIMAL ) FROM t
86b0: 61 62 32 20 63 6f 72 30 20 57 48 45 52 45 20 4e  ab2 cor0 WHERE N
86c0: 4f 54 20 4e 55 4c 4c 20 49 4e 20 28 20 63 6f 6c  OT NULL IN ( col
86d0: 32 20 2a 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d  2 * col1 )..----
86e0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
86f0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
8700: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
8710: 72 74 20 6c 61 62 65 6c 2d 31 39 31 0d 0a 53 45  rt label-191..SE
8720: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
8730: 63 6f 6c 31 20 2a 20 2d 20 43 41 53 54 20 28 20  col1 * - CAST ( 
8740: 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 46  NULL AS REAL ) F
8750: 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48  ROM tab2 cor0 WH
8760: 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 4e 20  ERE NOT NULL IN 
8770: 28 20 63 6f 6c 32 20 2a 20 63 6f 6c 31 20 29 0d  ( col2 * col1 ).
8780: 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
8790: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
87a0: 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73  tax: aggregate s
87b0: 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
87c0: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
87d0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 39 32 0d  wsort label-192.
87e0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
87f0: 20 2d 20 2b 20 43 41 53 54 28 20 2d 20 53 55 4d   - + CAST( - SUM
8800: 28 20 41 4c 4c 20 2b 20 2d 20 38 38 20 29 20 41  ( ALL + - 88 ) A
8810: 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20  S SIGNED ) FROM 
8820: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
8830: 2d 2d 0d 0a 2d 32 36 34 0d 0a 0d 0a 73 6b 69 70  --..-264....skip
8840: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
8850: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
8860: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
8870: 2d 31 39 32 0d 0a 53 45 4c 45 43 54 20 44 49 53  -192..SELECT DIS
8880: 54 49 4e 43 54 20 2d 20 2b 20 43 41 53 54 20 28  TINCT - + CAST (
8890: 20 2d 20 53 55 4d 20 28 20 41 4c 4c 20 2b 20 2d   - SUM ( ALL + -
88a0: 20 38 38 20 29 20 41 53 20 49 4e 54 45 47 45 52   88 ) AS INTEGER
88b0: 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
88c0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 36 34  cor0..----..-264
88d0: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
88e0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20  ort..SELECT + - 
88f0: 37 34 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  74 FROM tab1 AS 
8900: 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
8910: 74 61 62 30 20 41 53 20 63 6f 72 31 0d 0a 2d 2d  tab0 AS cor1..--
8920: 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
8930: 68 69 6e 67 20 74 6f 20 35 61 35 36 37 39 34 37  hing to 5a567947
8940: 64 31 34 35 39 33 36 37 36 65 33 38 32 35 37 35  d14593676e382575
8950: 36 66 38 65 36 31 33 30 0d 0a 0d 0a 71 75 65 72  6f8e6130....quer
8960: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
8970: 45 43 54 20 41 4c 4c 20 2d 20 38 36 20 46 52 4f  ECT ALL - 86 FRO
8980: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 43  M tab2 AS cor0 C
8990: 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20 41  ROSS JOIN tab1 A
89a0: 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20  S cor1..----..9 
89b0: 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
89c0: 6f 20 39 61 63 38 30 36 37 39 33 63 30 33 64 33  o 9ac806793c03d3
89d0: 61 36 62 35 65 33 61 33 30 32 39 64 32 30 65 34  a6b5e3a3029d20e4
89e0: 64 61 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  da....query I ro
89f0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
8a00: 4c 20 37 35 20 2b 20 2b 20 63 6f 6c 32 20 41 53  L 75 + + col2 AS
8a10: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
8a20: 0a 2d 2d 2d 2d 0d 0a 31 33 34 0d 0a 31 34 33 0d  .----..134..143.
8a30: 0a 31 37 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .171....onlyif m
8a40: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
8a50: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
8a60: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
8a70: 2d 31 39 36 0d 0a 53 45 4c 45 43 54 20 34 36 20  -196..SELECT 46 
8a80: 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  + COUNT( * ) AS 
8a90: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
8aa0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 39  S cor0..----..49
8ab0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
8ac0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
8ad0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
8ae0: 72 74 20 6c 61 62 65 6c 2d 31 39 36 0d 0a 53 45  rt label-196..SE
8af0: 4c 45 43 54 20 34 36 20 2b 20 43 4f 55 4e 54 20  LECT 46 + COUNT 
8b00: 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ( * ) AS col0 FR
8b10: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
8b20: 0a 2d 2d 2d 2d 0d 0a 34 39 0d 0a 0d 0a 71 75 65  .----..49....que
8b30: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
8b40: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
8b50: 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  * FROM tab0 AS c
8b60: 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 35 34  or0 WHERE NOT 54
8b70: 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
8b80: 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
8b90: 20 74 6f 20 63 34 62 34 32 37 36 35 64 66 66 39   to c4b42765dff9
8ba0: 34 65 61 61 61 34 36 30 34 30 65 35 33 37 66 62  4eaaa46040e537fb
8bb0: 34 33 62 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  43b7....onlyif m
8bc0: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
8bd0: 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
8be0: 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77   ..query III row
8bf0: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 39 38 0d 0a  sort label-198..
8c00: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
8c10: 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  * FROM tab0 AS c
8c20: 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  or0 WHERE NOT - 
8c30: 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
8c40: 47 4e 45 44 20 29 20 2f 20 2d 20 63 6f 6c 32 20  GNED ) / - col2 
8c50: 49 4e 20 28 20 2b 20 2b 20 39 31 20 29 0d 0a 2d  IN ( + + 91 )..-
8c60: 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ---....skipif my
8c70: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
8c80: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20  ible..query III 
8c90: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 39  rowsort label-19
8ca0: 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  8..SELECT DISTIN
8cb0: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41  CT * FROM tab0 A
8cc0: 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
8cd0: 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   - CAST ( NULL A
8ce0: 53 20 49 4e 54 45 47 45 52 20 29 20 2f 20 2d 20  S INTEGER ) / - 
8cf0: 63 6f 6c 32 20 49 4e 20 28 20 2b 20 2b 20 39 31  col2 IN ( + + 91
8d00: 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70   )..----....skip
8d10: 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
8d20: 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
8d30: 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
8d40: 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
8d50: 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
8d60: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
8d70: 20 2d 20 32 37 20 2a 20 2d 20 63 6f 6c 30 20 63   - 27 * - col0 c
8d80: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
8d90: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 34   cor0..----..124
8da0: 32 0d 0a 31 37 32 38 0d 0a 32 30 32 35 0d 0a 0d  2..1728..2025...
8db0: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
8dc0: 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
8dd0: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
8de0: 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 30 20  HERE NOT - col0 
8df0: 3e 3d 20 28 20 2d 20 28 20 2d 20 63 6f 6c 30 20  >= ( - ( - col0 
8e00: 29 20 2a 20 2b 20 36 34 20 29 0d 0a 2d 2d 2d 2d  ) * + 64 )..----
8e10: 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
8e20: 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31 62  ng to c6c0a4111b
8e30: 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65 34  36d04dbc811a11e4
8e40: 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20  d54cad....query 
8e50: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
8e60: 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
8e70: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20  AS cor0 WHERE ( 
8e80: 2d 20 63 6f 6c 32 20 29 20 4e 4f 54 20 42 45 54  - col2 ) NOT BET
8e90: 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2d 20  WEEN NULL AND - 
8ea0: 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 31 0d 0a 2d  col2 + - col1..-
8eb0: 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
8ec0: 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36  shing to c4b4276
8ed0: 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65  5dff94eaaa46040e
8ee0: 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65  537fb43b7....que
8ef0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
8f00: 4c 45 43 54 20 2b 20 31 35 20 2b 20 2d 20 35 34  LECT + 15 + - 54
8f10: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
8f20: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 39 0d 0a 2d  r0..----..-39..-
8f30: 33 39 0d 0a 2d 33 39 0d 0a 0d 0a 71 75 65 72 79  39..-39....query
8f40: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
8f50: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  LECT * FROM tab2
8f60: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28   AS cor0 WHERE (
8f70: 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 32   + col1 + + col2
8f80: 20 29 20 49 4e 20 28 20 2d 20 63 6f 6c 32 20 29   ) IN ( - col2 )
8f90: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
8fa0: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
8fb0: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
8fc0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
8fd0: 65 6c 2d 32 30 34 0d 0a 53 45 4c 45 43 54 20 43  el-204..SELECT C
8fe0: 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2d 20 43 4f  OUNT( * ) * - CO
8ff0: 55 4e 54 28 20 2a 20 29 20 63 6f 6c 30 20 46 52  UNT( * ) col0 FR
9000: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
9010: 57 48 45 52 45 20 34 37 20 3c 3d 20 4e 55 4c 4c  WHERE 47 <= NULL
9020: 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69  ..----..0....ski
9030: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
9040: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70  compatible..skip
9050: 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
9060: 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
9070: 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
9080: 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
9090: 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
90a0: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 30 34 0d 0a  sort label-204..
90b0: 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 2a  SELECT COUNT ( *
90c0: 20 29 20 2a 20 2d 20 43 4f 55 4e 54 20 28 20 2a   ) * - COUNT ( *
90d0: 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   ) col0 FROM tab
90e0: 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
90f0: 34 37 20 3c 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  47 <= NULL..----
9100: 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ..0....query I r
9110: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
9120: 4c 4c 20 2b 20 28 20 2d 20 2d 20 63 6f 6c 31 20  LL + ( - - col1 
9130: 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
9140: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
9150: 2d 0d 0a 31 34 0d 0a 34 37 0d 0a 35 0d 0a 0d 0a  -..14..47..5....
9160: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
9170: 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
9180: 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
9190: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
91a0: 2d 32 30 36 0d 0a 53 45 4c 45 43 54 20 2b 20 2d  -206..SELECT + -
91b0: 20 63 6f 6c 30 20 44 49 56 20 63 6f 6c 31 20 46   col0 DIV col1 F
91c0: 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d  ROM tab0 cor0..-
91d0: 2d 2d 2d 0d 0a 2d 34 0d 0a 2d 39 37 0d 0a 30 0d  ---..-4..-97..0.
91e0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
91f0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
9200: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
9210: 74 20 6c 61 62 65 6c 2d 32 30 36 0d 0a 53 45 4c  t label-206..SEL
9220: 45 43 54 20 2b 20 2d 20 63 6f 6c 30 20 2f 20 63  ECT + - col0 / c
9230: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  ol1 FROM tab0 co
9240: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 0d 0a 2d 39  r0..----..-4..-9
9250: 37 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  7..0....query I 
9260: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
9270: 2d 20 63 6f 6c 31 20 2a 20 63 6f 6c 31 20 2a 20  - col1 * col1 * 
9280: 2d 20 39 34 20 41 53 20 63 6f 6c 30 20 46 52 4f  - 94 AS col0 FRO
9290: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
92a0: 2d 2d 2d 2d 0d 0a 34 31 34 35 34 0d 0a 36 31 36  ----..41454..616
92b0: 37 33 34 0d 0a 39 34 0d 0a 0d 0a 73 6b 69 70 69  734..94....skipi
92c0: 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
92d0: 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
92e0: 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
92f0: 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
9300: 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
9310: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
9320: 2b 20 63 6f 6c 31 20 2a 20 2b 20 2b 20 38 32 20  + col1 * + + 82 
9330: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
9340: 2d 2d 2d 2d 0d 0a 31 37 32 32 0d 0a 36 36 34 32  ----..1722..6642
9350: 0d 0a 38 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..82....query II
9360: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
9370: 20 2b 20 63 6f 6c 32 2c 20 39 31 20 2b 20 28 20   + col2, 91 + ( 
9380: 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 31 20 46  col2 ) AS col1 F
9390: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
93a0: 31 30 0d 0a 31 30 31 0d 0a 34 37 0d 0a 31 33 38  10..101..47..138
93b0: 0d 0a 39 39 0d 0a 31 39 30 0d 0a 0d 0a 71 75 65  ..99..190....que
93c0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
93d0: 4c 45 43 54 20 63 6f 6c 30 20 46 52 4f 4d 20 74  LECT col0 FROM t
93e0: 61 62 31 20 57 48 45 52 45 20 2d 20 63 6f 6c 31  ab1 WHERE - col1
93f0: 20 4e 4f 54 20 49 4e 20 28 20 2b 20 63 6f 6c 31   NOT IN ( + col1
9400: 20 29 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 38 35   )..----..51..85
9410: 0d 0a 39 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..91....query II
9420: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
9430: 20 34 30 20 41 53 20 63 6f 6c 30 2c 20 2d 20 63   40 AS col0, - c
9440: 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol2 AS col0 FROM
9450: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 30 0d   tab2..----..40.
9460: 0a 2d 32 33 0d 0a 34 30 0d 0a 2d 34 30 0d 0a 34  .-23..40..-40..4
9470: 30 0d 0a 2d 35 38 0d 0a 0d 0a 6f 6e 6c 79 69 66  0..-58....onlyif
9480: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
9490: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
94a0: 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
94b0: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 31 32 0d 0a  sort label-212..
94c0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
94d0: 31 32 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45  12 FROM tab0 WHE
94e0: 52 45 20 28 20 2d 20 2b 20 43 41 53 54 28 20 4e  RE ( - + CAST( N
94f0: 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
9500: 2f 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c  / + col0 + - col
9510: 30 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  0 ) IS NULL..---
9520: 2d 0d 0a 31 32 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..12....skipif 
9530: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
9540: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
9550: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 31  rowsort label-21
9560: 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  2..SELECT DISTIN
9570: 43 54 20 31 32 20 46 52 4f 4d 20 74 61 62 30 20  CT 12 FROM tab0 
9580: 57 48 45 52 45 20 28 20 2d 20 2b 20 43 41 53 54  WHERE ( - + CAST
9590: 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
95a0: 45 52 20 29 20 2f 20 2b 20 63 6f 6c 30 20 2b 20  ER ) / + col0 + 
95b0: 2d 20 63 6f 6c 30 20 29 20 49 53 20 4e 55 4c 4c  - col0 ) IS NULL
95c0: 0d 0a 2d 2d 2d 2d 0d 0a 31 32 0d 0a 0d 0a 71 75  ..----..12....qu
95d0: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
95e0: 53 45 4c 45 43 54 20 2b 20 39 38 20 41 53 20 63  SELECT + 98 AS c
95f0: 6f 6c 31 2c 20 2b 20 63 6f 6c 32 20 41 53 20 63  ol1, + col2 AS c
9600: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol2 FROM tab1..-
9610: 2d 2d 2d 0d 0a 39 38 0d 0a 35 39 0d 0a 39 38 0d  ---..98..59..98.
9620: 0a 36 38 0d 0a 39 38 0d 0a 39 36 0d 0a 0d 0a 71  .68..98..96....q
9630: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
9640: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
9650: 2b 20 63 6f 6c 31 20 2b 20 35 31 20 46 52 4f 4d  + col1 + 51 FROM
9660: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 30 32   tab2..----..102
9670: 0d 0a 31 31 38 0d 0a 31 32 38 0d 0a 0d 0a 71 75  ..118..128....qu
9680: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
9690: 45 4c 45 43 54 20 2b 20 2d 20 33 20 41 53 20 63  ELECT + - 3 AS c
96a0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
96b0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d   cor0..----..-3.
96c0: 0a 2d 33 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79  .-3..-3....query
96d0: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
96e0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
96f0: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
9700: 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c 3d 20  0 WHERE NULL <= 
9710: 63 6f 6c 32 20 2b 20 63 6f 6c 31 20 2a 20 63 6f  col2 + col1 * co
9720: 6c 30 20 2a 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d  l0 * - col1..---
9730: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  -....query III r
9740: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
9750: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
9760: 72 30 20 57 48 45 52 45 20 2b 20 38 35 20 3c 3d  r0 WHERE + 85 <=
9770: 20 28 20 2b 20 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a   ( + 0 )..----..
9780: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
9790: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
97a0: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
97b0: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 31 38 0d 0a  sort label-218..
97c0: 53 45 4c 45 43 54 20 2b 20 33 36 20 2b 20 53 55  SELECT + 36 + SU
97d0: 4d 28 20 41 4c 4c 20 28 20 2b 20 63 6f 6c 32 20  M( ALL ( + col2 
97e0: 29 20 29 20 2b 20 2d 20 2d 20 43 4f 55 4e 54 28  ) ) + - - COUNT(
97f0: 20 2a 20 29 20 2b 20 2b 20 32 20 46 52 4f 4d 20   * ) + + 2 FROM 
9800: 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
9810: 2d 2d 0d 0a 31 39 37 0d 0a 0d 0a 73 6b 69 70 69  --..197....skipi
9820: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
9830: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
9840: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
9850: 32 31 38 0d 0a 53 45 4c 45 43 54 20 2b 20 33 36  218..SELECT + 36
9860: 20 2b 20 53 55 4d 20 28 20 41 4c 4c 20 28 20 2b   + SUM ( ALL ( +
9870: 20 63 6f 6c 32 20 29 20 29 20 2b 20 2d 20 2d 20   col2 ) ) + - - 
9880: 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2b 20  COUNT ( * ) + + 
9890: 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
98a0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 37 0d 0a  or0..----..197..
98b0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
98c0: 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31  t..SELECT - col1
98d0: 20 2b 20 63 6f 6c 30 20 2a 20 28 20 63 6f 6c 30   + col0 * ( col0
98e0: 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
98f0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 30 36 35  cor0..----..2065
9900: 0d 0a 34 30 31 39 0d 0a 35 35 35 38 0d 0a 0d 0a  ..4019..5558....
9910: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
9920: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
9930: 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
9940: 6f 72 74 20 6c 61 62 65 6c 2d 32 32 30 0d 0a 53  ort label-220..S
9950: 45 4c 45 43 54 20 32 37 20 2b 20 2b 20 2d 20 53  ELECT 27 + + - S
9960: 55 4d 28 20 63 6f 6c 32 20 29 20 41 53 20 63 6f  UM( col2 ) AS co
9970: 6c 32 2c 20 2b 20 32 31 20 2b 20 43 4f 55 4e 54  l2, + 21 + COUNT
9980: 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 0d  ( * ) FROM tab0.
9990: 0a 2d 2d 2d 2d 0d 0a 2d 31 32 39 0d 0a 32 34 0d  .----..-129..24.
99a0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
99b0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
99c0: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
99d0: 72 74 20 6c 61 62 65 6c 2d 32 32 30 0d 0a 53 45  rt label-220..SE
99e0: 4c 45 43 54 20 32 37 20 2b 20 2b 20 2d 20 53 55  LECT 27 + + - SU
99f0: 4d 20 28 20 63 6f 6c 32 20 29 20 41 53 20 63 6f  M ( col2 ) AS co
9a00: 6c 32 2c 20 2b 20 32 31 20 2b 20 43 4f 55 4e 54  l2, + 21 + COUNT
9a10: 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30   ( * ) FROM tab0
9a20: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 39 0d 0a 32 34  ..----..-129..24
9a30: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
9a40: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
9a50: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
9a60: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 32 31  owsort label-221
9a70: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
9a80: 54 20 2d 20 28 20 2b 20 4d 41 58 28 20 41 4c 4c  T - ( + MAX( ALL
9a90: 20 63 6f 6c 32 20 29 20 29 20 63 6f 6c 30 20 46   col2 ) ) col0 F
9aa0: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
9ab0: 2d 35 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -58....skipif my
9ac0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
9ad0: 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
9ae0: 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
9af0: 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
9b00: 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
9b10: 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
9b20: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
9b30: 61 62 65 6c 2d 32 32 31 0d 0a 53 45 4c 45 43 54  abel-221..SELECT
9b40: 20 44 49 53 54 49 4e 43 54 20 2d 20 28 20 2b 20   DISTINCT - ( + 
9b50: 4d 41 58 20 28 20 41 4c 4c 20 63 6f 6c 32 20 29  MAX ( ALL col2 )
9b60: 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   ) col0 FROM tab
9b70: 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 38 0d 0a 0d 0a  2..----..-58....
9b80: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
9b90: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
9ba0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
9bb0: 72 74 20 6c 61 62 65 6c 2d 32 32 32 0d 0a 53 45  rt label-222..SE
9bc0: 4c 45 43 54 20 41 4c 4c 20 2b 20 28 20 28 20 4d  LECT ALL + ( ( M
9bd0: 49 4e 28 20 44 49 53 54 49 4e 43 54 20 2b 20 39  IN( DISTINCT + 9
9be0: 37 20 29 20 29 20 29 20 41 53 20 63 6f 6c 30 20  7 ) ) ) AS col0 
9bf0: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
9c00: 0a 39 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .97....skipif my
9c10: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
9c20: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
9c30: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 32 32 0d  wsort label-222.
9c40: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 28 20  .SELECT ALL + ( 
9c50: 28 20 4d 49 4e 20 28 20 44 49 53 54 49 4e 43 54  ( MIN ( DISTINCT
9c60: 20 2b 20 39 37 20 29 20 29 20 29 20 41 53 20 63   + 97 ) ) ) AS c
9c70: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
9c80: 2d 2d 2d 0d 0a 39 37 0d 0a 0d 0a 71 75 65 72 79  ---..97....query
9c90: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
9ca0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  LECT * FROM tab2
9cb0: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b   AS cor0 WHERE +
9cc0: 20 63 6f 6c 31 20 3c 3e 20 28 20 2d 20 2d 20 31   col1 <> ( - - 1
9cd0: 38 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  8 )..----..9 val
9ce0: 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37  ues hashing to 7
9cf0: 35 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38  5c998aa53ac83218
9d00: 63 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d  cbf2feb962d0a49.
9d10: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
9d20: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61  # CAST syntax: a
9d30: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
9d40: 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
9d50: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
9d60: 6c 61 62 65 6c 2d 32 32 34 0d 0a 53 45 4c 45 43  label-224..SELEC
9d70: 54 20 41 4c 4c 20 2d 20 43 41 53 54 28 20 2b 20  T ALL - CAST( + 
9d80: 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 53 49  COUNT( * ) AS SI
9d90: 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62 32  GNED ) FROM tab2
9da0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d   cor0..----..-3.
9db0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
9dc0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
9dd0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
9de0: 74 20 6c 61 62 65 6c 2d 32 32 34 0d 0a 53 45 4c  t label-224..SEL
9df0: 45 43 54 20 41 4c 4c 20 2d 20 43 41 53 54 20 28  ECT ALL - CAST (
9e00: 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41   + COUNT ( * ) A
9e10: 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d  S INTEGER ) FROM
9e20: 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
9e30: 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..-3....query I 
9e40: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
9e50: 2d 20 63 6f 6c 30 20 2a 20 63 6f 6c 30 20 2b 20  - col0 * col0 + 
9e60: 2b 20 33 34 20 46 52 4f 4d 20 74 61 62 31 20 41  + 34 FROM tab1 A
9e70: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  S cor0..----..-2
9e80: 35 36 37 0d 0a 2d 37 31 39 31 0d 0a 2d 38 32 34  567..-7191..-824
9e90: 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  7....query I row
9ea0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 32 36 20  sort..SELECT 26 
9eb0: 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a  FROM tab0 cor0..
9ec0: 2d 2d 2d 2d 0d 0a 32 36 0d 0a 32 36 0d 0a 32 36  ----..26..26..26
9ed0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
9ee0: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
9ef0: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
9f00: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
9f10: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
9f20: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
9f30: 4c 45 43 54 20 41 4c 4c 20 2d 20 39 39 20 2a 20  LECT ALL - 99 * 
9f40: 63 6f 6c 32 20 63 6f 6c 32 20 46 52 4f 4d 20 74  col2 col2 FROM t
9f50: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
9f60: 2d 0d 0a 2d 35 38 34 31 0d 0a 2d 36 37 33 32 0d  -..-5841..-6732.
9f70: 0a 2d 39 35 30 34 0d 0a 0d 0a 71 75 65 72 79 20  .-9504....query 
9f80: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
9f90: 54 20 2b 20 28 20 2d 20 2d 20 33 34 20 29 20 41  T + ( - - 34 ) A
9fa0: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
9fb0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
9fc0: 33 34 0d 0a 33 34 0d 0a 33 34 0d 0a 0d 0a 71 75  34..34..34....qu
9fd0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
9fe0: 45 4c 45 43 54 20 28 20 2b 20 39 32 20 29 20 41  ELECT ( + 92 ) A
9ff0: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
a000: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
a010: 28 20 4e 55 4c 4c 20 29 20 42 45 54 57 45 45 4e  ( NULL ) BETWEEN
a020: 20 28 20 4e 55 4c 4c 20 29 20 41 4e 44 20 63 6f   ( NULL ) AND co
a030: 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  l0..----....quer
a040: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
a050: 45 43 54 20 41 4c 4c 20 38 35 20 2a 20 2b 20 63  ECT ALL 85 * + c
a060: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
a070: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 33 33   cor0..----..433
a080: 35 0d 0a 37 32 32 35 0d 0a 37 37 33 35 0d 0a 0d  5..7225..7735...
a090: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
a0a0: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
a0b0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
a0c0: 6f 72 74 20 6c 61 62 65 6c 2d 32 33 31 0d 0a 53  ort label-231..S
a0d0: 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28 20 2d  ELECT - COUNT( -
a0e0: 20 36 37 20 29 20 41 53 20 63 6f 6c 30 20 46 52   67 ) AS col0 FR
a0f0: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
a100: 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69  .----..-3....ski
a110: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
a120: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
a130: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
a140: 6c 2d 32 33 31 0d 0a 53 45 4c 45 43 54 20 2d 20  l-231..SELECT - 
a150: 43 4f 55 4e 54 20 28 20 2d 20 36 37 20 29 20 41  COUNT ( - 67 ) A
a160: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
a170: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
a180: 2d 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  -3....query I ro
a190: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
a1a0: 53 54 49 4e 43 54 20 2b 20 28 20 2d 20 63 6f 6c  STINCT + ( - col
a1b0: 31 20 29 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 46  1 ) * + - col2 F
a1c0: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
a1d0: 0d 0a 2d 2d 2d 2d 0d 0a 32 31 30 0d 0a 33 38 30  ..----..210..380
a1e0: 37 0d 0a 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  7..99....onlyif 
a1f0: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
a200: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
a210: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
a220: 6f 72 74 20 6c 61 62 65 6c 2d 32 33 33 0d 0a 53  ort label-233..S
a230: 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 2a 20 2d  ELECT + col0 * -
a240: 20 63 6f 6c 30 20 2d 20 2b 20 32 35 20 2f 20 2d   col0 - + 25 / -
a250: 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
a260: 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62  IGNED ) FROM tab
a270: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
a280: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
a290: 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
a2a0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
a2b0: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
a2c0: 6f 72 74 20 6c 61 62 65 6c 2d 32 33 33 0d 0a 53  ort label-233..S
a2d0: 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 2a 20 2d  ELECT + col0 * -
a2e0: 20 63 6f 6c 30 20 2d 20 2b 20 32 35 20 2f 20 2d   col0 - + 25 / -
a2f0: 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
a300: 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74  INTEGER ) FROM t
a310: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
a320: 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
a330: 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ULL....onlyif my
a340: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
a350: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
a360: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
a370: 74 20 6c 61 62 65 6c 2d 32 33 34 0d 0a 53 45 4c  t label-234..SEL
a380: 45 43 54 20 41 4c 4c 20 2b 20 2b 20 43 41 53 54  ECT ALL + + CAST
a390: 28 20 2d 20 37 35 20 41 53 20 53 49 47 4e 45 44  ( - 75 AS SIGNED
a3a0: 20 29 20 2b 20 2d 20 2b 20 63 6f 6c 32 20 46 52   ) + - + col2 FR
a3b0: 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f  OM tab1 WHERE NO
a3c0: 54 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 2b 20 63  T + col0 + + + c
a3d0: 6f 6c 32 20 2b 20 2d 20 39 30 20 49 53 20 4e 55  ol2 + - 90 IS NU
a3e0: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 34 0d 0a  LL..----..-134..
a3f0: 2d 31 34 33 0d 0a 2d 31 37 31 0d 0a 0d 0a 73 6b  -143..-171....sk
a400: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
a410: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
a420: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
a430: 65 6c 2d 32 33 34 0d 0a 53 45 4c 45 43 54 20 41  el-234..SELECT A
a440: 4c 4c 20 2b 20 2b 20 43 41 53 54 20 28 20 2d 20  LL + + CAST ( - 
a450: 37 35 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  75 AS INTEGER ) 
a460: 2b 20 2d 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20  + - + col2 FROM 
a470: 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2b  tab1 WHERE NOT +
a480: 20 63 6f 6c 30 20 2b 20 2b 20 2b 20 63 6f 6c 32   col0 + + + col2
a490: 20 2b 20 2d 20 39 30 20 49 53 20 4e 55 4c 4c 0d   + - 90 IS NULL.
a4a0: 0a 2d 2d 2d 2d 0d 0a 2d 31 33 34 0d 0a 2d 31 34  .----..-134..-14
a4b0: 33 0d 0a 2d 31 37 31 0d 0a 0d 0a 71 75 65 72 79  3..-171....query
a4c0: 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
a4d0: 45 43 54 20 41 4c 4c 20 39 33 20 41 53 20 63 6f  ECT ALL 93 AS co
a4e0: 6c 30 2c 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  l0, col0 FROM ta
a4f0: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 39 33 0d 0a 31 35  b0..----..93..15
a500: 0d 0a 39 33 0d 0a 38 37 0d 0a 39 33 0d 0a 39 37  ..93..87..93..97
a510: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
a520: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
a530: 31 2c 20 2b 20 32 32 20 41 53 20 63 6f 6c 30 20  1, + 22 AS col0 
a540: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
a550: 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 32 32 0d  0..----..51..22.
a560: 0a 36 37 0d 0a 32 32 0d 0a 37 37 0d 0a 32 32 0d  .67..22..77..22.
a570: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
a580: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 32  rt..SELECT ALL 2
a590: 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  0 FROM tab0 cor0
a5a0: 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31   CROSS JOIN tab1
a5b0: 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   cor1..----..9 v
a5c0: 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
a5d0: 20 32 66 64 64 39 34 32 66 65 30 33 30 37 61 36   2fdd942fe0307a6
a5e0: 66 66 36 36 62 36 33 30 30 34 65 66 31 30 32 63  ff66b63004ef102c
a5f0: 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  4....onlyif mysq
a600: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
a610: 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
a620: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
a630: 74 20 6c 61 62 65 6c 2d 32 33 38 0d 0a 53 45 4c  t label-238..SEL
a640: 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ECT * FROM tab2 
a650: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55  AS cor0 WHERE NU
a660: 4c 4c 20 3c 3d 20 36 38 20 2a 20 2d 20 2d 20 43  LL <= 68 * - - C
a670: 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
a680: 4e 45 44 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73  NED )..----....s
a690: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
a6a0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
a6b0: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
a6c0: 6c 61 62 65 6c 2d 32 33 38 0d 0a 53 45 4c 45 43  label-238..SELEC
a6d0: 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53  T * FROM tab2 AS
a6e0: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c   cor0 WHERE NULL
a6f0: 20 3c 3d 20 36 38 20 2a 20 2d 20 2d 20 43 41 53   <= 68 * - - CAS
a700: 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
a710: 47 45 52 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f  GER )..----....o
a720: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
a730: 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
a740: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
a750: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
a760: 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
a770: 65 6c 2d 32 33 39 0d 0a 53 45 4c 45 43 54 20 2b  el-239..SELECT +
a780: 20 28 20 2b 20 2b 20 4d 41 58 28 20 2b 20 2b 20   ( + + MAX( + + 
a790: 43 41 53 54 28 20 2b 20 37 37 20 41 53 20 53 49  CAST( + 77 AS SI
a7a0: 47 4e 45 44 20 29 20 29 20 29 20 41 53 20 63 6f  GNED ) ) ) AS co
a7b0: 6c 30 2c 20 36 32 20 46 52 4f 4d 20 74 61 62 31  l0, 62 FROM tab1
a7c0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 37 0d   cor0..----..77.
a7d0: 0a 36 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .62....skipif my
a7e0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
a7f0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72  ible..query II r
a800: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 33 39  owsort label-239
a810: 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 2b 20 2b  ..SELECT + ( + +
a820: 20 4d 41 58 20 28 20 2b 20 2b 20 43 41 53 54 20   MAX ( + + CAST 
a830: 28 20 2b 20 37 37 20 41 53 20 49 4e 54 45 47 45  ( + 77 AS INTEGE
a840: 52 20 29 20 29 20 29 20 41 53 20 63 6f 6c 30 2c  R ) ) ) AS col0,
a850: 20 36 32 20 46 52 4f 4d 20 74 61 62 31 20 63 6f   62 FROM tab1 co
a860: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 37 0d 0a 36 32  r0..----..77..62
a870: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
a880: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
a890: 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  L * FROM tab0 co
a8a0: 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  r0 WHERE NOT NUL
a8b0: 4c 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41  L BETWEEN NULL A
a8c0: 4e 44 20 28 20 2d 20 39 36 20 29 0d 0a 2d 2d 2d  ND ( - 96 )..---
a8d0: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  -....query III r
a8e0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
a8f0: 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
a900: 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
a910: 45 20 4e 4f 54 20 2b 20 63 6f 6c 31 20 2a 20 39  E NOT + col1 * 9
a920: 38 20 2a 20 2d 20 2b 20 63 6f 6c 32 20 2b 20 2d  8 * - + col2 + -
a930: 20 63 6f 6c 30 20 4e 4f 54 20 49 4e 20 28 20 2d   col0 NOT IN ( -
a940: 20 37 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   71 )..----....q
a950: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
a960: 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2b 20  SELECT - col0 + 
a970: 63 6f 6c 31 20 2a 20 2d 20 2b 20 63 6f 6c 32 20  col1 * - + col2 
a980: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
a990: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 39 35 0d 0a  0..----..-1395..
a9a0: 2d 33 32 38 37 0d 0a 2d 33 38 30 0d 0a 0d 0a 6f  -3287..-380....o
a9b0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
a9c0: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
a9d0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
a9e0: 74 20 6c 61 62 65 6c 2d 32 34 33 0d 0a 53 45 4c  t label-243..SEL
a9f0: 45 43 54 20 41 4c 4c 20 2b 20 4d 41 58 28 20 2b  ECT ALL + MAX( +
aa00: 20 2b 20 37 36 20 29 20 63 6f 6c 31 20 46 52 4f   + 76 ) col1 FRO
aa10: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 37 36  M tab0..----..76
aa20: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
aa30: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
aa40: 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
aa50: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
aa60: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
aa70: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
aa80: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
aa90: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
aaa0: 6c 2d 32 34 33 0d 0a 53 45 4c 45 43 54 20 41 4c  l-243..SELECT AL
aab0: 4c 20 2b 20 4d 41 58 20 28 20 2b 20 2b 20 37 36  L + MAX ( + + 76
aac0: 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   ) col1 FROM tab
aad0: 30 0d 0a 2d 2d 2d 2d 0d 0a 37 36 0d 0a 0d 0a 6f  0..----..76....o
aae0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
aaf0: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
ab00: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
ab10: 74 20 6c 61 62 65 6c 2d 32 34 34 0d 0a 53 45 4c  t label-244..SEL
ab20: 45 43 54 20 2d 20 4d 41 58 28 20 41 4c 4c 20 2b  ECT - MAX( ALL +
ab30: 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62   col1 ) FROM tab
ab40: 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20  0 WHERE NULL IS 
ab50: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 31 0d  NULL..----..-81.
ab60: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
ab70: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
ab80: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
ab90: 74 20 6c 61 62 65 6c 2d 32 34 34 0d 0a 53 45 4c  t label-244..SEL
aba0: 45 43 54 20 2d 20 4d 41 58 20 28 20 41 4c 4c 20  ECT - MAX ( ALL 
abb0: 2b 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61  + col1 ) FROM ta
abc0: 62 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53  b0 WHERE NULL IS
abd0: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 31   NULL..----..-81
abe0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
abf0: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
ac00: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
ac10: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
ac20: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
ac30: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
ac40: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 28 20  LECT DISTINCT ( 
ac50: 38 33 20 29 20 2a 20 2b 20 63 6f 6c 30 20 63 6f  83 ) * + col0 co
ac60: 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l2 FROM tab1..--
ac70: 2d 2d 0d 0a 34 32 33 33 0d 0a 37 30 35 35 0d 0a  --..4233..7055..
ac80: 37 35 35 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49  7553....query II
ac90: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
aca0: 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
acb0: 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54  M tab0 WHERE NOT
acc0: 20 2d 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 2d 20   - - col1 * - - 
acd0: 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  col1 IS NULL..--
ace0: 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
acf0: 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35  hing to c4b42765
ad00: 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35  dff94eaaa46040e5
ad10: 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72  37fb43b7....quer
ad20: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
ad30: 45 43 54 20 63 6f 6c 32 20 2b 20 36 20 46 52 4f  ECT col2 + 6 FRO
ad40: 4d 20 74 61 62 32 20 57 48 45 52 45 20 2d 20 2d  M tab2 WHERE - -
ad50: 20 32 38 20 2f 20 2d 20 2d 20 63 6f 6c 31 20 2d   28 / - - col1 -
ad60: 20 2d 20 32 33 20 49 53 20 4e 55 4c 4c 0d 0a 2d   - 23 IS NULL..-
ad70: 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
ad80: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
ad90: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
ada0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
adb0: 32 34 38 0d 0a 53 45 4c 45 43 54 20 28 20 2d 20  248..SELECT ( - 
adc0: 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 2a 20 2b  COUNT( * ) ) * +
add0: 20 32 39 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   29 AS col2 FROM
ade0: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 37   tab1..----..-87
adf0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
ae00: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
ae10: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
ae20: 72 74 20 6c 61 62 65 6c 2d 32 34 38 0d 0a 53 45  rt label-248..SE
ae30: 4c 45 43 54 20 28 20 2d 20 43 4f 55 4e 54 20 28  LECT ( - COUNT (
ae40: 20 2a 20 29 20 29 20 2a 20 2b 20 32 39 20 41 53   * ) ) * + 29 AS
ae50: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
ae60: 0a 2d 2d 2d 2d 0d 0a 2d 38 37 0d 0a 0d 0a 6f 6e  .----..-87....on
ae70: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
ae80: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
ae90: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
aea0: 20 6c 61 62 65 6c 2d 32 34 39 0d 0a 53 45 4c 45   label-249..SELE
aeb0: 43 54 20 43 4f 55 4e 54 28 20 44 49 53 54 49 4e  CT COUNT( DISTIN
aec0: 43 54 20 31 39 20 29 20 41 53 20 63 6f 6c 31 20  CT 19 ) AS col1 
aed0: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
aee0: 30 20 57 48 45 52 45 20 63 6f 6c 32 20 2a 20 2b  0 WHERE col2 * +
aef0: 20 63 6f 6c 32 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d   col2 <> NULL..-
af00: 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  ---..0....skipif
af10: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
af20: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
af30: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
af40: 34 39 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54  49..SELECT COUNT
af50: 20 28 20 44 49 53 54 49 4e 43 54 20 31 39 20 29   ( DISTINCT 19 )
af60: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
af70: 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
af80: 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 32 20 3c   col2 * + col2 <
af90: 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  > NULL..----..0.
afa0: 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
afb0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
afc0: 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 2c 20  - col0 AS col1, 
afd0: 2b 20 31 38 20 41 53 20 63 6f 6c 30 20 46 52 4f  + 18 AS col0 FRO
afe0: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
aff0: 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 31 38 0d 0a 2d  ----..-51..18..-
b000: 38 35 0d 0a 31 38 0d 0a 2d 39 31 0d 0a 31 38 0d  85..18..-91..18.
b010: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
b020: 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 37 20 2a  rt..SELECT - 7 *
b030: 20 2b 20 2d 20 36 33 20 46 52 4f 4d 20 74 61 62   + - 63 FROM tab
b040: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
b050: 0a 34 34 31 0d 0a 34 34 31 0d 0a 34 34 31 0d 0a  .441..441..441..
b060: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
b070: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
b080: 43 54 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  CT col0 FROM tab
b090: 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
b0a0: 4e 4f 54 20 4e 55 4c 4c 20 3d 20 36 38 0d 0a 2d  NOT NULL = 68..-
b0b0: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
b0c0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
b0d0: 49 53 54 49 4e 43 54 20 2d 20 2b 20 28 20 63 6f  ISTINCT - + ( co
b0e0: 6c 30 20 29 20 2d 20 2b 20 2b 20 63 6f 6c 32 20  l0 ) - + + col2 
b0f0: 2a 20 2d 20 2b 20 38 35 20 41 53 20 63 6f 6c 31  * - + 85 AS col1
b100: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
b110: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 39 38 30 0d 0a  r0..----..3980..
b120: 37 36 33 0d 0a 38 33 31 38 0d 0a 0d 0a 6f 6e 6c  763..8318....onl
b130: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
b140: 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61   syntax: aggrega
b150: 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  te syntax: SIGNE
b160: 44 20 74 79 70 65 3a 20 44 49 56 20 66 6f 72 20  D type: DIV for 
b170: 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
b180: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
b190: 6f 72 74 20 6c 61 62 65 6c 2d 32 35 34 0d 0a 53  ort label-254..S
b1a0: 45 4c 45 43 54 20 36 34 20 44 49 56 20 2d 20 43  ELECT 64 DIV - C
b1b0: 41 53 54 28 20 2d 20 2d 20 4d 41 58 28 20 2b 20  AST( - - MAX( + 
b1c0: 63 6f 6c 32 20 29 20 41 53 20 53 49 47 4e 45 44  col2 ) AS SIGNED
b1d0: 20 29 20 2d 20 38 31 20 2a 20 2b 20 2d 20 43 4f   ) - 81 * + - CO
b1e0: 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
b1f0: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 34 33 0d 0a 0d  b0..----..243...
b200: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
b210: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
b220: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
b230: 6c 61 62 65 6c 2d 32 35 34 0d 0a 53 45 4c 45 43  label-254..SELEC
b240: 54 20 36 34 20 2f 20 2d 20 43 41 53 54 20 28 20  T 64 / - CAST ( 
b250: 2d 20 2d 20 4d 41 58 20 28 20 2b 20 63 6f 6c 32  - - MAX ( + col2
b260: 20 29 20 41 53 20 49 4e 54 45 47 45 52 20 29 20   ) AS INTEGER ) 
b270: 2d 20 38 31 20 2a 20 2b 20 2d 20 43 4f 55 4e 54  - 81 * + - COUNT
b280: 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30   ( * ) FROM tab0
b290: 0d 0a 2d 2d 2d 2d 0d 0a 32 34 33 0d 0a 0d 0a 71  ..----..243....q
b2a0: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
b2b0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
b2c0: 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48  T * FROM tab0 WH
b2d0: 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20 3c 3e 20  ERE NOT col0 <> 
b2e0: 2d 20 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  - 2..----....que
b2f0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
b300: 4c 45 43 54 20 2d 20 37 35 20 2a 20 2b 20 2d 20  LECT - 75 * + - 
b310: 28 20 2b 20 63 6f 6c 32 20 29 20 41 53 20 63 6f  ( + col2 ) AS co
b320: 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l2 FROM tab0..--
b330: 2d 2d 0d 0a 33 35 32 35 0d 0a 37 34 32 35 0d 0a  --..3525..7425..
b340: 37 35 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  750....onlyif my
b350: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
b360: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
b370: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
b380: 32 35 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  257..SELECT ALL 
b390: 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 31  + COUNT( * ) * 1
b3a0: 31 20 2b 20 2d 20 2d 20 36 38 20 46 52 4f 4d 20  1 + - - 68 FROM 
b3b0: 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
b3c0: 2d 2d 0d 0a 31 30 31 0d 0a 0d 0a 73 6b 69 70 69  --..101....skipi
b3d0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
b3e0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
b3f0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
b400: 32 35 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  257..SELECT ALL 
b410: 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20  + COUNT ( * ) * 
b420: 31 31 20 2b 20 2d 20 2d 20 36 38 20 46 52 4f 4d  11 + - - 68 FROM
b430: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
b440: 2d 2d 2d 0d 0a 31 30 31 0d 0a 0d 0a 6f 6e 6c 79  ---..101....only
b450: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
b460: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
b470: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
b480: 61 62 65 6c 2d 32 35 38 0d 0a 53 45 4c 45 43 54  abel-258..SELECT
b490: 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 4d 41   DISTINCT + + MA
b4a0: 58 28 20 2d 20 2b 20 63 6f 6c 31 20 29 20 63 6f  X( - + col1 ) co
b4b0: 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l0 FROM tab2 AS 
b4c0: 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e 55 4c  cor0 WHERE ( NUL
b4d0: 4c 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  L ) IS NOT NULL.
b4e0: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
b4f0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
b500: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
b510: 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
b520: 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
b530: 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
b540: 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
b550: 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
b560: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 35 38  owsort label-258
b570: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
b580: 54 20 2b 20 2b 20 4d 41 58 20 28 20 2d 20 2b 20  T + + MAX ( - + 
b590: 63 6f 6c 31 20 29 20 63 6f 6c 30 20 46 52 4f 4d  col1 ) col0 FROM
b5a0: 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
b5b0: 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 49 53 20  ERE ( NULL ) IS 
b5c0: 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
b5d0: 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49  NULL....query II
b5e0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
b5f0: 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 63 6f   DISTINCT + + co
b600: 6c 30 20 2a 20 2d 20 2d 20 33 36 20 41 53 20 63  l0 * - - 36 AS c
b610: 6f 6c 32 2c 20 2b 20 63 6f 6c 30 20 41 53 20 63  ol2, + col0 AS c
b620: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
b630: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 31 33   cor0..----..313
b640: 32 0d 0a 38 37 0d 0a 33 34 39 32 0d 0a 39 37 0d  2..87..3492..97.
b650: 0a 35 34 30 0d 0a 31 35 0d 0a 0d 0a 71 75 65 72  .540..15....quer
b660: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
b670: 45 43 54 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 2d  ECT + col2 * - -
b680: 20 63 6f 6c 30 20 2b 20 2b 20 2b 20 63 6f 6c 31   col0 + + + col1
b690: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
b6a0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 39 31 30 0d 0a  r0..----..4910..
b6b0: 35 30 32 30 0d 0a 36 32 33 35 0d 0a 0d 0a 6f 6e  5020..6235....on
b6c0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
b6d0: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
b6e0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
b6f0: 20 6c 61 62 65 6c 2d 32 36 31 0d 0a 53 45 4c 45   label-261..SELE
b700: 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20  CT - COUNT( * ) 
b710: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
b720: 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f  0 WHERE NOT - co
b730: 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  l0 IS NOT NULL..
b740: 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  ----..0....skipi
b750: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
b760: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
b770: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
b780: 32 36 31 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f  261..SELECT - CO
b790: 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
b7a0: 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
b7b0: 45 20 4e 4f 54 20 2d 20 63 6f 6c 30 20 49 53 20  E NOT - col0 IS 
b7c0: 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
b7d0: 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
b7e0: 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
b7f0: 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
b800: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
b810: 6c 61 62 65 6c 2d 32 36 32 0d 0a 53 45 4c 45 43  label-262..SELEC
b820: 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20  T DISTINCT col0 
b830: 44 49 56 20 2b 20 32 36 20 46 52 4f 4d 20 74 61  DIV + 26 FROM ta
b840: 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  b2 cor0..----..1
b850: 0d 0a 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..2....skipif my
b860: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
b870: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
b880: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 36 32 0d  wsort label-262.
b890: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
b8a0: 20 63 6f 6c 30 20 2f 20 2b 20 32 36 20 46 52 4f   col0 / + 26 FRO
b8b0: 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab2 cor0..---
b8c0: 2d 0d 0a 31 0d 0a 32 0d 0a 0d 0a 71 75 65 72 79  -..1..2....query
b8d0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
b8e0: 43 54 20 41 4c 4c 20 2b 20 2b 20 28 20 2d 20 63  CT ALL + + ( - c
b8f0: 6f 6c 32 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ol2 ) AS col1 FR
b900: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
b910: 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a 2d 36 38 0d  .----..-59..-68.
b920: 0a 2d 39 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .-96....query II
b930: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
b940: 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
b950: 4d 20 74 61 62 32 20 57 48 45 52 45 20 2b 20 2b  M tab2 WHERE + +
b960: 20 63 6f 6c 31 20 4e 4f 54 20 49 4e 20 28 20 2d   col1 NOT IN ( -
b970: 20 63 6f 6c 31 20 2f 20 2d 20 2d 20 63 6f 6c 30   col1 / - - col0
b980: 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75   )..----..9 valu
b990: 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35  es hashing to 75
b9a0: 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63  c998aa53ac83218c
b9b0: 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a  bf2feb962d0a49..
b9c0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
b9d0: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
b9e0: 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f  col1 AS col0 FRO
b9f0: 4d 20 74 61 62 30 20 57 48 45 52 45 20 32 37 20  M tab0 WHERE 27 
ba00: 2a 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a  * col2 IS NULL..
ba10: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
ba20: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
ba30: 44 49 53 54 49 4e 43 54 20 2b 20 35 20 2a 20 2b  DISTINCT + 5 * +
ba40: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
ba50: 0a 2d 2d 2d 2d 0d 0a 34 33 35 0d 0a 34 38 35 0d  .----..435..485.
ba60: 0a 37 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .75....onlyif my
ba70: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
ba80: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
ba90: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
baa0: 32 36 37 0d 0a 53 45 4c 45 43 54 20 2b 20 38 32  267..SELECT + 82
bab0: 20 2a 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20   * - COUNT( * ) 
bac0: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
bad0: 0a 2d 32 34 36 0d 0a 0d 0a 73 6b 69 70 69 66 20  .-246....skipif 
bae0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
baf0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
bb00: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 36  rowsort label-26
bb10: 37 0d 0a 53 45 4c 45 43 54 20 2b 20 38 32 20 2a  7..SELECT + 82 *
bb20: 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46   - COUNT ( * ) F
bb30: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
bb40: 2d 32 34 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -246....onlyif m
bb50: 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
bb60: 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
bb70: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
bb80: 72 74 20 6c 61 62 65 6c 2d 32 36 38 0d 0a 53 45  rt label-268..SE
bb90: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
bba0: 37 38 20 44 49 56 20 2b 20 63 6f 6c 32 20 41 53  78 DIV + col2 AS
bbb0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
bbc0: 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 33 0d 0a 0d  .----..-1..-3...
bbd0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
bbe0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
bbf0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
bc00: 6c 61 62 65 6c 2d 32 36 38 0d 0a 53 45 4c 45 43  label-268..SELEC
bc10: 54 20 44 49 53 54 49 4e 43 54 20 2d 20 37 38 20  T DISTINCT - 78 
bc20: 2f 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31  / + col2 AS col1
bc30: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
bc40: 0d 0a 2d 31 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72  ..-1..-3....quer
bc50: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
bc60: 45 43 54 20 41 4c 4c 20 39 30 20 41 53 20 63 6f  ECT ALL 90 AS co
bc70: 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  l0 FROM tab1 cor
bc80: 30 0d 0a 2d 2d 2d 2d 0d 0a 39 30 0d 0a 39 30 0d  0..----..90..90.
bc90: 0a 39 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .90....query I r
bca0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
bcb0: 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 2b 20 32 36   + col0 + + + 26
bcc0: 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 2a 20 2b 20   * + - col2 * + 
bcd0: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
bce0: 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
bcf0: 20 38 37 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d   87 IS NULL..---
bd00: 2d 0d 0a 2d 32 36 37 31 0d 0a 2d 35 35 34 37 0d  -..-2671..-5547.
bd10: 0a 2d 39 38 39 39 37 0d 0a 0d 0a 73 6b 69 70 69  .-98997....skipi
bd20: 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
bd30: 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
bd40: 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
bd50: 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
bd60: 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
bd70: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20  ort..SELECT - + 
bd80: 38 31 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  81 col2 FROM tab
bd90: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
bda0: 0a 2d 38 31 0d 0a 2d 38 31 0d 0a 2d 38 31 0d 0a  .-81..-81..-81..
bdb0: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
bdc0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
bdd0: 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  * FROM tab1 WHER
bde0: 45 20 4e 4f 54 20 2b 20 34 39 20 2b 20 63 6f 6c  E NOT + 49 + col
bdf0: 32 20 2a 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 2d  2 * - col1 * + -
be00: 20 63 6f 6c 31 20 2f 20 28 20 2d 20 28 20 2b 20   col1 / ( - ( + 
be10: 63 6f 6c 31 20 29 20 29 20 4e 4f 54 20 49 4e 20  col1 ) ) NOT IN 
be20: 28 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d  ( + col1 )..----
be30: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
be40: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
be50: 49 4e 43 54 20 28 20 2b 20 2b 20 63 6f 6c 30 20  INCT ( + + col0 
be60: 29 20 2b 20 2d 20 2d 20 63 6f 6c 32 20 41 53 20  ) + - - col2 AS 
be70: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 63  col0 FROM tab2 c
be80: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 34 0d 0a  or0..----..104..
be90: 31 33 33 0d 0a 36 39 0d 0a 0d 0a 73 6b 69 70 69  133..69....skipi
bea0: 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
beb0: 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
bec0: 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
bed0: 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
bee0: 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ns..query II row
bef0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
bf00: 20 31 34 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c 30   14 col2, + col0
bf10: 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20   + col2 AS col1 
bf20: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
bf30: 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 31 34 34  0..----..14..144
bf40: 0d 0a 31 34 0d 0a 31 34 37 0d 0a 31 34 0d 0a 31  ..14..147..14..1
bf50: 35 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  59....query I ro
bf60: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
bf70: 4c 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  L + col0 FROM ta
bf80: 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
bf90: 20 4e 4f 54 20 2b 20 63 6f 6c 31 20 3c 20 2d 20   NOT + col1 < - 
bfa0: 38 35 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 38 37  85..----..15..87
bfb0: 0d 0a 39 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  ..97....skipif p
bfc0: 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
bfd0: 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
bfe0: 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
bff0: 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
c000: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
c010: 0d 0a 53 45 4c 45 43 54 20 2d 20 36 30 20 2a 20  ..SELECT - 60 * 
c020: 2d 20 2d 20 38 34 20 63 6f 6c 32 20 46 52 4f 4d  - - 84 col2 FROM
c030: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
c040: 2d 2d 2d 0d 0a 2d 35 30 34 30 0d 0a 2d 35 30 34  ---..-5040..-504
c050: 30 0d 0a 2d 35 30 34 30 0d 0a 0d 0a 71 75 65 72  0..-5040....quer
c060: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
c070: 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 2b  ECT ALL + col0 +
c080: 20 2d 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c   - + col1 AS col
c090: 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
c0a0: 2d 0d 0a 2d 36 36 0d 0a 36 36 0d 0a 39 36 0d 0a  -..-66..66..96..
c0b0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
c0c0: 74 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 2d 20  t..SELECT + ( - 
c0d0: 2d 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 32  - col2 ) AS col2
c0e0: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
c0f0: 0d 0a 31 30 0d 0a 34 37 0d 0a 39 39 0d 0a 0d 0a  ..10..47..99....
c100: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
c110: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
c120: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
c130: 72 74 20 6c 61 62 65 6c 2d 32 37 39 0d 0a 53 45  rt label-279..SE
c140: 4c 45 43 54 20 35 30 20 2a 20 2b 20 43 4f 55 4e  LECT 50 * + COUN
c150: 54 28 20 2a 20 29 20 2b 20 2d 20 4d 49 4e 28 20  T( * ) + - MIN( 
c160: 2b 20 36 34 20 29 20 2b 20 2b 20 39 34 20 46 52  + 64 ) + + 94 FR
c170: 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d  OM tab0 cor0..--
c180: 2d 2d 0d 0a 31 38 30 0d 0a 0d 0a 73 6b 69 70 69  --..180....skipi
c190: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
c1a0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
c1b0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
c1c0: 32 37 39 0d 0a 53 45 4c 45 43 54 20 35 30 20 2a  279..SELECT 50 *
c1d0: 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b   + COUNT ( * ) +
c1e0: 20 2d 20 4d 49 4e 20 28 20 2b 20 36 34 20 29 20   - MIN ( + 64 ) 
c1f0: 2b 20 2b 20 39 34 20 46 52 4f 4d 20 74 61 62 30  + + 94 FROM tab0
c200: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 38 30   cor0..----..180
c210: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
c220: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
c230: 49 4e 43 54 20 63 6f 6c 30 20 46 52 4f 4d 20 74  INCT col0 FROM t
c240: 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
c250: 45 20 4e 4f 54 20 63 6f 6c 30 20 3c 3e 20 28 20  E NOT col0 <> ( 
c260: 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  NULL )..----....
c270: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
c280: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 35 35 20 46  .SELECT ALL 55 F
c290: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
c2a0: 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30   CROSS JOIN tab0
c2b0: 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
c2c0: 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
c2d0: 20 74 6f 20 31 36 32 36 62 64 33 30 30 38 61 62   to 1626bd3008ab
c2e0: 64 39 66 31 38 63 63 38 38 63 64 65 63 66 37 62  d9f18cc88cdecf7b
c2f0: 36 34 64 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  64d0....onlyif m
c300: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
c310: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
c320: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
c330: 2d 32 38 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -282..SELECT ALL
c340: 20 4d 41 58 28 20 2d 20 2b 20 63 6f 6c 32 20 29   MAX( - + col2 )
c350: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 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 31 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-10....skipif 
c380: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
c390: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
c3a0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38  rowsort label-28
c3b0: 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 4d 41  2..SELECT ALL MA
c3c0: 58 20 28 20 2d 20 2b 20 63 6f 6c 32 20 29 20 41  X ( - + col2 ) A
c3d0: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
c3e0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
c3f0: 2d 31 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -10....onlyif my
c400: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
c410: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
c420: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
c430: 32 38 33 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 49  283..SELECT + MI
c440: 4e 28 20 2d 20 2b 20 63 6f 6c 30 20 29 20 46 52  N( - + col0 ) FR
c450: 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d  OM tab1 cor0..--
c460: 2d 2d 0d 0a 2d 39 31 0d 0a 0d 0a 73 6b 69 70 69  --..-91....skipi
c470: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
c480: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
c490: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
c4a0: 32 38 33 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 49  283..SELECT + MI
c4b0: 4e 20 28 20 2d 20 2b 20 63 6f 6c 30 20 29 20 46  N ( - + col0 ) F
c4c0: 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d  ROM tab1 cor0..-
c4d0: 2d 2d 2d 0d 0a 2d 39 31 0d 0a 0d 0a 6f 6e 6c 79  ---..-91....only
c4e0: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
c4f0: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
c500: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
c510: 61 62 65 6c 2d 32 38 34 0d 0a 53 45 4c 45 43 54  abel-284..SELECT
c520: 20 53 55 4d 28 20 2d 20 63 6f 6c 32 20 29 20 41   SUM( - col2 ) A
c530: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
c540: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
c550: 2d 31 32 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -121....skipif m
c560: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
c570: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
c580: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38 34  owsort label-284
c590: 0d 0a 53 45 4c 45 43 54 20 53 55 4d 20 28 20 2d  ..SELECT SUM ( -
c5a0: 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 31 20   col2 ) AS col1 
c5b0: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
c5c0: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 31 0d 0a 0d  0..----..-121...
c5d0: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
c5e0: 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 63 6f  t..SELECT + - co
c5f0: 6c 32 20 41 53 20 63 6f 6c 32 2c 20 2d 20 38 38  l2 AS col2, - 88
c600: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
c610: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a 2d  r0..----..-59..-
c620: 38 38 0d 0a 2d 36 38 0d 0a 2d 38 38 0d 0a 2d 39  88..-68..-88..-9
c630: 36 0d 0a 2d 38 38 0d 0a 0d 0a 73 6b 69 70 69 66  6..-88....skipif
c640: 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
c650: 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
c660: 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
c670: 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
c680: 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
c690: 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 36  rt..SELECT + - 6
c6a0: 33 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  3 col1 FROM tab1
c6b0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
c6c0: 2d 36 33 0d 0a 2d 36 33 0d 0a 2d 36 33 0d 0a 0d  -63..-63..-63...
c6d0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
c6e0: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
c6f0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
c700: 6f 72 74 20 6c 61 62 65 6c 2d 32 38 37 0d 0a 53  ort label-287..S
c710: 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d 41 58 28  ELECT ALL + MAX(
c720: 20 2b 20 2b 20 34 36 20 29 20 63 6f 6c 32 20 46   + + 46 ) col2 F
c730: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
c740: 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 0d 0a 73 6b  ..----..46....sk
c750: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
c760: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69   compatible..ski
c770: 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
c780: 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
c790: 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
c7a0: 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
c7b0: 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
c7c0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38 37 0d  wsort label-287.
c7d0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d 41  .SELECT ALL + MA
c7e0: 58 20 28 20 2b 20 2b 20 34 36 20 29 20 63 6f 6c  X ( + + 46 ) col
c7f0: 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
c800: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 0d  or0..----..46...
c810: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
c820: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
c830: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
c840: 6f 72 74 20 6c 61 62 65 6c 2d 32 38 38 0d 0a 53  ort label-288..S
c850: 45 4c 45 43 54 20 41 4c 4c 20 4d 49 4e 28 20 41  ELECT ALL MIN( A
c860: 4c 4c 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74  LL col2 ) FROM t
c870: 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
c880: 45 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55  E col1 IS NOT NU
c890: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 0d 0a  LL..----..23....
c8a0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
c8b0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
c8c0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
c8d0: 61 62 65 6c 2d 32 38 38 0d 0a 53 45 4c 45 43 54  abel-288..SELECT
c8e0: 20 41 4c 4c 20 4d 49 4e 20 28 20 41 4c 4c 20 63   ALL MIN ( ALL c
c8f0: 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ol2 ) FROM tab2 
c900: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f  AS cor0 WHERE co
c910: 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  l1 IS NOT NULL..
c920: 2d 2d 2d 2d 0d 0a 32 33 0d 0a 0d 0a 6f 6e 6c 79  ----..23....only
c930: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
c940: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
c950: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
c960: 61 62 65 6c 2d 32 38 39 0d 0a 53 45 4c 45 43 54  abel-289..SELECT
c970: 20 2b 20 4d 41 58 28 20 2d 20 2b 20 36 39 20 29   + MAX( - + 69 )
c980: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
c990: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 39 0d 0a 0d  b2..----..-69...
c9a0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
c9b0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
c9c0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
c9d0: 6c 61 62 65 6c 2d 32 38 39 0d 0a 53 45 4c 45 43  label-289..SELEC
c9e0: 54 20 2b 20 4d 41 58 20 28 20 2d 20 2b 20 36 39  T + MAX ( - + 69
c9f0: 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
ca00: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 39 0d  tab2..----..-69.
ca10: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
ca20: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
ca30: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
ca40: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 39 30 0d  wsort label-290.
ca50: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
ca60: 20 2d 20 43 4f 55 4e 54 28 20 2d 20 38 31 20 29   - COUNT( - 81 )
ca70: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
ca80: 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69  .----..-3....ski
ca90: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
caa0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70  compatible..skip
cab0: 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
cac0: 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
cad0: 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
cae0: 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
caf0: 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
cb00: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 39 30 0d 0a  sort label-290..
cb10: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
cb20: 2d 20 43 4f 55 4e 54 20 28 20 2d 20 38 31 20 29  - COUNT ( - 81 )
cb30: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
cb40: 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75 65  .----..-3....que
cb50: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
cb60: 45 4c 45 43 54 20 63 6f 6c 31 2c 20 2d 20 28 20  ELECT col1, - ( 
cb70: 37 38 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a  78 ) FROM tab1..
cb80: 2d 2d 2d 2d 0d 0a 31 34 0d 0a 2d 37 38 0d 0a 34  ----..14..-78..4
cb90: 37 0d 0a 2d 37 38 0d 0a 35 0d 0a 2d 37 38 0d 0a  7..-78..5..-78..
cba0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
cbb0: 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
cbc0: 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
cbd0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
cbe0: 65 6c 2d 32 39 32 0d 0a 53 45 4c 45 43 54 20 41  el-292..SELECT A
cbf0: 4c 4c 20 2d 20 34 34 20 2a 20 2b 20 2d 20 43 41  LL - 44 * + - CA
cc00: 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
cc10: 45 44 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  ED ) AS col2 FRO
cc20: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab0..----..NU
cc30: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
cc40: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
cc50: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
cc60: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
cc70: 20 6c 61 62 65 6c 2d 32 39 32 0d 0a 53 45 4c 45   label-292..SELE
cc80: 43 54 20 41 4c 4c 20 2d 20 34 34 20 2a 20 2b 20  CT ALL - 44 * + 
cc90: 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
cca0: 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f   INTEGER ) AS co
ccb0: 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l2 FROM tab0..--
ccc0: 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
ccd0: 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  NULL....onlyif m
cce0: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
ccf0: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
cd00: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
cd10: 2d 32 39 33 0d 0a 53 45 4c 45 43 54 20 2d 20 43  -293..SELECT - C
cd20: 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2d 20 43 4f  OUNT( * ) * - CO
cd30: 55 4e 54 28 20 2a 20 29 20 63 6f 6c 32 20 46 52  UNT( * ) col2 FR
cd40: 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 39  OM tab1..----..9
cd50: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
cd60: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
cd70: 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
cd80: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
cd90: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
cda0: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
cdb0: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
cdc0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
cdd0: 6c 2d 32 39 33 0d 0a 53 45 4c 45 43 54 20 2d 20  l-293..SELECT - 
cde0: 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20  COUNT ( * ) * - 
cdf0: 43 4f 55 4e 54 20 28 20 2a 20 29 20 63 6f 6c 32  COUNT ( * ) col2
ce00: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
ce10: 0d 0a 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ..9....query I r
ce20: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
ce30: 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   + col0 FROM tab
ce40: 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
ce50: 4e 4f 54 20 28 20 4e 4f 54 20 2d 20 2d 20 63 6f  NOT ( NOT - - co
ce60: 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 20 29  l0 IS NOT NULL )
ce70: 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 38 37 0d 0a  ..----..15..87..
ce80: 39 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  97....query II r
ce90: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
cea0: 4c 4c 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c  LL - col2 AS col
ceb0: 31 2c 20 35 37 20 41 53 20 63 6f 6c 32 20 46 52  1, 57 AS col2 FR
cec0: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
ced0: 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a 35 37 0d 0a  .----..-59..57..
cee0: 2d 36 38 0d 0a 35 37 0d 0a 2d 39 36 0d 0a 35 37  -68..57..-96..57
cef0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
cf00: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
cf10: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
cf20: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 39 36  owsort label-296
cf30: 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20  ..SELECT COUNT( 
cf40: 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  * ) AS col1 FROM
cf50: 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
cf60: 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29  ERE NOT ( NULL )
cf70: 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
cf80: 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..3....skipif 
cf90: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
cfa0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
cfb0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 39  rowsort label-29
cfc0: 36 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20  6..SELECT COUNT 
cfd0: 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ( * ) AS col1 FR
cfe0: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
cff0: 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c  WHERE NOT ( NULL
d000: 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a   ) IS NOT NULL..
d010: 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79  ----..3....query
d020: 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
d030: 45 43 54 20 2b 20 2b 20 63 6f 6c 32 2c 20 63 6f  ECT + + col2, co
d040: 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l2 AS col0 FROM 
d050: 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
d060: 0a 31 30 0d 0a 31 30 0d 0a 34 37 0d 0a 34 37 0d  .10..10..47..47.
d070: 0a 39 39 0d 0a 39 39 0d 0a 0d 0a 6f 6e 6c 79 69  .99..99....onlyi
d080: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
d090: 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20  ate syntax: DIV 
d0a0: 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
d0b0: 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
d0c0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 39  rowsort label-29
d0d0: 38 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e  8..SELECT - COUN
d0e0: 54 28 20 2a 20 29 20 44 49 56 20 2d 20 53 55 4d  T( * ) DIV - SUM
d0f0: 28 20 41 4c 4c 20 63 6f 6c 30 20 29 20 63 6f 6c  ( ALL col0 ) col
d100: 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
d110: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  or0..----..0....
d120: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
d130: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73  ot compatible..s
d140: 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
d150: 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
d160: 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
d170: 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
d180: 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
d190: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 39  rowsort label-29
d1a0: 38 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e  8..SELECT - COUN
d1b0: 54 20 28 20 2a 20 29 20 2f 20 2d 20 53 55 4d 20  T ( * ) / - SUM 
d1c0: 28 20 41 4c 4c 20 63 6f 6c 30 20 29 20 63 6f 6c  ( ALL col0 ) col
d1d0: 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
d1e0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  or0..----..0....
d1f0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
d200: 0a 53 45 4c 45 43 54 20 2d 20 35 38 20 2a 20 63  .SELECT - 58 * c
d210: 6f 6c 31 20 2a 20 2d 20 63 6f 6c 30 20 46 52 4f  ol1 * - col0 FRO
d220: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 33  M tab2..----..13
d230: 36 30 36 38 0d 0a 32 38 35 38 32 34 0d 0a 32 39  6068..285824..29
d240: 31 34 35 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  1450....onlyif m
d250: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
d260: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
d270: 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
d280: 6c 2d 33 30 30 0d 0a 53 45 4c 45 43 54 20 2b 20  l-300..SELECT + 
d290: 4d 41 58 28 20 2b 20 63 6f 6c 32 20 29 20 41 53  MAX( + col2 ) AS
d2a0: 20 63 6f 6c 31 2c 20 2d 20 4d 49 4e 28 20 44 49   col1, - MIN( DI
d2b0: 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31 20 29 20  STINCT - col1 ) 
d2c0: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
d2d0: 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c 3d 20  1 WHERE NULL <= 
d2e0: 2b 20 34 34 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  + 44..----..NULL
d2f0: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
d300: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
d310: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
d320: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
d330: 33 30 30 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 41  300..SELECT + MA
d340: 58 20 28 20 2b 20 63 6f 6c 32 20 29 20 41 53 20  X ( + col2 ) AS 
d350: 63 6f 6c 31 2c 20 2d 20 4d 49 4e 20 28 20 44 49  col1, - MIN ( DI
d360: 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31 20 29 20  STINCT - col1 ) 
d370: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
d380: 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c 3d 20  1 WHERE NULL <= 
d390: 2b 20 34 34 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  + 44..----..NULL
d3a0: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..NULL....onlyif
d3b0: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
d3c0: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
d3d0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
d3e0: 65 6c 2d 33 30 31 0d 0a 53 45 4c 45 43 54 20 44  el-301..SELECT D
d3f0: 49 53 54 49 4e 43 54 20 39 30 20 2a 20 2d 20 4d  ISTINCT 90 * - M
d400: 49 4e 28 20 2d 20 2b 20 31 36 20 29 20 2b 20 43  IN( - + 16 ) + C
d410: 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74  OUNT( * ) FROM t
d420: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 34 33 0d  ab0..----..1443.
d430: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
d440: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
d450: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
d460: 74 20 6c 61 62 65 6c 2d 33 30 31 0d 0a 53 45 4c  t label-301..SEL
d470: 45 43 54 20 44 49 53 54 49 4e 43 54 20 39 30 20  ECT DISTINCT 90 
d480: 2a 20 2d 20 4d 49 4e 20 28 20 2d 20 2b 20 31 36  * - MIN ( - + 16
d490: 20 29 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29   ) + COUNT ( * )
d4a0: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
d4b0: 0d 0a 31 34 34 33 0d 0a 0d 0a 71 75 65 72 79 20  ..1443....query 
d4c0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
d4d0: 54 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 2d 20 39  T + col2 * - - 9
d4e0: 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  0 AS col1 FROM t
d4f0: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 33 31 30 0d  ab1..----..5310.
d500: 0a 36 31 32 30 0d 0a 38 36 34 30 0d 0a 0d 0a 71  .6120..8640....q
d510: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
d520: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
d530: 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  T * FROM tab2 WH
d540: 45 52 45 20 2b 20 39 39 20 3c 3e 20 4e 55 4c 4c  ERE + 99 <> NULL
d550: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
d560: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
d570: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
d580: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
d590: 65 6c 2d 33 30 34 0d 0a 53 45 4c 45 43 54 20 41  el-304..SELECT A
d5a0: 4c 4c 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20  LL COUNT( * ) + 
d5b0: 53 55 4d 28 20 41 4c 4c 20 2d 20 63 6f 6c 32 20  SUM( ALL - col2 
d5c0: 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
d5d0: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
d5e0: 2d 0d 0a 2d 31 31 38 0d 0a 0d 0a 73 6b 69 70 69  -..-118....skipi
d5f0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
d600: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
d610: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
d620: 33 30 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  304..SELECT ALL 
d630: 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 53 55  COUNT ( * ) + SU
d640: 4d 20 28 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 29  M ( ALL - col2 )
d650: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
d660: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
d670: 0d 0a 2d 31 31 38 0d 0a 0d 0a 71 75 65 72 79 20  ..-118....query 
d680: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
d690: 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
d6a0: 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
d6b0: 45 20 4e 4f 54 20 2b 20 28 20 2b 20 63 6f 6c 30  E NOT + ( + col0
d6c0: 20 29 20 2a 20 2b 20 63 6f 6c 30 20 2b 20 2b 20   ) * + col0 + + 
d6d0: 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col0 IS NOT NULL
d6e0: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
d6f0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
d700: 54 20 37 34 20 2b 20 2b 20 35 37 20 2b 20 2d 20  T 74 + + 57 + - 
d710: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
d720: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31  S cor0..----..11
d730: 36 0d 0a 33 34 0d 0a 34 34 0d 0a 0d 0a 71 75 65  6..34..44....que
d740: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
d750: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
d760: 31 37 20 2a 20 2b 20 2b 20 63 6f 6c 30 20 41 53  17 * + + col0 AS
d770: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
d780: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
d790: 31 34 34 35 0d 0a 2d 31 35 34 37 0d 0a 2d 38 36  1445..-1547..-86
d7a0: 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  7....query I row
d7b0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
d7c0: 54 49 4e 43 54 20 28 20 63 6f 6c 32 20 29 20 2d  TINCT ( col2 ) -
d7d0: 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c   + + col0 AS col
d7e0: 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
d7f0: 2d 0d 0a 2d 37 37 0d 0a 32 0d 0a 33 32 0d 0a 0d  -..-77..2..32...
d800: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
d810: 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20  ..SELECT - col0 
d820: 2b 20 2b 20 63 6f 6c 32 20 2d 20 2d 20 63 6f 6c  + + col2 - - col
d830: 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
d840: 2d 0d 0a 31 30 0d 0a 34 37 0d 0a 39 39 0d 0a 0d  -..10..47..99...
d850: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
d860: 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20  ..SELECT - col1 
d870: 2a 20 2d 20 32 31 20 2a 20 2b 20 2d 20 63 6f 6c  * - 21 * + - col
d880: 30 20 2a 20 2b 20 2b 20 32 35 20 2b 20 2d 20 2b  0 * + + 25 + - +
d890: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
d8a0: 57 48 45 52 45 20 28 20 2d 20 35 31 20 2a 20 2d  WHERE ( - 51 * -
d8b0: 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c   col1 IS NOT NUL
d8c0: 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32 33 31  L )..----..-2231
d8d0: 33 30 0d 0a 2d 32 32 34 35 34 37 32 0d 0a 2d 33  30..-2245472..-3
d8e0: 37 34 38 36 34 0d 0a 0d 0a 71 75 65 72 79 20 49  74864....query I
d8f0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
d900: 54 20 63 6f 6c 30 20 2a 20 63 6f 6c 30 20 41 53  T col0 * col0 AS
d910: 20 63 6f 6c 31 2c 20 2d 20 63 6f 6c 31 20 2a 20   col1, - col1 * 
d920: 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  + col2 FROM tab2
d930: 0d 0a 2d 2d 2d 2d 0d 0a 32 31 31 36 0d 0a 2d 31  ..----..2116..-1
d940: 31 37 33 0d 0a 34 30 39 36 0d 0a 2d 33 30 38 30  173..4096..-3080
d950: 0d 0a 35 36 32 35 0d 0a 2d 33 38 38 36 0d 0a 0d  ..5625..-3886...
d960: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
d970: 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
d980: 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
d990: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
d9a0: 6c 2d 33 31 32 0d 0a 53 45 4c 45 43 54 20 2d 20  l-312..SELECT - 
d9b0: 2d 20 33 32 20 44 49 56 20 63 6f 6c 31 20 63 6f  - 32 DIV col1 co
d9c0: 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l0 FROM tab2 AS 
d9d0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30  cor0..----..0..0
d9e0: 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
d9f0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
da00: 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
da10: 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
da20: 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
da30: 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
da40: 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
da50: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
da60: 61 62 65 6c 2d 33 31 32 0d 0a 53 45 4c 45 43 54  abel-312..SELECT
da70: 20 2d 20 2d 20 33 32 20 2f 20 63 6f 6c 31 20 63   - - 32 / col1 c
da80: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
da90: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   cor0..----..0..
daa0: 30 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  0..0....query I 
dab0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
dac0: 41 4c 4c 20 2b 20 2b 20 33 37 20 41 53 20 63 6f  ALL + + 37 AS co
dad0: 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
dae0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 37 0d 0a  cor0..----..37..
daf0: 33 37 0d 0a 33 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  37..37....onlyif
db00: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
db10: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
db20: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
db30: 65 6c 2d 33 31 34 0d 0a 53 45 4c 45 43 54 20 44  el-314..SELECT D
db40: 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54 28  ISTINCT + COUNT(
db50: 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41   * ) FROM tab0 A
db60: 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e  S cor0 WHERE ( N
db70: 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e  OT NULL IS NOT N
db80: 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a  ULL )..----..3..
db90: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
dba0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
dbb0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
dbc0: 20 6c 61 62 65 6c 2d 33 31 34 0d 0a 53 45 4c 45   label-314..SELE
dbd0: 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 4f  CT DISTINCT + CO
dbe0: 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
dbf0: 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
dc00: 45 20 28 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20  E ( NOT NULL IS 
dc10: 4e 4f 54 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d  NOT NULL )..----
dc20: 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..3....onlyif my
dc30: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
dc40: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
dc50: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
dc60: 33 31 35 0d 0a 53 45 4c 45 43 54 20 4d 41 58 28  315..SELECT MAX(
dc70: 20 44 49 53 54 49 4e 43 54 20 2b 20 39 33 20 29   DISTINCT + 93 )
dc80: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
dc90: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 39 33 0d 0a 0d 0a  b2..----..93....
dca0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
dcb0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
dcc0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
dcd0: 61 62 65 6c 2d 33 31 35 0d 0a 53 45 4c 45 43 54  abel-315..SELECT
dce0: 20 4d 41 58 20 28 20 44 49 53 54 49 4e 43 54 20   MAX ( DISTINCT 
dcf0: 2b 20 39 33 20 29 20 41 53 20 63 6f 6c 30 20 46  + 93 ) AS col0 F
dd00: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
dd10: 39 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  93....onlyif mys
dd20: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
dd30: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
dd40: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
dd50: 31 36 0d 0a 53 45 4c 45 43 54 20 4d 49 4e 28 20  16..SELECT MIN( 
dd60: 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30 20 46  col0 ) AS col0 F
dd70: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
dd80: 34 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  46....skipif mys
dd90: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
dda0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
ddb0: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 31 36 0d 0a  sort label-316..
ddc0: 53 45 4c 45 43 54 20 4d 49 4e 20 28 20 63 6f 6c  SELECT MIN ( col
ddd0: 30 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  0 ) AS col0 FROM
dde0: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d   tab2..----..46.
ddf0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
de00: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61  # CAST syntax: a
de10: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
de20: 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d   DECIMAL type: .
de30: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
de40: 20 6c 61 62 65 6c 2d 33 31 37 0d 0a 53 45 4c 45   label-317..SELE
de50: 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 4f  CT DISTINCT + CO
de60: 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20 43 41 53  UNT( * ) * + CAS
de70: 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d  T( NULL AS DECIM
de80: 41 4c 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  AL ) AS col1 FRO
de90: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab1..----..NU
dea0: 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
deb0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
dec0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
ded0: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 31 37 0d 0a  sort label-317..
dee0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
def0: 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20  + COUNT ( * ) * 
df00: 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
df10: 20 52 45 41 4c 20 29 20 41 53 20 63 6f 6c 31 20   REAL ) AS col1 
df20: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
df30: 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
df40: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
df50: 54 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 31 20  T col1 * + col1 
df60: 2a 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32  * - col2 AS col2
df70: 2c 20 36 39 20 46 52 4f 4d 20 74 61 62 30 0d 0a  , 69 FROM tab0..
df80: 2d 2d 2d 2d 0d 0a 2d 33 30 38 33 36 37 0d 0a 36  ----..-308367..6
df90: 39 0d 0a 2d 34 34 31 30 0d 0a 36 39 0d 0a 2d 39  9..-4410..69..-9
dfa0: 39 0d 0a 36 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  9..69....onlyif 
dfb0: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
dfc0: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
dfd0: 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
dfe0: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 31 39 0d 0a  sort label-319..
dff0: 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20  SELECT ALL col1 
e000: 2a 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  * - CAST( NULL A
e010: 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2d 20 2b  S SIGNED ) + - +
e020: 20 32 35 20 2d 20 33 31 20 2a 20 2b 20 2d 20 63   25 - 31 * + - c
e030: 6f 6c 31 20 41 53 20 63 6f 6c 32 2c 20 63 6f 6c  ol1 AS col2, col
e040: 30 20 2a 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c  0 * - CAST( NULL
e050: 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f   AS SIGNED ) FRO
e060: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab0..----..NU
e070: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
e080: 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
e090: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
e0a0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
e0b0: 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
e0c0: 6f 72 74 20 6c 61 62 65 6c 2d 33 31 39 0d 0a 53  ort label-319..S
e0d0: 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2a  ELECT ALL col1 *
e0e0: 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   - CAST ( NULL A
e0f0: 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20 2d 20  S INTEGER ) + - 
e100: 2b 20 32 35 20 2d 20 33 31 20 2a 20 2b 20 2d 20  + 25 - 31 * + - 
e110: 63 6f 6c 31 20 41 53 20 63 6f 6c 32 2c 20 63 6f  col1 AS col2, co
e120: 6c 30 20 2a 20 2d 20 43 41 53 54 20 28 20 4e 55  l0 * - CAST ( NU
e130: 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
e140: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
e150: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
e160: 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  L..NULL..NULL..N
e170: 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ULL....onlyif my
e180: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
e190: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
e1a0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
e1b0: 33 32 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  320..SELECT DIST
e1c0: 49 4e 43 54 20 35 35 20 2a 20 2d 20 2b 20 43 4f  INCT 55 * - + CO
e1d0: 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
e1e0: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 35 0d 0a  b1..----..-165..
e1f0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
e200: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
e210: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
e220: 20 6c 61 62 65 6c 2d 33 32 30 0d 0a 53 45 4c 45   label-320..SELE
e230: 43 54 20 44 49 53 54 49 4e 43 54 20 35 35 20 2a  CT DISTINCT 55 *
e240: 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29   - + COUNT ( * )
e250: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
e260: 0d 0a 2d 31 36 35 0d 0a 0d 0a 71 75 65 72 79 20  ..-165....query 
e270: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
e280: 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  T DISTINCT + col
e290: 30 20 2b 20 2b 20 2b 20 63 6f 6c 31 20 41 53 20  0 + + + col1 AS 
e2a0: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col1 FROM tab2..
e2b0: 2d 2d 2d 2d 0d 0a 31 34 31 0d 0a 31 34 32 0d 0a  ----..141..142..
e2c0: 39 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  97....query III 
e2d0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
e2e0: 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
e2f0: 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
e300: 52 45 20 4e 4f 54 20 2d 20 33 39 20 3c 3e 20 4e  RE NOT - 39 <> N
e310: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ULL..----....onl
e320: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
e330: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49  egate syntax: DI
e340: 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
e350: 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
e360: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
e370: 33 32 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  323..SELECT ALL 
e380: 43 4f 55 4e 54 28 20 2a 20 29 20 44 49 56 20 2d  COUNT( * ) DIV -
e390: 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52   + COUNT( * ) FR
e3a0: 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d  OM tab0 cor0..--
e3b0: 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 73 6b 69 70 69 66  --..-1....skipif
e3c0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
e3d0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
e3e0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
e3f0: 32 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43  23..SELECT ALL C
e400: 4f 55 4e 54 20 28 20 2a 20 29 20 2f 20 2d 20 2b  OUNT ( * ) / - +
e410: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f   COUNT ( * ) FRO
e420: 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
e430: 2d 0d 0a 2d 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -..-1....onlyif 
e440: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
e450: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
e460: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
e470: 6c 2d 33 32 34 0d 0a 53 45 4c 45 43 54 20 41 4c  l-324..SELECT AL
e480: 4c 20 2b 20 31 35 20 2a 20 2b 20 43 4f 55 4e 54  L + 15 * + COUNT
e490: 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ( * ) AS col0 FR
e4a0: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
e4b0: 0a 2d 2d 2d 2d 0d 0a 34 35 0d 0a 0d 0a 73 6b 69  .----..45....ski
e4c0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
e4d0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
e4e0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
e4f0: 6c 2d 33 32 34 0d 0a 53 45 4c 45 43 54 20 41 4c  l-324..SELECT AL
e500: 4c 20 2b 20 31 35 20 2a 20 2b 20 43 4f 55 4e 54  L + 15 * + COUNT
e510: 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46   ( * ) AS col0 F
e520: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
e530: 0d 0a 2d 2d 2d 2d 0d 0a 34 35 0d 0a 0d 0a 71 75  ..----..45....qu
e540: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
e550: 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 2b 20 2d  ELECT + col0 + -
e560: 20 37 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   70 AS col0 FROM
e570: 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 35   tab0..----..-55
e580: 0d 0a 31 37 0d 0a 32 37 0d 0a 0d 0a 71 75 65 72  ..17..27....quer
e590: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
e5a0: 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20 2b 20 2b  ECT ALL col2 + +
e5b0: 20 28 20 38 37 20 29 20 41 53 20 63 6f 6c 32 20   ( 87 ) AS col2 
e5c0: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
e5d0: 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 30 0d 0a 31 32  0..----..110..12
e5e0: 37 0d 0a 31 34 35 0d 0a 0d 0a 6f 6e 6c 79 69 66  7..145....onlyif
e5f0: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
e600: 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79  ntax: DECIMAL ty
e610: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
e620: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 32 37 0d  wsort label-327.
e630: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31  .SELECT ALL col1
e640: 20 2d 20 2d 20 28 20 2b 20 43 41 53 54 28 20 4e   - - ( + CAST( N
e650: 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29  ULL AS DECIMAL )
e660: 20 29 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72   ) FROM tab1 cor
e670: 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  0..----..NULL..N
e680: 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ULL..NULL....ski
e690: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
e6a0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
e6b0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
e6c0: 6c 2d 33 32 37 0d 0a 53 45 4c 45 43 54 20 41 4c  l-327..SELECT AL
e6d0: 4c 20 63 6f 6c 31 20 2d 20 2d 20 28 20 2b 20 43  L col1 - - ( + C
e6e0: 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45  AST ( NULL AS RE
e6f0: 41 4c 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31  AL ) ) FROM tab1
e700: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
e710: 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
e720: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
e730: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
e740: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
e750: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
e760: 6c 2d 33 32 38 0d 0a 53 45 4c 45 43 54 20 44 49  l-328..SELECT DI
e770: 53 54 49 4e 43 54 20 63 6f 6c 30 20 41 53 20 63  STINCT col0 AS c
e780: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
e790: 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 32   cor0 WHERE col2
e7a0: 20 4e 4f 54 20 49 4e 20 28 20 63 6f 6c 30 20 2a   NOT IN ( col0 *
e7b0: 20 63 6f 6c 31 2c 20 63 6f 6c 32 20 2f 20 2d 20   col1, col2 / - 
e7c0: 2b 20 63 6f 6c 31 2c 20 2b 20 43 41 53 54 28 20  + col1, + CAST( 
e7d0: 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
e7e0: 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70   )..----....skip
e7f0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
e800: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
e810: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
e820: 2d 33 32 38 0d 0a 53 45 4c 45 43 54 20 44 49 53  -328..SELECT DIS
e830: 54 49 4e 43 54 20 63 6f 6c 30 20 41 53 20 63 6f  TINCT col0 AS co
e840: 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
e850: 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 32 20  cor0 WHERE col2 
e860: 4e 4f 54 20 49 4e 20 28 20 63 6f 6c 30 20 2a 20  NOT IN ( col0 * 
e870: 63 6f 6c 31 2c 20 63 6f 6c 32 20 2f 20 2d 20 2b  col1, col2 / - +
e880: 20 63 6f 6c 31 2c 20 2b 20 43 41 53 54 20 28 20   col1, + CAST ( 
e890: 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
e8a0: 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ) )..----....que
e8b0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
e8c0: 4c 45 43 54 20 63 6f 6c 31 20 46 52 4f 4d 20 74  LECT col1 FROM t
e8d0: 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
e8e0: 45 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 2d 20 63  E - col1 + - - c
e8f0: 6f 6c 30 20 2b 20 2b 20 39 37 20 2b 20 2b 20 2d  ol0 + + 97 + + -
e900: 20 63 6f 6c 31 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d   col1 <> NULL..-
e910: 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
e920: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
e930: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
e940: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
e950: 74 20 6c 61 62 65 6c 2d 33 33 30 0d 0a 53 45 4c  t label-330..SEL
e960: 45 43 54 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 63  ECT - col1 * + c
e970: 6f 6c 30 20 2d 20 2d 20 33 38 20 2b 20 2d 20 63  ol0 - - 38 + - c
e980: 6f 6c 30 20 2f 20 28 20 2b 20 43 41 53 54 28 20  ol0 / ( + CAST( 
e990: 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
e9a0: 20 29 20 2a 20 39 37 20 2a 20 2b 20 2d 20 63 6f   ) * 97 * + - co
e9b0: 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
e9c0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
e9d0: 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
e9e0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
e9f0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
ea00: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
ea10: 61 62 65 6c 2d 33 33 30 0d 0a 53 45 4c 45 43 54  abel-330..SELECT
ea20: 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 30   - col1 * + col0
ea30: 20 2d 20 2d 20 33 38 20 2b 20 2d 20 63 6f 6c 30   - - 38 + - col0
ea40: 20 2f 20 28 20 2b 20 43 41 53 54 20 28 20 4e 55   / ( + CAST ( NU
ea50: 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
ea60: 29 20 2a 20 39 37 20 2a 20 2b 20 2d 20 63 6f 6c  ) * 97 * + - col
ea70: 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
ea80: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
ea90: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  .NULL..NULL....q
eaa0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
eab0: 53 45 4c 45 43 54 20 2b 20 2b 20 63 6f 6c 31 20  SELECT + + col1 
eac0: 2a 20 2b 20 2b 20 28 20 2b 20 39 34 20 29 20 41  * + + ( + 94 ) A
ead0: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
eae0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
eaf0: 34 37 39 34 0d 0a 36 32 39 38 0d 0a 37 32 33 38  4794..6298..7238
eb00: 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
eb10: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
eb20: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
eb30: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
eb40: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
eb50: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
eb60: 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 31 20  LECT ALL - col1 
eb70: 2a 20 2d 20 2b 20 33 36 20 63 6f 6c 31 20 46 52  * - + 36 col1 FR
eb80: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
eb90: 0a 2d 2d 2d 2d 0d 0a 31 38 33 36 0d 0a 32 34 31  .----..1836..241
eba0: 32 0d 0a 32 37 37 32 0d 0a 0d 0a 71 75 65 72 79  2..2772....query
ebb0: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
ebc0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  LECT * FROM tab1
ebd0: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28   AS cor0 WHERE (
ebe0: 20 4e 55 4c 4c 20 29 20 3c 3d 20 2b 20 63 6f 6c   NULL ) <= + col
ebf0: 31 20 2d 20 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d  1 - + col2..----
ec00: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
ec10: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
ec20: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
ec30: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 33 34  owsort label-334
ec40: 0d 0a 53 45 4c 45 43 54 20 2d 20 39 32 20 2a 20  ..SELECT - 92 * 
ec50: 2b 20 4d 41 58 28 20 37 36 20 29 20 41 53 20 63  + MAX( 76 ) AS c
ec60: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
ec70: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 39   cor0..----..-69
ec80: 39 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  92....skipif mys
ec90: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
eca0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
ecb0: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 33 34 0d 0a  sort label-334..
ecc0: 53 45 4c 45 43 54 20 2d 20 39 32 20 2a 20 2b 20  SELECT - 92 * + 
ecd0: 4d 41 58 20 28 20 37 36 20 29 20 41 53 20 63 6f  MAX ( 76 ) AS co
ece0: 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l0 FROM tab2 AS 
ecf0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 39 39  cor0..----..-699
ed00: 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  2....onlyif mysq
ed10: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
ed20: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
ed30: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 33  rowsort label-33
ed40: 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  5..SELECT ALL - 
ed50: 39 31 20 2d 20 2b 20 2b 20 43 4f 55 4e 54 28 20  91 - + + COUNT( 
ed60: 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53  * ) FROM tab2 AS
ed70: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 34   cor0..----..-94
ed80: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
ed90: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
eda0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
edb0: 72 74 20 6c 61 62 65 6c 2d 33 33 35 0d 0a 53 45  rt label-335..SE
edc0: 4c 45 43 54 20 41 4c 4c 20 2d 20 39 31 20 2d 20  LECT ALL - 91 - 
edd0: 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  + + COUNT ( * ) 
ede0: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
edf0: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 34 0d 0a 0d 0a  0..----..-94....
ee00: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
ee10: 0a 53 45 4c 45 43 54 20 2d 20 31 34 20 2d 20 2b  .SELECT - 14 - +
ee20: 20 2b 20 34 20 46 52 4f 4d 20 74 61 62 30 0d 0a   + 4 FROM tab0..
ee30: 2d 2d 2d 2d 0d 0a 2d 31 38 0d 0a 2d 31 38 0d 0a  ----..-18..-18..
ee40: 2d 31 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  -18....query I r
ee50: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 28  owsort..SELECT (
ee60: 20 2b 20 63 6f 6c 30 20 29 20 2d 20 2d 20 2b 20   + col0 ) - - + 
ee70: 32 31 20 2a 20 35 39 20 46 52 4f 4d 20 74 61 62  21 * 59 FROM tab
ee80: 32 0d 0a 2d 2d 2d 2d 0d 0a 31 32 38 35 0d 0a 31  2..----..1285..1
ee90: 33 30 33 0d 0a 31 33 31 34 0d 0a 0d 0a 71 75 65  303..1314....que
eea0: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
eeb0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
eec0: 62 31 20 57 48 45 52 45 20 63 6f 6c 32 20 2a 20  b1 WHERE col2 * 
eed0: 63 6f 6c 32 20 2a 20 2b 20 35 31 20 49 53 20 4e  col2 * + 51 IS N
eee0: 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  OT NULL..----..9
eef0: 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
ef00: 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64  to c6c0a4111b36d
ef10: 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34  04dbc811a11e4d54
ef20: 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  cad....query I r
ef30: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
ef40: 20 34 31 20 2d 20 2b 20 2d 20 63 6f 6c 30 20 46   41 - + - col0 F
ef50: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
ef60: 31 32 38 0d 0a 31 33 38 0d 0a 35 36 0d 0a 0d 0a  128..138..56....
ef70: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
ef80: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
ef90: 54 20 2d 20 63 6f 6c 32 20 2d 20 2d 20 2d 20 63  T - col2 - - - c
efa0: 6f 6c 30 2c 20 2b 20 28 20 38 33 20 29 20 41 53  ol0, + ( 83 ) AS
efb0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
efc0: 0a 2d 2d 2d 2d 0d 0a 2d 31 34 34 0d 0a 38 33 0d  .----..-144..83.
efd0: 0a 2d 31 34 37 0d 0a 38 33 0d 0a 2d 31 35 39 0d  .-147..83..-159.
efe0: 0a 38 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .83....query I r
eff0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
f000: 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20 2b  ISTINCT + col2 +
f010: 20 2d 20 2d 20 37 20 41 53 20 63 6f 6c 31 20 46   - - 7 AS col1 F
f020: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
f030: 31 30 33 0d 0a 36 36 0d 0a 37 35 0d 0a 0d 0a 71  103..66..75....q
f040: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
f050: 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
f060: 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 28  tab1 WHERE NOT (
f070: 20 2d 20 37 39 20 29 20 2b 20 37 33 20 49 53 20   - 79 ) + 73 IS 
f080: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  NULL..----..9 va
f090: 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
f0a0: 63 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64  c6c0a4111b36d04d
f0b0: 62 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64  bc811a11e4d54cad
f0c0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
f0d0: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
f0e0: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
f0f0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 34 33  owsort label-343
f100: 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20  ..SELECT COUNT( 
f110: 41 4c 4c 20 2b 20 2b 20 63 6f 6c 32 20 29 20 46  ALL + + col2 ) F
f120: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
f130: 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
f140: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
f150: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
f160: 6f 72 74 20 6c 61 62 65 6c 2d 33 34 33 0d 0a 53  ort label-343..S
f170: 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 41 4c  ELECT COUNT ( AL
f180: 4c 20 2b 20 2b 20 63 6f 6c 32 20 29 20 46 52 4f  L + + col2 ) FRO
f190: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  M tab0..----..3.
f1a0: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
f1b0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
f1c0: 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
f1d0: 32 20 57 48 45 52 45 20 2d 20 39 39 20 49 53 20  2 WHERE - 99 IS 
f1e0: 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
f1f0: 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
f200: 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63   to 75c998aa53ac
f210: 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64  83218cbf2feb962d
f220: 30 61 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  0a49....onlyif m
f230: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
f240: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
f250: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
f260: 2d 33 34 35 0d 0a 53 45 4c 45 43 54 20 2b 20 2d  -345..SELECT + -
f270: 20 43 4f 55 4e 54 28 20 44 49 53 54 49 4e 43 54   COUNT( DISTINCT
f280: 20 31 35 20 29 20 41 53 20 63 6f 6c 31 20 46 52   15 ) AS col1 FR
f290: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
f2a0: 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 73 6b 69  .----..-1....ski
f2b0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
f2c0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
f2d0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
f2e0: 6c 2d 33 34 35 0d 0a 53 45 4c 45 43 54 20 2b 20  l-345..SELECT + 
f2f0: 2d 20 43 4f 55 4e 54 20 28 20 44 49 53 54 49 4e  - COUNT ( DISTIN
f300: 43 54 20 31 35 20 29 20 41 53 20 63 6f 6c 31 20  CT 15 ) AS col1 
f310: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
f320: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 6f  0..----..-1....o
f330: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
f340: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
f350: 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
f360: 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
f370: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
f380: 6c 2d 33 34 36 0d 0a 53 45 4c 45 43 54 20 2d 20  l-346..SELECT - 
f390: 53 55 4d 28 20 2b 20 34 34 20 29 20 44 49 56 20  SUM( + 44 ) DIV 
f3a0: 2d 20 2d 20 31 32 20 46 52 4f 4d 20 74 61 62 30  - - 12 FROM tab0
f3b0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31   cor0..----..-11
f3c0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
f3d0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
f3e0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
f3f0: 72 74 20 6c 61 62 65 6c 2d 33 34 36 0d 0a 53 45  rt label-346..SE
f400: 4c 45 43 54 20 2d 20 53 55 4d 20 28 20 2b 20 34  LECT - SUM ( + 4
f410: 34 20 29 20 2f 20 2d 20 2d 20 31 32 20 46 52 4f  4 ) / - - 12 FRO
f420: 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
f430: 2d 0d 0a 2d 31 31 0d 0a 0d 0a 6f 6e 6c 79 69 66  -..-11....onlyif
f440: 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
f450: 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
f460: 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
f470: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 34 37 0d 0a  sort label-347..
f480: 53 45 4c 45 43 54 20 2d 20 2d 20 35 35 20 44 49  SELECT - - 55 DI
f490: 56 20 2b 20 33 30 20 46 52 4f 4d 20 74 61 62 32  V + 30 FROM tab2
f4a0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
f4b0: 31 0d 0a 31 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69  1..1..1....skipi
f4c0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
f4d0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
f4e0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
f4f0: 33 34 37 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20  347..SELECT - - 
f500: 35 35 20 2f 20 2b 20 33 30 20 46 52 4f 4d 20 74  55 / + 30 FROM t
f510: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
f520: 2d 0d 0a 31 0d 0a 31 0d 0a 31 0d 0a 0d 0a 71 75  -..1..1..1....qu
f530: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
f540: 53 45 4c 45 43 54 20 63 6f 6c 31 20 2a 20 2d 20  SELECT col1 * - 
f550: 2b 20 28 20 2d 20 2b 20 36 33 20 29 20 41 53 20  + ( - + 63 ) AS 
f560: 63 6f 6c 30 2c 20 2d 20 31 31 20 2d 20 2b 20 2b  col0, - 11 - + +
f570: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
f580: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
f590: 54 20 2d 20 33 33 20 3d 20 2b 20 63 6f 6c 31 0d  T - 33 = + col1.
f5a0: 0a 2d 2d 2d 2d 0d 0a 32 39 36 31 0d 0a 2d 31 30  .----..2961..-10
f5b0: 32 0d 0a 33 31 35 0d 0a 2d 39 36 0d 0a 38 38 32  2..315..-96..882
f5c0: 0d 0a 2d 36 32 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-62....query I
f5d0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
f5e0: 20 63 6f 6c 31 20 2a 20 2b 20 2d 20 63 6f 6c 32   col1 * + - col2
f5f0: 20 2a 20 2b 20 38 38 20 41 53 20 63 6f 6c 30 20   * + 88 AS col0 
f600: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
f610: 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55  0 WHERE NOT ( NU
f620: 4c 4c 20 29 20 42 45 54 57 45 45 4e 20 28 20 4e  LL ) BETWEEN ( N
f630: 55 4c 4c 20 29 20 41 4e 44 20 4e 55 4c 4c 0d 0a  ULL ) AND NULL..
f640: 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
f650: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
f660: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
f670: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
f680: 2d 33 35 30 0d 0a 53 45 4c 45 43 54 20 2b 20 2b  -350..SELECT + +
f690: 20 4d 49 4e 28 20 41 4c 4c 20 2b 20 36 35 20 29   MIN( ALL + 65 )
f6a0: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
f6b0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36  AS cor0..----..6
f6c0: 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  5....skipif mysq
f6d0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
f6e0: 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
f6f0: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
f700: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
f710: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
f720: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
f730: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
f740: 65 6c 2d 33 35 30 0d 0a 53 45 4c 45 43 54 20 2b  el-350..SELECT +
f750: 20 2b 20 4d 49 4e 20 28 20 41 4c 4c 20 2b 20 36   + MIN ( ALL + 6
f760: 35 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  5 ) col0 FROM ta
f770: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
f780: 0d 0a 36 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..65....query I 
f790: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
f7a0: 2b 20 28 20 63 6f 6c 31 20 29 20 2a 20 2d 20 32  + ( col1 ) * - 2
f7b0: 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
f7c0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 32 30  or0..----..-1020
f7d0: 0d 0a 2d 31 33 34 30 0d 0a 2d 31 35 34 30 0d 0a  ..-1340..-1540..
f7e0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
f7f0: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
f800: 43 54 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c  CT + col2 AS col
f810: 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
f820: 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49  or0 WHERE NULL I
f830: 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 33  S NULL..----..23
f840: 0d 0a 34 30 0d 0a 35 38 0d 0a 0d 0a 71 75 65 72  ..40..58....quer
f850: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
f860: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 38  ECT DISTINCT + 8
f870: 34 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  4 AS col0 FROM t
f880: 61 62 30 20 63 6f 72 30 20 57 48 45 52 45 20 4e  ab0 cor0 WHERE N
f890: 4f 54 20 28 20 4e 55 4c 4c 20 29 20 49 53 20 4e  OT ( NULL ) IS N
f8a0: 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 38  OT NULL..----..8
f8b0: 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  4....query II ro
f8c0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
f8d0: 4c 20 2d 20 37 37 20 41 53 20 63 6f 6c 32 2c 20  L - 77 AS col2, 
f8e0: 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f  col2 AS col1 FRO
f8f0: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
f900: 2d 2d 2d 2d 0d 0a 2d 37 37 0d 0a 35 39 0d 0a 2d  ----..-77..59..-
f910: 37 37 0d 0a 36 38 0d 0a 2d 37 37 0d 0a 39 36 0d  77..68..-77..96.
f920: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
f930: 72 74 0d 0a 53 45 4c 45 43 54 20 37 38 20 2a 20  rt..SELECT 78 * 
f940: 2d 20 2d 20 32 31 20 41 53 20 63 6f 6c 32 20 46  - - 21 AS col2 F
f950: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
f960: 0d 0a 2d 2d 2d 2d 0d 0a 31 36 33 38 0d 0a 31 36  ..----..1638..16
f970: 33 38 0d 0a 31 36 33 38 0d 0a 0d 0a 71 75 65 72  38..1638....quer
f980: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
f990: 45 43 54 20 38 33 20 41 53 20 63 6f 6c 30 20 46  ECT 83 AS col0 F
f9a0: 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d  ROM tab2 cor0..-
f9b0: 2d 2d 2d 0d 0a 38 33 0d 0a 38 33 0d 0a 38 33 0d  ---..83..83..83.
f9c0: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
f9d0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
f9e0: 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   * FROM tab1 AS 
f9f0: 63 6f 72 30 20 57 48 45 52 45 20 38 30 20 2f 20  cor0 WHERE 80 / 
fa00: 2d 20 31 30 20 2a 20 2b 20 2b 20 63 6f 6c 32 20  - 10 * + + col2 
fa10: 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
fa20: 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
fa30: 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31  ing to c6c0a4111
fa40: 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65  b36d04dbc811a11e
fa50: 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79  4d54cad....query
fa60: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
fa70: 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f  CT DISTINCT - co
fa80: 6c 31 20 2a 20 2b 20 32 30 20 2a 20 2d 20 63 6f  l1 * + 20 * - co
fa90: 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l1 AS col0 FROM 
faa0: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 31 32  tab0..----..1312
fab0: 32 30 0d 0a 32 30 0d 0a 38 38 32 30 0d 0a 0d 0a  20..20..8820....
fac0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
fad0: 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
fae0: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
faf0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
fb00: 2d 33 35 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -359..SELECT ALL
fb10: 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 43 41 53 54   + col2 * - CAST
fb20: 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
fb30: 20 29 20 2a 20 2d 20 2b 20 63 6f 6c 30 20 2b 20   ) * - + col0 + 
fb40: 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  - col0 FROM tab2
fb50: 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
fb60: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  LL..NULL....skip
fb70: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
fb80: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
fb90: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
fba0: 2d 33 35 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -359..SELECT ALL
fbb0: 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 43 41 53 54   + col2 * - CAST
fbc0: 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
fbd0: 45 52 20 29 20 2a 20 2d 20 2b 20 63 6f 6c 30 20  ER ) * - + col0 
fbe0: 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  + - col0 FROM ta
fbf0: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b2..----..NULL..
fc00: 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  NULL..NULL....qu
fc10: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
fc20: 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
fc30: 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 63 6f  ab2 WHERE NOT co
fc40: 6c 30 20 2a 20 2d 20 2b 20 63 6f 6c 32 20 49 53  l0 * - + col2 IS
fc50: 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
fc60: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
fc70: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44  # CAST syntax: D
fc80: 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71  ECIMAL type: ..q
fc90: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
fca0: 61 62 65 6c 2d 33 36 31 0d 0a 53 45 4c 45 43 54  abel-361..SELECT
fcb0: 20 44 49 53 54 49 4e 43 54 20 2b 20 43 41 53 54   DISTINCT + CAST
fcc0: 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41  ( NULL AS DECIMA
fcd0: 4c 20 29 20 2a 20 2d 20 36 31 20 2a 20 2d 20 63  L ) * - 61 * - c
fce0: 6f 6c 32 20 2b 20 2d 20 33 30 20 46 52 4f 4d 20  ol2 + - 30 FROM 
fcf0: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab1..----..NULL
fd00: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
fd10: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
fd20: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
fd30: 72 74 20 6c 61 62 65 6c 2d 33 36 31 0d 0a 53 45  rt label-361..SE
fd40: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
fd50: 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52  CAST ( NULL AS R
fd60: 45 41 4c 20 29 20 2a 20 2d 20 36 31 20 2a 20 2d  EAL ) * - 61 * -
fd70: 20 63 6f 6c 32 20 2b 20 2d 20 33 30 20 46 52 4f   col2 + - 30 FRO
fd80: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab1..----..NU
fd90: 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  LL....onlyif mys
fda0: 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
fdb0: 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
fdc0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
fdd0: 20 6c 61 62 65 6c 2d 33 36 32 0d 0a 53 45 4c 45   label-362..SELE
fde0: 43 54 20 2b 20 43 41 53 54 28 20 2b 20 63 6f 6c  CT + CAST( + col
fdf0: 32 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20  2 AS SIGNED ) * 
fe00: 2d 20 63 6f 6c 30 20 2a 20 39 30 20 2b 20 2d 20  - col0 * 90 + - 
fe10: 2d 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 32 20  - col2 * - col2 
fe20: 2a 20 2d 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20  * - - col2 FROM 
fe30: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 37  tab2..----..-107
fe40: 33 38 37 0d 0a 2d 32 39 34 34 30 30 0d 0a 2d 35  387..-294400..-5
fe50: 38 36 36 31 32 0d 0a 0d 0a 73 6b 69 70 69 66 20  86612....skipif 
fe60: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
fe70: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
fe80: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 36  rowsort label-36
fe90: 32 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54  2..SELECT + CAST
fea0: 20 28 20 2b 20 63 6f 6c 32 20 41 53 20 49 4e 54   ( + col2 AS INT
feb0: 45 47 45 52 20 29 20 2a 20 2d 20 63 6f 6c 30 20  EGER ) * - col0 
fec0: 2a 20 39 30 20 2b 20 2d 20 2d 20 63 6f 6c 32 20  * 90 + - - col2 
fed0: 2a 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 2d 20 63  * - col2 * - - c
fee0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
fef0: 2d 2d 2d 0d 0a 2d 31 30 37 33 38 37 0d 0a 2d 32  ---..-107387..-2
ff00: 39 34 34 30 30 0d 0a 2d 35 38 36 36 31 32 0d 0a  94400..-586612..
ff10: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
ff20: 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
ff30: 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
ff40: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
ff50: 62 65 6c 2d 33 36 33 0d 0a 53 45 4c 45 43 54 20  bel-363..SELECT 
ff60: 63 6f 6c 32 20 2b 20 32 33 20 41 53 20 63 6f 6c  col2 + 23 AS col
ff70: 31 2c 20 2b 20 31 31 20 2b 20 2b 20 2d 20 32 32  1, + 11 + + - 22
ff80: 20 44 49 56 20 2d 20 2d 20 63 6f 6c 30 20 46 52   DIV - - col0 FR
ff90: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
ffa0: 0a 2d 2d 2d 2d 0d 0a 31 31 39 0d 0a 31 31 0d 0a  .----..119..11..
ffb0: 38 32 0d 0a 31 31 0d 0a 39 31 0d 0a 31 31 0d 0a  82..11..91..11..
ffc0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
ffd0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
ffe0: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
fff0: 74 20 6c 61 62 65 6c 2d 33 36 33 0d 0a 53 45 4c  t label-363..SEL
10000 45 43 54 20 63 6f 6c 32 20 2b 20 32 33 20 41 53  ECT col2 + 23 AS
10010 20 63 6f 6c 31 2c 20 2b 20 31 31 20 2b 20 2b 20   col1, + 11 + + 
10020 2d 20 32 32 20 2f 20 2d 20 2d 20 63 6f 6c 30 20  - 22 / - - col0 
10030 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
10040 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 39 0d 0a 31 31  0..----..119..11
10050 0d 0a 38 32 0d 0a 31 31 0d 0a 39 31 0d 0a 31 31  ..82..11..91..11
10060 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
10070 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
10080 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
10090 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 36 34  owsort label-364
100a0 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 49 4e 28 20  ..SELECT + MIN( 
100b0 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 32  col1 ) FROM tab2
100c0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d   cor0..----..51.
100d0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
100e0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
100f0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
10100 74 20 6c 61 62 65 6c 2d 33 36 34 0d 0a 53 45 4c  t label-364..SEL
10110 45 43 54 20 2b 20 4d 49 4e 20 28 20 63 6f 6c 31  ECT + MIN ( col1
10120 20 29 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72   ) FROM tab2 cor
10130 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 0d 0a 71  0..----..51....q
10140 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
10150 53 45 4c 45 43 54 20 2b 20 28 20 2d 20 33 32 20  SELECT + ( - 32 
10160 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
10170 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 32 0d 0a  ab1..----..-32..
10180 2d 33 32 0d 0a 2d 33 32 0d 0a 0d 0a 71 75 65 72  -32..-32....quer
10190 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
101a0 45 43 54 20 41 4c 4c 20 33 38 20 2b 20 2d 20 63  ECT ALL 38 + - c
101b0 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol0 AS col1 FROM
101c0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33   tab1..----..-13
101d0 0d 0a 2d 34 37 0d 0a 2d 35 33 0d 0a 0d 0a 6f 6e  ..-47..-53....on
101e0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
101f0 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41  T syntax: DECIMA
10200 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  L type: ..query 
10210 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
10220 33 36 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  367..SELECT ALL 
10230 2d 20 2b 20 63 6f 6c 30 20 2d 20 2b 20 63 6f 6c  - + col0 - + col
10240 32 20 2b 20 2d 20 2d 20 43 41 53 54 28 20 4e 55  2 + - - CAST( NU
10250 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20  LL AS DECIMAL ) 
10260 2a 20 2d 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 63  * - - col2 * + c
10270 6f 6c 31 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 46  ol1 * - - col0 F
10280 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
10290 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
102a0 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  LL..NULL....skip
102b0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
102c0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
102d0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
102e0 2d 33 36 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -367..SELECT ALL
102f0 20 2d 20 2b 20 63 6f 6c 30 20 2d 20 2b 20 63 6f   - + col0 - + co
10300 6c 32 20 2b 20 2d 20 2d 20 43 41 53 54 20 28 20  l2 + - - CAST ( 
10310 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 2a  NULL AS REAL ) *
10320 20 2d 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 63 6f   - - col2 * + co
10330 6c 31 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 46 52  l1 * - - col0 FR
10340 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
10350 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
10360 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69  L..NULL....onlyi
10370 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
10380 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
10390 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
103a0 62 65 6c 2d 33 36 38 0d 0a 53 45 4c 45 43 54 20  bel-368..SELECT 
103b0 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 43 4f 55  DISTINCT + - COU
103c0 4e 54 28 20 2a 20 29 20 2b 20 2d 20 43 4f 55 4e  NT( * ) + - COUN
103d0 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46  T( * ) AS col1 F
103e0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
103f0 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 0d 0a 0d 0a 73 6b  ..----..-6....sk
10400 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
10410 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
10420 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
10430 65 6c 2d 33 36 38 0d 0a 53 45 4c 45 43 54 20 44  el-368..SELECT D
10440 49 53 54 49 4e 43 54 20 2b 20 2d 20 43 4f 55 4e  ISTINCT + - COUN
10450 54 20 28 20 2a 20 29 20 2b 20 2d 20 43 4f 55 4e  T ( * ) + - COUN
10460 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20  T ( * ) AS col1 
10470 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
10480 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 0d 0a 0d 0a 73  0..----..-6....s
10490 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
104a0 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
104b0 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
104c0 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
104d0 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49  olumns..query II
104e0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
104f0 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31   DISTINCT - col1
10500 20 2a 20 63 6f 6c 31 20 2d 20 2d 20 2b 20 63 6f   * col1 - - + co
10510 6c 32 20 63 6f 6c 32 2c 20 63 6f 6c 30 20 41 53  l2 col2, col0 AS
10520 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
10530 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
10540 32 35 37 38 0d 0a 34 36 0d 0a 2d 34 34 33 31 0d  2578..46..-4431.
10550 0a 37 35 0d 0a 2d 35 38 38 39 0d 0a 36 34 0d 0a  .75..-5889..64..
10560 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
10570 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
10580 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
10590 73 6f 72 74 20 6c 61 62 65 6c 2d 33 37 30 0d 0a  sort label-370..
105a0 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54  SELECT ALL COUNT
105b0 28 20 2a 20 29 20 2a 20 2d 20 31 37 20 41 53 20  ( * ) * - 17 AS 
105c0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 63  col0 FROM tab1 c
105d0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a  or0..----..-51..
105e0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
105f0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
10600 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
10610 20 6c 61 62 65 6c 2d 33 37 30 0d 0a 53 45 4c 45   label-370..SELE
10620 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20 28 20 2a  CT ALL COUNT ( *
10630 20 29 20 2a 20 2d 20 31 37 20 41 53 20 63 6f 6c   ) * - 17 AS col
10640 30 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  0 FROM tab1 cor0
10650 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 0d 0a 6f  ..----..-51....o
10660 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
10670 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
10680 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
10690 74 20 6c 61 62 65 6c 2d 33 37 31 0d 0a 53 45 4c  t label-371..SEL
106a0 45 43 54 20 44 49 53 54 49 4e 43 54 20 4d 49 4e  ECT DISTINCT MIN
106b0 28 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 29 20 41  ( ALL - col1 ) A
106c0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
106d0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
106e0 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ULL IS NOT NULL.
106f0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
10700 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
10710 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
10720 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
10730 62 65 6c 2d 33 37 31 0d 0a 53 45 4c 45 43 54 20  bel-371..SELECT 
10740 44 49 53 54 49 4e 43 54 20 4d 49 4e 20 28 20 41  DISTINCT MIN ( A
10750 4c 4c 20 2d 20 63 6f 6c 31 20 29 20 41 53 20 63  LL - col1 ) AS c
10760 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
10770 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c   cor0 WHERE NULL
10780 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
10790 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72  --..NULL....quer
107a0 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
107b0 4c 45 43 54 20 41 4c 4c 20 38 32 2c 20 38 35 20  LECT ALL 82, 85 
107c0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
107d0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
107e0 0a 38 32 0d 0a 38 35 0d 0a 38 32 0d 0a 38 35 0d  .82..85..82..85.
107f0 0a 38 32 0d 0a 38 35 0d 0a 0d 0a 71 75 65 72 79  .82..85....query
10800 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
10810 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 28 20  CT DISTINCT + ( 
10820 2d 20 63 6f 6c 32 20 29 20 2d 20 2b 20 63 6f 6c  - col2 ) - + col
10830 31 20 2a 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  1 * + col2 AS co
10840 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l2 FROM tab0..--
10850 2d 2d 0d 0a 2d 31 39 38 0d 0a 2d 32 32 30 0d 0a  --..-198..-220..
10860 2d 33 38 35 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -3854....onlyif 
10870 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
10880 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
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 37 34 0d 0a 53  ort label-374..S
108b0 45 4c 45 43 54 20 41 4c 4c 20 34 31 20 2a 20 2b  ELECT ALL 41 * +
108c0 20 33 31 20 2d 20 2d 20 2d 20 36 38 20 2b 20 2b   31 - - - 68 + +
108d0 20 2b 20 38 36 20 2a 20 2b 20 36 35 20 2b 20 2d   + 86 * + 65 + -
108e0 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
108f0 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62  IGNED ) FROM tab
10900 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  2..----..NULL..N
10910 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ULL..NULL....ski
10920 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
10930 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
10940 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
10950 6c 2d 33 37 34 0d 0a 53 45 4c 45 43 54 20 41 4c  l-374..SELECT AL
10960 4c 20 34 31 20 2a 20 2b 20 33 31 20 2d 20 2d 20  L 41 * + 31 - - 
10970 2d 20 36 38 20 2b 20 2b 20 2b 20 38 36 20 2a 20  - 68 + + + 86 * 
10980 2b 20 36 35 20 2b 20 2d 20 43 41 53 54 20 28 20  + 65 + - CAST ( 
10990 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
109a0 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  ) FROM tab2..---
109b0 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
109c0 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  ULL....query II 
109d0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
109e0 2b 20 63 6f 6c 31 2c 20 2b 20 36 31 20 2a 20 63  + col1, + 61 * c
109f0 6f 6c 30 20 2b 20 2b 20 37 39 20 41 53 20 63 6f  ol0 + + 79 AS co
10a00 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
10a10 2d 2d 0d 0a 31 0d 0a 35 39 39 36 0d 0a 32 31 0d  --..1..5996..21.
10a20 0a 35 33 38 36 0d 0a 38 31 0d 0a 39 39 34 0d 0a  .5386..81..994..
10a30 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
10a40 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
10a50 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
10a60 54 20 32 31 20 2a 20 2b 20 28 20 2d 20 2b 20 63  T 21 * + ( - + c
10a70 6f 6c 31 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c  ol1 ) IS NOT NUL
10a80 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
10a90 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
10aa0 43 54 20 41 4c 4c 20 63 6f 6c 32 20 2a 20 2b 20  CT ALL col2 * + 
10ab0 2d 20 33 33 20 46 52 4f 4d 20 74 61 62 32 0d 0a  - 33 FROM tab2..
10ac0 2d 2d 2d 2d 0d 0a 2d 31 33 32 30 0d 0a 2d 31 39  ----..-1320..-19
10ad0 31 34 0d 0a 2d 37 35 39 0d 0a 0d 0a 71 75 65 72  14..-759....quer
10ae0 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
10af0 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30 2c 20 2b  LECT ALL col0, +
10b00 20 33 38 20 2a 20 2b 20 63 6f 6c 31 20 41 53 20   38 * + col1 AS 
10b10 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
10b20 2d 2d 2d 2d 0d 0a 31 35 0d 0a 33 30 37 38 0d 0a  ----..15..3078..
10b30 38 37 0d 0a 37 39 38 0d 0a 39 37 0d 0a 33 38 0d  87..798..97..38.
10b40 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
10b50 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
10b60 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
10b70 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
10b80 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
10b90 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
10ba0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 28  ECT DISTINCT + (
10bb0 20 2b 20 63 6f 6c 31 20 29 20 63 6f 6c 32 20 46   + col1 ) col2 F
10bc0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
10bd0 31 34 0d 0a 34 37 0d 0a 35 0d 0a 0d 0a 71 75 65  14..47..5....que
10be0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
10bf0 4c 45 43 54 20 36 20 46 52 4f 4d 20 74 61 62 30  LECT 6 FROM tab0
10c00 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2b 20 63   WHERE NOT ( + c
10c10 6f 6c 32 20 2a 20 2d 20 2b 20 63 6f 6c 30 20 2d  ol2 * - + col0 -
10c20 20 63 6f 6c 31 20 2b 20 2d 20 2b 20 63 6f 6c 31   col1 + - + col1
10c30 20 2b 20 2b 20 63 6f 6c 32 20 29 20 49 53 20 4e   + + col2 ) IS N
10c40 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 36 0d 0a 36 0d  ULL..----..6..6.
10c50 0a 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .6....query I ro
10c60 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
10c70 63 6f 6c 30 20 2a 20 2b 20 2b 20 35 33 20 2a 20  col0 * + + 53 * 
10c80 2b 20 31 39 20 41 53 20 63 6f 6c 32 20 46 52 4f  + 19 AS col2 FRO
10c90 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35  M tab0..----..15
10ca0 31 30 35 0d 0a 38 37 36 30 39 0d 0a 39 37 36 37  105..87609..9767
10cb0 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  9....query II ro
10cc0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
10cd0 4c 20 28 20 2b 20 38 20 29 2c 20 63 6f 6c 32 20  L ( + 8 ), col2 
10ce0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
10cf0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
10d00 0a 38 0d 0a 32 33 0d 0a 38 0d 0a 34 30 0d 0a 38  .8..23..8..40..8
10d10 0d 0a 35 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..58....query I 
10d20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
10d30 2d 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  - + col1 FROM ta
10d40 62 30 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  b0 cor0 WHERE NO
10d50 54 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c  T - col2 * - col
10d60 32 20 2a 20 2b 20 2b 20 36 34 20 2b 20 2b 20 2b  2 * + + 64 + + +
10d70 20 63 6f 6c 31 20 3c 20 63 6f 6c 32 0d 0a 2d 2d   col1 < col2..--
10d80 2d 2d 0d 0a 2d 31 0d 0a 2d 32 31 0d 0a 2d 38 31  --..-1..-21..-81
10d90 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
10da0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
10db0 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53  L * FROM tab0 AS
10dc0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
10dd0 2b 20 39 30 20 2f 20 2d 20 63 6f 6c 32 20 49 53  + 90 / - col2 IS
10de0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   NULL..----..9 v
10df0 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
10e00 20 63 34 62 34 32 37 36 35 64 66 66 39 34 65 61   c4b42765dff94ea
10e10 61 61 34 36 30 34 30 65 35 33 37 66 62 34 33 62  aa46040e537fb43b
10e20 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  7....skipif post
10e30 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
10e40 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
10e50 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
10e60 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
10e70 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
10e80 45 4c 45 43 54 20 2b 20 2d 20 36 38 20 2a 20 2d  ELECT + - 68 * -
10e90 20 32 31 20 2a 20 2b 20 34 38 20 2a 20 2b 20 36   21 * + 48 * + 6
10ea0 20 2b 20 2b 20 38 30 20 63 6f 6c 31 20 46 52 4f   + + 80 col1 FRO
10eb0 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab1 cor0..---
10ec0 2d 0d 0a 34 31 31 33 34 34 0d 0a 34 31 31 33 34  -..411344..41134
10ed0 34 0d 0a 34 31 31 33 34 34 0d 0a 0d 0a 71 75 65  4..411344....que
10ee0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
10ef0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
10f00 2b 20 63 6f 6c 32 20 2a 20 33 38 20 41 53 20 63  + col2 * 38 AS c
10f10 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol2 FROM tab2 co
10f20 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 32 30 0d  r0..----..-1520.
10f30 0a 2d 32 32 30 34 0d 0a 2d 38 37 34 0d 0a 0d 0a  .-2204..-874....
10f40 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
10f50 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
10f60 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
10f70 30 20 57 48 45 52 45 20 2b 20 32 32 20 3c 20 2b  0 WHERE + 22 < +
10f80 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 39 31 0d   col1..----..91.
10f90 0a 34 37 0d 0a 36 38 0d 0a 0d 0a 6f 6e 6c 79 69  .47..68....onlyi
10fa0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
10fb0 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20  ate syntax: DIV 
10fc0 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
10fd0 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
10fe0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 38  rowsort label-38
10ff0 38 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 43 4f  8..SELECT + - CO
11000 55 4e 54 28 20 2a 20 29 20 2b 20 2b 20 2b 20 43  UNT( * ) + + + C
11010 4f 55 4e 54 28 20 2a 20 29 20 44 49 56 20 2b 20  OUNT( * ) DIV + 
11020 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f  COUNT( * ) AS co
11030 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
11040 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28  cor0 WHERE NOT (
11050 20 4e 55 4c 4c 20 29 20 49 53 20 4e 4f 54 20 4e   NULL ) IS NOT N
11060 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 0d  ULL..----..-2...
11070 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
11080 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
11090 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
110a0 6c 61 62 65 6c 2d 33 38 38 0d 0a 53 45 4c 45 43  label-388..SELEC
110b0 54 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  T + - COUNT ( * 
110c0 29 20 2b 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20  ) + + + COUNT ( 
110d0 2a 20 29 20 2f 20 2b 20 43 4f 55 4e 54 20 28 20  * ) / + COUNT ( 
110e0 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  * ) AS col2 FROM
110f0 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
11100 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29  ERE NOT ( NULL )
11110 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
11120 2d 2d 0d 0a 2d 32 0d 0a 0d 0a 6f 6e 6c 79 69 66  --..-2....onlyif
11130 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
11140 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
11150 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
11160 73 6f 72 74 20 6c 61 62 65 6c 2d 33 38 39 0d 0a  sort label-389..
11170 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 41 53  SELECT ALL - CAS
11180 54 28 20 2b 20 2d 20 63 6f 6c 31 20 41 53 20 53  T( + - col1 AS S
11190 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62  IGNED ) FROM tab
111a0 32 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 36 37 0d  2..----..51..67.
111b0 0a 37 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .77....skipif my
111c0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
111d0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
111e0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 38 39 0d  wsort label-389.
111f0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 41  .SELECT ALL - CA
11200 53 54 20 28 20 2b 20 2d 20 63 6f 6c 31 20 41 53  ST ( + - col1 AS
11210 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20   INTEGER ) FROM 
11220 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a  tab2..----..51..
11230 36 37 0d 0a 37 37 0d 0a 0d 0a 71 75 65 72 79 20  67..77....query 
11240 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
11250 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  T DISTINCT - col
11260 31 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  1 FROM tab0 WHER
11270 45 20 4e 4f 54 20 4e 55 4c 4c 20 42 45 54 57 45  E NOT NULL BETWE
11280 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2b 20 28 20  EN NULL AND + ( 
11290 2d 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a  - col0 )..----..
112a0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
112b0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
112c0 2d 20 36 33 20 2a 20 63 6f 6c 32 20 41 53 20 63  - 63 * col2 AS c
112d0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
112e0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 39   cor0..----..-29
112f0 36 31 0d 0a 2d 36 32 33 37 0d 0a 2d 36 33 30 0d  61..-6237..-630.
11300 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
11310 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61  # CAST syntax: a
11320 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
11330 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 44 49   SIGNED type: DI
11340 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
11350 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
11360 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
11370 33 39 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  392..SELECT ALL 
11380 2d 20 2d 20 43 41 53 54 28 20 2d 20 2b 20 34 20  - - CAST( - + 4 
11390 41 53 20 53 49 47 4e 45 44 20 29 20 44 49 56 20  AS SIGNED ) DIV 
113a0 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f  COUNT( * ) AS co
113b0 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l0 FROM tab2 AS 
113c0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a  cor0..----..-1..
113d0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
113e0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
113f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
11400 20 6c 61 62 65 6c 2d 33 39 32 0d 0a 53 45 4c 45   label-392..SELE
11410 43 54 20 41 4c 4c 20 2d 20 2d 20 43 41 53 54 20  CT ALL - - CAST 
11420 28 20 2d 20 2b 20 34 20 41 53 20 49 4e 54 45 47  ( - + 4 AS INTEG
11430 45 52 20 29 20 2f 20 43 4f 55 4e 54 20 28 20 2a  ER ) / COUNT ( *
11440 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
11450 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
11460 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 71 75 65 72 79 20  --..-1....query 
11470 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
11480 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ECT * FROM tab2 
11490 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
114a0 54 20 63 6f 6c 30 20 2a 20 63 6f 6c 32 20 2d 20  T col0 * col2 - 
114b0 32 32 20 2b 20 2d 20 35 32 20 4e 4f 54 20 49 4e  22 + - 52 NOT IN
114c0 20 28 20 2d 20 2b 20 30 2c 20 63 6f 6c 30 20 2d   ( - + 0, col0 -
114d0 20 2d 20 63 6f 6c 30 2c 20 2d 20 35 31 20 29 0d   - col0, - 51 ).
114e0 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
114f0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
11500 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
11510 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
11520 6c 2d 33 39 34 0d 0a 53 45 4c 45 43 54 20 44 49  l-394..SELECT DI
11530 53 54 49 4e 43 54 20 2d 20 2b 20 4d 49 4e 28 20  STINCT - + MIN( 
11540 41 4c 4c 20 2b 20 63 6f 6c 30 20 29 20 46 52 4f  ALL + col0 ) FRO
11550 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
11560 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a 0d 0a 73 6b 69  ----..-46....ski
11570 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
11580 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
11590 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
115a0 6c 2d 33 39 34 0d 0a 53 45 4c 45 43 54 20 44 49  l-394..SELECT DI
115b0 53 54 49 4e 43 54 20 2d 20 2b 20 4d 49 4e 20 28  STINCT - + MIN (
115c0 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 29 20 46 52   ALL + col0 ) FR
115d0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
115e0 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a 0d 0a 6f 6e  .----..-46....on
115f0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
11600 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
11610 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
11620 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
11630 39 35 0d 0a 53 45 4c 45 43 54 20 28 20 2d 20 39  95..SELECT ( - 9
11640 32 20 29 20 44 49 56 20 2d 20 63 6f 6c 30 20 41  2 ) DIV - col0 A
11650 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
11660 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
11670 31 0d 0a 31 0d 0a 32 0d 0a 0d 0a 73 6b 69 70 69  1..1..2....skipi
11680 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
11690 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
116a0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
116b0 33 39 35 0d 0a 53 45 4c 45 43 54 20 28 20 2d 20  395..SELECT ( - 
116c0 39 32 20 29 20 2f 20 2d 20 63 6f 6c 30 20 41 53  92 ) / - col0 AS
116d0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
116e0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
116f0 0d 0a 31 0d 0a 32 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..1..2....onlyif
11700 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
11710 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
11720 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
11730 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39 36 0d 0a  sort label-396..
11740 53 45 4c 45 43 54 20 2b 20 36 30 20 2a 20 43 41  SELECT + 60 * CA
11750 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
11760 45 44 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  ED ) AS col2 FRO
11770 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
11780 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
11790 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
117a0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
117b0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
117c0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
117d0 39 36 0d 0a 53 45 4c 45 43 54 20 2b 20 36 30 20  96..SELECT + 60 
117e0 2a 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  * CAST ( NULL AS
117f0 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f   INTEGER ) AS co
11800 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
11810 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
11820 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
11830 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
11840 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
11850 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
11860 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
11870 2d 33 39 37 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  -397..SELECT col
11880 32 20 44 49 56 20 2d 20 39 33 20 41 53 20 63 6f  2 DIV - 93 AS co
11890 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
118a0 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73  --..0..0..0....s
118b0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
118c0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
118d0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
118e0 62 65 6c 2d 33 39 37 0d 0a 53 45 4c 45 43 54 20  bel-397..SELECT 
118f0 63 6f 6c 32 20 2f 20 2d 20 39 33 20 41 53 20 63  col2 / - 93 AS c
11900 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
11910 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a  ---..0..0..0....
11920 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
11930 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
11940 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
11950 72 74 20 6c 61 62 65 6c 2d 33 39 38 0d 0a 53 45  rt label-398..SE
11960 4c 45 43 54 20 2b 20 4d 49 4e 28 20 39 35 20 29  LECT + MIN( 95 )
11970 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
11980 0d 0a 39 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..95....skipif m
11990 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
119a0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
119b0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39 38  owsort label-398
119c0 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 49 4e 20 28  ..SELECT + MIN (
119d0 20 39 35 20 29 20 46 52 4f 4d 20 74 61 62 32 0d   95 ) FROM tab2.
119e0 0a 2d 2d 2d 2d 0d 0a 39 35 0d 0a 0d 0a 6f 6e 6c  .----..95....onl
119f0 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
11a00 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
11a10 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
11a20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39  rowsort label-39
11a30 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  9..SELECT DISTIN
11a40 43 54 20 63 6f 6c 31 20 44 49 56 20 2d 20 33 36  CT col1 DIV - 36
11a50 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
11a60 0d 0a 2d 31 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  ..-1..0....skipi
11a70 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
11a80 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
11a90 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
11aa0 33 39 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  399..SELECT DIST
11ab0 49 4e 43 54 20 63 6f 6c 31 20 2f 20 2d 20 33 36  INCT col1 / - 36
11ac0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
11ad0 0d 0a 2d 31 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69  ..-1..0....onlyi
11ae0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
11af0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
11b00 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
11b10 62 65 6c 2d 34 30 30 0d 0a 53 45 4c 45 43 54 20  bel-400..SELECT 
11b20 44 49 53 54 49 4e 43 54 20 31 35 20 2b 20 43 4f  DISTINCT 15 + CO
11b30 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
11b40 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 38 0d 0a 0d 0a  b0..----..18....
11b50 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
11b60 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
11b70 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
11b80 61 62 65 6c 2d 34 30 30 0d 0a 53 45 4c 45 43 54  abel-400..SELECT
11b90 20 44 49 53 54 49 4e 43 54 20 31 35 20 2b 20 43   DISTINCT 15 + C
11ba0 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20  OUNT ( * ) FROM 
11bb0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 38 0d 0a  tab0..----..18..
11bc0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
11bd0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
11be0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
11bf0 73 6f 72 74 20 6c 61 62 65 6c 2d 34 30 31 0d 0a  sort label-401..
11c00 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a 20  SELECT COUNT( * 
11c10 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
11c20 61 62 32 20 57 48 45 52 45 20 4e 55 4c 4c 20 49  ab2 WHERE NULL I
11c30 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  S NULL..----..3.
11c40 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
11c50 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
11c60 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
11c70 74 20 6c 61 62 65 6c 2d 34 30 31 0d 0a 53 45 4c  t label-401..SEL
11c80 45 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ECT COUNT ( * ) 
11c90 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
11ca0 32 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20  2 WHERE NULL IS 
11cb0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d  NULL..----..3...
11cc0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
11cd0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63  ..SELECT ALL - c
11ce0 6f 6c 32 20 2b 20 2b 20 2d 20 39 32 20 46 52 4f  ol2 + + - 92 FRO
11cf0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab2..----..-1
11d00 31 35 0d 0a 2d 31 33 32 0d 0a 2d 31 35 30 0d 0a  15..-132..-150..
11d10 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
11d20 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
11d30 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  INCT * FROM tab2
11d40 20 57 48 45 52 45 20 2d 20 63 6f 6c 30 20 3d 20   WHERE - col0 = 
11d50 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a  ( NULL )..----..
11d60 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
11d70 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
11d80 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 2d 20  OM tab1 WHERE - 
11d90 2b 20 32 34 20 3d 20 2b 20 2b 20 63 6f 6c 31 20  + 24 = + + col1 
11da0 2b 20 2b 20 2b 20 32 33 0d 0a 2d 2d 2d 2d 0d 0a  + + + 23..----..
11db0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
11dc0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
11dd0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
11de0 73 6f 72 74 20 6c 61 62 65 6c 2d 34 30 35 0d 0a  sort label-405..
11df0 53 45 4c 45 43 54 20 4d 49 4e 28 20 34 37 20 29  SELECT MIN( 47 )
11e00 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
11e10 0d 0a 34 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..47....skipif m
11e20 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
11e30 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
11e40 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 30 35  owsort label-405
11e50 0d 0a 53 45 4c 45 43 54 20 4d 49 4e 20 28 20 34  ..SELECT MIN ( 4
11e60 37 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  7 ) FROM tab0..-
11e70 2d 2d 2d 0d 0a 34 37 0d 0a 0d 0a 71 75 65 72 79  ---..47....query
11e80 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
11e90 43 54 20 2b 20 2d 20 63 6f 6c 30 20 2b 20 2d 20  CT + - col0 + - 
11ea0 2b 20 35 31 20 41 53 20 63 6f 6c 30 20 46 52 4f  + 51 AS col0 FRO
11eb0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
11ec0 2d 2d 2d 2d 0d 0a 2d 31 33 38 0d 0a 2d 31 34 38  ----..-138..-148
11ed0 0d 0a 2d 36 36 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-66....query I
11ee0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
11ef0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57  CT * FROM tab1 W
11f00 48 45 52 45 20 4e 55 4c 4c 20 3c 20 2d 20 2d 20  HERE NULL < - - 
11f10 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  col2..----....on
11f20 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
11f30 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
11f40 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
11f50 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
11f60 30 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  08..SELECT DISTI
11f70 4e 43 54 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  NCT CAST( NULL A
11f80 53 20 53 49 47 4e 45 44 20 29 20 2d 20 63 6f 6c  S SIGNED ) - col
11f90 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
11fa0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
11fb0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
11fc0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
11fd0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
11fe0 74 20 6c 61 62 65 6c 2d 34 30 38 0d 0a 53 45 4c  t label-408..SEL
11ff0 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 41 53  ECT DISTINCT CAS
12000 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
12010 47 45 52 20 29 20 2d 20 63 6f 6c 30 20 46 52 4f  GER ) - col0 FRO
12020 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
12030 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  ----..NULL....qu
12040 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
12050 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 31  ELECT ALL - col1
12060 20 2d 20 2d 20 2b 20 63 6f 6c 32 20 2d 20 63 6f   - - + col2 - co
12070 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l1 AS col2 FROM 
12080 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
12090 2d 2d 0d 0a 2d 31 31 35 0d 0a 2d 33 32 0d 0a 39  --..-115..-32..9
120a0 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  7....query I row
120b0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
120c0 20 63 6f 6c 31 20 2d 20 63 6f 6c 30 20 2a 20 2b   col1 - col0 * +
120d0 20 2b 20 30 20 2a 20 2b 20 63 6f 6c 31 20 46 52   + 0 * + col1 FR
120e0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
120f0 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 32 31 0d 0a 38 31  .----..1..21..81
12100 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
12110 6f 72 74 0d 0a 53 45 4c 45 43 54 20 36 30 20 41  ort..SELECT 60 A
12120 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
12130 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 63   AS cor0 WHERE c
12140 6f 6c 32 20 2d 20 28 20 33 39 20 29 20 42 45 54  ol2 - ( 39 ) BET
12150 57 45 45 4e 20 28 20 2d 20 63 6f 6c 31 20 2b 20  WEEN ( - col1 + 
12160 2d 20 63 6f 6c 30 20 29 20 41 4e 44 20 28 20 4e  - col0 ) AND ( N
12170 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71  ULL )..----....q
12180 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
12190 53 45 4c 45 43 54 20 35 35 20 2d 20 2b 20 34 32  SELECT 55 - + 42
121a0 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   + col0 FROM tab
121b0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
121c0 0a 31 30 30 0d 0a 31 31 30 0d 0a 32 38 0d 0a 0d  .100..110..28...
121d0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
121e0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
121f0 54 20 2b 20 36 36 20 2d 20 63 6f 6c 32 20 2b 20  T + 66 - col2 + 
12200 31 34 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  14 FROM tab2 AS 
12210 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 32 0d 0a  cor0..----..22..
12220 34 30 0d 0a 35 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  40..57....onlyif
12230 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
12240 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
12250 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
12260 65 6c 2d 34 31 34 0d 0a 53 45 4c 45 43 54 20 2b  el-414..SELECT +
12270 20 4d 41 58 28 20 2b 20 37 31 20 29 20 41 53 20   MAX( + 71 ) AS 
12280 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
12290 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 31  S cor0..----..71
122a0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
122b0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
122c0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
122d0 72 74 20 6c 61 62 65 6c 2d 34 31 34 0d 0a 53 45  rt label-414..SE
122e0 4c 45 43 54 20 2b 20 4d 41 58 20 28 20 2b 20 37  LECT + MAX ( + 7
122f0 31 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  1 ) AS col0 FROM
12300 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
12310 2d 2d 2d 0d 0a 37 31 0d 0a 0d 0a 71 75 65 72 79  ---..71....query
12320 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
12330 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  LECT * FROM tab2
12340 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
12350 35 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  50 IS NULL..----
12360 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
12370 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33  ng to 75c998aa53
12380 61 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36  ac83218cbf2feb96
12390 32 64 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20  2d0a49....query 
123a0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
123b0 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  T DISTINCT + col
123c0 32 20 2a 20 2d 20 2d 20 34 35 20 46 52 4f 4d 20  2 * - - 45 FROM 
123d0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 36 35 35  tab1..----..2655
123e0 0d 0a 33 30 36 30 0d 0a 34 33 32 30 0d 0a 0d 0a  ..3060..4320....
123f0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
12400 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
12410 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
12420 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
12430 2d 34 31 37 0d 0a 53 45 4c 45 43 54 20 2d 20 28  -417..SELECT - (
12440 20 2d 20 2d 20 43 41 53 54 28 20 2b 20 2b 20 41   - - CAST( + + A
12450 56 47 20 28 20 41 4c 4c 20 2d 20 63 6f 6c 31 20  VG ( ALL - col1 
12460 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20  ) AS SIGNED ) ) 
12470 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
12480 30 0d 0a 2d 2d 2d 2d 0d 0a 33 34 0d 0a 0d 0a 73  0..----..34....s
12490 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
124a0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
124b0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
124c0 62 65 6c 2d 34 31 37 0d 0a 53 45 4c 45 43 54 20  bel-417..SELECT 
124d0 2d 20 28 20 2d 20 2d 20 43 41 53 54 20 28 20 2b  - ( - - CAST ( +
124e0 20 2b 20 41 56 47 20 28 20 41 4c 4c 20 2d 20 63   + AVG ( ALL - c
124f0 6f 6c 31 20 29 20 41 53 20 49 4e 54 45 47 45 52  ol1 ) AS INTEGER
12500 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   ) ) AS col1 FRO
12510 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 34  M tab0..----..34
12520 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
12530 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
12540 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
12550 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 31 38  owsort label-418
12560 0d 0a 53 45 4c 45 43 54 20 2d 20 4d 49 4e 28 20  ..SELECT - MIN( 
12570 41 4c 4c 20 2d 20 33 36 20 29 20 46 52 4f 4d 20  ALL - 36 ) FROM 
12580 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 36 0d 0a  tab1..----..36..
12590 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
125a0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
125b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
125c0 20 6c 61 62 65 6c 2d 34 31 38 0d 0a 53 45 4c 45   label-418..SELE
125d0 43 54 20 2d 20 4d 49 4e 20 28 20 41 4c 4c 20 2d  CT - MIN ( ALL -
125e0 20 33 36 20 29 20 46 52 4f 4d 20 74 61 62 31 0d   36 ) FROM tab1.
125f0 0a 2d 2d 2d 2d 0d 0a 33 36 0d 0a 0d 0a 6f 6e 6c  .----..36....onl
12600 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
12610 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
12620 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
12630 6c 61 62 65 6c 2d 34 31 39 0d 0a 53 45 4c 45 43  label-419..SELEC
12640 54 20 41 4c 4c 20 2b 20 53 55 4d 28 20 41 4c 4c  T ALL + SUM( ALL
12650 20 2b 20 33 20 29 20 46 52 4f 4d 20 74 61 62 32   + 3 ) FROM tab2
12660 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 73 6b 69  ..----..9....ski
12670 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
12680 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
12690 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
126a0 6c 2d 34 31 39 0d 0a 53 45 4c 45 43 54 20 41 4c  l-419..SELECT AL
126b0 4c 20 2b 20 53 55 4d 20 28 20 41 4c 4c 20 2b 20  L + SUM ( ALL + 
126c0 33 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  3 ) FROM tab2..-
126d0 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 71 75 65 72 79 20  ---..9....query 
126e0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
126f0 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  T DISTINCT + col
12700 31 20 2a 20 2b 20 36 38 20 46 52 4f 4d 20 74 61  1 * + 68 FROM ta
12710 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 31 39 36 0d 0a  b1..----..3196..
12720 33 34 30 0d 0a 39 35 32 0d 0a 0d 0a 6f 6e 6c 79  340..952....only
12730 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
12740 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56  gate syntax: DIV
12750 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
12760 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
12770 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
12780 32 31 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55  21..SELECT - COU
12790 4e 54 28 20 2a 20 29 20 44 49 56 20 2d 20 4d 41  NT( * ) DIV - MA
127a0 58 28 20 41 4c 4c 20 2d 20 2d 20 63 6f 6c 30 20  X( ALL - - col0 
127b0 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  ) FROM tab2..---
127c0 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..0....skipif m
127d0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
127e0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
127f0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 32 31  owsort label-421
12800 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54  ..SELECT - COUNT
12810 20 28 20 2a 20 29 20 2f 20 2d 20 4d 41 58 20 28   ( * ) / - MAX (
12820 20 41 4c 4c 20 2d 20 2d 20 63 6f 6c 30 20 29 20   ALL - - col0 ) 
12830 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
12840 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .0....onlyif mys
12850 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
12860 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
12870 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
12880 32 32 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 43  22..SELECT + - C
12890 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2d 20 32 38  OUNT( * ) * - 28
128a0 20 2d 20 2d 20 33 35 20 2a 20 2b 20 34 35 20 46   - - 35 * + 45 F
128b0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
128c0 0d 0a 2d 2d 2d 2d 0d 0a 31 36 35 39 0d 0a 0d 0a  ..----..1659....
128d0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
128e0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
128f0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
12900 61 62 65 6c 2d 34 32 32 0d 0a 53 45 4c 45 43 54  abel-422..SELECT
12910 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29   + - COUNT ( * )
12920 20 2a 20 2d 20 32 38 20 2d 20 2d 20 33 35 20 2a   * - 28 - - 35 *
12930 20 2b 20 34 35 20 46 52 4f 4d 20 74 61 62 30 20   + 45 FROM tab0 
12940 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
12950 36 35 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  659....onlyif my
12960 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
12970 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
12980 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
12990 34 32 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  423..SELECT ALL 
129a0 2d 20 2b 20 4d 41 58 28 20 41 4c 4c 20 2d 20 34  - + MAX( ALL - 4
129b0 34 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  4 ) FROM tab1 AS
129c0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 34 0d   cor0..----..44.
129d0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
129e0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
129f0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
12a00 74 20 6c 61 62 65 6c 2d 34 32 33 0d 0a 53 45 4c  t label-423..SEL
12a10 45 43 54 20 41 4c 4c 20 2d 20 2b 20 4d 41 58 20  ECT ALL - + MAX 
12a20 28 20 41 4c 4c 20 2d 20 34 34 20 29 20 46 52 4f  ( ALL - 44 ) FRO
12a30 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
12a40 2d 2d 2d 2d 0d 0a 34 34 0d 0a 0d 0a 71 75 65 72  ----..44....quer
12a50 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
12a60 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
12a70 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
12a80 45 52 45 20 2d 20 63 6f 6c 32 20 3e 3d 20 2d 20  ERE - col2 >= - 
12a90 28 20 2d 20 2b 20 63 6f 6c 32 20 29 0d 0a 2d 2d  ( - + col2 )..--
12aa0 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  --....skipif pos
12ab0 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
12ac0 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
12ad0 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
12ae0 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
12af0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
12b00 53 45 4c 45 43 54 20 2b 20 2b 20 39 31 20 2a 20  SELECT + + 91 * 
12b10 2b 20 63 6f 6c 32 20 63 6f 6c 31 20 46 52 4f 4d  + col2 col1 FROM
12b20 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
12b30 0d 0a 35 33 36 39 0d 0a 36 31 38 38 0d 0a 38 37  ..5369..6188..87
12b40 33 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  36....query I ro
12b50 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
12b60 4c 20 2d 20 2d 20 38 34 20 41 53 20 63 6f 6c 31  L - - 84 AS col1
12b70 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
12b80 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
12b90 62 31 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d  b1 AS cor1..----
12ba0 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
12bb0 6e 67 20 74 6f 20 63 61 64 64 38 37 36 63 32 36  ng to cadd876c26
12bc0 33 33 38 66 63 35 38 62 39 32 39 37 65 37 34 66  338fc58b9297e74f
12bd0 63 33 32 34 64 38 0d 0a 0d 0a 71 75 65 72 79 20  c324d8....query 
12be0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
12bf0 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
12c00 57 48 45 52 45 20 4e 4f 54 20 2d 20 2b 20 63 6f  WHERE NOT - + co
12c10 6c 30 20 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  l0 > NULL..----.
12c20 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
12c30 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
12c40 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
12c50 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
12c60 62 65 6c 2d 34 32 38 0d 0a 53 45 4c 45 43 54 20  bel-428..SELECT 
12c70 41 4c 4c 20 43 41 53 54 28 20 2b 20 63 6f 6c 32  ALL CAST( + col2
12c80 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2d   AS SIGNED ) + -
12c90 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
12ca0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30  AS cor0..----..0
12cb0 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  ..0..0....skipif
12cc0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
12cd0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
12ce0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
12cf0 32 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43  28..SELECT ALL C
12d00 41 53 54 20 28 20 2b 20 63 6f 6c 32 20 41 53 20  AST ( + col2 AS 
12d10 49 4e 54 45 47 45 52 20 29 20 2b 20 2d 20 63 6f  INTEGER ) + - co
12d20 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
12d30 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30  cor0..----..0..0
12d40 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..0....onlyif my
12d50 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
12d60 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
12d70 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
12d80 74 20 6c 61 62 65 6c 2d 34 32 39 0d 0a 53 45 4c  t label-429..SEL
12d90 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 44  ECT ALL + col2 D
12da0 49 56 20 2d 20 2b 20 63 6f 6c 30 20 41 53 20 63  IV - + col0 AS c
12db0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
12dc0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d   cor0..----..-1.
12dd0 0a 2d 33 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  .-3..0....skipif
12de0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
12df0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
12e00 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
12e10 32 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  29..SELECT ALL +
12e20 20 63 6f 6c 32 20 2f 20 2d 20 2b 20 63 6f 6c 30   col2 / - + col0
12e30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
12e40 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
12e50 0d 0a 2d 31 0d 0a 2d 33 0d 0a 30 0d 0a 0d 0a 71  ..-1..-3..0....q
12e60 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
12e70 53 45 4c 45 43 54 20 2d 20 2b 20 63 6f 6c 30 20  SELECT - + col0 
12e80 2a 20 2b 20 39 33 20 46 52 4f 4d 20 74 61 62 31  * + 93 FROM tab1
12e90 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
12ea0 2d 34 37 34 33 0d 0a 2d 37 39 30 35 0d 0a 2d 38  -4743..-7905..-8
12eb0 34 36 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  463....query I r
12ec0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
12ed0 49 53 54 49 4e 43 54 20 34 37 20 46 52 4f 4d 20  ISTINCT 47 FROM 
12ee0 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
12ef0 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3c 3e 20 28  RE NOT NULL <> (
12f00 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   NULL )..----...
12f10 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
12f20 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
12f30 34 20 41 53 20 63 6f 6c 30 2c 20 63 6f 6c 30 20  4 AS col0, col0 
12f40 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
12f50 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
12f60 0a 34 0d 0a 35 31 0d 0a 34 0d 0a 38 35 0d 0a 34  .4..51..4..85..4
12f70 0d 0a 39 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..91....query II
12f80 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
12f90 20 41 4c 4c 20 2b 20 63 6f 6c 32 2c 20 2b 20 63   ALL + col2, + c
12fa0 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol1 AS col1 FROM
12fb0 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
12fc0 2d 2d 2d 0d 0a 31 30 0d 0a 32 31 0d 0a 34 37 0d  ---..10..21..47.
12fd0 0a 38 31 0d 0a 39 39 0d 0a 31 0d 0a 0d 0a 6f 6e  .81..99..1....on
12fe0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
12ff0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44  regate syntax: D
13000 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
13010 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
13020 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
13030 2d 34 33 34 0d 0a 53 45 4c 45 43 54 20 44 49 53  -434..SELECT DIS
13040 54 49 4e 43 54 20 43 4f 55 4e 54 28 20 2a 20 29  TINCT COUNT( * )
13050 20 2a 20 2b 20 34 32 20 44 49 56 20 2d 20 43 4f   * + 42 DIV - CO
13060 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
13070 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
13080 0d 0a 2d 34 32 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-42....skipif 
13090 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
130a0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
130b0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 33  rowsort label-43
130c0 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  4..SELECT DISTIN
130d0 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a  CT COUNT ( * ) *
130e0 20 2b 20 34 32 20 2f 20 2d 20 43 4f 55 4e 54 20   + 42 / - COUNT 
130f0 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ( * ) FROM tab2 
13100 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
13110 34 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  42....query III 
13120 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
13130 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
13140 45 20 2d 20 34 39 20 3e 20 4e 55 4c 4c 0d 0a 2d  E - 49 > NULL..-
13150 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ---....query III
13160 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
13170 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31   ALL * FROM tab1
13180 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
13190 3c 3e 20 28 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d  <> ( + col1 )..-
131a0 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  ---....skipif po
131b0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
131c0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
131d0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
131e0 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
131f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
13200 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
13210 20 63 6f 6c 32 20 2b 20 31 32 20 63 6f 6c 32 20   col2 + 12 col2 
13220 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
13230 0a 33 35 0d 0a 35 32 0d 0a 37 30 0d 0a 0d 0a 6f  .35..52..70....o
13240 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
13250 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
13260 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
13270 74 20 6c 61 62 65 6c 2d 34 33 38 0d 0a 53 45 4c  t label-438..SEL
13280 45 43 54 20 2d 20 34 35 20 2b 20 2b 20 39 34 20  ECT - 45 + + 94 
13290 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  - + COUNT( * ) F
132a0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
132b0 34 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  46....skipif mys
132c0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
132d0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
132e0 73 6f 72 74 20 6c 61 62 65 6c 2d 34 33 38 0d 0a  sort label-438..
132f0 53 45 4c 45 43 54 20 2d 20 34 35 20 2b 20 2b 20  SELECT - 45 + + 
13300 39 34 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a  94 - + COUNT ( *
13310 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
13320 2d 2d 0d 0a 34 36 0d 0a 0d 0a 71 75 65 72 79 20  --..46....query 
13330 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
13340 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 2b 20  CT ALL - col2 + 
13350 2d 20 63 6f 6c 31 2c 20 63 6f 6c 32 20 46 52 4f  - col1, col2 FRO
13360 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab0..----..-1
13370 30 30 0d 0a 39 39 0d 0a 2d 31 32 38 0d 0a 34 37  00..99..-128..47
13380 0d 0a 2d 33 31 0d 0a 31 30 0d 0a 0d 0a 6f 6e 6c  ..-31..10....onl
13390 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
133a0 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
133b0 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
133c0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 34  rowsort label-44
133d0 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  0..SELECT ALL - 
133e0 28 20 2d 20 63 6f 6c 31 20 29 20 2b 20 2d 20 63  ( - col1 ) + - c
133f0 6f 6c 31 20 44 49 56 20 2d 20 28 20 2b 20 2d 20  ol1 DIV - ( + - 
13400 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 31 20 46  col0 ) AS col1 F
13410 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
13420 35 30 0d 0a 36 37 0d 0a 37 36 0d 0a 0d 0a 73 6b  50..67..76....sk
13430 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
13440 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
13450 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
13460 65 6c 2d 34 34 30 0d 0a 53 45 4c 45 43 54 20 41  el-440..SELECT A
13470 4c 4c 20 2d 20 28 20 2d 20 63 6f 6c 31 20 29 20  LL - ( - col1 ) 
13480 2b 20 2d 20 63 6f 6c 31 20 2f 20 2d 20 28 20 2b  + - col1 / - ( +
13490 20 2d 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c   - col0 ) AS col
134a0 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
134b0 2d 0d 0a 35 30 0d 0a 36 37 0d 0a 37 36 0d 0a 0d  -..50..67..76...
134c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
134d0 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20  ..SELECT + col1 
134e0 2b 20 2b 20 33 20 2b 20 2b 20 33 33 20 2a 20 2b  + + 3 + + 33 * +
134f0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
13500 0a 2d 2d 2d 2d 0d 0a 31 35 37 32 0d 0a 32 31 39  .----..1572..219
13510 32 0d 0a 32 35 34 35 0d 0a 0d 0a 71 75 65 72 79  2..2545....query
13520 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
13530 43 54 20 2b 20 2b 20 63 6f 6c 31 20 46 52 4f 4d  CT + + col1 FROM
13540 20 74 61 62 30 20 63 6f 72 30 20 57 48 45 52 45   tab0 cor0 WHERE
13550 20 2d 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e   - col1 IS NOT N
13560 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 32 31  ULL..----..1..21
13570 0d 0a 38 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..81....onlyif m
13580 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
13590 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
135a0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
135b0 2d 34 34 33 0d 0a 53 45 4c 45 43 54 20 2b 20 28  -443..SELECT + (
135c0 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 29 20   - COUNT( * ) ) 
135d0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
135e0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  S cor0..----..-3
135f0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
13600 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
13610 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
13620 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
13630 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
13640 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
13650 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
13660 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
13670 6c 2d 34 34 33 0d 0a 53 45 4c 45 43 54 20 2b 20  l-443..SELECT + 
13680 28 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ( - COUNT ( * ) 
13690 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  ) col2 FROM tab0
136a0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
136b0 2d 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 49  -3....query IIII
136c0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
136d0 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
136e0 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 43 52 4f  OM tab0 cor0 CRO
136f0 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53 20  SS JOIN tab2 AS 
13700 63 6f 72 31 20 57 48 45 52 45 20 4e 4f 54 20 4e  cor1 WHERE NOT N
13710 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ULL IS NULL..---
13720 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
13730 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
13740 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20 46 52 4f  TINCT + col0 FRO
13750 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54  M tab1 WHERE NOT
13760 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 2d 20 63 6f   - col0 + - - co
13770 6c 30 20 2f 20 2d 20 2b 20 63 6f 6c 30 20 49 53  l0 / - + col0 IS
13780 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d   NULL..----..51.
13790 0a 38 35 0d 0a 39 31 0d 0a 0d 0a 71 75 65 72 79  .85..91....query
137a0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
137b0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 35 37  CT DISTINCT + 57
137c0 20 2b 20 31 39 20 41 53 20 63 6f 6c 32 20 46 52   + 19 AS col2 FR
137d0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
137e0 0a 2d 2d 2d 2d 0d 0a 37 36 0d 0a 0d 0a 6f 6e 6c  .----..76....onl
137f0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
13800 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
13810 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
13820 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 34  rowsort label-44
13830 37 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 63 6f  7..SELECT - - co
13840 6c 32 20 2b 20 2b 20 43 41 53 54 28 20 63 6f 6c  l2 + + CAST( col
13850 32 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52  2 AS SIGNED ) FR
13860 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
13870 57 48 45 52 45 20 37 30 20 2d 20 2d 20 63 6f 6c  WHERE 70 - - col
13880 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  2 IS NULL..----.
13890 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
138a0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
138b0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
138c0 74 20 6c 61 62 65 6c 2d 34 34 37 0d 0a 53 45 4c  t label-447..SEL
138d0 45 43 54 20 2d 20 2d 20 63 6f 6c 32 20 2b 20 2b  ECT - - col2 + +
138e0 20 43 41 53 54 20 28 20 63 6f 6c 32 20 41 53 20   CAST ( col2 AS 
138f0 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74  INTEGER ) FROM t
13900 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
13910 45 20 37 30 20 2d 20 2d 20 63 6f 6c 32 20 49 53  E 70 - - col2 IS
13920 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   NULL..----....o
13930 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
13940 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
13950 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
13960 74 20 6c 61 62 65 6c 2d 34 34 38 0d 0a 53 45 4c  t label-448..SEL
13970 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43  ECT DISTINCT + C
13980 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20 38 20  OUNT( * ) * + 8 
13990 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
139a0 30 0d 0a 2d 2d 2d 2d 0d 0a 32 34 0d 0a 0d 0a 73  0..----..24....s
139b0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
139c0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
139d0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
139e0 62 65 6c 2d 34 34 38 0d 0a 53 45 4c 45 43 54 20  bel-448..SELECT 
139f0 44 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54  DISTINCT + COUNT
13a00 20 28 20 2a 20 29 20 2a 20 2b 20 38 20 46 52 4f   ( * ) * + 8 FRO
13a10 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
13a20 2d 2d 2d 2d 0d 0a 32 34 0d 0a 0d 0a 6f 6e 6c 79  ----..24....only
13a30 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
13a40 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
13a50 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
13a60 61 62 65 6c 2d 34 34 39 0d 0a 53 45 4c 45 43 54  abel-449..SELECT
13a70 20 2b 20 43 4f 55 4e 54 28 20 2d 20 35 20 29 20   + COUNT( - 5 ) 
13a80 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
13a90 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  S cor0..----..3.
13aa0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
13ab0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
13ac0 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
13ad0 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
13ae0 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
13af0 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
13b00 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
13b10 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
13b20 2d 34 34 39 0d 0a 53 45 4c 45 43 54 20 2b 20 43  -449..SELECT + C
13b30 4f 55 4e 54 20 28 20 2d 20 35 20 29 20 63 6f 6c  OUNT ( - 5 ) col
13b40 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
13b50 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a  or0..----..3....
13b60 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
13b70 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
13b80 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
13b90 72 74 20 6c 61 62 65 6c 2d 34 35 30 0d 0a 53 45  rt label-450..SE
13ba0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f  LECT DISTINCT CO
13bb0 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20 43 4f 55  UNT( * ) * + COU
13bc0 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  NT( * ) FROM tab
13bd0 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 0d  2 cor0..----..9.
13be0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
13bf0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
13c00 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
13c10 74 20 6c 61 62 65 6c 2d 34 35 30 0d 0a 53 45 4c  t label-450..SEL
13c20 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55  ECT DISTINCT COU
13c30 4e 54 20 28 20 2a 20 29 20 2a 20 2b 20 43 4f 55  NT ( * ) * + COU
13c40 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  NT ( * ) FROM ta
13c50 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39  b2 cor0..----..9
13c60 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
13c70 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
13c80 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
13c90 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 35 31  owsort label-451
13ca0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
13cb0 54 20 2d 20 4d 41 58 28 20 41 4c 4c 20 2b 20 31  T - MAX( ALL + 1
13cc0 31 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  1 ) FROM tab1 AS
13cd0 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 36 31   cor0 WHERE + 61
13ce0 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
13cf0 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
13d00 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
13d10 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
13d20 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 35 31  owsort label-451
13d30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
13d40 54 20 2d 20 4d 41 58 20 28 20 41 4c 4c 20 2b 20  T - MAX ( ALL + 
13d50 31 31 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41  11 ) FROM tab1 A
13d60 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 36  S cor0 WHERE + 6
13d70 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  1 IS NULL..----.
13d80 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
13d90 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
13da0 20 41 4c 4c 20 2b 20 28 20 36 38 20 29 20 41 53   ALL + ( 68 ) AS
13db0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
13dc0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36  AS cor0..----..6
13dd0 38 0d 0a 36 38 0d 0a 36 38 0d 0a 0d 0a 71 75 65  8..68..68....que
13de0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
13df0 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
13e00 62 31 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  b1 WHERE NOT NUL
13e10 4c 20 3c 20 2d 20 63 6f 6c 31 20 2f 20 2d 20 2d  L < - col1 / - -
13e20 20 63 6f 6c 31 20 2f 20 2b 20 63 6f 6c 32 20 2a   col1 / + col2 *
13e30 20 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d   + col2..----...
13e40 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
13e50 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
13e60 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
13e70 6f 72 74 20 6c 61 62 65 6c 2d 34 35 34 0d 0a 53  ort label-454..S
13e80 45 4c 45 43 54 20 37 20 2a 20 4d 41 58 28 20 2d  ELECT 7 * MAX( -
13e90 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c   + col0 ) AS col
13ea0 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  2 FROM tab1..---
13eb0 2d 0d 0a 2d 33 35 37 0d 0a 0d 0a 73 6b 69 70 69  -..-357....skipi
13ec0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
13ed0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
13ee0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
13ef0 34 35 34 0d 0a 53 45 4c 45 43 54 20 37 20 2a 20  454..SELECT 7 * 
13f00 4d 41 58 20 28 20 2d 20 2b 20 63 6f 6c 30 20 29  MAX ( - + col0 )
13f10 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
13f20 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 35 37 0d 0a  b1..----..-357..
13f30 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
13f40 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
13f50 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
13f60 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
13f70 65 6c 2d 34 35 35 0d 0a 53 45 4c 45 43 54 20 44  el-455..SELECT D
13f80 49 53 54 49 4e 43 54 20 2d 20 43 41 53 54 28 20  ISTINCT - CAST( 
13f90 31 33 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a  13 AS SIGNED ) *
13fa0 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   + col1 FROM tab
13fb0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 35 33 0d 0a  0..----..-1053..
13fc0 2d 31 33 0d 0a 2d 32 37 33 0d 0a 0d 0a 73 6b 69  -13..-273....ski
13fd0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
13fe0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
13ff0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
14000 6c 2d 34 35 35 0d 0a 53 45 4c 45 43 54 20 44 49  l-455..SELECT DI
14010 53 54 49 4e 43 54 20 2d 20 43 41 53 54 20 28 20  STINCT - CAST ( 
14020 31 33 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  13 AS INTEGER ) 
14030 2a 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  * + col1 FROM ta
14040 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 35 33 0d  b0..----..-1053.
14050 0a 2d 31 33 0d 0a 2d 32 37 33 0d 0a 0d 0a 71 75  .-13..-273....qu
14060 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
14070 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 28 20  ELECT ALL + - ( 
14080 2b 20 35 38 20 29 20 46 52 4f 4d 20 74 61 62 32  + 58 ) FROM tab2
14090 20 57 48 45 52 45 20 2d 20 36 36 20 3e 3d 20 63   WHERE - 66 >= c
140a0 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ol1..----....onl
140b0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
140c0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
140d0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
140e0 6c 61 62 65 6c 2d 34 35 37 0d 0a 53 45 4c 45 43  label-457..SELEC
140f0 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20 2a 20 29  T ALL COUNT( * )
14100 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
14110 20 4e 4f 54 20 4e 55 4c 4c 20 3c 3d 20 2d 20 63   NOT NULL <= - c
14120 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  ol2..----..0....
14130 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
14140 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
14150 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
14160 61 62 65 6c 2d 34 35 37 0d 0a 53 45 4c 45 43 54  abel-457..SELECT
14170 20 41 4c 4c 20 43 4f 55 4e 54 20 28 20 2a 20 29   ALL COUNT ( * )
14180 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
14190 20 4e 4f 54 20 4e 55 4c 4c 20 3c 3d 20 2d 20 63   NOT NULL <= - c
141a0 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  ol2..----..0....
141b0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
141c0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63  ..SELECT ALL + c
141d0 6f 6c 31 20 2a 20 2b 20 63 6f 6c 30 2c 20 28 20  ol1 * + col0, ( 
141e0 2d 20 2d 20 38 38 20 29 20 41 53 20 63 6f 6c 30  - - 88 ) AS col0
141f0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
14200 0d 0a 32 33 34 36 0d 0a 38 38 0d 0a 34 39 32 38  ..2346..88..4928
14210 0d 0a 38 38 0d 0a 35 30 32 35 0d 0a 38 38 0d 0a  ..88..5025..88..
14220 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
14230 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
14240 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  INCT * FROM tab1
14250 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c   WHERE NOT + col
14260 31 20 2b 20 2b 20 63 6f 6c 30 20 3d 20 2d 20 39  1 + + col0 = - 9
14270 36 20 2a 20 2b 20 2b 20 63 6f 6c 32 0d 0a 2d 2d  6 * + + col2..--
14280 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
14290 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31  hing to c6c0a411
142a0 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31  1b36d04dbc811a11
142b0 65 34 64 35 34 63 61 64 0d 0a 0d 0a 6f 6e 6c 79  e4d54cad....only
142c0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
142d0 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74  syntax: aggregat
142e0 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  e syntax: SIGNED
142f0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
14300 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
14310 36 30 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53  60..SELECT - CAS
14320 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
14330 44 20 29 20 2f 20 2b 20 43 4f 55 4e 54 28 20 2a  D ) / + COUNT( *
14340 20 29 20 2a 20 2d 20 38 20 41 53 20 63 6f 6c 32   ) * - 8 AS col2
14350 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
14360 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
14370 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
14380 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
14390 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
143a0 20 6c 61 62 65 6c 2d 34 36 30 0d 0a 53 45 4c 45   label-460..SELE
143b0 43 54 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c  CT - CAST ( NULL
143c0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2f 20   AS INTEGER ) / 
143d0 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20  + COUNT ( * ) * 
143e0 2d 20 38 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  - 8 AS col2 FROM
143f0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
14400 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65  ---..NULL....que
14410 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
14420 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
14430 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45 52  M tab0 cor0 WHER
14440 45 20 4e 4f 54 20 4e 55 4c 4c 20 3c 3e 20 2b 20  E NOT NULL <> + 
14450 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  col1..----....qu
14460 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
14470 45 4c 45 43 54 20 2d 20 2b 20 36 37 20 41 53 20  ELECT - + 67 AS 
14480 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
14490 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36  S cor0..----..-6
144a0 37 0d 0a 2d 36 37 0d 0a 2d 36 37 0d 0a 0d 0a 6f  7..-67..-67....o
144b0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
144c0 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
144d0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
144e0 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
144f0 6c 2d 34 36 33 0d 0a 53 45 4c 45 43 54 20 44 49  l-463..SELECT DI
14500 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
14510 62 32 20 57 48 45 52 45 20 2d 20 2b 20 43 41 53  b2 WHERE - + CAS
14520 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
14530 44 20 29 20 2a 20 2d 20 63 6f 6c 32 20 2a 20 2d  D ) * - col2 * -
14540 20 34 33 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d   43 IS NULL..---
14550 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
14560 69 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61 35  ing to 75c998aa5
14570 33 61 63 38 33 32 31 38 63 62 66 32 66 65 62 39  3ac83218cbf2feb9
14580 36 32 64 30 61 34 39 0d 0a 0d 0a 73 6b 69 70 69  62d0a49....skipi
14590 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
145a0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
145b0 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
145c0 6c 2d 34 36 33 0d 0a 53 45 4c 45 43 54 20 44 49  l-463..SELECT DI
145d0 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
145e0 62 32 20 57 48 45 52 45 20 2d 20 2b 20 43 41 53  b2 WHERE - + CAS
145f0 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
14600 47 45 52 20 29 20 2a 20 2d 20 63 6f 6c 32 20 2a  GER ) * - col2 *
14610 20 2d 20 34 33 20 49 53 20 4e 55 4c 4c 0d 0a 2d   - 43 IS NULL..-
14620 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
14630 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38 61  shing to 75c998a
14640 61 35 33 61 63 38 33 32 31 38 63 62 66 32 66 65  a53ac83218cbf2fe
14650 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 71 75 65  b962d0a49....que
14660 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
14670 4c 45 43 54 20 2d 20 2d 20 39 20 41 53 20 63 6f  LECT - - 9 AS co
14680 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
14690 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
146a0 74 61 62 30 20 41 53 20 63 6f 72 31 0d 0a 2d 2d  tab0 AS cor1..--
146b0 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
146c0 68 69 6e 67 20 74 6f 20 30 33 62 39 33 62 35 33  hing to 03b93b53
146d0 31 30 37 65 33 36 63 66 37 64 35 32 34 65 34 38  107e36cf7d524e48
146e0 63 35 30 39 62 31 37 62 0d 0a 0d 0a 6f 6e 6c 79  c509b17b....only
146f0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
14700 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
14710 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
14720 61 62 65 6c 2d 34 36 35 0d 0a 53 45 4c 45 43 54  abel-465..SELECT
14730 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 28   DISTINCT COUNT(
14740 20 2a 20 29 20 2b 20 36 36 20 46 52 4f 4d 20 74   * ) + 66 FROM t
14750 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 36 39 0d 0a 0d  ab0..----..69...
14760 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
14770 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
14780 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
14790 6c 61 62 65 6c 2d 34 36 35 0d 0a 53 45 4c 45 43  label-465..SELEC
147a0 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54  T DISTINCT COUNT
147b0 20 28 20 2a 20 29 20 2b 20 36 36 20 46 52 4f 4d   ( * ) + 66 FROM
147c0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 36 39 0d   tab0..----..69.
147d0 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
147e0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 35 38  ort..SELECT - 58
147f0 20 2b 20 2b 20 33 33 20 2a 20 2d 20 32 34 20 2b   + + 33 * - 24 +
14800 20 2d 20 63 6f 6c 31 20 2d 20 2b 20 28 20 2b 20   - col1 - + ( + 
14810 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 32 2c 20  col1 ) AS col2, 
14820 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  - col2 FROM tab0
14830 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
14840 2d 31 30 31 32 0d 0a 2d 34 37 0d 0a 2d 38 35 32  -1012..-47..-852
14850 0d 0a 2d 39 39 0d 0a 2d 38 39 32 0d 0a 2d 31 30  ..-99..-892..-10
14860 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
14870 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
14880 2d 20 34 34 20 2b 20 2d 20 38 32 20 46 52 4f 4d  - 44 + - 82 FROM
14890 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
148a0 0d 0a 2d 31 32 36 0d 0a 2d 31 32 36 0d 0a 2d 31  ..-126..-126..-1
148b0 32 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  26....onlyif mys
148c0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
148d0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
148e0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
148f0 36 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  68..SELECT ALL -
14900 20 31 34 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a   14 + + COUNT( *
14910 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
14920 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 0d  cor0..----..-11.
14930 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
14940 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
14950 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
14960 74 20 6c 61 62 65 6c 2d 34 36 38 0d 0a 53 45 4c  t label-468..SEL
14970 45 43 54 20 41 4c 4c 20 2d 20 31 34 20 2b 20 2b  ECT ALL - 14 + +
14980 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f   COUNT ( * ) FRO
14990 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
149a0 2d 2d 2d 2d 0d 0a 2d 31 31 0d 0a 0d 0a 73 6b 69  ----..-11....ski
149b0 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
149c0 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
149d0 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
149e0 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
149f0 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
14a00 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
14a10 4c 20 2d 20 2d 20 32 31 20 2a 20 2b 20 2b 20 28  L - - 21 * + + (
14a20 20 2d 20 34 31 20 29 20 2b 20 2b 20 2b 20 38 31   - 41 ) + + + 81
14a30 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
14a40 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
14a50 37 38 30 0d 0a 2d 37 38 30 0d 0a 2d 37 38 30 0d  780..-780..-780.
14a60 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
14a70 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
14a80 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
14a90 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 37 30 0d  wsort label-470.
14aa0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20  .SELECT ALL + - 
14ab0 43 4f 55 4e 54 28 20 44 49 53 54 49 4e 43 54 20  COUNT( DISTINCT 
14ac0 2b 20 36 35 20 29 20 41 53 20 63 6f 6c 30 20 46  + 65 ) AS col0 F
14ad0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
14ae0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 73 6b  ..----..-1....sk
14af0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
14b00 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
14b10 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
14b20 65 6c 2d 34 37 30 0d 0a 53 45 4c 45 43 54 20 41  el-470..SELECT A
14b30 4c 4c 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 44  LL + - COUNT ( D
14b40 49 53 54 49 4e 43 54 20 2b 20 36 35 20 29 20 41  ISTINCT + 65 ) A
14b50 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
14b60 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
14b70 2d 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  -1....query I ro
14b80 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
14b90 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l1 AS col2 FROM 
14ba0 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
14bb0 52 45 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e  RE NULL IS NOT N
14bc0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
14bd0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
14be0 4c 45 43 54 20 2b 20 2b 20 63 6f 6c 31 20 2a 20  LECT + + col1 * 
14bf0 2b 20 36 20 46 52 4f 4d 20 74 61 62 32 20 41 53  + 6 FROM tab2 AS
14c00 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 30 36   cor0..----..306
14c10 0d 0a 34 30 32 0d 0a 34 36 32 0d 0a 0d 0a 6f 6e  ..402..462....on
14c20 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
14c30 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
14c40 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
14c50 20 6c 61 62 65 6c 2d 34 37 33 0d 0a 53 45 4c 45   label-473..SELE
14c60 43 54 20 2d 20 2d 20 37 31 20 2a 20 2b 20 2b 20  CT - - 71 * + + 
14c70 39 31 20 2a 20 2b 20 2d 20 32 37 20 2d 20 2d 20  91 * + - 27 - - 
14c80 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f  + COUNT( * ) FRO
14c90 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
14ca0 2d 2d 2d 2d 0d 0a 2d 31 37 34 34 34 34 0d 0a 0d  ----..-174444...
14cb0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
14cc0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
14cd0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
14ce0 6c 61 62 65 6c 2d 34 37 33 0d 0a 53 45 4c 45 43  label-473..SELEC
14cf0 54 20 2d 20 2d 20 37 31 20 2a 20 2b 20 2b 20 39  T - - 71 * + + 9
14d00 31 20 2a 20 2b 20 2d 20 32 37 20 2d 20 2d 20 2b  1 * + - 27 - - +
14d10 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f   COUNT ( * ) FRO
14d20 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
14d30 2d 2d 2d 2d 0d 0a 2d 31 37 34 34 34 34 0d 0a 0d  ----..-174444...
14d40 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
14d50 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
14d60 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
14d70 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
14d80 6c 2d 34 37 34 0d 0a 53 45 4c 45 43 54 20 44 49  l-474..SELECT DI
14d90 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 41 53  STINCT - col2 AS
14da0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
14db0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
14dc0 54 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  T - CAST( NULL A
14dd0 53 20 53 49 47 4e 45 44 20 29 20 49 53 20 4e 4f  S SIGNED ) IS NO
14de0 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  T NULL..----..-5
14df0 39 0d 0a 2d 36 38 0d 0a 2d 39 36 0d 0a 0d 0a 73  9..-68..-96....s
14e00 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
14e10 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
14e20 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
14e30 62 65 6c 2d 34 37 34 0d 0a 53 45 4c 45 43 54 20  bel-474..SELECT 
14e40 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20  DISTINCT - col2 
14e50 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
14e60 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
14e70 4e 4f 54 20 2d 20 43 41 53 54 20 28 20 4e 55 4c  NOT - CAST ( NUL
14e80 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 49  L AS INTEGER ) I
14e90 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
14ea0 0d 0a 2d 35 39 0d 0a 2d 36 38 0d 0a 2d 39 36 0d  ..-59..-68..-96.
14eb0 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
14ec0 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
14ed0 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
14ee0 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
14ef0 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
14f00 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
14f10 45 43 54 20 41 4c 4c 20 2d 20 2b 20 38 36 20 2a  ECT ALL - + 86 *
14f20 20 2d 20 31 32 20 2d 20 34 39 20 2b 20 63 6f 6c   - 12 - 49 + col
14f30 32 20 2d 20 2d 20 2d 20 38 39 20 2b 20 2b 20 2d  2 - - - 89 + + -
14f40 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 32 20 63   col2 * - col2 c
14f50 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
14f60 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 30   cor0..----..100
14f70 34 0d 0a 31 30 37 39 34 0d 0a 33 31 35 30 0d 0a  4..10794..3150..
14f80 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
14f90 74 0d 0a 53 45 4c 45 43 54 20 2d 20 35 35 20 2a  t..SELECT - 55 *
14fa0 20 2d 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c   - - col1 AS col
14fb0 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
14fc0 2d 0d 0a 2d 32 38 30 35 0d 0a 2d 33 36 38 35 0d  -..-2805..-3685.
14fd0 0a 2d 34 32 33 35 0d 0a 0d 0a 71 75 65 72 79 20  .-4235....query 
14fe0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
14ff0 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ECT * FROM tab1 
15000 57 48 45 52 45 20 34 30 20 4e 4f 54 20 42 45 54  WHERE 40 NOT BET
15010 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 63 6f  WEEN NULL AND co
15020 6c 31 20 2a 20 2b 20 2d 20 39 35 20 2b 20 2d 20  l1 * + - 95 + - 
15030 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  col0..----..9 va
15040 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
15050 63 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64  c6c0a4111b36d04d
15060 62 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64  bc811a11e4d54cad
15070 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
15080 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
15090 31 20 41 53 20 63 6f 6c 30 2c 20 63 6f 6c 30 20  1 AS col0, col0 
150a0 2d 20 39 39 20 41 53 20 63 6f 6c 32 20 46 52 4f  - 99 AS col2 FRO
150b0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 31  M tab2..----..51
150c0 0d 0a 2d 35 33 0d 0a 36 37 0d 0a 2d 32 34 0d 0a  ..-53..67..-24..
150d0 37 37 0d 0a 2d 33 35 0d 0a 0d 0a 71 75 65 72 79  77..-35....query
150e0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
150f0 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 2b 20  CT ALL - col0 + 
15100 2d 20 28 20 2b 20 63 6f 6c 31 20 29 20 46 52 4f  - ( + col1 ) FRO
15110 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab2..----..-1
15120 34 31 0d 0a 2d 31 34 32 0d 0a 2d 39 37 0d 0a 0d  41..-142..-97...
15130 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
15140 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
15150 54 20 63 6f 6c 32 20 2a 20 39 20 2a 20 2d 20 63  T col2 * 9 * - c
15160 6f 6c 31 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f  ol1 - col1 AS co
15170 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
15180 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 36  cor0..----..-106
15190 30 38 0d 0a 2d 32 37 37 39 37 0d 0a 2d 33 35 30  08..-27797..-350
151a0 34 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  41....query III 
151b0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
151c0 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  * FROM tab0 AS c
151d0 6f 72 30 20 57 48 45 52 45 20 2b 20 28 20 2b 20  or0 WHERE + ( + 
151e0 63 6f 6c 32 20 29 20 49 53 20 4e 4f 54 20 4e 55  col2 ) IS NOT NU
151f0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  LL..----..9 valu
15200 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34  es hashing to c4
15210 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34  b42765dff94eaaa4
15220 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a  6040e537fb43b7..
15230 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
15240 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
15250 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
15260 73 6f 72 74 20 6c 61 62 65 6c 2d 34 38 32 0d 0a  sort label-482..
15270 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28 20  SELECT - COUNT( 
15280 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  * ) FROM tab1 AS
15290 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 32   cor0 WHERE col2
152a0 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
152b0 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
152c0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
152d0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
152e0 6f 72 74 20 6c 61 62 65 6c 2d 34 38 32 0d 0a 53  ort label-482..S
152f0 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 20 28 20  ELECT - COUNT ( 
15300 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  * ) FROM tab1 AS
15310 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 32   cor0 WHERE col2
15320 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
15330 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
15340 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
15350 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
15360 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
15370 6c 61 62 65 6c 2d 34 38 33 0d 0a 53 45 4c 45 43  label-483..SELEC
15380 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20  T DISTINCT col0 
15390 2d 20 2d 20 39 38 20 44 49 56 20 2b 20 63 6f 6c  - - 98 DIV + col
153a0 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  0 AS col0 FROM t
153b0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
153c0 2d 0d 0a 32 31 0d 0a 38 38 0d 0a 39 38 0d 0a 0d  -..21..88..98...
153d0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
153e0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
153f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
15400 6c 61 62 65 6c 2d 34 38 33 0d 0a 53 45 4c 45 43  label-483..SELEC
15410 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20  T DISTINCT col0 
15420 2d 20 2d 20 39 38 20 2f 20 2b 20 63 6f 6c 30 20  - - 98 / + col0 
15430 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
15440 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
15450 0a 32 31 0d 0a 38 38 0d 0a 39 38 0d 0a 0d 0a 6f  .21..88..98....o
15460 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
15470 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
15480 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
15490 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
154a0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
154b0 6c 2d 34 38 34 0d 0a 53 45 4c 45 43 54 20 28 20  l-484..SELECT ( 
154c0 2b 20 34 30 20 29 20 44 49 56 20 2d 20 53 55 4d  + 40 ) DIV - SUM
154d0 28 20 39 33 20 29 20 46 52 4f 4d 20 74 61 62 32  ( 93 ) FROM tab2
154e0 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69  ..----..0....ski
154f0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
15500 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
15510 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
15520 6c 2d 34 38 34 0d 0a 53 45 4c 45 43 54 20 28 20  l-484..SELECT ( 
15530 2b 20 34 30 20 29 20 2f 20 2d 20 53 55 4d 20 28  + 40 ) / - SUM (
15540 20 39 33 20 29 20 46 52 4f 4d 20 74 61 62 32 0d   93 ) FROM tab2.
15550 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79  .----..0....only
15560 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
15570 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
15580 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
15590 61 62 65 6c 2d 34 38 35 0d 0a 53 45 4c 45 43 54  abel-485..SELECT
155a0 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 28 20 2a 20   ALL - COUNT( * 
155b0 29 20 2a 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a  ) * + + COUNT( *
155c0 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
155d0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a  tab1..----..-9..
155e0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
155f0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
15600 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
15610 20 6c 61 62 65 6c 2d 34 38 35 0d 0a 53 45 4c 45   label-485..SELE
15620 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 20 28  CT ALL - COUNT (
15630 20 2a 20 29 20 2a 20 2b 20 2b 20 43 4f 55 4e 54   * ) * + + COUNT
15640 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46   ( * ) AS col0 F
15650 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
15660 2d 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  -9....onlyif mys
15670 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
15680 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
15690 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
156a0 20 6c 61 62 65 6c 2d 34 38 36 0d 0a 53 45 4c 45   label-486..SELE
156b0 43 54 20 44 49 53 54 49 4e 43 54 20 43 41 53 54  CT DISTINCT CAST
156c0 28 20 2b 20 2b 20 28 20 2b 20 2d 20 34 34 20 29  ( + + ( + - 44 )
156d0 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f   AS SIGNED ) FRO
156e0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34  M tab0..----..-4
156f0 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  4....skipif mysq
15700 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
15710 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
15720 6f 72 74 20 6c 61 62 65 6c 2d 34 38 36 0d 0a 53  ort label-486..S
15730 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43  ELECT DISTINCT C
15740 41 53 54 20 28 20 2b 20 2b 20 28 20 2b 20 2d 20  AST ( + + ( + - 
15750 34 34 20 29 20 41 53 20 49 4e 54 45 47 45 52 20  44 ) AS INTEGER 
15760 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
15770 2d 0d 0a 2d 34 34 0d 0a 0d 0a 6f 6e 6c 79 69 66  -..-44....onlyif
15780 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
15790 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
157a0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
157b0 65 6c 2d 34 38 37 0d 0a 53 45 4c 45 43 54 20 2d  el-487..SELECT -
157c0 20 2b 20 53 55 4d 28 20 2d 20 28 20 63 6f 6c 31   + SUM( - ( col1
157d0 20 29 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f   ) ) AS col0 FRO
157e0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
157f0 2d 2d 2d 2d 0d 0a 31 39 35 0d 0a 0d 0a 73 6b 69  ----..195....ski
15800 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
15810 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
15820 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
15830 6c 2d 34 38 37 0d 0a 53 45 4c 45 43 54 20 2d 20  l-487..SELECT - 
15840 2b 20 53 55 4d 20 28 20 2d 20 28 20 63 6f 6c 31  + SUM ( - ( col1
15850 20 29 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f   ) ) AS col0 FRO
15860 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
15870 2d 2d 2d 2d 0d 0a 31 39 35 0d 0a 0d 0a 71 75 65  ----..195....que
15880 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
15890 4c 45 43 54 20 2d 20 2d 20 63 6f 6c 32 20 2a 20  LECT - - col2 * 
158a0 2d 20 2d 20 35 34 20 2d 20 2b 20 63 6f 6c 31 20  - - 54 - + col1 
158b0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
158c0 30 0d 0a 2d 2d 2d 2d 0d 0a 33 31 38 31 0d 0a 33  0..----..3181..3
158d0 36 32 35 0d 0a 35 31 37 30 0d 0a 0d 0a 71 75 65  625..5170....que
158e0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
158f0 45 4c 45 43 54 20 63 6f 6c 32 2c 20 2d 20 63 6f  ELECT col2, - co
15900 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  l2 FROM tab1 cor
15910 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  0 WHERE NOT NULL
15920 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2d 20 36   NOT BETWEEN - 6
15930 31 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  1 AND NULL..----
15940 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
15950 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 35 38  ort..SELECT + 58
15960 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
15970 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35  b1 cor0..----..5
15980 38 0d 0a 35 38 0d 0a 35 38 0d 0a 0d 0a 71 75 65  8..58..58....que
15990 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
159a0 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 2c 20  ELECT ALL col1, 
159b0 36 36 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  66 AS col0 FROM 
159c0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a  tab2..----..51..
159d0 36 36 0d 0a 36 37 0d 0a 36 36 0d 0a 37 37 0d 0a  66..67..66..77..
159e0 36 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  66....query III 
159f0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
15a00 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
15a10 74 61 62 32 20 57 48 45 52 45 20 32 20 49 53 20  tab2 WHERE 2 IS 
15a20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
15a30 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
15a40 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
15a50 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 4e 55  ab1 WHERE NOT NU
15a60 4c 4c 20 42 45 54 57 45 45 4e 20 2d 20 2b 20 33  LL BETWEEN - + 3
15a70 30 20 41 4e 44 20 2d 20 63 6f 6c 30 20 2f 20 2d  0 AND - col0 / -
15a80 20 31 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65   12..----....que
15a90 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
15aa0 45 4c 45 43 54 20 63 6f 6c 30 20 41 53 20 63 6f  ELECT col0 AS co
15ab0 6c 32 2c 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20  l2, + col1 FROM 
15ac0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a  tab2..----..46..
15ad0 35 31 0d 0a 36 34 0d 0a 37 37 0d 0a 37 35 0d 0a  51..64..77..75..
15ae0 36 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  67....query I ro
15af0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
15b00 53 54 49 4e 43 54 20 36 31 20 2a 20 2d 20 2b 20  STINCT 61 * - + 
15b10 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col1 FROM tab1..
15b20 2d 2d 2d 2d 0d 0a 2d 32 38 36 37 0d 0a 2d 33 30  ----..-2867..-30
15b30 35 0d 0a 2d 38 35 34 0d 0a 0d 0a 71 75 65 72 79  5..-854....query
15b40 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
15b50 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 2a 20  CT ALL - col0 * 
15b60 2d 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 32 20  - col1 * - col2 
15b70 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
15b80 0a 2d 32 35 30 37 35 0d 0a 2d 32 39 30 38 33 36  .-25075..-290836
15b90 0d 0a 2d 36 38 35 34 34 0d 0a 0d 0a 71 75 65 72  ..-68544....quer
15ba0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
15bb0 45 43 54 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 2d  ECT + col0 + + -
15bc0 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52   col2 AS col2 FR
15bd0 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
15be0 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a  T NULL IS NULL..
15bf0 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
15c00 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
15c10 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
15c20 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
15c30 6c 2d 34 39 38 0d 0a 53 45 4c 45 43 54 20 41 4c  l-498..SELECT AL
15c40 4c 20 39 34 2c 20 2d 20 53 55 4d 28 20 2d 20 28  L 94, - SUM( - (
15c50 20 2d 20 28 20 2d 20 2d 20 33 20 29 20 29 20 29   - ( - - 3 ) ) )
15c60 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
15c70 62 30 0d 0a 2d 2d 2d 2d 0d 0a 39 34 0d 0a 2d 39  b0..----..94..-9
15c80 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
15c90 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
15ca0 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
15cb0 6f 72 74 20 6c 61 62 65 6c 2d 34 39 38 0d 0a 53  ort label-498..S
15cc0 45 4c 45 43 54 20 41 4c 4c 20 39 34 2c 20 2d 20  ELECT ALL 94, - 
15cd0 53 55 4d 20 28 20 2d 20 28 20 2d 20 28 20 2d 20  SUM ( - ( - ( - 
15ce0 2d 20 33 20 29 20 29 20 29 20 41 53 20 63 6f 6c  - 3 ) ) ) AS col
15cf0 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
15d00 2d 0d 0a 39 34 0d 0a 2d 39 0d 0a 0d 0a 73 6b 69  -..94..-9....ski
15d10 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
15d20 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
15d30 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
15d40 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
15d50 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72  umns..query II r
15d60 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
15d70 20 63 6f 6c 30 2c 20 2b 20 32 32 20 63 6f 6c 30   col0, + 22 col0
15d80 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
15d90 0d 0a 2d 35 31 0d 0a 32 32 0d 0a 2d 38 35 0d 0a  ..-51..22..-85..
15da0 32 32 0d 0a 2d 39 31 0d 0a 32 32 0d 0a 0d 0a 6f  22..-91..22....o
15db0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
15dc0 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
15dd0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
15de0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
15df0 35 30 30 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20  500..SELECT - + 
15e00 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
15e10 47 4e 45 44 20 29 20 2a 20 2d 20 2b 20 34 30 20  GNED ) * - + 40 
15e20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46  + col0 AS col2 F
15e30 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
15e40 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
15e50 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  LL..NULL....skip
15e60 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
15e70 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
15e80 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
15e90 2d 35 30 30 0d 0a 53 45 4c 45 43 54 20 2d 20 2b  -500..SELECT - +
15ea0 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
15eb0 49 4e 54 45 47 45 52 20 29 20 2a 20 2d 20 2b 20  INTEGER ) * - + 
15ec0 34 30 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c  40 + col0 AS col
15ed0 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
15ee0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
15ef0 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f  .NULL..NULL....o
15f00 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
15f10 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
15f20 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
15f30 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
15f40 35 30 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  501..SELECT ALL 
15f50 2d 20 43 41 53 54 28 20 2d 20 63 6f 6c 30 20 41  - CAST( - col0 A
15f60 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f  S SIGNED ) AS co
15f70 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  l2 FROM tab1 cor
15f80 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 38 35 0d  0..----..51..85.
15f90 0a 39 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .91....skipif my
15fa0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
15fb0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
15fc0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 30 31 0d  wsort label-501.
15fd0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 41  .SELECT ALL - CA
15fe0 53 54 20 28 20 2d 20 63 6f 6c 30 20 41 53 20 49  ST ( - col0 AS I
15ff0 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 32  NTEGER ) AS col2
16000 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d   FROM tab1 cor0.
16010 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 38 35 0d 0a 39  .----..51..85..9
16020 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
16030 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
16040 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
16050 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
16060 20 6c 61 62 65 6c 2d 35 30 32 0d 0a 53 45 4c 45   label-502..SELE
16070 43 54 20 41 4c 4c 20 63 6f 6c 32 20 2b 20 2d 20  CT ALL col2 + - 
16080 63 6f 6c 31 20 41 53 20 63 6f 6c 31 2c 20 63 6f  col1 AS col1, co
16090 6c 31 20 44 49 56 20 2b 20 63 6f 6c 32 20 2b 20  l1 DIV + col2 + 
160a0 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  + col0 FROM tab2
160b0 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 38 0d 0a 34 38 0d  ..----..-28..48.
160c0 0a 2d 33 37 0d 0a 36 35 0d 0a 2d 39 0d 0a 37 36  .-37..65..-9..76
160d0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
160e0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
160f0 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
16100 6f 72 74 20 6c 61 62 65 6c 2d 35 30 32 0d 0a 53  ort label-502..S
16110 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20 2b  ELECT ALL col2 +
16120 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 2c   - col1 AS col1,
16130 20 63 6f 6c 31 20 2f 20 2b 20 63 6f 6c 32 20 2b   col1 / + col2 +
16140 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   + col0 FROM tab
16150 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 38 0d 0a 34 38  2..----..-28..48
16160 0d 0a 2d 33 37 0d 0a 36 35 0d 0a 2d 39 0d 0a 37  ..-37..65..-9..7
16170 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
16180 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
16190 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
161a0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
161b0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
161c0 72 74 20 6c 61 62 65 6c 2d 35 30 33 0d 0a 53 45  rt label-503..SE
161d0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
161e0 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
161f0 47 4e 45 44 20 29 20 2b 20 2d 20 2d 20 43 4f 55  GNED ) + - - COU
16200 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 2c  NT( * ) AS col0,
16210 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52   + COUNT( * ) FR
16220 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab1..----..N
16230 55 4c 4c 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66  ULL..3....skipif
16240 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
16250 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
16260 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
16270 35 30 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  503..SELECT DIST
16280 49 4e 43 54 20 2b 20 43 41 53 54 20 28 20 4e 55  INCT + CAST ( NU
16290 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
162a0 2b 20 2d 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  + - - COUNT ( * 
162b0 29 20 41 53 20 63 6f 6c 30 2c 20 2b 20 43 4f 55  ) AS col0, + COU
162c0 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  NT ( * ) FROM ta
162d0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b1..----..NULL..
162e0 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  3....query I row
162f0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
16300 20 63 6f 6c 31 20 2a 20 2b 20 33 32 20 2a 20 2d   col1 * + 32 * -
16310 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
16320 0a 2d 2d 2d 2d 0d 0a 2d 31 35 37 36 39 36 0d 0a  .----..-157696..
16330 2d 31 36 30 38 30 30 0d 0a 2d 37 35 30 37 32 0d  -160800..-75072.
16340 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
16350 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
16360 4e 43 54 20 2b 20 32 31 20 46 52 4f 4d 20 74 61  NCT + 21 FROM ta
16370 62 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53  b2 AS cor0 CROSS
16380 20 4a 4f 49 4e 20 74 61 62 31 20 41 53 20 63 6f   JOIN tab1 AS co
16390 72 31 0d 0a 2d 2d 2d 2d 0d 0a 32 31 0d 0a 0d 0a  r1..----..21....
163a0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
163b0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 37 39 20 2b  .SELECT ALL 79 +
163c0 20 63 6f 6c 32 20 2d 20 2d 20 63 6f 6c 32 20 2a   col2 - - col2 *
163d0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d   col1 FROM tab0.
163e0 0a 2d 2d 2d 2d 0d 0a 32 37 37 0d 0a 32 39 39 0d  .----..277..299.
163f0 0a 33 39 33 33 0d 0a 0d 0a 71 75 65 72 79 20 49  .3933....query I
16400 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
16410 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
16420 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
16430 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 32   - col1 * + col2
16440 20 2f 20 2d 20 63 6f 6c 31 20 49 53 20 4e 55 4c   / - col1 IS NUL
16450 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
16460 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
16470 45 43 54 20 41 4c 4c 20 2b 20 34 36 20 2b 20 63  ECT ALL + 46 + c
16480 6f 6c 30 2c 20 63 6f 6c 32 20 41 53 20 63 6f 6c  ol0, col2 AS col
16490 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
164a0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 33 0d 0a  or0..----..133..
164b0 31 30 0d 0a 31 34 33 0d 0a 39 39 0d 0a 36 31 0d  10..143..99..61.
164c0 0a 34 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .47....onlyif my
164d0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
164e0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
164f0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
16500 35 30 39 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 49  509..SELECT + MI
16510 4e 28 20 41 4c 4c 20 2d 20 36 39 20 29 20 2b 20  N( ALL - 69 ) + 
16520 2b 20 28 20 43 4f 55 4e 54 28 20 2a 20 29 20 29  + ( COUNT( * ) )
16530 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
16540 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 36 0d 0a 0d  r0..----..-66...
16550 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
16560 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
16570 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
16580 6c 61 62 65 6c 2d 35 30 39 0d 0a 53 45 4c 45 43  label-509..SELEC
16590 54 20 2b 20 4d 49 4e 20 28 20 41 4c 4c 20 2d 20  T + MIN ( ALL - 
165a0 36 39 20 29 20 2b 20 2b 20 28 20 43 4f 55 4e 54  69 ) + + ( COUNT
165b0 20 28 20 2a 20 29 20 29 20 46 52 4f 4d 20 74 61   ( * ) ) FROM ta
165c0 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
165d0 0d 0a 2d 36 36 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-66....query I
165e0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
165f0 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32   DISTINCT + col2
16600 20 2b 20 2b 20 2b 20 35 30 20 2b 20 2b 20 63 6f   + + + 50 + + co
16610 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l2 AS col2 FROM 
16620 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
16630 2d 2d 0d 0a 31 33 30 0d 0a 31 36 36 0d 0a 39 36  --..130..166..96
16640 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
16650 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
16660 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
16670 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
16680 61 62 65 6c 2d 35 31 31 0d 0a 53 45 4c 45 43 54  abel-511..SELECT
16690 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 2b 20 63 6f   - col2 + + + co
166a0 6c 31 20 2a 20 2b 20 43 41 53 54 28 20 4e 55 4c  l1 * + CAST( NUL
166b0 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52  L AS SIGNED ) FR
166c0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
166d0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
166e0 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  L..NULL....skipi
166f0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
16700 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
16710 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
16720 35 31 31 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  511..SELECT - co
16730 6c 32 20 2b 20 2b 20 2b 20 63 6f 6c 31 20 2a 20  l2 + + + col1 * 
16740 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
16750 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20   INTEGER ) FROM 
16760 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
16770 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
16780 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20  NULL....query I 
16790 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
167a0 2b 20 63 6f 6c 30 20 2b 20 2d 20 2d 20 63 6f 6c  + col0 + - - col
167b0 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  2 AS col1 FROM t
167c0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
167d0 2d 0d 0a 31 34 34 0d 0a 31 34 37 0d 0a 31 35 39  -..144..147..159
167e0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
167f0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
16800 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
16810 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e 4f 54  0 WHERE NULL NOT
16820 20 49 4e 20 28 20 63 6f 6c 30 20 2f 20 2d 20 63   IN ( col0 / - c
16830 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71  ol0 )..----....q
16840 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
16850 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c  SELECT ALL - col
16860 32 20 2a 20 37 39 20 41 53 20 63 6f 6c 32 20 46  2 * 79 AS col2 F
16870 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
16880 2d 31 38 31 37 0d 0a 2d 33 31 36 30 0d 0a 2d 34  -1817..-3160..-4
16890 35 38 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  582....query I r
168a0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
168b0 4c 4c 20 2d 20 28 20 2b 20 38 35 20 29 20 2b 20  LL - ( + 85 ) + 
168c0 2d 20 2b 20 36 31 20 46 52 4f 4d 20 74 61 62 31  - + 61 FROM tab1
168d0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 36 0d 0a 2d 31  ..----..-146..-1
168e0 34 36 0d 0a 2d 31 34 36 0d 0a 0d 0a 6f 6e 6c 79  46..-146....only
168f0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
16900 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74  syntax: aggregat
16910 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  e syntax: SIGNED
16920 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
16930 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
16940 31 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  16..SELECT DISTI
16950 4e 43 54 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  NCT CAST( NULL A
16960 53 20 53 49 47 4e 45 44 20 29 20 2f 20 2d 20 43  S SIGNED ) / - C
16970 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74  OUNT( * ) FROM t
16980 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab1..----..NULL.
16990 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
169a0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
169b0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
169c0 74 20 6c 61 62 65 6c 2d 35 31 36 0d 0a 53 45 4c  t label-516..SEL
169d0 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 41 53  ECT DISTINCT CAS
169e0 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
169f0 47 45 52 20 29 20 2f 20 2d 20 43 4f 55 4e 54 20  GER ) / - COUNT 
16a00 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 0d  ( * ) FROM tab1.
16a10 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f  .----..NULL....o
16a20 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
16a30 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
16a40 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
16a50 74 20 6c 61 62 65 6c 2d 35 31 37 0d 0a 53 45 4c  t label-517..SEL
16a60 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2d  ECT DISTINCT + -
16a70 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d   COUNT( * ) FROM
16a80 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20   tab1 WHERE NOT 
16a90 37 35 20 3e 20 2b 20 2b 20 63 6f 6c 30 0d 0a 2d  75 > + + col0..-
16aa0 2d 2d 2d 0d 0a 2d 32 0d 0a 0d 0a 73 6b 69 70 69  ---..-2....skipi
16ab0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
16ac0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
16ad0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
16ae0 35 31 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  517..SELECT DIST
16af0 49 4e 43 54 20 2b 20 2d 20 43 4f 55 4e 54 20 28  INCT + - COUNT (
16b00 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57   * ) FROM tab1 W
16b10 48 45 52 45 20 4e 4f 54 20 37 35 20 3e 20 2b 20  HERE NOT 75 > + 
16b20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  + col0..----..-2
16b30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
16b40 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
16b50 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
16b60 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 31 38  owsort label-518
16b70 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 49 4e 28 20  ..SELECT + MIN( 
16b80 41 4c 4c 20 32 36 20 29 20 46 52 4f 4d 20 74 61  ALL 26 ) FROM ta
16b90 62 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53  b0 WHERE NULL IS
16ba0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 36 0d   NULL..----..26.
16bb0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
16bc0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
16bd0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
16be0 74 20 6c 61 62 65 6c 2d 35 31 38 0d 0a 53 45 4c  t label-518..SEL
16bf0 45 43 54 20 2b 20 4d 49 4e 20 28 20 41 4c 4c 20  ECT + MIN ( ALL 
16c00 32 36 20 29 20 46 52 4f 4d 20 74 61 62 30 20 57  26 ) FROM tab0 W
16c10 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 55 4c  HERE NULL IS NUL
16c20 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 36 0d 0a 0d 0a 71  L..----..26....q
16c30 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
16c40 53 45 4c 45 43 54 20 63 6f 6c 30 20 2b 20 2b 20  SELECT col0 + + 
16c50 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46  - col0 AS col1 F
16c60 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
16c70 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79  0..0..0....query
16c80 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
16c90 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 41 56  CT DISTINCT - AV
16ca0 47 20 28 20 2d 20 35 31 20 29 20 41 53 20 63 6f  G ( - 51 ) AS co
16cb0 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45  l0 FROM tab0 WHE
16cc0 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e  RE NOT NULL IS N
16cd0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ULL..----..NULL.
16ce0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
16cf0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
16d00 20 38 33 20 2a 20 63 6f 6c 31 20 2a 20 2b 20 2d   83 * col1 * + -
16d10 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
16d20 0a 2d 2d 2d 2d 0d 0a 31 30 30 38 34 35 0d 0a 31  .----..100845..1
16d30 35 31 36 34 31 0d 0a 38 30 35 31 0d 0a 0d 0a 6f  51641..8051....o
16d40 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
16d50 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
16d60 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
16d70 74 20 6c 61 62 65 6c 2d 35 32 32 0d 0a 53 45 4c  t label-522..SEL
16d80 45 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  ECT - COUNT( * )
16d90 20 2a 20 2b 20 32 31 20 41 53 20 63 6f 6c 32 20   * + 21 AS col2 
16da0 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
16db0 0a 2d 36 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-63....skipif m
16dc0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
16dd0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
16de0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 32 32  owsort label-522
16df0 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54  ..SELECT - COUNT
16e00 20 28 20 2a 20 29 20 2a 20 2b 20 32 31 20 41 53   ( * ) * + 21 AS
16e10 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
16e20 0a 2d 2d 2d 2d 0d 0a 2d 36 33 0d 0a 0d 0a 71 75  .----..-63....qu
16e30 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
16e40 45 4c 45 43 54 20 41 4c 4c 20 2d 20 28 20 2b 20  ELECT ALL - ( + 
16e50 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 30  col0 ) FROM tab0
16e60 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28   AS cor0 WHERE (
16e70 20 4e 55 4c 4c 20 29 20 3e 20 4e 55 4c 4c 0d 0a   NULL ) > NULL..
16e80 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
16e90 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
16ea0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 57  col1 FROM tab0 W
16eb0 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 31 20  HERE NOT + col1 
16ec0 2b 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a  + col0 IS NULL..
16ed0 2d 2d 2d 2d 0d 0a 31 0d 0a 32 31 0d 0a 38 31 0d  ----..1..21..81.
16ee0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
16ef0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61  # CAST syntax: a
16f00 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
16f10 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
16f20 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
16f30 6c 61 62 65 6c 2d 35 32 35 0d 0a 53 45 4c 45 43  label-525..SELEC
16f40 54 20 2b 20 53 55 4d 28 20 41 4c 4c 20 2d 20 2b  T + SUM( ALL - +
16f50 20 63 6f 6c 32 20 29 20 2f 20 2b 20 43 41 53 54   col2 ) / + CAST
16f60 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
16f70 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
16f80 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab0..----..NULL
16f90 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
16fa0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
16fb0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
16fc0 72 74 20 6c 61 62 65 6c 2d 35 32 35 0d 0a 53 45  rt label-525..SE
16fd0 4c 45 43 54 20 2b 20 53 55 4d 20 28 20 41 4c 4c  LECT + SUM ( ALL
16fe0 20 2d 20 2b 20 63 6f 6c 32 20 29 20 2f 20 2b 20   - + col2 ) / + 
16ff0 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
17000 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 32  NTEGER ) AS col2
17010 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
17020 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20  ..NULL....query 
17030 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
17040 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31  CT DISTINCT col1
17050 2c 20 28 20 2b 20 63 6f 6c 31 20 29 20 2a 20 2d  , ( + col1 ) * -
17060 20 63 6f 6c 31 20 2a 20 2d 20 2b 20 63 6f 6c 30   col1 * - + col0
17070 20 2d 20 2d 20 32 30 20 41 53 20 63 6f 6c 32 20   - - 20 AS col2 
17080 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
17090 0a 31 34 0d 0a 31 30 30 31 36 0d 0a 34 37 0d 0a  .14..10016..47..
170a0 32 30 31 30 33 39 0d 0a 35 0d 0a 32 31 34 35 0d  201039..5..2145.
170b0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
170c0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
170d0 20 2b 20 35 20 41 53 20 63 6f 6c 30 20 46 52 4f   + 5 AS col0 FRO
170e0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 43  M tab0 AS cor0 C
170f0 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 41  ROSS JOIN tab0 A
17100 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20  S cor1..----..9 
17110 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
17120 6f 20 37 34 36 36 35 66 62 62 34 37 64 35 62 31  o 74665fbb47d5b1
17130 37 64 61 30 31 31 62 63 61 35 36 37 31 39 35 62  7da011bca567195b
17140 32 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  21....onlyif mys
17150 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
17160 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
17170 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
17180 20 6c 61 62 65 6c 2d 35 32 38 0d 0a 53 45 4c 45   label-528..SELE
17190 43 54 20 2d 20 43 41 53 54 28 20 2d 20 31 33 20  CT - CAST( - 13 
171a0 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63  AS SIGNED ) AS c
171b0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
171c0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 0d   cor0..----..13.
171d0 0a 31 33 0d 0a 31 33 0d 0a 0d 0a 73 6b 69 70 69  .13..13....skipi
171e0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
171f0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
17200 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
17210 35 32 38 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41  528..SELECT - CA
17220 53 54 20 28 20 2d 20 31 33 20 41 53 20 49 4e 54  ST ( - 13 AS INT
17230 45 47 45 52 20 29 20 41 53 20 63 6f 6c 30 20 46  EGER ) AS col0 F
17240 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
17250 0d 0a 2d 2d 2d 2d 0d 0a 31 33 0d 0a 31 33 0d 0a  ..----..13..13..
17260 31 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  13....query I ro
17270 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
17280 4c 20 2b 20 38 34 20 2a 20 2b 20 63 6f 6c 32 20  L + 84 * + col2 
17290 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
172a0 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
172b0 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  NULL IS NULL..--
172c0 2d 2d 0d 0a 34 39 35 36 0d 0a 35 37 31 32 0d 0a  --..4956..5712..
172d0 38 30 36 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  8064....onlyif m
172e0 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
172f0 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
17300 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
17310 72 74 20 6c 61 62 65 6c 2d 35 33 30 0d 0a 53 45  rt label-530..SE
17320 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
17330 2d 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 31 20  - col0 * - col1 
17340 2a 20 63 6f 6c 30 20 44 49 56 20 2d 20 2b 20 63  * col0 DIV - + c
17350 6f 6c 30 20 2b 20 37 37 20 41 53 20 63 6f 6c 31  ol0 + 77 AS col1
17360 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
17370 72 30 20 57 48 45 52 45 20 63 6f 6c 30 20 49 53  r0 WHERE col0 IS
17380 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
17390 0a 31 32 39 32 0d 0a 31 37 34 0d 0a 31 39 30 34  .1292..174..1904
173a0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
173b0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
173c0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
173d0 72 74 20 6c 61 62 65 6c 2d 35 33 30 0d 0a 53 45  rt label-530..SE
173e0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
173f0 2d 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 31 20  - col0 * - col1 
17400 2a 20 63 6f 6c 30 20 2f 20 2d 20 2b 20 63 6f 6c  * col0 / - + col
17410 30 20 2b 20 37 37 20 41 53 20 63 6f 6c 31 20 46  0 + 77 AS col1 F
17420 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
17430 20 57 48 45 52 45 20 63 6f 6c 30 20 49 53 20 4e   WHERE col0 IS N
17440 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31  OT NULL..----..1
17450 32 39 32 0d 0a 31 37 34 0d 0a 31 39 30 34 0d 0a  292..174..1904..
17460 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
17470 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
17480 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 2c 20 63   col2 AS col2, c
17490 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol0 FROM tab2 co
174a0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 34 36  r0..----..23..46
174b0 0d 0a 34 30 0d 0a 36 34 0d 0a 35 38 0d 0a 37 35  ..40..64..58..75
174c0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
174d0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
174e0 20 2d 20 63 6f 6c 31 2c 20 63 6f 6c 31 20 2a 20   - col1, col1 * 
174f0 2d 20 35 34 20 2d 20 2b 20 63 6f 6c 32 20 41 53  - 54 - + col2 AS
17500 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
17510 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
17520 31 34 0d 0a 2d 38 35 32 0d 0a 2d 34 37 0d 0a 2d  14..-852..-47..-
17530 32 36 30 36 0d 0a 2d 35 0d 0a 2d 33 32 39 0d 0a  2606..-5..-329..
17540 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
17550 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
17560 43 54 20 31 32 20 2a 20 63 6f 6c 30 20 41 53 20  CT 12 * col0 AS 
17570 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57  col2 FROM tab1 W
17580 48 45 52 45 20 28 20 4e 55 4c 4c 20 49 53 20 4e  HERE ( NULL IS N
17590 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 31 30 32  ULL )..----..102
175a0 30 0d 0a 31 30 39 32 0d 0a 36 31 32 0d 0a 0d 0a  0..1092..612....
175b0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
175c0 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
175d0 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
175e0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
175f0 2d 35 33 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -534..SELECT ALL
17600 20 28 20 2d 20 32 39 20 29 20 44 49 56 20 2b 20   ( - 29 ) DIV + 
17610 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  + col1 FROM tab0
17620 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 32 39 0d  ..----..-1..-29.
17630 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
17640 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
17650 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
17660 73 6f 72 74 20 6c 61 62 65 6c 2d 35 33 34 0d 0a  sort label-534..
17670 53 45 4c 45 43 54 20 41 4c 4c 20 28 20 2d 20 32  SELECT ALL ( - 2
17680 39 20 29 20 2f 20 2b 20 2b 20 63 6f 6c 31 20 46  9 ) / + + col1 F
17690 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
176a0 2d 31 0d 0a 2d 32 39 0d 0a 30 0d 0a 0d 0a 71 75  -1..-29..0....qu
176b0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
176c0 45 4c 45 43 54 20 2d 20 35 38 20 46 52 4f 4d 20  ELECT - 58 FROM 
176d0 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2d  tab1 WHERE NOT -
176e0 20 63 6f 6c 31 20 2a 20 63 6f 6c 30 20 49 53 20   col1 * col0 IS 
176f0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 38 0d  NULL..----..-58.
17700 0a 2d 35 38 0d 0a 2d 35 38 0d 0a 0d 0a 6f 6e 6c  .-58..-58....onl
17710 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
17720 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
17730 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49  sion: ..query II
17740 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
17750 33 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  36..SELECT DISTI
17760 4e 43 54 20 2b 20 63 6f 6c 32 20 44 49 56 20 2b  NCT + col2 DIV +
17770 20 63 6f 6c 32 2c 20 63 6f 6c 30 20 41 53 20 63   col2, col0 AS c
17780 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
17790 2d 2d 2d 0d 0a 31 0d 0a 31 35 0d 0a 31 0d 0a 38  ---..1..15..1..8
177a0 37 0d 0a 31 0d 0a 39 37 0d 0a 0d 0a 73 6b 69 70  7..1..97....skip
177b0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
177c0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
177d0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
177e0 6c 2d 35 33 36 0d 0a 53 45 4c 45 43 54 20 44 49  l-536..SELECT DI
177f0 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20 2f 20  STINCT + col2 / 
17800 2b 20 63 6f 6c 32 2c 20 63 6f 6c 30 20 41 53 20  + col2, col0 AS 
17810 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
17820 2d 2d 2d 2d 0d 0a 31 0d 0a 31 35 0d 0a 31 0d 0a  ----..1..15..1..
17830 38 37 0d 0a 31 0d 0a 39 37 0d 0a 0d 0a 71 75 65  87..1..97....que
17840 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
17850 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
17860 62 30 20 57 48 45 52 45 20 4e 4f 54 20 39 35 20  b0 WHERE NOT 95 
17870 2a 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a  * col1 IS NULL..
17880 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
17890 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37  ashing to c4b427
178a0 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30  65dff94eaaa46040
178b0 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75  e537fb43b7....qu
178c0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
178d0 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
178e0 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 38 30  ab1 WHERE NOT 80
178f0 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
17900 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  --....query III 
17910 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
17920 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ALL * FROM tab2 
17930 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
17940 54 20 4e 55 4c 4c 20 3e 3d 20 2b 20 35 31 20 2b  T NULL >= + 51 +
17950 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 31 20 2b   col2 + - col1 +
17960 20 2b 20 28 20 2b 20 2b 20 63 6f 6c 30 20 29 20   + ( + + col0 ) 
17970 2f 20 2b 20 2d 20 33 36 20 2a 20 2d 20 2b 20 28  / + - 36 * - + (
17980 20 2b 20 63 6f 6c 30 20 29 20 2b 20 2d 20 39 20   + col0 ) + - 9 
17990 2b 20 2b 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d  + + - col1..----
179a0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
179b0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
179c0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
179d0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 34 30  owsort label-540
179e0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
179f0 54 20 2d 20 2b 20 4d 49 4e 28 20 63 6f 6c 32 20  T - + MIN( col2 
17a00 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
17a10 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab2 cor0..----..
17a20 2d 32 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -23....skipif my
17a30 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
17a40 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
17a50 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 34 30 0d  wsort label-540.
17a60 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
17a70 20 2d 20 2b 20 4d 49 4e 20 28 20 63 6f 6c 32 20   - + MIN ( col2 
17a80 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
17a90 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab2 cor0..----..
17aa0 2d 32 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  -23....query II 
17ab0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
17ac0 41 4c 4c 20 2b 20 63 6f 6c 31 20 2a 20 63 6f 6c  ALL + col1 * col
17ad0 30 20 2a 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31  0 * col1 AS col1
17ae0 2c 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 32 31 20  , + col2 + - 21 
17af0 2b 20 2b 20 2d 20 39 36 20 2a 20 2d 20 2b 20 63  + + - 96 * - + c
17b00 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
17b10 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 39   cor0..----..119
17b20 36 34 36 0d 0a 32 32 31 30 0d 0a 33 33 36 36 37  646..2210..33667
17b30 35 0d 0a 35 36 30 35 0d 0a 33 37 39 34 35 36 0d  5..5605..379456.
17b40 0a 33 38 35 39 0d 0a 0d 0a 71 75 65 72 79 20 49  .3859....query I
17b50 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
17b60 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32   DISTINCT - col2
17b70 20 2b 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 63 6f   + - col1 + - co
17b80 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
17b90 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 37  cor0..----..-157
17ba0 0d 0a 2d 31 38 33 0d 0a 2d 39 37 0d 0a 0d 0a 6f  ..-183..-97....o
17bb0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
17bc0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
17bd0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
17be0 74 20 6c 61 62 65 6c 2d 35 34 33 0d 0a 53 45 4c  t label-543..SEL
17bf0 45 43 54 20 2b 20 35 36 20 2a 20 2d 20 43 4f 55  ECT + 56 * - COU
17c00 4e 54 28 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 29  NT( ALL - col0 )
17c10 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
17c20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
17c30 31 36 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  168....skipif my
17c40 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
17c50 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
17c60 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
17c70 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
17c80 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
17c90 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
17ca0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
17cb0 61 62 65 6c 2d 35 34 33 0d 0a 53 45 4c 45 43 54  abel-543..SELECT
17cc0 20 2b 20 35 36 20 2a 20 2d 20 43 4f 55 4e 54 20   + 56 * - COUNT 
17cd0 28 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 29 20 63  ( ALL - col0 ) c
17ce0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
17cf0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36   cor0..----..-16
17d00 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  8....query I row
17d10 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 36 33 20  sort..SELECT 63 
17d20 2a 20 2b 20 2d 20 36 33 20 2a 20 32 38 20 46 52  * + - 63 * 28 FR
17d30 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
17d40 0a 2d 2d 2d 2d 0d 0a 2d 31 31 31 31 33 32 0d 0a  .----..-111132..
17d50 2d 31 31 31 31 33 32 0d 0a 2d 31 31 31 31 33 32  -111132..-111132
17d60 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
17d70 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
17d80 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
17d90 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
17da0 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
17db0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
17dc0 45 4c 45 43 54 20 63 6f 6c 31 20 2a 20 2b 20 63  ELECT col1 * + c
17dd0 6f 6c 32 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c 30  ol2 col2, + col0
17de0 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
17df0 0d 0a 32 31 30 0d 0a 38 37 0d 0a 33 38 30 37 0d  ..210..87..3807.
17e00 0a 31 35 0d 0a 39 39 0d 0a 39 37 0d 0a 0d 0a 6f  .15..99..97....o
17e10 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
17e20 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
17e30 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
17e40 72 74 20 6c 61 62 65 6c 2d 35 34 36 0d 0a 53 45  rt label-546..SE
17e50 4c 45 43 54 20 39 37 20 2a 20 2b 20 43 4f 55 4e  LECT 97 * + COUN
17e60 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 2c 20  T( * ) AS col0, 
17e70 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20  COUNT( * ) FROM 
17e80 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 39 31 0d  tab2..----..291.
17e90 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .3....skipif mys
17ea0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
17eb0 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
17ec0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 34 36 0d  wsort label-546.
17ed0 0a 53 45 4c 45 43 54 20 39 37 20 2a 20 2b 20 43  .SELECT 97 * + C
17ee0 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
17ef0 6c 30 2c 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  l0, COUNT ( * ) 
17f00 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
17f10 0a 32 39 31 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79  .291..3....query
17f20 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
17f30 43 54 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 63 6f  CT - col1 * + co
17f40 6c 31 20 2d 20 2b 20 2b 20 63 6f 6c 32 20 46 52  l1 - + + col2 FR
17f50 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
17f60 32 32 37 37 0d 0a 2d 32 39 32 0d 0a 2d 38 34 0d  2277..-292..-84.
17f70 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
17f80 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61  # CAST syntax: a
17f90 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
17fa0 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
17fb0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
17fc0 6c 61 62 65 6c 2d 35 34 38 0d 0a 53 45 4c 45 43  label-548..SELEC
17fd0 54 20 41 4c 4c 20 28 20 2d 20 2d 20 43 41 53 54  T ALL ( - - CAST
17fe0 28 20 2d 20 2b 20 4d 49 4e 28 20 41 4c 4c 20 2b  ( - + MIN( ALL +
17ff0 20 33 32 20 29 20 41 53 20 53 49 47 4e 45 44 20   32 ) AS SIGNED 
18000 29 20 29 20 2a 20 43 4f 55 4e 54 28 20 2a 20 29  ) ) * COUNT( * )
18010 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
18020 0d 0a 2d 39 36 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-96....skipif 
18030 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
18040 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
18050 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 34  rowsort label-54
18060 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28 20  8..SELECT ALL ( 
18070 2d 20 2d 20 43 41 53 54 20 28 20 2d 20 2b 20 4d  - - CAST ( - + M
18080 49 4e 20 28 20 41 4c 4c 20 2b 20 33 32 20 29 20  IN ( ALL + 32 ) 
18090 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20 2a  AS INTEGER ) ) *
180a0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f   COUNT ( * ) FRO
180b0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 39  M tab2..----..-9
180c0 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  6....query I row
180d0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 35 20 2d  sort..SELECT 5 -
180e0 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 32 20 41   col2 + - col2 A
180f0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
18100 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 33 0d 0a 2d 31  ..----..-113..-1
18110 33 31 0d 0a 2d 31 38 37 0d 0a 0d 0a 6f 6e 6c 79  31..-187....only
18120 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
18130 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
18140 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
18150 61 62 65 6c 2d 35 35 30 0d 0a 53 45 4c 45 43 54  abel-550..SELECT
18160 20 2d 20 37 35 20 2d 20 2d 20 2d 20 53 55 4d 28   - 75 - - - SUM(
18170 20 32 39 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20   29 ) col0 FROM 
18180 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 32  tab2..----..-162
18190 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
181a0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
181b0 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
181c0 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
181d0 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
181e0 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
181f0 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
18200 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
18210 6c 2d 35 35 30 0d 0a 53 45 4c 45 43 54 20 2d 20  l-550..SELECT - 
18220 37 35 20 2d 20 2d 20 2d 20 53 55 4d 20 28 20 32  75 - - - SUM ( 2
18230 39 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  9 ) col0 FROM ta
18240 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 32 0d 0a  b2..----..-162..
18250 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
18260 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31  t..SELECT - col1
18270 20 2a 20 2b 20 28 20 2d 20 63 6f 6c 30 20 29 20   * + ( - col0 ) 
18280 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
18290 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
182a0 0a 32 33 34 36 0d 0a 34 39 32 38 0d 0a 35 30 32  .2346..4928..502
182b0 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  5....onlyif mysq
182c0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
182d0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
182e0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 35  rowsort label-55
182f0 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  2..SELECT DISTIN
18300 43 54 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20  CT + + COUNT( * 
18310 29 20 46 52 4f 4d 20 28 20 74 61 62 31 20 41 53  ) FROM ( tab1 AS
18320 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
18330 20 74 61 62 32 20 41 53 20 63 6f 72 31 20 29 0d   tab2 AS cor1 ).
18340 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 73 6b 69 70  .----..9....skip
18350 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
18360 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
18370 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
18380 2d 35 35 32 0d 0a 53 45 4c 45 43 54 20 44 49 53  -552..SELECT DIS
18390 54 49 4e 43 54 20 2b 20 2b 20 43 4f 55 4e 54 20  TINCT + + COUNT 
183a0 28 20 2a 20 29 20 46 52 4f 4d 20 28 20 74 61 62  ( * ) FROM ( tab
183b0 31 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  1 AS cor0 CROSS 
183c0 4a 4f 49 4e 20 74 61 62 32 20 41 53 20 63 6f 72  JOIN tab2 AS cor
183d0 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a  1 )..----..9....
183e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
183f0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f  .SELECT ALL - co
18400 6c 30 20 2a 20 2b 20 2d 20 31 31 20 46 52 4f 4d  l0 * + - 11 FROM
18410 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 30 36   tab2..----..506
18420 0d 0a 37 30 34 0d 0a 38 32 35 0d 0a 0d 0a 71 75  ..704..825....qu
18430 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
18440 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
18450 20 37 33 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   73 AS col1 FROM
18460 20 74 61 62 31 2c 20 74 61 62 31 20 41 53 20 63   tab1, tab1 AS c
18470 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 33 0d 0a  or0..----..-73..
18480 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
18490 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67   CAST syntax: ag
184a0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
184b0 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a  DECIMAL type: ..
184c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
184d0 6c 61 62 65 6c 2d 35 35 35 0d 0a 53 45 4c 45 43  label-555..SELEC
184e0 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20 41 4c 4c  T ALL COUNT( ALL
184f0 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   + CAST( NULL AS
18500 20 44 45 43 49 4d 41 4c 20 29 20 29 20 46 52 4f   DECIMAL ) ) FRO
18510 4d 20 74 61 62 30 20 63 6f 72 30 20 43 52 4f 53  M tab0 cor0 CROS
18520 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63  S JOIN tab0 AS c
18530 6f 72 31 20 57 48 45 52 45 20 38 35 20 49 53 20  or1 WHERE 85 IS 
18540 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  NULL..----..0...
18550 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
18560 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
18570 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
18580 6c 61 62 65 6c 2d 35 35 35 0d 0a 53 45 4c 45 43  label-555..SELEC
18590 54 20 41 4c 4c 20 43 4f 55 4e 54 20 28 20 41 4c  T ALL COUNT ( AL
185a0 4c 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  L + CAST ( NULL 
185b0 41 53 20 52 45 41 4c 20 29 20 29 20 46 52 4f 4d  AS REAL ) ) FROM
185c0 20 74 61 62 30 20 63 6f 72 30 20 43 52 4f 53 53   tab0 cor0 CROSS
185d0 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63 6f   JOIN tab0 AS co
185e0 72 31 20 57 48 45 52 45 20 38 35 20 49 53 20 4e  r1 WHERE 85 IS N
185f0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  ULL..----..0....
18600 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
18610 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f  .SELECT ALL - co
18620 6c 31 20 2a 20 2b 20 2d 20 63 6f 6c 30 20 41 53  l1 * + - col0 AS
18630 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
18640 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
18650 32 31 35 0d 0a 31 38 32 37 0d 0a 39 37 0d 0a 0d  215..1827..97...
18660 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
18670 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c  ..SELECT ALL col
18680 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
18690 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  or0 WHERE NOT + 
186a0 31 39 20 3e 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  19 >= NULL..----
186b0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
186c0 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
186d0 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
186e0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
186f0 61 62 65 6c 2d 35 35 38 0d 0a 53 45 4c 45 43 54  abel-558..SELECT
18700 20 41 4c 4c 20 2b 20 2b 20 63 6f 6c 32 20 44 49   ALL + + col2 DI
18710 56 20 2b 20 63 6f 6c 30 20 2a 20 36 32 20 41 53  V + col0 * 62 AS
18720 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
18730 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30  AS cor0..----..0
18740 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  ..0..0....skipif
18750 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
18760 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
18770 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
18780 35 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  58..SELECT ALL +
18790 20 2b 20 63 6f 6c 32 20 2f 20 2b 20 63 6f 6c 30   + col2 / + col0
187a0 20 2a 20 36 32 20 41 53 20 63 6f 6c 31 20 46 52   * 62 AS col1 FR
187b0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
187c0 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a  .----..0..0..0..
187d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
187e0 74 0d 0a 53 45 4c 45 43 54 20 28 20 2d 20 39 37  t..SELECT ( - 97
187f0 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
18800 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
18810 2d 2d 0d 0a 2d 39 37 0d 0a 2d 39 37 0d 0a 2d 39  --..-97..-97..-9
18820 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  7....query II ro
18830 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
18840 6c 32 20 41 53 20 63 6f 6c 31 2c 20 2d 20 63 6f  l2 AS col1, - co
18850 6c 32 20 2b 20 2b 20 63 6f 6c 32 20 46 52 4f 4d  l2 + + col2 FROM
18860 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab0 cor0..----
18870 0d 0a 31 30 0d 0a 30 0d 0a 34 37 0d 0a 30 0d 0a  ..10..0..47..0..
18880 39 39 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  99..0....onlyif 
18890 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
188a0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
188b0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
188c0 6c 2d 35 36 31 0d 0a 53 45 4c 45 43 54 20 44 49  l-561..SELECT DI
188d0 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 28 20  STINCT - COUNT( 
188e0 44 49 53 54 49 4e 43 54 20 2b 20 28 20 2d 20 2b  DISTINCT + ( - +
188f0 20 28 20 2b 20 63 6f 6c 31 20 29 20 29 20 29 20   ( + col1 ) ) ) 
18900 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
18910 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
18920 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .-3....skipif my
18930 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
18940 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
18950 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 36 31 0d  wsort label-561.
18960 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
18970 20 2d 20 43 4f 55 4e 54 20 28 20 44 49 53 54 49   - COUNT ( DISTI
18980 4e 43 54 20 2b 20 28 20 2d 20 2b 20 28 20 2b 20  NCT + ( - + ( + 
18990 63 6f 6c 31 20 29 20 29 20 29 20 41 53 20 63 6f  col1 ) ) ) AS co
189a0 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
189b0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a  cor0..----..-3..
189c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
189d0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
189e0 43 54 20 63 6f 6c 30 20 2a 20 2b 20 37 38 20 41  CT col0 * + 78 A
189f0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
18a00 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 28 20   cor0 WHERE + ( 
18a10 2d 20 2d 20 63 6f 6c 31 20 29 20 4e 4f 54 20 49  - - col1 ) NOT I
18a20 4e 20 28 20 2d 20 2b 20 63 6f 6c 31 2c 20 2d 20  N ( - + col1, - 
18a30 63 6f 6c 31 20 2a 20 2d 20 33 35 2c 20 63 6f 6c  col1 * - 35, col
18a40 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  1 )..----....ski
18a50 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
18a60 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
18a70 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
18a80 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
18a90 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
18aa0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
18ab0 36 35 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  65 col1 FROM tab
18ac0 30 0d 0a 2d 2d 2d 2d 0d 0a 36 35 0d 0a 36 35 0d  0..----..65..65.
18ad0 0a 36 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .65....onlyif my
18ae0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
18af0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
18b00 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
18b10 72 74 20 6c 61 62 65 6c 2d 35 36 34 0d 0a 53 45  rt label-564..SE
18b20 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
18b30 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
18b40 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 31 2c 20  GNED ) AS col1, 
18b50 2d 20 36 39 20 41 53 20 63 6f 6c 30 20 46 52 4f  - 69 AS col0 FRO
18b60 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab2..----..NU
18b70 4c 4c 0d 0a 2d 36 39 0d 0a 0d 0a 73 6b 69 70 69  LL..-69....skipi
18b80 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
18b90 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
18ba0 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
18bb0 2d 35 36 34 0d 0a 53 45 4c 45 43 54 20 44 49 53  -564..SELECT DIS
18bc0 54 49 4e 43 54 20 2b 20 43 41 53 54 20 28 20 4e  TINCT + CAST ( N
18bd0 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
18be0 20 41 53 20 63 6f 6c 31 2c 20 2d 20 36 39 20 41   AS col1, - 69 A
18bf0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
18c00 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 2d 36  ..----..NULL..-6
18c10 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  9....onlyif mysq
18c20 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
18c30 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
18c40 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
18c50 6c 61 62 65 6c 2d 35 36 35 0d 0a 53 45 4c 45 43  label-565..SELEC
18c60 54 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  T + CAST( NULL A
18c70 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20  S SIGNED ) FROM 
18c80 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 4e  tab1 WHERE NOT N
18c90 55 4c 4c 20 3d 20 2d 20 2b 20 63 6f 6c 31 0d 0a  ULL = - + col1..
18ca0 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ----....skipif m
18cb0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
18cc0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
18cd0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 36 35  owsort label-565
18ce0 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54 20  ..SELECT + CAST 
18cf0 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
18d00 52 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57 48  R ) FROM tab1 WH
18d10 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3d 20 2d  ERE NOT NULL = -
18d20 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d   + col1..----...
18d30 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
18d40 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
18d50 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
18d60 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
18d70 6c 2d 35 36 36 0d 0a 53 45 4c 45 43 54 20 41 4c  l-566..SELECT AL
18d80 4c 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  L - col0 FROM ta
18d90 62 32 20 57 48 45 52 45 20 2b 20 2d 20 43 41 53  b2 WHERE + - CAS
18da0 54 28 20 2b 20 63 6f 6c 30 20 41 53 20 53 49 47  T( + col0 AS SIG
18db0 4e 45 44 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c  NED ) IS NOT NUL
18dc0 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a 2d 36  L..----..-46..-6
18dd0 34 0d 0a 2d 37 35 0d 0a 0d 0a 73 6b 69 70 69 66  4..-75....skipif
18de0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
18df0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
18e00 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
18e10 36 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  66..SELECT ALL -
18e20 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
18e30 57 48 45 52 45 20 2b 20 2d 20 43 41 53 54 20 28  WHERE + - CAST (
18e40 20 2b 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47   + col0 AS INTEG
18e50 45 52 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  ER ) IS NOT NULL
18e60 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a 2d 36 34  ..----..-46..-64
18e70 0d 0a 2d 37 35 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-75....query I
18e80 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
18e90 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
18ea0 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 63 6f  OM tab2 WHERE co
18eb0 6c 31 20 2a 20 2d 20 63 6f 6c 30 20 3c 3d 20 2d  l1 * - col0 <= -
18ec0 20 34 39 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c   49..----..9 val
18ed0 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37  ues hashing to 7
18ee0 35 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38  5c998aa53ac83218
18ef0 63 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d  cbf2feb962d0a49.
18f00 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
18f10 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
18f20 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
18f30 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 36 38 0d  wsort label-568.
18f40 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28  .SELECT - COUNT(
18f50 20 2a 20 29 20 2b 20 2b 20 43 4f 55 4e 54 28 20   * ) + + COUNT( 
18f60 2a 20 29 20 2a 20 2b 20 34 34 20 2b 20 2d 20 2b  * ) * + 44 + - +
18f70 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 43 4f   COUNT( * ) * CO
18f80 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
18f90 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 32 30 0d 0a 0d  b1..----..120...
18fa0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
18fb0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
18fc0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
18fd0 6c 61 62 65 6c 2d 35 36 38 0d 0a 53 45 4c 45 43  label-568..SELEC
18fe0 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  T - COUNT ( * ) 
18ff0 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  + + COUNT ( * ) 
19000 2a 20 2b 20 34 34 20 2b 20 2d 20 2b 20 43 4f 55  * + 44 + - + COU
19010 4e 54 20 28 20 2a 20 29 20 2a 20 43 4f 55 4e 54  NT ( * ) * COUNT
19020 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31   ( * ) FROM tab1
19030 0d 0a 2d 2d 2d 2d 0d 0a 31 32 30 0d 0a 0d 0a 71  ..----..120....q
19040 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
19050 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
19060 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 4e  tab2 WHERE NOT N
19070 55 4c 4c 20 42 45 54 57 45 45 4e 20 2b 20 63 6f  ULL BETWEEN + co
19080 6c 32 20 2a 20 63 6f 6c 31 20 2a 20 31 38 20 2a  l2 * col1 * 18 *
19090 20 2d 20 37 34 20 41 4e 44 20 2d 20 34 31 0d 0a   - 74 AND - 41..
190a0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
190b0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
190c0 20 41 4c 4c 20 63 6f 6c 30 20 41 53 20 63 6f 6c   ALL col0 AS col
190d0 31 2c 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 63 6f  1, + col0 * + co
190e0 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l2 AS col1 FROM 
190f0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a  tab1..----..51..
19100 34 38 39 36 0d 0a 38 35 0d 0a 35 30 31 35 0d 0a  4896..85..5015..
19110 39 31 0d 0a 36 31 38 38 0d 0a 0d 0a 6f 6e 6c 79  91..6188....only
19120 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
19130 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
19140 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
19150 61 62 65 6c 2d 35 37 31 0d 0a 53 45 4c 45 43 54  abel-571..SELECT
19160 20 41 4c 4c 20 2b 20 2b 20 53 55 4d 28 20 2d 20   ALL + + SUM( - 
19170 2b 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61  + col2 ) FROM ta
19180 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
19190 0d 0a 2d 32 32 33 0d 0a 0d 0a 73 6b 69 70 69 66  ..-223....skipif
191a0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
191b0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
191c0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
191d0 37 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  71..SELECT ALL +
191e0 20 2b 20 53 55 4d 20 28 20 2d 20 2b 20 63 6f 6c   + SUM ( - + col
191f0 32 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  2 ) FROM tab1 AS
19200 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32   cor0..----..-22
19210 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
19220 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
19230 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
19240 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
19250 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
19260 72 74 20 6c 61 62 65 6c 2d 35 37 32 0d 0a 53 45  rt label-572..SE
19270 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f  LECT DISTINCT CO
19280 55 4e 54 28 20 2a 20 29 20 2b 20 2d 20 35 38 2c  UNT( * ) + - 58,
19290 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
192a0 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 32 20  IGNED ) AS col2 
192b0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
192c0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 35 0d 0a 4e 55  0..----..-55..NU
192d0 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
192e0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
192f0 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
19300 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 37 32 0d  wsort label-572.
19310 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
19320 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2d   COUNT ( * ) + -
19330 20 35 38 2c 20 43 41 53 54 20 28 20 4e 55 4c 4c   58, CAST ( NULL
19340 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53   AS INTEGER ) AS
19350 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
19360 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
19370 35 35 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72  55..NULL....quer
19380 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
19390 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  ECT DISTINCT col
193a0 32 20 2d 20 2b 20 34 31 20 46 52 4f 4d 20 74 61  2 - + 41 FROM ta
193b0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
193c0 0d 0a 31 38 0d 0a 32 37 0d 0a 35 35 0d 0a 0d 0a  ..18..27..55....
193d0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
193e0 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
193f0 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
19400 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
19410 2d 35 37 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -574..SELECT ALL
19420 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 2b 20 39 20   + col1 + - + 9 
19430 2d 20 43 41 53 54 28 20 2d 20 63 6f 6c 30 20 41  - CAST( - col0 A
19440 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2b 20 2b  S SIGNED ) * + +
19450 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
19460 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  AS cor0..----..2
19470 33 38 38 0d 0a 34 39 39 36 0d 0a 35 30 38 33 0d  388..4996..5083.
19480 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
19490 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
194a0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
194b0 74 20 6c 61 62 65 6c 2d 35 37 34 0d 0a 53 45 4c  t label-574..SEL
194c0 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 2b  ECT ALL + col1 +
194d0 20 2d 20 2b 20 39 20 2d 20 43 41 53 54 20 28 20   - + 9 - CAST ( 
194e0 2d 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45  - col0 AS INTEGE
194f0 52 20 29 20 2a 20 2b 20 2b 20 63 6f 6c 31 20 46  R ) * + + col1 F
19500 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
19510 0d 0a 2d 2d 2d 2d 0d 0a 32 33 38 38 0d 0a 34 39  ..----..2388..49
19520 39 36 0d 0a 35 30 38 33 0d 0a 0d 0a 71 75 65 72  96..5083....quer
19530 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
19540 45 43 54 20 2d 20 2d 20 63 6f 6c 31 20 2b 20 2b  ECT - - col1 + +
19550 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20   + col0 AS col2 
19560 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
19570 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 38 0d 0a 39 36  0..----..108..96
19580 0d 0a 39 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..98....onlyif m
19590 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
195a0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
195b0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
195c0 2d 35 37 36 0d 0a 53 45 4c 45 43 54 20 2d 20 28  -576..SELECT - (
195d0 20 4d 49 4e 28 20 41 4c 4c 20 63 6f 6c 30 20 29   MIN( ALL col0 )
195e0 20 29 20 2b 20 37 39 20 63 6f 6c 32 20 46 52 4f   ) + 79 col2 FRO
195f0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
19600 2d 2d 2d 2d 0d 0a 36 34 0d 0a 0d 0a 73 6b 69 70  ----..64....skip
19610 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
19620 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
19630 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
19640 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
19650 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
19660 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
19670 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
19680 6f 72 74 20 6c 61 62 65 6c 2d 35 37 36 0d 0a 53  ort label-576..S
19690 45 4c 45 43 54 20 2d 20 28 20 4d 49 4e 20 28 20  ELECT - ( MIN ( 
196a0 41 4c 4c 20 63 6f 6c 30 20 29 20 29 20 2b 20 37  ALL col0 ) ) + 7
196b0 39 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  9 col2 FROM tab0
196c0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
196d0 36 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  64....query II r
196e0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
196f0 6f 6c 30 20 2b 20 2d 20 32 35 20 41 53 20 63 6f  ol0 + - 25 AS co
19700 6c 31 2c 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30  l1, col2 AS col0
19710 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d   FROM tab2 cor0.
19720 0a 2d 2d 2d 2d 0d 0a 32 31 0d 0a 32 33 0d 0a 33  .----..21..23..3
19730 39 0d 0a 34 30 0d 0a 35 30 0d 0a 35 38 0d 0a 0d  9..40..50..58...
19740 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
19750 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
19760 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
19770 6f 72 74 20 6c 61 62 65 6c 2d 35 37 38 0d 0a 53  ort label-578..S
19780 45 4c 45 43 54 20 2d 20 36 31 20 2b 20 43 4f 55  ELECT - 61 + COU
19790 4e 54 28 20 2b 20 63 6f 6c 32 20 29 20 41 53 20  NT( + col2 ) AS 
197a0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
197b0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  S cor0..----..-5
197c0 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  8....skipif mysq
197d0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
197e0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
197f0 6f 72 74 20 6c 61 62 65 6c 2d 35 37 38 0d 0a 53  ort label-578..S
19800 45 4c 45 43 54 20 2d 20 36 31 20 2b 20 43 4f 55  ELECT - 61 + COU
19810 4e 54 20 28 20 2b 20 63 6f 6c 32 20 29 20 41 53  NT ( + col2 ) AS
19820 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
19830 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
19840 35 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  58....query I ro
19850 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
19860 6c 30 20 2a 20 2b 20 30 20 41 53 20 63 6f 6c 31  l0 * + 0 AS col1
19870 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
19880 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 71 75 65  ..0..0..0....que
19890 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
198a0 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2a 20 2b 20  LECT + col2 * + 
198b0 36 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  62 FROM tab1..--
198c0 2d 2d 0d 0a 33 36 35 38 0d 0a 34 32 31 36 0d 0a  --..3658..4216..
198d0 35 39 35 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20  5952....query I 
198e0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
198f0 2d 20 35 39 20 2a 20 63 6f 6c 30 20 41 53 20 63  - 59 * col0 AS c
19900 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
19910 2d 2d 2d 0d 0a 2d 32 37 31 34 0d 0a 2d 33 37 37  ---..-2714..-377
19920 36 0d 0a 2d 34 34 32 35 0d 0a 0d 0a 71 75 65 72  6..-4425....quer
19930 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
19940 4c 45 43 54 20 63 6f 6c 32 2c 20 2d 20 63 6f 6c  LECT col2, - col
19950 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  2 AS col0 FROM t
19960 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
19970 2d 0d 0a 35 39 0d 0a 2d 35 39 0d 0a 36 38 0d 0a  -..59..-59..68..
19980 2d 36 38 0d 0a 39 36 0d 0a 2d 39 36 0d 0a 0d 0a  -68..96..-96....
19990 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
199a0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 28 20  .SELECT ALL - ( 
199b0 2b 20 2b 20 63 6f 6c 32 20 29 20 41 53 20 63 6f  + + col2 ) AS co
199c0 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
199d0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d  cor0..----..-10.
199e0 0a 2d 34 37 0d 0a 2d 39 39 0d 0a 0d 0a 71 75 65  .-47..-99....que
199f0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
19a00 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
19a10 6f 6c 30 2c 20 36 36 20 2b 20 2d 20 2b 20 63 6f  ol0, 66 + - + co
19a20 6c 30 20 2a 20 2b 20 63 6f 6c 31 20 41 53 20 63  l0 * + col1 AS c
19a30 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol1 FROM tab1 AS
19a40 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d   cor0..----..51.
19a50 0a 2d 36 34 38 0d 0a 38 35 0d 0a 2d 33 35 39 0d  .-648..85..-359.
19a60 0a 39 31 0d 0a 2d 34 32 31 31 0d 0a 0d 0a 71 75  .91..-4211....qu
19a70 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
19a80 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c  SELECT ALL - col
19a90 32 20 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 31 20  2 AS col2, col1 
19aa0 2a 20 2d 20 34 20 46 52 4f 4d 20 74 61 62 32 20  * - 4 FROM tab2 
19ab0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
19ac0 32 33 0d 0a 2d 32 30 34 0d 0a 2d 34 30 0d 0a 2d  23..-204..-40..-
19ad0 33 30 38 0d 0a 2d 35 38 0d 0a 2d 32 36 38 0d 0a  308..-58..-268..
19ae0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
19af0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
19b00 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  INCT * FROM tab2
19b10 20 57 48 45 52 45 20 4e 55 4c 4c 20 42 45 54 57   WHERE NULL BETW
19b20 45 45 4e 20 28 20 4e 55 4c 4c 20 29 20 41 4e 44  EEN ( NULL ) AND
19b30 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73   NULL..----....s
19b40 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
19b50 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
19b60 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
19b70 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
19b80 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
19b90 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
19ba0 41 4c 4c 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 32  ALL - col1 + + 2
19bb0 34 20 2a 20 63 6f 6c 31 20 63 6f 6c 32 20 46 52  4 * col1 col2 FR
19bc0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab1..----..1
19bd0 30 38 31 0d 0a 31 31 35 0d 0a 33 32 32 0d 0a 0d  081..115..322...
19be0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
19bf0 0d 0a 53 45 4c 45 43 54 20 2b 20 35 36 20 2b 20  ..SELECT + 56 + 
19c00 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f  col0 AS col2 FRO
19c10 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 30  M tab2..----..10
19c20 32 0d 0a 31 32 30 0d 0a 31 33 31 0d 0a 0d 0a 71  2..120..131....q
19c30 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
19c40 53 45 4c 45 43 54 20 28 20 32 34 20 29 20 2a 20  SELECT ( 24 ) * 
19c50 2b 20 63 6f 6c 30 20 2b 20 36 35 20 46 52 4f 4d  + col0 + 65 FROM
19c60 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 35   tab0..----..215
19c70 33 0d 0a 32 33 39 33 0d 0a 34 32 35 0d 0a 0d 0a  3..2393..425....
19c80 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
19c90 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
19ca0 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
19cb0 4e 4f 54 20 63 6f 6c 31 20 4e 4f 54 20 49 4e 20  NOT col1 NOT IN 
19cc0 28 20 2d 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d  ( - col0 )..----
19cd0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
19ce0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
19cf0 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
19d00 63 6f 6c 32 20 2a 20 2d 20 28 20 2b 20 35 34 20  col2 * - ( + 54 
19d10 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  ) IS NULL..----.
19d20 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
19d30 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
19d40 4e 43 54 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20  NCT + col0 FROM 
19d50 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 4e  tab2 WHERE NOT N
19d60 55 4c 4c 20 3d 20 2d 20 63 6f 6c 31 0d 0a 2d 2d  ULL = - col1..--
19d70 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
19d80 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
19d90 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
19da0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
19db0 20 6c 61 62 65 6c 2d 35 39 33 0d 0a 53 45 4c 45   label-593..SELE
19dc0 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43 41  CT DISTINCT - CA
19dd0 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
19de0 45 44 20 29 20 2a 20 30 20 46 52 4f 4d 20 74 61  ED ) * 0 FROM ta
19df0 62 31 20 57 48 45 52 45 20 4e 4f 54 20 28 20 63  b1 WHERE NOT ( c
19e00 6f 6c 32 20 29 20 3c 20 63 6f 6c 32 0d 0a 2d 2d  ol2 ) < col2..--
19e10 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
19e20 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
19e30 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
19e40 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
19e50 2d 35 39 33 0d 0a 53 45 4c 45 43 54 20 44 49 53  -593..SELECT DIS
19e60 54 49 4e 43 54 20 2d 20 43 41 53 54 20 28 20 4e  TINCT - CAST ( N
19e70 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
19e80 20 2a 20 30 20 46 52 4f 4d 20 74 61 62 31 20 57   * 0 FROM tab1 W
19e90 48 45 52 45 20 4e 4f 54 20 28 20 63 6f 6c 32 20  HERE NOT ( col2 
19ea0 29 20 3c 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a  ) < col2..----..
19eb0 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  NULL....onlyif m
19ec0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
19ed0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
19ee0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
19ef0 2d 35 39 34 0d 0a 53 45 4c 45 43 54 20 44 49 53  -594..SELECT DIS
19f00 54 49 4e 43 54 20 43 4f 55 4e 54 28 20 2a 20 29  TINCT COUNT( * )
19f10 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
19f20 62 31 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2d  b1 WHERE NOT ( -
19f30 20 34 33 20 2b 20 28 20 63 6f 6c 31 20 29 20 29   43 + ( col1 ) )
19f40 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 28 20 63   NOT BETWEEN ( c
19f50 6f 6c 32 20 2a 20 2d 20 38 37 20 2b 20 35 20 29  ol2 * - 87 + 5 )
19f60 20 41 4e 44 20 28 20 28 20 2b 20 63 6f 6c 30 20   AND ( ( + col0 
19f70 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a  ) )..----..3....
19f80 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
19f90 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
19fa0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
19fb0 61 62 65 6c 2d 35 39 34 0d 0a 53 45 4c 45 43 54  abel-594..SELECT
19fc0 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 20   DISTINCT COUNT 
19fd0 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ( * ) AS col2 FR
19fe0 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f  OM tab1 WHERE NO
19ff0 54 20 28 20 2d 20 34 33 20 2b 20 28 20 63 6f 6c  T ( - 43 + ( col
1a000 31 20 29 20 29 20 4e 4f 54 20 42 45 54 57 45 45  1 ) ) NOT BETWEE
1a010 4e 20 28 20 63 6f 6c 32 20 2a 20 2d 20 38 37 20  N ( col2 * - 87 
1a020 2b 20 35 20 29 20 41 4e 44 20 28 20 28 20 2b 20  + 5 ) AND ( ( + 
1a030 63 6f 6c 30 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a  col0 ) )..----..
1a040 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  3....query I row
1a050 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
1a060 54 49 4e 43 54 20 63 6f 6c 32 20 46 52 4f 4d 20  TINCT col2 FROM 
1a070 74 61 62 32 20 57 48 45 52 45 20 2b 20 63 6f 6c  tab2 WHERE + col
1a080 31 20 49 4e 20 28 20 33 38 20 2a 20 63 6f 6c 32  1 IN ( 38 * col2
1a090 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79   )..----....only
1a0a0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
1a0b0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
1a0c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1a0d0 61 62 65 6c 2d 35 39 36 0d 0a 53 45 4c 45 43 54  abel-596..SELECT
1a0e0 20 44 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e   DISTINCT + COUN
1a0f0 54 28 20 2a 20 29 20 2a 20 2d 20 43 4f 55 4e 54  T( * ) * - COUNT
1a100 28 20 2a 20 29 20 2b 20 37 34 20 41 53 20 63 6f  ( * ) + 74 AS co
1a110 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
1a120 2d 2d 0d 0a 36 35 0d 0a 0d 0a 73 6b 69 70 69 66  --..65....skipif
1a130 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1a140 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1a150 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
1a160 39 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  96..SELECT DISTI
1a170 4e 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  NCT + COUNT ( * 
1a180 29 20 2a 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  ) * - COUNT ( * 
1a190 29 20 2b 20 37 34 20 41 53 20 63 6f 6c 30 20 46  ) + 74 AS col0 F
1a1a0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
1a1b0 36 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  65....query III 
1a1c0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1a1d0 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  * FROM tab1 WHER
1a1e0 45 20 28 20 2d 20 31 37 20 29 20 3c 20 28 20 2d  E ( - 17 ) < ( -
1a1f0 20 36 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73   62 )..----....s
1a200 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
1a210 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
1a220 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
1a230 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
1a240 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
1a250 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1a260 41 4c 4c 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 35  ALL - col1 + + 5
1a270 32 20 2a 20 2b 20 63 6f 6c 31 20 63 6f 6c 30 20  2 * + col1 col0 
1a280 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
1a290 0a 32 33 39 37 0d 0a 32 35 35 0d 0a 37 31 34 0d  .2397..255..714.
1a2a0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1a2b0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61  # CAST syntax: a
1a2c0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
1a2d0 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
1a2e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1a2f0 6c 61 62 65 6c 2d 35 39 39 0d 0a 53 45 4c 45 43  label-599..SELEC
1a300 54 20 43 41 53 54 28 20 2d 20 4d 49 4e 28 20 44  T CAST( - MIN( D
1a310 49 53 54 49 4e 43 54 20 28 20 34 30 20 29 20 29  ISTINCT ( 40 ) )
1a320 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f   AS SIGNED ) FRO
1a330 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34  M tab0..----..-4
1a340 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
1a350 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1a360 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1a370 6f 72 74 20 6c 61 62 65 6c 2d 35 39 39 0d 0a 53  ort label-599..S
1a380 45 4c 45 43 54 20 43 41 53 54 20 28 20 2d 20 4d  ELECT CAST ( - M
1a390 49 4e 20 28 20 44 49 53 54 49 4e 43 54 20 28 20  IN ( DISTINCT ( 
1a3a0 34 30 20 29 20 29 20 41 53 20 49 4e 54 45 47 45  40 ) ) AS INTEGE
1a3b0 52 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  R ) FROM tab0..-
1a3c0 2d 2d 2d 0d 0a 2d 34 30 0d 0a 0d 0a 71 75 65 72  ---..-40....quer
1a3d0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1a3e0 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  ECT DISTINCT col
1a3f0 31 20 2a 20 2b 20 35 20 41 53 20 63 6f 6c 32 20  1 * + 5 AS col2 
1a400 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
1a410 0a 32 33 35 0d 0a 32 35 0d 0a 37 30 0d 0a 0d 0a  .235..25..70....
1a420 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
1a430 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
1a440 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
1a450 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1a460 2d 36 30 31 0d 0a 53 45 4c 45 43 54 20 44 49 53  -601..SELECT DIS
1a470 54 49 4e 43 54 20 28 20 2d 20 43 41 53 54 28 20  TINCT ( - CAST( 
1a480 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
1a490 20 29 20 2a 20 2d 20 63 6f 6c 30 20 46 52 4f 4d   ) * - col0 FROM
1a4a0 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20   tab1 WHERE NOT 
1a4b0 2b 20 34 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  + 42 IS NOT NULL
1a4c0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
1a4d0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1a4e0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1a4f0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1a500 30 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  01..SELECT DISTI
1a510 4e 43 54 20 28 20 2d 20 43 41 53 54 20 28 20 4e  NCT ( - CAST ( N
1a520 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
1a530 20 29 20 2a 20 2d 20 63 6f 6c 30 20 46 52 4f 4d   ) * - col0 FROM
1a540 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20   tab1 WHERE NOT 
1a550 2b 20 34 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  + 42 IS NOT NULL
1a560 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
1a570 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1a580 54 20 44 49 53 54 49 4e 43 54 20 33 33 20 46 52  T DISTINCT 33 FR
1a590 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
1a5a0 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a  T NULL IS NULL..
1a5b0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
1a5c0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1a5d0 44 49 53 54 49 4e 43 54 20 36 34 20 2a 20 63 6f  DISTINCT 64 * co
1a5e0 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l0 FROM tab1..--
1a5f0 2d 2d 0d 0a 33 32 36 34 0d 0a 35 34 34 30 0d 0a  --..3264..5440..
1a600 35 38 32 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  5824....onlyif m
1a610 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
1a620 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65  ax: DECIMAL type
1a630 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  : ..query III ro
1a640 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 30 34 0d  wsort label-604.
1a650 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
1a660 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
1a670 45 20 4e 55 4c 4c 20 49 4e 20 28 20 2b 20 43 41  E NULL IN ( + CA
1a680 53 54 28 20 63 6f 6c 32 20 41 53 20 44 45 43 49  ST( col2 AS DECI
1a690 4d 41 4c 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d  MAL ) )..----...
1a6a0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1a6b0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1a6c0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
1a6d0 74 20 6c 61 62 65 6c 2d 36 30 34 0d 0a 53 45 4c  t label-604..SEL
1a6e0 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ECT * FROM tab2 
1a6f0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55  AS cor0 WHERE NU
1a700 4c 4c 20 49 4e 20 28 20 2b 20 43 41 53 54 20 28  LL IN ( + CAST (
1a710 20 63 6f 6c 32 20 41 53 20 52 45 41 4c 20 29 20   col2 AS REAL ) 
1a720 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  )..----....query
1a730 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1a740 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 41 53  CT ALL - col0 AS
1a750 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
1a760 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
1a770 54 20 2d 20 63 6f 6c 30 20 49 53 20 4e 4f 54 20  T - col0 IS NOT 
1a780 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
1a790 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1a7a0 45 4c 45 43 54 20 31 33 20 41 53 20 63 6f 6c 30  ELECT 13 AS col0
1a7b0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
1a7c0 72 30 20 57 48 45 52 45 20 63 6f 6c 32 20 2a 20  r0 WHERE col2 * 
1a7d0 2d 20 63 6f 6c 31 20 2b 20 31 39 20 2f 20 63 6f  - col1 + 19 / co
1a7e0 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l1 IS NULL..----
1a7f0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1a800 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
1a810 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
1a820 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 30 37  owsort label-607
1a830 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1a840 54 20 4d 41 58 28 20 2d 20 35 38 20 29 20 46 52  T MAX( - 58 ) FR
1a850 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
1a860 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20 2a  WHERE NOT col2 *
1a870 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d   col2 IS NULL..-
1a880 2d 2d 2d 0d 0a 2d 35 38 0d 0a 0d 0a 73 6b 69 70  ---..-58....skip
1a890 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1a8a0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1a8b0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1a8c0 2d 36 30 37 0d 0a 53 45 4c 45 43 54 20 44 49 53  -607..SELECT DIS
1a8d0 54 49 4e 43 54 20 4d 41 58 20 28 20 2d 20 35 38  TINCT MAX ( - 58
1a8e0 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
1a8f0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63  cor0 WHERE NOT c
1a900 6f 6c 32 20 2a 20 63 6f 6c 32 20 49 53 20 4e 55  ol2 * col2 IS NU
1a910 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 38 0d 0a 0d  LL..----..-58...
1a920 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1a930 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
1a940 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
1a950 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1a960 6c 2d 36 30 38 0d 0a 53 45 4c 45 43 54 20 2b 20  l-608..SELECT + 
1a970 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
1a980 47 4e 45 44 20 29 20 2a 20 63 6f 6c 31 20 2b 20  GNED ) * col1 + 
1a990 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46  + col0 AS col2 F
1a9a0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
1a9b0 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
1a9c0 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  LL..NULL....skip
1a9d0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1a9e0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1a9f0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1aa00 2d 36 30 38 0d 0a 53 45 4c 45 43 54 20 2b 20 43  -608..SELECT + C
1aa10 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
1aa20 54 45 47 45 52 20 29 20 2a 20 63 6f 6c 31 20 2b  TEGER ) * col1 +
1aa30 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20   + col0 AS col2 
1aa40 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
1aa50 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  0..----..NULL..N
1aa60 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c  ULL..NULL....onl
1aa70 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
1aa80 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
1aa90 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1aaa0 6c 61 62 65 6c 2d 36 30 39 0d 0a 53 45 4c 45 43  label-609..SELEC
1aab0 54 20 2b 20 28 20 43 4f 55 4e 54 28 20 2a 20 29  T + ( COUNT( * )
1aac0 20 29 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20   ) + - COUNT( * 
1aad0 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  ) FROM tab2..---
1aae0 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..0....skipif m
1aaf0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1ab00 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1ab10 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 30 39  owsort label-609
1ab20 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 43 4f 55  ..SELECT + ( COU
1ab30 4e 54 20 28 20 2a 20 29 20 29 20 2b 20 2d 20 43  NT ( * ) ) + - C
1ab40 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20  OUNT ( * ) FROM 
1ab50 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  tab2..----..0...
1ab60 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1ab70 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1ab80 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1ab90 6f 72 74 20 6c 61 62 65 6c 2d 36 31 30 0d 0a 53  ort label-610..S
1aba0 45 4c 45 43 54 20 38 32 20 2b 20 2d 20 4d 49 4e  ELECT 82 + - MIN
1abb0 28 20 2b 20 34 32 20 29 20 46 52 4f 4d 20 74 61  ( + 42 ) FROM ta
1abc0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 30 0d 0a 0d 0a  b2..----..40....
1abd0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1abe0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1abf0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1ac00 61 62 65 6c 2d 36 31 30 0d 0a 53 45 4c 45 43 54  abel-610..SELECT
1ac10 20 38 32 20 2b 20 2d 20 4d 49 4e 20 28 20 2b 20   82 + - MIN ( + 
1ac20 34 32 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a  42 ) FROM tab2..
1ac30 2d 2d 2d 2d 0d 0a 34 30 0d 0a 0d 0a 6f 6e 6c 79  ----..40....only
1ac40 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
1ac50 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
1ac60 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1ac70 61 62 65 6c 2d 36 31 31 0d 0a 53 45 4c 45 43 54  abel-611..SELECT
1ac80 20 44 49 53 54 49 4e 43 54 20 36 33 20 2b 20 4d   DISTINCT 63 + M
1ac90 49 4e 28 20 63 6f 6c 30 20 29 20 41 53 20 63 6f  IN( col0 ) AS co
1aca0 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
1acb0 2d 2d 0d 0a 37 38 0d 0a 0d 0a 73 6b 69 70 69 66  --..78....skipif
1acc0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1acd0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1ace0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1acf0 31 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  11..SELECT DISTI
1ad00 4e 43 54 20 36 33 20 2b 20 4d 49 4e 20 28 20 63  NCT 63 + MIN ( c
1ad10 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ol0 ) AS col0 FR
1ad20 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 37  OM tab0..----..7
1ad30 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  8....onlyif mysq
1ad40 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
1ad50 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
1ad60 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 31  rowsort label-61
1ad70 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  2..SELECT DISTIN
1ad80 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53  CT COUNT( * ) AS
1ad90 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
1ada0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20  AS cor0 WHERE + 
1adb0 28 20 63 6f 6c 32 20 29 20 49 53 20 4e 4f 54 20  ( col2 ) IS NOT 
1adc0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d  NULL..----..3...
1add0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1ade0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1adf0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1ae00 6c 61 62 65 6c 2d 36 31 32 0d 0a 53 45 4c 45 43  label-612..SELEC
1ae10 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54  T DISTINCT COUNT
1ae20 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46   ( * ) AS col0 F
1ae30 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
1ae40 20 57 48 45 52 45 20 2b 20 28 20 63 6f 6c 32 20   WHERE + ( col2 
1ae50 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  ) IS NOT NULL..-
1ae60 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20  ---..3....query 
1ae70 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1ae80 54 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 2a 20 2d  T ALL + col0 * -
1ae90 20 63 6f 6c 30 20 2b 20 63 6f 6c 31 20 2a 20 63   col0 + col1 * c
1aea0 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol0 AS col1 FROM
1aeb0 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
1aec0 2d 2d 2d 0d 0a 2d 35 37 34 32 0d 0a 2d 39 33 31  ---..-5742..-931
1aed0 32 0d 0a 39 39 30 0d 0a 0d 0a 71 75 65 72 79 20  2..990....query 
1aee0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1aef0 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  T DISTINCT + col
1af00 30 20 2d 20 2d 20 34 35 20 46 52 4f 4d 20 74 61  0 - - 45 FROM ta
1af10 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
1af20 0d 0a 31 33 30 0d 0a 31 33 36 0d 0a 39 36 0d 0a  ..130..136..96..
1af30 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1af40 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
1af50 63 6f 6c 32 20 2a 20 2b 20 36 39 20 46 52 4f 4d  col2 * + 69 FROM
1af60 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
1af70 45 52 45 20 63 6f 6c 31 20 2b 20 31 34 20 49 53  ERE col1 + 14 IS
1af80 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
1af90 0a 2d 33 32 34 33 0d 0a 2d 36 38 33 31 0d 0a 2d  .-3243..-6831..-
1afa0 36 39 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  690....query I r
1afb0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
1afc0 20 2d 20 35 36 20 2a 20 2d 20 34 32 20 2d 20 2d   - 56 * - 42 - -
1afd0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
1afe0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  AS cor0..----..2
1aff0 33 37 35 0d 0a 32 33 39 32 0d 0a 32 34 31 30 0d  375..2392..2410.
1b000 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1b010 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
1b020 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
1b030 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 31 37 0d  wsort label-617.
1b040 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a  .SELECT COUNT( *
1b050 20 29 20 2b 20 2b 20 53 55 4d 28 20 38 34 20 29   ) + + SUM( 84 )
1b060 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
1b070 62 32 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e  b2 WHERE NOT ( N
1b080 55 4c 4c 20 29 20 42 45 54 57 45 45 4e 20 28 20  ULL ) BETWEEN ( 
1b090 4e 55 4c 4c 20 29 20 41 4e 44 20 2b 20 63 6f 6c  NULL ) AND + col
1b0a0 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  0..----..NULL...
1b0b0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1b0c0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1b0d0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1b0e0 6c 61 62 65 6c 2d 36 31 37 0d 0a 53 45 4c 45 43  label-617..SELEC
1b0f0 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20  T COUNT ( * ) + 
1b100 2b 20 53 55 4d 20 28 20 38 34 20 29 20 41 53 20  + SUM ( 84 ) AS 
1b110 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 57  col1 FROM tab2 W
1b120 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20  HERE NOT ( NULL 
1b130 29 20 42 45 54 57 45 45 4e 20 28 20 4e 55 4c 4c  ) BETWEEN ( NULL
1b140 20 29 20 41 4e 44 20 2b 20 63 6f 6c 30 0d 0a 2d   ) AND + col0..-
1b150 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c  ---..NULL....onl
1b160 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
1b170 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
1b180 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
1b190 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 31  rowsort label-61
1b1a0 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  8..SELECT DISTIN
1b1b0 43 54 20 2b 20 63 6f 6c 30 20 2b 20 33 39 20 41  CT + col0 + 39 A
1b1c0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
1b1d0 20 57 48 45 52 45 20 4e 4f 54 20 28 20 28 20 2d   WHERE NOT ( ( -
1b1e0 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
1b1f0 49 47 4e 45 44 20 29 20 29 20 2a 20 36 30 20 29  IGNED ) ) * 60 )
1b200 20 3e 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   >= NULL..----..
1b210 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1b220 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1b230 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1b240 20 6c 61 62 65 6c 2d 36 31 38 0d 0a 53 45 4c 45   label-618..SELE
1b250 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f  CT DISTINCT + co
1b260 6c 30 20 2b 20 33 39 20 41 53 20 63 6f 6c 31 20  l0 + 39 AS col1 
1b270 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
1b280 4e 4f 54 20 28 20 28 20 2d 20 43 41 53 54 20 28  NOT ( ( - CAST (
1b290 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
1b2a0 20 29 20 29 20 2a 20 36 30 20 29 20 3e 3d 20 4e   ) ) * 60 ) >= N
1b2b0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ULL..----....onl
1b2c0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
1b2d0 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
1b2e0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
1b2f0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1b300 36 31 39 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  619..SELECT * FR
1b310 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
1b320 54 20 28 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c  T ( - CAST( NULL
1b330 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20 3e   AS SIGNED ) ) >
1b340 20 28 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 31   ( col0 * + col1
1b350 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70   )..----....skip
1b360 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1b370 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1b380 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62   III rowsort lab
1b390 65 6c 2d 36 31 39 0d 0a 53 45 4c 45 43 54 20 2a  el-619..SELECT *
1b3a0 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
1b3b0 20 4e 4f 54 20 28 20 2d 20 43 41 53 54 20 28 20   NOT ( - CAST ( 
1b3c0 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
1b3d0 29 20 29 20 3e 20 28 20 63 6f 6c 30 20 2a 20 2b  ) ) > ( col0 * +
1b3e0 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   col1 )..----...
1b3f0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
1b400 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
1b410 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
1b420 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 42 45   NOT NULL NOT BE
1b430 54 57 45 45 4e 20 28 20 2b 20 63 6f 6c 32 20 2f  TWEEN ( + col2 /
1b440 20 63 6f 6c 31 20 29 20 41 4e 44 20 63 6f 6c 32   col1 ) AND col2
1b450 20 2f 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d   / - col1..----.
1b460 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1b470 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  rt..SELECT - col
1b480 31 20 2a 20 2b 20 2b 20 36 20 46 52 4f 4d 20 74  1 * + + 6 FROM t
1b490 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 36 0d  ab0..----..-126.
1b4a0 0a 2d 34 38 36 0d 0a 2d 36 0d 0a 0d 0a 71 75 65  .-486..-6....que
1b4b0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1b4c0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
1b4d0 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 32 20 2a 20  col1 * + col2 * 
1b4e0 2d 20 28 20 63 6f 6c 31 20 2a 20 34 33 20 29 20  - ( col1 * 43 ) 
1b4f0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
1b500 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 32 35 39 37  0..----..-132597
1b510 38 31 0d 0a 2d 31 38 39 36 33 30 0d 0a 2d 34 32  81..-189630..-42
1b520 35 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  57....query III 
1b530 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1b540 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
1b550 45 20 4e 4f 54 20 35 37 20 49 53 20 4e 55 4c 4c  E NOT 57 IS NULL
1b560 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
1b570 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34   hashing to c4b4
1b580 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30  2765dff94eaaa460
1b590 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a  40e537fb43b7....
1b5a0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1b5b0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1b5c0 20 28 20 35 37 20 29 20 2a 20 2b 20 35 30 20 46   ( 57 ) * + 50 F
1b5d0 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
1b5e0 4f 54 20 4e 55 4c 4c 20 49 4e 20 28 20 2b 20 36  OT NULL IN ( + 6
1b5f0 36 20 2a 20 63 6f 6c 32 20 2d 20 34 36 20 2a 20  6 * col2 - 46 * 
1b600 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a  + col1 )..----..
1b610 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
1b620 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
1b630 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  * FROM tab2 WHER
1b640 45 20 4e 4f 54 20 28 20 2d 20 63 6f 6c 32 20 29  E NOT ( - col2 )
1b650 20 3e 20 28 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d   > ( col1 )..---
1b660 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
1b670 69 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61 35  ing to 75c998aa5
1b680 33 61 63 38 33 32 31 38 63 62 66 32 66 65 62 39  3ac83218cbf2feb9
1b690 36 32 64 30 61 34 39 0d 0a 0d 0a 6f 6e 6c 79 69  62d0a49....onlyi
1b6a0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
1b6b0 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20  ate syntax: DIV 
1b6c0 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
1b6d0 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
1b6e0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32  rowsort label-62
1b6f0 36 0d 0a 53 45 4c 45 43 54 20 36 33 20 44 49 56  6..SELECT 63 DIV
1b700 20 2b 20 38 30 20 2a 20 43 4f 55 4e 54 28 20 2a   + 80 * COUNT( *
1b710 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
1b720 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
1b730 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..0....skipif 
1b740 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1b750 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1b760 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32  rowsort label-62
1b770 36 0d 0a 53 45 4c 45 43 54 20 36 33 20 2f 20 2b  6..SELECT 63 / +
1b780 20 38 30 20 2a 20 43 4f 55 4e 54 20 28 20 2a 20   80 * COUNT ( * 
1b790 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
1b7a0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
1b7b0 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -..0....onlyif m
1b7c0 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
1b7d0 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
1b7e0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1b7f0 72 74 20 6c 61 62 65 6c 2d 36 32 37 0d 0a 53 45  rt label-627..SE
1b800 4c 45 43 54 20 63 6f 6c 32 20 44 49 56 20 2d 20  LECT col2 DIV - 
1b810 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
1b820 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
1b830 20 28 20 2b 20 63 6f 6c 32 20 29 20 49 53 20 4e   ( + col2 ) IS N
1b840 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d  ULL..----..0..0.
1b850 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
1b860 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1b870 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1b880 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32 37 0d 0a  sort label-627..
1b890 53 45 4c 45 43 54 20 63 6f 6c 32 20 2f 20 2d 20  SELECT col2 / - 
1b8a0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
1b8b0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
1b8c0 20 28 20 2b 20 63 6f 6c 32 20 29 20 49 53 20 4e   ( + col2 ) IS N
1b8d0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d  ULL..----..0..0.
1b8e0 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  .0....query III 
1b8f0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1b900 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
1b910 45 20 4e 4f 54 20 4e 55 4c 4c 20 3c 20 2d 20 2b  E NOT NULL < - +
1b920 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   col0..----....o
1b930 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
1b940 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
1b950 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
1b960 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
1b970 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1b980 6c 2d 36 32 39 0d 0a 53 45 4c 45 43 54 20 44 49  l-629..SELECT DI
1b990 53 54 49 4e 43 54 20 2b 20 4d 41 58 28 20 43 41  STINCT + MAX( CA
1b9a0 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
1b9b0 45 44 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46  ED ) ) AS col1 F
1b9c0 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 20 43 52  ROM tab1 cor0 CR
1b9d0 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 63 6f  OSS JOIN tab0 co
1b9e0 72 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r1..----..NULL..
1b9f0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1ba00 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1ba10 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1ba20 20 6c 61 62 65 6c 2d 36 32 39 0d 0a 53 45 4c 45   label-629..SELE
1ba30 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 4d 41  CT DISTINCT + MA
1ba40 58 20 28 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  X ( CAST ( NULL 
1ba50 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20 41  AS INTEGER ) ) A
1ba60 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
1ba70 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
1ba80 20 74 61 62 30 20 63 6f 72 31 0d 0a 2d 2d 2d 2d   tab0 cor1..----
1ba90 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20  ..NULL....query 
1baa0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1bab0 54 20 2d 20 2b 20 35 30 20 2b 20 28 20 32 30 20  T - + 50 + ( 20 
1bac0 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
1bad0 61 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f 53  ab1 AS cor0 CROS
1bae0 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53 20 63  S JOIN tab2 AS c
1baf0 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  or1..----..9 val
1bb00 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 35  ues hashing to 5
1bb10 36 66 61 32 35 66 39 66 62 38 30 34 30 34 36 30  6fa25f9fb8040460
1bb20 66 65 33 63 38 39 34 30 30 30 65 61 38 66 62 0d  fe3c894000ea8fb.
1bb30 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1bb40 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
1bb50 4e 43 54 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  NCT col1 FROM ta
1bb60 62 31 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20  b1 WHERE ( NULL 
1bb70 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  ) IS NULL..----.
1bb80 0a 31 34 0d 0a 34 37 0d 0a 35 0d 0a 0d 0a 6f 6e  .14..47..5....on
1bb90 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
1bba0 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
1bbb0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
1bbc0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1bbd0 33 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63  32..SELECT ALL c
1bbe0 6f 6c 30 20 2b 20 2d 20 43 41 53 54 28 20 4e 55  ol0 + - CAST( NU
1bbf0 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b  LL AS SIGNED ) +
1bc00 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   - col2 FROM tab
1bc10 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  0..----..NULL..N
1bc20 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ULL..NULL....ski
1bc30 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1bc40 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1bc50 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1bc60 6c 2d 36 33 32 0d 0a 53 45 4c 45 43 54 20 41 4c  l-632..SELECT AL
1bc70 4c 20 63 6f 6c 30 20 2b 20 2d 20 43 41 53 54 20  L col0 + - CAST 
1bc80 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
1bc90 52 20 29 20 2b 20 2d 20 63 6f 6c 32 20 46 52 4f  R ) + - col2 FRO
1bca0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab0..----..NU
1bcb0 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
1bcc0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1bcd0 74 0d 0a 53 45 4c 45 43 54 20 2b 20 34 20 2a 20  t..SELECT + 4 * 
1bce0 2d 20 34 38 20 41 53 20 63 6f 6c 30 20 46 52 4f  - 48 AS col0 FRO
1bcf0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
1bd00 48 45 52 45 20 4e 4f 54 20 2d 20 35 35 20 49 53  HERE NOT - 55 IS
1bd10 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39   NULL..----..-19
1bd20 32 0d 0a 2d 31 39 32 0d 0a 2d 31 39 32 0d 0a 0d  2..-192..-192...
1bd30 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
1bd40 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
1bd50 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
1bd60 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
1bd70 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
1bd80 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1bd90 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f  CT DISTINCT - co
1bda0 6c 30 20 63 6f 6c 32 2c 20 38 20 41 53 20 63 6f  l0 col2, 8 AS co
1bdb0 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l0 FROM tab0 cor
1bdc0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 38 0d  0..----..-15..8.
1bdd0 0a 2d 38 37 0d 0a 38 0d 0a 2d 39 37 0d 0a 38 0d  .-87..8..-97..8.
1bde0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
1bdf0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
1be00 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
1be10 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
1be20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54  NOT NULL NOT BET
1be30 57 45 45 4e 20 28 20 2b 20 33 30 20 29 20 41 4e  WEEN ( + 30 ) AN
1be40 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  D NULL..----....
1be50 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
1be60 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
1be70 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
1be80 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1be90 2d 36 33 36 0d 0a 53 45 4c 45 43 54 20 2b 20 63  -636..SELECT + c
1bea0 6f 6c 31 20 44 49 56 20 28 20 63 6f 6c 31 20 29  ol1 DIV ( col1 )
1beb0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
1bec0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31 0d 0a  r0..----..1..1..
1bed0 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
1bee0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1bef0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1bf00 6f 72 74 20 6c 61 62 65 6c 2d 36 33 36 0d 0a 53  ort label-636..S
1bf10 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2f 20 28  ELECT + col1 / (
1bf20 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62   col1 ) FROM tab
1bf30 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
1bf40 0a 31 0d 0a 31 0d 0a 31 0d 0a 0d 0a 6f 6e 6c 79  .1..1..1....only
1bf50 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
1bf60 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
1bf70 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1bf80 61 62 65 6c 2d 36 33 37 0d 0a 53 45 4c 45 43 54  abel-637..SELECT
1bf90 20 2b 20 43 4f 55 4e 54 28 20 44 49 53 54 49 4e   + COUNT( DISTIN
1bfa0 43 54 20 2b 20 37 34 20 29 20 46 52 4f 4d 20 74  CT + 74 ) FROM t
1bfb0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
1bfc0 2d 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..1....skipif m
1bfd0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1bfe0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1bff0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 33 37  owsort label-637
1c000 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54  ..SELECT + COUNT
1c010 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20 37 34   ( DISTINCT + 74
1c020 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
1c030 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d  cor0..----..1...
1c040 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1c050 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
1c060 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
1c070 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
1c080 65 6c 2d 36 33 38 0d 0a 53 45 4c 45 43 54 20 2b  el-638..SELECT +
1c090 20 2d 20 37 32 20 41 53 20 63 6f 6c 30 2c 20 2b   - 72 AS col0, +
1c0a0 20 63 6f 6c 32 20 44 49 56 20 2b 20 63 6f 6c 32   col2 DIV + col2
1c0b0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
1c0c0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 32 0d 0a 31  r0..----..-72..1
1c0d0 0d 0a 2d 37 32 0d 0a 31 0d 0a 2d 37 32 0d 0a 31  ..-72..1..-72..1
1c0e0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1c0f0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1c100 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
1c110 6f 72 74 20 6c 61 62 65 6c 2d 36 33 38 0d 0a 53  ort label-638..S
1c120 45 4c 45 43 54 20 2b 20 2d 20 37 32 20 41 53 20  ELECT + - 72 AS 
1c130 63 6f 6c 30 2c 20 2b 20 63 6f 6c 32 20 2f 20 2b  col0, + col2 / +
1c140 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
1c150 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
1c160 37 32 0d 0a 31 0d 0a 2d 37 32 0d 0a 31 0d 0a 2d  72..1..-72..1..-
1c170 37 32 0d 0a 31 0d 0a 0d 0a 71 75 65 72 79 20 49  72..1....query I
1c180 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1c190 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
1c1a0 57 48 45 52 45 20 28 20 2d 20 2b 20 63 6f 6c 32  WHERE ( - + col2
1c1b0 20 2a 20 2d 20 35 38 20 29 20 3d 20 28 20 38 30   * - 58 ) = ( 80
1c1c0 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79   )..----....only
1c1d0 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
1c1e0 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
1c1f0 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
1c200 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 34 30  owsort label-640
1c210 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c  ..SELECT ALL col
1c220 30 20 44 49 56 20 2d 20 32 20 2d 20 63 6f 6c 31  0 DIV - 2 - col1
1c230 20 2a 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20   * col1 AS col0 
1c240 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
1c250 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  NULL IS NULL..--
1c260 2d 2d 0d 0a 2d 34 38 34 0d 0a 2d 34 39 0d 0a 2d  --..-484..-49..-
1c270 36 35 36 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  6568....skipif m
1c280 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1c290 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1c2a0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 34 30  owsort label-640
1c2b0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c  ..SELECT ALL col
1c2c0 30 20 2f 20 2d 20 32 20 2d 20 63 6f 6c 31 20 2a  0 / - 2 - col1 *
1c2d0 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52   col1 AS col0 FR
1c2e0 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 55  OM tab0 WHERE NU
1c2f0 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  LL IS NULL..----
1c300 0d 0a 2d 34 38 34 0d 0a 2d 34 39 0d 0a 2d 36 35  ..-484..-49..-65
1c310 36 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  68....onlyif mys
1c320 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
1c330 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
1c340 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1c350 34 31 0d 0a 53 45 4c 45 43 54 20 2d 20 38 37 20  41..SELECT - 87 
1c360 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  + - COUNT( * ) F
1c370 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
1c380 2d 39 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -90....skipif my
1c390 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1c3a0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1c3b0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 34 31 0d  wsort label-641.
1c3c0 0a 53 45 4c 45 43 54 20 2d 20 38 37 20 2b 20 2d  .SELECT - 87 + -
1c3d0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f   COUNT ( * ) FRO
1c3e0 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 39  M tab1..----..-9
1c3f0 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
1c400 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
1c410 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
1c420 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1c430 6c 61 62 65 6c 2d 36 34 32 0d 0a 53 45 4c 45 43  label-642..SELEC
1c440 54 20 41 4c 4c 20 28 20 2b 20 2d 20 43 41 53 54  T ALL ( + - CAST
1c450 28 20 31 35 20 41 53 20 53 49 47 4e 45 44 20 29  ( 15 AS SIGNED )
1c460 20 29 20 2a 20 2d 20 63 6f 6c 30 20 2a 20 31 39   ) * - col0 * 19
1c470 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
1c480 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 35 33 35 0d  b1..----..14535.
1c490 0a 32 34 32 32 35 0d 0a 32 35 39 33 35 0d 0a 0d  .24225..25935...
1c4a0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1c4b0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1c4c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1c4d0 6c 61 62 65 6c 2d 36 34 32 0d 0a 53 45 4c 45 43  label-642..SELEC
1c4e0 54 20 41 4c 4c 20 28 20 2b 20 2d 20 43 41 53 54  T ALL ( + - CAST
1c4f0 20 28 20 31 35 20 41 53 20 49 4e 54 45 47 45 52   ( 15 AS INTEGER
1c500 20 29 20 29 20 2a 20 2d 20 63 6f 6c 30 20 2a 20   ) ) * - col0 * 
1c510 31 39 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  19 AS col2 FROM 
1c520 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 35 33  tab1..----..1453
1c530 35 0d 0a 32 34 32 32 35 0d 0a 32 35 39 33 35 0d  5..24225..25935.
1c540 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1c550 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
1c560 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
1c570 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1c580 62 65 6c 2d 36 34 33 0d 0a 53 45 4c 45 43 54 20  bel-643..SELECT 
1c590 44 49 53 54 49 4e 43 54 20 32 37 20 2b 20 2b 20  DISTINCT 27 + + 
1c5a0 2d 20 43 41 53 54 28 20 2d 20 2d 20 43 41 53 54  - CAST( - - CAST
1c5b0 28 20 2d 20 37 31 20 41 53 20 53 49 47 4e 45 44  ( - 71 AS SIGNED
1c5c0 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 46   ) AS SIGNED ) F
1c5d0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
1c5e0 39 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  98....skipif mys
1c5f0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1c600 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1c610 73 6f 72 74 20 6c 61 62 65 6c 2d 36 34 33 0d 0a  sort label-643..
1c620 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1c630 32 37 20 2b 20 2b 20 2d 20 43 41 53 54 20 28 20  27 + + - CAST ( 
1c640 2d 20 2d 20 43 41 53 54 20 28 20 2d 20 37 31 20  - - CAST ( - 71 
1c650 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20  AS INTEGER ) AS 
1c660 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74  INTEGER ) FROM t
1c670 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 39 38 0d 0a 0d  ab0..----..98...
1c680 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1c690 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1c6a0 54 20 37 35 20 2a 20 2b 20 2d 20 63 6f 6c 31 20  T 75 * + - col1 
1c6b0 2a 20 2b 20 35 20 46 52 4f 4d 20 74 61 62 30 0d  * + 5 FROM tab0.
1c6c0 0a 2d 2d 2d 2d 0d 0a 2d 33 30 33 37 35 0d 0a 2d  .----..-30375..-
1c6d0 33 37 35 0d 0a 2d 37 38 37 35 0d 0a 0d 0a 6f 6e  375..-7875....on
1c6e0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
1c6f0 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
1c700 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
1c710 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1c720 34 35 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  45..SELECT - col
1c730 30 20 2a 20 2b 20 43 41 53 54 28 20 2d 20 2b 20  0 * + CAST( - + 
1c740 63 6f 6c 32 20 41 53 20 53 49 47 4e 45 44 20 29  col2 AS SIGNED )
1c750 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d   FROM tab0 cor0.
1c760 0a 2d 2d 2d 2d 0d 0a 37 30 35 0d 0a 38 37 30 0d  .----..705..870.
1c770 0a 39 36 30 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  .9603....skipif 
1c780 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1c790 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1c7a0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 34  rowsort label-64
1c7b0 35 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30  5..SELECT - col0
1c7c0 20 2a 20 2b 20 43 41 53 54 20 28 20 2d 20 2b 20   * + CAST ( - + 
1c7d0 63 6f 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20  col2 AS INTEGER 
1c7e0 29 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  ) FROM tab0 cor0
1c7f0 0d 0a 2d 2d 2d 2d 0d 0a 37 30 35 0d 0a 38 37 30  ..----..705..870
1c800 0d 0a 39 36 30 33 0d 0a 0d 0a 71 75 65 72 79 20  ..9603....query 
1c810 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1c820 54 20 2b 20 63 6f 6c 32 20 2d 20 63 6f 6c 32 20  T + col2 - col2 
1c830 2a 20 2d 20 37 31 20 41 53 20 63 6f 6c 31 20 46  * - 71 AS col1 F
1c840 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
1c850 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20   WHERE ( NULL ) 
1c860 42 45 54 57 45 45 4e 20 63 6f 6c 30 20 2a 20 2b  BETWEEN col0 * +
1c870 20 28 20 31 39 20 29 20 2a 20 2d 20 63 6f 6c 31   ( 19 ) * - col1
1c880 20 41 4e 44 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d   AND + col1..---
1c890 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  -....skipif post
1c8a0 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
1c8b0 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
1c8c0 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
1c8d0 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
1c8e0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1c8f0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
1c900 6f 6c 31 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  ol1 col0 FROM ta
1c910 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
1c920 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 49 53   NOT ( NULL ) IS
1c930 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
1c940 0a 31 0d 0a 32 31 0d 0a 38 31 0d 0a 0d 0a 6f 6e  .1..21..81....on
1c950 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
1c960 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
1c970 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
1c980 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
1c990 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1c9a0 2d 36 34 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -648..SELECT ALL
1c9b0 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2d 20   - COUNT( * ) - 
1c9c0 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  - CAST( NULL AS 
1c9d0 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 32  SIGNED ) AS col2
1c9e0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
1c9f0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
1ca00 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1ca10 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1ca20 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1ca30 20 6c 61 62 65 6c 2d 36 34 38 0d 0a 53 45 4c 45   label-648..SELE
1ca40 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 20 28  CT ALL - COUNT (
1ca50 20 2a 20 29 20 2d 20 2d 20 43 41 53 54 20 28 20   * ) - - CAST ( 
1ca60 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
1ca70 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
1ca80 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
1ca90 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69  -..NULL....onlyi
1caa0 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
1cab0 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
1cac0 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
1cad0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 34 39 0d  wsort label-649.
1cae0 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2d 20 2b  .SELECT col0 - +
1caf0 20 38 39 20 44 49 56 20 2b 20 2b 20 63 6f 6c 30   89 DIV + + col0
1cb00 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
1cb10 0a 2d 2d 2d 2d 0d 0a 35 30 0d 0a 38 34 0d 0a 39  .----..50..84..9
1cb20 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
1cb30 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1cb40 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
1cb50 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
1cb60 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
1cb70 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
1cb80 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
1cb90 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1cba0 65 6c 2d 36 34 39 0d 0a 53 45 4c 45 43 54 20 63  el-649..SELECT c
1cbb0 6f 6c 30 20 2d 20 2b 20 38 39 20 2f 20 2b 20 2b  ol0 - + 89 / + +
1cbc0 20 63 6f 6c 30 20 63 6f 6c 32 20 46 52 4f 4d 20   col0 col2 FROM 
1cbd0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 30 0d 0a  tab1..----..50..
1cbe0 38 34 0d 0a 39 31 0d 0a 0d 0a 6f 6e 6c 79 69 66  84..91....onlyif
1cbf0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
1cc00 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
1cc10 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72  e: ..query III r
1cc20 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35 30  owsort label-650
1cc30 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
1cc40 74 61 62 31 20 57 48 45 52 45 20 31 34 20 3c 20  tab1 WHERE 14 < 
1cc50 2d 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  - - CAST( NULL A
1cc60 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2b 20 37  S SIGNED ) + + 7
1cc70 34 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  4..----....skipi
1cc80 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1cc90 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
1cca0 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
1ccb0 6c 2d 36 35 30 0d 0a 53 45 4c 45 43 54 20 2a 20  l-650..SELECT * 
1ccc0 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
1ccd0 31 34 20 3c 20 2d 20 2d 20 43 41 53 54 20 28 20  14 < - - CAST ( 
1cce0 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
1ccf0 29 20 2b 20 2b 20 37 34 0d 0a 2d 2d 2d 2d 0d 0a  ) + + 74..----..
1cd00 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
1cd10 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
1cd20 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  INCT * FROM tab1
1cd30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 38 36 20   WHERE NOT + 86 
1cd40 2b 20 2b 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20  + + col2 IS NOT 
1cd50 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
1cd60 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
1cd70 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
1cd80 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
1cd90 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1cda0 36 35 32 0d 0a 53 45 4c 45 43 54 20 2b 20 37 39  652..SELECT + 79
1cdb0 20 2d 20 2d 20 28 20 2d 20 43 41 53 54 28 20 4e   - - ( - CAST( N
1cdc0 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
1cdd0 29 20 41 53 20 63 6f 6c 30 2c 20 2d 20 39 37 20  ) AS col0, - 97 
1cde0 2a 20 2d 20 39 33 20 41 53 20 63 6f 6c 31 20 46  * - 93 AS col1 F
1cdf0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
1ce00 4e 55 4c 4c 0d 0a 39 30 32 31 0d 0a 4e 55 4c 4c  NULL..9021..NULL
1ce10 0d 0a 39 30 32 31 0d 0a 4e 55 4c 4c 0d 0a 39 30  ..9021..NULL..90
1ce20 32 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  21....skipif mys
1ce30 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1ce40 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
1ce50 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35 32 0d  wsort label-652.
1ce60 0a 53 45 4c 45 43 54 20 2b 20 37 39 20 2d 20 2d  .SELECT + 79 - -
1ce70 20 28 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c   ( - CAST ( NULL
1ce80 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20   AS INTEGER ) ) 
1ce90 41 53 20 63 6f 6c 30 2c 20 2d 20 39 37 20 2a 20  AS col0, - 97 * 
1cea0 2d 20 39 33 20 41 53 20 63 6f 6c 31 20 46 52 4f  - 93 AS col1 FRO
1ceb0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab0..----..NU
1cec0 4c 4c 0d 0a 39 30 32 31 0d 0a 4e 55 4c 4c 0d 0a  LL..9021..NULL..
1ced0 39 30 32 31 0d 0a 4e 55 4c 4c 0d 0a 39 30 32 31  9021..NULL..9021
1cee0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1cef0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
1cf00 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
1cf10 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35 33  owsort label-653
1cf20 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 4d 41 58  ..SELECT + - MAX
1cf30 28 20 41 4c 4c 20 37 32 20 29 20 46 52 4f 4d 20  ( ALL 72 ) FROM 
1cf40 74 61 62 32 20 41 53 20 63 6f 72 30 20 43 52 4f  tab2 AS cor0 CRO
1cf50 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 63 6f 72  SS JOIN tab2 cor
1cf60 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 32 0d 0a 0d 0a  1..----..-72....
1cf70 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1cf80 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1cf90 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1cfa0 61 62 65 6c 2d 36 35 33 0d 0a 53 45 4c 45 43 54  abel-653..SELECT
1cfb0 20 2b 20 2d 20 4d 41 58 20 28 20 41 4c 4c 20 37   + - MAX ( ALL 7
1cfc0 32 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53  2 ) FROM tab2 AS
1cfd0 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
1cfe0 20 74 61 62 32 20 63 6f 72 31 0d 0a 2d 2d 2d 2d   tab2 cor1..----
1cff0 0d 0a 2d 37 32 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-72....query I
1d000 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1d010 20 34 37 20 2a 20 2b 20 2b 20 63 6f 6c 30 20 2a   47 * + + col0 *
1d020 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 63 6f   + + col1 + + co
1d030 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l1 FROM tab0..--
1d040 2d 2d 0d 0a 34 35 36 30 0d 0a 35 37 31 38 36 0d  --..4560..57186.
1d050 0a 38 35 38 39 30 0d 0a 0d 0a 71 75 65 72 79 20  .85890....query 
1d060 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1d070 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 33  T DISTINCT + - 3
1d080 39 20 2d 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 63  9 - - col2 + + c
1d090 6f 6c 32 20 2a 20 2d 20 2b 20 63 6f 6c 31 20 2a  ol2 * - + col1 *
1d0a0 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   - col2 FROM tab
1d0b0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
1d0c0 0a 31 37 38 39 33 37 0d 0a 32 30 37 31 0d 0a 39  .178937..2071..9
1d0d0 38 36 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  861....onlyif my
1d0e0 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
1d0f0 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
1d100 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1d110 74 20 6c 61 62 65 6c 2d 36 35 36 0d 0a 53 45 4c  t label-656..SEL
1d120 45 43 54 20 63 6f 6c 30 20 2b 20 2b 20 2d 20 63  ECT col0 + + - c
1d130 6f 6c 32 20 44 49 56 20 63 6f 6c 32 20 41 53 20  ol2 DIV col2 AS 
1d140 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 63  col2 FROM tab1 c
1d150 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 30 0d 0a 38  or0..----..50..8
1d160 34 0d 0a 39 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  4..90....skipif 
1d170 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1d180 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1d190 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35  rowsort label-65
1d1a0 36 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2b  6..SELECT col0 +
1d1b0 20 2b 20 2d 20 63 6f 6c 32 20 2f 20 63 6f 6c 32   + - col2 / col2
1d1c0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
1d1d0 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35  b1 cor0..----..5
1d1e0 30 0d 0a 38 34 0d 0a 39 30 0d 0a 0d 0a 71 75 65  0..84..90....que
1d1f0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1d200 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
1d210 2b 20 34 30 20 2b 20 2d 20 63 6f 6c 31 20 46 52  + 40 + - col1 FR
1d220 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
1d230 0a 2d 2d 2d 2d 0d 0a 2d 37 0d 0a 32 36 0d 0a 33  .----..-7..26..3
1d240 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  5....onlyif mysq
1d250 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
1d260 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
1d270 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35  rowsort label-65
1d280 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  8..SELECT ALL - 
1d290 34 39 20 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20  49 - + COUNT( * 
1d2a0 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
1d2b0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
1d2c0 2d 0d 0a 2d 35 32 0d 0a 0d 0a 73 6b 69 70 69 66  -..-52....skipif
1d2d0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1d2e0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1d2f0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1d300 35 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  58..SELECT ALL -
1d310 20 34 39 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20   49 - + COUNT ( 
1d320 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  * ) AS col0 FROM
1d330 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
1d340 2d 2d 2d 0d 0a 2d 35 32 0d 0a 0d 0a 71 75 65 72  ---..-52....quer
1d350 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
1d360 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
1d370 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
1d380 4e 4f 54 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c  NOT col2 + - col
1d390 32 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2b 20  2 NOT BETWEEN + 
1d3a0 39 37 20 41 4e 44 20 2b 20 34 37 0d 0a 2d 2d 2d  97 AND + 47..---
1d3b0 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
1d3c0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
1d3d0 54 49 4e 43 54 20 38 39 20 2a 20 2d 20 63 6f 6c  TINCT 89 * - col
1d3e0 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  0 AS col0 FROM t
1d3f0 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
1d400 45 20 28 20 2d 20 63 6f 6c 32 20 29 20 3c 20 4e  E ( - col2 ) < N
1d410 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
1d420 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
1d430 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
1d440 20 63 6f 6c 31 2c 20 39 38 20 2b 20 34 20 2a 20   col1, 98 + 4 * 
1d450 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f  col2 AS col2 FRO
1d460 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
1d470 2d 2d 2d 2d 0d 0a 31 34 0d 0a 34 38 32 0d 0a 34  ----..14..482..4
1d480 37 0d 0a 33 37 30 0d 0a 35 0d 0a 33 33 34 0d 0a  7..370..5..334..
1d490 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1d4a0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
1d4b0 43 54 20 28 20 2b 20 2d 20 32 39 20 29 20 46 52  CT ( + - 29 ) FR
1d4c0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
1d4d0 32 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  29....query II r
1d4e0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
1d4f0 20 63 6f 6c 32 20 2a 20 35 32 2c 20 63 6f 6c 30   col2 * 52, col0
1d500 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
1d510 0d 0a 32 34 34 34 0d 0a 31 35 0d 0a 35 31 34 38  ..2444..15..5148
1d520 0d 0a 39 37 0d 0a 35 32 30 0d 0a 38 37 0d 0a 0d  ..97..520..87...
1d530 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1d540 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
1d550 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
1d560 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1d570 6c 2d 36 36 34 0d 0a 53 45 4c 45 43 54 20 2b 20  l-664..SELECT + 
1d580 38 36 20 44 49 56 20 63 6f 6c 32 20 46 52 4f 4d  86 DIV col2 FROM
1d590 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   tab0..----..0..
1d5a0 31 0d 0a 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  1..8....skipif m
1d5b0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1d5c0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1d5d0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 36 34  owsort label-664
1d5e0 0d 0a 53 45 4c 45 43 54 20 2b 20 38 36 20 2f 20  ..SELECT + 86 / 
1d5f0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
1d600 2d 2d 2d 2d 0d 0a 30 0d 0a 31 0d 0a 38 0d 0a 0d  ----..0..1..8...
1d610 0a 71 75 65 72 79 20 49 49 49 49 49 49 20 72 6f  .query IIIIII ro
1d620 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
1d630 46 52 4f 4d 20 74 61 62 30 2c 20 74 61 62 30 20  FROM tab0, tab0 
1d640 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
1d650 54 20 28 20 32 33 20 29 20 49 53 20 4e 4f 54 20  T ( 23 ) IS NOT 
1d660 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
1d670 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
1d680 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1d690 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
1d6a0 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 32 20 42 45  RE NOT - col2 BE
1d6b0 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e  TWEEN NULL AND N
1d6c0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  ULL..----....ski
1d6d0 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
1d6e0 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
1d6f0 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
1d700 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
1d710 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72  umns..query II r
1d720 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
1d730 20 63 6f 6c 30 20 63 6f 6c 31 2c 20 2d 20 63 6f   col0 col1, - co
1d740 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
1d750 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d  cor0..----..-15.
1d760 0a 2d 31 35 0d 0a 2d 38 37 0d 0a 2d 38 37 0d 0a  .-15..-87..-87..
1d770 2d 39 37 0d 0a 2d 39 37 0d 0a 0d 0a 6f 6e 6c 79  -97..-97....only
1d780 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
1d790 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
1d7a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1d7b0 61 62 65 6c 2d 36 36 38 0d 0a 53 45 4c 45 43 54  abel-668..SELECT
1d7c0 20 41 4c 4c 20 2b 20 4d 41 58 28 20 44 49 53 54   ALL + MAX( DIST
1d7d0 49 4e 43 54 20 2d 20 2d 20 63 6f 6c 30 20 29 20  INCT - - col0 ) 
1d7e0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
1d7f0 30 20 57 48 45 52 45 20 28 20 2d 20 63 6f 6c 30  0 WHERE ( - col0
1d800 20 2a 20 63 6f 6c 30 20 29 20 3e 20 4e 55 4c 4c   * col0 ) > NULL
1d810 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
1d820 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1d830 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1d840 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1d850 61 62 65 6c 2d 36 36 38 0d 0a 53 45 4c 45 43 54  abel-668..SELECT
1d860 20 41 4c 4c 20 2b 20 4d 41 58 20 28 20 44 49 53   ALL + MAX ( DIS
1d870 54 49 4e 43 54 20 2d 20 2d 20 63 6f 6c 30 20 29  TINCT - - col0 )
1d880 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
1d890 72 30 20 57 48 45 52 45 20 28 20 2d 20 63 6f 6c  r0 WHERE ( - col
1d8a0 30 20 2a 20 63 6f 6c 30 20 29 20 3e 20 4e 55 4c  0 * col0 ) > NUL
1d8b0 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  L..----..NULL...
1d8c0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1d8d0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1d8e0 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  : DIV for intege
1d8f0 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
1d900 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
1d910 61 62 65 6c 2d 36 36 39 0d 0a 53 45 4c 45 43 54  abel-669..SELECT
1d920 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 35 35   DISTINCT - + 55
1d930 20 41 53 20 63 6f 6c 31 2c 20 2b 20 32 20 44 49   AS col1, + 2 DI
1d940 56 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41  V + COUNT( * ) A
1d950 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
1d960 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 35   cor0..----..-55
1d970 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
1d980 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1d990 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72  ible..query II r
1d9a0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 36 39  owsort label-669
1d9b0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1d9c0 54 20 2d 20 2b 20 35 35 20 41 53 20 63 6f 6c 31  T - + 55 AS col1
1d9d0 2c 20 2b 20 32 20 2f 20 2b 20 43 4f 55 4e 54 20  , + 2 / + COUNT 
1d9e0 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ( * ) AS col2 FR
1d9f0 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d  OM tab1 cor0..--
1da00 2d 2d 0d 0a 2d 35 35 0d 0a 30 0d 0a 0d 0a 71 75  --..-55..0....qu
1da10 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1da20 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2d 20 35  ELECT + col1 - 5
1da30 39 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  9 AS col2 FROM t
1da40 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
1da50 45 20 28 20 2d 20 39 20 29 20 42 45 54 57 45 45  E ( - 9 ) BETWEE
1da60 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c 20  N NULL AND NULL 
1da70 4f 52 20 2b 20 37 38 20 2b 20 2b 20 63 6f 6c 32  OR + 78 + + col2
1da80 20 2b 20 63 6f 6c 32 20 4e 4f 54 20 42 45 54 57   + col2 NOT BETW
1da90 45 45 4e 20 2b 20 31 37 20 41 4e 44 20 2b 20 38  EEN + 17 AND + 8
1daa0 30 20 2b 20 36 34 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  0 + 64..----..-5
1dab0 38 0d 0a 32 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  8..22....onlyif 
1dac0 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
1dad0 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70  tax: DECIMAL typ
1dae0 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72  e: ..query III r
1daf0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 37 31  owsort label-671
1db00 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
1db10 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
1db20 52 45 20 4e 4f 54 20 36 31 20 2a 20 43 41 53 54  RE NOT 61 * CAST
1db30 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41  ( NULL AS DECIMA
1db40 4c 20 29 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  L ) NOT BETWEEN 
1db50 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d  NULL AND NULL..-
1db60 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ---....skipif my
1db70 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1db80 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20  ible..query III 
1db90 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 37  rowsort label-67
1dba0 31 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  1..SELECT * FROM
1dbb0 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
1dbc0 45 52 45 20 4e 4f 54 20 36 31 20 2a 20 43 41 53  ERE NOT 61 * CAS
1dbd0 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c  T ( NULL AS REAL
1dbe0 20 29 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e   ) NOT BETWEEN N
1dbf0 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d  ULL AND NULL..--
1dc00 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  --....query III 
1dc10 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1dc20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  * FROM tab2 WHER
1dc30 45 20 4e 4f 54 20 2b 20 63 6f 6c 32 20 2a 20 2d  E NOT + col2 * -
1dc40 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 32 20 2d   col2 * - col2 -
1dc50 20 63 6f 6c 31 20 49 4e 20 28 20 2b 20 28 20 28   col1 IN ( + ( (
1dc60 20 2d 20 63 6f 6c 32 20 29 20 29 20 29 0d 0a 2d   - col2 ) ) )..-
1dc70 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
1dc80 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38 61  shing to 75c998a
1dc90 61 35 33 61 63 38 33 32 31 38 63 62 66 32 66 65  a53ac83218cbf2fe
1dca0 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 6f 6e 6c  b962d0a49....onl
1dcb0 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
1dcc0 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
1dcd0 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
1dce0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 37  rowsort label-67
1dcf0 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  3..SELECT ALL - 
1dd00 63 6f 6c 31 20 44 49 56 20 2d 20 63 6f 6c 31 20  col1 DIV - col1 
1dd10 2b 20 2d 20 39 20 46 52 4f 4d 20 74 61 62 31 20  + - 9 FROM tab1 
1dd20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 0d 0a  cor0..----..-8..
1dd30 2d 38 0d 0a 2d 38 0d 0a 0d 0a 73 6b 69 70 69 66  -8..-8....skipif
1dd40 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1dd50 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1dd60 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1dd70 37 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  73..SELECT ALL -
1dd80 20 63 6f 6c 31 20 2f 20 2d 20 63 6f 6c 31 20 2b   col1 / - col1 +
1dd90 20 2d 20 39 20 46 52 4f 4d 20 74 61 62 31 20 63   - 9 FROM tab1 c
1dda0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 0d 0a 2d  or0..----..-8..-
1ddb0 38 0d 0a 2d 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  8..-8....onlyif 
1ddc0 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
1ddd0 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
1dde0 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  : ..query III ro
1ddf0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 37 34 0d  wsort label-674.
1de00 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
1de10 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
1de20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 30  WHERE NOT + col0
1de30 20 49 4e 20 28 20 2d 20 63 6f 6c 32 20 2f 20 2b   IN ( - col2 / +
1de40 20 43 41 53 54 28 20 2d 20 33 31 20 41 53 20 53   CAST( - 31 AS S
1de50 49 47 4e 45 44 20 29 2c 20 37 34 20 29 0d 0a 2d  IGNED ), 74 )..-
1de60 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
1de70 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38 61  shing to 75c998a
1de80 61 35 33 61 63 38 33 32 31 38 63 62 66 32 66 65  a53ac83218cbf2fe
1de90 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 73 6b 69  b962d0a49....ski
1dea0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1deb0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1dec0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
1ded0 62 65 6c 2d 36 37 34 0d 0a 53 45 4c 45 43 54 20  bel-674..SELECT 
1dee0 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ALL * FROM tab2 
1def0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
1df00 54 20 2b 20 63 6f 6c 30 20 49 4e 20 28 20 2d 20  T + col0 IN ( - 
1df10 63 6f 6c 32 20 2f 20 2b 20 43 41 53 54 20 28 20  col2 / + CAST ( 
1df20 2d 20 33 31 20 41 53 20 49 4e 54 45 47 45 52 20  - 31 AS INTEGER 
1df30 29 2c 20 37 34 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39  ), 74 )..----..9
1df40 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
1df50 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38  to 75c998aa53ac8
1df60 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30  3218cbf2feb962d0
1df70 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  a49....query III
1df80 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1df90 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30   ALL * FROM tab0
1dfa0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
1dfb0 4f 54 20 2d 20 63 6f 6c 31 20 49 4e 20 28 20 63  OT - col1 IN ( c
1dfc0 6f 6c 30 2c 20 63 6f 6c 30 20 2a 20 28 20 2b 20  ol0, col0 * ( + 
1dfd0 63 6f 6c 32 20 29 20 2d 20 2d 20 2d 20 63 6f 6c  col2 ) - - - col
1dfe0 31 20 2a 20 2b 20 63 6f 6c 32 20 29 0d 0a 2d 2d  1 * + col2 )..--
1dff0 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
1e000 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35  hing to c4b42765
1e010 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35  dff94eaaa46040e5
1e020 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72  37fb43b7....quer
1e030 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1e040 45 43 54 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  ECT col1 FROM ta
1e050 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
1e060 20 28 20 4e 55 4c 4c 20 29 20 3e 3d 20 4e 55 4c   ( NULL ) >= NUL
1e070 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
1e080 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1e090 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 35 35  CT DISTINCT - 55
1e0a0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
1e0b0 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b1 cor0..----..-
1e0c0 35 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  55....skipif pos
1e0d0 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
1e0e0 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
1e0f0 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
1e100 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
1e110 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
1e120 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 41 53 20  .SELECT col2 AS 
1e130 63 6f 6c 30 2c 20 2d 20 63 6f 6c 31 20 2a 20 2b  col0, - col1 * +
1e140 20 63 6f 6c 31 20 63 6f 6c 30 20 46 52 4f 4d 20   col1 col0 FROM 
1e150 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a  tab1..----..59..
1e160 2d 32 35 0d 0a 36 38 0d 0a 2d 32 32 30 39 0d 0a  -25..68..-2209..
1e170 39 36 0d 0a 2d 31 39 36 0d 0a 0d 0a 6f 6e 6c 79  96..-196....only
1e180 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
1e190 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
1e1a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1e1b0 61 62 65 6c 2d 36 37 39 0d 0a 53 45 4c 45 43 54  abel-679..SELECT
1e1c0 20 2d 20 43 4f 55 4e 54 28 20 44 49 53 54 49 4e   - COUNT( DISTIN
1e1d0 43 54 20 2d 20 2b 20 63 6f 6c 30 20 29 20 41 53  CT - + col0 ) AS
1e1e0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d   col2 FROM tab2.
1e1f0 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69  .----..-3....ski
1e200 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1e210 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1e220 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1e230 6c 2d 36 37 39 0d 0a 53 45 4c 45 43 54 20 2d 20  l-679..SELECT - 
1e240 43 4f 55 4e 54 20 28 20 44 49 53 54 49 4e 43 54  COUNT ( DISTINCT
1e250 20 2d 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63   - + col0 ) AS c
1e260 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
1e270 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79  ---..-3....query
1e280 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1e290 43 54 20 41 4c 4c 20 2d 20 31 39 20 2a 20 2b 20  CT ALL - 19 * + 
1e2a0 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46  - col1 AS col0 F
1e2b0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
1e2c0 31 35 33 39 0d 0a 31 39 0d 0a 33 39 39 0d 0a 0d  1539..19..399...
1e2d0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1e2e0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1e2f0 54 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 32 20  T col2 + - col2 
1e300 2a 20 2d 20 28 20 2b 20 63 6f 6c 32 20 29 20 46  * - ( + col2 ) F
1e310 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
1e320 33 35 34 30 0d 0a 34 36 39 32 0d 0a 39 33 31 32  3540..4692..9312
1e330 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
1e340 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
1e350 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48  L * FROM tab1 WH
1e360 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 42 45 54  ERE NOT NULL BET
1e370 57 45 45 4e 20 28 20 4e 55 4c 4c 20 29 20 41 4e  WEEN ( NULL ) AN
1e380 44 20 2d 20 63 6f 6c 31 20 2d 20 2b 20 2b 20 63  D - col1 - + + c
1e390 6f 6c 30 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d  ol0 + col0..----
1e3a0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1e3b0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
1e3c0 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a  DECIMAL type: ..
1e3d0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
1e3e0 20 6c 61 62 65 6c 2d 36 38 33 0d 0a 53 45 4c 45   label-683..SELE
1e3f0 43 54 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20  CT + CAST( NULL 
1e400 41 53 20 44 45 43 49 4d 41 4c 20 29 2c 20 63 6f  AS DECIMAL ), co
1e410 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l1 AS col0 FROM 
1e420 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab1..----..NULL
1e430 0d 0a 31 34 0d 0a 4e 55 4c 4c 0d 0a 34 37 0d 0a  ..14..NULL..47..
1e440 4e 55 4c 4c 0d 0a 35 0d 0a 0d 0a 73 6b 69 70 69  NULL..5....skipi
1e450 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1e460 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
1e470 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
1e480 2d 36 38 33 0d 0a 53 45 4c 45 43 54 20 2b 20 43  -683..SELECT + C
1e490 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45  AST ( NULL AS RE
1e4a0 41 4c 20 29 2c 20 63 6f 6c 31 20 41 53 20 63 6f  AL ), col1 AS co
1e4b0 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l0 FROM tab1..--
1e4c0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 31 34 0d 0a 4e 55  --..NULL..14..NU
1e4d0 4c 4c 0d 0a 34 37 0d 0a 4e 55 4c 4c 0d 0a 35 0d  LL..47..NULL..5.
1e4e0 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
1e4f0 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
1e500 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
1e510 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
1e520 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
1e530 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
1e540 4c 45 43 54 20 2d 20 63 6f 6c 32 20 41 53 20 63  LECT - col2 AS c
1e550 6f 6c 32 2c 20 2b 20 63 6f 6c 30 20 2d 20 2b 20  ol2, + col0 - + 
1e560 37 37 20 2a 20 35 39 20 2a 20 2b 20 2d 20 63 6f  77 * 59 * + - co
1e570 6c 32 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  l2 col2 FROM tab
1e580 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 34 35  0..----..-10..45
1e590 35 31 37 0d 0a 2d 34 37 0d 0a 32 31 33 35 33 36  517..-47..213536
1e5a0 0d 0a 2d 39 39 0d 0a 34 34 39 38 35 34 0d 0a 0d  ..-99..449854...
1e5b0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1e5c0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1e5d0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1e5e0 6f 72 74 20 6c 61 62 65 6c 2d 36 38 35 0d 0a 53  ort label-685..S
1e5f0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
1e600 20 43 4f 55 4e 54 28 20 2a 20 29 20 2d 20 2b 20   COUNT( * ) - + 
1e610 36 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  6 AS col0 FROM t
1e620 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
1e630 2d 0d 0a 2d 39 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..-9....skipif 
1e640 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1e650 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1e660 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38  rowsort label-68
1e670 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  5..SELECT DISTIN
1e680 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29  CT - COUNT ( * )
1e690 20 2d 20 2b 20 36 20 41 53 20 63 6f 6c 30 20 46   - + 6 AS col0 F
1e6a0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1e6b0 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 71 75  ..----..-9....qu
1e6c0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
1e6d0 53 45 4c 45 43 54 20 28 20 63 6f 6c 31 20 29 20  SELECT ( col1 ) 
1e6e0 2b 20 2d 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f  + - - col0 AS co
1e6f0 6c 30 2c 20 2d 20 28 20 2d 20 2b 20 63 6f 6c 31  l0, - ( - + col1
1e700 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
1e710 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 38 0d  cor0..----..108.
1e720 0a 32 31 0d 0a 39 36 0d 0a 38 31 0d 0a 39 38 0d  .21..96..81..98.
1e730 0a 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .1....query I ro
1e740 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
1e750 2b 20 63 6f 6c 30 20 2b 20 2b 20 37 38 20 41 53  + col0 + + 78 AS
1e760 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
1e770 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
1e780 36 35 0d 0a 31 37 35 0d 0a 39 33 0d 0a 0d 0a 71  65..175..93....q
1e790 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
1e7a0 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
1e7b0 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
1e7c0 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 42 45 54 57  RE NOT NULL BETW
1e7d0 45 45 4e 20 2d 20 63 6f 6c 32 20 2d 20 2d 20 63  EEN - col2 - - c
1e7e0 6f 6c 31 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d  ol1 AND NULL..--
1e7f0 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
1e800 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
1e810 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  : aggregate synt
1e820 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
1e830 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1e840 72 74 20 6c 61 62 65 6c 2d 36 38 39 0d 0a 53 45  rt label-689..SE
1e850 4c 45 43 54 20 43 41 53 54 28 20 43 4f 55 4e 54  LECT CAST( COUNT
1e860 28 20 2a 20 29 20 41 53 20 53 49 47 4e 45 44 20  ( * ) AS SIGNED 
1e870 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  ) col0 FROM tab1
1e880 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69  ..----..3....ski
1e890 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1e8a0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70  compatible..skip
1e8b0 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
1e8c0 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
1e8d0 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
1e8e0 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
1e8f0 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
1e900 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38 39 0d 0a  sort label-689..
1e910 53 45 4c 45 43 54 20 43 41 53 54 20 28 20 43 4f  SELECT CAST ( CO
1e920 55 4e 54 20 28 20 2a 20 29 20 41 53 20 49 4e 54  UNT ( * ) AS INT
1e930 45 47 45 52 20 29 20 63 6f 6c 30 20 46 52 4f 4d  EGER ) col0 FROM
1e940 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   tab1..----..3..
1e950 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
1e960 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
1e970 4e 43 54 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f  NCT + col1 AS co
1e980 6c 30 2c 20 37 32 20 2a 20 63 6f 6c 31 20 46 52  l0, 72 * col1 FR
1e990 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
1e9a0 0d 0a 37 32 0d 0a 32 31 0d 0a 31 35 31 32 0d 0a  ..72..21..1512..
1e9b0 38 31 0d 0a 35 38 33 32 0d 0a 0d 0a 73 6b 69 70  81..5832....skip
1e9c0 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
1e9d0 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
1e9e0 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
1e9f0 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
1ea00 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
1ea10 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
1ea20 54 49 4e 43 54 20 2d 20 37 39 20 2a 20 2d 20 63  TINCT - 79 * - c
1ea30 6f 6c 31 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  ol1 col1 FROM ta
1ea40 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 30 32 39 0d 0a  b2..----..4029..
1ea50 35 32 39 33 0d 0a 36 30 38 33 0d 0a 0d 0a 71 75  5293..6083....qu
1ea60 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
1ea70 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
1ea80 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab2 WHERE NOT - 
1ea90 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 30 20 49 53  col1 * - col0 IS
1eaa0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   NULL..----..9 v
1eab0 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
1eac0 20 37 35 63 39 39 38 61 61 35 33 61 63 38 33 32   75c998aa53ac832
1ead0 31 38 63 62 66 32 66 65 62 39 36 32 64 30 61 34  18cbf2feb962d0a4
1eae0 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  9....onlyif mysq
1eaf0 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
1eb00 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
1eb10 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
1eb20 74 20 6c 61 62 65 6c 2d 36 39 33 0d 0a 53 45 4c  t label-693..SEL
1eb30 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
1eb40 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  ab1 WHERE NOT + 
1eb50 2d 20 63 6f 6c 30 20 2b 20 2b 20 43 41 53 54 28  - col0 + + CAST(
1eb60 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
1eb70 29 20 2a 20 63 6f 6c 30 20 2a 20 63 6f 6c 31 20  ) * col0 * col1 
1eb80 2a 20 2d 20 63 6f 6c 32 20 2d 20 2b 20 2d 20 33  * - col2 - + - 3
1eb90 39 20 2b 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 63  9 + - col2 + - c
1eba0 6f 6c 30 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c  ol0 + CAST( NULL
1ebb0 20 41 53 20 53 49 47 4e 45 44 20 29 20 3c 3d 20   AS SIGNED ) <= 
1ebc0 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 30 0d 0a 2d  col1 + - col0..-
1ebd0 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ---....skipif my
1ebe0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1ebf0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20  ible..query III 
1ec00 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39  rowsort label-69
1ec10 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  3..SELECT ALL * 
1ec20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
1ec30 4e 4f 54 20 2b 20 2d 20 63 6f 6c 30 20 2b 20 2b  NOT + - col0 + +
1ec40 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
1ec50 49 4e 54 45 47 45 52 20 29 20 2a 20 63 6f 6c 30  INTEGER ) * col0
1ec60 20 2a 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 32   * col1 * - col2
1ec70 20 2d 20 2b 20 2d 20 33 39 20 2b 20 2d 20 63 6f   - + - 39 + - co
1ec80 6c 32 20 2b 20 2d 20 63 6f 6c 30 20 2b 20 43 41  l2 + - col0 + CA
1ec90 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
1eca0 45 47 45 52 20 29 20 3c 3d 20 63 6f 6c 31 20 2b  EGER ) <= col1 +
1ecb0 20 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d   - col0..----...
1ecc0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1ecd0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1ece0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1ecf0 6f 72 74 20 6c 61 62 65 6c 2d 36 39 34 0d 0a 53  ort label-694..S
1ed00 45 4c 45 43 54 20 2b 20 4d 41 58 28 20 2d 20 31  ELECT + MAX( - 1
1ed10 36 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  6 ) AS col2 FROM
1ed20 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
1ed30 2d 2d 2d 0d 0a 2d 31 36 0d 0a 0d 0a 73 6b 69 70  ---..-16....skip
1ed40 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1ed50 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1ed60 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1ed70 2d 36 39 34 0d 0a 53 45 4c 45 43 54 20 2b 20 4d  -694..SELECT + M
1ed80 41 58 20 28 20 2d 20 31 36 20 29 20 41 53 20 63  AX ( - 16 ) AS c
1ed90 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
1eda0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36   cor0..----..-16
1edb0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1edc0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
1edd0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
1ede0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39 35  owsort label-695
1edf0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1ee00 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 35  T COUNT( * ) * 5
1ee10 36 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  6 FROM tab2 AS c
1ee20 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 38 0d 0a  or0..----..168..
1ee30 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1ee40 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1ee50 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1ee60 20 6c 61 62 65 6c 2d 36 39 35 0d 0a 53 45 4c 45   label-695..SELE
1ee70 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e  CT DISTINCT COUN
1ee80 54 20 28 20 2a 20 29 20 2a 20 35 36 20 46 52 4f  T ( * ) * 56 FRO
1ee90 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
1eea0 2d 2d 2d 2d 0d 0a 31 36 38 0d 0a 0d 0a 71 75 65  ----..168....que
1eeb0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
1eec0 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 2c 20  ELECT ALL col1, 
1eed0 31 35 20 2b 20 2d 20 63 6f 6c 31 20 46 52 4f 4d  15 + - col1 FROM
1eee0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d   tab1..----..14.
1eef0 0a 31 0d 0a 34 37 0d 0a 2d 33 32 0d 0a 35 0d 0a  .1..47..-32..5..
1ef00 31 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  10....query I ro
1ef10 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
1ef20 4c 20 34 37 20 2b 20 2b 20 2d 20 63 6f 6c 30 20  L 47 + + - col0 
1ef30 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
1ef40 0a 2d 31 37 0d 0a 2d 32 38 0d 0a 31 0d 0a 0d 0a  .-17..-28..1....
1ef50 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1ef60 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1ef70 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52   col1 AS col0 FR
1ef80 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
1ef90 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49  WHERE NOT NULL I
1efa0 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
1efb0 0d 0a 31 0d 0a 32 31 0d 0a 38 31 0d 0a 0d 0a 6f  ..1..21..81....o
1efc0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
1efd0 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
1efe0 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
1eff0 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
1f000 2d 36 39 39 0d 0a 53 45 4c 45 43 54 20 2b 20 63  -699..SELECT + c
1f010 6f 6c 31 20 41 53 20 63 6f 6c 30 2c 20 2d 20 34  ol1 AS col0, - 4
1f020 36 20 44 49 56 20 39 31 20 41 53 20 63 6f 6c 31  6 DIV 91 AS col1
1f030 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
1f040 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 30 0d  r0..----..51..0.
1f050 0a 36 37 0d 0a 30 0d 0a 37 37 0d 0a 30 0d 0a 0d  .67..0..77..0...
1f060 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1f070 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1f080 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
1f090 20 6c 61 62 65 6c 2d 36 39 39 0d 0a 53 45 4c 45   label-699..SELE
1f0a0 43 54 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c  CT + col1 AS col
1f0b0 30 2c 20 2d 20 34 36 20 2f 20 39 31 20 41 53 20  0, - 46 / 91 AS 
1f0c0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
1f0d0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31  S cor0..----..51
1f0e0 0d 0a 30 0d 0a 36 37 0d 0a 30 0d 0a 37 37 0d 0a  ..0..67..0..77..
1f0f0 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
1f100 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
1f110 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
1f120 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1f130 6c 61 62 65 6c 2d 37 30 30 0d 0a 53 45 4c 45 43  label-700..SELEC
1f140 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  T DISTINCT - col
1f150 30 20 44 49 56 20 2b 20 2b 20 28 20 2d 20 34 32  0 DIV + + ( - 42
1f160 20 29 20 2d 20 36 39 20 2b 20 2d 20 63 6f 6c 31   ) - 69 + - col1
1f170 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
1f180 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
1f190 0d 0a 2d 31 31 34 0d 0a 2d 37 32 0d 0a 2d 38 32  ..-114..-72..-82
1f1a0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1f1b0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1f1c0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
1f1d0 72 74 20 6c 61 62 65 6c 2d 37 30 30 0d 0a 53 45  rt label-700..SE
1f1e0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
1f1f0 63 6f 6c 30 20 2f 20 2b 20 2b 20 28 20 2d 20 34  col0 / + + ( - 4
1f200 32 20 29 20 2d 20 36 39 20 2b 20 2d 20 63 6f 6c  2 ) - 69 + - col
1f210 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  1 AS col0 FROM t
1f220 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
1f230 2d 0d 0a 2d 31 31 34 0d 0a 2d 37 32 0d 0a 2d 38  -..-114..-72..-8
1f240 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  2....onlyif mysq
1f250 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
1f260 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
1f270 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
1f280 74 20 6c 61 62 65 6c 2d 37 30 31 0d 0a 53 45 4c  t label-701..SEL
1f290 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
1f2a0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20  AS cor0 WHERE - 
1f2b0 31 35 20 4e 4f 54 20 49 4e 20 28 20 2d 20 43 41  15 NOT IN ( - CA
1f2c0 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
1f2d0 45 44 20 29 2c 20 36 36 2c 20 2b 20 38 34 20 29  ED ), 66, + 84 )
1f2e0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
1f2f0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1f300 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1f310 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
1f320 2d 37 30 31 0d 0a 53 45 4c 45 43 54 20 2a 20 46  -701..SELECT * F
1f330 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
1f340 20 57 48 45 52 45 20 2d 20 31 35 20 4e 4f 54 20   WHERE - 15 NOT 
1f350 49 4e 20 28 20 2d 20 43 41 53 54 20 28 20 4e 55  IN ( - CAST ( NU
1f360 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 2c  LL AS INTEGER ),
1f370 20 36 36 2c 20 2b 20 38 34 20 29 0d 0a 2d 2d 2d   66, + 84 )..---
1f380 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  -....query II ro
1f390 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
1f3a0 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 2c 20 2b  STINCT + col1, +
1f3b0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
1f3c0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35  AS cor0..----..5
1f3d0 31 0d 0a 34 36 0d 0a 36 37 0d 0a 37 35 0d 0a 37  1..46..67..75..7
1f3e0 37 0d 0a 36 34 0d 0a 0d 0a 71 75 65 72 79 20 49  7..64....query I
1f3f0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1f400 54 20 41 4c 4c 20 2d 20 2b 20 63 6f 6c 31 20 2a  T ALL - + col1 *
1f410 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c 31 20 41 53   col1, + col1 AS
1f420 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
1f430 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
1f440 32 36 30 31 0d 0a 35 31 0d 0a 2d 34 34 38 39 0d  2601..51..-4489.
1f450 0a 36 37 0d 0a 2d 35 39 32 39 0d 0a 37 37 0d 0a  .67..-5929..77..
1f460 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1f470 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
1f480 43 54 20 35 34 20 2a 20 2b 20 63 6f 6c 30 20 2a  CT 54 * + col0 *
1f490 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52   col1 AS col2 FR
1f4a0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
1f4b0 0a 2d 2d 2d 2d 0d 0a 31 32 36 36 38 34 0d 0a 32  .----..126684..2
1f4c0 36 36 31 31 32 0d 0a 32 37 31 33 35 30 0d 0a 0d  66112..271350...
1f4d0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1f4e0 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67  CAST syntax: agg
1f4f0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53  regate syntax: S
1f500 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
1f510 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1f520 62 65 6c 2d 37 30 35 0d 0a 53 45 4c 45 43 54 20  bel-705..SELECT 
1f530 41 4c 4c 20 43 41 53 54 28 20 4d 49 4e 28 20 41  ALL CAST( MIN( A
1f540 4c 4c 20 2b 20 63 6f 6c 31 20 29 20 41 53 20 53  LL + col1 ) AS S
1f550 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 31 20  IGNED ) AS col1 
1f560 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
1f570 30 0d 0a 2d 2d 2d 2d 0d 0a 35 0d 0a 0d 0a 73 6b  0..----..5....sk
1f580 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1f590 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1f5a0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1f5b0 65 6c 2d 37 30 35 0d 0a 53 45 4c 45 43 54 20 41  el-705..SELECT A
1f5c0 4c 4c 20 43 41 53 54 20 28 20 4d 49 4e 20 28 20  LL CAST ( MIN ( 
1f5d0 41 4c 4c 20 2b 20 63 6f 6c 31 20 29 20 41 53 20  ALL + col1 ) AS 
1f5e0 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c  INTEGER ) AS col
1f5f0 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
1f600 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 0d 0a 0d 0a  or0..----..5....
1f610 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
1f620 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
1f630 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1f640 72 74 20 6c 61 62 65 6c 2d 37 30 36 0d 0a 53 45  rt label-706..SE
1f650 4c 45 43 54 20 41 4c 4c 20 2d 20 4d 49 4e 28 20  LECT ALL - MIN( 
1f660 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20  DISTINCT + col0 
1f670 29 20 2a 20 2b 20 2d 20 43 4f 55 4e 54 28 20 44  ) * + - COUNT( D
1f680 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20 29  ISTINCT + col2 )
1f690 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
1f6a0 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  b2 cor0..----..1
1f6b0 33 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  38....skipif mys
1f6c0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1f6d0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1f6e0 73 6f 72 74 20 6c 61 62 65 6c 2d 37 30 36 0d 0a  sort label-706..
1f6f0 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 4d 49 4e  SELECT ALL - MIN
1f700 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f   ( DISTINCT + co
1f710 6c 30 20 29 20 2a 20 2b 20 2d 20 43 4f 55 4e 54  l0 ) * + - COUNT
1f720 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f   ( DISTINCT + co
1f730 6c 32 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  l2 ) AS col1 FRO
1f740 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab2 cor0..---
1f750 2d 0d 0a 31 33 38 0d 0a 0d 0a 6f 6e 6c 79 69 66  -..138....onlyif
1f760 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
1f770 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
1f780 65 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67  e: DIV for integ
1f790 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
1f7a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1f7b0 61 62 65 6c 2d 37 30 37 0d 0a 53 45 4c 45 43 54  abel-707..SELECT
1f7c0 20 43 41 53 54 28 20 63 6f 6c 30 20 41 53 20 53   CAST( col0 AS S
1f7d0 49 47 4e 45 44 20 29 20 2b 20 38 33 20 44 49 56  IGNED ) + 83 DIV
1f7e0 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c   + + col2 AS col
1f7f0 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
1f800 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 0d 0a 39  or0..----..16..9
1f810 35 0d 0a 39 37 0d 0a 0d 0a 73 6b 69 70 69 66 20  5..97....skipif 
1f820 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1f830 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1f840 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 30  rowsort label-70
1f850 37 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 20 28  7..SELECT CAST (
1f860 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45 52   col0 AS INTEGER
1f870 20 29 20 2b 20 38 33 20 2f 20 2b 20 2b 20 63 6f   ) + 83 / + + co
1f880 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l2 AS col1 FROM 
1f890 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
1f8a0 2d 2d 0d 0a 31 36 0d 0a 39 35 0d 0a 39 37 0d 0a  --..16..95..97..
1f8b0 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
1f8c0 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
1f8d0 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
1f8e0 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
1f8f0 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
1f900 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
1f910 45 43 54 20 41 4c 4c 20 2d 20 36 34 20 63 6f 6c  ECT ALL - 64 col
1f920 32 2c 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c  2, - col2 AS col
1f930 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
1f940 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 34 0d 0a  or0..----..-64..
1f950 2d 35 39 0d 0a 2d 36 34 0d 0a 2d 36 38 0d 0a 2d  -59..-64..-68..-
1f960 36 34 0d 0a 2d 39 36 0d 0a 0d 0a 6f 6e 6c 79 69  64..-96....onlyi
1f970 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
1f980 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
1f990 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
1f9a0 61 62 65 6c 2d 37 30 39 0d 0a 53 45 4c 45 43 54  abel-709..SELECT
1f9b0 20 41 4c 4c 20 43 4f 55 4e 54 28 20 2a 20 29 20   ALL COUNT( * ) 
1f9c0 41 53 20 63 6f 6c 30 2c 20 2b 20 43 4f 55 4e 54  AS col0, + COUNT
1f9d0 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 2c  ( * ) FROM tab0,
1f9e0 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
1f9f0 2d 2d 2d 0d 0a 39 0d 0a 39 0d 0a 0d 0a 73 6b 69  ---..9..9....ski
1fa00 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1fa10 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1fa20 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
1fa30 65 6c 2d 37 30 39 0d 0a 53 45 4c 45 43 54 20 41  el-709..SELECT A
1fa40 4c 4c 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41  LL COUNT ( * ) A
1fa50 53 20 63 6f 6c 30 2c 20 2b 20 43 4f 55 4e 54 20  S col0, + COUNT 
1fa60 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 2c  ( * ) FROM tab0,
1fa70 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
1fa80 2d 2d 2d 0d 0a 39 0d 0a 39 0d 0a 0d 0a 71 75 65  ---..9..9....que
1fa90 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
1faa0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1fab0 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  * FROM tab2 WHER
1fac0 45 20 4e 4f 54 20 4e 55 4c 4c 20 3d 20 2d 20 35  E NOT NULL = - 5
1fad0 38 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  8..----....onlyi
1fae0 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
1faf0 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65  yntax: aggregate
1fb00 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
1fb10 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
1fb20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 31  rowsort label-71
1fb30 31 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28  1..SELECT COUNT(
1fb40 20 2a 20 29 20 2b 20 2d 20 43 41 53 54 28 20 4e   * ) + - CAST( N
1fb50 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
1fb60 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
1fb70 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  0..----..NULL...
1fb80 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1fb90 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1fba0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1fbb0 6c 61 62 65 6c 2d 37 31 31 0d 0a 53 45 4c 45 43  label-711..SELEC
1fbc0 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20  T COUNT ( * ) + 
1fbd0 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
1fbe0 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f   INTEGER ) AS co
1fbf0 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l1 FROM tab0..--
1fc00 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72  --..NULL....quer
1fc10 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
1fc20 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
1fc30 31 20 57 48 45 52 45 20 28 20 4e 4f 54 20 63 6f  1 WHERE ( NOT co
1fc40 6c 30 20 2b 20 2d 20 2d 20 63 6f 6c 31 20 49 53  l0 + - - col1 IS
1fc50 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39   NULL )..----..9
1fc60 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
1fc70 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64  to c6c0a4111b36d
1fc80 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34  04dbc811a11e4d54
1fc90 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  cad....query I r
1fca0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
1fcb0 49 53 54 49 4e 43 54 20 37 33 20 46 52 4f 4d 20  ISTINCT 73 FROM 
1fcc0 74 61 62 30 20 57 48 45 52 45 20 63 6f 6c 32 20  tab0 WHERE col2 
1fcd0 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
1fce0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
1fcf0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
1fd00 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
1fd10 20 2b 20 35 36 20 49 53 20 4e 55 4c 4c 0d 0a 2d   + 56 IS NULL..-
1fd20 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ---....query III
1fd30 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1fd40 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
1fd50 20 74 61 62 31 20 63 6f 72 30 20 57 48 45 52 45   tab1 cor0 WHERE
1fd60 20 28 20 63 6f 6c 30 20 29 20 2d 20 2d 20 32 35   ( col0 ) - - 25
1fd70 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
1fd80 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
1fd90 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31  hing to c6c0a411
1fda0 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31  1b36d04dbc811a11
1fdb0 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72  e4d54cad....quer
1fdc0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
1fdd0 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
1fde0 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
1fdf0 28 20 2b 20 63 6f 6c 30 20 29 20 3c 3d 20 63 6f  ( + col0 ) <= co
1fe00 6c 32 20 2d 20 2d 20 37 37 0d 0a 2d 2d 2d 2d 0d  l2 - - 77..----.
1fe10 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
1fe20 67 20 74 6f 20 63 36 63 30 61 34 31 31 31 62 33  g to c6c0a4111b3
1fe30 36 64 30 34 64 62 63 38 31 31 61 31 31 65 34 64  6d04dbc811a11e4d
1fe40 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20 49  54cad....query I
1fe50 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1fe60 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
1fe70 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
1fe80 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 31 20 2b   col2 * - col1 +
1fe90 20 2d 20 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e   - col0 IS NOT N
1fea0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  ULL..----..9 val
1feb0 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
1fec0 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64 62  6c0a4111b36d04db
1fed0 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64 0d  c811a11e4d54cad.
1fee0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1fef0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
1ff00 4e 43 54 20 2b 20 31 34 20 2b 20 33 34 20 41 53  NCT + 14 + 34 AS
1ff10 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
1ff20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 38 0d 0a  cor0..----..48..
1ff30 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
1ff40 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
1ff50 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  * FROM tab2 AS c
1ff60 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f  or0 WHERE NOT co
1ff70 6c 30 20 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  l0 > NULL..----.
1ff80 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1ff90 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 38 31 20  rt..SELECT - 81 
1ffa0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
1ffb0 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
1ffc0 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  NULL IS NULL..--
1ffd0 2d 2d 0d 0a 2d 38 31 0d 0a 2d 38 31 0d 0a 2d 38  --..-81..-81..-8
1ffe0 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
1fff0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
20000 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49  ntax: ..query II
20010 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
20020 32 31 0d 0a 53 45 4c 45 43 54 20 2b 20 37 20 41  21..SELECT + 7 A
20030 53 20 63 6f 6c 32 2c 20 35 38 20 2b 20 2b 20 2b  S col2, 58 + + +
20040 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d   COUNT( * ) FROM
20050 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 43 52   tab2 AS cor0 CR
20060 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53  OSS JOIN tab2 AS
20070 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 37 0d 0a   cor1..----..7..
20080 36 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  67....skipif mys
20090 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
200a0 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
200b0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 32 31 0d  wsort label-721.
200c0 0a 53 45 4c 45 43 54 20 2b 20 37 20 41 53 20 63  .SELECT + 7 AS c
200d0 6f 6c 32 2c 20 35 38 20 2b 20 2b 20 2b 20 43 4f  ol2, 58 + + + CO
200e0 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
200f0 61 62 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53  ab2 AS cor0 CROS
20100 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53 20 63  S JOIN tab2 AS c
20110 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 37 0d 0a 36 37  or1..----..7..67
20120 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
20130 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
20140 2b 20 2b 20 28 20 2d 20 39 32 20 29 20 46 52 4f  + + ( - 92 ) FRO
20150 4d 20 74 61 62 32 20 63 6f 72 30 20 43 52 4f 53  M tab2 cor0 CROS
20160 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53 20 63  S JOIN tab2 AS c
20170 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  or1..----..9 val
20180 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 31  ues hashing to 1
20190 61 66 37 30 39 61 37 39 61 33 65 35 36 32 38 31  af709a79a3e56281
201a0 66 66 64 63 65 34 64 39 33 31 64 35 39 36 35 0d  ffdce4d931d5965.
201b0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
201c0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
201d0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
201e0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 32 33 0d  wsort label-723.
201f0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e  .SELECT ALL COUN
20200 54 28 20 41 4c 4c 20 2d 20 32 30 20 29 20 41 53  T( ALL - 20 ) AS
20210 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
20220 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b  cor0 WHERE NOT +
20230 20 38 33 20 2b 20 2b 20 63 6f 6c 32 20 2b 20 63   83 + + col2 + c
20240 6f 6c 32 20 2d 20 2d 20 63 6f 6c 31 20 2b 20 63  ol2 - - col1 + c
20250 6f 6c 31 20 2b 20 2b 20 37 37 20 4e 4f 54 20 42  ol1 + + 77 NOT B
20260 45 54 57 45 45 4e 20 28 20 2d 20 37 34 20 29 20  ETWEEN ( - 74 ) 
20270 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  AND NULL..----..
20280 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
20290 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
202a0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
202b0 6f 72 74 20 6c 61 62 65 6c 2d 37 32 33 0d 0a 53  ort label-723..S
202c0 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20  ELECT ALL COUNT 
202d0 28 20 41 4c 4c 20 2d 20 32 30 20 29 20 41 53 20  ( ALL - 20 ) AS 
202e0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 63  col1 FROM tab1 c
202f0 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  or0 WHERE NOT + 
20300 38 33 20 2b 20 2b 20 63 6f 6c 32 20 2b 20 63 6f  83 + + col2 + co
20310 6c 32 20 2d 20 2d 20 63 6f 6c 31 20 2b 20 63 6f  l2 - - col1 + co
20320 6c 31 20 2b 20 2b 20 37 37 20 4e 4f 54 20 42 45  l1 + + 77 NOT BE
20330 54 57 45 45 4e 20 28 20 2d 20 37 34 20 29 20 41  TWEEN ( - 74 ) A
20340 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30  ND NULL..----..0
20350 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
20360 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
20370 49 4e 43 54 20 2d 20 31 35 20 46 52 4f 4d 20 74  INCT - 15 FROM t
20380 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
20390 45 20 4e 4f 54 20 2b 20 36 33 20 49 53 20 4e 4f  E NOT + 63 IS NO
203a0 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  T NULL..----....
203b0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
203c0 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 41 53  ..SELECT col0 AS
203d0 20 63 6f 6c 31 2c 20 36 30 20 41 53 20 63 6f 6c   col1, 60 AS col
203e0 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
203f0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 36  or0..----..51..6
20400 30 0d 0a 38 35 0d 0a 36 30 0d 0a 39 31 0d 0a 36  0..85..60..91..6
20410 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
20420 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
20430 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e  ntax: DIV for in
20440 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
20450 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
20460 74 20 6c 61 62 65 6c 2d 37 32 36 0d 0a 53 45 4c  t label-726..SEL
20470 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  ECT + COUNT( * )
20480 20 44 49 56 20 2b 20 4d 41 58 28 20 2b 20 63 6f   DIV + MAX( + co
20490 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 32 20 63  l1 ) FROM tab2 c
204a0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  or0..----..0....
204b0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
204c0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
204d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
204e0 61 62 65 6c 2d 37 32 36 0d 0a 53 45 4c 45 43 54  abel-726..SELECT
204f0 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2f   + COUNT ( * ) /
20500 20 2b 20 4d 41 58 20 28 20 2b 20 63 6f 6c 31 20   + MAX ( + col1 
20510 29 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  ) FROM tab2 cor0
20520 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65  ..----..0....que
20530 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
20540 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
20550 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
20560 20 4e 4f 54 20 4e 55 4c 4c 20 3c 20 35 38 0d 0a   NOT NULL < 58..
20570 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
20580 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
20590 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72   syntax: DIV for
205a0 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
205b0 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
205c0 73 6f 72 74 20 6c 61 62 65 6c 2d 37 32 38 0d 0a  sort label-728..
205d0 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28 20  SELECT + COUNT( 
205e0 2a 20 29 20 44 49 56 20 2b 20 31 35 20 46 52 4f  * ) DIV + 15 FRO
205f0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
20600 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  ----..0....skipi
20610 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
20620 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
20630 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
20640 37 32 38 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f  728..SELECT + CO
20650 55 4e 54 20 28 20 2a 20 29 20 2f 20 2b 20 31 35  UNT ( * ) / + 15
20660 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
20670 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f  r0..----..0....o
20680 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
20690 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
206a0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
206b0 74 20 6c 61 62 65 6c 2d 37 32 39 0d 0a 53 45 4c  t label-729..SEL
206c0 45 43 54 20 2b 20 4d 41 58 28 20 2d 20 38 31 20  ECT + MAX( - 81 
206d0 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
206e0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
206f0 2d 0d 0a 2d 38 31 0d 0a 0d 0a 73 6b 69 70 69 66  -..-81....skipif
20700 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
20710 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
20720 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
20730 32 39 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 41 58  29..SELECT + MAX
20740 20 28 20 2d 20 38 31 20 29 20 41 53 20 63 6f 6c   ( - 81 ) AS col
20750 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
20760 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 31 0d 0a  or0..----..-81..
20770 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
20780 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
20790 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
207a0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
207b0 65 6c 2d 37 33 30 0d 0a 53 45 4c 45 43 54 20 41  el-730..SELECT A
207c0 4c 4c 20 2d 20 63 6f 6c 31 20 44 49 56 20 2b 20  LL - col1 DIV + 
207d0 63 6f 6c 30 20 2d 20 63 6f 6c 32 20 2b 20 2d 20  col0 - col2 + - 
207e0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
207f0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
20800 31 30 0d 0a 2d 31 31 35 0d 0a 2d 36 34 0d 0a 0d  10..-115..-64...
20810 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
20820 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
20830 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
20840 6c 61 62 65 6c 2d 37 33 30 0d 0a 53 45 4c 45 43  label-730..SELEC
20850 54 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 2f 20 2b  T ALL - col1 / +
20860 20 63 6f 6c 30 20 2d 20 63 6f 6c 32 20 2b 20 2d   col0 - col2 + -
20870 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
20880 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
20890 31 31 30 0d 0a 2d 31 31 35 0d 0a 2d 36 34 0d 0a  110..-115..-64..
208a0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
208b0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
208c0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
208d0 73 6f 72 74 20 6c 61 62 65 6c 2d 37 33 31 0d 0a  sort label-731..
208e0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
208f0 2b 20 4d 41 58 28 20 31 35 20 29 20 46 52 4f 4d  + MAX( 15 ) FROM
20900 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab0 cor0..----
20910 0d 0a 31 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..15....skipif m
20920 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
20930 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
20940 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 33 31  owsort label-731
20950 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
20960 54 20 2b 20 4d 41 58 20 28 20 31 35 20 29 20 46  T + MAX ( 15 ) F
20970 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d  ROM tab0 cor0..-
20980 2d 2d 2d 0d 0a 31 35 0d 0a 0d 0a 71 75 65 72 79  ---..15....query
20990 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
209a0 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f  CT DISTINCT - co
209b0 6c 30 20 2a 20 2d 20 2b 20 63 6f 6c 31 20 2a 20  l0 * - + col1 * 
209c0 2d 20 38 35 20 41 53 20 63 6f 6c 31 20 46 52 4f  - 85 AS col1 FRO
209d0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab0..----..-1
209e0 30 33 32 37 35 0d 0a 2d 31 35 35 32 39 35 0d 0a  03275..-155295..
209f0 2d 38 32 34 35 0d 0a 0d 0a 71 75 65 72 79 20 49  -8245....query I
20a00 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
20a10 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20   - col1 AS col2 
20a20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
20a30 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c  NOT NULL IS NULL
20a40 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
20a50 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
20a60 54 20 41 4c 4c 20 38 36 20 2a 20 2b 20 63 6f 6c  T ALL 86 * + col
20a70 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  1 AS col1 FROM t
20a80 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 32 30 34 0d  ab1..----..1204.
20a90 0a 34 30 34 32 0d 0a 34 33 30 0d 0a 0d 0a 73 6b  .4042..430....sk
20aa0 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
20ab0 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
20ac0 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
20ad0 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
20ae0 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
20af0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 35  owsort..SELECT 5
20b00 38 20 2a 20 2b 20 35 37 20 63 6f 6c 30 20 46 52  8 * + 57 col0 FR
20b10 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33  OM tab1..----..3
20b20 33 30 36 0d 0a 33 33 30 36 0d 0a 33 33 30 36 0d  306..3306..3306.
20b30 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
20b40 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
20b50 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
20b60 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
20b70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
20b80 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
20b90 4c 45 43 54 20 63 6f 6c 30 20 2a 20 2d 20 31 30  LECT col0 * - 10
20ba0 20 41 53 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c 31   AS col2, + col1
20bb0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
20bc0 0a 2d 2d 2d 2d 0d 0a 2d 35 31 30 0d 0a 31 34 0d  .----..-510..14.
20bd0 0a 2d 38 35 30 0d 0a 35 0d 0a 2d 39 31 30 0d 0a  .-850..5..-910..
20be0 34 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  47....skipif pos
20bf0 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
20c00 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
20c10 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
20c20 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
20c30 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
20c40 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
20c50 2d 20 2d 20 34 33 20 2a 20 2b 20 2b 20 35 35 20  - - 43 * + + 55 
20c60 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
20c70 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33  S cor0..----..23
20c80 36 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  65....onlyif mys
20c90 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
20ca0 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
20cb0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
20cc0 20 6c 61 62 65 6c 2d 37 33 38 0d 0a 53 45 4c 45   label-738..SELE
20cd0 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20  CT DISTINCT - - 
20ce0 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
20cf0 47 4e 45 44 20 29 20 2a 20 63 6f 6c 31 20 2b 20  GNED ) * col1 + 
20d00 2b 20 36 33 20 46 52 4f 4d 20 74 61 62 31 20 41  + 63 FROM tab1 A
20d10 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
20d20 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
20d30 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
20d40 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
20d50 73 6f 72 74 20 6c 61 62 65 6c 2d 37 33 38 0d 0a  sort label-738..
20d60 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
20d70 2d 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  - - CAST ( NULL 
20d80 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 63  AS INTEGER ) * c
20d90 6f 6c 31 20 2b 20 2b 20 36 33 20 46 52 4f 4d 20  ol1 + + 63 FROM 
20da0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
20db0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79  --..NULL....only
20dc0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
20dd0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
20de0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
20df0 61 62 65 6c 2d 37 33 39 0d 0a 53 45 4c 45 43 54  abel-739..SELECT
20e00 20 41 4c 4c 20 2b 20 2b 20 43 4f 55 4e 54 28 20   ALL + + COUNT( 
20e10 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  * ) FROM tab1 AS
20e20 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
20e30 31 36 20 2f 20 2b 20 2d 20 35 33 20 2b 20 63 6f  16 / + - 53 + co
20e40 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  l0 IS NOT NULL..
20e50 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  ----..0....skipi
20e60 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
20e70 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
20e80 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
20e90 37 33 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  739..SELECT ALL 
20ea0 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  + + COUNT ( * ) 
20eb0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
20ec0 30 20 57 48 45 52 45 20 4e 4f 54 20 31 36 20 2f  0 WHERE NOT 16 /
20ed0 20 2b 20 2d 20 35 33 20 2b 20 63 6f 6c 30 20 49   + - 53 + col0 I
20ee0 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
20ef0 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..0....onlyif my
20f00 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
20f10 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
20f20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
20f30 74 20 6c 61 62 65 6c 2d 37 34 30 0d 0a 53 45 4c  t label-740..SEL
20f40 45 43 54 20 41 4c 4c 20 2d 20 2d 20 28 20 2d 20  ECT ALL - - ( - 
20f50 63 6f 6c 30 20 29 20 44 49 56 20 2d 20 2d 20 63  col0 ) DIV - - c
20f60 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol2 AS col1 FROM
20f70 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
20f80 2d 2d 2d 0d 0a 2d 38 0d 0a 30 0d 0a 30 0d 0a 0d  ---..-8..0..0...
20f90 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
20fa0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
20fb0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
20fc0 6c 61 62 65 6c 2d 37 34 30 0d 0a 53 45 4c 45 43  label-740..SELEC
20fd0 54 20 41 4c 4c 20 2d 20 2d 20 28 20 2d 20 63 6f  T ALL - - ( - co
20fe0 6c 30 20 29 20 2f 20 2d 20 2d 20 63 6f 6c 32 20  l0 ) / - - col2 
20ff0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
21000 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
21010 0a 2d 38 0d 0a 30 0d 0a 30 0d 0a 0d 0a 6f 6e 6c  .-8..0..0....onl
21020 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
21030 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c   syntax: DECIMAL
21040 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
21050 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
21060 37 34 31 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20  741..SELECT + ( 
21070 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 30 2c 20  col2 ) AS col0, 
21080 63 6f 6c 30 20 2b 20 2d 20 43 41 53 54 28 20 4e  col0 + - CAST( N
21090 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29  ULL AS DECIMAL )
210a0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
210b0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 4e 55  r0..----..10..NU
210c0 4c 4c 0d 0a 34 37 0d 0a 4e 55 4c 4c 0d 0a 39 39  LL..47..NULL..99
210d0 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
210e0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
210f0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
21100 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
21110 37 34 31 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20  741..SELECT + ( 
21120 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 30 2c 20  col2 ) AS col0, 
21130 63 6f 6c 30 20 2b 20 2d 20 43 41 53 54 20 28 20  col0 + - CAST ( 
21140 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 46  NULL AS REAL ) F
21150 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
21160 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 4e 55 4c 4c  ..----..10..NULL
21170 0d 0a 34 37 0d 0a 4e 55 4c 4c 0d 0a 39 39 0d 0a  ..47..NULL..99..
21180 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  NULL....onlyif m
21190 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
211a0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
211b0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
211c0 6c 2d 37 34 32 0d 0a 53 45 4c 45 43 54 20 44 49  l-742..SELECT DI
211d0 53 54 49 4e 43 54 20 2d 20 4d 49 4e 28 20 44 49  STINCT - MIN( DI
211e0 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20 29 20  STINCT + col0 ) 
211f0 63 6f 6c 31 2c 20 2d 20 33 30 20 2b 20 2d 20 2d  col1, - 30 + - -
21200 20 34 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53   42 FROM tab1 AS
21210 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31   cor0..----..-51
21220 0d 0a 31 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..12....skipif m
21230 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
21240 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
21250 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
21260 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
21270 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
21280 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
21290 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
212a0 20 6c 61 62 65 6c 2d 37 34 32 0d 0a 53 45 4c 45   label-742..SELE
212b0 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 4d 49  CT DISTINCT - MI
212c0 4e 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63  N ( DISTINCT + c
212d0 6f 6c 30 20 29 20 63 6f 6c 31 2c 20 2d 20 33 30  ol0 ) col1, - 30
212e0 20 2b 20 2d 20 2d 20 34 32 20 46 52 4f 4d 20 74   + - - 42 FROM t
212f0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
21300 2d 0d 0a 2d 35 31 0d 0a 31 32 0d 0a 0d 0a 6f 6e  -..-51..12....on
21310 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
21320 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
21330 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
21340 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
21350 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
21360 6c 2d 37 34 33 0d 0a 53 45 4c 45 43 54 20 44 49  l-743..SELECT DI
21370 53 54 49 4e 43 54 20 2d 20 39 32 20 41 53 20 63  STINCT - 92 AS c
21380 6f 6c 31 2c 20 43 41 53 54 28 20 4e 55 4c 4c 20  ol1, CAST( NULL 
21390 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 43 4f  AS SIGNED ) * CO
213a0 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31  UNT( * ) AS col1
213b0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
213c0 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
213d0 62 31 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d  b1 AS cor1..----
213e0 0d 0a 2d 39 32 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  ..-92..NULL....s
213f0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
21400 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
21410 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
21420 61 62 65 6c 2d 37 34 33 0d 0a 53 45 4c 45 43 54  abel-743..SELECT
21430 20 44 49 53 54 49 4e 43 54 20 2d 20 39 32 20 41   DISTINCT - 92 A
21440 53 20 63 6f 6c 31 2c 20 43 41 53 54 20 28 20 4e  S col1, CAST ( N
21450 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
21460 20 2a 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41   * COUNT ( * ) A
21470 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
21480 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a   AS cor0 CROSS J
21490 4f 49 4e 20 74 61 62 31 20 41 53 20 63 6f 72 31  OIN tab1 AS cor1
214a0 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 32 0d 0a 4e 55 4c  ..----..-92..NUL
214b0 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  L....onlyif mysq
214c0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
214d0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
214e0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 34  rowsort label-74
214f0 34 0d 0a 53 45 4c 45 43 54 20 28 20 43 4f 55 4e  4..SELECT ( COUN
21500 54 28 20 2a 20 29 20 29 20 46 52 4f 4d 20 74 61  T( * ) ) FROM ta
21510 62 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53  b2 AS cor0 CROSS
21520 20 4a 4f 49 4e 20 74 61 62 32 20 41 53 20 63 6f   JOIN tab2 AS co
21530 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 73  r1..----..9....s
21540 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
21550 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
21560 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
21570 62 65 6c 2d 37 34 34 0d 0a 53 45 4c 45 43 54 20  bel-744..SELECT 
21580 28 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29 20  ( COUNT ( * ) ) 
21590 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
215a0 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62  0 CROSS JOIN tab
215b0 32 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d  2 AS cor1..----.
215c0 0a 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  .9....query III 
215d0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
215e0 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ALL * FROM tab0 
215f0 57 48 45 52 45 20 2d 20 33 37 20 3c 3d 20 2d 20  WHERE - 37 <= - 
21600 2b 20 37 38 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  + 78..----....qu
21610 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
21620 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2b 20 2d  ELECT - col2 + -
21630 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   - col0 FROM tab
21640 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
21650 0a 2d 34 35 0d 0a 32 33 0d 0a 32 36 0d 0a 0d 0a  .-45..23..26....
21660 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
21670 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
21680 20 2b 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 63 6f   + + col0 * - co
21690 6c 30 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 2b 20  l0 + - col0 * + 
216a0 63 6f 6c 32 20 2a 20 63 6f 6c 30 20 2a 20 2b 20  col2 * col0 * + 
216b0 2b 20 34 36 20 2a 20 2b 20 35 32 20 46 52 4f 4d  + 46 * + 52 FROM
216c0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
216d0 2d 2d 2d 0d 0a 2d 31 31 36 34 31 35 39 37 32 0d  ---..-116415972.
216e0 0a 2d 33 39 31 39 30 39 33 37 36 0d 0a 2d 37 38  .-391909376..-78
216f0 30 33 39 35 36 32 35 0d 0a 0d 0a 73 6b 69 70 69  0395625....skipi
21700 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
21710 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
21720 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
21730 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
21740 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
21750 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
21760 49 4e 43 54 20 63 6f 6c 32 20 63 6f 6c 32 20 46  INCT col2 col2 F
21770 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
21780 20 57 48 45 52 45 20 2d 20 63 6f 6c 32 20 2d 20   WHERE - col2 - 
21790 2b 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a  + col0 IS NULL..
217a0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
217b0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
217c0 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  + col0 FROM tab1
217d0 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 30   cor0 WHERE col0
217e0 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
217f0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
21800 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
21810 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
21820 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
21830 65 6c 2d 37 35 30 0d 0a 53 45 4c 45 43 54 20 43  el-750..SELECT C
21840 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
21850 4e 45 44 20 29 20 2a 20 63 6f 6c 32 20 2b 20 2b  NED ) * col2 + +
21860 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   - CAST( NULL AS
21870 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c   SIGNED ) AS col
21880 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
21890 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
218a0 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .NULL..NULL....s
218b0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
218c0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
218d0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
218e0 62 65 6c 2d 37 35 30 0d 0a 53 45 4c 45 43 54 20  bel-750..SELECT 
218f0 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
21900 4e 54 45 47 45 52 20 29 20 2a 20 63 6f 6c 32 20  NTEGER ) * col2 
21910 2b 20 2b 20 2d 20 43 41 53 54 20 28 20 4e 55 4c  + + - CAST ( NUL
21920 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41  L AS INTEGER ) A
21930 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
21940 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
21950 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
21960 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
21970 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
21980 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
21990 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 35 31  owsort label-751
219a0 0d 0a 53 45 4c 45 43 54 20 32 20 2a 20 2b 20 4d  ..SELECT 2 * + M
219b0 49 4e 28 20 44 49 53 54 49 4e 43 54 20 2b 20 2b  IN( DISTINCT + +
219c0 20 35 31 20 29 20 2b 20 2b 20 34 34 20 41 53 20   51 ) + + 44 AS 
219d0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41  col2 FROM tab1 A
219e0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34  S cor0..----..14
219f0 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  6....skipif mysq
21a00 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
21a10 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
21a20 6f 72 74 20 6c 61 62 65 6c 2d 37 35 31 0d 0a 53  ort label-751..S
21a30 45 4c 45 43 54 20 32 20 2a 20 2b 20 4d 49 4e 20  ELECT 2 * + MIN 
21a40 28 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 35  ( DISTINCT + + 5
21a50 31 20 29 20 2b 20 2b 20 34 34 20 41 53 20 63 6f  1 ) + + 44 AS co
21a60 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
21a70 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 36 0d  cor0..----..146.
21a80 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
21a90 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
21aa0 4e 43 54 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 32  NCT + col1 + - 2
21ab0 35 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  5 + col0 FROM ta
21ac0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
21ad0 0d 0a 37 31 0d 0a 37 33 0d 0a 38 33 0d 0a 0d 0a  ..71..73..83....
21ae0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
21af0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
21b00 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
21b10 72 74 20 6c 61 62 65 6c 2d 37 35 33 0d 0a 53 45  rt label-753..SE
21b20 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f  LECT DISTINCT CO
21b30 55 4e 54 28 20 44 49 53 54 49 4e 43 54 20 63 6f  UNT( DISTINCT co
21b40 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41  l0 ) FROM tab2 A
21b50 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  S cor0..----..3.
21b60 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
21b70 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
21b80 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
21b90 74 20 6c 61 62 65 6c 2d 37 35 33 0d 0a 53 45 4c  t label-753..SEL
21ba0 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55  ECT DISTINCT COU
21bb0 4e 54 20 28 20 44 49 53 54 49 4e 43 54 20 63 6f  NT ( DISTINCT co
21bc0 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41  l0 ) FROM tab2 A
21bd0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  S cor0..----..3.
21be0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
21bf0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
21c00 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
21c10 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 35 34 0d  wsort label-754.
21c20 0a 53 45 4c 45 43 54 20 2b 20 53 55 4d 28 20 44  .SELECT + SUM( D
21c30 49 53 54 49 4e 43 54 20 2b 20 2b 20 63 6f 6c 32  ISTINCT + + col2
21c40 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
21c50 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 30 20  cor0 WHERE col0 
21c60 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
21c70 2d 0d 0a 32 32 33 0d 0a 0d 0a 73 6b 69 70 69 66  -..223....skipif
21c80 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
21c90 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
21ca0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
21cb0 35 34 0d 0a 53 45 4c 45 43 54 20 2b 20 53 55 4d  54..SELECT + SUM
21cc0 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20   ( DISTINCT + + 
21cd0 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 31  col2 ) FROM tab1
21ce0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 63   AS cor0 WHERE c
21cf0 6f 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ol0 IS NOT NULL.
21d00 0a 2d 2d 2d 2d 0d 0a 32 32 33 0d 0a 0d 0a 6f 6e  .----..223....on
21d10 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
21d20 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
21d30 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
21d40 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
21d50 35 35 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  55..SELECT - col
21d60 32 20 44 49 56 20 2b 20 39 30 20 2a 20 2d 20 63  2 DIV + 90 * - c
21d70 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol0 FROM tab2..-
21d80 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a  ---..0..0..0....
21d90 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
21da0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
21db0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
21dc0 61 62 65 6c 2d 37 35 35 0d 0a 53 45 4c 45 43 54  abel-755..SELECT
21dd0 20 2d 20 63 6f 6c 32 20 2f 20 2b 20 39 30 20 2a   - col2 / + 90 *
21de0 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   - col0 FROM tab
21df0 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30  2..----..0..0..0
21e00 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
21e10 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
21e20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
21e30 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
21e40 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
21e50 20 6c 61 62 65 6c 2d 37 35 36 0d 0a 53 45 4c 45   label-756..SELE
21e60 43 54 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53  CT CAST( NULL AS
21e70 20 53 49 47 4e 45 44 20 29 20 2b 20 2b 20 43 4f   SIGNED ) + + CO
21e80 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30  UNT( * ) AS col0
21e90 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
21ea0 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
21eb0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
21ec0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
21ed0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
21ee0 35 36 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 20  56..SELECT CAST 
21ef0 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
21f00 52 20 29 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20  R ) + + COUNT ( 
21f10 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  * ) AS col0 FROM
21f20 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   tab0..----..NUL
21f30 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  L....query III r
21f40 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
21f50 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41  LL * FROM tab0 A
21f60 53 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c  S cor0 WHERE col
21f70 30 20 2f 20 2b 20 37 33 20 49 53 20 4e 4f 54 20  0 / + 73 IS NOT 
21f80 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  NULL..----..9 va
21f90 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
21fa0 63 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61  c4b42765dff94eaa
21fb0 61 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37  a46040e537fb43b7
21fc0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
21fd0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
21fe0 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
21ff0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
22000 61 62 65 6c 2d 37 35 38 0d 0a 53 45 4c 45 43 54  abel-758..SELECT
22010 20 2d 20 2d 20 43 41 53 54 28 20 2d 20 63 6f 6c   - - CAST( - col
22020 30 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20  0 AS SIGNED ) + 
22030 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  - col2 FROM tab2
22040 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
22050 2d 31 30 34 0d 0a 2d 31 33 33 0d 0a 2d 36 39 0d  -104..-133..-69.
22060 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
22070 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
22080 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
22090 74 20 6c 61 62 65 6c 2d 37 35 38 0d 0a 53 45 4c  t label-758..SEL
220a0 45 43 54 20 2d 20 2d 20 43 41 53 54 20 28 20 2d  ECT - - CAST ( -
220b0 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45 52   col0 AS INTEGER
220c0 20 29 20 2b 20 2d 20 63 6f 6c 32 20 46 52 4f 4d   ) + - col2 FROM
220d0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
220e0 2d 2d 2d 0d 0a 2d 31 30 34 0d 0a 2d 31 33 33 0d  ---..-104..-133.
220f0 0a 2d 36 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .-69....query II
22100 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
22110 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
22120 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
22130 4e 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e  NULL NOT BETWEEN
22140 20 28 20 4e 55 4c 4c 20 29 20 41 4e 44 20 2d 20   ( NULL ) AND - 
22150 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  col0..----....qu
22160 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
22170 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
22180 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
22190 45 20 2b 20 36 36 20 2b 20 2d 20 2b 20 63 6f 6c  E + 66 + - + col
221a0 32 20 2d 20 33 37 20 4e 4f 54 20 42 45 54 57 45  2 - 37 NOT BETWE
221b0 45 4e 20 28 20 63 6f 6c 30 20 29 20 41 4e 44 20  EN ( col0 ) AND 
221c0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  NULL..----..9 va
221d0 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
221e0 63 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61  c4b42765dff94eaa
221f0 61 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37  a46040e537fb43b7
22200 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
22210 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
22220 2d 20 39 31 20 41 53 20 63 6f 6c 30 20 46 52 4f  - 91 AS col0 FRO
22230 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
22240 48 45 52 45 20 2d 20 63 6f 6c 32 20 49 53 20 4e  HERE - col2 IS N
22250 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
22260 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
22270 4c 45 43 54 20 2b 20 63 6f 6c 32 20 46 52 4f 4d  LECT + col2 FROM
22280 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
22290 45 52 45 20 28 20 63 6f 6c 30 20 29 20 49 4e 20  ERE ( col0 ) IN 
222a0 28 20 38 32 2c 20 2b 20 63 6f 6c 30 20 2b 20 32  ( 82, + col0 + 2
222b0 38 2c 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d  8, col2 )..----.
222c0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
222d0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
222e0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
222f0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 36 33 0d  wsort label-763.
22300 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28  .SELECT - COUNT(
22310 20 2a 20 29 20 2a 20 2d 20 2d 20 34 20 2a 20 2b   * ) * - - 4 * +
22320 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d   COUNT( * ) FROM
22330 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
22340 2d 2d 2d 0d 0a 2d 33 36 0d 0a 0d 0a 73 6b 69 70  ---..-36....skip
22350 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
22360 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
22370 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
22380 2d 37 36 33 0d 0a 53 45 4c 45 43 54 20 2d 20 43  -763..SELECT - C
22390 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20 2d  OUNT ( * ) * - -
223a0 20 34 20 2a 20 2b 20 43 4f 55 4e 54 20 28 20 2a   4 * + COUNT ( *
223b0 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
223c0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 36 0d  cor0..----..-36.
223d0 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
223e0 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
223f0 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
22400 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
22410 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
22420 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
22430 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  ECT DISTINCT col
22440 31 20 2a 20 2b 20 63 6f 6c 31 20 63 6f 6c 30 20  1 * + col1 col0 
22450 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
22460 4e 4f 54 20 2b 20 33 38 20 2b 20 2b 20 38 35 20  NOT + 38 + + 85 
22470 42 45 54 57 45 45 4e 20 2b 20 63 6f 6c 32 20 2b  BETWEEN + col2 +
22480 20 63 6f 6c 32 20 41 4e 44 20 4e 55 4c 4c 0d 0a   col2 AND NULL..
22490 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
224a0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
224b0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
224c0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
224d0 2d 37 36 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -765..SELECT ALL
224e0 20 2b 20 28 20 4d 41 58 28 20 44 49 53 54 49 4e   + ( MAX( DISTIN
224f0 43 54 20 34 32 20 29 20 29 20 46 52 4f 4d 20 74  CT 42 ) ) FROM t
22500 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab0 cor0..----..
22510 34 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  42....skipif mys
22520 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
22530 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
22540 73 6f 72 74 20 6c 61 62 65 6c 2d 37 36 35 0d 0a  sort label-765..
22550 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 28 20 4d  SELECT ALL + ( M
22560 41 58 20 28 20 44 49 53 54 49 4e 43 54 20 34 32  AX ( DISTINCT 42
22570 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30 20 63   ) ) FROM tab0 c
22580 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 32 0d 0a 0d  or0..----..42...
22590 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
225a0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
225b0 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  : DIV for intege
225c0 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
225d0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
225e0 61 62 65 6c 2d 37 36 36 0d 0a 53 45 4c 45 43 54  abel-766..SELECT
225f0 20 39 32 20 44 49 56 20 43 4f 55 4e 54 28 20 2a   92 DIV COUNT( *
22600 20 29 2c 20 2b 20 43 4f 55 4e 54 28 20 41 4c 4c   ), + COUNT( ALL
22610 20 2b 20 2b 20 63 6f 6c 32 20 29 20 41 53 20 63   + + col2 ) AS c
22620 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
22630 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 30 0d   cor0..----..30.
22640 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .3....skipif mys
22650 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
22660 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
22670 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 36 36 0d  wsort label-766.
22680 0a 53 45 4c 45 43 54 20 39 32 20 2f 20 43 4f 55  .SELECT 92 / COU
22690 4e 54 20 28 20 2a 20 29 2c 20 2b 20 43 4f 55 4e  NT ( * ), + COUN
226a0 54 20 28 20 41 4c 4c 20 2b 20 2b 20 63 6f 6c 32  T ( ALL + + col2
226b0 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
226c0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
226d0 2d 2d 0d 0a 33 30 0d 0a 33 0d 0a 0d 0a 73 6b 69  --..30..3....ski
226e0 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
226f0 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
22700 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
22710 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
22720 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
22730 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
22740 2d 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 31 20  - col0 * - col1 
22750 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
22760 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34  S cor0..----..-4
22770 32 35 0d 0a 2d 34 32 37 37 0d 0a 2d 37 31 34 0d  25..-4277..-714.
22780 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
22790 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
227a0 20 28 20 2b 20 63 6f 6c 31 20 29 20 2a 20 2d 20   ( + col1 ) * - 
227b0 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  + col1 FROM tab0
227c0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
227d0 2d 31 0d 0a 2d 34 34 31 0d 0a 2d 36 35 36 31 0d  -1..-441..-6561.
227e0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
227f0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61  # CAST syntax: a
22800 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
22810 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
22820 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
22830 6c 61 62 65 6c 2d 37 36 39 0d 0a 53 45 4c 45 43  label-769..SELEC
22840 54 20 2b 20 53 55 4d 28 20 43 41 53 54 28 20 2b  T + SUM( CAST( +
22850 20 63 6f 6c 32 20 41 53 20 53 49 47 4e 45 44 20   col2 AS SIGNED 
22860 29 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ) ) AS col2 FROM
22870 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
22880 2d 2d 2d 0d 0a 32 32 33 0d 0a 0d 0a 73 6b 69 70  ---..223....skip
22890 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
228a0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
228b0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
228c0 2d 37 36 39 0d 0a 53 45 4c 45 43 54 20 2b 20 53  -769..SELECT + S
228d0 55 4d 20 28 20 43 41 53 54 20 28 20 2b 20 63 6f  UM ( CAST ( + co
228e0 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  l2 AS INTEGER ) 
228f0 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
22900 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
22910 2d 0d 0a 32 32 33 0d 0a 0d 0a 6f 6e 6c 79 69 66  -..223....onlyif
22920 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
22930 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20  ntax: aggregate 
22940 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
22950 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
22960 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 37 30  owsort label-770
22970 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41 53  ..SELECT ALL CAS
22980 54 28 20 2d 20 53 55 4d 28 20 2b 20 63 6f 6c 31  T( - SUM( + col1
22990 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 46   ) AS SIGNED ) F
229a0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
229b0 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 36 0d 0a 0d 0a 73  ..----..-66....s
229c0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
229d0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
229e0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
229f0 62 65 6c 2d 37 37 30 0d 0a 53 45 4c 45 43 54 20  bel-770..SELECT 
22a00 41 4c 4c 20 43 41 53 54 20 28 20 2d 20 53 55 4d  ALL CAST ( - SUM
22a10 20 28 20 2b 20 63 6f 6c 31 20 29 20 41 53 20 49   ( + col1 ) AS I
22a20 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61  NTEGER ) FROM ta
22a30 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
22a40 0d 0a 2d 36 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-66....onlyif 
22a50 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
22a60 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
22a70 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
22a80 6c 2d 37 37 31 0d 0a 53 45 4c 45 43 54 20 41 4c  l-771..SELECT AL
22a90 4c 20 2b 20 43 4f 55 4e 54 28 20 44 49 53 54 49  L + COUNT( DISTI
22aa0 4e 43 54 20 2d 20 2d 20 39 31 20 29 20 63 6f 6c  NCT - - 91 ) col
22ab0 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
22ac0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a  or0..----..1....
22ad0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
22ae0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73  ot compatible..s
22af0 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
22b00 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
22b10 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
22b20 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
22b30 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
22b40 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 37  rowsort label-77
22b50 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  1..SELECT ALL + 
22b60 43 4f 55 4e 54 20 28 20 44 49 53 54 49 4e 43 54  COUNT ( DISTINCT
22b70 20 2d 20 2d 20 39 31 20 29 20 63 6f 6c 32 20 46   - - 91 ) col2 F
22b80 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
22b90 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 6f 6e 6c  ..----..1....onl
22ba0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
22bb0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
22bc0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
22bd0 6c 61 62 65 6c 2d 37 37 32 0d 0a 53 45 4c 45 43  label-772..SELEC
22be0 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  T - COUNT( * ) F
22bf0 52 4f 4d 20 74 61 62 31 2c 20 74 61 62 30 20 63  ROM tab1, tab0 c
22c00 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d  or0..----..-9...
22c10 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
22c20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
22c30 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
22c40 6c 61 62 65 6c 2d 37 37 32 0d 0a 53 45 4c 45 43  label-772..SELEC
22c50 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  T - COUNT ( * ) 
22c60 46 52 4f 4d 20 74 61 62 31 2c 20 74 61 62 30 20  FROM tab1, tab0 
22c70 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a  cor0..----..-9..
22c80 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
22c90 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
22ca0 47 4e 45 44 20 74 79 70 65 3a 20 44 45 43 49 4d  GNED type: DECIM
22cb0 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  AL type: ..query
22cc0 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62   III rowsort lab
22cd0 65 6c 2d 37 37 33 0d 0a 53 45 4c 45 43 54 20 41  el-773..SELECT A
22ce0 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57  LL * FROM tab1 W
22cf0 48 45 52 45 20 28 20 2b 20 28 20 2d 20 63 6f 6c  HERE ( + ( - col
22d00 31 20 29 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  1 ) NOT BETWEEN 
22d10 4e 55 4c 4c 20 41 4e 44 20 2d 20 43 41 53 54 28  NULL AND - CAST(
22d20 20 2b 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20   + + CAST( NULL 
22d30 41 53 20 44 45 43 49 4d 41 4c 20 29 20 41 53 20  AS DECIMAL ) AS 
22d40 53 49 47 4e 45 44 20 29 20 2b 20 2d 20 2d 20 63  SIGNED ) + - - c
22d50 6f 6c 31 20 2b 20 63 6f 6c 32 20 29 0d 0a 2d 2d  ol1 + col2 )..--
22d60 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
22d70 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
22d80 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72  ble..query III r
22d90 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 37 33  owsort label-773
22da0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
22db0 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 28  ROM tab1 WHERE (
22dc0 20 2b 20 28 20 2d 20 63 6f 6c 31 20 29 20 4e 4f   + ( - col1 ) NO
22dd0 54 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41  T BETWEEN NULL A
22de0 4e 44 20 2d 20 43 41 53 54 20 28 20 2b 20 2b 20  ND - CAST ( + + 
22df0 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52  CAST ( NULL AS R
22e00 45 41 4c 20 29 20 41 53 20 49 4e 54 45 47 45 52  EAL ) AS INTEGER
22e10 20 29 20 2b 20 2d 20 2d 20 63 6f 6c 31 20 2b 20   ) + - - col1 + 
22e20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  col2 )..----....
22e30 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
22e40 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
22e50 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20   tab2 WHERE NOT 
22e60 2b 20 37 31 20 2b 20 31 34 20 2a 20 33 37 20 2b  + 71 + 14 * 37 +
22e70 20 63 6f 6c 32 20 42 45 54 57 45 45 4e 20 2b 20   col2 BETWEEN + 
22e80 2b 20 63 6f 6c 31 20 41 4e 44 20 4e 55 4c 4c 0d  + col1 AND NULL.
22e90 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
22ea0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
22eb0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
22ec0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
22ed0 6c 2d 37 37 35 0d 0a 53 45 4c 45 43 54 20 43 4f  l-775..SELECT CO
22ee0 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
22ef0 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
22f00 20 4e 4f 54 20 2b 20 63 6f 6c 31 20 2b 20 28 20   NOT + col1 + ( 
22f10 2b 20 38 32 20 29 20 49 53 20 4e 55 4c 4c 0d 0a  + 82 ) IS NULL..
22f20 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69  ----..3....skipi
22f30 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
22f40 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
22f50 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
22f60 37 37 35 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e  775..SELECT COUN
22f70 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  T ( * ) FROM tab
22f80 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
22f90 4e 4f 54 20 2b 20 63 6f 6c 31 20 2b 20 28 20 2b  NOT + col1 + ( +
22fa0 20 38 32 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d   82 ) IS NULL..-
22fb0 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66  ---..3....skipif
22fc0 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
22fd0 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
22fe0 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
22ff0 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
23000 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  s..query II rows
23010 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
23020 2d 20 2b 20 63 6f 6c 32 20 63 6f 6c 30 2c 20 2d  - + col2 col0, -
23030 20 34 38 20 46 52 4f 4d 20 74 61 62 30 20 41 53   48 FROM tab0 AS
23040 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30   cor0..----..-10
23050 0d 0a 2d 34 38 0d 0a 2d 34 37 0d 0a 2d 34 38 0d  ..-48..-47..-48.
23060 0a 2d 39 39 0d 0a 2d 34 38 0d 0a 0d 0a 71 75 65  .-99..-48....que
23070 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
23080 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2b  ELECT ALL col1 +
23090 20 2d 20 63 6f 6c 32 2c 20 2d 20 28 20 33 34 20   - col2, - ( 34 
230a0 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
230b0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 38 0d 0a 2d  ab2..----..28..-
230c0 33 34 0d 0a 33 37 0d 0a 2d 33 34 0d 0a 39 0d 0a  34..37..-34..9..
230d0 2d 33 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -34....onlyif my
230e0 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
230f0 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
23100 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
23110 74 20 6c 61 62 65 6c 2d 37 37 38 0d 0a 53 45 4c  t label-778..SEL
23120 45 43 54 20 2d 20 2d 20 35 38 20 44 49 56 20 2d  ECT - - 58 DIV -
23130 20 39 34 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   94 AS col0 FROM
23140 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 43 52   tab1 AS cor0 CR
23150 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53  OSS JOIN tab2 AS
23160 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   cor1..----..9 v
23170 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
23180 20 38 62 37 35 31 33 36 62 32 62 35 31 63 37 37   8b75136b2b51c77
23190 33 34 35 63 30 33 38 30 34 65 63 31 63 64 61 35  345c03804ec1cda5
231a0 63 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  c....skipif mysq
231b0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
231c0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
231d0 6f 72 74 20 6c 61 62 65 6c 2d 37 37 38 0d 0a 53  ort label-778..S
231e0 45 4c 45 43 54 20 2d 20 2d 20 35 38 20 2f 20 2d  ELECT - - 58 / -
231f0 20 39 34 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   94 AS col0 FROM
23200 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 43 52   tab1 AS cor0 CR
23210 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53  OSS JOIN tab2 AS
23220 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   cor1..----..9 v
23230 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
23240 20 38 62 37 35 31 33 36 62 32 62 35 31 63 37 37   8b75136b2b51c77
23250 33 34 35 63 30 33 38 30 34 65 63 31 63 64 61 35  345c03804ec1cda5
23260 63 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  c....query I row
23270 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b  sort..SELECT - +
23280 20 63 6f 6c 32 20 2d 20 2b 20 63 6f 6c 31 20 46   col2 - + col1 F
23290 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d  ROM tab1 cor0..-
232a0 2d 2d 2d 0d 0a 2d 31 31 30 0d 0a 2d 31 31 35 0d  ---..-110..-115.
232b0 0a 2d 36 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-64....query I 
232c0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
232d0 2d 20 28 20 2d 20 63 6f 6c 31 20 29 20 2b 20 37  - ( - col1 ) + 7
232e0 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
232f0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 37 0d 0a  or0..----..117..
23300 37 35 0d 0a 38 34 0d 0a 0d 0a 71 75 65 72 79 20  75..84....query 
23310 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
23320 54 20 41 4c 4c 20 33 38 20 2b 20 2b 20 34 34 20  T ALL 38 + + 44 
23330 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
23340 30 0d 0a 2d 2d 2d 2d 0d 0a 38 32 0d 0a 38 32 0d  0..----..82..82.
23350 0a 38 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .82....onlyif my
23360 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
23370 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
23380 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
23390 37 38 32 0d 0a 53 45 4c 45 43 54 20 2d 20 32 37  782..SELECT - 27
233a0 20 2b 20 2b 20 53 55 4d 28 20 2b 20 63 6f 6c 32   + + SUM( + col2
233b0 20 29 20 2a 20 2d 20 2d 20 38 33 20 46 52 4f 4d   ) * - - 83 FROM
233c0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
233d0 2d 2d 2d 0d 0a 31 30 30 31 36 0d 0a 0d 0a 73 6b  ---..10016....sk
233e0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
233f0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
23400 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
23410 65 6c 2d 37 38 32 0d 0a 53 45 4c 45 43 54 20 2d  el-782..SELECT -
23420 20 32 37 20 2b 20 2b 20 53 55 4d 20 28 20 2b 20   27 + + SUM ( + 
23430 63 6f 6c 32 20 29 20 2a 20 2d 20 2d 20 38 33 20  col2 ) * - - 83 
23440 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
23450 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 30 31 36 0d 0a  0..----..10016..
23460 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
23470 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20  rt..SELECT col1 
23480 41 53 20 63 6f 6c 32 2c 20 2b 20 39 33 20 46 52  AS col2, + 93 FR
23490 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 55  OM tab1 WHERE NU
234a0 4c 4c 20 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  LL > NULL..----.
234b0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
234c0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
234d0 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
234e0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
234f0 62 65 6c 2d 37 38 34 0d 0a 53 45 4c 45 43 54 20  bel-784..SELECT 
23500 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  - CAST( NULL AS 
23510 53 49 47 4e 45 44 20 29 20 2f 20 2b 20 35 32 20  SIGNED ) / + 52 
23520 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
23530 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
23540 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
23550 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
23560 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
23570 6f 72 74 20 6c 61 62 65 6c 2d 37 38 34 0d 0a 53  ort label-784..S
23580 45 4c 45 43 54 20 2d 20 43 41 53 54 20 28 20 4e  ELECT - CAST ( N
23590 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
235a0 20 2f 20 2b 20 35 32 20 46 52 4f 4d 20 74 61 62   / + 52 FROM tab
235b0 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  2..----..NULL..N
235c0 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65  ULL..NULL....que
235d0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
235e0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
235f0 36 35 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  65 FROM tab1 WHE
23600 52 45 20 4e 4f 54 20 2d 20 2b 20 63 6f 6c 32 20  RE NOT - + col2 
23610 2b 20 2d 20 63 6f 6c 31 20 4e 4f 54 20 42 45 54  + - col1 NOT BET
23620 57 45 45 4e 20 63 6f 6c 31 20 41 4e 44 20 2b 20  WEEN col1 AND + 
23630 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  - col2..----....
23640 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
23650 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 32 35  .SELECT ALL - 25
23660 20 2a 20 2d 20 2b 20 63 6f 6c 30 20 2b 20 2d 20   * - + col0 + - 
23670 28 20 37 31 20 29 20 46 52 4f 4d 20 74 61 62 31  ( 71 ) FROM tab1
23680 0d 0a 2d 2d 2d 2d 0d 0a 31 32 30 34 0d 0a 32 30  ..----..1204..20
23690 35 34 0d 0a 32 32 30 34 0d 0a 0d 0a 71 75 65 72  54..2204....quer
236a0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
236b0 45 43 54 20 44 49 53 54 49 4e 43 54 20 38 38 20  ECT DISTINCT 88 
236c0 2a 20 38 39 20 2a 20 36 35 20 41 53 20 63 6f 6c  * 89 * 65 AS col
236d0 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
236e0 2d 0d 0a 35 30 39 30 38 30 0d 0a 0d 0a 6f 6e 6c  -..509080....onl
236f0 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
23700 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
23710 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
23720 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 38  rowsort label-78
23730 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  8..SELECT ALL - 
23740 63 6f 6c 30 20 44 49 56 20 2b 20 2d 20 33 37 20  col0 DIV + - 37 
23750 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
23760 0a 30 0d 0a 32 0d 0a 32 0d 0a 0d 0a 73 6b 69 70  .0..2..2....skip
23770 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
23780 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
23790 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
237a0 2d 37 38 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -788..SELECT ALL
237b0 20 2d 20 63 6f 6c 30 20 2f 20 2b 20 2d 20 33 37   - col0 / + - 37
237c0 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
237d0 0d 0a 30 0d 0a 32 0d 0a 32 0d 0a 0d 0a 6f 6e 6c  ..0..2..2....onl
237e0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
237f0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
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 38 39 0d 0a 53 45 4c 45 43  label-789..SELEC
23820 54 20 2d 20 4d 41 58 28 20 2b 20 36 33 20 29 20  T - MAX( + 63 ) 
23830 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
23840 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20  0 WHERE NULL IS 
23850 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 33 0d  NULL..----..-63.
23860 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
23870 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
23880 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
23890 74 20 6c 61 62 65 6c 2d 37 38 39 0d 0a 53 45 4c  t label-789..SEL
238a0 45 43 54 20 2d 20 4d 41 58 20 28 20 2b 20 36 33  ECT - MAX ( + 63
238b0 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
238c0 74 61 62 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  tab0 WHERE NULL 
238d0 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d  IS NULL..----..-
238e0 36 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  63....query I ro
238f0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
23900 53 54 49 4e 43 54 20 2b 20 37 34 20 2b 20 2b 20  STINCT + 74 + + 
23910 34 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  42 FROM tab2..--
23920 2d 2d 0d 0a 31 31 36 0d 0a 0d 0a 6f 6e 6c 79 69  --..116....onlyi
23930 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
23940 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
23950 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
23960 62 65 6c 2d 37 39 31 0d 0a 53 45 4c 45 43 54 20  bel-791..SELECT 
23970 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 36 38 20  DISTINCT + - 68 
23980 2a 20 2b 20 2d 20 34 34 20 2b 20 2d 20 2b 20 43  * + - 44 + - + C
23990 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74  OUNT( * ) FROM t
239a0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
239b0 2d 0d 0a 32 39 38 39 0d 0a 0d 0a 73 6b 69 70 69  -..2989....skipi
239c0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
239d0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
239e0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
239f0 37 39 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  791..SELECT DIST
23a00 49 4e 43 54 20 2b 20 2d 20 36 38 20 2a 20 2b 20  INCT + - 68 * + 
23a10 2d 20 34 34 20 2b 20 2d 20 2b 20 43 4f 55 4e 54  - 44 + - + COUNT
23a20 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31   ( * ) FROM tab1
23a30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
23a40 32 39 38 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49  2989....query II
23a50 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
23a60 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
23a70 30 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 63  0 cor0 WHERE + c
23a80 6f 6c 30 20 2b 20 2b 20 37 37 20 4e 4f 54 20 42  ol0 + + 77 NOT B
23a90 45 54 57 45 45 4e 20 2b 20 34 35 20 41 4e 44 20  ETWEEN + 45 AND 
23aa0 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20  + col2..----..9 
23ab0 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
23ac0 6f 20 63 34 62 34 32 37 36 35 64 66 66 39 34 65  o c4b42765dff94e
23ad0 61 61 61 34 36 30 34 30 65 35 33 37 66 62 34 33  aaa46040e537fb43
23ae0 62 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  b7....onlyif mys
23af0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
23b00 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
23b10 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
23b20 39 33 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 4d  93..SELECT + - M
23b30 49 4e 28 20 2b 20 38 36 20 29 20 46 52 4f 4d 20  IN( + 86 ) FROM 
23b40 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
23b50 2d 2d 0d 0a 2d 38 36 0d 0a 0d 0a 73 6b 69 70 69  --..-86....skipi
23b60 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
23b70 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
23b80 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
23b90 37 39 33 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20  793..SELECT + - 
23ba0 4d 49 4e 20 28 20 2b 20 38 36 20 29 20 46 52 4f  MIN ( + 86 ) FRO
23bb0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
23bc0 2d 2d 2d 2d 0d 0a 2d 38 36 0d 0a 0d 0a 73 6b 69  ----..-86....ski
23bd0 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
23be0 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
23bf0 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
23c00 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
23c10 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
23c20 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
23c30 4c 20 2d 20 28 20 2b 20 31 33 20 29 20 63 6f 6c  L - ( + 13 ) col
23c40 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
23c50 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 0d 0a  or0..----..-13..
23c60 2d 31 33 0d 0a 2d 31 33 0d 0a 0d 0a 6f 6e 6c 79  -13..-13....only
23c70 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
23c80 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
23c90 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
23ca0 61 62 65 6c 2d 37 39 35 0d 0a 53 45 4c 45 43 54  abel-795..SELECT
23cb0 20 2b 20 2d 20 53 55 4d 28 20 63 6f 6c 31 20 29   + - SUM( col1 )
23cc0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
23cd0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
23ce0 0d 0a 2d 36 36 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-66....skipif 
23cf0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
23d00 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
23d10 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 39  rowsort label-79
23d20 35 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 53 55  5..SELECT + - SU
23d30 4d 20 28 20 63 6f 6c 31 20 29 20 41 53 20 63 6f  M ( col1 ) AS co
23d40 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
23d50 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 36 0d  cor0..----..-66.
23d60 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
23d70 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
23d80 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
23d90 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
23da0 6c 61 62 65 6c 2d 37 39 36 0d 0a 53 45 4c 45 43  label-796..SELEC
23db0 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  T * FROM tab0 co
23dc0 72 30 20 57 48 45 52 45 20 4e 4f 54 20 43 41 53  r0 WHERE NOT CAS
23dd0 54 28 20 2b 20 2d 20 36 30 20 41 53 20 53 49 47  T( + - 60 AS SIG
23de0 4e 45 44 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c  NED ) IS NOT NUL
23df0 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  L..----....skipi
23e00 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
23e10 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
23e20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
23e30 6c 2d 37 39 36 0d 0a 53 45 4c 45 43 54 20 2a 20  l-796..SELECT * 
23e40 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57  FROM tab0 cor0 W
23e50 48 45 52 45 20 4e 4f 54 20 43 41 53 54 20 28 20  HERE NOT CAST ( 
23e60 2b 20 2d 20 36 30 20 41 53 20 49 4e 54 45 47 45  + - 60 AS INTEGE
23e70 52 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  R ) IS NOT NULL.
23e80 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
23e90 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
23ea0 20 44 49 53 54 49 4e 43 54 20 2b 20 28 20 2d 20   DISTINCT + ( - 
23eb0 2d 20 63 6f 6c 31 20 29 20 2b 20 2d 20 63 6f 6c  - col1 ) + - col
23ec0 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  1 AS col1 FROM t
23ed0 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
23ee0 45 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45  E NULL NOT BETWE
23ef0 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c  EN NULL AND NULL
23f00 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
23f10 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
23f20 54 20 44 49 53 54 49 4e 43 54 20 2b 20 28 20 63  T DISTINCT + ( c
23f30 6f 6c 30 20 29 20 2a 20 2b 20 28 20 2d 20 63 6f  ol0 ) * + ( - co
23f40 6c 31 20 29 20 2b 20 2d 20 32 20 46 52 4f 4d 20  l1 ) + - 2 FROM 
23f50 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
23f60 2d 2d 0d 0a 2d 34 32 37 0d 0a 2d 34 32 37 39 0d  --..-427..-4279.
23f70 0a 2d 37 31 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .-716....onlyif 
23f80 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
23f90 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
23fa0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
23fb0 6c 2d 37 39 39 0d 0a 53 45 4c 45 43 54 20 44 49  l-799..SELECT DI
23fc0 53 54 49 4e 43 54 20 2b 20 2b 20 43 4f 55 4e 54  STINCT + + COUNT
23fd0 28 20 41 4c 4c 20 2d 20 32 34 20 29 20 46 52 4f  ( ALL - 24 ) FRO
23fe0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
23ff0 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69  ----..3....skipi
24000 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
24010 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
24020 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
24030 37 39 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  799..SELECT DIST
24040 49 4e 43 54 20 2b 20 2b 20 43 4f 55 4e 54 20 28  INCT + + COUNT (
24050 20 41 4c 4c 20 2d 20 32 34 20 29 20 46 52 4f 4d   ALL - 24 ) FROM
24060 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
24070 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66  ---..3....onlyif
24080 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
24090 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
240a0 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
240b0 73 6f 72 74 20 6c 61 62 65 6c 2d 38 30 30 0d 0a  sort label-800..
240c0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
240d0 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46  - col2 AS col1 F
240e0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
240f0 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20   WHERE ( NULL ) 
24100 4e 4f 54 20 49 4e 20 28 20 63 6f 6c 31 20 2b 20  NOT IN ( col1 + 
24110 2d 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c 31 2c 20  - col1, + col1, 
24120 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
24130 47 4e 45 44 20 29 20 2a 20 2d 20 28 20 2b 20 2d  GNED ) * - ( + -
24140 20 33 35 20 29 20 2b 20 2b 20 35 35 20 29 0d 0a   35 ) + + 55 )..
24150 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ----....skipif m
24160 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
24170 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
24180 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 30 30  owsort label-800
24190 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
241a0 54 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31  T - col2 AS col1
241b0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
241c0 72 30 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20  r0 WHERE ( NULL 
241d0 29 20 4e 4f 54 20 49 4e 20 28 20 63 6f 6c 31 20  ) NOT IN ( col1 
241e0 2b 20 2d 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c 31  + - col1, + col1
241f0 2c 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  , CAST ( NULL AS
24200 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2d 20 28   INTEGER ) * - (
24210 20 2b 20 2d 20 33 35 20 29 20 2b 20 2b 20 35 35   + - 35 ) + + 55
24220 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72   )..----....quer
24230 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
24240 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
24250 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
24260 4e 4f 54 20 2b 20 28 20 2d 20 2b 20 63 6f 6c 31  NOT + ( - + col1
24270 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a   ) IS NOT NULL..
24280 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
24290 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
242a0 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
242b0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
242c0 48 45 52 45 20 63 6f 6c 30 20 42 45 54 57 45 45  HERE col0 BETWEE
242d0 4e 20 4e 55 4c 4c 20 41 4e 44 20 2d 20 63 6f 6c  N NULL AND - col
242e0 30 20 2a 20 2b 20 34 35 20 2a 20 2d 20 63 6f 6c  0 * + 45 * - col
242f0 31 20 2a 20 35 38 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  1 * 58..----....
24300 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
24310 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 35 33 20  ..SELECT + ( 53 
24320 29 20 41 53 20 63 6f 6c 31 2c 20 2d 20 63 6f 6c  ) AS col1, - col
24330 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
24340 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 33 0d 0a 2d  or0..----..53..-
24350 35 31 0d 0a 35 33 0d 0a 2d 38 35 0d 0a 35 33 0d  51..53..-85..53.
24360 0a 2d 39 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  .-91....skipif p
24370 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
24380 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
24390 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
243a0 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
243b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
243c0 0d 0a 53 45 4c 45 43 54 20 28 20 2b 20 2b 20 33  ..SELECT ( + + 3
243d0 39 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  9 ) col2 FROM ta
243e0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 39 0d 0a 33 39  b2..----..39..39
243f0 0d 0a 33 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..39....onlyif m
24400 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
24410 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
24420 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
24430 2d 38 30 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -805..SELECT ALL
24440 20 2d 20 4d 49 4e 28 20 2d 20 35 38 20 29 20 2a   - MIN( - 58 ) *
24450 20 2b 20 2b 20 39 30 20 41 53 20 63 6f 6c 32 20   + + 90 AS col2 
24460 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
24470 0a 35 32 32 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  .5220....skipif 
24480 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
24490 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
244a0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 30  rowsort label-80
244b0 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  5..SELECT ALL - 
244c0 4d 49 4e 20 28 20 2d 20 35 38 20 29 20 2a 20 2b  MIN ( - 58 ) * +
244d0 20 2b 20 39 30 20 41 53 20 63 6f 6c 32 20 46 52   + 90 AS col2 FR
244e0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35  OM tab1..----..5
244f0 32 32 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  220....onlyif my
24500 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
24510 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
24520 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
24530 6f 72 74 20 6c 61 62 65 6c 2d 38 30 36 0d 0a 53  ort label-806..S
24540 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
24550 32 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 32 31  2 WHERE NOT + 21
24560 20 3e 20 28 20 2b 20 2b 20 43 41 53 54 28 20 4e   > ( + + CAST( N
24570 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
24580 29 20 2b 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d  ) + + col1..----
24590 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
245a0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
245b0 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  e..query III row
245c0 73 6f 72 74 20 6c 61 62 65 6c 2d 38 30 36 0d 0a  sort label-806..
245d0 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
245e0 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 32  b2 WHERE NOT + 2
245f0 31 20 3e 20 28 20 2b 20 2b 20 43 41 53 54 20 28  1 > ( + + CAST (
24600 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
24610 20 29 20 29 20 2b 20 2b 20 63 6f 6c 31 0d 0a 2d   ) ) + + col1..-
24620 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
24630 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
24640 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
24650 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
24660 38 30 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  807..SELECT DIST
24670 49 4e 43 54 20 2b 20 34 32 20 2a 20 31 37 20 2a  INCT + 42 * 17 *
24680 20 2d 20 53 55 4d 28 20 44 49 53 54 49 4e 43 54   - SUM( DISTINCT
24690 20 2d 20 28 20 2b 20 34 30 20 29 20 29 20 46 52   - ( + 40 ) ) FR
246a0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32  OM tab1..----..2
246b0 38 35 36 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  8560....skipif m
246c0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
246d0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
246e0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 30 37  owsort label-807
246f0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
24700 54 20 2b 20 34 32 20 2a 20 31 37 20 2a 20 2d 20  T + 42 * 17 * - 
24710 53 55 4d 20 28 20 44 49 53 54 49 4e 43 54 20 2d  SUM ( DISTINCT -
24720 20 28 20 2b 20 34 30 20 29 20 29 20 46 52 4f 4d   ( + 40 ) ) FROM
24730 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 38 35   tab1..----..285
24740 36 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  60....query II r
24750 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
24760 4c 4c 20 34 37 20 2a 20 63 6f 6c 30 2c 20 2d 20  LL 47 * col0, - 
24770 28 20 2d 20 37 39 20 29 20 41 53 20 63 6f 6c 32  ( - 79 ) AS col2
24780 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
24790 0d 0a 32 33 39 37 0d 0a 37 39 0d 0a 33 39 39 35  ..2397..79..3995
247a0 0d 0a 37 39 0d 0a 34 32 37 37 0d 0a 37 39 0d 0a  ..79..4277..79..
247b0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
247c0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
247d0 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
247e0 54 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20 4e  T NULL BETWEEN N
247f0 55 4c 4c 20 41 4e 44 20 63 6f 6c 32 20 2a 20 2b  ULL AND col2 * +
24800 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 32 0d 0a   col2 + + col2..
24810 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  ----....skipif p
24820 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
24830 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
24840 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
24850 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
24860 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
24870 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 63 6f 6c  ..SELECT + + col
24880 31 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  1 col0 FROM tab1
24890 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 2b 20 63   WHERE NOT + + c
248a0 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ol0 IS NULL..---
248b0 2d 0d 0a 31 34 0d 0a 34 37 0d 0a 35 0d 0a 0d 0a  -..14..47..5....
248c0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
248d0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
248e0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  CT * FROM tab2 W
248f0 48 45 52 45 20 2d 20 63 6f 6c 32 20 3c 3d 20 2d  HERE - col2 <= -
24900 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 2b 20 32 33   - col2 + + + 23
24910 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
24920 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39   hashing to 75c9
24930 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62 66  98aa53ac83218cbf
24940 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a  2feb962d0a49....
24950 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
24960 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
24970 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
24980 72 74 20 6c 61 62 65 6c 2d 38 31 32 0d 0a 53 45  rt label-812..SE
24990 4c 45 43 54 20 2d 20 4d 41 58 28 20 2b 20 63 6f  LECT - MAX( + co
249a0 6c 31 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  l1 ) AS col1 FRO
249b0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 37  M tab2..----..-7
249c0 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  7....skipif mysq
249d0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
249e0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
249f0 6f 72 74 20 6c 61 62 65 6c 2d 38 31 32 0d 0a 53  ort label-812..S
24a00 45 4c 45 43 54 20 2d 20 4d 41 58 20 28 20 2b 20  ELECT - MAX ( + 
24a10 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 31 20 46  col1 ) AS col1 F
24a20 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
24a30 2d 37 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  -77....query I r
24a40 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
24a50 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 2b  ISTINCT + col1 +
24a60 20 2d 20 2b 20 63 6f 6c 32 20 2b 20 63 6f 6c 31   - + col2 + col1
24a70 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
24a80 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 39 0d 0a 2d  b1..----..-49..-
24a90 36 38 0d 0a 32 36 0d 0a 0d 0a 71 75 65 72 79 20  68..26....query 
24aa0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
24ab0 54 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 2a 20 63  T ALL + col2 * c
24ac0 6f 6c 32 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 2d  ol2 + col0 * - -
24ad0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
24ae0 0a 2d 2d 2d 2d 0d 0a 32 38 37 35 0d 0a 36 35 32  .----..2875..652
24af0 38 0d 0a 38 33 38 39 0d 0a 0d 0a 71 75 65 72 79  8..8389....query
24b00 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
24b10 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20  CT DISTINCT + + 
24b20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 30 20 2b 20  col2 * - col0 + 
24b30 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46  + col1 AS col0 F
24b40 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
24b50 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 38 38 32 0d 0a 2d  ..----..-4882..-
24b60 35 30 31 30 0d 0a 2d 36 31 34 31 0d 0a 0d 0a 71  5010..-6141....q
24b70 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
24b80 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2b 20  SELECT - col2 + 
24b90 63 6f 6c 30 20 2b 20 2b 20 2d 20 63 6f 6c 30 20  col0 + + - col0 
24ba0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
24bb0 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  0 cor0..----..-1
24bc0 30 0d 0a 2d 34 37 0d 0a 2d 39 39 0d 0a 0d 0a 71  0..-47..-99....q
24bd0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
24be0 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20  SELECT ALL col1 
24bf0 2a 20 2b 20 2d 20 28 20 2b 20 2b 20 28 20 2b 20  * + - ( + + ( + 
24c00 2d 20 63 6f 6c 32 20 29 20 29 20 41 53 20 63 6f  - col2 ) ) AS co
24c10 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
24c20 2d 2d 0d 0a 31 31 37 33 0d 0a 33 30 38 30 0d 0a  --..1173..3080..
24c30 33 38 38 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20  3886....query I 
24c40 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
24c50 41 4c 4c 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 2b  ALL + col1 + + +
24c60 20 39 36 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d   96 FROM tab1..-
24c70 2d 2d 2d 0d 0a 31 30 31 0d 0a 31 31 30 0d 0a 31  ---..101..110..1
24c80 34 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  43....onlyif mys
24c90 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
24ca0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
24cb0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
24cc0 31 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  19..SELECT DISTI
24cd0 4e 43 54 20 2d 20 43 4f 55 4e 54 28 20 2b 20 2b  NCT - COUNT( + +
24ce0 20 63 6f 6c 30 20 29 20 2b 20 2d 20 35 39 20 41   col0 ) + - 59 A
24cf0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
24d00 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 32 0d 0a 0d 0a 73  ..----..-62....s
24d10 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
24d20 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
24d30 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
24d40 62 65 6c 2d 38 31 39 0d 0a 53 45 4c 45 43 54 20  bel-819..SELECT 
24d50 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54  DISTINCT - COUNT
24d60 20 28 20 2b 20 2b 20 63 6f 6c 30 20 29 20 2b 20   ( + + col0 ) + 
24d70 2d 20 35 39 20 41 53 20 63 6f 6c 30 20 46 52 4f  - 59 AS col0 FRO
24d80 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36  M tab0..----..-6
24d90 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  2....query II ro
24da0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
24db0 53 54 49 4e 43 54 20 31 30 20 2b 20 2d 20 63 6f  STINCT 10 + - co
24dc0 6c 31 20 2b 20 39 30 2c 20 2d 20 63 6f 6c 32 20  l1 + 90, - col2 
24dd0 2a 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  * + + col2 AS co
24de0 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
24df0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 33 0d 0a  cor0..----..53..
24e00 2d 34 36 32 34 0d 0a 38 36 0d 0a 2d 39 32 31 36  -4624..86..-9216
24e10 0d 0a 39 35 0d 0a 2d 33 34 38 31 0d 0a 0d 0a 71  ..95..-3481....q
24e20 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
24e30 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
24e40 2d 20 63 6f 6c 32 20 2a 20 2d 20 31 34 20 2a 20  - col2 * - 14 * 
24e50 37 37 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  77 AS col1 FROM 
24e60 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
24e70 2d 2d 0d 0a 32 34 37 39 34 0d 0a 34 33 31 32 30  --..24794..43120
24e80 0d 0a 36 32 35 32 34 0d 0a 0d 0a 71 75 65 72 79  ..62524....query
24e90 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
24ea0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
24eb0 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
24ec0 2d 20 2d 20 28 20 2b 20 63 6f 6c 30 20 29 20 3e  - - ( + col0 ) >
24ed0 3d 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d  = ( NULL )..----
24ee0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
24ef0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
24f00 49 4e 43 54 20 2d 20 34 30 20 2a 20 2d 20 63 6f  INCT - 40 * - co
24f10 6c 31 20 2a 20 2b 20 37 32 20 41 53 20 63 6f 6c  l1 * + 72 AS col
24f20 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
24f30 2d 0d 0a 32 33 33 32 38 30 0d 0a 32 38 38 30 0d  -..233280..2880.
24f40 0a 36 30 34 38 30 0d 0a 0d 0a 71 75 65 72 79 20  .60480....query 
24f50 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
24f60 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 2a 20 38  T ALL - col2 * 8
24f70 20 2b 20 34 38 20 41 53 20 63 6f 6c 31 20 46 52   + 48 AS col1 FR
24f80 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
24f90 31 33 36 0d 0a 2d 32 37 32 0d 0a 2d 34 31 36 0d  136..-272..-416.
24fa0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
24fb0 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 31 37 20  rt..SELECT + 17 
24fc0 2d 20 2d 20 2b 20 31 31 20 2b 20 2d 20 63 6f 6c  - - + 11 + - col
24fd0 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  0 AS col1 FROM t
24fe0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a  ab1..----..-23..
24ff0 2d 35 37 0d 0a 2d 36 33 0d 0a 0d 0a 71 75 65 72  -57..-63....quer
25000 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
25010 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
25020 30 20 57 48 45 52 45 20 28 20 63 6f 6c 32 20 49  0 WHERE ( col2 I
25030 53 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a  S NULL )..----..
25040 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
25050 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
25060 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
25070 73 6f 72 74 20 6c 61 62 65 6c 2d 38 32 37 0d 0a  sort label-827..
25080 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
25090 2d 20 34 31 20 2b 20 2b 20 4d 41 58 28 20 2d 20  - 41 + + MAX( - 
250a0 37 39 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a  79 ) FROM tab1..
250b0 2d 2d 2d 2d 0d 0a 2d 31 32 30 0d 0a 0d 0a 73 6b  ----..-120....sk
250c0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
250d0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
250e0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
250f0 65 6c 2d 38 32 37 0d 0a 53 45 4c 45 43 54 20 44  el-827..SELECT D
25100 49 53 54 49 4e 43 54 20 2d 20 34 31 20 2b 20 2b  ISTINCT - 41 + +
25110 20 4d 41 58 20 28 20 2d 20 37 39 20 29 20 46 52   MAX ( - 79 ) FR
25120 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
25130 31 32 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  120....query II 
25140 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
25150 2d 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 32 2c  - col2 + - col2,
25160 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20   - col1 AS col0 
25170 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
25180 0a 2d 31 31 36 0d 0a 2d 36 37 0d 0a 2d 34 36 0d  .-116..-67..-46.
25190 0a 2d 35 31 0d 0a 2d 38 30 0d 0a 2d 37 37 0d 0a  .-51..-80..-77..
251a0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
251b0 74 0d 0a 53 45 4c 45 43 54 20 2d 20 31 37 20 46  t..SELECT - 17 F
251c0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
251d0 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32   CROSS JOIN tab2
251e0 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
251f0 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
25200 20 74 6f 20 34 39 30 64 30 30 38 66 33 66 62 35   to 490d008f3fb5
25210 62 37 30 64 33 39 37 31 63 66 63 36 64 38 34 35  b70d3971cfc6d845
25220 30 33 66 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20  03f4....query I 
25230 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
25240 37 36 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72  76 FROM tab2 cor
25250 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55  0 WHERE NOT ( NU
25260 4c 4c 20 3e 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d  LL > NULL )..---
25270 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  -....query II ro
25280 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
25290 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20 41 53  STINCT - col0 AS
252a0 20 63 6f 6c 31 2c 20 37 32 20 46 52 4f 4d 20 74   col1, 72 FROM t
252b0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
252c0 2d 0d 0a 2d 31 35 0d 0a 37 32 0d 0a 2d 38 37 0d  -..-15..72..-87.
252d0 0a 37 32 0d 0a 2d 39 37 0d 0a 37 32 0d 0a 0d 0a  .72..-97..72....
252e0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
252f0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
25300 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
25310 72 74 20 6c 61 62 65 6c 2d 38 33 32 0d 0a 53 45  rt label-832..SE
25320 4c 45 43 54 20 2d 20 2d 20 4d 49 4e 28 20 2d 20  LECT - - MIN( - 
25330 2b 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61  + col2 ) FROM ta
25340 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
25350 0d 0a 2d 39 36 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-96....skipif 
25360 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
25370 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
25380 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33  rowsort label-83
25390 32 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 4d 49  2..SELECT - - MI
253a0 4e 20 28 20 2d 20 2b 20 63 6f 6c 32 20 29 20 46  N ( - + col2 ) F
253b0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
253c0 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 36 0d 0a 0d 0a 6f  ..----..-96....o
253d0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
253e0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
253f0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
25400 72 74 20 6c 61 62 65 6c 2d 38 33 33 0d 0a 53 45  rt label-833..SE
25410 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20  LECT - COUNT( * 
25420 29 20 41 53 20 63 6f 6c 32 2c 20 2b 20 4d 49 4e  ) AS col2, + MIN
25430 28 20 41 4c 4c 20 2d 20 31 30 20 29 20 41 53 20  ( ALL - 10 ) AS 
25440 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 63  col0 FROM tab1 c
25450 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 2d  or0..----..-3..-
25460 31 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  10....skipif mys
25470 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
25480 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
25490 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33 33 0d  wsort label-833.
254a0 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 20  .SELECT - COUNT 
254b0 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 2c 20 2b  ( * ) AS col2, +
254c0 20 4d 49 4e 20 28 20 41 4c 4c 20 2d 20 31 30 20   MIN ( ALL - 10 
254d0 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
254e0 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab1 cor0..----..
254f0 2d 33 0d 0a 2d 31 30 0d 0a 0d 0a 6f 6e 6c 79 69  -3..-10....onlyi
25500 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
25510 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
25520 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
25530 62 65 6c 2d 38 33 34 0d 0a 53 45 4c 45 43 54 20  bel-834..SELECT 
25540 43 4f 55 4e 54 28 20 41 4c 4c 20 2d 20 2b 20 63  COUNT( ALL - + c
25550 6f 6c 30 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20  ol0 ) col1 FROM 
25560 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
25570 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .3....skipif mys
25580 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
25590 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  ble..skipif post
255a0 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
255b0 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
255c0 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
255d0 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
255e0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
255f0 62 65 6c 2d 38 33 34 0d 0a 53 45 4c 45 43 54 20  bel-834..SELECT 
25600 43 4f 55 4e 54 20 28 20 41 4c 4c 20 2d 20 2b 20  COUNT ( ALL - + 
25610 63 6f 6c 30 20 29 20 63 6f 6c 31 20 46 52 4f 4d  col0 ) col1 FROM
25620 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab0 cor0..----
25630 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  ..3....skipif po
25640 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
25650 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
25660 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
25670 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
25680 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
25690 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2a  .SELECT + col1 *
256a0 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 32 37 20 63   - col2 + + 27 c
256b0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  ol0 FROM tab1 co
256c0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 31 37 0d  r0..----..-1317.
256d0 0a 2d 32 36 38 0d 0a 2d 33 31 36 39 0d 0a 0d 0a  .-268..-3169....
256e0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
256f0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
25700 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
25710 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
25720 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
25730 65 6c 2d 38 33 36 0d 0a 53 45 4c 45 43 54 20 44  el-836..SELECT D
25740 49 53 54 49 4e 43 54 20 34 33 20 2b 20 35 34 20  ISTINCT 43 + 54 
25750 44 49 56 20 2d 20 53 55 4d 28 20 41 4c 4c 20 2b  DIV - SUM( ALL +
25760 20 2d 20 63 6f 6c 30 20 29 20 2a 20 2b 20 43 4f   - col0 ) * + CO
25770 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 32  UNT( * ) AS col2
25780 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
25790 0d 0a 34 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..43....skipif m
257a0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
257b0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
257c0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33 36  owsort label-836
257d0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
257e0 54 20 34 33 20 2b 20 35 34 20 2f 20 2d 20 53 55  T 43 + 54 / - SU
257f0 4d 20 28 20 41 4c 4c 20 2b 20 2d 20 63 6f 6c 30  M ( ALL + - col0
25800 20 29 20 2a 20 2b 20 43 4f 55 4e 54 20 28 20 2a   ) * + COUNT ( *
25810 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
25820 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 33 0d 0a  tab2..----..43..
25830 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
25840 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
25850 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
25860 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33 37 0d 0a  sort label-837..
25870 53 45 4c 45 43 54 20 2b 20 32 31 20 2b 20 2b 20  SELECT + 21 + + 
25880 2b 20 28 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  + ( + COUNT( * )
25890 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d   ) FROM tab2..--
258a0 2d 2d 0d 0a 32 34 0d 0a 0d 0a 73 6b 69 70 69 66  --..24....skipif
258b0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
258c0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
258d0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
258e0 33 37 0d 0a 53 45 4c 45 43 54 20 2b 20 32 31 20  37..SELECT + 21 
258f0 2b 20 2b 20 2b 20 28 20 2b 20 43 4f 55 4e 54 20  + + + ( + COUNT 
25900 28 20 2a 20 29 20 29 20 46 52 4f 4d 20 74 61 62  ( * ) ) FROM tab
25910 32 0d 0a 2d 2d 2d 2d 0d 0a 32 34 0d 0a 0d 0a 6f  2..----..24....o
25920 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
25930 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
25940 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
25950 74 20 6c 61 62 65 6c 2d 38 33 38 0d 0a 53 45 4c  t label-838..SEL
25960 45 43 54 20 2d 20 36 30 20 2a 20 37 38 20 2b 20  ECT - 60 * 78 + 
25970 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f  COUNT( * ) AS co
25980 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l2 FROM tab0..--
25990 2d 2d 0d 0a 2d 34 36 37 37 0d 0a 0d 0a 73 6b 69  --..-4677....ski
259a0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
259b0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
259c0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
259d0 6c 2d 38 33 38 0d 0a 53 45 4c 45 43 54 20 2d 20  l-838..SELECT - 
259e0 36 30 20 2a 20 37 38 20 2b 20 43 4f 55 4e 54 20  60 * 78 + COUNT 
259f0 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ( * ) AS col2 FR
25a00 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
25a10 34 36 37 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49  4677....query II
25a20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
25a30 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
25a40 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
25a50 36 36 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  66 IS NOT NULL..
25a60 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
25a70 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37  ashing to c4b427
25a80 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30  65dff94eaaa46040
25a90 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75  e537fb43b7....qu
25aa0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
25ab0 45 4c 45 43 54 20 2b 20 28 20 28 20 63 6f 6c 30  ELECT + ( ( col0
25ac0 20 29 20 29 20 2b 20 2d 20 63 6f 6c 32 20 46 52   ) ) + - col2 FR
25ad0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
25ae0 0a 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 2d 33 32 0d 0a  .----..-2..-32..
25af0 37 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  77....query I ro
25b00 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
25b10 4c 20 2d 20 28 20 2d 20 63 6f 6c 30 20 29 20 2b  L - ( - col0 ) +
25b20 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
25b30 0a 2d 2d 2d 2d 0d 0a 31 34 34 0d 0a 31 34 37 0d  .----..144..147.
25b40 0a 31 35 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .159....query II
25b50 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
25b60 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48  T * FROM tab1 WH
25b70 45 52 45 20 28 20 4e 4f 54 20 33 20 2a 20 2b 20  ERE ( NOT 3 * + 
25b80 2d 20 33 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  - 32 IS NOT NULL
25b90 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72   )..----....quer
25ba0 79 20 49 49 49 49 49 49 20 72 6f 77 73 6f 72 74  y IIIIII rowsort
25bb0 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
25bc0 28 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 43  ( tab0 AS cor0 C
25bd0 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 41  ROSS JOIN tab0 A
25be0 53 20 63 6f 72 31 20 29 20 57 48 45 52 45 20 4e  S cor1 ) WHERE N
25bf0 4f 54 20 28 20 4e 55 4c 4c 20 29 20 49 53 20 4e  OT ( NULL ) IS N
25c00 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 35  OT NULL..----..5
25c10 34 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  4 values hashing
25c20 20 74 6f 20 34 32 64 61 61 30 33 65 34 38 61 61   to 42daa03e48aa
25c30 36 37 35 35 64 65 66 64 30 61 33 32 30 36 65 35  6755defd0a3206e5
25c40 31 64 38 65 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  1d8e....onlyif m
25c50 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
25c60 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
25c70 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
25c80 72 74 20 6c 61 62 65 6c 2d 38 34 34 0d 0a 53 45  rt label-844..SE
25c90 4c 45 43 54 20 41 4c 4c 20 2d 20 43 41 53 54 28  LECT ALL - CAST(
25ca0 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
25cb0 29 20 2d 20 39 32 20 46 52 4f 4d 20 74 61 62 32  ) - 92 FROM tab2
25cc0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
25cd0 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
25ce0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
25cf0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
25d00 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
25d10 72 74 20 6c 61 62 65 6c 2d 38 34 34 0d 0a 53 45  rt label-844..SE
25d20 4c 45 43 54 20 41 4c 4c 20 2d 20 43 41 53 54 20  LECT ALL - CAST 
25d30 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
25d40 52 20 29 20 2d 20 39 32 20 46 52 4f 4d 20 74 61  R ) - 92 FROM ta
25d50 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
25d60 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
25d70 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  LL....query III 
25d80 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
25d90 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
25da0 74 61 62 32 20 63 6f 72 30 20 57 48 45 52 45 20  tab2 cor0 WHERE 
25db0 4e 55 4c 4c 20 49 4e 20 28 20 2d 20 31 34 20 29  NULL IN ( - 14 )
25dc0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
25dd0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
25de0 54 20 2b 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 28  T + + col2 + - (
25df0 20 63 6f 6c 32 20 29 20 2b 20 2b 20 63 6f 6c 30   col2 ) + + col0
25e00 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
25e10 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 38 37  r0..----..15..87
25e20 0d 0a 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..97....onlyif m
25e30 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
25e40 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
25e50 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
25e60 6f 72 74 20 6c 61 62 65 6c 2d 38 34 37 0d 0a 53  ort label-847..S
25e70 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2b 20 43  ELECT + col2 + C
25e80 41 53 54 28 20 2b 20 63 6f 6c 30 20 41 53 20 53  AST( + col0 AS S
25e90 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 32 2c  IGNED ) AS col2,
25ea0 20 2d 20 34 31 20 2d 20 63 6f 6c 31 20 41 53 20   - 41 - col1 AS 
25eb0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
25ec0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34  S cor0..----..14
25ed0 34 0d 0a 2d 34 36 0d 0a 31 34 37 0d 0a 2d 35 35  4..-46..147..-55
25ee0 0d 0a 31 35 39 0d 0a 2d 38 38 0d 0a 0d 0a 73 6b  ..159..-88....sk
25ef0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
25f00 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
25f10 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
25f20 62 65 6c 2d 38 34 37 0d 0a 53 45 4c 45 43 54 20  bel-847..SELECT 
25f30 2b 20 63 6f 6c 32 20 2b 20 43 41 53 54 20 28 20  + col2 + CAST ( 
25f40 2b 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45  + col0 AS INTEGE
25f50 52 20 29 20 41 53 20 63 6f 6c 32 2c 20 2d 20 34  R ) AS col2, - 4
25f60 31 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31  1 - col1 AS col1
25f70 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
25f80 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 34 0d 0a 2d  r0..----..144..-
25f90 34 36 0d 0a 31 34 37 0d 0a 2d 35 35 0d 0a 31 35  46..147..-55..15
25fa0 39 0d 0a 2d 38 38 0d 0a 0d 0a 71 75 65 72 79 20  9..-88....query 
25fb0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
25fc0 43 54 20 2b 20 2b 20 63 6f 6c 30 20 2b 20 2b 20  CT + + col0 + + 
25fd0 2d 20 37 34 2c 20 2d 20 28 20 2b 20 2d 20 63 6f  - 74, - ( + - co
25fe0 6c 31 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  l1 ) AS col1 FRO
25ff0 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
26000 2d 0d 0a 2d 35 39 0d 0a 38 31 0d 0a 31 33 0d 0a  -..-59..81..13..
26010 32 31 0d 0a 32 33 0d 0a 31 0d 0a 0d 0a 71 75 65  21..23..1....que
26020 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
26030 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 63 6f 6c  LECT ALL - - col
26040 32 20 2d 20 2b 20 36 30 20 41 53 20 63 6f 6c 31  2 - + 60 AS col1
26050 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
26060 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 33 36  r0..----..-1..36
26070 0d 0a 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..8....onlyif my
26080 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
26090 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
260a0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
260b0 38 35 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  850..SELECT DIST
260c0 49 4e 43 54 20 2d 20 28 20 2b 20 36 31 20 29 20  INCT - ( + 61 ) 
260d0 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2b  + COUNT( * ) + +
260e0 20 32 34 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   24 AS col2 FROM
260f0 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
26100 0d 0a 2d 33 34 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-34....skipif 
26110 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
26120 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
26130 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 35  rowsort label-85
26140 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  0..SELECT DISTIN
26150 43 54 20 2d 20 28 20 2b 20 36 31 20 29 20 2b 20  CT - ( + 61 ) + 
26160 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2b 20  COUNT ( * ) + + 
26170 32 34 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  24 AS col2 FROM 
26180 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
26190 0a 2d 33 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  .-34....skipif p
261a0 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
261b0 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
261c0 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
261d0 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
261e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
261f0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
26200 54 20 2b 20 36 36 20 63 6f 6c 32 20 46 52 4f 4d  T + 66 col2 FROM
26210 20 74 61 62 32 20 63 6f 72 30 20 57 48 45 52 45   tab2 cor0 WHERE
26220 20 4e 4f 54 20 2b 20 28 20 63 6f 6c 30 20 29 20   NOT + ( col0 ) 
26230 4e 4f 54 20 42 45 54 57 45 45 4e 20 2d 20 2b 20  NOT BETWEEN - + 
26240 63 6f 6c 31 20 2d 20 2b 20 63 6f 6c 32 20 41 4e  col1 - + col2 AN
26250 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  D NULL..----....
26260 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
26270 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
26280 54 20 28 20 2b 20 34 37 20 29 20 2a 20 63 6f 6c  T ( + 47 ) * col
26290 30 20 41 53 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c  0 AS col1, + col
262a0 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  2 AS col1 FROM t
262b0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 31 36 32 0d  ab2..----..2162.
262c0 0a 32 33 0d 0a 33 30 30 38 0d 0a 34 30 0d 0a 33  .23..3008..40..3
262d0 35 32 35 0d 0a 35 38 0d 0a 0d 0a 71 75 65 72 79  525..58....query
262e0 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
262f0 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  ECT DISTINCT col
26300 31 20 41 53 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c  1 AS col1, + col
26310 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
26320 2d 0d 0a 31 0d 0a 39 39 0d 0a 32 31 0d 0a 31 30  -..1..99..21..10
26330 0d 0a 38 31 0d 0a 34 37 0d 0a 0d 0a 6f 6e 6c 79  ..81..47....only
26340 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
26350 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56  gate syntax: DIV
26360 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
26370 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
26380 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
26390 35 34 0d 0a 53 45 4c 45 43 54 20 33 31 20 44 49  54..SELECT 31 DI
263a0 56 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  V + COUNT( * ) F
263b0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
263c0 31 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  10....skipif mys
263d0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
263e0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
263f0 73 6f 72 74 20 6c 61 62 65 6c 2d 38 35 34 0d 0a  sort label-854..
26400 53 45 4c 45 43 54 20 33 31 20 2f 20 2b 20 43 4f  SELECT 31 / + CO
26410 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
26420 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 0d  ab0..----..10...
26430 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
26440 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
26450 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
26460 6f 72 74 20 6c 61 62 65 6c 2d 38 35 35 0d 0a 53  ort label-855..S
26470 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 43 4f  ELECT ALL + + CO
26480 55 4e 54 28 20 36 32 20 29 20 2d 20 2b 20 43 4f  UNT( 62 ) - + CO
26490 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 32  UNT( * ) AS col2
264a0 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
264b0 20 4e 4f 54 20 2b 20 2d 20 63 6f 6c 31 20 42 45   NOT + - col1 BE
264c0 54 57 45 45 4e 20 2d 20 2b 20 63 6f 6c 32 20 41  TWEEN - + col2 A
264d0 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30  ND NULL..----..0
264e0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
264f0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
26500 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
26510 72 74 20 6c 61 62 65 6c 2d 38 35 35 0d 0a 53 45  rt label-855..SE
26520 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 43 4f 55  LECT ALL + + COU
26530 4e 54 20 28 20 36 32 20 29 20 2d 20 2b 20 43 4f  NT ( 62 ) - + CO
26540 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c  UNT ( * ) AS col
26550 32 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  2 FROM tab2 WHER
26560 45 20 4e 4f 54 20 2b 20 2d 20 63 6f 6c 31 20 42  E NOT + - col1 B
26570 45 54 57 45 45 4e 20 2d 20 2b 20 63 6f 6c 32 20  ETWEEN - + col2 
26580 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  AND NULL..----..
26590 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  0....query III r
265a0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
265b0 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
265c0 20 4e 4f 54 20 2d 20 2d 20 28 20 63 6f 6c 32 20   NOT - - ( col2 
265d0 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  ) IS NULL..----.
265e0 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
265f0 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61  g to 75c998aa53a
26600 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32  c83218cbf2feb962
26610 64 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49  d0a49....query I
26620 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
26630 20 2b 20 32 39 20 2a 20 2d 20 63 6f 6c 32 20 41   + 29 * - col2 A
26640 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
26650 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 36 30 0d 0a 2d  ..----..-1160..-
26660 31 36 38 32 0d 0a 2d 36 36 37 0d 0a 0d 0a 6f 6e  1682..-667....on
26670 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
26680 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
26690 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
266a0 20 6c 61 62 65 6c 2d 38 35 38 0d 0a 53 45 4c 45   label-858..SELE
266b0 43 54 20 41 4c 4c 20 4d 49 4e 28 20 2b 20 2d 20  CT ALL MIN( + - 
266c0 39 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  9 ) FROM tab2..-
266d0 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 73 6b 69 70 69  ---..-9....skipi
266e0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
266f0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
26700 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
26710 38 35 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  858..SELECT ALL 
26720 4d 49 4e 20 28 20 2b 20 2d 20 39 20 29 20 46 52  MIN ( + - 9 ) FR
26730 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
26740 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  9....onlyif mysq
26750 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
26760 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
26770 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 35  rowsort label-85
26780 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  9..SELECT ALL - 
26790 33 20 2a 20 2b 20 36 37 20 2b 20 2b 20 2b 20 34  3 * + 67 + + + 4
267a0 31 20 2b 20 53 55 4d 28 20 2b 20 2d 20 37 33 20  1 + SUM( + - 73 
267b0 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
267c0 61 62 30 20 41 53 20 63 6f 72 30 20 43 52 4f 53  ab0 AS cor0 CROS
267d0 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63  S JOIN tab0 AS c
267e0 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 31 37 0d  or1..----..-817.
267f0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
26800 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
26810 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
26820 74 20 6c 61 62 65 6c 2d 38 35 39 0d 0a 53 45 4c  t label-859..SEL
26830 45 43 54 20 41 4c 4c 20 2d 20 33 20 2a 20 2b 20  ECT ALL - 3 * + 
26840 36 37 20 2b 20 2b 20 2b 20 34 31 20 2b 20 53 55  67 + + + 41 + SU
26850 4d 20 28 20 2b 20 2d 20 37 33 20 29 20 41 53 20  M ( + - 73 ) AS 
26860 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
26870 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  S cor0 CROSS JOI
26880 4e 20 74 61 62 30 20 41 53 20 63 6f 72 31 0d 0a  N tab0 AS cor1..
26890 2d 2d 2d 2d 0d 0a 2d 38 31 37 0d 0a 0d 0a 71 75  ----..-817....qu
268a0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
268b0 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
268c0 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  ab0 WHERE NOT + 
268d0 2d 20 63 6f 6c 32 20 3e 20 2d 20 2b 20 32 35 0d  - col2 > - + 25.
268e0 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 38 31 0d 0a 34  .----..15..81..4
268f0 37 0d 0a 39 37 0d 0a 31 0d 0a 39 39 0d 0a 0d 0a  7..97..1..99....
26900 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
26910 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
26920 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
26930 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
26940 2d 38 36 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -861..SELECT ALL
26950 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   + CAST( NULL AS
26960 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74   SIGNED ) FROM t
26970 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
26980 45 20 4e 4f 54 20 2d 20 63 6f 6c 31 20 49 53 20  E NOT - col1 IS 
26990 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  NULL..----..NULL
269a0 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
269b0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
269c0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
269d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
269e0 61 62 65 6c 2d 38 36 31 0d 0a 53 45 4c 45 43 54  abel-861..SELECT
269f0 20 41 4c 4c 20 2b 20 43 41 53 54 20 28 20 4e 55   ALL + CAST ( NU
26a00 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
26a10 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
26a20 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f  0 WHERE NOT - co
26a30 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l1 IS NULL..----
26a40 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
26a50 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  LL....query I ro
26a60 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
26a70 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20 46 52  STINCT - col0 FR
26a80 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
26a90 57 48 45 52 45 20 4e 4f 54 20 28 20 2b 20 33 34  WHERE NOT ( + 34
26aa0 20 2a 20 2b 20 34 31 20 29 20 49 53 20 4e 4f 54   * + 41 ) IS NOT
26ab0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
26ac0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
26ad0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
26ae0 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 2b  ROM tab0 WHERE +
26af0 20 35 34 20 2d 20 2d 20 34 33 20 3c 3d 20 2d 20   54 - - 43 <= - 
26b00 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  col1..----....qu
26b10 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
26b20 53 45 4c 45 43 54 20 63 6f 6c 31 20 41 53 20 63  SELECT col1 AS c
26b30 6f 6c 32 2c 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ol2, col2 FROM t
26b40 61 62 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 49  ab1 WHERE NULL I
26b50 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
26b60 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
26b70 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
26b80 20 63 6f 6c 30 2c 20 63 6f 6c 32 20 2b 20 2b 20   col0, col2 + + 
26b90 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  + col2 FROM tab0
26ba0 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 39 34 0d 0a  ..----..15..94..
26bb0 38 37 0d 0a 32 30 0d 0a 39 37 0d 0a 31 39 38 0d  87..20..97..198.
26bc0 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
26bd0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
26be0 49 4e 43 54 20 2b 20 2d 20 63 6f 6c 32 20 41 53  INCT + - col2 AS
26bf0 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c 31 20 41 53   col1, + col1 AS
26c00 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
26c10 57 48 45 52 45 20 28 20 4e 4f 54 20 2d 20 39 33  WHERE ( NOT - 93
26c20 20 3d 20 2b 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d   = + col2 )..---
26c30 2d 0d 0a 2d 35 39 0d 0a 35 0d 0a 2d 36 38 0d 0a  -..-59..5..-68..
26c40 34 37 0d 0a 2d 39 36 0d 0a 31 34 0d 0a 0d 0a 71  47..-96..14....q
26c50 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
26c60 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20  SELECT ALL col1 
26c70 2b 20 28 20 2d 20 37 30 20 29 20 41 53 20 63 6f  + ( - 70 ) AS co
26c80 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
26c90 2d 2d 0d 0a 2d 34 39 0d 0a 2d 36 39 0d 0a 31 31  --..-49..-69..11
26ca0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
26cb0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  ort..SELECT + co
26cc0 6c 30 20 2b 20 2b 20 2b 20 39 32 20 46 52 4f 4d  l0 + + + 92 FROM
26cd0 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
26ce0 0d 0a 31 33 38 0d 0a 31 35 36 0d 0a 31 36 37 0d  ..138..156..167.
26cf0 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
26d00 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
26d10 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
26d20 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
26d30 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
26d40 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
26d50 45 43 54 20 2d 20 37 32 20 2a 20 2d 20 63 6f 6c  ECT - 72 * - col
26d60 30 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  0 col0 FROM tab2
26d70 0d 0a 2d 2d 2d 2d 0d 0a 33 33 31 32 0d 0a 34 36  ..----..3312..46
26d80 30 38 0d 0a 35 34 30 30 0d 0a 0d 0a 6f 6e 6c 79  08..5400....only
26d90 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
26da0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
26db0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
26dc0 61 62 65 6c 2d 38 37 30 0d 0a 53 45 4c 45 43 54  abel-870..SELECT
26dd0 20 4d 49 4e 28 20 2b 20 2b 20 63 6f 6c 32 20 29   MIN( + + col2 )
26de0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
26df0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 0d 0a  b0..----..10....
26e00 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
26e10 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
26e20 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
26e30 61 62 65 6c 2d 38 37 30 0d 0a 53 45 4c 45 43 54  abel-870..SELECT
26e40 20 4d 49 4e 20 28 20 2b 20 2b 20 63 6f 6c 32 20   MIN ( + + col2 
26e50 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
26e60 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 0d  ab0..----..10...
26e70 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
26e80 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
26e90 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
26ea0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
26eb0 62 65 6c 2d 38 37 31 0d 0a 53 45 4c 45 43 54 20  bel-871..SELECT 
26ec0 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  * FROM tab0 AS c
26ed0 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 32 20 3e  or0 WHERE col2 >
26ee0 20 2b 20 2b 20 63 6f 6c 30 20 44 49 56 20 63 6f   + + col0 DIV co
26ef0 6c 30 20 44 49 56 20 2b 20 2b 20 36 32 20 2a 20  l0 DIV + + 62 * 
26f00 2b 20 2b 20 63 6f 6c 31 20 2a 20 63 6f 6c 31 0d  + + col1 * col1.
26f10 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
26f20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32  hashing to c4b42
26f30 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34  765dff94eaaa4604
26f40 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 73  0e537fb43b7....s
26f50 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
26f60 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
26f70 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
26f80 6c 61 62 65 6c 2d 38 37 31 0d 0a 53 45 4c 45 43  label-871..SELEC
26f90 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53  T * FROM tab0 AS
26fa0 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 32   cor0 WHERE col2
26fb0 20 3e 20 2b 20 2b 20 63 6f 6c 30 20 2f 20 63 6f   > + + col0 / co
26fc0 6c 30 20 2f 20 2b 20 2b 20 36 32 20 2a 20 2b 20  l0 / + + 62 * + 
26fd0 2b 20 63 6f 6c 31 20 2a 20 63 6f 6c 31 0d 0a 2d  + col1 * col1..-
26fe0 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
26ff0 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36  shing to c4b4276
27000 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65  5dff94eaaa46040e
27010 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 6f 6e 6c  537fb43b7....onl
27020 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
27030 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
27040 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
27050 6c 61 62 65 6c 2d 38 37 32 0d 0a 53 45 4c 45 43  label-872..SELEC
27060 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 4d  T DISTINCT - - M
27070 41 58 28 20 2b 20 63 6f 6c 30 20 29 20 2b 20 43  AX( + col0 ) + C
27080 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c  OUNT( * ) AS col
27090 32 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  2 FROM tab1 cor0
270a0 0d 0a 2d 2d 2d 2d 0d 0a 39 34 0d 0a 0d 0a 73 6b  ..----..94....sk
270b0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
270c0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
270d0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
270e0 65 6c 2d 38 37 32 0d 0a 53 45 4c 45 43 54 20 44  el-872..SELECT D
270f0 49 53 54 49 4e 43 54 20 2d 20 2d 20 4d 41 58 20  ISTINCT - - MAX 
27100 28 20 2b 20 63 6f 6c 30 20 29 20 2b 20 43 4f 55  ( + col0 ) + COU
27110 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32  NT ( * ) AS col2
27120 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d   FROM tab1 cor0.
27130 0a 2d 2d 2d 2d 0d 0a 39 34 0d 0a 0d 0a 71 75 65  .----..94....que
27140 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
27150 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
27160 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  * FROM tab0 AS c
27170 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e  or0 WHERE NULL N
27180 4f 54 20 42 45 54 57 45 45 4e 20 39 20 2a 20 31  OT BETWEEN 9 * 1
27190 34 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  4 AND NULL..----
271a0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
271b0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
271c0 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
271d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
271e0 61 62 65 6c 2d 38 37 34 0d 0a 53 45 4c 45 43 54  abel-874..SELECT
271f0 20 41 4c 4c 20 63 6f 6c 32 20 2d 20 2d 20 2d 20   ALL col2 - - - 
27200 63 6f 6c 30 20 2b 20 2d 20 2d 20 63 6f 6c 31 20  col0 + - - col1 
27210 2a 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  * - CAST( NULL A
27220 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2d 20 2b  S SIGNED ) + - +
27230 20 36 37 20 2a 20 63 6f 6c 32 20 2d 20 63 6f 6c   67 * col2 - col
27240 32 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  2 col2 FROM tab2
27250 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d   AS cor0 WHERE -
27260 20 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d   0 IS NULL..----
27270 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
27280 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
27290 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
272a0 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
272b0 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
272c0 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
272d0 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
272e0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
272f0 6c 2d 38 37 34 0d 0a 53 45 4c 45 43 54 20 41 4c  l-874..SELECT AL
27300 4c 20 63 6f 6c 32 20 2d 20 2d 20 2d 20 63 6f 6c  L col2 - - - col
27310 30 20 2b 20 2d 20 2d 20 63 6f 6c 31 20 2a 20 2d  0 + - - col1 * -
27320 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
27330 49 4e 54 45 47 45 52 20 29 20 2b 20 2d 20 2b 20  INTEGER ) + - + 
27340 36 37 20 2a 20 63 6f 6c 32 20 2d 20 63 6f 6c 32  67 * col2 - col2
27350 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
27360 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20  AS cor0 WHERE - 
27370 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  0 IS NULL..----.
27380 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
27390 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 34 33 20  rt..SELECT - 43 
273a0 2d 20 2b 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20  - + + col0 FROM 
273b0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
273c0 2d 2d 0d 0a 2d 31 32 38 0d 0a 2d 31 33 34 0d 0a  --..-128..-134..
273d0 2d 39 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  -94....query II 
273e0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
273f0 41 4c 4c 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31  ALL col1 AS col1
27400 2c 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  , col0 FROM tab2
27410 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28   AS cor0 WHERE (
27420 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 37 20 3c 3d   + col2 * + 7 <=
27430 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   NULL )..----...
27440 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
27450 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
27460 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
27470 48 45 52 45 20 63 6f 6c 31 20 4e 4f 54 20 42 45  HERE col1 NOT BE
27480 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2d  TWEEN NULL AND -
27490 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 2b 20 63 6f   + col0 * + + co
274a0 6c 32 20 2a 20 2b 20 2d 20 63 6f 6c 32 0d 0a 2d  l2 * + - col2..-
274b0 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ---....query III
274c0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
274d0 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
274e0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 35  cor0 WHERE NOT 5
274f0 38 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  8 IS NULL..----.
27500 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
27510 67 20 74 6f 20 63 34 62 34 32 37 36 35 64 66 66  g to c4b42765dff
27520 39 34 65 61 61 61 34 36 30 34 30 65 35 33 37 66  94eaaa46040e537f
27530 62 34 33 62 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  b43b7....onlyif 
27540 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
27550 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f  e syntax: DIV fo
27560 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
27570 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
27580 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 37 39 0d  wsort label-879.
27590 0a 53 45 4c 45 43 54 20 2b 20 2d 20 32 38 20 2a  .SELECT + - 28 *
275a0 20 43 4f 55 4e 54 28 20 2a 20 29 20 44 49 56 20   COUNT( * ) DIV 
275b0 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  + + COUNT( * ) F
275c0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
275d0 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 38 0d 0a 0d 0a 73  ..----..-28....s
275e0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
275f0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
27600 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
27610 62 65 6c 2d 38 37 39 0d 0a 53 45 4c 45 43 54 20  bel-879..SELECT 
27620 2b 20 2d 20 32 38 20 2a 20 43 4f 55 4e 54 20 28  + - 28 * COUNT (
27630 20 2a 20 29 20 2f 20 2b 20 2b 20 43 4f 55 4e 54   * ) / + + COUNT
27640 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30   ( * ) FROM tab0
27650 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
27660 2d 32 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -28....onlyif my
27670 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
27680 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
27690 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
276a0 38 38 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  880..SELECT ALL 
276b0 2d 20 2b 20 53 55 4d 28 20 2d 20 63 6f 6c 32 20  - + SUM( - col2 
276c0 29 20 2a 20 34 39 20 2b 20 35 34 20 41 53 20 63  ) * 49 + 54 AS c
276d0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
276e0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 39 38   cor0..----..598
276f0 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
27700 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
27710 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
27720 6f 72 74 20 6c 61 62 65 6c 2d 38 38 30 0d 0a 53  ort label-880..S
27730 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 53 55  ELECT ALL - + SU
27740 4d 20 28 20 2d 20 63 6f 6c 32 20 29 20 2a 20 34  M ( - col2 ) * 4
27750 39 20 2b 20 35 34 20 41 53 20 63 6f 6c 32 20 46  9 + 54 AS col2 F
27760 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
27770 0d 0a 2d 2d 2d 2d 0d 0a 35 39 38 33 0d 0a 0d 0a  ..----..5983....
27780 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
27790 0a 53 45 4c 45 43 54 20 2b 20 2b 20 39 38 20 2b  .SELECT + + 98 +
277a0 20 2d 20 2d 20 37 33 20 41 53 20 63 6f 6c 32 20   - - 73 AS col2 
277b0 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57  FROM tab2 cor0 W
277c0 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20  HERE NOT ( NULL 
277d0 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  ) IS NOT NULL..-
277e0 2d 2d 2d 0d 0a 31 37 31 0d 0a 31 37 31 0d 0a 31  ---..171..171..1
277f0 37 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  71....query I ro
27800 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
27810 63 6f 6c 32 20 2a 20 2b 20 2d 20 33 32 20 46 52  col2 * + - 32 FR
27820 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
27830 31 32 38 30 0d 0a 2d 31 38 35 36 0d 0a 2d 37 33  1280..-1856..-73
27840 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
27850 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
27860 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
27870 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 38  rowsort label-88
27880 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  3..SELECT ALL - 
27890 53 55 4d 28 20 2d 20 63 6f 6c 32 20 29 20 46 52  SUM( - col2 ) FR
278a0 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
278b0 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55  T NULL IS NOT NU
278c0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 32 31 0d 0a 0d  LL..----..121...
278d0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
278e0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
278f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
27900 6c 61 62 65 6c 2d 38 38 33 0d 0a 53 45 4c 45 43  label-883..SELEC
27910 54 20 41 4c 4c 20 2d 20 53 55 4d 20 28 20 2d 20  T ALL - SUM ( - 
27920 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 32  col2 ) FROM tab2
27930 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
27940 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
27950 2d 0d 0a 31 32 31 0d 0a 0d 0a 71 75 65 72 79 20  -..121....query 
27960 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
27970 54 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 32 20  T col2 + + col2 
27980 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
27990 4e 4f 54 20 4e 55 4c 4c 20 3c 20 2b 20 63 6f 6c  NOT NULL < + col
279a0 32 20 2b 20 2b 20 34 20 2a 20 39 33 0d 0a 2d 2d  2 + + 4 * 93..--
279b0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
279c0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
279d0 53 54 49 4e 43 54 20 2b 20 28 20 2b 20 63 6f 6c  STINCT + ( + col
279e0 31 20 29 20 2a 20 2d 20 28 20 36 20 29 20 2b 20  1 ) * - ( 6 ) + 
279f0 2b 20 63 6f 6c 31 20 2a 20 2d 20 2b 20 35 32 20  + col1 * - + 52 
27a00 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
27a10 0a 2d 31 32 31 38 0d 0a 2d 34 36 39 38 0d 0a 2d  .-1218..-4698..-
27a20 35 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  58....onlyif mys
27a30 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
27a40 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
27a50 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
27a60 38 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  86..SELECT ALL +
27a70 20 53 55 4d 28 20 2b 20 28 20 2d 20 2b 20 63 6f   SUM( + ( - + co
27a80 6c 31 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30  l1 ) ) FROM tab0
27a90 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
27aa0 2d 31 30 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -103....skipif m
27ab0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
27ac0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
27ad0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 38 36  owsort label-886
27ae0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 53  ..SELECT ALL + S
27af0 55 4d 20 28 20 2b 20 28 20 2d 20 2b 20 63 6f 6c  UM ( + ( - + col
27b00 31 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30 20  1 ) ) FROM tab0 
27b10 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
27b20 31 30 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  103....query I r
27b30 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
27b40 20 2b 20 39 30 20 41 53 20 63 6f 6c 32 20 46 52   + 90 AS col2 FR
27b50 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
27b60 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20  CROSS JOIN tab1 
27b70 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39  AS cor1..----..9
27b80 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
27b90 74 6f 20 39 36 66 37 61 39 30 34 32 38 64 62 39  to 96f7a90428db9
27ba0 33 66 34 37 32 65 30 64 32 31 39 62 61 62 36 34  3f472e0d219bab64
27bb0 38 35 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  853....onlyif my
27bc0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
27bd0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
27be0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
27bf0 38 38 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  888..SELECT ALL 
27c00 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  - COUNT( * ) AS 
27c10 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 63  col1 FROM tab2 c
27c20 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
27c30 61 62 31 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d  ab1 AS cor1..---
27c40 2d 0d 0a 2d 39 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..-9....skipif 
27c50 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
27c60 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
27c70 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 38  rowsort label-88
27c80 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  8..SELECT ALL - 
27c90 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63  COUNT ( * ) AS c
27ca0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol1 FROM tab2 co
27cb0 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
27cc0 62 31 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d  b1 AS cor1..----
27cd0 0d 0a 2d 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..-9....query II
27ce0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
27cf0 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53  T * FROM tab2 AS
27d00 20 63 6f 72 30 20 57 48 45 52 45 20 37 30 20 49   cor0 WHERE 70 I
27d10 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  S NULL..----....
27d20 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
27d30 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
27d40 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
27d50 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
27d60 2d 38 39 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -890..SELECT ALL
27d70 20 2b 20 2b 20 63 6f 6c 30 20 44 49 56 20 2d 20   + + col0 DIV - 
27d80 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  - col0 FROM tab1
27d90 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
27da0 31 0d 0a 31 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69  1..1..1....skipi
27db0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
27dc0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
27dd0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
27de0 38 39 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  890..SELECT ALL 
27df0 2b 20 2b 20 63 6f 6c 30 20 2f 20 2d 20 2d 20 63  + + col0 / - - c
27e00 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
27e10 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a   cor0..----..1..
27e20 31 0d 0a 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  1..1....onlyif m
27e30 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
27e40 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
27e50 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
27e60 2d 38 39 31 0d 0a 53 45 4c 45 43 54 20 2b 20 4d  -891..SELECT + M
27e70 41 58 28 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 29  AX( ALL - col2 )
27e80 20 2b 20 2d 20 2d 20 30 20 2b 20 2b 20 38 32 20   + - - 0 + + 82 
27e90 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
27ea0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
27eb0 0a 32 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .23....skipif my
27ec0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
27ed0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
27ee0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 39 31 0d  wsort label-891.
27ef0 0a 53 45 4c 45 43 54 20 2b 20 4d 41 58 20 28 20  .SELECT + MAX ( 
27f00 41 4c 4c 20 2d 20 63 6f 6c 32 20 29 20 2b 20 2d  ALL - col2 ) + -
27f10 20 2d 20 30 20 2b 20 2b 20 38 32 20 41 53 20 63   - 0 + + 82 AS c
27f20 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
27f30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d   cor0..----..23.
27f40 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
27f50 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
27f60 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
27f70 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
27f80 62 65 6c 2d 38 39 32 0d 0a 53 45 4c 45 43 54 20  bel-892..SELECT 
27f90 43 41 53 54 28 20 2b 20 32 31 20 41 53 20 53 49  CAST( + 21 AS SI
27fa0 47 4e 45 44 20 29 20 2b 20 2b 20 63 6f 6c 31 20  GNED ) + + col1 
27fb0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
27fc0 0a 31 30 32 0d 0a 32 32 0d 0a 34 32 0d 0a 0d 0a  .102..22..42....
27fd0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
27fe0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
27ff0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
28000 61 62 65 6c 2d 38 39 32 0d 0a 53 45 4c 45 43 54  abel-892..SELECT
28010 20 43 41 53 54 20 28 20 2b 20 32 31 20 41 53 20   CAST ( + 21 AS 
28020 49 4e 54 45 47 45 52 20 29 20 2b 20 2b 20 63 6f  INTEGER ) + + co
28030 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l1 FROM tab0..--
28040 2d 2d 0d 0a 31 30 32 0d 0a 32 32 0d 0a 34 32 0d  --..102..22..42.
28050 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
28060 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
28070 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
28080 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 39 33 0d  wsort label-893.
28090 0a 53 45 4c 45 43 54 20 2d 20 4d 49 4e 28 20 63  .SELECT - MIN( c
280a0 6f 6c 32 20 29 20 2b 20 2b 20 43 4f 55 4e 54 28  ol2 ) + + COUNT(
280b0 20 41 4c 4c 20 2d 20 2d 20 63 6f 6c 32 20 29 20   ALL - - col2 ) 
280c0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
280d0 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30 0d 0a 0d 0a  2..----..-20....
280e0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
280f0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
28100 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
28110 61 62 65 6c 2d 38 39 33 0d 0a 53 45 4c 45 43 54  abel-893..SELECT
28120 20 2d 20 4d 49 4e 20 28 20 63 6f 6c 32 20 29 20   - MIN ( col2 ) 
28130 2b 20 2b 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20  + + COUNT ( ALL 
28140 2d 20 2d 20 63 6f 6c 32 20 29 20 41 53 20 63 6f  - - col2 ) AS co
28150 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l0 FROM tab2..--
28160 2d 2d 0d 0a 2d 32 30 0d 0a 0d 0a 71 75 65 72 79  --..-20....query
28170 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
28180 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  LECT * FROM tab2
28190 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c   cor0 WHERE NULL
281a0 20 42 45 54 57 45 45 4e 20 63 6f 6c 31 20 2a 20   BETWEEN col1 * 
281b0 2d 20 2d 20 63 6f 6c 31 20 41 4e 44 20 4e 55 4c  - - col1 AND NUL
281c0 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  L..----....onlyi
281d0 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
281e0 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65  yntax: aggregate
281f0 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
28200 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
28210 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 39  rowsort label-89
28220 35 0d 0a 53 45 4c 45 43 54 20 2d 20 4d 49 4e 28  5..SELECT - MIN(
28230 20 41 4c 4c 20 2d 20 43 41 53 54 28 20 4e 55 4c   ALL - CAST( NUL
28240 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20  L AS SIGNED ) ) 
28250 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
28260 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
28270 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  NULL IS NOT NULL
28280 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
28290 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
282a0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
282b0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
282c0 61 62 65 6c 2d 38 39 35 0d 0a 53 45 4c 45 43 54  abel-895..SELECT
282d0 20 2d 20 4d 49 4e 20 28 20 41 4c 4c 20 2d 20 43   - MIN ( ALL - C
282e0 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
282f0 54 45 47 45 52 20 29 20 29 20 41 53 20 63 6f 6c  TEGER ) ) AS col
28300 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
28310 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49  or0 WHERE NULL I
28320 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
28330 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..NULL....onlyif
28340 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
28350 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
28360 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
28370 65 6c 2d 38 39 36 0d 0a 53 45 4c 45 43 54 20 44  el-896..SELECT D
28380 49 53 54 49 4e 43 54 20 2b 20 2d 20 43 4f 55 4e  ISTINCT + - COUN
28390 54 28 20 2a 20 29 20 2d 20 43 4f 55 4e 54 28 20  T( * ) - COUNT( 
283a0 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  * ) AS col0 FROM
283b0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
283c0 2d 2d 2d 0d 0a 2d 36 0d 0a 0d 0a 73 6b 69 70 69  ---..-6....skipi
283d0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
283e0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
283f0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
28400 38 39 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  896..SELECT DIST
28410 49 4e 43 54 20 2b 20 2d 20 43 4f 55 4e 54 20 28  INCT + - COUNT (
28420 20 2a 20 29 20 2d 20 43 4f 55 4e 54 20 28 20 2a   * ) - COUNT ( *
28430 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
28440 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
28450 2d 2d 0d 0a 2d 36 0d 0a 0d 0a 6f 6e 6c 79 69 66  --..-6....onlyif
28460 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
28470 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
28480 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
28490 65 6c 2d 38 39 37 0d 0a 53 45 4c 45 43 54 20 41  el-897..SELECT A
284a0 4c 4c 20 2b 20 35 31 20 2d 20 43 4f 55 4e 54 28  LL + 51 - COUNT(
284b0 20 2d 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74   - col2 ) FROM t
284c0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
284d0 2d 0d 0a 34 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..48....skipif 
284e0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
284f0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
28500 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 39  rowsort label-89
28510 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  7..SELECT ALL + 
28520 35 31 20 2d 20 43 4f 55 4e 54 20 28 20 2d 20 63  51 - COUNT ( - c
28530 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 31 20  ol2 ) FROM tab1 
28540 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34  AS cor0..----..4
28550 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  8....query I row
28560 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 38  sort..SELECT + 8
28570 39 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  9 + col2 FROM ta
28580 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 36 0d 0a 31  b0..----..136..1
28590 38 38 0d 0a 39 39 0d 0a 0d 0a 71 75 65 72 79 20  88..99....query 
285a0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
285b0 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
285c0 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
285d0 45 20 4e 4f 54 20 28 20 2b 20 33 35 20 29 20 3d  E NOT ( + 35 ) =
285e0 20 2b 20 63 6f 6c 32 20 2a 20 28 20 35 30 20 29   + col2 * ( 50 )
285f0 20 2b 20 38 35 20 2b 20 63 6f 6c 31 20 2b 20 2b   + 85 + col1 + +
28600 20 32 35 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c   25..----..9 val
28610 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
28620 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61  4b42765dff94eaaa
28630 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d  46040e537fb43b7.
28640 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
28650 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
28660 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
28670 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 30 30 0d  wsort label-900.
28680 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 28 20  .SELECT ALL - ( 
28690 2b 20 28 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a  + ( + - COUNT( *
286a0 20 29 20 29 20 29 20 41 53 20 63 6f 6c 32 20 46   ) ) ) AS col2 F
286b0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
286c0 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69  ..----..3....ski
286d0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
286e0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
286f0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
28700 6c 2d 39 30 30 0d 0a 53 45 4c 45 43 54 20 41 4c  l-900..SELECT AL
28710 4c 20 2d 20 28 20 2b 20 28 20 2b 20 2d 20 43 4f  L - ( + ( + - CO
28720 55 4e 54 20 28 20 2a 20 29 20 29 20 29 20 41 53  UNT ( * ) ) ) AS
28730 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
28740 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33  AS cor0..----..3
28750 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
28760 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
28770 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
28780 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 30 31  owsort label-901
28790 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
287a0 54 20 2d 20 4d 41 58 28 20 63 6f 6c 31 20 29 20  T - MAX( col1 ) 
287b0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
287c0 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38  0 cor0..----..-8
287d0 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
287e0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
287f0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
28800 6f 72 74 20 6c 61 62 65 6c 2d 39 30 31 0d 0a 53  ort label-901..S
28810 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
28820 20 4d 41 58 20 28 20 63 6f 6c 31 20 29 20 41 53   MAX ( col1 ) AS
28830 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
28840 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 31 0d  cor0..----..-81.
28850 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
28860 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20  rt..SELECT col2 
28870 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
28880 32 20 57 48 45 52 45 20 4e 4f 54 20 37 38 20 2b  2 WHERE NOT 78 +
28890 20 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c   col0 IS NOT NUL
288a0 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  L..----....onlyi
288b0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
288c0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
288d0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
288e0 62 65 6c 2d 39 30 33 0d 0a 53 45 4c 45 43 54 20  bel-903..SELECT 
288f0 41 4c 4c 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a  ALL COUNT( * ) *
28900 20 2d 20 36 35 20 46 52 4f 4d 20 74 61 62 30 0d   - 65 FROM tab0.
28910 0a 2d 2d 2d 2d 0d 0a 2d 31 39 35 0d 0a 0d 0a 73  .----..-195....s
28920 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
28930 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
28940 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
28950 62 65 6c 2d 39 30 33 0d 0a 53 45 4c 45 43 54 20  bel-903..SELECT 
28960 41 4c 4c 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ALL COUNT ( * ) 
28970 2a 20 2d 20 36 35 20 46 52 4f 4d 20 74 61 62 30  * - 65 FROM tab0
28980 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 35 0d 0a 0d 0a  ..----..-195....
28990 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
289a0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
289b0 20 28 20 2b 20 2b 20 39 33 20 29 20 41 53 20 63   ( + + 93 ) AS c
289c0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
289d0 2d 2d 2d 0d 0a 39 33 0d 0a 0d 0a 71 75 65 72 79  ---..93....query
289e0 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
289f0 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
28a00 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c   WHERE NOT - col
28a10 31 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  1 < NULL..----..
28a20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
28a30 74 0d 0a 53 45 4c 45 43 54 20 2d 20 35 35 20 2a  t..SELECT - 55 *
28a40 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   + col1 FROM tab
28a50 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 35 35 0d 0a  0..----..-1155..
28a60 2d 34 34 35 35 0d 0a 2d 35 35 0d 0a 0d 0a 6f 6e  -4455..-55....on
28a70 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
28a80 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
28a90 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
28aa0 20 6c 61 62 65 6c 2d 39 30 37 0d 0a 53 45 4c 45   label-907..SELE
28ab0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 4d 41  CT DISTINCT + MA
28ac0 58 28 20 2b 20 2d 20 63 6f 6c 31 20 29 20 46 52  X( + - col1 ) FR
28ad0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
28ae0 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  5....skipif mysq
28af0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
28b00 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
28b10 6f 72 74 20 6c 61 62 65 6c 2d 39 30 37 0d 0a 53  ort label-907..S
28b20 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
28b30 20 4d 41 58 20 28 20 2b 20 2d 20 63 6f 6c 31 20   MAX ( + - col1 
28b40 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  ) FROM tab1..---
28b50 2d 0d 0a 2d 35 0d 0a 0d 0a 71 75 65 72 79 20 49  -..-5....query I
28b60 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
28b70 20 41 4c 4c 20 2b 20 2d 20 37 37 20 2a 20 2d 20   ALL + - 77 * - 
28b80 63 6f 6c 30 20 2a 20 28 20 2b 20 63 6f 6c 30 20  col0 * ( + col0 
28b90 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  ) FROM tab0 AS c
28ba0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37 33 32 35  or0..----..17325
28bb0 0d 0a 35 38 32 38 31 33 0d 0a 37 32 34 34 39 33  ..582813..724493
28bc0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
28bd0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
28be0 2d 20 63 6f 6c 30 20 2a 20 2d 20 31 20 2a 20 2d  - col0 * - 1 * -
28bf0 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 31 20 41   col0 + + col1 A
28c00 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
28c10 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35   cor0..----..-25
28c20 38 37 0d 0a 2d 37 32 32 30 0d 0a 2d 38 32 33 34  87..-7220..-8234
28c30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
28c40 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 32 31  ort..SELECT + 21
28c50 20 2a 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 2b 20   * + - col1 * + 
28c60 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46  - col1 AS col2 F
28c70 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
28c80 0d 0a 2d 2d 2d 2d 0d 0a 31 33 37 37 38 31 0d 0a  ..----..137781..
28c90 32 31 0d 0a 39 32 36 31 0d 0a 0d 0a 71 75 65 72  21..9261....quer
28ca0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
28cb0 45 43 54 20 41 4c 4c 20 2d 20 37 30 20 41 53 20  ECT ALL - 70 AS 
28cc0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
28cd0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
28ce0 20 28 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 2b 20   ( + col1 * - + 
28cf0 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col2 IS NOT NULL
28d00 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72   )..----....quer
28d10 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
28d20 45 43 54 20 41 4c 4c 20 2b 20 2d 20 39 31 20 41  ECT ALL + - 91 A
28d30 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
28d40 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
28d50 2d 39 31 0d 0a 2d 39 31 0d 0a 2d 39 31 0d 0a 0d  -91..-91..-91...
28d60 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
28d70 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
28d80 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
28d90 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
28da0 6c 2d 39 31 33 0d 0a 53 45 4c 45 43 54 20 2d 20  l-913..SELECT - 
28db0 63 6f 6c 30 20 44 49 56 20 63 6f 6c 30 20 2b 20  col0 DIV col0 + 
28dc0 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f  col2 AS col1 FRO
28dd0 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
28de0 2d 0d 0a 34 36 0d 0a 39 0d 0a 39 38 0d 0a 0d 0a  -..46..9..98....
28df0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
28e00 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
28e10 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
28e20 61 62 65 6c 2d 39 31 33 0d 0a 53 45 4c 45 43 54  abel-913..SELECT
28e30 20 2d 20 63 6f 6c 30 20 2f 20 63 6f 6c 30 20 2b   - col0 / col0 +
28e40 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52   col2 AS col1 FR
28e50 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d  OM tab0 cor0..--
28e60 2d 2d 0d 0a 34 36 0d 0a 39 0d 0a 39 38 0d 0a 0d  --..46..9..98...
28e70 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
28e80 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
28e90 54 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 30 20  T col1 + - col0 
28ea0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
28eb0 30 20 57 48 45 52 45 20 4e 4f 54 20 34 31 20 49  0 WHERE NOT 41 I
28ec0 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 36  S NULL..----..-6
28ed0 36 0d 0a 2d 39 36 0d 0a 36 36 0d 0a 0d 0a 71 75  6..-96..66....qu
28ee0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
28ef0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
28f00 20 63 6f 6c 32 20 2b 20 2d 20 2d 20 63 6f 6c 31   col2 + - - col1
28f10 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
28f20 0d 0a 31 31 37 0d 0a 31 32 35 0d 0a 37 34 0d 0a  ..117..125..74..
28f30 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
28f40 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
28f50 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
28f60 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
28f70 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
28f80 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
28f90 45 43 54 20 32 32 20 2a 20 2b 20 63 6f 6c 30 20  ECT 22 * + col0 
28fa0 2a 20 2b 20 33 36 20 63 6f 6c 30 2c 20 63 6f 6c  * + 36 col0, col
28fb0 31 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  1 col2 FROM tab1
28fc0 0d 0a 2d 2d 2d 2d 0d 0a 34 30 33 39 32 0d 0a 31  ..----..40392..1
28fd0 34 0d 0a 36 37 33 32 30 0d 0a 35 0d 0a 37 32 30  4..67320..5..720
28fe0 37 32 0d 0a 34 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  72..47....onlyif
28ff0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
29000 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
29010 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
29020 65 6c 2d 39 31 37 0d 0a 53 45 4c 45 43 54 20 2b  el-917..SELECT +
29030 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20   - COUNT( * ) * 
29040 2d 20 35 35 20 41 53 20 63 6f 6c 31 20 46 52 4f  - 55 AS col1 FRO
29050 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 55 4c  M tab0 WHERE NUL
29060 4c 20 3c 3e 20 2d 20 2b 20 63 6f 6c 31 0d 0a 2d  L <> - + col1..-
29070 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  ---..0....skipif
29080 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
29090 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
290a0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
290b0 31 37 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 43  17..SELECT + - C
290c0 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20 35  OUNT ( * ) * - 5
290d0 35 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  5 AS col1 FROM t
290e0 61 62 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c  ab0 WHERE NULL <
290f0 3e 20 2d 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d  > - + col1..----
29100 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..0....onlyif my
29110 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
29120 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
29130 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
29140 74 20 6c 61 62 65 6c 2d 39 31 38 0d 0a 53 45 4c  t label-918..SEL
29150 45 43 54 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c  ECT + CAST( NULL
29160 20 41 53 20 53 49 47 4e 45 44 20 29 20 2d 20 2b   AS SIGNED ) - +
29170 20 2d 20 36 39 20 41 53 20 63 6f 6c 30 20 46 52   - 69 AS col0 FR
29180 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab1..----..N
29190 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
291a0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
291b0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
291c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
291d0 74 20 6c 61 62 65 6c 2d 39 31 38 0d 0a 53 45 4c  t label-918..SEL
291e0 45 43 54 20 2b 20 43 41 53 54 20 28 20 4e 55 4c  ECT + CAST ( NUL
291f0 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2d  L AS INTEGER ) -
29200 20 2b 20 2d 20 36 39 20 41 53 20 63 6f 6c 30 20   + - 69 AS col0 
29210 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
29220 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
29230 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  L....query I row
29240 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63  sort..SELECT + c
29250 6f 6c 32 20 2d 20 2b 20 2d 20 63 6f 6c 31 20 41  ol2 - + - col1 A
29260 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
29270 0d 0a 2d 2d 2d 2d 0d 0a 31 30 30 0d 0a 31 32 38  ..----..100..128
29280 0d 0a 33 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..31....onlyif m
29290 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
292a0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
292b0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
292c0 2d 39 32 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -920..SELECT ALL
292d0 20 4d 49 4e 28 20 44 49 53 54 49 4e 43 54 20 2b   MIN( DISTINCT +
292e0 20 2d 20 28 20 2d 20 37 35 20 29 20 29 20 2a 20   - ( - 75 ) ) * 
292f0 2b 20 2b 20 53 55 4d 28 20 44 49 53 54 49 4e 43  + + SUM( DISTINC
29300 54 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 32  T col0 ) AS col2
29310 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
29320 0d 0a 31 37 30 32 35 0d 0a 0d 0a 73 6b 69 70 69  ..17025....skipi
29330 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
29340 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
29350 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
29360 39 32 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  920..SELECT ALL 
29370 4d 49 4e 20 28 20 44 49 53 54 49 4e 43 54 20 2b  MIN ( DISTINCT +
29380 20 2d 20 28 20 2d 20 37 35 20 29 20 29 20 2a 20   - ( - 75 ) ) * 
29390 2b 20 2b 20 53 55 4d 20 28 20 44 49 53 54 49 4e  + + SUM ( DISTIN
293a0 43 54 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c  CT col0 ) AS col
293b0 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  2 FROM tab1..---
293c0 2d 0d 0a 31 37 30 32 35 0d 0a 0d 0a 71 75 65 72  -..17025....quer
293d0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
293e0 45 43 54 20 2b 20 32 36 20 2b 20 2d 20 39 34 20  ECT + 26 + - 94 
293f0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
29400 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 38 0d 0a 2d 36  1..----..-68..-6
29410 38 0d 0a 2d 36 38 0d 0a 0d 0a 71 75 65 72 79 20  8..-68....query 
29420 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
29430 54 20 41 4c 4c 20 2d 20 2b 20 38 33 20 2a 20 63  T ALL - + 83 * c
29440 6f 6c 32 20 2a 20 2b 20 2b 20 63 6f 6c 32 20 2d  ol2 * + + col2 -
29450 20 2b 20 39 32 20 2a 20 2d 20 2d 20 36 36 20 46   + 92 * - - 66 F
29460 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
29470 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 33 37 32 0d 0a  ..----..-14372..
29480 2d 31 38 39 34 31 39 0d 0a 2d 38 31 39 35 35 35  -189419..-819555
29490 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
294a0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 33 38  ort..SELECT - 38
294b0 20 2b 20 2b 20 2b 20 63 6f 6c 31 20 46 52 4f 4d   + + + col1 FROM
294c0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
294d0 2d 2d 2d 0d 0a 2d 32 34 0d 0a 2d 33 33 0d 0a 39  ---..-24..-33..9
294e0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
294f0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
29500 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
29510 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
29520 61 62 65 6c 2d 39 32 34 0d 0a 53 45 4c 45 43 54  abel-924..SELECT
29530 20 44 49 53 54 49 4e 43 54 20 33 32 20 2d 20 2b   DISTINCT 32 - +
29540 20 31 34 20 2a 20 2d 20 2b 20 43 41 53 54 28 20   14 * - + CAST( 
29550 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
29560 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
29570 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
29580 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
29590 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
295a0 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
295b0 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
295c0 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
295d0 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
295e0 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
295f0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 32 34  owsort label-924
29600 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
29610 54 20 33 32 20 2d 20 2b 20 31 34 20 2a 20 2d 20  T 32 - + 14 * - 
29620 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
29630 20 49 4e 54 45 47 45 52 20 29 20 63 6f 6c 31 20   INTEGER ) col1 
29640 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
29650 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .NULL....onlyif 
29660 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
29670 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
29680 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
29690 6c 2d 39 32 35 0d 0a 53 45 4c 45 43 54 20 2b 20  l-925..SELECT + 
296a0 53 55 4d 28 20 41 4c 4c 20 32 20 29 20 46 52 4f  SUM( ALL 2 ) FRO
296b0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
296c0 2d 2d 2d 2d 0d 0a 36 0d 0a 0d 0a 73 6b 69 70 69  ----..6....skipi
296d0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
296e0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
296f0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
29700 39 32 35 0d 0a 53 45 4c 45 43 54 20 2b 20 53 55  925..SELECT + SU
29710 4d 20 28 20 41 4c 4c 20 32 20 29 20 46 52 4f 4d  M ( ALL 2 ) FROM
29720 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
29730 2d 2d 2d 0d 0a 36 0d 0a 0d 0a 6f 6e 6c 79 69 66  ---..6....onlyif
29740 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
29750 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
29760 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
29770 65 6c 2d 39 32 36 0d 0a 53 45 4c 45 43 54 20 41  el-926..SELECT A
29780 4c 4c 20 28 20 2d 20 53 55 4d 28 20 44 49 53 54  LL ( - SUM( DIST
29790 49 4e 43 54 20 2d 20 2d 20 63 6f 6c 31 20 29 20  INCT - - col1 ) 
297a0 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
297b0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
297c0 2d 0d 0a 2d 36 36 0d 0a 0d 0a 73 6b 69 70 69 66  -..-66....skipif
297d0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
297e0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
297f0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
29800 32 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28  26..SELECT ALL (
29810 20 2d 20 53 55 4d 20 28 20 44 49 53 54 49 4e 43   - SUM ( DISTINC
29820 54 20 2d 20 2d 20 63 6f 6c 31 20 29 20 29 20 41  T - - col1 ) ) A
29830 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
29840 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
29850 2d 36 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -66....onlyif my
29860 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
29870 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
29880 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
29890 39 32 37 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f  927..SELECT - CO
298a0 55 4e 54 28 20 2d 20 39 33 20 29 20 46 52 4f 4d  UNT( - 93 ) FROM
298b0 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
298c0 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..-3....skipif m
298d0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
298e0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
298f0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 32 37  owsort label-927
29900 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54  ..SELECT - COUNT
29910 20 28 20 2d 20 39 33 20 29 20 46 52 4f 4d 20 74   ( - 93 ) FROM t
29920 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab1 cor0..----..
29930 2d 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  -3....query III 
29940 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
29950 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
29960 74 61 62 30 20 57 48 45 52 45 20 2b 20 2b 20 37  tab0 WHERE + + 7
29970 38 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  8 IS NULL..----.
29980 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
29990 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28  rt..SELECT ALL (
299a0 20 32 31 20 29 20 41 53 20 63 6f 6c 31 20 46 52   21 ) AS col1 FR
299b0 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 63 6f  OM tab1 WHERE co
299c0 6c 31 20 2b 20 63 6f 6c 31 20 2d 20 2b 20 63 6f  l1 + col1 - + co
299d0 6c 30 20 2f 20 2b 20 63 6f 6c 30 20 49 53 20 4e  l0 / + col0 IS N
299e0 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 32  OT NULL..----..2
299f0 31 0d 0a 32 31 0d 0a 32 31 0d 0a 0d 0a 71 75 65  1..21..21....que
29a00 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
29a10 4c 45 43 54 20 2b 20 2b 20 63 6f 6c 32 20 41 53  LECT + + col2 AS
29a20 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
29a30 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 30  WHERE NOT + col0
29a40 20 2a 20 2d 20 2b 20 63 6f 6c 32 20 2a 20 2b 20   * - + col2 * + 
29a50 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  col1 IS NULL..--
29a60 2d 2d 0d 0a 32 33 0d 0a 34 30 0d 0a 35 38 0d 0a  --..23..40..58..
29a70 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
29a80 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
29a90 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
29aa0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
29ab0 61 62 65 6c 2d 39 33 31 0d 0a 53 45 4c 45 43 54  abel-931..SELECT
29ac0 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   * FROM tab2 WHE
29ad0 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 4e 20 28  RE NOT NULL IN (
29ae0 20 63 6f 6c 30 20 2a 20 2d 20 2d 20 31 38 20 2a   col0 * - - 18 *
29af0 20 2b 20 63 6f 6c 30 20 2b 20 63 6f 6c 32 20 2a   + col0 + col2 *
29b00 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   - CAST( NULL AS
29b10 20 53 49 47 4e 45 44 20 29 20 2b 20 2d 20 63 6f   SIGNED ) + - co
29b20 6c 30 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 2b 20  l0 + col0 + - + 
29b30 63 6f 6c 30 2c 20 63 6f 6c 30 20 2b 20 33 31 20  col0, col0 + 31 
29b40 2d 20 2b 20 63 6f 6c 30 20 2b 20 63 6f 6c 30 20  - + col0 + col0 
29b50 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  )..----....skipi
29b60 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
29b70 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
29b80 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
29b90 6c 2d 39 33 31 0d 0a 53 45 4c 45 43 54 20 2a 20  l-931..SELECT * 
29ba0 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
29bb0 4e 4f 54 20 4e 55 4c 4c 20 49 4e 20 28 20 63 6f  NOT NULL IN ( co
29bc0 6c 30 20 2a 20 2d 20 2d 20 31 38 20 2a 20 2b 20  l0 * - - 18 * + 
29bd0 63 6f 6c 30 20 2b 20 63 6f 6c 32 20 2a 20 2d 20  col0 + col2 * - 
29be0 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
29bf0 4e 54 45 47 45 52 20 29 20 2b 20 2d 20 63 6f 6c  NTEGER ) + - col
29c00 30 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 2b 20 63  0 + col0 + - + c
29c10 6f 6c 30 2c 20 63 6f 6c 30 20 2b 20 33 31 20 2d  ol0, col0 + 31 -
29c20 20 2b 20 63 6f 6c 30 20 2b 20 63 6f 6c 30 20 29   + col0 + col0 )
29c30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
29c40 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
29c50 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
29c60 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
29c70 65 6c 2d 39 33 32 0d 0a 53 45 4c 45 43 54 20 4d  el-932..SELECT M
29c80 49 4e 28 20 2d 20 63 6f 6c 30 20 29 20 46 52 4f  IN( - col0 ) FRO
29c90 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54  M tab1 WHERE NOT
29ca0 20 2b 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 63 6f   + - col2 * + co
29cb0 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l2 IS NULL..----
29cc0 0d 0a 2d 39 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-91....skipif 
29cd0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
29ce0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
29cf0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33  rowsort label-93
29d00 32 0d 0a 53 45 4c 45 43 54 20 4d 49 4e 20 28 20  2..SELECT MIN ( 
29d10 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61  - col0 ) FROM ta
29d20 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 2d  b1 WHERE NOT + -
29d30 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 32 20 49   col2 * + col2 I
29d40 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 39  S NULL..----..-9
29d50 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
29d60 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
29d70 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
29d80 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33  rowsort label-93
29d90 33 0d 0a 53 45 4c 45 43 54 20 37 37 20 2a 20 2b  3..SELECT 77 * +
29da0 20 2b 20 34 37 20 2a 20 2b 20 43 4f 55 4e 54 28   + 47 * + COUNT(
29db0 20 2a 20 29 20 2b 20 2b 20 43 4f 55 4e 54 28 20   * ) + + COUNT( 
29dc0 2a 20 29 20 2a 20 2b 20 39 36 20 46 52 4f 4d 20  * ) * + 96 FROM 
29dd0 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  tab0 WHERE NOT N
29de0 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ULL IS NULL..---
29df0 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..0....skipif m
29e00 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
29e10 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
29e20 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33 33  owsort label-933
29e30 0d 0a 53 45 4c 45 43 54 20 37 37 20 2a 20 2b 20  ..SELECT 77 * + 
29e40 2b 20 34 37 20 2a 20 2b 20 43 4f 55 4e 54 20 28  + 47 * + COUNT (
29e50 20 2a 20 29 20 2b 20 2b 20 43 4f 55 4e 54 20 28   * ) + + COUNT (
29e60 20 2a 20 29 20 2a 20 2b 20 39 36 20 46 52 4f 4d   * ) * + 96 FROM
29e70 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20   tab0 WHERE NOT 
29e80 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  NULL IS NULL..--
29e90 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49  --..0....query I
29ea0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
29eb0 20 41 4c 4c 20 2b 20 28 20 2b 20 2d 20 35 39 20   ALL + ( + - 59 
29ec0 29 20 2a 20 2d 20 39 35 20 46 52 4f 4d 20 74 61  ) * - 95 FROM ta
29ed0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 36 30 35 0d 0a  b2..----..5605..
29ee0 35 36 30 35 0d 0a 35 36 30 35 0d 0a 0d 0a 71 75  5605..5605....qu
29ef0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
29f00 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
29f10 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   * FROM tab2 WHE
29f20 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 30 20 3c 3e  RE NOT + col0 <>
29f30 20 2d 20 38 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   - 81..----....q
29f40 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
29f50 53 45 4c 45 43 54 20 63 6f 6c 31 20 41 53 20 63  SELECT col1 AS c
29f60 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
29f70 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
29f80 2b 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 30 20  + col1 * - col0 
29f90 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
29fa0 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
29fb0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63  sort..SELECT - c
29fc0 6f 6c 30 20 2b 20 2d 20 2d 20 33 31 20 46 52 4f  ol0 + - - 31 FRO
29fd0 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab2 cor0..---
29fe0 2d 0d 0a 2d 31 35 0d 0a 2d 33 33 0d 0a 2d 34 34  -..-15..-33..-44
29ff0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2a000 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
2a010 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
2a020 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33 38  owsort label-938
2a030 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54  ..SELECT + COUNT
2a040 28 20 2d 20 2b 20 32 38 20 29 20 2a 20 2d 20 2b  ( - + 28 ) * - +
2a050 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d   COUNT( * ) FROM
2a060 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab0 cor0..----
2a070 0d 0a 2d 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..-9....skipif m
2a080 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2a090 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
2a0a0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33 38  owsort label-938
2a0b0 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54  ..SELECT + COUNT
2a0c0 20 28 20 2d 20 2b 20 32 38 20 29 20 2a 20 2d 20   ( - + 28 ) * - 
2a0d0 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52  + COUNT ( * ) FR
2a0e0 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d  OM tab0 cor0..--
2a0f0 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 6f 6e 6c 79 69 66  --..-9....onlyif
2a100 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
2a110 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
2a120 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2a130 65 6c 2d 39 33 39 0d 0a 53 45 4c 45 43 54 20 2d  el-939..SELECT -
2a140 20 2d 20 43 4f 55 4e 54 28 20 44 49 53 54 49 4e   - COUNT( DISTIN
2a150 43 54 20 2d 20 2b 20 63 6f 6c 32 20 29 20 46 52  CT - + col2 ) FR
2a160 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
2a170 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70  .----..3....skip
2a180 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2a190 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2a1a0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2a1b0 2d 39 33 39 0d 0a 53 45 4c 45 43 54 20 2d 20 2d  -939..SELECT - -
2a1c0 20 43 4f 55 4e 54 20 28 20 44 49 53 54 49 4e 43   COUNT ( DISTINC
2a1d0 54 20 2d 20 2b 20 63 6f 6c 32 20 29 20 46 52 4f  T - + col2 ) FRO
2a1e0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
2a1f0 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79  ----..3....query
2a200 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2a210 43 54 20 2b 20 2b 20 63 6f 6c 30 20 2a 20 2d 20  CT + + col0 * - 
2a220 2d 20 33 32 20 46 52 4f 4d 20 74 61 62 31 20 41  - 32 FROM tab1 A
2a230 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36  S cor0..----..16
2a240 33 32 0d 0a 32 37 32 30 0d 0a 32 39 31 32 0d 0a  32..2720..2912..
2a250 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2a260 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
2a270 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
2a280 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2a290 65 6c 2d 39 34 31 0d 0a 53 45 4c 45 43 54 20 2d  el-941..SELECT -
2a2a0 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52   col1 AS col0 FR
2a2b0 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 2b 20  OM tab0 WHERE + 
2a2c0 63 6f 6c 31 20 2a 20 2b 20 43 41 53 54 28 20 2b  col1 * + CAST( +
2a2d0 20 2d 20 63 6f 6c 30 20 41 53 20 53 49 47 4e 45   - col0 AS SIGNE
2a2e0 44 20 29 20 2a 20 2d 20 63 6f 6c 30 20 2a 20 32  D ) * - col0 * 2
2a2f0 33 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 63 6f  3 NOT BETWEEN co
2a300 6c 32 20 2f 20 2d 20 2b 20 39 34 20 41 4e 44 20  l2 / - + 94 AND 
2a310 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  + col2..----..-1
2a320 0d 0a 2d 32 31 0d 0a 2d 38 31 0d 0a 0d 0a 73 6b  ..-21..-81....sk
2a330 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2a340 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2a350 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2a360 65 6c 2d 39 34 31 0d 0a 53 45 4c 45 43 54 20 2d  el-941..SELECT -
2a370 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52   col1 AS col0 FR
2a380 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 2b 20  OM tab0 WHERE + 
2a390 63 6f 6c 31 20 2a 20 2b 20 43 41 53 54 20 28 20  col1 * + CAST ( 
2a3a0 2b 20 2d 20 63 6f 6c 30 20 41 53 20 49 4e 54 45  + - col0 AS INTE
2a3b0 47 45 52 20 29 20 2a 20 2d 20 63 6f 6c 30 20 2a  GER ) * - col0 *
2a3c0 20 32 33 20 4e 4f 54 20 42 45 54 57 45 45 4e 20   23 NOT BETWEEN 
2a3d0 63 6f 6c 32 20 2f 20 2d 20 2b 20 39 34 20 41 4e  col2 / - + 94 AN
2a3e0 44 20 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a  D + col2..----..
2a3f0 2d 31 0d 0a 2d 32 31 0d 0a 2d 38 31 0d 0a 0d 0a  -1..-21..-81....
2a400 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
2a410 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
2a420 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
2a430 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2a440 2d 39 34 32 0d 0a 53 45 4c 45 43 54 20 44 49 53  -942..SELECT DIS
2a450 54 49 4e 43 54 20 32 32 20 2b 20 2d 20 43 41 53  TINCT 22 + - CAS
2a460 54 28 20 39 36 20 41 53 20 53 49 47 4e 45 44 20  T( 96 AS SIGNED 
2a470 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  ) col2 FROM tab0
2a480 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 34 0d 0a 0d 0a 73  ..----..-74....s
2a490 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2a4a0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
2a4b0 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
2a4c0 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
2a4d0 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
2a4e0 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
2a4f0 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
2a500 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 34 32  owsort label-942
2a510 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2a520 54 20 32 32 20 2b 20 2d 20 43 41 53 54 20 28 20  T 22 + - CAST ( 
2a530 39 36 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  96 AS INTEGER ) 
2a540 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
2a550 2d 2d 2d 2d 0d 0a 2d 37 34 0d 0a 0d 0a 71 75 65  ----..-74....que
2a560 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2a570 4c 45 43 54 20 2d 20 38 31 20 41 53 20 63 6f 6c  LECT - 81 AS col
2a580 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
2a590 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
2a5a0 61 62 30 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d  ab0 AS cor1..---
2a5b0 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
2a5c0 69 6e 67 20 74 6f 20 32 30 35 62 33 66 66 32 64  ing to 205b3ff2d
2a5d0 37 62 31 38 31 37 63 39 38 64 37 39 38 30 62 38  7b1817c98d7980b8
2a5e0 63 31 37 65 36 63 31 0d 0a 0d 0a 71 75 65 72 79  c17e6c1....query
2a5f0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2a600 43 54 20 63 6f 6c 31 20 2b 20 2d 20 34 30 20 41  CT col1 + - 40 A
2a610 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
2a620 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2a630 31 31 0d 0a 32 37 0d 0a 33 37 0d 0a 0d 0a 71 75  11..27..37....qu
2a640 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2a650 45 4c 45 43 54 20 2b 20 2d 20 35 20 2b 20 2b 20  ELECT + - 5 + + 
2a660 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
2a670 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 32  S cor0..----..42
2a680 0d 0a 35 0d 0a 39 34 0d 0a 0d 0a 6f 6e 6c 79 69  ..5..94....onlyi
2a690 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
2a6a0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
2a6b0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2a6c0 62 65 6c 2d 39 34 36 0d 0a 53 45 4c 45 43 54 20  bel-946..SELECT 
2a6d0 2b 20 38 38 20 2b 20 2b 20 43 4f 55 4e 54 28 20  + 88 + + COUNT( 
2a6e0 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  * ) FROM tab0 AS
2a6f0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 31 0d   cor0..----..91.
2a700 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2a710 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2a720 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2a730 74 20 6c 61 62 65 6c 2d 39 34 36 0d 0a 53 45 4c  t label-946..SEL
2a740 45 43 54 20 2b 20 38 38 20 2b 20 2b 20 43 4f 55  ECT + 88 + + COU
2a750 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  NT ( * ) FROM ta
2a760 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
2a770 0d 0a 39 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..91....query I 
2a780 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2a790 41 4c 4c 20 2d 20 2b 20 37 35 20 2d 20 2b 20 63  ALL - + 75 - + c
2a7a0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
2a7b0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36   cor0..----..-16
2a7c0 32 0d 0a 2d 31 37 32 0d 0a 2d 39 30 0d 0a 0d 0a  2..-172..-90....
2a7d0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
2a7e0 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
2a7f0 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
2a800 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
2a810 6c 2d 39 34 38 0d 0a 53 45 4c 45 43 54 20 44 49  l-948..SELECT DI
2a820 53 54 49 4e 43 54 20 2b 20 2b 20 37 39 20 44 49  STINCT + + 79 DI
2a830 56 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31  V + col2 AS col1
2a840 2c 20 2d 20 38 34 20 41 53 20 63 6f 6c 31 20 46  , - 84 AS col1 F
2a850 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
2a860 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 2d 38 34 0d 0a  ..----..0..-84..
2a870 31 0d 0a 2d 38 34 0d 0a 0d 0a 73 6b 69 70 69 66  1..-84....skipif
2a880 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2a890 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2a8a0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2a8b0 39 34 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  948..SELECT DIST
2a8c0 49 4e 43 54 20 2b 20 2b 20 37 39 20 2f 20 2b 20  INCT + + 79 / + 
2a8d0 63 6f 6c 32 20 41 53 20 63 6f 6c 31 2c 20 2d 20  col2 AS col1, - 
2a8e0 38 34 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  84 AS col1 FROM 
2a8f0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
2a900 2d 2d 0d 0a 30 0d 0a 2d 38 34 0d 0a 31 0d 0a 2d  --..0..-84..1..-
2a910 38 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  84....query III 
2a920 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2a930 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
2a940 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2b  tab1 WHERE NOT +
2a950 20 2b 20 35 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d   + 5 IS NULL..--
2a960 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
2a970 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31  hing to c6c0a411
2a980 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31  1b36d04dbc811a11
2a990 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72  e4d54cad....quer
2a9a0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2a9b0 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  ECT DISTINCT col
2a9c0 31 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 2d 20 32  1 + col0 * + - 2
2a9d0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
2a9e0 0d 0a 2d 34 31 0d 0a 2d 35 31 0d 0a 2d 38 33 0d  ..-41..-51..-83.
2a9f0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2aa00 72 74 0d 0a 53 45 4c 45 43 54 20 28 20 2b 20 2b  rt..SELECT ( + +
2aa10 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 30 20   col1 ) AS col0 
2aa20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
2aa30 0a 31 34 0d 0a 34 37 0d 0a 35 0d 0a 0d 0a 6f 6e  .14..47..5....on
2aa40 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
2aa50 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
2aa60 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
2aa70 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2aa80 39 35 32 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31  952..SELECT col1
2aa90 20 44 49 56 20 2d 20 2b 20 63 6f 6c 30 2c 20 63   DIV - + col0, c
2aaa0 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol1 AS col2 FROM
2aab0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 0d   tab0..----..-5.
2aac0 0a 38 31 0d 0a 30 0d 0a 31 0d 0a 30 0d 0a 32 31  .81..0..1..0..21
2aad0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2aae0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2aaf0 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
2ab00 6f 72 74 20 6c 61 62 65 6c 2d 39 35 32 0d 0a 53  ort label-952..S
2ab10 45 4c 45 43 54 20 63 6f 6c 31 20 2f 20 2d 20 2b  ELECT col1 / - +
2ab20 20 63 6f 6c 30 2c 20 63 6f 6c 31 20 41 53 20 63   col0, col1 AS c
2ab30 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
2ab40 2d 2d 2d 0d 0a 2d 35 0d 0a 38 31 0d 0a 30 0d 0a  ---..-5..81..0..
2ab50 31 0d 0a 30 0d 0a 32 31 0d 0a 0d 0a 71 75 65 72  1..0..21....quer
2ab60 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2ab70 45 43 54 20 2d 20 28 20 2b 20 2b 20 39 32 20 29  ECT - ( + + 92 )
2ab80 20 46 52 4f 4d 20 74 61 62 30 2c 20 74 61 62 30   FROM tab0, tab0
2ab90 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2aba0 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
2abb0 20 74 6f 20 31 61 66 37 30 39 61 37 39 61 33 65   to 1af709a79a3e
2abc0 35 36 32 38 31 66 66 64 63 65 34 64 39 33 31 64  56281ffdce4d931d
2abd0 35 39 36 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20  5965....query I 
2abe0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2abf0 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 63 6f 6c  DISTINCT - - col
2ac00 32 20 2a 20 2d 20 2d 20 36 36 20 2a 20 2d 20 2b  2 * - - 66 * - +
2ac10 20 63 6f 6c 32 20 2a 20 2b 20 35 30 20 2d 20 2d   col2 * + 50 - -
2ac20 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   - col0 FROM tab
2ac30 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
2ac40 0a 2d 31 31 31 30 31 32 37 35 0d 0a 2d 31 37 34  .-11101275..-174
2ac50 35 37 34 36 0d 0a 2d 35 32 38 30 30 36 34 0d 0a  5746..-5280064..
2ac60 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2ac70 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2ac80 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
2ac90 73 6f 72 74 20 6c 61 62 65 6c 2d 39 35 35 0d 0a  sort label-955..
2aca0 53 45 4c 45 43 54 20 2b 20 2b 20 43 4f 55 4e 54  SELECT + + COUNT
2acb0 28 20 2a 20 29 20 2d 20 2d 20 4d 41 58 28 20 41  ( * ) - - MAX( A
2acc0 4c 4c 20 2b 20 63 6f 6c 30 20 29 20 46 52 4f 4d  LL + col0 ) FROM
2acd0 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
2ace0 2d 2d 2d 0d 0a 31 30 30 0d 0a 0d 0a 73 6b 69 70  ---..100....skip
2acf0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2ad00 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2ad10 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2ad20 2d 39 35 35 0d 0a 53 45 4c 45 43 54 20 2b 20 2b  -955..SELECT + +
2ad30 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2d 20 2d   COUNT ( * ) - -
2ad40 20 4d 41 58 20 28 20 41 4c 4c 20 2b 20 63 6f 6c   MAX ( ALL + col
2ad50 30 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  0 ) FROM tab0 AS
2ad60 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 30   cor0..----..100
2ad70 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2ad80 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
2ad90 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
2ada0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 35 36  owsort label-956
2adb0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2adc0 54 20 43 4f 55 4e 54 28 20 34 35 20 29 20 2d 20  T COUNT( 45 ) - 
2add0 35 33 20 2a 20 2b 20 43 4f 55 4e 54 28 20 2a 20  53 * + COUNT( * 
2ade0 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
2adf0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 36 0d  or0..----..-156.
2ae00 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2ae10 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2ae20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2ae30 74 20 6c 61 62 65 6c 2d 39 35 36 0d 0a 53 45 4c  t label-956..SEL
2ae40 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55  ECT DISTINCT COU
2ae50 4e 54 20 28 20 34 35 20 29 20 2d 20 35 33 20 2a  NT ( 45 ) - 53 *
2ae60 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46   + COUNT ( * ) F
2ae70 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
2ae80 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 36 0d 0a 0d 0a  ..----..-156....
2ae90 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
2aea0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2aeb0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2aec0 72 74 20 6c 61 62 65 6c 2d 39 35 37 0d 0a 53 45  rt label-957..SE
2aed0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
2aee0 31 32 20 2a 20 2b 20 4d 41 58 28 20 2b 20 63 6f  12 * + MAX( + co
2aef0 6c 32 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  l2 ) AS col0 FRO
2af00 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
2af10 2d 2d 2d 2d 0d 0a 31 31 35 32 0d 0a 0d 0a 73 6b  ----..1152....sk
2af20 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2af30 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2af40 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2af50 65 6c 2d 39 35 37 0d 0a 53 45 4c 45 43 54 20 44  el-957..SELECT D
2af60 49 53 54 49 4e 43 54 20 2b 20 31 32 20 2a 20 2b  ISTINCT + 12 * +
2af70 20 4d 41 58 20 28 20 2b 20 63 6f 6c 32 20 29 20   MAX ( + col2 ) 
2af80 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
2af90 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
2afa0 0a 31 31 35 32 0d 0a 0d 0a 71 75 65 72 79 20 49  .1152....query I
2afb0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2afc0 20 2d 20 34 31 20 46 52 4f 4d 20 74 61 62 31 20   - 41 FROM tab1 
2afd0 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
2afe0 49 4e 20 74 61 62 31 20 41 53 20 63 6f 72 31 0d  IN tab1 AS cor1.
2aff0 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
2b000 68 61 73 68 69 6e 67 20 74 6f 20 34 62 61 30 63  hashing to 4ba0c
2b010 31 30 32 30 39 31 66 39 63 62 63 39 66 65 39 34  102091f9cbc9fe94
2b020 33 39 62 30 34 35 38 34 65 37 30 0d 0a 0d 0a 6f  39b04584e70....o
2b030 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
2b040 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
2b050 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
2b060 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
2b070 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2b080 6c 2d 39 35 39 0d 0a 53 45 4c 45 43 54 20 43 4f  l-959..SELECT CO
2b090 55 4e 54 28 20 2a 20 29 20 44 49 56 20 2d 20 2d  UNT( * ) DIV - -
2b0a0 20 4d 49 4e 28 20 44 49 53 54 49 4e 43 54 20 2b   MIN( DISTINCT +
2b0b0 20 2d 20 32 35 20 29 20 41 53 20 63 6f 6c 30 20   - 25 ) AS col0 
2b0c0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
2b0d0 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
2b0e0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2b0f0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2b100 73 6f 72 74 20 6c 61 62 65 6c 2d 39 35 39 0d 0a  sort label-959..
2b110 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 2a  SELECT COUNT ( *
2b120 20 29 20 2f 20 2d 20 2d 20 4d 49 4e 20 28 20 44   ) / - - MIN ( D
2b130 49 53 54 49 4e 43 54 20 2b 20 2d 20 32 35 20 29  ISTINCT + - 25 )
2b140 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
2b150 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71  b2..----..0....q
2b160 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2b170 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c  SELECT ALL - col
2b180 30 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 41 53 20  0 * - - col0 AS 
2b190 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col0 FROM tab1..
2b1a0 2d 2d 2d 2d 0d 0a 2d 32 36 30 31 0d 0a 2d 37 32  ----..-2601..-72
2b1b0 32 35 0d 0a 2d 38 32 38 31 0d 0a 0d 0a 6f 6e 6c  25..-8281....onl
2b1c0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
2b1d0 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
2b1e0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
2b1f0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2b200 36 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  61..SELECT DISTI
2b210 4e 43 54 20 2d 20 38 32 20 41 53 20 63 6f 6c 31  NCT - 82 AS col1
2b220 2c 20 2d 20 35 39 20 2a 20 2b 20 43 41 53 54 28  , - 59 * + CAST(
2b230 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
2b240 29 20 2a 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 31  ) * + col1 + + 1
2b250 39 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  9 + + col2 AS co
2b260 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
2b270 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 32 0d  cor0..----..-82.
2b280 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
2b290 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2b2a0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
2b2b0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2b2c0 36 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  61..SELECT DISTI
2b2d0 4e 43 54 20 2d 20 38 32 20 41 53 20 63 6f 6c 31  NCT - 82 AS col1
2b2e0 2c 20 2d 20 35 39 20 2a 20 2b 20 43 41 53 54 20  , - 59 * + CAST 
2b2f0 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
2b300 52 20 29 20 2a 20 2b 20 63 6f 6c 31 20 2b 20 2b  R ) * + col1 + +
2b310 20 31 39 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20   19 + + col2 AS 
2b320 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
2b330 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38  S cor0..----..-8
2b340 32 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69  2..NULL....onlyi
2b350 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
2b360 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
2b370 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
2b380 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 36 32 0d  wsort label-962.
2b390 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2a  .SELECT - col1 *
2b3a0 20 2d 20 63 6f 6c 31 20 2b 20 63 6f 6c 30 20 44   - col1 + col0 D
2b3b0 49 56 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c  IV + col2 AS col
2b3c0 30 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  0 FROM tab1 cor0
2b3d0 0d 0a 2d 2d 2d 2d 0d 0a 31 39 36 0d 0a 32 32 31  ..----..196..221
2b3e0 30 0d 0a 32 36 0d 0a 0d 0a 73 6b 69 70 69 66 20  0..26....skipif 
2b3f0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2b400 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2b410 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 36  rowsort label-96
2b420 32 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31  2..SELECT - col1
2b430 20 2a 20 2d 20 63 6f 6c 31 20 2b 20 63 6f 6c 30   * - col1 + col0
2b440 20 2f 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c   / + col2 AS col
2b450 30 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  0 FROM tab1 cor0
2b460 0d 0a 2d 2d 2d 2d 0d 0a 31 39 36 0d 0a 32 32 31  ..----..196..221
2b470 30 0d 0a 32 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  0..26....onlyif 
2b480 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
2b490 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
2b4a0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2b4b0 6f 72 74 20 6c 61 62 65 6c 2d 39 36 33 0d 0a 53  ort label-963..S
2b4c0 45 4c 45 43 54 20 43 41 53 54 28 20 35 36 20 41  ELECT CAST( 56 A
2b4d0 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f  S SIGNED ) AS co
2b4e0 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
2b4f0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 36 0d 0a  cor0..----..56..
2b500 35 36 0d 0a 35 36 0d 0a 0d 0a 73 6b 69 70 69 66  56..56....skipif
2b510 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2b520 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2b530 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2b540 36 33 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 20  63..SELECT CAST 
2b550 28 20 35 36 20 41 53 20 49 4e 54 45 47 45 52 20  ( 56 AS INTEGER 
2b560 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
2b570 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
2b580 2d 0d 0a 35 36 0d 0a 35 36 0d 0a 35 36 0d 0a 0d  -..56..56..56...
2b590 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
2b5a0 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
2b5b0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
2b5c0 48 45 52 45 20 4e 4f 54 20 28 20 63 6f 6c 31 20  HERE NOT ( col1 
2b5d0 2b 20 2d 20 2b 20 28 20 2d 20 2b 20 63 6f 6c 31  + - + ( - + col1
2b5e0 20 29 20 29 20 4e 4f 54 20 49 4e 20 28 20 28 20   ) ) NOT IN ( ( 
2b5f0 63 6f 6c 32 20 29 20 2a 20 2d 20 63 6f 6c 31 2c  col2 ) * - col1,
2b600 20 2d 20 63 6f 6c 31 2c 20 2b 20 28 20 63 6f 6c   - col1, + ( col
2b610 30 20 29 2c 20 2d 20 2b 20 63 6f 6c 30 20 2b 20  0 ), - + col0 + 
2b620 2d 20 31 33 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  - 13 )..----....
2b630 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
2b640 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
2b650 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  CT * FROM tab2 W
2b660 48 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 42 45  HERE NULL NOT BE
2b670 54 57 45 45 4e 20 2b 20 63 6f 6c 30 20 2a 20 63  TWEEN + col0 * c
2b680 6f 6c 31 20 41 4e 44 20 2b 20 63 6f 6c 31 0d 0a  ol1 AND + col1..
2b690 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
2b6a0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2b6b0 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  T * FROM tab2 WH
2b6c0 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 30 20 2f  ERE NOT + col0 /
2b6d0 20 2d 20 2d 20 63 6f 6c 32 20 49 53 20 4e 55 4c   - - col2 IS NUL
2b6e0 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  L..----..9 value
2b6f0 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63  s hashing to 75c
2b700 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62  998aa53ac83218cb
2b710 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d  f2feb962d0a49...
2b720 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2b730 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c  ..SELECT ALL col
2b740 31 20 2b 20 2d 20 2b 20 37 20 2a 20 63 6f 6c 30  1 + - + 7 * col0
2b750 20 2a 20 33 33 20 46 52 4f 4d 20 74 61 62 31 0d   * 33 FROM tab1.
2b760 0a 2d 2d 2d 2d 0d 0a 2d 31 31 37 36 37 0d 0a 2d  .----..-11767..-
2b770 31 39 36 33 30 0d 0a 2d 32 30 39 37 34 0d 0a 0d  19630..-20974...
2b780 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2b790 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67  CAST syntax: agg
2b7a0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53  regate syntax: S
2b7b0 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
2b7c0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2b7d0 62 65 6c 2d 39 36 38 0d 0a 53 45 4c 45 43 54 20  bel-968..SELECT 
2b7e0 44 49 53 54 49 4e 43 54 20 2b 20 43 41 53 54 28  DISTINCT + CAST(
2b7f0 20 28 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20   ( + COUNT( * ) 
2b800 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52  ) AS SIGNED ) FR
2b810 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33  OM tab2..----..3
2b820 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2b830 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2b840 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
2b850 72 74 20 6c 61 62 65 6c 2d 39 36 38 0d 0a 53 45  rt label-968..SE
2b860 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
2b870 43 41 53 54 20 28 20 28 20 2b 20 43 4f 55 4e 54  CAST ( ( + COUNT
2b880 20 28 20 2a 20 29 20 29 20 41 53 20 49 4e 54 45   ( * ) ) AS INTE
2b890 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 32 0d  GER ) FROM tab2.
2b8a0 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72  .----..3....quer
2b8b0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
2b8c0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a  ELECT DISTINCT *
2b8d0 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
2b8e0 20 2b 20 63 6f 6c 32 20 3c 3d 20 2d 20 63 6f 6c   + col2 <= - col
2b8f0 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  2..----....onlyi
2b900 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
2b910 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
2b920 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2b930 62 65 6c 2d 39 37 30 0d 0a 53 45 4c 45 43 54 20  bel-970..SELECT 
2b940 36 35 20 2f 20 2b 20 37 35 20 2b 20 2b 20 4d 41  65 / + 75 + + MA
2b950 58 28 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 29 20  X( ALL + col0 ) 
2b960 2b 20 28 20 53 55 4d 28 20 41 4c 4c 20 2d 20 32  + ( SUM( ALL - 2
2b970 31 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31 20  1 ) ) FROM tab1 
2b980 57 48 45 52 45 20 4e 4f 54 20 2b 20 37 38 20 49  WHERE NOT + 78 I
2b990 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
2b9a0 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
2b9b0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2b9c0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2b9d0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2b9e0 37 30 0d 0a 53 45 4c 45 43 54 20 36 35 20 2f 20  70..SELECT 65 / 
2b9f0 2b 20 37 35 20 2b 20 2b 20 4d 41 58 20 28 20 41  + 75 + + MAX ( A
2ba00 4c 4c 20 2b 20 63 6f 6c 30 20 29 20 2b 20 28 20  LL + col0 ) + ( 
2ba10 53 55 4d 20 28 20 41 4c 4c 20 2d 20 32 31 20 29  SUM ( ALL - 21 )
2ba20 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45   ) FROM tab1 WHE
2ba30 52 45 20 4e 4f 54 20 2b 20 37 38 20 49 53 20 4e  RE NOT + 78 IS N
2ba40 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e  OT NULL..----..N
2ba50 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ULL....onlyif my
2ba60 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
2ba70 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
2ba80 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2ba90 74 20 6c 61 62 65 6c 2d 39 37 31 0d 0a 53 45 4c  t label-971..SEL
2baa0 45 43 54 20 2b 20 28 20 2d 20 31 35 20 29 20 44  ECT + ( - 15 ) D
2bab0 49 56 20 2b 20 2b 20 63 6f 6c 32 20 46 52 4f 4d  IV + + col2 FROM
2bac0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
2bad0 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a  ---..0..0..0....
2bae0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2baf0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2bb00 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2bb10 61 62 65 6c 2d 39 37 31 0d 0a 53 45 4c 45 43 54  abel-971..SELECT
2bb20 20 2b 20 28 20 2d 20 31 35 20 29 20 2f 20 2b 20   + ( - 15 ) / + 
2bb30 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  + col2 FROM tab2
2bb40 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2bb50 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79  0..0..0....query
2bb60 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2bb70 43 54 20 35 31 20 2b 20 63 6f 6c 32 20 46 52 4f  CT 51 + col2 FRO
2bb80 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 31  M tab1..----..11
2bb90 30 0d 0a 31 31 39 0d 0a 31 34 37 0d 0a 0d 0a 71  0..119..147....q
2bba0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2bbb0 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 38 34 20  SELECT ALL + 84 
2bbc0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
2bbd0 31 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  1 AS cor0 CROSS 
2bbe0 4a 4f 49 4e 20 74 61 62 31 20 41 53 20 63 6f 72  JOIN tab1 AS cor
2bbf0 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  1..----..9 value
2bc00 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 61 64  s hashing to cad
2bc10 64 38 37 36 63 32 36 33 33 38 66 63 35 38 62 39  d876c26338fc58b9
2bc20 32 39 37 65 37 34 66 63 33 32 34 64 38 0d 0a 0d  297e74fc324d8...
2bc30 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2bc40 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20  ..SELECT - col1 
2bc50 2a 20 2d 20 37 38 20 2b 20 2d 20 2d 20 63 6f 6c  * - 78 + - - col
2bc60 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  1 AS col2 FROM t
2bc70 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 31 30 36 0d  ab1..----..1106.
2bc80 0a 33 37 31 33 0d 0a 33 39 35 0d 0a 0d 0a 6f 6e  .3713..395....on
2bc90 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
2bca0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
2bcb0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2bcc0 20 6c 61 62 65 6c 2d 39 37 35 0d 0a 53 45 4c 45   label-975..SELE
2bcd0 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 28 20  CT ALL - COUNT( 
2bce0 2a 20 29 20 2b 20 2b 20 35 37 20 41 53 20 63 6f  * ) + + 57 AS co
2bcf0 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
2bd00 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 34 0d 0a  cor0..----..54..
2bd10 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2bd20 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2bd30 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2bd40 20 6c 61 62 65 6c 2d 39 37 35 0d 0a 53 45 4c 45   label-975..SELE
2bd50 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 20 28  CT ALL - COUNT (
2bd60 20 2a 20 29 20 2b 20 2b 20 35 37 20 41 53 20 63   * ) + + 57 AS c
2bd70 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
2bd80 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 34 0d   cor0..----..54.
2bd90 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2bda0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
2bdb0 4e 43 54 20 63 6f 6c 31 20 2a 20 28 20 36 37 20  NCT col1 * ( 67 
2bdc0 29 20 2b 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f  ) + - col1 AS co
2bdd0 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
2bde0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 31 30 32  cor0..----..3102
2bdf0 0d 0a 33 33 30 0d 0a 39 32 34 0d 0a 0d 0a 71 75  ..330..924....qu
2be00 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2be10 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
2be20 20 63 6f 6c 31 20 2a 20 2b 20 2b 20 63 6f 6c 31   col1 * + + col1
2be30 20 2a 20 38 38 20 2a 20 63 6f 6c 31 20 46 52 4f   * 88 * col1 FRO
2be40 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
2be50 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 30 20  HERE NOT - col0 
2be60 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d  IS NULL..----..-
2be70 34 36 37 36 36 38 30 38 0d 0a 2d 38 31 34 39 36  46766808..-81496
2be80 38 0d 0a 2d 38 38 0d 0a 0d 0a 71 75 65 72 79 20  8..-88....query 
2be90 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2bea0 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 2b 20 2b  T ALL + col1 + +
2beb0 20 35 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   51 AS col1 FROM
2bec0 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
2bed0 45 52 45 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20  ERE col2 IS NOT 
2bee0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 36 0d 0a  NULL..----..56..
2bef0 36 35 0d 0a 39 38 0d 0a 0d 0a 71 75 65 72 79 20  65..98....query 
2bf00 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2bf10 54 20 41 4c 4c 20 63 6f 6c 32 20 2a 20 2b 20 37  T ALL col2 * + 7
2bf20 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
2bf30 0d 0a 33 32 39 0d 0a 36 39 33 0d 0a 37 30 0d 0a  ..329..693..70..
2bf40 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2bf50 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2d  t..SELECT col1 -
2bf60 20 2b 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c   + - col1 AS col
2bf70 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  2 FROM tab2..---
2bf80 2d 0d 0a 31 30 32 0d 0a 31 33 34 0d 0a 31 35 34  -..102..134..154
2bf90 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2bfa0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
2bfb0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  tax: ..query II 
2bfc0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 38  rowsort label-98
2bfd0 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  1..SELECT DISTIN
2bfe0 43 54 20 2d 20 28 20 2b 20 4d 49 4e 28 20 2d 20  CT - ( + MIN( - 
2bff0 2d 20 63 6f 6c 30 20 29 20 29 20 2a 20 2b 20 33  - col0 ) ) * + 3
2c000 33 2c 20 35 30 20 2a 20 2b 20 31 30 20 41 53 20  3, 50 * + 10 AS 
2c010 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
2c020 2d 2d 2d 2d 0d 0a 2d 31 35 31 38 0d 0a 35 30 30  ----..-1518..500
2c030 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2c040 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2c050 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
2c060 6f 72 74 20 6c 61 62 65 6c 2d 39 38 31 0d 0a 53  ort label-981..S
2c070 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
2c080 20 28 20 2b 20 4d 49 4e 20 28 20 2d 20 2d 20 63   ( + MIN ( - - c
2c090 6f 6c 30 20 29 20 29 20 2a 20 2b 20 33 33 2c 20  ol0 ) ) * + 33, 
2c0a0 35 30 20 2a 20 2b 20 31 30 20 41 53 20 63 6f 6c  50 * + 10 AS col
2c0b0 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
2c0c0 2d 0d 0a 2d 31 35 31 38 0d 0a 35 30 30 0d 0a 0d  -..-1518..500...
2c0d0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2c0e0 0d 0a 53 45 4c 45 43 54 20 34 35 20 2d 20 2d 20  ..SELECT 45 - - 
2c0f0 63 6f 6c 30 20 2b 20 2b 20 28 20 2b 20 63 6f 6c  col0 + + ( + col
2c100 31 20 29 20 2a 20 2b 20 63 6f 6c 30 20 41 53 20  1 ) * + col0 AS 
2c110 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
2c120 2d 2d 2d 2d 0d 0a 31 32 37 35 0d 0a 31 39 35 39  ----..1275..1959
2c130 0d 0a 32 33 39 0d 0a 0d 0a 71 75 65 72 79 20 49  ..239....query I
2c140 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2c150 20 44 49 53 54 49 4e 43 54 20 35 34 20 2a 20 2b   DISTINCT 54 * +
2c160 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
2c170 0a 2d 2d 2d 2d 0d 0a 32 34 38 34 0d 0a 33 34 35  .----..2484..345
2c180 36 0d 0a 34 30 35 30 0d 0a 0d 0a 71 75 65 72 79  6..4050....query
2c190 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2c1a0 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 2b 20  CT ALL + col0 + 
2c1b0 2b 20 34 32 20 2b 20 63 6f 6c 32 20 46 52 4f 4d  + 42 + col2 FROM
2c1c0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 38 36   tab1..----..186
2c1d0 0d 0a 31 38 39 0d 0a 32 30 31 0d 0a 0d 0a 71 75  ..189..201....qu
2c1e0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2c1f0 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 30  ELECT ALL - col0
2c200 20 2a 20 2d 20 63 6f 6c 31 20 2a 20 63 6f 6c 31   * - col1 * col1
2c210 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
2c220 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 30 31 30 31 39  b1..----..201019
2c230 0d 0a 32 31 32 35 0d 0a 39 39 39 36 0d 0a 0d 0a  ..2125..9996....
2c240 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
2c250 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2c260 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2c270 72 74 20 6c 61 62 65 6c 2d 39 38 36 0d 0a 53 45  rt label-986..SE
2c280 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f  LECT DISTINCT CO
2c290 55 4e 54 28 20 44 49 53 54 49 4e 43 54 20 37 33  UNT( DISTINCT 73
2c2a0 20 29 20 2b 20 2b 20 2b 20 43 4f 55 4e 54 28 20   ) + + + COUNT( 
2c2b0 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  * ) AS col1 FROM
2c2c0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 34 0d 0a   tab0..----..4..
2c2d0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2c2e0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2c2f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2c300 20 6c 61 62 65 6c 2d 39 38 36 0d 0a 53 45 4c 45   label-986..SELE
2c310 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e  CT DISTINCT COUN
2c320 54 20 28 20 44 49 53 54 49 4e 43 54 20 37 33 20  T ( DISTINCT 73 
2c330 29 20 2b 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20  ) + + + COUNT ( 
2c340 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  * ) AS col1 FROM
2c350 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 34 0d 0a   tab0..----..4..
2c360 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2c370 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31  t..SELECT - col1
2c380 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
2c390 20 2b 20 32 30 20 49 53 20 4e 55 4c 4c 20 41 4e   + 20 IS NULL AN
2c3a0 44 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55  D NOT NULL IS NU
2c3b0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  LL..----....only
2c3c0 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
2c3d0 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
2c3e0 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
2c3f0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 38 38  owsort label-988
2c400 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2c410 54 20 2d 20 34 37 20 44 49 56 20 2b 20 39 36 20  T - 47 DIV + 96 
2c420 2b 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32  + + col1 AS col2
2c430 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
2c440 0d 0a 31 0d 0a 32 31 0d 0a 38 31 0d 0a 0d 0a 73  ..1..21..81....s
2c450 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2c460 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2c470 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2c480 62 65 6c 2d 39 38 38 0d 0a 53 45 4c 45 43 54 20  bel-988..SELECT 
2c490 44 49 53 54 49 4e 43 54 20 2d 20 34 37 20 2f 20  DISTINCT - 47 / 
2c4a0 2b 20 39 36 20 2b 20 2b 20 63 6f 6c 31 20 41 53  + 96 + + col1 AS
2c4b0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
2c4c0 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 32 31 0d 0a 38 31  .----..1..21..81
2c4d0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2c4e0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
2c4f0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
2c500 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 38 39  owsort label-989
2c510 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2c520 54 20 2b 20 33 20 2b 20 43 4f 55 4e 54 28 20 2a  T + 3 + COUNT( *
2c530 20 29 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72   ) FROM tab2 cor
2c540 30 0d 0a 2d 2d 2d 2d 0d 0a 36 0d 0a 0d 0a 73 6b  0..----..6....sk
2c550 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2c560 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2c570 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2c580 65 6c 2d 39 38 39 0d 0a 53 45 4c 45 43 54 20 44  el-989..SELECT D
2c590 49 53 54 49 4e 43 54 20 2b 20 33 20 2b 20 43 4f  ISTINCT + 3 + CO
2c5a0 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
2c5b0 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab2 cor0..----..
2c5c0 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  6....query II ro
2c5d0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
2c5e0 4c 20 2d 20 36 37 20 41 53 20 63 6f 6c 31 2c 20  L - 67 AS col1, 
2c5f0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
2c600 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36  S cor0..----..-6
2c610 37 0d 0a 35 31 0d 0a 2d 36 37 0d 0a 38 35 0d 0a  7..51..-67..85..
2c620 2d 36 37 0d 0a 39 31 0d 0a 0d 0a 71 75 65 72 79  -67..91....query
2c630 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
2c640 45 43 54 20 2b 20 33 31 20 41 53 20 63 6f 6c 32  ECT + 31 AS col2
2c650 2c 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c  , - col2 * + col
2c660 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
2c670 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 31 0d 0a 2d  or0..----..31..-
2c680 37 30 35 0d 0a 33 31 0d 0a 2d 38 37 30 0d 0a 33  705..31..-870..3
2c690 31 0d 0a 2d 39 36 30 33 0d 0a 0d 0a 71 75 65 72  1..-9603....quer
2c6a0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2c6b0 45 43 54 20 41 4c 4c 20 2d 20 37 34 20 2a 20 32  ECT ALL - 74 * 2
2c6c0 38 20 2a 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f  8 * - col2 AS co
2c6d0 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
2c6e0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 30 31  cor0..----..1201
2c6f0 37 36 0d 0a 34 37 36 35 36 0d 0a 38 32 38 38 30  76..47656..82880
2c700 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
2c710 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
2c720 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
2c730 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
2c740 20 4e 4f 54 20 2b 20 63 6f 6c 31 20 2b 20 2d 20   NOT + col1 + - 
2c750 37 34 20 2b 20 33 33 20 49 53 20 4e 4f 54 20 4e  74 + 33 IS NOT N
2c760 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
2c770 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
2c780 45 4c 45 43 54 20 38 35 20 41 53 20 63 6f 6c 32  ELECT 85 AS col2
2c790 2c 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c  , + col1 * + col
2c7a0 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  1 AS col0 FROM t
2c7b0 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
2c7c0 45 20 4e 4f 54 20 63 6f 6c 31 20 2b 20 2d 20 63  E NOT col1 + - c
2c7d0 6f 6c 31 20 42 45 54 57 45 45 4e 20 28 20 2d 20  ol1 BETWEEN ( - 
2c7e0 63 6f 6c 31 20 29 20 41 4e 44 20 2b 20 63 6f 6c  col1 ) AND + col
2c7f0 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  0..----....query
2c800 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2c810 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20  CT DISTINCT - + 
2c820 35 34 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  54 AS col2 FROM 
2c830 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
2c840 2d 2d 0d 0a 2d 35 34 0d 0a 0d 0a 6f 6e 6c 79 69  --..-54....onlyi
2c850 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
2c860 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20  ate syntax: DIV 
2c870 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
2c880 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
2c890 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 39  rowsort label-99
2c8a0 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  6..SELECT DISTIN
2c8b0 43 54 20 2b 20 28 20 2b 20 53 55 4d 28 20 2b 20  CT + ( + SUM( + 
2c8c0 63 6f 6c 32 20 29 20 29 20 44 49 56 20 2b 20 31  col2 ) ) DIV + 1
2c8d0 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
2c8e0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 0d 0a 0d  or0..----..13...
2c8f0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2c900 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2c910 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2c920 6c 61 62 65 6c 2d 39 39 36 0d 0a 53 45 4c 45 43  label-996..SELEC
2c930 54 20 44 49 53 54 49 4e 43 54 20 2b 20 28 20 2b  T DISTINCT + ( +
2c940 20 53 55 4d 20 28 20 2b 20 63 6f 6c 32 20 29 20   SUM ( + col2 ) 
2c950 29 20 2f 20 2b 20 31 32 20 46 52 4f 4d 20 74 61  ) / + 12 FROM ta
2c960 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
2c970 0d 0a 31 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..13....query I 
2c980 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2c990 32 38 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  28 FROM tab0 AS 
2c9a0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  cor0 WHERE NOT N
2c9b0 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ULL IS NULL..---
2c9c0 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
2c9d0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
2c9e0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
2c9f0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 39  rowsort label-99
2ca00 38 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 43 4f  8..SELECT - - CO
2ca10 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20 43 4f 55  UNT( * ) * + COU
2ca20 4e 54 28 20 2a 20 29 20 2d 20 34 34 20 46 52 4f  NT( * ) - 44 FRO
2ca30 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
2ca40 2d 2d 2d 2d 0d 0a 2d 33 35 0d 0a 0d 0a 73 6b 69  ----..-35....ski
2ca50 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2ca60 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2ca70 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2ca80 6c 2d 39 39 38 0d 0a 53 45 4c 45 43 54 20 2d 20  l-998..SELECT - 
2ca90 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20  - COUNT ( * ) * 
2caa0 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2d 20  + COUNT ( * ) - 
2cab0 34 34 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  44 FROM tab0 AS 
2cac0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 35 0d  cor0..----..-35.
2cad0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2cae0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44  # CAST syntax: D
2caf0 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71  ECIMAL type: ..q
2cb00 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2cb10 61 62 65 6c 2d 39 39 39 0d 0a 53 45 4c 45 43 54  abel-999..SELECT
2cb20 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   + CAST( NULL AS
2cb30 20 44 45 43 49 4d 41 4c 20 29 20 2f 20 2d 20 28   DECIMAL ) / - (
2cb40 20 2b 20 2d 20 28 20 63 6f 6c 30 20 29 20 29 20   + - ( col0 ) ) 
2cb50 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
2cb60 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  2..----..NULL..N
2cb70 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ULL..NULL....ski
2cb80 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2cb90 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2cba0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2cbb0 6c 2d 39 39 39 0d 0a 53 45 4c 45 43 54 20 2b 20  l-999..SELECT + 
2cbc0 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52  CAST ( NULL AS R
2cbd0 45 41 4c 20 29 20 2f 20 2d 20 28 20 2b 20 2d 20  EAL ) / - ( + - 
2cbe0 28 20 63 6f 6c 30 20 29 20 29 20 41 53 20 63 6f  ( col0 ) ) AS co
2cbf0 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
2cc00 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
2cc10 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49  NULL....query II
2cc20 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2cc30 20 41 4c 4c 20 63 6f 6c 31 2c 20 2b 20 33 33 20   ALL col1, + 33 
2cc40 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2cc50 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 33 33 0d  1..----..14..33.
2cc60 0a 34 37 0d 0a 33 33 0d 0a 35 0d 0a 33 33 0d 0a  .47..33..5..33..
2cc70 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2cc80 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
2cc90 43 54 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  CT col2 FROM tab
2cca0 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e 4f 54  1 WHERE NULL NOT
2ccb0 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e   BETWEEN NULL AN
2ccc0 44 20 2d 20 39 38 20 2a 20 63 6f 6c 31 20 2a 20  D - 98 * col1 * 
2ccd0 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  + col2..----....
2cce0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2ccf0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2cd00 20 2d 20 37 35 20 2a 20 63 6f 6c 31 20 2b 20 2d   - 75 * col1 + -
2cd10 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
2cd20 0a 2d 2d 2d 2d 0d 0a 2d 31 35 38 35 0d 0a 2d 31  .----..-1585..-1
2cd30 37 34 0d 0a 2d 36 31 32 32 0d 0a 0d 0a 71 75 65  74..-6122....que
2cd40 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2cd50 4c 45 43 54 20 2b 20 63 6f 6c 31 20 46 52 4f 4d  LECT + col1 FROM
2cd60 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20   tab1 WHERE NOT 
2cd70 63 6f 6c 31 20 3c 3e 20 2b 20 63 6f 6c 30 0d 0a  col1 <> + col0..
2cd80 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
2cd90 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2cda0 41 4c 4c 20 35 37 20 2b 20 2d 20 2b 20 63 6f 6c  ALL 57 + - + col
2cdb0 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
2cdc0 2d 0d 0a 2d 31 38 0d 0a 2d 37 0d 0a 31 31 0d 0a  -..-18..-7..11..
2cdd0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2cde0 74 0d 0a 53 45 4c 45 43 54 20 38 35 20 2b 20 39  t..SELECT 85 + 9
2cdf0 34 20 2a 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32  4 * col1 AS col2
2ce00 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
2ce10 0d 0a 31 37 39 0d 0a 32 30 35 39 0d 0a 37 36 39  ..179..2059..769
2ce20 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  9....query III r
2ce30 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
2ce40 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
2ce50 20 4e 4f 54 20 2d 20 2b 20 63 6f 6c 32 20 3c 20   NOT - + col2 < 
2ce60 34 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70  41..----....skip
2ce70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
2ce80 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
2ce90 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
2cea0 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
2ceb0 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
2cec0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
2ced0 54 49 4e 43 54 20 2d 20 28 20 2b 20 2d 20 63 6f  TINCT - ( + - co
2cee0 6c 32 20 29 20 2b 20 2b 20 2d 20 63 6f 6c 32 20  l2 ) + + - col2 
2cef0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col1 FROM tab1..
2cf00 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79  ----..0....query
2cf10 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
2cf20 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
2cf30 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
2cf40 2b 20 63 6f 6c 31 20 3e 3d 20 2b 20 2b 20 35 33  + col1 >= + + 53
2cf50 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
2cf60 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2cf70 54 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 2b 20 34  T + col1 + - + 4
2cf80 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
2cf90 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31 30 0d  r0..----..1..10.
2cfa0 0a 34 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .43....onlyif my
2cfb0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
2cfc0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
2cfd0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2cfe0 31 30 31 30 0d 0a 53 45 4c 45 43 54 20 4d 41 58  1010..SELECT MAX
2cff0 28 20 2b 20 34 20 29 20 63 6f 6c 32 20 46 52 4f  ( + 4 ) col2 FRO
2d000 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
2d010 2d 2d 2d 2d 0d 0a 34 0d 0a 0d 0a 73 6b 69 70 69  ----..4....skipi
2d020 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2d030 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66  mpatible..skipif
2d040 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
2d050 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
2d060 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
2d070 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
2d080 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
2d090 72 74 20 6c 61 62 65 6c 2d 31 30 31 30 0d 0a 53  rt label-1010..S
2d0a0 45 4c 45 43 54 20 4d 41 58 20 28 20 2b 20 34 20  ELECT MAX ( + 4 
2d0b0 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  ) col2 FROM tab0
2d0c0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2d0d0 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  4....onlyif mysq
2d0e0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
2d0f0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
2d100 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2d110 31 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43  11..SELECT ALL C
2d120 4f 55 4e 54 28 20 2d 20 2b 20 37 36 20 29 20 63  OUNT( - + 76 ) c
2d130 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
2d140 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   cor0..----..3..
2d150 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2d160 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2d170 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
2d180 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
2d190 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
2d1a0 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
2d1b0 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
2d1c0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2d1d0 31 30 31 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1011..SELECT ALL
2d1e0 20 43 4f 55 4e 54 20 28 20 2d 20 2b 20 37 36 20   COUNT ( - + 76 
2d1f0 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  ) col0 FROM tab2
2d200 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2d210 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  3....query III r
2d220 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
2d230 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
2d240 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
2d250 45 20 4e 4f 54 20 63 6f 6c 31 20 49 4e 20 28 20  E NOT col1 IN ( 
2d260 2d 20 63 6f 6c 30 2c 20 2b 20 63 6f 6c 31 20 29  - col0, + col1 )
2d270 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
2d280 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2d290 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20  T DISTINCT col1 
2d2a0 2b 20 2b 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20  + + - col2 FROM 
2d2b0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
2d2c0 2d 2d 0d 0a 32 38 0d 0a 33 37 0d 0a 39 0d 0a 0d  --..28..37..9...
2d2d0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2d2e0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2d2f0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2d300 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31 34 0d 0a  ort label-1014..
2d310 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 53 55 4d  SELECT ALL - SUM
2d320 28 20 2d 20 2d 20 63 6f 6c 32 20 29 20 46 52 4f  ( - - col2 ) FRO
2d330 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
2d340 2d 2d 2d 2d 0d 0a 2d 31 32 31 0d 0a 0d 0a 73 6b  ----..-121....sk
2d350 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2d360 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2d370 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2d380 65 6c 2d 31 30 31 34 0d 0a 53 45 4c 45 43 54 20  el-1014..SELECT 
2d390 41 4c 4c 20 2d 20 53 55 4d 20 28 20 2d 20 2d 20  ALL - SUM ( - - 
2d3a0 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 32  col2 ) FROM tab2
2d3b0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2d3c0 2d 31 32 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49  -121....query II
2d3d0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2d3e0 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 31 20 2b   col1 * + col1 +
2d3f0 20 2b 20 37 39 20 2d 20 37 39 20 2b 20 63 6f 6c   + 79 - 79 + col
2d400 31 20 2a 20 2b 20 2d 20 32 37 20 2a 20 2d 20 2b  1 * + - 27 * - +
2d410 20 38 34 20 2a 20 2b 20 2d 20 36 38 20 2a 20 31   84 * + - 68 * 1
2d420 35 20 41 53 20 63 6f 6c 30 2c 20 63 6f 6c 32 20  5 AS col0, col2 
2d430 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
2d440 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
2d450 0a 2d 31 38 37 33 37 35 35 39 39 0d 0a 34 37 0d  .-187375599..47.
2d460 0a 2d 32 33 31 33 33 35 39 0d 0a 39 39 0d 0a 2d  .-2313359..99..-
2d470 34 38 35 38 30 31 31 39 0d 0a 31 30 0d 0a 0d 0a  48580119..10....
2d480 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2d490 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 38 39  .SELECT ALL - 89
2d4a0 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
2d4b0 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c   NOT NULL IS NUL
2d4c0 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  L..----....onlyi
2d4d0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
2d4e0 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20  ate syntax: DIV 
2d4f0 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
2d500 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
2d510 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2d520 31 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  17..SELECT DISTI
2d530 4e 43 54 20 2d 20 37 31 20 2a 20 2d 20 4d 41 58  NCT - 71 * - MAX
2d540 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20  ( DISTINCT col1 
2d550 44 49 56 20 2b 20 63 6f 6c 31 20 29 20 46 52 4f  DIV + col1 ) FRO
2d560 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 37 31  M tab1..----..71
2d570 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2d580 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2d590 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
2d5a0 72 74 20 6c 61 62 65 6c 2d 31 30 31 37 0d 0a 53  rt label-1017..S
2d5b0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
2d5c0 20 37 31 20 2a 20 2d 20 4d 41 58 20 28 20 44 49   71 * - MAX ( DI
2d5d0 53 54 49 4e 43 54 20 63 6f 6c 31 20 2f 20 2b 20  STINCT col1 / + 
2d5e0 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 31  col1 ) FROM tab1
2d5f0 0d 0a 2d 2d 2d 2d 0d 0a 37 31 0d 0a 0d 0a 6f 6e  ..----..71....on
2d600 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
2d610 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
2d620 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2d630 20 6c 61 62 65 6c 2d 31 30 31 38 0d 0a 53 45 4c   label-1018..SEL
2d640 45 43 54 20 2d 20 53 55 4d 28 20 63 6f 6c 32 20  ECT - SUM( col2 
2d650 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
2d660 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 36 0d  ab0..----..-156.
2d670 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2d680 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2d690 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2d6a0 74 20 6c 61 62 65 6c 2d 31 30 31 38 0d 0a 53 45  t label-1018..SE
2d6b0 4c 45 43 54 20 2d 20 53 55 4d 20 28 20 63 6f 6c  LECT - SUM ( col
2d6c0 32 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  2 ) AS col0 FROM
2d6d0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35   tab0..----..-15
2d6e0 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  6....query III r
2d6f0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
2d700 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
2d710 20 63 6f 6c 32 20 2a 20 63 6f 6c 32 20 3d 20 63   col2 * col2 = c
2d720 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ol1..----....onl
2d730 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
2d740 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49  egate syntax: DI
2d750 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
2d760 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
2d770 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2d780 31 30 32 30 0d 0a 53 45 4c 45 43 54 20 36 35 20  1020..SELECT 65 
2d790 44 49 56 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  DIV - COUNT( * )
2d7a0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
2d7b0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 0d 0a 0d  b2..----..-21...
2d7c0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2d7d0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2d7e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2d7f0 6c 61 62 65 6c 2d 31 30 32 30 0d 0a 53 45 4c 45  label-1020..SELE
2d800 43 54 20 36 35 20 2f 20 2d 20 43 4f 55 4e 54 20  CT 65 / - COUNT 
2d810 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ( * ) AS col1 FR
2d820 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
2d830 32 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  21....onlyif mys
2d840 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
2d850 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  : aggregate synt
2d860 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
2d870 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d   DECIMAL type: .
2d880 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2d890 20 6c 61 62 65 6c 2d 31 30 32 31 0d 0a 53 45 4c   label-1021..SEL
2d8a0 45 43 54 20 37 37 20 2b 20 2b 20 43 41 53 54 28  ECT 77 + + CAST(
2d8b0 20 2d 20 43 41 53 54 28 20 43 41 53 54 28 20 2d   - CAST( CAST( -
2d8c0 20 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20 2d   MAX( DISTINCT -
2d8d0 20 63 6f 6c 30 20 29 20 41 53 20 44 45 43 49 4d   col0 ) AS DECIM
2d8e0 41 4c 20 29 20 41 53 20 53 49 47 4e 45 44 20 29  AL ) AS SIGNED )
2d8f0 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20   AS SIGNED ) AS 
2d900 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col2 FROM tab1..
2d910 2d 2d 2d 2d 0d 0a 32 36 0d 0a 0d 0a 73 6b 69 70  ----..26....skip
2d920 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2d930 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2d940 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2d950 2d 31 30 32 31 0d 0a 53 45 4c 45 43 54 20 37 37  -1021..SELECT 77
2d960 20 2b 20 2b 20 43 41 53 54 20 28 20 2d 20 43 41   + + CAST ( - CA
2d970 53 54 20 28 20 43 41 53 54 20 28 20 2d 20 4d 41  ST ( CAST ( - MA
2d980 58 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 63  X ( DISTINCT - c
2d990 6f 6c 30 20 29 20 41 53 20 52 45 41 4c 20 29 20  ol0 ) AS REAL ) 
2d9a0 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20  AS INTEGER ) AS 
2d9b0 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c  INTEGER ) AS col
2d9c0 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  2 FROM tab1..---
2d9d0 2d 0d 0a 32 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -..26....onlyif 
2d9e0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
2d9f0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
2da00 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2da10 6c 2d 31 30 32 32 0d 0a 53 45 4c 45 43 54 20 44  l-1022..SELECT D
2da20 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 28 20 2a  ISTINCT COUNT( *
2da30 20 29 20 2b 20 2b 20 33 36 20 41 53 20 63 6f 6c   ) + + 36 AS col
2da40 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
2da50 2d 0d 0a 33 39 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..39....skipif 
2da60 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2da70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2da80 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2da90 32 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  22..SELECT DISTI
2daa0 4e 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  NCT COUNT ( * ) 
2dab0 2b 20 2b 20 33 36 20 41 53 20 63 6f 6c 31 20 46  + + 36 AS col1 F
2dac0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
2dad0 33 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  39....onlyif mys
2dae0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
2daf0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
2db00 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2db10 30 32 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  023..SELECT DIST
2db20 49 4e 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20  INCT - COUNT( * 
2db30 29 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  ) FROM tab0 WHER
2db40 45 20 2b 20 63 6f 6c 31 20 3e 3d 20 31 38 0d 0a  E + col1 >= 18..
2db50 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 0d 0a 73 6b 69 70  ----..-2....skip
2db60 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2db70 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2db80 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2db90 2d 31 30 32 33 0d 0a 53 45 4c 45 43 54 20 44 49  -1023..SELECT DI
2dba0 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 20 28  STINCT - COUNT (
2dbb0 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20 57   * ) FROM tab0 W
2dbc0 48 45 52 45 20 2b 20 63 6f 6c 31 20 3e 3d 20 31  HERE + col1 >= 1
2dbd0 38 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 0d 0a 6f  8..----..-2....o
2dbe0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
2dbf0 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
2dc00 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
2dc10 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2dc20 31 30 32 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1024..SELECT ALL
2dc30 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   + CAST( NULL AS
2dc40 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c   SIGNED ) AS col
2dc50 31 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  1 FROM tab0 WHER
2dc60 45 20 28 20 63 6f 6c 30 20 2b 20 2d 20 39 33 20  E ( col0 + - 93 
2dc70 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  ) IS NOT NULL..-
2dc80 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
2dc90 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
2dca0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2dcb0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2dcc0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2dcd0 32 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  24..SELECT ALL +
2dce0 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
2dcf0 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c  INTEGER ) AS col
2dd00 31 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  1 FROM tab0 WHER
2dd10 45 20 28 20 63 6f 6c 30 20 2b 20 2d 20 39 33 20  E ( col0 + - 93 
2dd20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  ) IS NOT NULL..-
2dd30 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
2dd40 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .NULL....onlyif 
2dd50 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
2dd60 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
2dd70 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2dd80 6c 2d 31 30 32 35 0d 0a 53 45 4c 45 43 54 20 43  l-1025..SELECT C
2dd90 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2d 20 34 32  OUNT( * ) * - 42
2dda0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
2ddb0 0a 2d 2d 2d 2d 0d 0a 2d 31 32 36 0d 0a 0d 0a 73  .----..-126....s
2ddc0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2ddd0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
2dde0 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
2ddf0 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
2de00 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
2de10 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
2de20 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
2de30 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 32  owsort label-102
2de40 35 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20  5..SELECT COUNT 
2de50 28 20 2a 20 29 20 2a 20 2d 20 34 32 20 63 6f 6c  ( * ) * - 42 col
2de60 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
2de70 2d 0d 0a 2d 31 32 36 0d 0a 0d 0a 6f 6e 6c 79 69  -..-126....onlyi
2de80 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
2de90 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
2dea0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2deb0 62 65 6c 2d 31 30 32 36 0d 0a 53 45 4c 45 43 54  bel-1026..SELECT
2dec0 20 2d 20 39 32 20 2a 20 2b 20 53 55 4d 28 20 41   - 92 * + SUM( A
2ded0 4c 4c 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c  LL col2 ) AS col
2dee0 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  2 FROM tab2..---
2def0 2d 0d 0a 2d 31 31 31 33 32 0d 0a 0d 0a 73 6b 69  -..-11132....ski
2df00 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2df10 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2df20 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2df30 6c 2d 31 30 32 36 0d 0a 53 45 4c 45 43 54 20 2d  l-1026..SELECT -
2df40 20 39 32 20 2a 20 2b 20 53 55 4d 20 28 20 41 4c   92 * + SUM ( AL
2df50 4c 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 32  L col2 ) AS col2
2df60 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
2df70 0d 0a 2d 31 31 31 33 32 0d 0a 0d 0a 71 75 65 72  ..-11132....quer
2df80 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2df90 45 43 54 20 34 34 20 2a 20 63 6f 6c 30 20 41 53  ECT 44 * col0 AS
2dfa0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
2dfb0 0a 2d 2d 2d 2d 0d 0a 32 30 32 34 0d 0a 32 38 31  .----..2024..281
2dfc0 36 0d 0a 33 33 30 30 0d 0a 0d 0a 71 75 65 72 79  6..3300....query
2dfd0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2dfe0 43 54 20 2d 20 31 38 20 41 53 20 63 6f 6c 32 20  CT - 18 AS col2 
2dff0 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
2e000 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20  NOT NULL IS NOT 
2e010 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38 0d  NULL..----..-18.
2e020 0a 2d 31 38 0d 0a 2d 31 38 0d 0a 0d 0a 71 75 65  .-18..-18....que
2e030 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2e040 4c 45 43 54 20 63 6f 6c 31 20 46 52 4f 4d 20 74  LECT col1 FROM t
2e050 61 62 30 20 57 48 45 52 45 20 28 20 4e 55 4c 4c  ab0 WHERE ( NULL
2e060 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a   ) IS NOT NULL..
2e070 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
2e080 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2e090 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48  T * FROM tab0 WH
2e0a0 45 52 45 20 4e 4f 54 20 2d 20 38 20 4e 4f 54 20  ERE NOT - 8 NOT 
2e0b0 49 4e 20 28 20 2b 20 34 38 20 29 0d 0a 2d 2d 2d  IN ( + 48 )..---
2e0c0 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
2e0d0 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
2e0e0 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
2e0f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2e100 6c 61 62 65 6c 2d 31 30 33 31 0d 0a 53 45 4c 45  label-1031..SELE
2e110 43 54 20 2d 20 34 37 20 44 49 56 20 63 6f 6c 30  CT - 47 DIV col0
2e120 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   + col0 FROM tab
2e130 30 20 57 48 45 52 45 20 28 20 2d 20 37 39 20 29  0 WHERE ( - 79 )
2e140 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
2e150 2d 2d 0d 0a 31 32 0d 0a 38 37 0d 0a 39 37 0d 0a  --..12..87..97..
2e160 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2e170 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2e180 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2e190 20 6c 61 62 65 6c 2d 31 30 33 31 0d 0a 53 45 4c   label-1031..SEL
2e1a0 45 43 54 20 2d 20 34 37 20 2f 20 63 6f 6c 30 20  ECT - 47 / col0 
2e1b0 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  + col0 FROM tab0
2e1c0 20 57 48 45 52 45 20 28 20 2d 20 37 39 20 29 20   WHERE ( - 79 ) 
2e1d0 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
2e1e0 2d 0d 0a 31 32 0d 0a 38 37 0d 0a 39 37 0d 0a 0d  -..12..87..97...
2e1f0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
2e200 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
2e210 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
2e220 20 4e 4f 54 20 28 20 2d 20 63 6f 6c 31 20 29 20   NOT ( - col1 ) 
2e230 3e 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d  > ( NULL )..----
2e240 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2e250 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  ort..SELECT - co
2e260 6c 31 20 2d 20 36 37 20 41 53 20 63 6f 6c 32 20  l1 - 67 AS col2 
2e270 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
2e280 0a 2d 31 31 38 0d 0a 2d 31 33 34 0d 0a 2d 31 34  .-118..-134..-14
2e290 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  4....query I row
2e2a0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
2e2b0 20 28 20 2d 20 63 6f 6c 32 20 29 20 2a 20 31 34   ( - col2 ) * 14
2e2c0 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20   + col0 AS col0 
2e2d0 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
2e2e0 0a 2d 31 32 39 33 0d 0a 2d 37 34 31 0d 0a 2d 38  .-1293..-741..-8
2e2f0 36 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  61....query I ro
2e300 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
2e310 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20 2d 20  STINCT + col2 - 
2e320 35 35 20 2a 20 2b 20 63 6f 6c 32 20 41 53 20 63  55 * + col2 AS c
2e330 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
2e340 2d 2d 2d 0d 0a 2d 32 35 33 38 0d 0a 2d 35 33 34  ---..-2538..-534
2e350 36 0d 0a 2d 35 34 30 0d 0a 0d 0a 71 75 65 72 79  6..-540....query
2e360 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
2e370 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  LECT * FROM tab2
2e380 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20   WHERE NOT col0 
2e390 3e 3d 20 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d  >= - col2..----.
2e3a0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2e3b0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
2e3c0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
2e3d0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 33 37  wsort label-1037
2e3e0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2e3f0 54 20 36 34 20 2a 20 43 4f 55 4e 54 28 20 2a 20  T 64 * COUNT( * 
2e400 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  ) FROM tab2 AS c
2e410 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 32 0d 0a  or0..----..192..
2e420 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2e430 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2e440 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2e450 20 6c 61 62 65 6c 2d 31 30 33 37 0d 0a 53 45 4c   label-1037..SEL
2e460 45 43 54 20 44 49 53 54 49 4e 43 54 20 36 34 20  ECT DISTINCT 64 
2e470 2a 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52  * COUNT ( * ) FR
2e480 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
2e490 0a 2d 2d 2d 2d 0d 0a 31 39 32 0d 0a 0d 0a 73 6b  .----..192....sk
2e4a0 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
2e4b0 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
2e4c0 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
2e4d0 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
2e4e0 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
2e4f0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
2e500 4c 4c 20 33 20 63 6f 6c 30 20 46 52 4f 4d 20 74  LL 3 col0 FROM t
2e510 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab0 cor0..----..
2e520 33 0d 0a 33 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69  3..3..3....onlyi
2e530 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
2e540 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
2e550 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
2e560 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 33 39  wsort label-1039
2e570 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54 28  ..SELECT + CAST(
2e580 20 63 6f 6c 31 20 41 53 20 53 49 47 4e 45 44 20   col1 AS SIGNED 
2e590 29 20 2a 20 63 6f 6c 31 20 2b 20 28 20 2b 20 43  ) * col1 + ( + C
2e5a0 41 53 54 28 20 2d 20 63 6f 6c 30 20 41 53 20 53  AST( - col0 AS S
2e5b0 49 47 4e 45 44 20 29 20 2b 20 31 36 20 29 20 41  IGNED ) + 16 ) A
2e5c0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
2e5d0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
2e5e0 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  col2 IS NULL..--
2e5f0 2d 2d 0d 0a 2d 38 30 0d 0a 33 37 30 0d 0a 36 35  --..-80..370..65
2e600 36 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  62....skipif mys
2e610 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2e620 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2e630 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 33 39 0d  sort label-1039.
2e640 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54 20 28  .SELECT + CAST (
2e650 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45 52   col1 AS INTEGER
2e660 20 29 20 2a 20 63 6f 6c 31 20 2b 20 28 20 2b 20   ) * col1 + ( + 
2e670 43 41 53 54 20 28 20 2d 20 63 6f 6c 30 20 41 53  CAST ( - col0 AS
2e680 20 49 4e 54 45 47 45 52 20 29 20 2b 20 31 36 20   INTEGER ) + 16 
2e690 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
2e6a0 61 62 30 20 63 6f 72 30 20 57 48 45 52 45 20 4e  ab0 cor0 WHERE N
2e6b0 4f 54 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d  OT col2 IS NULL.
2e6c0 0a 2d 2d 2d 2d 0d 0a 2d 38 30 0d 0a 33 37 30 0d  .----..-80..370.
2e6d0 0a 36 35 36 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .6562....onlyif 
2e6e0 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
2e6f0 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70  tax: DECIMAL typ
2e700 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72  e: ..query III r
2e710 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 34  owsort label-104
2e720 30 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  0..SELECT * FROM
2e730 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20   tab0 WHERE NOT 
2e740 2b 20 36 39 20 2a 20 63 6f 6c 31 20 2b 20 2b 20  + 69 * col1 + + 
2e750 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44 45  CAST( NULL AS DE
2e760 43 49 4d 41 4c 20 29 20 49 53 20 4e 4f 54 20 4e  CIMAL ) IS NOT N
2e770 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  ULL..----..9 val
2e780 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
2e790 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61  4b42765dff94eaaa
2e7a0 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d  46040e537fb43b7.
2e7b0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2e7c0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2e7d0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
2e7e0 6f 72 74 20 6c 61 62 65 6c 2d 31 30 34 30 0d 0a  ort label-1040..
2e7f0 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
2e800 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 36  b0 WHERE NOT + 6
2e810 39 20 2a 20 63 6f 6c 31 20 2b 20 2b 20 43 41 53  9 * col1 + + CAS
2e820 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c  T ( NULL AS REAL
2e830 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a   ) IS NOT NULL..
2e840 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
2e850 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37  ashing to c4b427
2e860 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30  65dff94eaaa46040
2e870 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75  e537fb43b7....qu
2e880 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2e890 45 4c 45 43 54 20 38 39 20 41 53 20 63 6f 6c 31  ELECT 89 AS col1
2e8a0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
2e8b0 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
2e8c0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  b0..----..9 valu
2e8d0 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 35 63  es hashing to 5c
2e8e0 38 34 32 38 65 39 66 31 65 37 64 65 33 64 30 39  8428e9f1e7de3d09
2e8f0 63 62 30 38 31 34 62 34 63 63 31 37 34 33 0d 0a  cb0814b4cc1743..
2e900 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2e910 74 0d 0a 53 45 4c 45 43 54 20 33 34 20 2b 20 28  t..SELECT 34 + (
2e920 20 2b 20 63 6f 6c 31 20 29 20 2a 20 2d 20 34 36   + col1 ) * - 46
2e930 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
2e940 62 31 20 57 48 45 52 45 20 4e 4f 54 20 28 20 63  b1 WHERE NOT ( c
2e950 6f 6c 31 20 29 20 3c 20 28 20 2d 20 63 6f 6c 30  ol1 ) < ( - col0
2e960 20 29 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 36 0d 0a   )..----..-196..
2e970 2d 32 31 32 38 0d 0a 2d 36 31 30 0d 0a 0d 0a 6f  -2128..-610....o
2e980 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
2e990 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
2e9a0 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
2e9b0 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
2e9c0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2e9d0 6c 2d 31 30 34 33 0d 0a 53 45 4c 45 43 54 20 41  l-1043..SELECT A
2e9e0 4c 4c 20 2d 20 2b 20 4d 49 4e 28 20 41 4c 4c 20  LL - + MIN( ALL 
2e9f0 32 37 20 29 20 44 49 56 20 33 37 20 46 52 4f 4d  27 ) DIV 37 FROM
2ea00 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
2ea10 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  ---..0....skipif
2ea20 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2ea30 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2ea40 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2ea50 30 34 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  043..SELECT ALL 
2ea60 2d 20 2b 20 4d 49 4e 20 28 20 41 4c 4c 20 32 37  - + MIN ( ALL 27
2ea70 20 29 20 2f 20 33 37 20 46 52 4f 4d 20 74 61 62   ) / 37 FROM tab
2ea80 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
2ea90 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  .0....skipif pos
2eaa0 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
2eab0 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
2eac0 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
2ead0 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
2eae0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2eaf0 53 45 4c 45 43 54 20 2d 20 2d 20 36 20 2a 20 2d  SELECT - - 6 * -
2eb00 20 63 6f 6c 32 20 63 6f 6c 31 20 46 52 4f 4d 20   col2 col1 FROM 
2eb10 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
2eb20 0a 2d 32 38 32 0d 0a 2d 35 39 34 0d 0a 2d 36 30  .-282..-594..-60
2eb30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2eb40 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
2eb50 2b 20 28 20 37 30 20 29 20 2a 20 37 32 20 46 52  + ( 70 ) * 72 FR
2eb60 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
2eb70 0a 2d 2d 2d 2d 0d 0a 35 30 34 30 0d 0a 35 30 34  .----..5040..504
2eb80 30 0d 0a 35 30 34 30 0d 0a 0d 0a 71 75 65 72 79  0..5040....query
2eb90 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
2eba0 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
2ebb0 74 61 62 32 20 63 6f 72 30 20 57 48 45 52 45 20  tab2 cor0 WHERE 
2ebc0 4e 4f 54 20 2d 20 63 6f 6c 30 20 2b 20 34 37 20  NOT - col0 + 47 
2ebd0 4e 4f 54 20 42 45 54 57 45 45 4e 20 2d 20 38 36  NOT BETWEEN - 86
2ebe0 20 2a 20 39 36 20 2b 20 32 36 20 2a 20 2d 20 63   * 96 + 26 * - c
2ebf0 6f 6c 30 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d  ol0 AND NULL..--
2ec00 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  --....query III 
2ec10 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2ec20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  * FROM tab0 AS c
2ec30 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  or0 WHERE NOT + 
2ec40 38 38 20 3e 3d 20 2b 20 63 6f 6c 31 20 2a 20 63  88 >= + col1 * c
2ec50 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  ol2..----..9 val
2ec60 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
2ec70 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61  4b42765dff94eaaa
2ec80 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d  46040e537fb43b7.
2ec90 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2eca0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
2ecb0 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
2ecc0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
2ecd0 6c 61 62 65 6c 2d 31 30 34 38 0d 0a 53 45 4c 45  label-1048..SELE
2ece0 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
2ecf0 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
2ed00 20 4e 4f 54 20 28 20 43 41 53 54 28 20 4e 55 4c   NOT ( CAST( NUL
2ed10 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20  L AS SIGNED ) ) 
2ed20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
2ed30 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
2ed40 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35 64  ing to c4b42765d
2ed50 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35 33  ff94eaaa46040e53
2ed60 37 66 62 34 33 62 37 0d 0a 0d 0a 73 6b 69 70 69  7fb43b7....skipi
2ed70 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2ed80 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2ed90 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
2eda0 6c 2d 31 30 34 38 0d 0a 53 45 4c 45 43 54 20 41  l-1048..SELECT A
2edb0 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41  LL * FROM tab0 A
2edc0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
2edd0 20 28 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   ( CAST ( NULL A
2ede0 53 20 49 4e 54 45 47 45 52 20 29 20 29 20 49 53  S INTEGER ) ) IS
2edf0 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
2ee00 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
2ee10 67 20 74 6f 20 63 34 62 34 32 37 36 35 64 66 66  g to c4b42765dff
2ee20 39 34 65 61 61 61 34 36 30 34 30 65 35 33 37 66  94eaaa46040e537f
2ee30 62 34 33 62 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  b43b7....onlyif 
2ee40 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
2ee50 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
2ee60 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2ee70 6c 2d 31 30 34 39 0d 0a 53 45 4c 45 43 54 20 2b  l-1049..SELECT +
2ee80 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20   - COUNT( * ) * 
2ee90 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f  COUNT( * ) AS co
2eea0 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
2eeb0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a  cor0..----..-9..
2eec0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2eed0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2eee0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2eef0 20 6c 61 62 65 6c 2d 31 30 34 39 0d 0a 53 45 4c   label-1049..SEL
2ef00 45 43 54 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20  ECT + - COUNT ( 
2ef10 2a 20 29 20 2a 20 43 4f 55 4e 54 20 28 20 2a 20  * ) * COUNT ( * 
2ef20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
2ef30 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
2ef40 2d 0d 0a 2d 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -..-9....onlyif 
2ef50 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
2ef60 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
2ef70 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  : ..query III ro
2ef80 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35 30  wsort label-1050
2ef90 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
2efa0 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
2efb0 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20  RE NOT ( NULL ) 
2efc0 42 45 54 57 45 45 4e 20 28 20 63 6f 6c 30 20 29  BETWEEN ( col0 )
2efd0 20 41 4e 44 20 2b 20 43 41 53 54 28 20 2d 20 43   AND + CAST( - C
2efe0 41 53 54 28 20 39 33 20 41 53 20 53 49 47 4e 45  AST( 93 AS SIGNE
2eff0 44 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 0d  D ) AS SIGNED ).
2f000 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
2f010 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2f020 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
2f030 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2f040 31 30 35 30 0d 0a 53 45 4c 45 43 54 20 2a 20 46  1050..SELECT * F
2f050 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
2f060 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c   WHERE NOT ( NUL
2f070 4c 20 29 20 42 45 54 57 45 45 4e 20 28 20 63 6f  L ) BETWEEN ( co
2f080 6c 30 20 29 20 41 4e 44 20 2b 20 43 41 53 54 20  l0 ) AND + CAST 
2f090 28 20 2d 20 43 41 53 54 20 28 20 39 33 20 41 53  ( - CAST ( 93 AS
2f0a0 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 49 4e   INTEGER ) AS IN
2f0b0 54 45 47 45 52 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d  TEGER )..----...
2f0c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2f0d0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2f0e0 54 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 30 20  T col2 * + col0 
2f0f0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
2f100 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
2f110 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20  NOT NULL IS NOT 
2f120 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 30 35 38  NULL..----..1058
2f130 0d 0a 32 35 36 30 0d 0a 34 33 35 30 0d 0a 0d 0a  ..2560..4350....
2f140 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2f150 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2a  .SELECT - col2 *
2f160 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
2f170 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b  cor0 WHERE NOT +
2f180 20 36 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d   61 IS NOT NULL.
2f190 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
2f1a0 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
2f1b0 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
2f1c0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2f1d0 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35 33 0d 0a  ort label-1053..
2f1e0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2f1f0 2d 20 39 33 20 44 49 56 20 63 6f 6c 32 20 46 52  - 93 DIV col2 FR
2f200 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
2f210 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 30 0d 0a 0d 0a  .----..-1..0....
2f220 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2f230 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2f240 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2f250 61 62 65 6c 2d 31 30 35 33 0d 0a 53 45 4c 45 43  abel-1053..SELEC
2f260 54 20 44 49 53 54 49 4e 43 54 20 2d 20 39 33 20  T DISTINCT - 93 
2f270 2f 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  / col2 FROM tab1
2f280 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2f290 2d 31 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49  -1..0....query I
2f2a0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2f2b0 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   - col0 FROM tab
2f2c0 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2d 20  0 WHERE NOT ( - 
2f2d0 63 6f 6c 31 20 2a 20 63 6f 6c 31 20 29 20 3e 3d  col1 * col1 ) >=
2f2e0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   NULL..----....o
2f2f0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
2f300 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
2f310 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2f320 74 20 6c 61 62 65 6c 2d 31 30 35 35 0d 0a 53 45  t label-1055..SE
2f330 4c 45 43 54 20 41 4c 4c 20 28 20 2b 20 43 4f 55  LECT ALL ( + COU
2f340 4e 54 28 20 2a 20 29 20 29 20 41 53 20 63 6f 6c  NT( * ) ) AS col
2f350 32 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  2 FROM tab2 WHER
2f360 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f  E NOT NULL IS NO
2f370 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  T NULL..----..3.
2f380 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2f390 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2f3a0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2f3b0 74 20 6c 61 62 65 6c 2d 31 30 35 35 0d 0a 53 45  t label-1055..SE
2f3c0 4c 45 43 54 20 41 4c 4c 20 28 20 2b 20 43 4f 55  LECT ALL ( + COU
2f3d0 4e 54 20 28 20 2a 20 29 20 29 20 41 53 20 63 6f  NT ( * ) ) AS co
2f3e0 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45  l2 FROM tab2 WHE
2f3f0 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e  RE NOT NULL IS N
2f400 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33  OT NULL..----..3
2f410 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2f420 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
2f430 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
2f440 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35  owsort label-105
2f450 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  6..SELECT DISTIN
2f460 43 54 20 2b 20 4d 49 4e 28 20 2b 20 63 6f 6c 30  CT + MIN( + col0
2f470 20 29 20 2b 20 32 37 20 41 53 20 63 6f 6c 32 20   ) + 27 AS col2 
2f480 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
2f490 0a 37 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .78....skipif my
2f4a0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2f4b0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
2f4c0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35 36  wsort label-1056
2f4d0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2f4e0 54 20 2b 20 4d 49 4e 20 28 20 2b 20 63 6f 6c 30  T + MIN ( + col0
2f4f0 20 29 20 2b 20 32 37 20 41 53 20 63 6f 6c 32 20   ) + 27 AS col2 
2f500 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
2f510 0a 37 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .78....onlyif my
2f520 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
2f530 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
2f540 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2f550 31 30 35 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1057..SELECT ALL
2f560 20 43 4f 55 4e 54 28 20 63 6f 6c 32 20 29 20 2a   COUNT( col2 ) *
2f570 20 37 32 20 2b 20 2d 20 38 36 20 41 53 20 63 6f   72 + - 86 AS co
2f580 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l1 FROM tab0..--
2f590 2d 2d 0d 0a 31 33 30 0d 0a 0d 0a 73 6b 69 70 69  --..130....skipi
2f5a0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2f5b0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2f5c0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2f5d0 31 30 35 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1057..SELECT ALL
2f5e0 20 43 4f 55 4e 54 20 28 20 63 6f 6c 32 20 29 20   COUNT ( col2 ) 
2f5f0 2a 20 37 32 20 2b 20 2d 20 38 36 20 41 53 20 63  * 72 + - 86 AS c
2f600 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
2f610 2d 2d 2d 0d 0a 31 33 30 0d 0a 0d 0a 71 75 65 72  ---..130....quer
2f620 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
2f630 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
2f640 32 20 57 48 45 52 45 20 31 36 20 3c 3e 20 2b 20  2 WHERE 16 <> + 
2f650 32 37 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  27..----..9 valu
2f660 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35  es hashing to 75
2f670 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63  c998aa53ac83218c
2f680 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a  bf2feb962d0a49..
2f690 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2f6a0 74 0d 0a 53 45 4c 45 43 54 20 2d 20 31 20 2a 20  t..SELECT - 1 * 
2f6b0 2d 20 28 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20  - ( col0 ) FROM 
2f6c0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a  tab0..----..15..
2f6d0 38 37 0d 0a 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  87..97....onlyif
2f6e0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
2f6f0 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
2f700 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
2f710 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 36 30 0d  sort label-1060.
2f720 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32  .SELECT ALL col2
2f730 20 2b 20 43 41 53 54 28 20 37 31 20 41 53 20 53   + CAST( 71 AS S
2f740 49 47 4e 45 44 20 29 20 63 6f 6c 32 20 46 52 4f  IGNED ) col2 FRO
2f750 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 31  M tab2..----..11
2f760 31 0d 0a 31 32 39 0d 0a 39 34 0d 0a 0d 0a 73 6b  1..129..94....sk
2f770 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2f780 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69   compatible..ski
2f790 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
2f7a0 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
2f7b0 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
2f7c0 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
2f7d0 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
2f7e0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 36 30  wsort label-1060
2f7f0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c  ..SELECT ALL col
2f800 32 20 2b 20 43 41 53 54 20 28 20 37 31 20 41 53  2 + CAST ( 71 AS
2f810 20 49 4e 54 45 47 45 52 20 29 20 63 6f 6c 32 20   INTEGER ) col2 
2f820 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
2f830 0a 31 31 31 0d 0a 31 32 39 0d 0a 39 34 0d 0a 0d  .111..129..94...
2f840 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2f850 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2f860 54 20 31 35 20 46 52 4f 4d 20 74 61 62 30 20 57  T 15 FROM tab0 W
2f870 48 45 52 45 20 2d 20 63 6f 6c 31 20 3c 3e 20 63  HERE - col1 <> c
2f880 6f 6c 32 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d  ol2 + col0..----
2f890 0d 0a 31 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..15....onlyif m
2f8a0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
2f8b0 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
2f8c0 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
2f8d0 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
2f8e0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2f8f0 65 6c 2d 31 30 36 32 0d 0a 53 45 4c 45 43 54 20  el-1062..SELECT 
2f900 44 49 53 54 49 4e 43 54 20 2b 20 43 41 53 54 28  DISTINCT + CAST(
2f910 20 63 6f 6c 31 20 41 53 20 53 49 47 4e 45 44 20   col1 AS SIGNED 
2f920 29 20 44 49 56 20 2d 20 37 39 20 46 52 4f 4d 20  ) DIV - 79 FROM 
2f930 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  tab2..----..0...
2f940 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2f950 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2f960 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2f970 6c 61 62 65 6c 2d 31 30 36 32 0d 0a 53 45 4c 45  label-1062..SELE
2f980 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 41  CT DISTINCT + CA
2f990 53 54 20 28 20 63 6f 6c 31 20 41 53 20 49 4e 54  ST ( col1 AS INT
2f9a0 45 47 45 52 20 29 20 2f 20 2d 20 37 39 20 46 52  EGER ) / - 79 FR
2f9b0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30  OM tab2..----..0
2f9c0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2f9d0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
2f9e0 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  + col0 FROM tab2
2f9f0 20 57 48 45 52 45 20 2d 20 63 6f 6c 32 20 49 4e   WHERE - col2 IN
2fa00 20 28 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d   ( + col1 )..---
2fa10 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
2fa20 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
2fa30 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
2fa40 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2fa50 6c 61 62 65 6c 2d 31 30 36 34 0d 0a 53 45 4c 45  label-1064..SELE
2fa60 43 54 20 2d 20 43 41 53 54 28 20 2b 20 63 6f 6c  CT - CAST( + col
2fa70 32 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20  2 AS SIGNED ) + 
2fa80 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f  col2 AS col1 FRO
2fa90 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab1 cor0..---
2faa0 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b  -..0..0..0....sk
2fab0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2fac0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2fad0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2fae0 65 6c 2d 31 30 36 34 0d 0a 53 45 4c 45 43 54 20  el-1064..SELECT 
2faf0 2d 20 43 41 53 54 20 28 20 2b 20 63 6f 6c 32 20  - CAST ( + col2 
2fb00 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20 63  AS INTEGER ) + c
2fb10 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol2 AS col1 FROM
2fb20 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
2fb30 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 71 75 65  ..0..0..0....que
2fb40 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2fb50 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 38 34  LECT DISTINCT 84
2fb60 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
2fb70 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
2fb80 62 32 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d  b2 AS cor1..----
2fb90 0d 0a 38 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..84....onlyif m
2fba0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
2fbb0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
2fbc0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2fbd0 2d 31 30 36 36 0d 0a 53 45 4c 45 43 54 20 35 39  -1066..SELECT 59
2fbe0 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20   + + COUNT( * ) 
2fbf0 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
2fc00 0a 36 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .62....skipif my
2fc10 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2fc20 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
2fc30 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 36 36  wsort label-1066
2fc40 0d 0a 53 45 4c 45 43 54 20 35 39 20 2b 20 2b 20  ..SELECT 59 + + 
2fc50 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d  COUNT ( * ) FROM
2fc60 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 36 32 0d   tab1..----..62.
2fc70 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2fc80 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44  # CAST syntax: D
2fc90 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71  ECIMAL type: ..q
2fca0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2fcb0 61 62 65 6c 2d 31 30 36 37 0d 0a 53 45 4c 45 43  abel-1067..SELEC
2fcc0 54 20 31 34 20 2b 20 41 56 47 20 28 20 2b 20 63  T 14 + AVG ( + c
2fcd0 6f 6c 31 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ol1 ) AS col2 FR
2fce0 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 55  OM tab1 WHERE NU
2fcf0 4c 4c 20 42 45 54 57 45 45 4e 20 28 20 4e 55 4c  LL BETWEEN ( NUL
2fd00 4c 20 29 20 41 4e 44 20 2b 20 63 6f 6c 31 20 2a  L ) AND + col1 *
2fd10 20 2b 20 36 38 20 2b 20 63 6f 6c 30 20 2a 20 2d   + 68 + col0 * -
2fd20 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44   CAST( NULL AS D
2fd30 45 43 49 4d 41 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a  ECIMAL )..----..
2fd40 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
2fd50 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2fd60 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
2fd70 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 36  owsort label-106
2fd80 37 0d 0a 53 45 4c 45 43 54 20 31 34 20 2b 20 41  7..SELECT 14 + A
2fd90 56 47 20 28 20 2b 20 63 6f 6c 31 20 29 20 41 53  VG ( + col1 ) AS
2fda0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
2fdb0 57 48 45 52 45 20 4e 55 4c 4c 20 42 45 54 57 45  WHERE NULL BETWE
2fdc0 45 4e 20 28 20 4e 55 4c 4c 20 29 20 41 4e 44 20  EN ( NULL ) AND 
2fdd0 2b 20 63 6f 6c 31 20 2a 20 2b 20 36 38 20 2b 20  + col1 * + 68 + 
2fde0 63 6f 6c 30 20 2a 20 2d 20 43 41 53 54 20 28 20  col0 * - CAST ( 
2fdf0 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 0d 0a  NULL AS REAL )..
2fe00 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e  ----..NULL....on
2fe10 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
2fe20 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
2fe30 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
2fe40 49 49 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  IIIII rowsort la
2fe50 62 65 6c 2d 31 30 36 38 0d 0a 53 45 4c 45 43 54  bel-1068..SELECT
2fe60 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
2fe70 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 43 52   tab1 AS cor0 CR
2fe80 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53  OSS JOIN tab2 AS
2fe90 20 63 6f 72 31 20 57 48 45 52 45 20 4e 4f 54 20   cor1 WHERE NOT 
2fea0 28 20 2b 20 28 20 2d 20 43 41 53 54 28 20 2b 20  ( + ( - CAST( + 
2feb0 39 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20  9 AS SIGNED ) ) 
2fec0 29 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41  ) BETWEEN NULL A
2fed0 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  ND NULL..----...
2fee0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2fef0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2ff00 71 75 65 72 79 20 49 49 49 49 49 49 20 72 6f 77  query IIIIII row
2ff10 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 36 38 0d  sort label-1068.
2ff20 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2ff30 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   * FROM tab1 AS 
2ff40 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
2ff50 74 61 62 32 20 41 53 20 63 6f 72 31 20 57 48 45  tab2 AS cor1 WHE
2ff60 52 45 20 4e 4f 54 20 28 20 2b 20 28 20 2d 20 43  RE NOT ( + ( - C
2ff70 41 53 54 20 28 20 2b 20 39 20 41 53 20 49 4e 54  AST ( + 9 AS INT
2ff80 45 47 45 52 20 29 20 29 20 29 20 42 45 54 57 45  EGER ) ) ) BETWE
2ff90 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c  EN NULL AND NULL
2ffa0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
2ffb0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2ffc0 54 20 2b 20 2d 20 28 20 37 37 20 29 20 2a 20 2b  T + - ( 77 ) * +
2ffd0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
2ffe0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20  AS cor0 WHERE ( 
2fff0 4e 55 4c 4c 20 29 20 49 53 20 4e 4f 54 20 4e 55  NULL ) IS NOT NU
30000 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
30010 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
30020 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 2b  ECT ALL + col1 +
30030 20 2b 20 2d 20 34 33 20 41 53 20 63 6f 6c 30 20   + - 43 AS col0 
30040 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a  FROM tab2 cor0..
30050 2d 2d 2d 2d 0d 0a 32 34 0d 0a 33 34 0d 0a 38 0d  ----..24..34..8.
30060 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
30070 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
30080 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
30090 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
300a0 28 20 2d 20 28 20 2d 20 37 31 20 29 20 29 20 4e  ( - ( - 71 ) ) N
300b0 4f 54 20 42 45 54 57 45 45 4e 20 28 20 63 6f 6c  OT BETWEEN ( col
300c0 32 20 29 20 2a 20 63 6f 6c 32 20 2b 20 2b 20 63  2 ) * col2 + + c
300d0 6f 6c 30 20 41 4e 44 20 2d 20 63 6f 6c 31 0d 0a  ol0 AND - col1..
300e0 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
300f0 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34  ashing to c6c0a4
30100 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61  111b36d04dbc811a
30110 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 6f 6e  11e4d54cad....on
30120 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
30130 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
30140 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
30150 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
30160 30 37 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  072..SELECT ALL 
30170 38 20 2b 20 2d 20 2d 20 63 6f 6c 30 20 2b 20 34  8 + - - col0 + 4
30180 30 20 44 49 56 20 63 6f 6c 30 20 46 52 4f 4d 20  0 DIV col0 FROM 
30190 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
301a0 2d 2d 0d 0a 35 34 0d 0a 37 32 0d 0a 38 33 0d 0a  --..54..72..83..
301b0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
301c0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
301d0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
301e0 20 6c 61 62 65 6c 2d 31 30 37 32 0d 0a 53 45 4c   label-1072..SEL
301f0 45 43 54 20 41 4c 4c 20 38 20 2b 20 2d 20 2d 20  ECT ALL 8 + - - 
30200 63 6f 6c 30 20 2b 20 34 30 20 2f 20 63 6f 6c 30  col0 + 40 / col0
30210 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
30220 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 34 0d 0a 37 32  r0..----..54..72
30230 0d 0a 38 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..83....onlyif m
30240 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
30250 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
30260 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77   ..query III row
30270 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 37 33 0d  sort label-1073.
30280 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
30290 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
302a0 45 20 2b 20 43 41 53 54 28 20 2b 20 63 6f 6c 31  E + CAST( + col1
302b0 20 41 53 20 53 49 47 4e 45 44 20 29 20 4e 4f 54   AS SIGNED ) NOT
302c0 20 49 4e 20 28 20 2b 20 63 6f 6c 30 20 29 0d 0a   IN ( + col0 )..
302d0 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
302e0 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38  ashing to 75c998
302f0 61 61 35 33 61 63 38 33 32 31 38 63 62 66 32 66  aa53ac83218cbf2f
30300 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 73 6b  eb962d0a49....sk
30310 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
30320 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
30330 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
30340 61 62 65 6c 2d 31 30 37 33 0d 0a 53 45 4c 45 43  abel-1073..SELEC
30350 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53  T * FROM tab2 AS
30360 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 43 41   cor0 WHERE + CA
30370 53 54 20 28 20 2b 20 63 6f 6c 31 20 41 53 20 49  ST ( + col1 AS I
30380 4e 54 45 47 45 52 20 29 20 4e 4f 54 20 49 4e 20  NTEGER ) NOT IN 
30390 28 20 2b 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d  ( + col0 )..----
303a0 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
303b0 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33  ng to 75c998aa53
303c0 61 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36  ac83218cbf2feb96
303d0 32 64 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20  2d0a49....query 
303e0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
303f0 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ECT * FROM tab2 
30400 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20  AS cor0 WHERE ( 
30410 2b 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 32 20  + col2 * + col2 
30420 2b 20 28 20 2b 20 63 6f 6c 30 20 29 20 2a 20 2d  + ( + col0 ) * -
30430 20 63 6f 6c 32 20 29 20 42 45 54 57 45 45 4e 20   col2 ) BETWEEN 
30440 2d 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 30 20  - col2 + - col0 
30450 41 4e 44 20 4e 55 4c 4c 20 4f 52 20 63 6f 6c 30  AND NULL OR col0
30460 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
30470 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
30480 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 39 31  t..SELECT - + 91
30490 20 2a 20 2b 20 63 6f 6c 30 20 2d 20 2d 20 32 20   * + col0 - - 2 
304a0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
304b0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
304c0 0a 2d 34 36 33 39 0d 0a 2d 37 37 33 33 0d 0a 2d  .-4639..-7733..-
304d0 38 32 37 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49  8279....query II
304e0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
304f0 20 2b 20 28 20 2b 20 2d 20 63 6f 6c 32 20 29 20   + ( + - col2 ) 
30500 41 53 20 63 6f 6c 31 2c 20 2d 20 35 30 20 46 52  AS col1, - 50 FR
30510 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
30520 31 30 0d 0a 2d 35 30 0d 0a 2d 34 37 0d 0a 2d 35  10..-50..-47..-5
30530 30 0d 0a 2d 39 39 0d 0a 2d 35 30 0d 0a 0d 0a 73  0..-99..-50....s
30540 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
30550 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
30560 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
30570 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
30580 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
30590 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
305a0 63 6f 6c 30 20 2a 20 28 20 63 6f 6c 31 20 29 20  col0 * ( col1 ) 
305b0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
305c0 2d 2d 2d 2d 0d 0a 31 32 31 35 0d 0a 31 38 32 37  ----..1215..1827
305d0 0d 0a 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..97....onlyif m
305e0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
305f0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
30600 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
30610 2d 31 30 37 38 0d 0a 53 45 4c 45 43 54 20 41 4c  -1078..SELECT AL
30620 4c 20 2d 20 4d 49 4e 28 20 44 49 53 54 49 4e 43  L - MIN( DISTINC
30630 54 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61  T col2 ) FROM ta
30640 62 31 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  b1 WHERE NOT col
30650 32 20 49 4e 20 28 20 2b 20 37 20 2b 20 2b 20 63  2 IN ( + 7 + + c
30660 6f 6c 30 20 2a 20 63 6f 6c 31 20 29 0d 0a 2d 2d  ol0 * col1 )..--
30670 2d 2d 0d 0a 2d 35 39 0d 0a 0d 0a 73 6b 69 70 69  --..-59....skipi
30680 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
30690 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
306a0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
306b0 31 30 37 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1078..SELECT ALL
306c0 20 2d 20 4d 49 4e 20 28 20 44 49 53 54 49 4e 43   - MIN ( DISTINC
306d0 54 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61  T col2 ) FROM ta
306e0 62 31 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  b1 WHERE NOT col
306f0 32 20 49 4e 20 28 20 2b 20 37 20 2b 20 2b 20 63  2 IN ( + 7 + + c
30700 6f 6c 30 20 2a 20 63 6f 6c 31 20 29 0d 0a 2d 2d  ol0 * col1 )..--
30710 2d 2d 0d 0a 2d 35 39 0d 0a 0d 0a 71 75 65 72 79  --..-59....query
30720 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
30730 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
30740 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20   WHERE NOT col0 
30750 2a 20 36 37 20 2b 20 32 20 49 53 20 4e 55 4c 4c  * 67 + 2 IS NULL
30760 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
30770 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34   hashing to c4b4
30780 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30  2765dff94eaaa460
30790 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a  40e537fb43b7....
307a0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
307b0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
307c0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
307d0 72 74 20 6c 61 62 65 6c 2d 31 30 38 30 0d 0a 53  rt label-1080..S
307e0 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a  ELECT + COUNT( *
307f0 20 29 20 2a 20 28 20 35 30 20 29 20 41 53 20 63   ) * ( 50 ) AS c
30800 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
30810 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
30820 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col2 IS NOT NULL
30830 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69  ..----..0....ski
30840 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
30850 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
30860 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
30870 6c 2d 31 30 38 30 0d 0a 53 45 4c 45 43 54 20 2b  l-1080..SELECT +
30880 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 28   COUNT ( * ) * (
30890 20 35 30 20 29 20 41 53 20 63 6f 6c 31 20 46 52   50 ) AS col1 FR
308a0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
308b0 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20 49  WHERE NOT col2 I
308c0 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
308d0 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ..0....query III
308e0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
308f0 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
30900 52 45 20 2d 20 33 39 20 3e 20 2d 20 63 6f 6c 30  RE - 39 > - col0
30910 20 2f 20 2b 20 63 6f 6c 31 20 2a 20 63 6f 6c 32   / + col1 * col2
30920 20 2d 20 63 6f 6c 31 20 4f 52 20 32 33 20 2f 20   - col1 OR 23 / 
30930 2b 20 37 34 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  + 74 IS NOT NULL
30940 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
30950 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34   hashing to c4b4
30960 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30  2765dff94eaaa460
30970 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a  40e537fb43b7....
30980 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
30990 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
309a0 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
309b0 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
309c0 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
309d0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
309e0 20 2b 20 39 32 20 63 6f 6c 30 20 46 52 4f 4d 20   + 92 col0 FROM 
309f0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 39 32 0d 0a  tab0..----..92..
30a00 39 32 0d 0a 39 32 0d 0a 0d 0a 6f 6e 6c 79 69 66  92..92....onlyif
30a10 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
30a20 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
30a30 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
30a40 65 6c 2d 31 30 38 33 0d 0a 53 45 4c 45 43 54 20  el-1083..SELECT 
30a50 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 43 4f 55  DISTINCT - + COU
30a60 4e 54 28 20 2a 20 29 20 2b 20 2b 20 2d 20 32 39  NT( * ) + + - 29
30a70 20 2a 20 39 33 20 46 52 4f 4d 20 74 61 62 32 20   * 93 FROM tab2 
30a80 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
30a90 32 37 30 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  2700....skipif m
30aa0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
30ab0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
30ac0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 38  owsort label-108
30ad0 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  3..SELECT DISTIN
30ae0 43 54 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a  CT - + COUNT ( *
30af0 20 29 20 2b 20 2b 20 2d 20 32 39 20 2a 20 39 33   ) + + - 29 * 93
30b00 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
30b10 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 37 30 30 0d  r0..----..-2700.
30b20 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
30b30 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
30b40 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
30b50 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 38 34  wsort label-1084
30b60 0d 0a 53 45 4c 45 43 54 20 2d 20 34 20 2a 20 2d  ..SELECT - 4 * -
30b70 20 39 31 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2b   91 + - COUNT( +
30b80 20 2d 20 39 39 20 29 20 46 52 4f 4d 20 74 61 62   - 99 ) FROM tab
30b90 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
30ba0 0a 33 36 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .361....skipif m
30bb0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
30bc0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
30bd0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 38  owsort label-108
30be0 34 0d 0a 53 45 4c 45 43 54 20 2d 20 34 20 2a 20  4..SELECT - 4 * 
30bf0 2d 20 39 31 20 2b 20 2d 20 43 4f 55 4e 54 20 28  - 91 + - COUNT (
30c00 20 2b 20 2d 20 39 39 20 29 20 46 52 4f 4d 20 74   + - 99 ) FROM t
30c10 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
30c20 2d 0d 0a 33 36 31 0d 0a 0d 0a 71 75 65 72 79 20  -..361....query 
30c30 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
30c40 54 20 2b 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 37  T + - col2 * + 7
30c50 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
30c60 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
30c70 0d 0a 2d 34 31 33 0d 0a 2d 34 37 36 0d 0a 2d 36  ..-413..-476..-6
30c80 37 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  72....query I ro
30c90 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
30ca0 2b 20 39 30 20 46 52 4f 4d 20 74 61 62 31 20 41  + 90 FROM tab1 A
30cb0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
30cc0 20 2d 20 35 33 20 49 53 20 4e 55 4c 4c 0d 0a 2d   - 53 IS NULL..-
30cd0 2d 2d 2d 0d 0a 39 30 0d 0a 39 30 0d 0a 39 30 0d  ---..90..90..90.
30ce0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
30cf0 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  rt..SELECT - col
30d00 31 20 2a 20 2b 20 34 36 20 46 52 4f 4d 20 74 61  1 * + 46 FROM ta
30d10 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
30d20 0d 0a 2d 32 33 34 36 0d 0a 2d 33 30 38 32 0d 0a  ..-2346..-3082..
30d30 2d 33 35 34 32 0d 0a 0d 0a 71 75 65 72 79 20 49  -3542....query I
30d40 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
30d50 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41  CT * FROM tab1 A
30d60 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
30d70 20 2d 20 63 6f 6c 32 20 3c 3e 20 2d 20 2b 20 63   - col2 <> - + c
30d80 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ol1..----....que
30d90 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
30da0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
30db0 2d 20 32 35 20 46 52 4f 4d 20 74 61 62 32 20 41  - 25 FROM tab2 A
30dc0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
30dd0 20 2b 20 63 6f 6c 31 20 3c 3e 20 2b 20 38 35 0d   + col1 <> + 85.
30de0 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
30df0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
30e00 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
30e10 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
30e20 6c 2d 31 30 39 30 0d 0a 53 45 4c 45 43 54 20 2d  l-1090..SELECT -
30e30 20 53 55 4d 28 20 41 4c 4c 20 2b 20 31 34 20 29   SUM( ALL + 14 )
30e40 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
30e50 62 31 2c 20 74 61 62 31 20 41 53 20 63 6f 72 30  b1, tab1 AS cor0
30e60 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 36 0d 0a 0d 0a  ..----..-126....
30e70 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
30e80 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
30e90 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
30ea0 61 62 65 6c 2d 31 30 39 30 0d 0a 53 45 4c 45 43  abel-1090..SELEC
30eb0 54 20 2d 20 53 55 4d 20 28 20 41 4c 4c 20 2b 20  T - SUM ( ALL + 
30ec0 31 34 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  14 ) AS col2 FRO
30ed0 4d 20 74 61 62 31 2c 20 74 61 62 31 20 41 53 20  M tab1, tab1 AS 
30ee0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 36  cor0..----..-126
30ef0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
30f00 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
30f10 49 4e 43 54 20 28 20 2b 20 63 6f 6c 32 20 29 20  INCT ( + col2 ) 
30f20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
30f30 31 20 57 48 45 52 45 20 2d 20 2b 20 37 34 20 3c  1 WHERE - + 74 <
30f40 3e 20 28 20 2b 20 63 6f 6c 30 20 29 0d 0a 2d 2d  > ( + col0 )..--
30f50 2d 2d 0d 0a 35 39 0d 0a 36 38 0d 0a 39 36 0d 0a  --..59..68..96..
30f60 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
30f70 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
30f80 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67  x: DIV for integ
30f90 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
30fa0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
30fb0 61 62 65 6c 2d 31 30 39 32 0d 0a 53 45 4c 45 43  abel-1092..SELEC
30fc0 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54  T DISTINCT COUNT
30fd0 28 20 2a 20 29 20 44 49 56 20 2b 20 36 34 20 2b  ( * ) DIV + 64 +
30fe0 20 2d 20 43 4f 55 4e 54 28 20 63 6f 6c 30 20 29   - COUNT( col0 )
30ff0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
31000 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..-3....skipif m
31010 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
31020 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
31030 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 39  owsort label-109
31040 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  2..SELECT DISTIN
31050 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2f  CT COUNT ( * ) /
31060 20 2b 20 36 34 20 2b 20 2d 20 43 4f 55 4e 54 20   + 64 + - COUNT 
31070 28 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61  ( col0 ) FROM ta
31080 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a  b2..----..-3....
31090 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
310a0 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2b  .SELECT - col1 +
310b0 20 2d 20 2d 20 63 6f 6c 31 20 2b 20 63 6f 6c 30   - - col1 + col0
310c0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
310d0 0d 0a 34 36 0d 0a 36 34 0d 0a 37 35 0d 0a 0d 0a  ..46..64..75....
310e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
310f0 0a 53 45 4c 45 43 54 20 2b 20 32 37 20 41 53 20  .SELECT + 27 AS 
31100 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 57  col2 FROM tab2 W
31110 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 55 4c  HERE NULL IS NUL
31120 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 37 0d 0a 32 37 0d  L..----..27..27.
31130 0a 32 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .27....onlyif my
31140 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
31150 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a  x: DECIMAL type:
31160 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
31170 72 74 20 6c 61 62 65 6c 2d 31 30 39 35 0d 0a 53  rt label-1095..S
31180 45 4c 45 43 54 20 43 41 53 54 28 20 4e 55 4c 4c  ELECT CAST( NULL
31190 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20 2b 20   AS DECIMAL ) + 
311a0 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32  + - col2 AS col2
311b0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
311c0 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
311d0 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
311e0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
311f0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
31200 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 39 35 0d  sort label-1095.
31210 0a 53 45 4c 45 43 54 20 43 41 53 54 20 28 20 4e  .SELECT CAST ( N
31220 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 2b 20  ULL AS REAL ) + 
31230 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32  + - col2 AS col2
31240 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
31250 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
31260 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  LL....query III 
31270 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
31280 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ALL * FROM tab0 
31290 57 48 45 52 45 20 4e 55 4c 4c 20 3c 3e 20 2b 20  WHERE NULL <> + 
312a0 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 30 20 2a 20  col1 * - col0 * 
312b0 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  col0..----....on
312c0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
312d0 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
312e0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
312f0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
31300 30 39 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  097..SELECT ALL 
31310 63 6f 6c 32 20 2a 20 2d 20 28 20 63 6f 6c 31 20  col2 * - ( col1 
31320 29 20 2b 20 43 41 53 54 28 20 2b 20 2b 20 39 37  ) + CAST( + + 97
31330 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f   AS SIGNED ) FRO
31340 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab0..----..-1
31350 31 33 0d 0a 2d 32 0d 0a 2d 33 37 31 30 0d 0a 0d  13..-2..-3710...
31360 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
31370 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
31380 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
31390 6c 61 62 65 6c 2d 31 30 39 37 0d 0a 53 45 4c 45  label-1097..SELE
313a0 43 54 20 41 4c 4c 20 63 6f 6c 32 20 2a 20 2d 20  CT ALL col2 * - 
313b0 28 20 63 6f 6c 31 20 29 20 2b 20 43 41 53 54 20  ( col1 ) + CAST 
313c0 28 20 2b 20 2b 20 39 37 20 41 53 20 49 4e 54 45  ( + + 97 AS INTE
313d0 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 30 0d  GER ) FROM tab0.
313e0 0a 2d 2d 2d 2d 0d 0a 2d 31 31 33 0d 0a 2d 32 0d  .----..-113..-2.
313f0 0a 2d 33 37 31 30 0d 0a 0d 0a 71 75 65 72 79 20  .-3710....query 
31400 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
31410 43 54 20 41 4c 4c 20 2b 20 35 32 2c 20 63 6f 6c  CT ALL + 52, col
31420 32 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  2 FROM tab2 cor0
31430 0d 0a 2d 2d 2d 2d 0d 0a 35 32 0d 0a 32 33 0d 0a  ..----..52..23..
31440 35 32 0d 0a 34 30 0d 0a 35 32 0d 0a 35 38 0d 0a  52..40..52..58..
31450 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
31460 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32  t..SELECT - col2
31470 20 2a 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 63 6f   * - col2 * - co
31480 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l2 AS col0 FROM 
31490 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
314a0 2d 2d 0d 0a 2d 32 30 35 33 37 39 0d 0a 2d 33 31  --..-205379..-31
314b0 34 34 33 32 0d 0a 2d 38 38 34 37 33 36 0d 0a 0d  4432..-884736...
314c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
314d0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d  ..SELECT ALL - -
314e0 20 35 32 20 2b 20 2b 20 28 20 63 6f 6c 31 20 29   52 + + ( col1 )
314f0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
31500 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 33 0d 0a 31  r0..----..103..1
31510 31 39 0d 0a 31 32 39 0d 0a 0d 0a 73 6b 69 70 69  19..129....skipi
31520 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
31530 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
31540 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
31550 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
31560 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ns..query II row
31570 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63  sort..SELECT - c
31580 6f 6c 30 2c 20 37 34 20 63 6f 6c 30 20 46 52 4f  ol0, 74 col0 FRO
31590 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
315a0 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 37 34 0d 0a 2d  ----..-15..74..-
315b0 38 37 0d 0a 37 34 0d 0a 2d 39 37 0d 0a 37 34 0d  87..74..-97..74.
315c0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
315d0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
315e0 49 47 4e 45 44 20 74 79 70 65 3a 20 44 49 56 20  IGNED type: DIV 
315f0 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
31600 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
31610 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
31620 30 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  02..SELECT ALL -
31630 20 2d 20 63 6f 6c 31 20 2d 20 2b 20 43 41 53 54   - col1 - + CAST
31640 28 20 2d 20 2b 20 63 6f 6c 30 20 41 53 20 53 49  ( - + col0 AS SI
31650 47 4e 45 44 20 29 20 44 49 56 20 35 30 20 46 52  GNED ) DIV 50 FR
31660 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
31670 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 34 38 0d 0a 36  .----..15..48..6
31680 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
31690 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
316a0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
316b0 72 74 20 6c 61 62 65 6c 2d 31 31 30 32 0d 0a 53  rt label-1102..S
316c0 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 63 6f  ELECT ALL - - co
316d0 6c 31 20 2d 20 2b 20 43 41 53 54 20 28 20 2d 20  l1 - + CAST ( - 
316e0 2b 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45  + col0 AS INTEGE
316f0 52 20 29 20 2f 20 35 30 20 46 52 4f 4d 20 74 61  R ) / 50 FROM ta
31700 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
31710 0d 0a 31 35 0d 0a 34 38 0d 0a 36 0d 0a 0d 0a 71  ..15..48..6....q
31720 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
31730 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2a 20  SELECT - col2 * 
31740 2d 20 36 30 20 2a 20 63 6f 6c 30 20 46 52 4f 4d  - 60 * col0 FROM
31750 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
31760 0d 0a 31 35 33 36 30 30 0d 0a 32 36 31 30 30 30  ..153600..261000
31770 0d 0a 36 33 34 38 30 0d 0a 0d 0a 71 75 65 72 79  ..63480....query
31780 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
31790 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 36 32  CT DISTINCT + 62
317a0 20 2a 20 63 6f 6c 30 20 2a 20 2d 20 31 37 20 2d   * col0 * - 17 -
317b0 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 30   - col0 * + col0
317c0 20 2a 20 63 6f 6c 32 20 2a 20 63 6f 6c 30 20 41   * col2 * col0 A
317d0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
317e0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
317f0 31 34 32 38 31 35 0d 0a 36 34 39 33 33 33 32 0d  142815..6493332.
31800 0a 39 30 32 35 32 33 38 39 0d 0a 0d 0a 6f 6e 6c  .90252389....onl
31810 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
31820 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
31830 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
31840 6c 61 62 65 6c 2d 31 31 30 35 0d 0a 53 45 4c 45  label-1105..SELE
31850 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43 4f  CT DISTINCT - CO
31860 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20 37 38 20  UNT( * ) * + 78 
31870 2b 20 2d 20 53 55 4d 28 20 41 4c 4c 20 2d 20 32  + - SUM( ALL - 2
31880 36 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53  6 ) FROM tab2 AS
31890 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35   cor0..----..-15
318a0 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  6....skipif mysq
318b0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
318c0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
318d0 6f 72 74 20 6c 61 62 65 6c 2d 31 31 30 35 0d 0a  ort label-1105..
318e0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
318f0 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20  - COUNT ( * ) * 
31900 2b 20 37 38 20 2b 20 2d 20 53 55 4d 20 28 20 41  + 78 + - SUM ( A
31910 4c 4c 20 2d 20 32 36 20 29 20 46 52 4f 4d 20 74  LL - 26 ) FROM t
31920 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
31930 2d 0d 0a 2d 31 35 36 0d 0a 0d 0a 71 75 65 72 79  -..-156....query
31940 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
31950 43 54 20 32 39 20 2a 20 2d 20 2d 20 63 6f 6c 32  CT 29 * - - col2
31960 20 2a 20 2b 20 2b 20 63 6f 6c 32 20 2b 20 38 20   * + + col2 + 8 
31970 2b 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c  + - col2 * - col
31980 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
31990 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 42  or0 WHERE NULL B
319a0 45 54 57 45 45 4e 20 2d 20 63 6f 6c 32 20 41 4e  ETWEEN - col2 AN
319b0 44 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a  D + col0..----..
319c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
319d0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
319e0 43 54 20 63 6f 6c 30 20 2a 20 2d 20 2d 20 63 6f  CT col0 * - - co
319f0 6c 32 20 2d 20 35 32 20 2b 20 2b 20 2b 20 63 6f  l2 - 52 + + + co
31a00 6c 31 20 2a 20 2b 20 39 33 20 2b 20 63 6f 6c 32  l1 * + 93 + col2
31a10 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
31a20 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
31a30 0d 0a 31 30 35 37 35 0d 0a 35 34 38 37 0d 0a 36  ..10575..5487..6
31a40 32 34 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  242....onlyif my
31a50 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
31a60 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
31a70 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
31a80 2d 31 31 30 38 0d 0a 53 45 4c 45 43 54 20 43 4f  -1108..SELECT CO
31a90 55 4e 54 28 20 2a 20 29 20 2b 20 43 4f 55 4e 54  UNT( * ) + COUNT
31aa0 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 2c 20 28  ( * ) AS col2, (
31ab0 20 2b 20 37 37 20 29 20 41 53 20 63 6f 6c 31 20   + 77 ) AS col1 
31ac0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
31ad0 30 0d 0a 2d 2d 2d 2d 0d 0a 36 0d 0a 37 37 0d 0a  0..----..6..77..
31ae0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
31af0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
31b00 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
31b10 74 20 6c 61 62 65 6c 2d 31 31 30 38 0d 0a 53 45  t label-1108..SE
31b20 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29  LECT COUNT ( * )
31b30 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41   + COUNT ( * ) A
31b40 53 20 63 6f 6c 32 2c 20 28 20 2b 20 37 37 20 29  S col2, ( + 77 )
31b50 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
31b60 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
31b70 0d 0a 36 0d 0a 37 37 0d 0a 0d 0a 71 75 65 72 79  ..6..77....query
31b80 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
31b90 43 54 20 2b 20 2d 20 41 56 47 20 28 20 44 49 53  CT + - AVG ( DIS
31ba0 54 49 4e 43 54 20 37 33 20 29 20 41 53 20 63 6f  TINCT 73 ) AS co
31bb0 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  l0 FROM tab1 cor
31bc0 30 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29  0 WHERE ( NULL )
31bd0 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
31be0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79  --..NULL....only
31bf0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
31c00 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
31c10 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
31c20 61 62 65 6c 2d 31 31 31 30 0d 0a 53 45 4c 45 43  abel-1110..SELEC
31c30 54 20 2b 20 34 20 2b 20 2b 20 2b 20 43 4f 55 4e  T + 4 + + + COUN
31c40 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31  T( * ) FROM tab1
31c50 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
31c60 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  7....skipif mysq
31c70 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
31c80 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
31c90 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31 30 0d 0a  ort label-1110..
31ca0 53 45 4c 45 43 54 20 2b 20 34 20 2b 20 2b 20 2b  SELECT + 4 + + +
31cb0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f   COUNT ( * ) FRO
31cc0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
31cd0 2d 2d 2d 2d 0d 0a 37 0d 0a 0d 0a 6f 6e 6c 79 69  ----..7....onlyi
31ce0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
31cf0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
31d00 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
31d10 62 65 6c 2d 31 31 31 31 0d 0a 53 45 4c 45 43 54  bel-1111..SELECT
31d20 20 28 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20   ( + COUNT( * ) 
31d30 29 20 2b 20 35 30 20 63 6f 6c 30 20 46 52 4f 4d  ) + 50 col0 FROM
31d40 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
31d50 2d 2d 2d 0d 0a 35 33 0d 0a 0d 0a 73 6b 69 70 69  ---..53....skipi
31d60 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
31d70 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66  mpatible..skipif
31d80 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
31d90 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
31da0 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
31db0 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
31dc0 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
31dd0 72 74 20 6c 61 62 65 6c 2d 31 31 31 31 0d 0a 53  rt label-1111..S
31de0 45 4c 45 43 54 20 28 20 2b 20 43 4f 55 4e 54 20  ELECT ( + COUNT 
31df0 28 20 2a 20 29 20 29 20 2b 20 35 30 20 63 6f 6c  ( * ) ) + 50 col
31e00 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
31e10 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 33 0d 0a 0d  or0..----..53...
31e20 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
31e30 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
31e40 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
31e50 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31 32 0d 0a  ort label-1112..
31e60 53 45 4c 45 43 54 20 2b 20 28 20 43 4f 55 4e 54  SELECT + ( COUNT
31e70 28 20 41 4c 4c 20 2d 20 2d 20 63 6f 6c 30 20 29  ( ALL - - col0 )
31e80 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   ) col1 FROM tab
31e90 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
31ea0 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .3....skipif mys
31eb0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
31ec0 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  ble..skipif post
31ed0 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
31ee0 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
31ef0 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
31f00 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
31f10 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
31f20 62 65 6c 2d 31 31 31 32 0d 0a 53 45 4c 45 43 54  bel-1112..SELECT
31f30 20 2b 20 28 20 43 4f 55 4e 54 20 28 20 41 4c 4c   + ( COUNT ( ALL
31f40 20 2d 20 2d 20 63 6f 6c 30 20 29 20 29 20 63 6f   - - col0 ) ) co
31f50 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
31f60 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d  cor0..----..3...
31f70 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
31f80 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
31f90 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
31fa0 20 2b 20 2b 20 63 6f 6c 32 20 3c 20 4e 55 4c 4c   + + col2 < NULL
31fb0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
31fc0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
31fd0 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 2a 20 2d  T ALL - col0 * -
31fe0 20 36 36 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d   66 FROM tab0..-
31ff0 2d 2d 2d 0d 0a 35 37 34 32 0d 0a 36 34 30 32 0d  ---..5742..6402.
32000 0a 39 39 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .990....query II
32010 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
32020 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48  T * FROM tab0 WH
32030 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20 2b 20 2b  ERE NOT col2 + +
32040 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 37 36 20 2b   + col0 * - 76 +
32050 20 63 6f 6c 32 20 2d 20 2d 20 2d 20 63 6f 6c 32   col2 - - - col2
32060 20 2a 20 2b 20 33 31 20 4e 4f 54 20 42 45 54 57   * + 31 NOT BETW
32070 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c  EEN NULL AND NUL
32080 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  L..----....onlyi
32090 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
320a0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
320b0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
320c0 62 65 6c 2d 31 31 31 36 0d 0a 53 45 4c 45 43 54  bel-1116..SELECT
320d0 20 41 4c 4c 20 4d 49 4e 28 20 2b 20 34 36 20 29   ALL MIN( + 46 )
320e0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
320f0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 0d 0a  b1..----..46....
32100 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
32110 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
32120 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
32130 61 62 65 6c 2d 31 31 31 36 0d 0a 53 45 4c 45 43  abel-1116..SELEC
32140 54 20 41 4c 4c 20 4d 49 4e 20 28 20 2b 20 34 36  T ALL MIN ( + 46
32150 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
32160 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a  tab1..----..46..
32170 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
32180 74 0d 0a 53 45 4c 45 43 54 20 2b 20 39 31 20 2a  t..SELECT + 91 *
32190 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20   - col1 AS col2 
321a0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
321b0 0a 2d 31 39 31 31 0d 0a 2d 37 33 37 31 0d 0a 2d  .-1911..-7371..-
321c0 39 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  91....query I ro
321d0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
321e0 32 34 20 2a 20 2d 20 2b 20 41 56 47 20 28 20 63  24 * - + AVG ( c
321f0 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 31 20  ol0 ) FROM tab1 
32200 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20 49  WHERE NOT col1 I
32210 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
32220 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20  ..NULL....query 
32230 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
32240 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 41 53  CT ALL + col0 AS
32250 20 63 6f 6c 31 2c 20 2b 20 37 39 20 2a 20 2b 20   col1, + 79 * + 
32260 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f  col1 AS col2 FRO
32270 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 31  M tab1..----..51
32280 0d 0a 31 31 30 36 0d 0a 38 35 0d 0a 33 39 35 0d  ..1106..85..395.
32290 0a 39 31 0d 0a 33 37 31 33 0d 0a 0d 0a 6f 6e 6c  .91..3713....onl
322a0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
322b0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
322c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
322d0 6c 61 62 65 6c 2d 31 31 32 30 0d 0a 53 45 4c 45  label-1120..SELE
322e0 43 54 20 2d 20 35 37 20 2a 20 53 55 4d 28 20 41  CT - 57 * SUM( A
322f0 4c 4c 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74  LL col0 ) FROM t
32300 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 33 34  ab0..----..-1134
32310 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
32320 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
32330 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
32340 6f 72 74 20 6c 61 62 65 6c 2d 31 31 32 30 0d 0a  ort label-1120..
32350 53 45 4c 45 43 54 20 2d 20 35 37 20 2a 20 53 55  SELECT - 57 * SU
32360 4d 20 28 20 41 4c 4c 20 63 6f 6c 30 20 29 20 46  M ( ALL col0 ) F
32370 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
32380 2d 31 31 33 34 33 0d 0a 0d 0a 71 75 65 72 79 20  -11343....query 
32390 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
323a0 54 20 36 35 20 2a 20 2b 20 32 32 20 41 53 20 63  T 65 * + 22 AS c
323b0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol2 FROM tab1..-
323c0 2d 2d 2d 0d 0a 31 34 33 30 0d 0a 31 34 33 30 0d  ---..1430..1430.
323d0 0a 31 34 33 30 0d 0a 0d 0a 71 75 65 72 79 20 49  .1430....query I
323e0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
323f0 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
32400 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
32410 54 20 2d 20 38 38 20 2d 20 2d 20 2d 20 63 6f 6c  T - 88 - - - col
32420 30 20 3d 20 2d 20 63 6f 6c 32 20 2d 20 2b 20 63  0 = - col2 - + c
32430 6f 6c 32 20 2d 20 2d 20 63 6f 6c 31 20 2b 20 2d  ol2 - - col1 + -
32440 20 2b 20 63 6f 6c 31 20 2a 20 63 6f 6c 32 0d 0a   + col1 * col2..
32450 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
32460 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37  ashing to c4b427
32470 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30  65dff94eaaa46040
32480 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 6f 6e  e537fb43b7....on
32490 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
324a0 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
324b0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
324c0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
324d0 31 32 33 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41  123..SELECT + CA
324e0 53 54 28 20 2d 20 2b 20 31 30 20 41 53 20 53 49  ST( - + 10 AS SI
324f0 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 30 20 46  GNED ) AS col0 F
32500 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
32510 2d 31 30 0d 0a 2d 31 30 0d 0a 2d 31 30 0d 0a 0d  -10..-10..-10...
32520 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
32530 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
32540 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
32550 6c 61 62 65 6c 2d 31 31 32 33 0d 0a 53 45 4c 45  label-1123..SELE
32560 43 54 20 2b 20 43 41 53 54 20 28 20 2d 20 2b 20  CT + CAST ( - + 
32570 31 30 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  10 AS INTEGER ) 
32580 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
32590 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 2d 31  1..----..-10..-1
325a0 30 0d 0a 2d 31 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  0..-10....onlyif
325b0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
325c0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
325d0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
325e0 62 65 6c 2d 31 31 32 34 0d 0a 53 45 4c 45 43 54  bel-1124..SELECT
325f0 20 44 49 53 54 49 4e 43 54 20 2b 20 34 37 2c 20   DISTINCT + 47, 
32600 2b 20 38 37 20 2b 20 2b 20 43 4f 55 4e 54 28 20  + 87 + + COUNT( 
32610 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  * ) AS col2 FROM
32620 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 34 37 0d   tab1..----..47.
32630 0a 39 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .90....skipif my
32640 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
32650 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72  ible..query II r
32660 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 32  owsort label-112
32670 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  4..SELECT DISTIN
32680 43 54 20 2b 20 34 37 2c 20 2b 20 38 37 20 2b 20  CT + 47, + 87 + 
32690 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53  + COUNT ( * ) AS
326a0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
326b0 0a 2d 2d 2d 2d 0d 0a 34 37 0d 0a 39 30 0d 0a 0d  .----..47..90...
326c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
326d0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b  ..SELECT ALL - +
326e0 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 32 20 41   col0 + - col2 A
326f0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
32700 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
32710 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54 57  OT NULL NOT BETW
32720 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2d 20 63  EEN NULL AND - c
32730 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ol0..----....que
32740 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
32750 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 28 20  LECT DISTINCT ( 
32760 2b 20 35 20 29 20 2b 20 2d 20 39 32 20 2b 20 39  + 5 ) + - 92 + 9
32770 34 20 2a 20 2b 20 39 38 20 41 53 20 63 6f 6c 32  4 * + 98 AS col2
32780 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
32790 72 30 20 57 48 45 52 45 20 63 6f 6c 31 20 3d 20  r0 WHERE col1 = 
327a0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
327b0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
327c0 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 2c 20 2b  SELECT + col0, +
327d0 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52   col2 AS col1 FR
327e0 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d  OM tab2 cor0..--
327f0 2d 2d 0d 0a 34 36 0d 0a 32 33 0d 0a 36 34 0d 0a  --..46..23..64..
32800 34 30 0d 0a 37 35 0d 0a 35 38 0d 0a 0d 0a 71 75  40..75..58....qu
32810 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
32820 45 4c 45 43 54 20 32 20 2a 20 2d 20 63 6f 6c 31  ELECT 2 * - col1
32830 20 2a 20 2d 20 33 33 20 2b 20 2b 20 33 33 20 2a   * - 33 + + 33 *
32840 20 39 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72   9 FROM tab1 cor
32850 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 32 31 0d 0a 33  0..----..1221..3
32860 33 39 39 0d 0a 36 32 37 0d 0a 0d 0a 73 6b 69 70  399..627....skip
32870 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
32880 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
32890 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
328a0 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
328b0 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
328c0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
328d0 54 49 4e 43 54 20 2b 20 39 38 20 2b 20 36 30 20  TINCT + 98 + 60 
328e0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
328f0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35  S cor0..----..15
32900 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  8....query I row
32910 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63  sort..SELECT - c
32920 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol2 AS col1 FROM
32930 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
32940 45 52 45 20 4e 55 4c 4c 20 3c 3d 20 4e 55 4c 4c  ERE NULL <= NULL
32950 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
32960 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
32970 54 20 2d 20 2d 20 31 37 20 46 52 4f 4d 20 74 61  T - - 17 FROM ta
32980 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
32990 20 4e 55 4c 4c 20 3e 3d 20 2d 20 33 30 0d 0a 2d   NULL >= - 30..-
329a0 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  ---....skipif po
329b0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
329c0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
329d0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
329e0 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
329f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
32a00 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20  .SELECT ALL + + 
32a10 38 34 20 2a 20 2b 20 63 6f 6c 31 20 63 6f 6c 32  84 * + col1 col2
32a20 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d   FROM tab0 cor0.
32a30 0a 2d 2d 2d 2d 0d 0a 31 37 36 34 0d 0a 36 38 30  .----..1764..680
32a40 34 0d 0a 38 34 0d 0a 0d 0a 73 6b 69 70 69 66 20  4..84....skipif 
32a50 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
32a60 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
32a70 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
32a80 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
32a90 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
32aa0 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31  t..SELECT + col1
32ab0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
32ac0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20  AS cor0 WHERE ( 
32ad0 4e 55 4c 4c 20 29 20 3d 20 4e 55 4c 4c 0d 0a 2d  NULL ) = NULL..-
32ae0 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
32af0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
32b00 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
32b10 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
32b20 31 31 33 34 0d 0a 53 45 4c 45 43 54 20 2b 20 32  1134..SELECT + 2
32b30 32 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  2 - - COUNT( * )
32b40 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
32b50 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20 4e 55   NULL BETWEEN NU
32b60 4c 4c 20 41 4e 44 20 63 6f 6c 31 20 2a 20 2b 20  LL AND col1 * + 
32b70 63 6f 6c 31 20 2a 20 2d 20 2d 20 63 6f 6c 31 20  col1 * - - col1 
32b80 2b 20 2b 20 2b 20 36 37 20 2a 20 2d 20 2d 20 63  + + + 67 * - - c
32b90 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 32 32 0d 0a 0d  ol1..----..22...
32ba0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
32bb0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
32bc0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
32bd0 6c 61 62 65 6c 2d 31 31 33 34 0d 0a 53 45 4c 45  label-1134..SELE
32be0 43 54 20 2b 20 32 32 20 2d 20 2d 20 43 4f 55 4e  CT + 22 - - COUN
32bf0 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  T ( * ) FROM tab
32c00 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 42 45 54  1 WHERE NULL BET
32c10 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 63 6f  WEEN NULL AND co
32c20 6c 31 20 2a 20 2b 20 63 6f 6c 31 20 2a 20 2d 20  l1 * + col1 * - 
32c30 2d 20 63 6f 6c 31 20 2b 20 2b 20 2b 20 36 37 20  - col1 + + + 67 
32c40 2a 20 2d 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d  * - - col1..----
32c50 0d 0a 32 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..22....onlyif m
32c60 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
32c70 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
32c80 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
32c90 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33 35 0d 0a  ort label-1135..
32ca0 53 45 4c 45 43 54 20 2d 20 43 41 53 54 28 20 4e  SELECT - CAST( N
32cb0 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
32cc0 2b 20 2b 20 63 6f 6c 31 20 2d 20 63 6f 6c 30 2c  + + col1 - col0,
32cd0 20 2b 20 33 32 20 41 53 20 63 6f 6c 30 20 46 52   + 32 AS col0 FR
32ce0 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 55  OM tab0 WHERE NU
32cf0 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  LL IS NULL..----
32d00 0d 0a 4e 55 4c 4c 0d 0a 33 32 0d 0a 4e 55 4c 4c  ..NULL..32..NULL
32d10 0d 0a 33 32 0d 0a 4e 55 4c 4c 0d 0a 33 32 0d 0a  ..32..NULL..32..
32d20 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
32d30 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
32d40 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
32d50 74 20 6c 61 62 65 6c 2d 31 31 33 35 0d 0a 53 45  t label-1135..SE
32d60 4c 45 43 54 20 2d 20 43 41 53 54 20 28 20 4e 55  LECT - CAST ( NU
32d70 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
32d80 2b 20 2b 20 63 6f 6c 31 20 2d 20 63 6f 6c 30 2c  + + col1 - col0,
32d90 20 2b 20 33 32 20 41 53 20 63 6f 6c 30 20 46 52   + 32 AS col0 FR
32da0 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 55  OM tab0 WHERE NU
32db0 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  LL IS NULL..----
32dc0 0d 0a 4e 55 4c 4c 0d 0a 33 32 0d 0a 4e 55 4c 4c  ..NULL..32..NULL
32dd0 0d 0a 33 32 0d 0a 4e 55 4c 4c 0d 0a 33 32 0d 0a  ..32..NULL..32..
32de0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
32df0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
32e00 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
32e10 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33 36 0d  sort label-1136.
32e20 0a 53 45 4c 45 43 54 20 4d 41 58 28 20 2d 20 33  .SELECT MAX( - 3
32e30 39 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  9 ) FROM tab0..-
32e40 2d 2d 2d 0d 0a 2d 33 39 0d 0a 0d 0a 73 6b 69 70  ---..-39....skip
32e50 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
32e60 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
32e70 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
32e80 2d 31 31 33 36 0d 0a 53 45 4c 45 43 54 20 4d 41  -1136..SELECT MA
32e90 58 20 28 20 2d 20 33 39 20 29 20 46 52 4f 4d 20  X ( - 39 ) FROM 
32ea0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 39 0d  tab0..----..-39.
32eb0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
32ec0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
32ed0 20 63 6f 6c 32 20 2a 20 2d 20 2d 20 63 6f 6c 32   col2 * - - col2
32ee0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
32ef0 0d 0a 33 34 38 31 0d 0a 34 36 32 34 0d 0a 39 32  ..3481..4624..92
32f00 31 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  16....onlyif mys
32f10 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
32f20 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
32f30 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
32f40 31 33 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  138..SELECT ALL 
32f50 2d 20 53 55 4d 28 20 44 49 53 54 49 4e 43 54 20  - SUM( DISTINCT 
32f60 2d 20 2b 20 39 38 20 29 20 2b 20 34 20 46 52 4f  - + 98 ) + 4 FRO
32f70 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30  M tab0..----..10
32f80 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  2....skipif mysq
32f90 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
32fa0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
32fb0 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33 38 0d 0a  ort label-1138..
32fc0 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 53 55 4d  SELECT ALL - SUM
32fd0 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20   ( DISTINCT - + 
32fe0 39 38 20 29 20 2b 20 34 20 46 52 4f 4d 20 74 61  98 ) + 4 FROM ta
32ff0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 32 0d 0a 0d  b0..----..102...
33000 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
33010 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20  ..SELECT - col1 
33020 2d 20 2b 20 32 35 20 2d 20 2b 20 63 6f 6c 30 20  - + 25 - + col0 
33030 2b 20 2b 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 63  + + - col2 + + c
33040 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
33050 2d 2d 2d 0d 0a 2d 31 36 39 0d 0a 2d 31 37 32 0d  ---..-169..-172.
33060 0a 2d 31 38 34 0d 0a 0d 0a 71 75 65 72 79 20 49  .-184....query I
33070 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
33080 54 20 41 4c 4c 20 63 6f 6c 30 20 2b 20 2b 20 63  T ALL col0 + + c
33090 6f 6c 31 20 2b 20 2b 20 33 30 20 41 53 20 63 6f  ol1 + + 30 AS co
330a0 6c 31 2c 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f  l1, - col0 AS co
330b0 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l2 FROM tab0..--
330c0 2d 2d 0d 0a 31 32 36 0d 0a 2d 31 35 0d 0a 31 32  --..126..-15..12
330d0 38 0d 0a 2d 39 37 0d 0a 31 33 38 0d 0a 2d 38 37  8..-97..138..-87
330e0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
330f0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
33100 2b 20 31 34 20 2a 20 2b 20 63 6f 6c 31 20 2b 20  + 14 * + col1 + 
33110 2b 20 34 34 20 41 53 20 63 6f 6c 31 20 46 52 4f  + 44 AS col1 FRO
33120 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab1 cor0..---
33130 2d 0d 0a 31 31 34 0d 0a 32 34 30 0d 0a 37 30 32  -..114..240..702
33140 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
33150 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20  ort..SELECT - + 
33160 63 6f 6c 30 20 2f 20 2d 20 63 6f 6c 31 20 2b 20  col0 / - col1 + 
33170 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  - col2 FROM tab0
33180 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d   AS cor0 WHERE -
33190 20 38 39 20 3e 20 2d 20 2d 20 63 6f 6c 30 20 2f   89 > - - col0 /
331a0 20 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d   - col2..----...
331b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
331c0 0d 0a 53 45 4c 45 43 54 20 2d 20 31 33 20 2b 20  ..SELECT - 13 + 
331d0 2d 20 33 31 20 2d 20 2d 20 2d 20 34 36 20 46 52  - 31 - - - 46 FR
331e0 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d  OM tab0 cor0..--
331f0 2d 2d 0d 0a 2d 39 30 0d 0a 2d 39 30 0d 0a 2d 39  --..-90..-90..-9
33200 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
33210 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
33220 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
33230 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
33240 6c 61 62 65 6c 2d 31 31 34 34 0d 0a 53 45 4c 45  label-1144..SELE
33250 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 41  CT DISTINCT + CA
33260 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
33270 45 44 20 29 20 2a 20 2b 20 2b 20 63 6f 6c 31 20  ED ) * + + col1 
33280 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
33290 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  0..----..NULL...
332a0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
332b0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
332c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
332d0 6c 61 62 65 6c 2d 31 31 34 34 0d 0a 53 45 4c 45  label-1144..SELE
332e0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 41  CT DISTINCT + CA
332f0 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
33300 45 47 45 52 20 29 20 2a 20 2b 20 2b 20 63 6f 6c  EGER ) * + + col
33310 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
33320 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
33330 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
33340 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
33350 20 63 6f 6c 30 20 2a 20 31 32 20 41 53 20 63 6f   col0 * 12 AS co
33360 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
33370 2d 2d 0d 0a 2d 35 35 32 0d 0a 2d 37 36 38 0d 0a  --..-552..-768..
33380 2d 39 30 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49  -900....query II
33390 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
333a0 20 2b 20 2d 20 34 38 20 2d 20 2d 20 63 6f 6c 31   + - 48 - - col1
333b0 20 2b 20 28 20 63 6f 6c 31 20 29 20 2a 20 34 2c   + ( col1 ) * 4,
333c0 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52   col0 AS col2 FR
333d0 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 55  OM tab2 WHERE NU
333e0 4c 4c 20 4e 4f 54 20 49 4e 20 28 20 2d 20 63 6f  LL NOT IN ( - co
333f0 6c 32 2c 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d  l2, col0 )..----
33400 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
33410 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
33420 49 4e 43 54 20 28 20 2b 20 2d 20 28 20 2b 20 2d  INCT ( + - ( + -
33430 20 63 6f 6c 30 20 29 20 29 20 41 53 20 63 6f 6c   col0 ) ) AS col
33440 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  1 FROM tab0 cor0
33450 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 38 37 0d 0a  ..----..15..87..
33460 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  97....onlyif mys
33470 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
33480 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
33490 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
334a0 31 34 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  148..SELECT DIST
334b0 49 4e 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20  INCT - COUNT( * 
334c0 29 20 2a 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  ) * + COUNT( * )
334d0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
334e0 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
334f0 0d 0a 2d 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..-9....skipif m
33500 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
33510 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
33520 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 34  owsort label-114
33530 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  8..SELECT DISTIN
33540 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29  CT - COUNT ( * )
33550 20 2a 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29   * + COUNT ( * )
33560 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
33570 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
33580 0d 0a 2d 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..-9....onlyif m
33590 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
335a0 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
335b0 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
335c0 6f 72 74 20 6c 61 62 65 6c 2d 31 31 34 39 0d 0a  ort label-1149..
335d0 53 45 4c 45 43 54 20 41 4c 4c 20 35 32 2c 20 2b  SELECT ALL 52, +
335e0 20 28 20 2b 20 2b 20 38 20 29 20 44 49 56 20 28   ( + + 8 ) DIV (
335f0 20 2d 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c   - col0 ) AS col
33600 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
33610 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 32 0d 0a 30  or0..----..52..0
33620 0d 0a 35 32 0d 0a 30 0d 0a 35 32 0d 0a 30 0d 0a  ..52..0..52..0..
33630 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
33640 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
33650 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
33660 74 20 6c 61 62 65 6c 2d 31 31 34 39 0d 0a 53 45  t label-1149..SE
33670 4c 45 43 54 20 41 4c 4c 20 35 32 2c 20 2b 20 28  LECT ALL 52, + (
33680 20 2b 20 2b 20 38 20 29 20 2f 20 28 20 2d 20 63   + + 8 ) / ( - c
33690 6f 6c 30 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ol0 ) AS col2 FR
336a0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
336b0 0a 2d 2d 2d 2d 0d 0a 35 32 0d 0a 30 0d 0a 35 32  .----..52..0..52
336c0 0d 0a 30 0d 0a 35 32 0d 0a 30 0d 0a 0d 0a 71 75  ..0..52..0....qu
336d0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
336e0 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 63 6f  ELECT ALL + - co
336f0 6c 30 20 2a 20 2d 20 28 20 2b 20 36 34 20 29 20  l0 * - ( + 64 ) 
33700 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
33710 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
33720 0a 33 32 36 34 0d 0a 35 34 34 30 0d 0a 35 38 32  .3264..5440..582
33730 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  4....skipif post
33740 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
33750 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
33760 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
33770 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
33780 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
33790 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 41 53  SELECT + col0 AS
337a0 20 63 6f 6c 32 2c 20 63 6f 6c 32 20 63 6f 6c 31   col2, col2 col1
337b0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
337c0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 39 36  r0..----..51..96
337d0 0d 0a 38 35 0d 0a 35 39 0d 0a 39 31 0d 0a 36 38  ..85..59..91..68
337e0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
337f0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
33800 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
33810 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 35  owsort label-115
33820 32 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20 2d 20  2..SELECT - ( - 
33830 53 55 4d 28 20 41 4c 4c 20 2b 20 2b 20 35 36 20  SUM( ALL + + 56 
33840 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ) ) AS col1 FROM
33850 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
33860 2d 2d 2d 0d 0a 31 36 38 0d 0a 0d 0a 73 6b 69 70  ---..168....skip
33870 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
33880 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
33890 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
338a0 2d 31 31 35 32 0d 0a 53 45 4c 45 43 54 20 2d 20  -1152..SELECT - 
338b0 28 20 2d 20 53 55 4d 20 28 20 41 4c 4c 20 2b 20  ( - SUM ( ALL + 
338c0 2b 20 35 36 20 29 20 29 20 41 53 20 63 6f 6c 31  + 56 ) ) AS col1
338d0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
338e0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 38 0d 0a 0d  r0..----..168...
338f0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
33900 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
33910 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
33920 6f 72 74 20 6c 61 62 65 6c 2d 31 31 35 33 0d 0a  ort label-1153..
33930 53 45 4c 45 43 54 20 2b 20 4d 41 58 28 20 2d 20  SELECT + MAX( - 
33940 31 39 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  19 ) AS col1 FRO
33950 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
33960 2d 2d 2d 2d 0d 0a 2d 31 39 0d 0a 0d 0a 73 6b 69  ----..-19....ski
33970 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
33980 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
33990 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
339a0 6c 2d 31 31 35 33 0d 0a 53 45 4c 45 43 54 20 2b  l-1153..SELECT +
339b0 20 4d 41 58 20 28 20 2d 20 31 39 20 29 20 41 53   MAX ( - 19 ) AS
339c0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
339d0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
339e0 31 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  19....onlyif mys
339f0 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
33a00 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
33a10 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
33a20 74 20 6c 61 62 65 6c 2d 31 31 35 34 0d 0a 53 45  t label-1154..SE
33a30 4c 45 43 54 20 41 4c 4c 20 32 30 20 44 49 56 20  LECT ALL 20 DIV 
33a40 2d 20 34 32 2c 20 2d 20 63 6f 6c 30 20 41 53 20  - 42, - col0 AS 
33a50 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
33a60 2d 2d 2d 2d 0d 0a 30 0d 0a 2d 31 35 0d 0a 30 0d  ----..0..-15..0.
33a70 0a 2d 38 37 0d 0a 30 0d 0a 2d 39 37 0d 0a 0d 0a  .-87..0..-97....
33a80 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
33a90 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
33aa0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
33ab0 6c 61 62 65 6c 2d 31 31 35 34 0d 0a 53 45 4c 45  label-1154..SELE
33ac0 43 54 20 41 4c 4c 20 32 30 20 2f 20 2d 20 34 32  CT ALL 20 / - 42
33ad0 2c 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30  , - col0 AS col0
33ae0 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
33af0 0d 0a 30 0d 0a 2d 31 35 0d 0a 30 0d 0a 2d 38 37  ..0..-15..0..-87
33b00 0d 0a 30 0d 0a 2d 39 37 0d 0a 0d 0a 6f 6e 6c 79  ..0..-97....only
33b10 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
33b20 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
33b30 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
33b40 61 62 65 6c 2d 31 31 35 35 0d 0a 53 45 4c 45 43  abel-1155..SELEC
33b50 54 20 2d 20 35 20 2a 20 53 55 4d 28 20 41 4c 4c  T - 5 * SUM( ALL
33b60 20 2d 20 2d 20 63 6f 6c 30 20 29 20 41 53 20 63   - - col0 ) AS c
33b70 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 57 48  ol1 FROM tab1 WH
33b80 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20  ERE NOT NULL IS 
33b90 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
33ba0 2d 31 31 33 35 0d 0a 0d 0a 73 6b 69 70 69 66 20  -1135....skipif 
33bb0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
33bc0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
33bd0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
33be0 35 35 0d 0a 53 45 4c 45 43 54 20 2d 20 35 20 2a  55..SELECT - 5 *
33bf0 20 53 55 4d 20 28 20 41 4c 4c 20 2d 20 2d 20 63   SUM ( ALL - - c
33c00 6f 6c 30 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ol0 ) AS col1 FR
33c10 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f  OM tab1 WHERE NO
33c20 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55  T NULL IS NOT NU
33c30 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 33 35 0d  LL..----..-1135.
33c40 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
33c50 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
33c60 4e 43 54 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c  NCT col2 + - col
33c70 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  2 AS col1 FROM t
33c80 61 62 32 20 57 48 45 52 45 20 4e 55 4c 4c 20 49  ab2 WHERE NULL I
33c90 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  S NULL..----..0.
33ca0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
33cb0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
33cc0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
33cd0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 35 37  wsort label-1157
33ce0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
33cf0 54 20 53 55 4d 28 20 2d 20 2d 20 33 38 20 29 20  T SUM( - - 38 ) 
33d00 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
33d10 0a 31 31 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .114....skipif m
33d20 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
33d30 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
33d40 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 35  owsort label-115
33d50 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  7..SELECT DISTIN
33d60 43 54 20 53 55 4d 20 28 20 2d 20 2d 20 33 38 20  CT SUM ( - - 38 
33d70 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  ) FROM tab1..---
33d80 2d 0d 0a 31 31 34 0d 0a 0d 0a 6f 6e 6c 79 69 66  -..114....onlyif
33d90 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
33da0 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
33db0 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
33dc0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 35 38 0d  sort label-1158.
33dd0 0a 53 45 4c 45 43 54 20 2d 20 43 41 53 54 28 20  .SELECT - CAST( 
33de0 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
33df0 20 2d 20 2d 20 32 33 20 46 52 4f 4d 20 74 61 62   - - 23 FROM tab
33e00 31 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  1 WHERE NOT NULL
33e10 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
33e20 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
33e30 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
33e40 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
33e50 20 6c 61 62 65 6c 2d 31 31 35 38 0d 0a 53 45 4c   label-1158..SEL
33e60 45 43 54 20 2d 20 43 41 53 54 20 28 20 4e 55 4c  ECT - CAST ( NUL
33e70 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2d  L AS INTEGER ) -
33e80 20 2d 20 32 33 20 46 52 4f 4d 20 74 61 62 31 20   - 23 FROM tab1 
33e90 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49  WHERE NOT NULL I
33ea0 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  S NULL..----....
33eb0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
33ec0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
33ed0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
33ee0 72 74 20 6c 61 62 65 6c 2d 31 31 35 39 0d 0a 53  rt label-1159..S
33ef0 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28 20 2d  ELECT - COUNT( -
33f00 20 2d 20 33 20 29 20 46 52 4f 4d 20 74 61 62 32   - 3 ) FROM tab2
33f10 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20   WHERE NOT col1 
33f20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d  IS NULL..----..-
33f30 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
33f40 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
33f50 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
33f60 6f 72 74 20 6c 61 62 65 6c 2d 31 31 35 39 0d 0a  ort label-1159..
33f70 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 20 28  SELECT - COUNT (
33f80 20 2d 20 2d 20 33 20 29 20 46 52 4f 4d 20 74 61   - - 3 ) FROM ta
33f90 62 32 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  b2 WHERE NOT col
33fa0 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  1 IS NULL..----.
33fb0 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .-3....query I r
33fc0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
33fd0 4c 4c 20 2d 20 2d 20 34 32 20 41 53 20 63 6f 6c  LL - - 42 AS col
33fe0 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
33ff0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 32 0d 0a 34  or0..----..42..4
34000 32 0d 0a 34 32 0d 0a 0d 0a 71 75 65 72 79 20 49  2..42....query I
34010 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
34020 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
34030 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
34040 54 20 33 39 20 3c 3d 20 2d 20 2b 20 63 6f 6c 30  T 39 <= - + col0
34050 20 2f 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d   / - col1..----.
34060 0a 32 33 0d 0a 34 30 0d 0a 35 38 0d 0a 0d 0a 71  .23..40..58....q
34070 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
34080 53 45 4c 45 43 54 20 2d 20 2d 20 33 35 20 2a 20  SELECT - - 35 * 
34090 37 36 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  76 AS col0 FROM 
340a0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
340b0 2d 2d 0d 0a 32 36 36 30 0d 0a 32 36 36 30 0d 0a  --..2660..2660..
340c0 32 36 36 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  2660....query I 
340d0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
340e0 2b 20 28 20 2b 20 63 6f 6c 30 20 29 20 41 53 20  + ( + col0 ) AS 
340f0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 57  col0 FROM tab1 W
34100 48 45 52 45 20 4e 4f 54 20 2b 20 2b 20 34 32 20  HERE NOT + + 42 
34110 2f 20 37 31 20 2b 20 2d 20 63 6f 6c 32 20 2f 20  / 71 + - col2 / 
34120 28 20 2d 20 33 36 20 29 20 49 53 20 4e 4f 54 20  ( - 36 ) IS NOT 
34130 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
34140 65 72 79 20 49 49 49 49 49 49 20 72 6f 77 73 6f  ery IIIIII rowso
34150 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
34160 4e 43 54 20 2a 20 46 52 4f 4d 20 28 20 74 61 62  NCT * FROM ( tab
34170 30 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  0 AS cor0 CROSS 
34180 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63 6f 72  JOIN tab0 AS cor
34190 31 20 29 20 57 48 45 52 45 20 4e 4f 54 20 4e 55  1 ) WHERE NOT NU
341a0 4c 4c 20 3d 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d  LL = ( NULL )..-
341b0 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ---....query III
341c0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
341d0 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
341e0 20 74 61 62 32 20 57 48 45 52 45 20 63 6f 6c 31   tab2 WHERE col1
341f0 20 2b 20 2d 20 2d 20 35 30 20 49 53 20 4e 55 4c   + - - 50 IS NUL
34200 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
34210 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
34220 45 43 54 20 2d 20 2b 20 63 6f 6c 30 2c 20 63 6f  ECT - + col0, co
34230 6c 31 20 2a 20 2d 20 38 39 20 41 53 20 63 6f 6c  l1 * - 89 AS col
34240 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
34250 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a  or0..----..-15..
34260 2d 37 32 30 39 0d 0a 2d 38 37 0d 0a 2d 31 38 36  -7209..-87..-186
34270 39 0d 0a 2d 39 37 0d 0a 2d 38 39 0d 0a 0d 0a 71  9..-97..-89....q
34280 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
34290 53 45 4c 45 43 54 20 41 4c 4c 20 36 35 20 2b 20  SELECT ALL 65 + 
342a0 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  - col2 FROM tab1
342b0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
342c0 2d 33 0d 0a 2d 33 31 0d 0a 36 0d 0a 0d 0a 73 6b  -3..-31..6....sk
342d0 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
342e0 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
342f0 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
34300 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
34310 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
34320 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
34330 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 36 39 20 63   - col1 * + 69 c
34340 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
34350 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 35   cor0..----..-35
34360 31 39 0d 0a 2d 34 36 32 33 0d 0a 2d 35 33 31 33  19..-4623..-5313
34370 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
34380 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
34390 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
343a0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 36  owsort label-116
343b0 39 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e  9..SELECT + COUN
343c0 54 28 20 2a 20 29 20 2b 20 2b 20 31 32 20 46 52  T( * ) + + 12 FR
343d0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
343e0 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 0d 0a 73 6b 69  .----..15....ski
343f0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
34400 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
34410 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
34420 6c 2d 31 31 36 39 0d 0a 53 45 4c 45 43 54 20 2b  l-1169..SELECT +
34430 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2b   COUNT ( * ) + +
34440 20 31 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53   12 FROM tab0 AS
34450 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d   cor0..----..15.
34460 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
34470 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
34480 4e 43 54 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 32  NCT + col0 + - 2
34490 33 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  3 AS col2 FROM t
344a0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
344b0 2d 0d 0a 2d 38 0d 0a 36 34 0d 0a 37 34 0d 0a 0d  -..-8..64..74...
344c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
344d0 0d 0a 53 45 4c 45 43 54 20 2d 20 34 39 20 2b 20  ..SELECT - 49 + 
344e0 38 33 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  83 FROM tab2 AS 
344f0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 34 0d 0a  cor0..----..34..
34500 33 34 0d 0a 33 34 0d 0a 0d 0a 6f 6e 6c 79 69 66  34..34....onlyif
34510 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
34520 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
34530 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
34540 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 37 32 0d  sort label-1172.
34550 0a 53 45 4c 45 43 54 20 2d 20 35 33 20 2b 20 2d  .SELECT - 53 + -
34560 20 43 41 53 54 28 20 63 6f 6c 31 20 41 53 20 53   CAST( col1 AS S
34570 49 47 4e 45 44 20 29 20 2a 20 2d 20 2b 20 63 6f  IGNED ) * - + co
34580 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l0 AS col2 FROM 
34590 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
345a0 2d 2d 0d 0a 33 37 32 0d 0a 34 32 32 34 0d 0a 36  --..372..4224..6
345b0 36 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  61....skipif mys
345c0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
345d0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
345e0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 37 32 0d  sort label-1172.
345f0 0a 53 45 4c 45 43 54 20 2d 20 35 33 20 2b 20 2d  .SELECT - 53 + -
34600 20 43 41 53 54 20 28 20 63 6f 6c 31 20 41 53 20   CAST ( col1 AS 
34610 49 4e 54 45 47 45 52 20 29 20 2a 20 2d 20 2b 20  INTEGER ) * - + 
34620 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f  col0 AS col2 FRO
34630 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
34640 2d 2d 2d 2d 0d 0a 33 37 32 0d 0a 34 32 32 34 0d  ----..372..4224.
34650 0a 36 36 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .661....query I 
34660 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
34670 41 4c 4c 20 2d 20 2d 20 32 31 20 41 53 20 63 6f  ALL - - 21 AS co
34680 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
34690 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 0d 0a  cor0..----..21..
346a0 32 31 0d 0a 32 31 0d 0a 0d 0a 6f 6e 6c 79 69 66  21..21....onlyif
346b0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
346c0 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
346d0 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
346e0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 37 34 0d  sort label-1174.
346f0 0a 53 45 4c 45 43 54 20 2b 20 2b 20 43 41 53 54  .SELECT + + CAST
34700 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
34710 20 29 20 2b 20 2b 20 34 30 20 63 6f 6c 32 20 46   ) + + 40 col2 F
34720 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
34730 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
34740 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  LL..NULL....skip
34750 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
34760 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
34770 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
34780 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
34790 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
347a0 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
347b0 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
347c0 6f 72 74 20 6c 61 62 65 6c 2d 31 31 37 34 0d 0a  ort label-1174..
347d0 53 45 4c 45 43 54 20 2b 20 2b 20 43 41 53 54 20  SELECT + + CAST 
347e0 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
347f0 52 20 29 20 2b 20 2b 20 34 30 20 63 6f 6c 32 20  R ) + + 40 col2 
34800 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
34810 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  0..----..NULL..N
34820 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c  ULL..NULL....onl
34830 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
34840 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
34850 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
34860 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
34870 37 35 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53  75..SELECT - CAS
34880 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
34890 44 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  D ) AS col1 FROM
348a0 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
348b0 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c  ERE NULL IS NULL
348c0 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
348d0 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  LL..NULL....skip
348e0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
348f0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
34900 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
34910 2d 31 31 37 35 0d 0a 53 45 4c 45 43 54 20 2d 20  -1175..SELECT - 
34920 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
34930 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 31  NTEGER ) AS col1
34940 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
34950 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53  r0 WHERE NULL IS
34960 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   NULL..----..NUL
34970 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
34980 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
34990 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20  ..SELECT + col0 
349a0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
349b0 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e 4f 54  1 WHERE NULL NOT
349c0 20 49 4e 20 28 20 2d 20 63 6f 6c 32 2c 20 33 36   IN ( - col2, 36
349d0 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72   )..----....quer
349e0 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
349f0 4c 45 43 54 20 41 4c 4c 20 2b 20 35 32 20 41 53  LECT ALL + 52 AS
34a00 20 63 6f 6c 30 2c 20 63 6f 6c 30 20 41 53 20 63   col0, col0 AS c
34a10 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 57 48  ol0 FROM tab0 WH
34a20 45 52 45 20 2b 20 31 31 20 49 53 20 4e 4f 54 20  ERE + 11 IS NOT 
34a30 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 32 0d 0a  NULL..----..52..
34a40 31 35 0d 0a 35 32 0d 0a 38 37 0d 0a 35 32 0d 0a  15..52..87..52..
34a50 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  97....onlyif mys
34a60 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
34a70 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20  : DECIMAL type: 
34a80 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
34a90 74 20 6c 61 62 65 6c 2d 31 31 37 38 0d 0a 53 45  t label-1178..SE
34aa0 4c 45 43 54 20 41 4c 4c 20 2b 20 43 41 53 54 28  LECT ALL + CAST(
34ab0 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c   NULL AS DECIMAL
34ac0 20 29 20 2b 20 2b 20 34 33 20 46 52 4f 4d 20 74   ) + + 43 FROM t
34ad0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
34ae0 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
34af0 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
34b00 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
34b10 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
34b20 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 37 38  wsort label-1178
34b30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43  ..SELECT ALL + C
34b40 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45  AST ( NULL AS RE
34b50 41 4c 20 29 20 2b 20 2b 20 34 33 20 46 52 4f 4d  AL ) + + 43 FROM
34b60 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
34b70 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
34b80 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .NULL....onlyif 
34b90 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
34ba0 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70  tax: DECIMAL typ
34bb0 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
34bc0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 37 39 0d  sort label-1179.
34bd0 0a 53 45 4c 45 43 54 20 43 41 53 54 28 20 4e 55  .SELECT CAST( NU
34be0 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20  LL AS DECIMAL ) 
34bf0 2d 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 32 38 20  - - col1 + - 28 
34c00 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
34c10 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  0..----..NULL..N
34c20 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ULL..NULL....ski
34c30 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
34c40 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
34c50 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
34c60 6c 2d 31 31 37 39 0d 0a 53 45 4c 45 43 54 20 43  l-1179..SELECT C
34c70 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45  AST ( NULL AS RE
34c80 41 4c 20 29 20 2d 20 2d 20 63 6f 6c 31 20 2b 20  AL ) - - col1 + 
34c90 2d 20 32 38 20 46 52 4f 4d 20 74 61 62 32 20 41  - 28 FROM tab2 A
34ca0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
34cb0 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
34cc0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
34cd0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
34ce0 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 2b 20  OM tab2 WHERE + 
34cf0 39 33 20 2b 20 2b 20 63 6f 6c 32 20 49 53 20 4e  93 + + col2 IS N
34d00 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
34d10 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
34d20 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
34d30 31 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  10 AS col1 FROM 
34d40 74 61 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f  tab1 AS cor0 CRO
34d50 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20  SS JOIN tab0 AS 
34d60 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d  cor1..----..-10.
34d70 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
34d80 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
34d90 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
34da0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 38 32  wsort label-1182
34db0 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54  ..SELECT + COUNT
34dc0 28 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 29 20 46  ( ALL + col2 ) F
34dd0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
34de0 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
34df0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
34e00 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
34e10 6f 72 74 20 6c 61 62 65 6c 2d 31 31 38 32 0d 0a  ort label-1182..
34e20 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20 28  SELECT + COUNT (
34e30 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 29 20 46 52   ALL + col2 ) FR
34e40 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33  OM tab1..----..3
34e50 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
34e60 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
34e70 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
34e80 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
34e90 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
34ea0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
34eb0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
34ec0 31 37 20 2a 20 2b 20 37 39 20 2a 20 2b 20 2d 20  17 * + 79 * + - 
34ed0 33 35 20 2d 20 2d 20 2b 20 63 6f 6c 32 20 63 6f  35 - - + col2 co
34ee0 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
34ef0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 37 30 31  cor0..----..4701
34f00 35 0d 0a 34 37 30 35 32 0d 0a 34 37 31 30 34 0d  5..47052..47104.
34f10 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
34f20 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
34f30 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
34f40 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20   WHERE NOT col1 
34f50 3e 3d 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 2d 20  >= + + col2 * - 
34f60 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  col2..----....on
34f70 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
34f80 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
34f90 20 74 79 70 65 3a 20 44 49 56 20 66 6f 72 20 69   type: DIV for i
34fa0 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
34fb0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
34fc0 72 74 20 6c 61 62 65 6c 2d 31 31 38 35 0d 0a 53  rt label-1185..S
34fd0 45 4c 45 43 54 20 41 4c 4c 20 33 35 20 44 49 56  ELECT ALL 35 DIV
34fe0 20 43 41 53 54 28 20 2d 20 63 6f 6c 32 20 41 53   CAST( - col2 AS
34ff0 20 53 49 47 4e 45 44 20 29 20 2a 20 2d 20 2b 20   SIGNED ) * - + 
35000 63 6f 6c 30 20 2a 20 38 31 20 2a 20 33 39 20 41  col0 * 81 * 39 A
35010 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
35020 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
35030 30 0d 0a 30 0d 0a 31 34 35 33 31 34 0d 0a 0d 0a  0..0..145314....
35040 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
35050 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
35060 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
35070 61 62 65 6c 2d 31 31 38 35 0d 0a 53 45 4c 45 43  abel-1185..SELEC
35080 54 20 41 4c 4c 20 33 35 20 2f 20 43 41 53 54 20  T ALL 35 / CAST 
35090 28 20 2d 20 63 6f 6c 32 20 41 53 20 49 4e 54 45  ( - col2 AS INTE
350a0 47 45 52 20 29 20 2a 20 2d 20 2b 20 63 6f 6c 30  GER ) * - + col0
350b0 20 2a 20 38 31 20 2a 20 33 39 20 41 53 20 63 6f   * 81 * 39 AS co
350c0 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
350d0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30  cor0..----..0..0
350e0 0d 0a 31 34 35 33 31 34 0d 0a 0d 0a 71 75 65 72  ..145314....quer
350f0 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
35100 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
35110 2b 20 34 30 2c 20 35 38 20 41 53 20 63 6f 6c 32  + 40, 58 AS col2
35120 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
35130 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 30 0d 0a 35 38  r0..----..40..58
35140 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
35150 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
35160 49 4e 43 54 20 2d 20 39 33 20 2a 20 63 6f 6c 32  INCT - 93 * col2
35170 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   + col2 FROM tab
35180 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
35190 0a 2d 35 34 32 38 0d 0a 2d 36 32 35 36 0d 0a 2d  .-5428..-6256..-
351a0 38 38 33 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20  8832....query I 
351b0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
351c0 41 4c 4c 20 2b 20 28 20 2b 20 2d 20 35 39 20 29  ALL + ( + - 59 )
351d0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
351e0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a 2d  r0..----..-59..-
351f0 35 39 0d 0a 2d 35 39 0d 0a 0d 0a 71 75 65 72 79  59..-59....query
35200 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
35210 43 54 20 41 4c 4c 20 2b 20 2d 20 32 35 20 2a 20  CT ALL + - 25 * 
35220 2b 20 63 6f 6c 32 20 2a 20 2d 20 35 31 20 46 52  + col2 * - 51 FR
35230 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
35240 0a 2d 2d 2d 2d 0d 0a 31 32 36 32 32 35 0d 0a 31  .----..126225..1
35250 32 37 35 30 0d 0a 35 39 39 32 35 0d 0a 0d 0a 71  2750..59925....q
35260 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
35270 53 45 4c 45 43 54 20 2b 20 36 30 20 46 52 4f 4d  SELECT + 60 FROM
35280 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
35290 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 30 20 49  ERE NOT + col0 I
352a0 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
352b0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
352c0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  ort..SELECT + co
352d0 6c 32 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 2a 20  l2 * - - col0 * 
352e0 33 33 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  33 FROM tab1..--
352f0 2d 2d 0d 0a 31 36 31 35 36 38 0d 0a 31 36 35 34  --..161568..1654
35300 39 35 0d 0a 32 30 34 32 30 34 0d 0a 0d 0a 71 75  95..204204....qu
35310 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
35320 45 4c 45 43 54 20 2d 20 31 37 20 2a 20 63 6f 6c  ELECT - 17 * col
35330 30 20 2a 20 39 33 20 41 53 20 63 6f 6c 31 20 46  0 * 93 AS col1 F
35340 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
35350 2d 31 33 34 33 38 35 0d 0a 2d 31 34 33 38 37 31  -134385..-143871
35360 0d 0a 2d 38 30 36 33 31 0d 0a 0d 0a 71 75 65 72  ..-80631....quer
35370 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
35380 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 37 38  LECT DISTINCT 78
35390 2c 20 38 37 20 2a 20 63 6f 6c 30 20 2a 20 2b 20  , 87 * col0 * + 
353a0 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f  col2 AS col1 FRO
353b0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 37 38  M tab0..----..78
353c0 0d 0a 36 31 33 33 35 0d 0a 37 38 0d 0a 37 35 36  ..61335..78..756
353d0 39 30 0d 0a 37 38 0d 0a 38 33 35 34 36 31 0d 0a  90..78..835461..
353e0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
353f0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
35400 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  INCT * FROM tab1
35410 20 57 48 45 52 45 20 2d 20 2b 20 63 6f 6c 30 20   WHERE - + col0 
35420 3c 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  <> NULL..----...
35430 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
35440 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
35450 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
35460 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 39 35 0d  sort label-1195.
35470 0a 53 45 4c 45 43 54 20 41 4c 4c 20 33 34 20 41  .SELECT ALL 34 A
35480 53 20 63 6f 6c 32 2c 20 2d 20 4d 49 4e 28 20 41  S col2, - MIN( A
35490 4c 4c 20 2b 20 39 39 20 29 20 46 52 4f 4d 20 74  LL + 99 ) FROM t
354a0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 34 0d 0a 2d  ab1..----..34..-
354b0 39 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  99....skipif mys
354c0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
354d0 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
354e0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 39 35  wsort label-1195
354f0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 33 34 20  ..SELECT ALL 34 
35500 41 53 20 63 6f 6c 32 2c 20 2d 20 4d 49 4e 20 28  AS col2, - MIN (
35510 20 41 4c 4c 20 2b 20 39 39 20 29 20 46 52 4f 4d   ALL + 99 ) FROM
35520 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 34 0d   tab1..----..34.
35530 0a 2d 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .-99....query II
35540 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
35550 20 41 4c 4c 20 63 6f 6c 31 20 41 53 20 63 6f 6c   ALL col1 AS col
35560 32 2c 20 2b 20 39 30 20 41 53 20 63 6f 6c 32 20  2, + 90 AS col2 
35570 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
35580 0a 31 0d 0a 39 30 0d 0a 32 31 0d 0a 39 30 0d 0a  .1..90..21..90..
35590 38 31 0d 0a 39 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  81..90....onlyif
355a0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
355b0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
355c0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
355d0 65 6c 2d 31 31 39 37 0d 0a 53 45 4c 45 43 54 20  el-1197..SELECT 
355e0 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2d  + COUNT( * ) * -
355f0 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
35600 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
35610 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 73 6b 69 70 69  ---..-9....skipi
35620 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
35630 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
35640 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
35650 31 31 39 37 0d 0a 53 45 4c 45 43 54 20 2b 20 43  1197..SELECT + C
35660 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20 43  OUNT ( * ) * - C
35670 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
35680 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
35690 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 71 75 65 72 79 20  --..-9....query 
356a0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
356b0 43 54 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 2c  CT col1 AS col2,
356c0 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 30   + col1 * + col0
356d0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
356e0 0d 0a 31 34 0d 0a 37 31 34 0d 0a 34 37 0d 0a 34  ..14..714..47..4
356f0 32 37 37 0d 0a 35 0d 0a 34 32 35 0d 0a 0d 0a 71  277..5..425....q
35700 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
35710 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 63  SELECT ALL + - c
35720 6f 6c 30 20 2a 20 31 34 20 41 53 20 63 6f 6c 30  ol0 * 14 AS col0
35730 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
35740 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 39 30 0d  r0..----..-1190.
35750 0a 2d 31 32 37 34 0d 0a 2d 37 31 34 0d 0a 0d 0a  .-1274..-714....
35760 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
35770 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
35780 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
35790 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
357a0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
357b0 65 6c 2d 31 32 30 30 0d 0a 53 45 4c 45 43 54 20  el-1200..SELECT 
357c0 44 49 53 54 49 4e 43 54 20 31 35 20 44 49 56 20  DISTINCT 15 DIV 
357d0 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20 63 6f  MAX( DISTINCT co
357e0 6c 31 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  l1 ) AS col1 FRO
357f0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
35800 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  ----..0....skipi
35810 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
35820 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
35830 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
35840 31 32 30 30 0d 0a 53 45 4c 45 43 54 20 44 49 53  1200..SELECT DIS
35850 54 49 4e 43 54 20 31 35 20 2f 20 4d 41 58 20 28  TINCT 15 / MAX (
35860 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 29   DISTINCT col1 )
35870 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
35880 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
35890 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ..0....query III
358a0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
358b0 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
358c0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63  cor0 WHERE NOT c
358d0 6f 6c 31 20 2f 20 2b 20 36 34 20 3c 20 2b 20 2d  ol1 / + 64 < + -
358e0 20 34 36 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c   46..----..9 val
358f0 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
35900 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61  4b42765dff94eaaa
35910 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d  46040e537fb43b7.
35920 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
35930 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
35940 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72  ax: ..query II r
35950 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 30  owsort label-120
35960 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  2..SELECT DISTIN
35970 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 2c 20 32  CT COUNT( * ), 2
35980 38 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  8 AS col0 FROM t
35990 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
359a0 2d 0d 0a 33 0d 0a 32 38 0d 0a 0d 0a 73 6b 69 70  -..3..28....skip
359b0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
359c0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
359d0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
359e0 6c 2d 31 32 30 32 0d 0a 53 45 4c 45 43 54 20 44  l-1202..SELECT D
359f0 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 20 28 20  ISTINCT COUNT ( 
35a00 2a 20 29 2c 20 32 38 20 41 53 20 63 6f 6c 30 20  * ), 28 AS col0 
35a10 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
35a20 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 32 38 0d 0a  0..----..3..28..
35a30 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
35a40 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
35a50 43 54 20 2b 20 2b 20 28 20 2d 20 37 20 29 20 46  CT + + ( - 7 ) F
35a60 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
35a70 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 0d 0a 0d 0a 6f 6e  ..----..-7....on
35a80 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
35a90 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41  T syntax: DECIMA
35aa0 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  L type: ..query 
35ab0 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
35ac0 6c 2d 31 32 30 34 0d 0a 53 45 4c 45 43 54 20 2a  l-1204..SELECT *
35ad0 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
35ae0 20 2b 20 39 20 2a 20 2b 20 63 6f 6c 30 20 2f 20   + 9 * + col0 / 
35af0 2b 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 2b 20 33  + - col2 + - + 3
35b00 36 20 3c 20 2d 20 63 6f 6c 30 20 2d 20 2d 20 43  6 < - col0 - - C
35b10 41 53 54 28 20 2d 20 34 32 20 41 53 20 44 45 43  AST( - 42 AS DEC
35b20 49 4d 41 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  IMAL )..----....
35b30 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
35b40 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
35b50 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
35b60 20 6c 61 62 65 6c 2d 31 32 30 34 0d 0a 53 45 4c   label-1204..SEL
35b70 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
35b80 57 48 45 52 45 20 2b 20 39 20 2a 20 2b 20 63 6f  WHERE + 9 * + co
35b90 6c 30 20 2f 20 2b 20 2d 20 63 6f 6c 32 20 2b 20  l0 / + - col2 + 
35ba0 2d 20 2b 20 33 36 20 3c 20 2d 20 63 6f 6c 30 20  - + 36 < - col0 
35bb0 2d 20 2d 20 43 41 53 54 20 28 20 2d 20 34 32 20  - - CAST ( - 42 
35bc0 41 53 20 52 45 41 4c 20 29 0d 0a 2d 2d 2d 2d 0d  AS REAL )..----.
35bd0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
35be0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
35bf0 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65  ax: DIV for inte
35c00 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
35c10 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
35c20 6c 61 62 65 6c 2d 31 32 30 35 0d 0a 53 45 4c 45  label-1205..SELE
35c30 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20  CT - COUNT( * ) 
35c40 44 49 56 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b  DIV COUNT( * ) +
35c50 20 2b 20 2d 20 53 55 4d 28 20 2d 20 63 6f 6c 32   + - SUM( - col2
35c60 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
35c70 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 35 0d  tab0..----..155.
35c80 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
35c90 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
35ca0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
35cb0 74 20 6c 61 62 65 6c 2d 31 32 30 35 0d 0a 53 45  t label-1205..SE
35cc0 4c 45 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a  LECT - COUNT ( *
35cd0 20 29 20 2f 20 43 4f 55 4e 54 20 28 20 2a 20 29   ) / COUNT ( * )
35ce0 20 2b 20 2b 20 2d 20 53 55 4d 20 28 20 2d 20 63   + + - SUM ( - c
35cf0 6f 6c 32 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ol2 ) AS col2 FR
35d00 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
35d10 35 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  55....query I ro
35d20 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
35d30 4c 20 63 6f 6c 31 20 2a 20 2d 20 36 38 20 2b 20  L col1 * - 68 + 
35d40 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 30 20 2b 20  col0 * + col0 + 
35d50 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col2 FROM tab2..
35d60 2d 2d 2d 2d 0d 0a 2d 31 31 30 30 0d 0a 2d 31 33  ----..-1100..-13
35d70 32 39 0d 0a 31 31 32 37 0d 0a 0d 0a 71 75 65 72  29..1127....quer
35d80 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
35d90 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 20  LECT ALL + col1 
35da0 2b 20 2b 20 35 35 2c 20 2b 20 38 31 20 2b 20 28  + + 55, + 81 + (
35db0 20 35 38 20 29 20 41 53 20 63 6f 6c 31 20 46 52   58 ) AS col1 FR
35dc0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
35dd0 0a 2d 2d 2d 2d 0d 0a 31 30 36 0d 0a 31 33 39 0d  .----..106..139.
35de0 0a 31 32 32 0d 0a 31 33 39 0d 0a 31 33 32 0d 0a  .122..139..132..
35df0 31 33 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  139....query III
35e00 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
35e10 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   * FROM tab1 AS 
35e20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 63 6f 6c  cor0 WHERE + col
35e30 32 20 49 4e 20 28 20 63 6f 6c 31 20 2a 20 2d 20  2 IN ( col1 * - 
35e40 2d 20 63 6f 6c 30 2c 20 2b 20 63 6f 6c 31 20 2a  - col0, + col1 *
35e50 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 30   - col0 + - col0
35e60 20 2a 20 2d 20 2b 20 63 6f 6c 32 20 29 0d 0a 2d   * - + col2 )..-
35e70 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
35e80 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
35e90 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
35ea0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
35eb0 31 32 30 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1209..SELECT ALL
35ec0 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20   - COUNT( * ) + 
35ed0 2b 20 4d 41 58 28 20 38 32 20 29 20 46 52 4f 4d  + MAX( 82 ) FROM
35ee0 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
35ef0 0d 0a 37 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..79....skipif m
35f00 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
35f10 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
35f20 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 30  owsort label-120
35f30 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  9..SELECT ALL - 
35f40 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2b 20  COUNT ( * ) + + 
35f50 4d 41 58 20 28 20 38 32 20 29 20 46 52 4f 4d 20  MAX ( 82 ) FROM 
35f60 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
35f70 0a 37 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .79....query I r
35f80 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
35f90 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52   col0 AS col1 FR
35fa0 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48 45  OM tab2 cor0 WHE
35fb0 52 45 20 28 20 2b 20 63 6f 6c 32 20 29 20 49 53  RE ( + col2 ) IS
35fc0 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
35fd0 0a 2d 34 36 0d 0a 2d 36 34 0d 0a 2d 37 35 0d 0a  .-46..-64..-75..
35fe0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
35ff0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
36000 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
36010 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 31 31 0d  sort label-1211.
36020 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 53 55  .SELECT ALL + SU
36030 4d 28 20 41 4c 4c 20 2b 20 2d 20 33 38 20 29 20  M( ALL + - 38 ) 
36040 2b 20 31 36 20 41 53 20 63 6f 6c 31 20 46 52 4f  + 16 AS col1 FRO
36050 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
36060 2d 2d 2d 2d 0d 0a 2d 39 38 0d 0a 0d 0a 73 6b 69  ----..-98....ski
36070 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
36080 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
36090 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
360a0 6c 2d 31 32 31 31 0d 0a 53 45 4c 45 43 54 20 41  l-1211..SELECT A
360b0 4c 4c 20 2b 20 53 55 4d 20 28 20 41 4c 4c 20 2b  LL + SUM ( ALL +
360c0 20 2d 20 33 38 20 29 20 2b 20 31 36 20 41 53 20   - 38 ) + 16 AS 
360d0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
360e0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39  S cor0..----..-9
360f0 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  8....skipif post
36100 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
36110 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
36120 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
36130 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
36140 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
36150 53 45 4c 45 43 54 20 2b 20 2d 20 34 35 20 2a 20  SELECT + - 45 * 
36160 2b 20 63 6f 6c 32 20 63 6f 6c 32 2c 20 2d 20 63  + col2 col2, - c
36170 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
36180 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31   cor0..----..-21
36190 31 35 0d 0a 2d 34 37 0d 0a 2d 34 34 35 35 0d 0a  15..-47..-4455..
361a0 2d 39 39 0d 0a 2d 34 35 30 0d 0a 2d 31 30 0d 0a  -99..-450..-10..
361b0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
361c0 74 0d 0a 53 45 4c 45 43 54 20 2b 20 37 38 20 2a  t..SELECT + 78 *
361d0 20 2d 20 31 32 20 2a 20 2b 20 2b 20 33 31 20 2a   - 12 * + + 31 *
361e0 20 2b 20 2d 20 28 20 36 36 20 29 20 2d 20 2d 20   + - ( 66 ) - - 
361f0 32 38 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  28 AS col1 FROM 
36200 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 31 35  tab0..----..1915
36210 30 38 34 0d 0a 31 39 31 35 30 38 34 0d 0a 31 39  084..1915084..19
36220 31 35 30 38 34 0d 0a 0d 0a 71 75 65 72 79 20 49  15084....query I
36230 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
36240 20 63 6f 6c 30 20 2d 20 2b 20 2b 20 39 39 20 2a   col0 - + + 99 *
36250 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20   - col2 AS col1 
36260 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
36270 0a 32 33 32 33 0d 0a 34 30 32 34 0d 0a 35 38 31  .2323..4024..581
36280 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  7....query I row
36290 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63  sort..SELECT + c
362a0 6f 6c 30 20 2d 20 63 6f 6c 32 20 2a 20 35 33 20  ol0 - col2 * 53 
362b0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
362c0 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 37 33 0d 0a  2..----..-1173..
362d0 2d 32 30 35 36 0d 0a 2d 32 39 39 39 0d 0a 0d 0a  -2056..-2999....
362e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
362f0 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2b 20 2b  .SELECT col2 + +
36300 20 28 20 63 6f 6c 30 20 29 20 2a 20 2b 20 2b 20   ( col0 ) * + + 
36310 28 20 2d 20 63 6f 6c 31 20 29 20 41 53 20 63 6f  ( - col1 ) AS co
36320 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
36330 2d 2d 0d 0a 2d 32 33 32 33 0d 0a 2d 34 38 38 38  --..-2323..-4888
36340 0d 0a 2d 34 39 36 37 0d 0a 0d 0a 71 75 65 72 79  ..-4967....query
36350 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
36360 43 54 20 32 38 20 2b 20 2d 20 2d 20 63 6f 6c 32  CT 28 + - - col2
36370 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
36380 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 32 34 0d 0a 38  b1..----..124..8
36390 37 0d 0a 39 36 0d 0a 0d 0a 71 75 65 72 79 20 49  7..96....query I
363a0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
363b0 20 41 4c 4c 20 2b 20 2b 20 28 20 2b 20 2b 20 63   ALL + + ( + + c
363c0 6f 6c 32 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ol2 ) AS col0 FR
363d0 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 2d 20  OM tab0 WHERE - 
363e0 63 6f 6c 31 20 2a 20 63 6f 6c 32 20 4e 4f 54 20  col1 * col2 NOT 
363f0 42 45 54 57 45 45 4e 20 2b 20 2b 20 63 6f 6c 31  BETWEEN + + col1
36400 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   AND NULL..----.
36410 0a 31 30 0d 0a 34 37 0d 0a 39 39 0d 0a 0d 0a 6f  .10..47..99....o
36420 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
36430 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
36440 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
36450 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
36460 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
36470 6c 2d 31 32 31 39 0d 0a 53 45 4c 45 43 54 20 44  l-1219..SELECT D
36480 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54 28  ISTINCT + COUNT(
36490 20 2a 20 29 20 2a 20 43 4f 55 4e 54 28 20 2a 20   * ) * COUNT( * 
364a0 29 20 2a 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  ) * + COUNT( * )
364b0 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20   + - COUNT( * ) 
364c0 2a 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  * - CAST( NULL A
364d0 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f  S SIGNED ) AS co
364e0 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l0 FROM tab0 cor
364f0 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  0..----..NULL...
36500 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
36510 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
36520 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
36530 6c 61 62 65 6c 2d 31 32 31 39 0d 0a 53 45 4c 45  label-1219..SELE
36540 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 4f  CT DISTINCT + CO
36550 55 4e 54 20 28 20 2a 20 29 20 2a 20 43 4f 55 4e  UNT ( * ) * COUN
36560 54 20 28 20 2a 20 29 20 2a 20 2b 20 43 4f 55 4e  T ( * ) * + COUN
36570 54 20 28 20 2a 20 29 20 2b 20 2d 20 43 4f 55 4e  T ( * ) + - COUN
36580 54 20 28 20 2a 20 29 20 2a 20 2d 20 43 41 53 54  T ( * ) * - CAST
36590 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
365a0 45 52 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  ER ) AS col0 FRO
365b0 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
365c0 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79  -..NULL....query
365d0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
365e0 43 54 20 41 4c 4c 20 37 39 20 2a 20 2d 20 63 6f  CT ALL 79 * - co
365f0 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l2 AS col2 FROM 
36600 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
36610 52 45 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e  RE NULL IS NOT N
36620 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
36630 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
36640 4c 45 43 54 20 2d 20 38 38 20 2b 20 2b 20 63 6f  LECT - 88 + + co
36650 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
36660 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 31 0d  cor0..----..-41.
36670 0a 2d 37 34 0d 0a 2d 38 33 0d 0a 0d 0a 71 75 65  .-74..-83....que
36680 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
36690 4c 45 43 54 20 41 4c 4c 20 2b 20 34 30 20 2b 20  LECT ALL + 40 + 
366a0 39 39 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  99 AS col2 FROM 
366b0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
366c0 2d 2d 0d 0a 31 33 39 0d 0a 31 33 39 0d 0a 31 33  --..139..139..13
366d0 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  9....onlyif mysq
366e0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
366f0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
36700 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
36710 32 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43  23..SELECT ALL C
36720 4f 55 4e 54 28 20 44 49 53 54 49 4e 43 54 20 2d  OUNT( DISTINCT -
36730 20 28 20 63 6f 6c 32 20 29 20 29 20 41 53 20 63   ( col2 ) ) AS c
36740 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
36750 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   cor0..----..3..
36760 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
36770 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
36780 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
36790 20 6c 61 62 65 6c 2d 31 32 32 33 0d 0a 53 45 4c   label-1223..SEL
367a0 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20 28 20  ECT ALL COUNT ( 
367b0 44 49 53 54 49 4e 43 54 20 2d 20 28 20 63 6f 6c  DISTINCT - ( col
367c0 32 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52  2 ) ) AS col1 FR
367d0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
367e0 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79  .----..3....only
367f0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
36800 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
36810 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
36820 61 62 65 6c 2d 31 32 32 34 0d 0a 53 45 4c 45 43  abel-1224..SELEC
36830 54 20 41 4c 4c 20 38 37 20 2a 20 28 20 2b 20 2d  T ALL 87 * ( + -
36840 20 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 41 53   COUNT( * ) ) AS
36850 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
36860 0a 2d 2d 2d 2d 0d 0a 2d 32 36 31 0d 0a 0d 0a 73  .----..-261....s
36870 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
36880 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
36890 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
368a0 62 65 6c 2d 31 32 32 34 0d 0a 53 45 4c 45 43 54  bel-1224..SELECT
368b0 20 41 4c 4c 20 38 37 20 2a 20 28 20 2b 20 2d 20   ALL 87 * ( + - 
368c0 43 4f 55 4e 54 20 28 20 2a 20 29 20 29 20 41 53  COUNT ( * ) ) AS
368d0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
368e0 0a 2d 2d 2d 2d 0d 0a 2d 32 36 31 0d 0a 0d 0a 71  .----..-261....q
368f0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
36900 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
36910 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
36920 52 45 20 4e 4f 54 20 2b 20 30 20 3e 3d 20 4e 55  RE NOT + 0 >= NU
36930 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  LL..----....only
36940 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
36950 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20  syntax: DECIMAL 
36960 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
36970 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
36980 32 36 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53  26..SELECT - CAS
36990 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d  T( NULL AS DECIM
369a0 41 4c 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  AL ) AS col0 FRO
369b0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
369c0 48 45 52 45 20 4e 4f 54 20 2d 20 36 31 20 49 4e  HERE NOT - 61 IN
369d0 20 28 20 35 36 2c 20 2b 20 38 38 2c 20 2b 20 2d   ( 56, + 88, + -
369e0 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 4e   col1 )..----..N
369f0 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
36a00 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
36a10 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
36a20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
36a30 74 20 6c 61 62 65 6c 2d 31 32 32 36 0d 0a 53 45  t label-1226..SE
36a40 4c 45 43 54 20 2d 20 43 41 53 54 20 28 20 4e 55  LECT - CAST ( NU
36a50 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 41 53 20  LL AS REAL ) AS 
36a60 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
36a70 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
36a80 20 2d 20 36 31 20 49 4e 20 28 20 35 36 2c 20 2b   - 61 IN ( 56, +
36a90 20 38 38 2c 20 2b 20 2d 20 63 6f 6c 31 20 29 0d   88, + - col1 ).
36aa0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
36ab0 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79  L..NULL....query
36ac0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
36ad0 43 54 20 41 4c 4c 20 33 38 20 2a 20 63 6f 6c 31  CT ALL 38 * col1
36ae0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
36af0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37 38 36 0d 0a  r0..----..1786..
36b00 31 39 30 0d 0a 35 33 32 0d 0a 0d 0a 6f 6e 6c 79  190..532....only
36b10 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
36b20 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56  gate syntax: DIV
36b30 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
36b40 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
36b50 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
36b60 32 32 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  228..SELECT DIST
36b70 49 4e 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20  INCT + COUNT( * 
36b80 29 20 2a 20 31 35 20 44 49 56 20 2b 20 36 35 20  ) * 15 DIV + 65 
36b90 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
36ba0 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b  0..----..0....sk
36bb0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
36bc0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
36bd0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
36be0 65 6c 2d 31 32 32 38 0d 0a 53 45 4c 45 43 54 20  el-1228..SELECT 
36bf0 44 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54  DISTINCT + COUNT
36c00 20 28 20 2a 20 29 20 2a 20 31 35 20 2f 20 2b 20   ( * ) * 15 / + 
36c10 36 35 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  65 FROM tab0 AS 
36c20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  cor0..----..0...
36c30 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
36c40 74 0d 0a 53 45 4c 45 43 54 20 2d 20 31 33 20 2a  t..SELECT - 13 *
36c50 20 34 33 2c 20 2b 20 31 31 20 41 53 20 63 6f 6c   43, + 11 AS col
36c60 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
36c70 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 35 39 0d  or0..----..-559.
36c80 0a 31 31 0d 0a 2d 35 35 39 0d 0a 31 31 0d 0a 2d  .11..-559..11..-
36c90 35 35 39 0d 0a 31 31 0d 0a 0d 0a 6f 6e 6c 79 69  559..11....onlyi
36ca0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
36cb0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
36cc0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
36cd0 62 65 6c 2d 31 32 33 30 0d 0a 53 45 4c 45 43 54  bel-1230..SELECT
36ce0 20 2d 20 53 55 4d 28 20 41 4c 4c 20 33 20 29 20   - SUM( ALL 3 ) 
36cf0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
36d00 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
36d10 0a 2d 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .-9....skipif my
36d20 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
36d30 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
36d40 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 33 30  wsort label-1230
36d50 0d 0a 53 45 4c 45 43 54 20 2d 20 53 55 4d 20 28  ..SELECT - SUM (
36d60 20 41 4c 4c 20 33 20 29 20 41 53 20 63 6f 6c 30   ALL 3 ) AS col0
36d70 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
36d80 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a  r0..----..-9....
36d90 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
36da0 0a 53 45 4c 45 43 54 20 2d 20 2b 20 63 6f 6c 30  .SELECT - + col0
36db0 20 2a 20 2b 20 28 20 2b 20 63 6f 6c 30 20 29 20   * + ( + col0 ) 
36dc0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
36dd0 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
36de0 4e 4f 54 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c  NOT col2 IS NULL
36df0 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 31 36 0d 0a 2d  ..----..-2116..-
36e00 34 30 39 36 0d 0a 2d 35 36 32 35 0d 0a 0d 0a 6f  4096..-5625....o
36e10 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
36e20 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
36e30 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
36e40 74 20 6c 61 62 65 6c 2d 31 32 33 32 0d 0a 53 45  t label-1232..SE
36e50 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
36e60 2b 20 4d 49 4e 28 20 41 4c 4c 20 2d 20 2b 20 34  + MIN( ALL - + 4
36e70 32 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  2 ) FROM tab1 AS
36e80 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 32 0d   cor0..----..42.
36e90 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
36ea0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
36eb0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
36ec0 74 20 6c 61 62 65 6c 2d 31 32 33 32 0d 0a 53 45  t label-1232..SE
36ed0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
36ee0 2b 20 4d 49 4e 20 28 20 41 4c 4c 20 2d 20 2b 20  + MIN ( ALL - + 
36ef0 34 32 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41  42 ) FROM tab1 A
36f00 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 32  S cor0..----..42
36f10 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
36f20 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20  ort..SELECT + ( 
36f30 2d 20 2b 20 34 20 29 20 46 52 4f 4d 20 74 61 62  - + 4 ) FROM tab
36f40 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34  0 cor0..----..-4
36f50 0d 0a 2d 34 0d 0a 2d 34 0d 0a 0d 0a 6f 6e 6c 79  ..-4..-4....only
36f60 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
36f70 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
36f80 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
36f90 61 62 65 6c 2d 31 32 33 34 0d 0a 53 45 4c 45 43  abel-1234..SELEC
36fa0 54 20 2d 20 4d 41 58 28 20 2d 20 31 35 20 29 20  T - MAX( - 15 ) 
36fb0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
36fc0 0a 31 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .15....skipif my
36fd0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
36fe0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
36ff0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 33 34  wsort label-1234
37000 0d 0a 53 45 4c 45 43 54 20 2d 20 4d 41 58 20 28  ..SELECT - MAX (
37010 20 2d 20 31 35 20 29 20 46 52 4f 4d 20 74 61 62   - 15 ) FROM tab
37020 32 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 0d 0a 71  2..----..15....q
37030 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
37040 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
37050 32 36 20 2a 20 32 33 20 41 53 20 63 6f 6c 31 20  26 * 23 AS col1 
37060 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
37070 0a 35 39 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .598....query I 
37080 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
37090 2d 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31  - - col2 AS col1
370a0 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
370b0 20 4e 4f 54 20 28 20 2b 20 37 37 20 29 20 2a 20   NOT ( + 77 ) * 
370c0 2d 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 30 20  - col0 * + col0 
370d0 3e 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 32 0d  > col0 + - col2.
370e0 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 34 37 0d 0a 39  .----..10..47..9
370f0 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  9....onlyif mysq
37100 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
37110 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
37120 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
37130 6c 61 62 65 6c 2d 31 32 33 37 0d 0a 53 45 4c 45  label-1237..SELE
37140 43 54 20 43 41 53 54 28 20 2d 20 2d 20 63 6f 6c  CT CAST( - - col
37150 30 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20  0 AS SIGNED ) + 
37160 2d 20 2b 20 63 6f 6c 32 20 2d 20 2b 20 63 6f 6c  - + col2 - + col
37170 32 20 2a 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  2 * CAST( NULL A
37180 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20  S SIGNED ) FROM 
37190 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab0..----..NULL
371a0 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
371b0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
371c0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
371d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
371e0 61 62 65 6c 2d 31 32 33 37 0d 0a 53 45 4c 45 43  abel-1237..SELEC
371f0 54 20 43 41 53 54 20 28 20 2d 20 2d 20 63 6f 6c  T CAST ( - - col
37200 30 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b  0 AS INTEGER ) +
37210 20 2d 20 2b 20 63 6f 6c 32 20 2d 20 2b 20 63 6f   - + col2 - + co
37220 6c 32 20 2a 20 43 41 53 54 20 28 20 4e 55 4c 4c  l2 * CAST ( NULL
37230 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52   AS INTEGER ) FR
37240 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab0..----..N
37250 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
37260 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
37270 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
37280 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
37290 32 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  2 cor0 WHERE NOT
372a0 20 4e 55 4c 4c 20 3c 3e 20 2b 20 63 6f 6c 30 20   NULL <> + col0 
372b0 2f 20 2d 20 35 39 20 2a 20 2b 20 2b 20 63 6f 6c  / - 59 * + + col
372c0 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  2..----....onlyi
372d0 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
372e0 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
372f0 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
37300 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 33 39  wsort label-1239
37310 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 63 6f 6c  ..SELECT + - col
37320 31 20 44 49 56 20 2b 20 32 39 20 46 52 4f 4d 20  1 DIV + 29 FROM 
37330 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
37340 2d 2d 0d 0a 2d 31 0d 0a 2d 32 0d 0a 2d 32 0d 0a  --..-1..-2..-2..
37350 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
37360 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
37370 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
37380 20 6c 61 62 65 6c 2d 31 32 33 39 0d 0a 53 45 4c   label-1239..SEL
37390 45 43 54 20 2b 20 2d 20 63 6f 6c 31 20 2f 20 2b  ECT + - col1 / +
373a0 20 32 39 20 46 52 4f 4d 20 74 61 62 32 20 41 53   29 FROM tab2 AS
373b0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d   cor0..----..-1.
373c0 0a 2d 32 0d 0a 2d 32 0d 0a 0d 0a 6f 6e 6c 79 69  .-2..-2....onlyi
373d0 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
373e0 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65  yntax: aggregate
373f0 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c   syntax: DECIMAL
37400 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
37410 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
37420 32 34 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  240..SELECT ALL 
37430 2b 20 4d 49 4e 28 20 41 4c 4c 20 2b 20 2d 20 43  + MIN( ALL + - C
37440 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43  AST( NULL AS DEC
37450 49 4d 41 4c 20 29 20 29 20 46 52 4f 4d 20 74 61  IMAL ) ) FROM ta
37460 62 31 2c 20 74 61 62 32 20 41 53 20 63 6f 72 30  b1, tab2 AS cor0
37470 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
37480 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
37490 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
374a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
374b0 61 62 65 6c 2d 31 32 34 30 0d 0a 53 45 4c 45 43  abel-1240..SELEC
374c0 54 20 41 4c 4c 20 2b 20 4d 49 4e 20 28 20 41 4c  T ALL + MIN ( AL
374d0 4c 20 2b 20 2d 20 43 41 53 54 20 28 20 4e 55 4c  L + - CAST ( NUL
374e0 4c 20 41 53 20 52 45 41 4c 20 29 20 29 20 46 52  L AS REAL ) ) FR
374f0 4f 4d 20 74 61 62 31 2c 20 74 61 62 32 20 41 53  OM tab1, tab2 AS
37500 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
37510 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  L....query III r
37520 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
37530 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
37540 20 28 20 63 6f 6c 30 20 2b 20 2d 20 2d 20 33 35   ( col0 + - - 35
37550 20 3e 3d 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d   >= NULL )..----
37560 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
37570 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
37580 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
37590 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
375a0 61 62 65 6c 2d 31 32 34 32 0d 0a 53 45 4c 45 43  abel-1242..SELEC
375b0 54 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 32 20 44  T - col1 + - 2 D
375c0 49 56 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  IV col0 FROM tab
375d0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
375e0 0a 2d 31 34 0d 0a 2d 34 37 0d 0a 2d 35 0d 0a 0d  .-14..-47..-5...
375f0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
37600 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
37610 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
37620 6c 61 62 65 6c 2d 31 32 34 32 0d 0a 53 45 4c 45  label-1242..SELE
37630 43 54 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 32 20  CT - col1 + - 2 
37640 2f 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  / col0 FROM tab1
37650 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
37660 2d 31 34 0d 0a 2d 34 37 0d 0a 2d 35 0d 0a 0d 0a  -14..-47..-5....
37670 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
37680 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
37690 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
376a0 72 74 20 6c 61 62 65 6c 2d 31 32 34 33 0d 0a 53  rt label-1243..S
376b0 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28  ELECT ALL COUNT(
376c0 20 2a 20 29 20 2b 20 2b 20 35 37 20 2b 20 2d 20   * ) + + 57 + - 
376d0 33 37 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  37 FROM tab0 AS 
376e0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a  cor0..----..23..
376f0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
37700 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
37710 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
37720 20 6c 61 62 65 6c 2d 31 32 34 33 0d 0a 53 45 4c   label-1243..SEL
37730 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20 28 20  ECT ALL COUNT ( 
37740 2a 20 29 20 2b 20 2b 20 35 37 20 2b 20 2d 20 33  * ) + + 57 + - 3
37750 37 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  7 FROM tab0 AS c
37760 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 0d  or0..----..23...
37770 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
37780 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43  CAST syntax: DEC
37790 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65  IMAL type: ..que
377a0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
377b0 61 62 65 6c 2d 31 32 34 34 0d 0a 53 45 4c 45 43  abel-1244..SELEC
377c0 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
377d0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
377e0 48 45 52 45 20 43 41 53 54 28 20 4e 55 4c 4c 20  HERE CAST( NULL 
377f0 41 53 20 44 45 43 49 4d 41 4c 20 29 20 49 53 20  AS DECIMAL ) IS 
37800 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  NULL..----..9 va
37810 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
37820 37 35 63 39 39 38 61 61 35 33 61 63 38 33 32 31  75c998aa53ac8321
37830 38 63 62 66 32 66 65 62 39 36 32 64 30 61 34 39  8cbf2feb962d0a49
37840 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
37850 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
37860 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  e..query III row
37870 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 34 34 0d  sort label-1244.
37880 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
37890 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
378a0 63 6f 72 30 20 57 48 45 52 45 20 43 41 53 54 20  cor0 WHERE CAST 
378b0 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29  ( NULL AS REAL )
378c0 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
378d0 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
378e0 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63   to 75c998aa53ac
378f0 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64  83218cbf2feb962d
37900 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20  0a49....query I 
37910 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
37920 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  + col2 FROM tab0
37930 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28   AS cor0 WHERE (
37940 20 2b 20 63 6f 6c 30 20 29 20 4e 4f 54 20 49 4e   + col0 ) NOT IN
37950 20 28 20 2d 20 37 38 20 2a 20 2d 20 35 35 20 2a   ( - 78 * - 55 *
37960 20 2b 20 63 6f 6c 30 20 2a 20 63 6f 6c 32 20 2d   + col0 * col2 -
37970 20 2b 20 63 6f 6c 32 2c 20 2d 20 63 6f 6c 32 20   + col2, - col2 
37980 2b 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a  + col0 )..----..
37990 31 30 0d 0a 34 37 0d 0a 39 39 0d 0a 0d 0a 71 75  10..47..99....qu
379a0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
379b0 45 4c 45 43 54 20 41 4c 4c 20 39 20 2d 20 2b 20  ELECT ALL 9 - + 
379c0 37 34 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  74 FROM tab2 AS 
379d0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 35 0d  cor0..----..-65.
379e0 0a 2d 36 35 0d 0a 2d 36 35 0d 0a 0d 0a 6f 6e 6c  .-65..-65....onl
379f0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
37a00 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
37a10 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
37a20 6c 61 62 65 6c 2d 31 32 34 37 0d 0a 53 45 4c 45  label-1247..SELE
37a30 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20  CT COUNT( * ) + 
37a40 38 37 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  87 FROM tab1 AS 
37a50 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 30 0d 0a  cor0..----..90..
37a60 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
37a70 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
37a80 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
37a90 20 6c 61 62 65 6c 2d 31 32 34 37 0d 0a 53 45 4c   label-1247..SEL
37aa0 45 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ECT COUNT ( * ) 
37ab0 2b 20 38 37 20 46 52 4f 4d 20 74 61 62 31 20 41  + 87 FROM tab1 A
37ac0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 30  S cor0..----..90
37ad0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
37ae0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
37af0 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
37b00 35 36 20 2a 20 2b 20 63 6f 6c 31 20 3e 20 2b 20  56 * + col1 > + 
37b10 2b 20 36 37 20 2a 20 2b 20 2b 20 28 20 63 6f 6c  + 67 * + + ( col
37b20 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  1 )..----....onl
37b30 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
37b40 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
37b50 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
37b60 6c 61 62 65 6c 2d 31 32 34 39 0d 0a 53 45 4c 45  label-1249..SELE
37b70 43 54 20 41 4c 4c 20 37 39 20 2a 20 2b 20 2d 20  CT ALL 79 * + - 
37b80 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20  COUNT( * ) FROM 
37b90 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 37  tab1..----..-237
37ba0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
37bb0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
37bc0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
37bd0 72 74 20 6c 61 62 65 6c 2d 31 32 34 39 0d 0a 53  rt label-1249..S
37be0 45 4c 45 43 54 20 41 4c 4c 20 37 39 20 2a 20 2b  ELECT ALL 79 * +
37bf0 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46   - COUNT ( * ) F
37c00 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
37c10 2d 32 33 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -237....query I 
37c20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
37c30 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 57  col0 FROM tab0 W
37c40 48 45 52 45 20 2b 20 2d 20 28 20 2b 20 2b 20 63  HERE + - ( + + c
37c50 6f 6c 31 20 29 20 3c 3e 20 28 20 4e 55 4c 4c 20  ol1 ) <> ( NULL 
37c60 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  )..----....onlyi
37c70 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
37c80 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
37c90 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
37ca0 62 65 6c 2d 31 32 35 31 0d 0a 53 45 4c 45 43 54  bel-1251..SELECT
37cb0 20 43 4f 55 4e 54 28 20 2d 20 63 6f 6c 30 20 29   COUNT( - col0 )
37cc0 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
37cd0 20 2b 20 2d 20 28 20 2d 20 63 6f 6c 32 20 29 20   + - ( - col2 ) 
37ce0 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30  IS NULL..----..0
37cf0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
37d00 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
37d10 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
37d20 72 74 20 6c 61 62 65 6c 2d 31 32 35 31 0d 0a 53  rt label-1251..S
37d30 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 2d 20  ELECT COUNT ( - 
37d40 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 30  col0 ) FROM tab0
37d50 20 57 48 45 52 45 20 2b 20 2d 20 28 20 2d 20 63   WHERE + - ( - c
37d60 6f 6c 32 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d  ol2 ) IS NULL..-
37d70 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ---..0....onlyif
37d80 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
37d90 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66  te syntax: DIV f
37da0 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
37db0 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
37dc0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 35  owsort label-125
37dd0 32 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28  2..SELECT COUNT(
37de0 20 2a 20 29 20 44 49 56 20 43 4f 55 4e 54 28 20   * ) DIV COUNT( 
37df0 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  * ) AS col1 FROM
37e00 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a   tab2..----..1..
37e10 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
37e20 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
37e30 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
37e40 20 6c 61 62 65 6c 2d 31 32 35 32 0d 0a 53 45 4c   label-1252..SEL
37e50 45 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ECT COUNT ( * ) 
37e60 2f 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53  / COUNT ( * ) AS
37e70 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
37e80 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 71 75 65 72  .----..1....quer
37e90 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
37ea0 4c 45 43 54 20 2b 20 2d 20 28 20 2d 20 2b 20 63  LECT + - ( - + c
37eb0 6f 6c 32 20 29 20 41 53 20 63 6f 6c 32 2c 20 63  ol2 ) AS col2, c
37ec0 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol2 AS col1 FROM
37ed0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
37ee0 2d 2d 2d 0d 0a 32 33 0d 0a 32 33 0d 0a 34 30 0d  ---..23..23..40.
37ef0 0a 34 30 0d 0a 35 38 0d 0a 35 38 0d 0a 0d 0a 71  .40..58..58....q
37f00 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
37f10 53 45 4c 45 43 54 20 2b 20 2b 20 38 20 2a 20 2b  SELECT + + 8 * +
37f20 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 31 20 41   col1 + - col1 A
37f30 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
37f40 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
37f50 33 32 39 0d 0a 33 35 0d 0a 39 38 0d 0a 0d 0a 6f  329..35..98....o
37f60 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
37f70 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
37f80 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
37f90 74 20 6c 61 62 65 6c 2d 31 32 35 35 0d 0a 53 45  t label-1255..SE
37fa0 4c 45 43 54 20 41 4c 4c 20 28 20 2b 20 2d 20 28  LECT ALL ( + - (
37fb0 20 2b 20 2b 20 53 55 4d 28 20 41 4c 4c 20 2d 20   + + SUM( ALL - 
37fc0 33 39 20 29 20 29 20 29 20 46 52 4f 4d 20 74 61  39 ) ) ) FROM ta
37fd0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 31 37 0d 0a 0d  b1..----..117...
37fe0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
37ff0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
38000 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
38010 6c 61 62 65 6c 2d 31 32 35 35 0d 0a 53 45 4c 45  label-1255..SELE
38020 43 54 20 41 4c 4c 20 28 20 2b 20 2d 20 28 20 2b  CT ALL ( + - ( +
38030 20 2b 20 53 55 4d 20 28 20 41 4c 4c 20 2d 20 33   + SUM ( ALL - 3
38040 39 20 29 20 29 20 29 20 46 52 4f 4d 20 74 61 62  9 ) ) ) FROM tab
38050 31 0d 0a 2d 2d 2d 2d 0d 0a 31 31 37 0d 0a 0d 0a  1..----..117....
38060 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
38070 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
38080 20 39 20 2a 20 2b 20 36 38 20 46 52 4f 4d 20 74   9 * + 68 FROM t
38090 61 62 30 20 41 53 20 63 6f 72 30 20 43 52 4f 53  ab0 AS cor0 CROS
380a0 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63  S JOIN tab0 AS c
380b0 6f 72 31 20 57 48 45 52 45 20 4e 4f 54 20 4e 55  or1 WHERE NOT NU
380c0 4c 4c 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20  LL BETWEEN NULL 
380d0 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  AND NULL..----..
380e0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
380f0 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
38100 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
38110 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
38120 65 6c 2d 31 32 35 37 0d 0a 53 45 4c 45 43 54 20  el-1257..SELECT 
38130 63 6f 6c 30 20 44 49 56 20 63 6f 6c 32 20 2a 20  col0 DIV col2 * 
38140 2d 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 31 20  - col2 * + col1 
38150 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
38160 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 38 30 0d 0a  0..----..-1680..
38170 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  0..0....skipif m
38180 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
38190 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
381a0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 35  owsort label-125
381b0 37 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2f  7..SELECT col0 /
381c0 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 32 20 2a   col2 * - col2 *
381d0 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   + col1 FROM tab
381e0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
381f0 0a 2d 31 36 38 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a  .-1680..0..0....
38200 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
38210 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 32 30 20  ..SELECT ALL 20 
38220 41 53 20 63 6f 6c 31 2c 20 36 30 20 2b 20 63 6f  AS col1, 60 + co
38230 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  l1 FROM tab1 cor
38240 30 0d 0a 2d 2d 2d 2d 0d 0a 32 30 0d 0a 31 30 37  0..----..20..107
38250 0d 0a 32 30 0d 0a 36 35 0d 0a 32 30 0d 0a 37 34  ..20..65..20..74
38260 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
38270 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
38280 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
38290 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c 3e 20  0 WHERE NULL <> 
382a0 2b 20 2b 20 63 6f 6c 32 20 41 4e 44 20 2b 20 63  + + col2 AND + c
382b0 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ol2 IS NOT NULL.
382c0 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
382d0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
382e0 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
382f0 62 31 20 63 6f 72 30 20 57 48 45 52 45 20 28 20  b1 cor0 WHERE ( 
38300 63 6f 6c 30 20 29 20 49 53 20 4e 55 4c 4c 0d 0a  col0 ) IS NULL..
38310 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
38320 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
38330 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
38340 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
38350 2d 31 32 36 31 0d 0a 53 45 4c 45 43 54 20 41 4c  -1261..SELECT AL
38360 4c 20 4d 49 4e 28 20 33 30 20 29 20 63 6f 6c 30  L MIN( 30 ) col0
38370 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
38380 0d 0a 33 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..30....skipif m
38390 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
383a0 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
383b0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
383c0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
383d0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
383e0 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
383f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
38400 6c 61 62 65 6c 2d 31 32 36 31 0d 0a 53 45 4c 45  label-1261..SELE
38410 43 54 20 41 4c 4c 20 4d 49 4e 20 28 20 33 30 20  CT ALL MIN ( 30 
38420 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  ) col0 FROM tab2
38430 0d 0a 2d 2d 2d 2d 0d 0a 33 30 0d 0a 0d 0a 71 75  ..----..30....qu
38440 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
38450 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
38460 20 36 34 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   64 AS col0 FROM
38470 20 74 61 62 30 20 57 48 45 52 45 20 2b 20 33 38   tab0 WHERE + 38
38480 20 2a 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e   * col1 IS NOT N
38490 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 34 0d 0a  ULL..----..-64..
384a0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
384b0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
384c0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
384d0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 36 33 0d  sort label-1263.
384e0 0a 53 45 4c 45 43 54 20 34 37 20 2a 20 43 4f 55  .SELECT 47 * COU
384f0 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20  NT( * ) AS col2 
38500 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
38510 0a 31 34 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .141....skipif m
38520 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
38530 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
38540 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 36  owsort label-126
38550 33 0d 0a 53 45 4c 45 43 54 20 34 37 20 2a 20 43  3..SELECT 47 * C
38560 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
38570 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
38580 2d 2d 0d 0a 31 34 31 0d 0a 0d 0a 6f 6e 6c 79 69  --..141....onlyi
38590 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
385a0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
385b0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
385c0 62 65 6c 2d 31 32 36 34 0d 0a 53 45 4c 45 43 54  bel-1264..SELECT
385d0 20 53 55 4d 28 20 41 4c 4c 20 37 30 20 29 20 46   SUM( ALL 70 ) F
385e0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
385f0 32 31 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  210....skipif my
38600 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
38610 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
38620 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 36 34  wsort label-1264
38630 0d 0a 53 45 4c 45 43 54 20 53 55 4d 20 28 20 41  ..SELECT SUM ( A
38640 4c 4c 20 37 30 20 29 20 46 52 4f 4d 20 74 61 62  LL 70 ) FROM tab
38650 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 30 0d 0a 0d 0a  0..----..210....
38660 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
38670 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
38680 20 2b 20 28 20 2b 20 63 6f 6c 32 20 29 20 2b 20   + ( + col2 ) + 
38690 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46  - col0 AS col1 F
386a0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
386b0 2d 31 37 0d 0a 2d 32 33 0d 0a 2d 32 34 0d 0a 0d  -17..-23..-24...
386c0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
386d0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
386e0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
386f0 6f 72 74 20 6c 61 62 65 6c 2d 31 32 36 36 0d 0a  ort label-1266..
38700 53 45 4c 45 43 54 20 39 36 20 2a 20 2d 20 43 4f  SELECT 96 * - CO
38710 55 4e 54 28 20 2d 20 63 6f 6c 30 20 29 20 41 53  UNT( - col0 ) AS
38720 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
38730 0a 2d 2d 2d 2d 0d 0a 2d 32 38 38 0d 0a 0d 0a 73  .----..-288....s
38740 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
38750 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
38760 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
38770 62 65 6c 2d 31 32 36 36 0d 0a 53 45 4c 45 43 54  bel-1266..SELECT
38780 20 39 36 20 2a 20 2d 20 43 4f 55 4e 54 20 28 20   96 * - COUNT ( 
38790 2d 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 32  - col0 ) AS col2
387a0 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
387b0 0d 0a 2d 32 38 38 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..-288....onlyif
387c0 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
387d0 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
387e0 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
387f0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 36 37 0d  sort label-1267.
38800 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31  .SELECT ALL col1
38810 20 44 49 56 20 2b 20 63 6f 6c 32 20 2a 20 2d 20   DIV + col2 * - 
38820 63 6f 6c 30 20 2b 20 2d 20 2d 20 31 34 20 46 52  col0 + - - 14 FR
38830 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab1..----..1
38840 34 0d 0a 31 34 0d 0a 31 34 0d 0a 0d 0a 73 6b 69  4..14..14....ski
38850 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
38860 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
38870 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
38880 6c 2d 31 32 36 37 0d 0a 53 45 4c 45 43 54 20 41  l-1267..SELECT A
38890 4c 4c 20 63 6f 6c 31 20 2f 20 2b 20 63 6f 6c 32  LL col1 / + col2
388a0 20 2a 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 2d 20   * - col0 + - - 
388b0 31 34 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  14 FROM tab1..--
388c0 2d 2d 0d 0a 31 34 0d 0a 31 34 0d 0a 31 34 0d 0a  --..14..14..14..
388d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
388e0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
388f0 43 54 20 2d 20 2b 20 63 6f 6c 32 20 41 53 20 63  CT - + col2 AS c
38900 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
38910 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
38920 38 31 20 2a 20 2d 20 2d 20 32 33 20 2b 20 2d 20  81 * - - 23 + - 
38930 2b 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55  + col2 IS NOT NU
38940 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
38950 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
38960 45 43 54 20 2b 20 37 36 20 2b 20 2d 20 2d 20 63  ECT + 76 + - - c
38970 6f 6c 31 20 2b 20 2b 20 2d 20 63 6f 6c 30 20 2d  ol1 + + - col0 -
38980 20 2b 20 63 6f 6c 31 20 2b 20 63 6f 6c 31 20 2d   + col1 + col1 -
38990 20 63 6f 6c 30 20 2a 20 37 33 20 2a 20 37 20 41   col0 * 73 * 7 A
389a0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
389b0 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 34 32 35 0d 0a  ..----..-23425..
389c0 2d 33 32 36 31 35 0d 0a 2d 33 38 32 35 37 0d 0a  -32615..-38257..
389d0 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
389e0 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
389f0 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
38a00 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
38a10 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
38a20 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
38a30 43 54 20 2d 20 35 35 20 63 6f 6c 31 20 46 52 4f  CT - 55 col1 FRO
38a40 4d 20 28 20 74 61 62 31 20 41 53 20 63 6f 72 30  M ( tab1 AS cor0
38a50 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30   CROSS JOIN tab0
38a60 20 41 53 20 63 6f 72 31 20 29 0d 0a 2d 2d 2d 2d   AS cor1 )..----
38a70 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
38a80 6e 67 20 74 6f 20 61 63 37 36 38 34 31 63 65 65  ng to ac76841cee
38a90 63 64 32 33 31 31 65 38 30 63 36 32 31 64 31 35  cd2311e80c621d15
38aa0 62 61 63 64 64 33 0d 0a 0d 0a 71 75 65 72 79 20  bacdd3....query 
38ab0 49 49 49 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  IIIIII rowsort..
38ac0 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 28 20  SELECT * FROM ( 
38ad0 74 61 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f  tab1 AS cor0 CRO
38ae0 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53 20  SS JOIN tab2 AS 
38af0 63 6f 72 31 20 29 20 57 48 45 52 45 20 4e 55 4c  cor1 ) WHERE NUL
38b00 4c 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  L < NULL..----..
38b10 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
38b20 74 0d 0a 53 45 4c 45 43 54 20 28 20 2b 20 2b 20  t..SELECT ( + + 
38b30 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 30 20 46  col2 ) AS col0 F
38b40 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
38b50 31 30 0d 0a 34 37 0d 0a 39 39 0d 0a 0d 0a 6f 6e  10..47..99....on
38b60 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
38b70 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
38b80 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
38b90 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
38ba0 32 37 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  273..SELECT DIST
38bb0 49 4e 43 54 20 63 6f 6c 30 20 2f 20 2b 20 43 41  INCT col0 / + CA
38bc0 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
38bd0 45 44 20 29 20 2a 20 2b 20 63 6f 6c 31 20 2b 20  ED ) * + col1 + 
38be0 2b 20 2b 20 35 30 20 63 6f 6c 31 20 46 52 4f 4d  + + 50 col1 FROM
38bf0 2