sqllogictest
Hex Artifact Content
Not logged in

Artifact 63a0f5358891c0ce3630d876bf1eaa389512dfd9:


0000: 68 61 73 68 2d 74 68 72 65 73 68 6f 6c 64 20 38  hash-threshold 8
0010: 0d 0a 0d 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b  ....statement ok
0020: 0d 0a 43 52 45 41 54 45 20 54 41 42 4c 45 20 74  ..CREATE TABLE t
0030: 61 62 30 28 63 6f 6c 30 20 49 4e 54 45 47 45 52  ab0(col0 INTEGER
0040: 2c 20 63 6f 6c 31 20 49 4e 54 45 47 45 52 2c 20  , col1 INTEGER, 
0050: 63 6f 6c 32 20 49 4e 54 45 47 45 52 29 0d 0a 0d  col2 INTEGER)...
0060: 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 43  .statement ok..C
0070: 52 45 41 54 45 20 54 41 42 4c 45 20 74 61 62 31  REATE TABLE tab1
0080: 28 63 6f 6c 30 20 49 4e 54 45 47 45 52 2c 20 63  (col0 INTEGER, c
0090: 6f 6c 31 20 49 4e 54 45 47 45 52 2c 20 63 6f 6c  ol1 INTEGER, col
00a0: 32 20 49 4e 54 45 47 45 52 29 0d 0a 0d 0a 73 74  2 INTEGER)....st
00b0: 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 43 52 45 41  atement ok..CREA
00c0: 54 45 20 54 41 42 4c 45 20 74 61 62 32 28 63 6f  TE TABLE tab2(co
00d0: 6c 30 20 49 4e 54 45 47 45 52 2c 20 63 6f 6c 31  l0 INTEGER, col1
00e0: 20 49 4e 54 45 47 45 52 2c 20 63 6f 6c 32 20 49   INTEGER, col2 I
00f0: 4e 54 45 47 45 52 29 0d 0a 0d 0a 73 74 61 74 65  NTEGER)....state
0100: 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45 52 54 20  ment ok..INSERT 
0110: 49 4e 54 4f 20 74 61 62 30 20 56 41 4c 55 45 53  INTO tab0 VALUES
0120: 28 39 37 2c 31 2c 39 39 29 0d 0a 0d 0a 73 74 61  (97,1,99)....sta
0130: 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45 52  tement ok..INSER
0140: 54 20 49 4e 54 4f 20 74 61 62 30 20 56 41 4c 55  T INTO tab0 VALU
0150: 45 53 28 31 35 2c 38 31 2c 34 37 29 0d 0a 0d 0a  ES(15,81,47)....
0160: 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49 4e  statement ok..IN
0170: 53 45 52 54 20 49 4e 54 4f 20 74 61 62 30 20 56  SERT INTO tab0 V
0180: 41 4c 55 45 53 28 38 37 2c 32 31 2c 31 30 29 0d  ALUES(87,21,10).
0190: 0a 0d 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d  ...statement ok.
01a0: 0a 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 61 62  .INSERT INTO tab
01b0: 31 20 56 41 4c 55 45 53 28 35 31 2c 31 34 2c 39  1 VALUES(51,14,9
01c0: 36 29 0d 0a 0d 0a 73 74 61 74 65 6d 65 6e 74 20  6)....statement 
01d0: 6f 6b 0d 0a 49 4e 53 45 52 54 20 49 4e 54 4f 20  ok..INSERT INTO 
01e0: 74 61 62 31 20 56 41 4c 55 45 53 28 38 35 2c 35  tab1 VALUES(85,5
01f0: 2c 35 39 29 0d 0a 0d 0a 73 74 61 74 65 6d 65 6e  ,59)....statemen
0200: 74 20 6f 6b 0d 0a 49 4e 53 45 52 54 20 49 4e 54  t ok..INSERT INT
0210: 4f 20 74 61 62 31 20 56 41 4c 55 45 53 28 39 31  O tab1 VALUES(91
0220: 2c 34 37 2c 36 38 29 0d 0a 0d 0a 73 74 61 74 65  ,47,68)....state
0230: 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45 52 54 20  ment ok..INSERT 
0240: 49 4e 54 4f 20 74 61 62 32 20 56 41 4c 55 45 53  INTO tab2 VALUES
0250: 28 36 34 2c 37 37 2c 34 30 29 0d 0a 0d 0a 73 74  (64,77,40)....st
0260: 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45  atement ok..INSE
0270: 52 54 20 49 4e 54 4f 20 74 61 62 32 20 56 41 4c  RT INTO tab2 VAL
0280: 55 45 53 28 37 35 2c 36 37 2c 35 38 29 0d 0a 0d  UES(75,67,58)...
0290: 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49  .statement ok..I
02a0: 4e 53 45 52 54 20 49 4e 54 4f 20 74 61 62 32 20  NSERT INTO tab2 
02b0: 56 41 4c 55 45 53 28 34 36 2c 35 31 2c 32 33 29  VALUES(46,51,23)
02c0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
02d0: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
02e0: 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74  tax: DIV for int
02f0: 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
0300: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
0310: 74 20 6c 61 62 65 6c 2d 30 0d 0a 53 45 4c 45 43  t label-0..SELEC
0320: 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 28 20 2a  T ALL - COUNT( *
0330: 20 29 20 2a 20 2b 20 43 4f 55 4e 54 28 20 2a 20   ) * + COUNT( * 
0340: 29 2c 20 2d 20 36 32 20 44 49 56 20 35 36 20 41  ), - 62 DIV 56 A
0350: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
0360: 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 2d 31 0d 0a  ..----..-9..-1..
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 49 20 72 6f 77 73 6f 72  .query II rowsor
03a0: 74 20 6c 61 62 65 6c 2d 30 0d 0a 53 45 4c 45 43  t label-0..SELEC
03b0: 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 20 28 20  T ALL - COUNT ( 
03c0: 2a 20 29 20 2a 20 2b 20 43 4f 55 4e 54 20 28 20  * ) * + COUNT ( 
03d0: 2a 20 29 2c 20 2d 20 36 32 20 2f 20 35 36 20 41  * ), - 62 / 56 A
03e0: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
03f0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 2d 31 0d 0a  ..----..-9..-1..
0400: 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
0410: 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
0420: 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
0430: 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
0440: 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
0450: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
0460: 43 54 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 28 20  CT - col0 + + ( 
0470: 2b 20 63 6f 6c 31 20 29 20 63 6f 6c 31 20 46 52  + col1 ) col1 FR
0480: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
0490: 0a 2d 2d 2d 2d 0d 0a 2d 38 0d 0a 31 33 0d 0a 35  .----..-8..13..5
04a0: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
04b0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
04c0: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
04d0: 30 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29  0 WHERE ( NULL )
04e0: 20 3e 3d 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 33   >= + + col1 * 3
04f0: 37 20 2f 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a  7 / col0..----..
0500: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
0510: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
0520: 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 2d 20  OM tab1 WHERE - 
0530: 31 35 20 2a 20 2b 20 37 38 20 3e 20 4e 55 4c 4c  15 * + 78 > NULL
0540: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
0550: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
0560: 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 2d 20 2d  T ALL - col0 - -
0570: 20 2b 20 34 35 20 46 52 4f 4d 20 74 61 62 32 0d   + 45 FROM tab2.
0580: 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 31 39 0d 0a  .----..-1..-19..
0590: 2d 33 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -30....onlyif my
05a0: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
05b0: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
05c0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
05d0: 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  5..SELECT DISTIN
05e0: 43 54 20 2b 20 28 20 2b 20 43 4f 55 4e 54 28 20  CT + ( + COUNT( 
05f0: 2a 20 29 20 29 20 2a 20 2b 20 39 34 20 41 53 20  * ) ) * + 94 AS 
0600: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col0 FROM tab1..
0610: 2d 2d 2d 2d 0d 0a 32 38 32 0d 0a 0d 0a 73 6b 69  ----..282....ski
0620: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
0630: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
0640: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
0650: 6c 2d 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  l-5..SELECT DIST
0660: 49 4e 43 54 20 2b 20 28 20 2b 20 43 4f 55 4e 54  INCT + ( + COUNT
0670: 20 28 20 2a 20 29 20 29 20 2a 20 2b 20 39 34 20   ( * ) ) * + 94 
0680: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
0690: 31 0d 0a 2d 2d 2d 2d 0d 0a 32 38 32 0d 0a 0d 0a  1..----..282....
06a0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
06b0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
06c0: 20 63 6f 6c 30 20 2a 20 2d 20 2d 20 63 6f 6c 31   col0 * - - col1
06d0: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
06e0: 0d 0a 31 32 31 35 0d 0a 31 38 32 37 0d 0a 39 37  ..1215..1827..97
06f0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
0700: 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
0710: 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
0720: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
0730: 61 62 65 6c 2d 37 0d 0a 53 45 4c 45 43 54 20 41  abel-7..SELECT A
0740: 4c 4c 20 2b 20 34 35 20 44 49 56 20 2d 20 2b 20  LL + 45 DIV - + 
0750: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
0760: 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 2d 34 35 0d 0a 30  ----..-2..-45..0
0770: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
0780: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
0790: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
07a0: 72 74 20 6c 61 62 65 6c 2d 37 0d 0a 53 45 4c 45  rt label-7..SELE
07b0: 43 54 20 41 4c 4c 20 2b 20 34 35 20 2f 20 2d 20  CT ALL + 45 / - 
07c0: 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  + col1 FROM tab0
07d0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 2d 34 35 0d  ..----..-2..-45.
07e0: 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .0....onlyif mys
07f0: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
0800: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
0810: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
0820: 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  8..SELECT ALL - 
0830: 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  + COUNT( * ) AS 
0840: 63 6f 6c 31 2c 20 2b 20 43 4f 55 4e 54 28 20 44  col1, + COUNT( D
0850: 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 29 20 41  ISTINCT col2 ) A
0860: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
0870: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
0880: 2d 33 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  -3..3....skipif 
0890: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
08a0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
08b0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
08c0: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b  ..SELECT ALL - +
08d0: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
08e0: 63 6f 6c 31 2c 20 2b 20 43 4f 55 4e 54 20 28 20  col1, + COUNT ( 
08f0: 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 29 20  DISTINCT col2 ) 
0900: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
0910: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
0920: 0a 2d 33 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66  .-3..3....skipif
0930: 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
0940: 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
0950: 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
0960: 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
0970: 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  s..query II rows
0980: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
0990: 2d 20 63 6f 6c 31 20 63 6f 6c 31 2c 20 63 6f 6c  - col1 col1, col
09a0: 32 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  2 col1 FROM tab1
09b0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
09c0: 2d 31 34 0d 0a 39 36 0d 0a 2d 34 37 0d 0a 36 38  -14..96..-47..68
09d0: 0d 0a 2d 35 0d 0a 35 39 0d 0a 0d 0a 71 75 65 72  ..-5..59....quer
09e0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
09f0: 45 43 54 20 41 4c 4c 20 34 36 20 41 53 20 63 6f  ECT ALL 46 AS co
0a00: 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72  l2 FROM tab2 cor
0a10: 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 34 36 0d  0..----..46..46.
0a20: 0a 34 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .46....onlyif my
0a30: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
0a40: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
0a50: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
0a60: 31 31 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 43  11..SELECT - + C
0a70: 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20 2d 20  OUNT( * ) * + - 
0a80: 38 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  8 AS col2 FROM t
0a90: 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab1 cor0..----..
0aa0: 32 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  24....skipif mys
0ab0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
0ac0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
0ad0: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 0d 0a 53  sort label-11..S
0ae0: 45 4c 45 43 54 20 2d 20 2b 20 43 4f 55 4e 54 20  ELECT - + COUNT 
0af0: 28 20 2a 20 29 20 2a 20 2b 20 2d 20 38 20 41 53  ( * ) * + - 8 AS
0b00: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
0b10: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 34 0d 0a  cor0..----..24..
0b20: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
0b30: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
0b40: 43 54 20 2d 20 39 38 20 41 53 20 63 6f 6c 30 20  CT - 98 AS col0 
0b50: 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a  FROM tab0 cor0..
0b60: 2d 2d 2d 2d 0d 0a 2d 39 38 0d 0a 0d 0a 6f 6e 6c  ----..-98....onl
0b70: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
0b80: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
0b90: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
0ba0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
0bb0: 31 33 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  13..SELECT * FRO
0bc0: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
0bd0: 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3e 20  HERE NOT NULL > 
0be0: 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  + CAST( NULL AS 
0bf0: 53 49 47 4e 45 44 20 29 0d 0a 2d 2d 2d 2d 0d 0a  SIGNED )..----..
0c00: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
0c10: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
0c20: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
0c30: 72 74 20 6c 61 62 65 6c 2d 31 33 0d 0a 53 45 4c  rt label-13..SEL
0c40: 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ECT * FROM tab1 
0c50: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
0c60: 54 20 4e 55 4c 4c 20 3e 20 2b 20 43 41 53 54 20  T NULL > + CAST 
0c70: 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
0c80: 52 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  R )..----....que
0c90: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
0ca0: 4c 45 43 54 20 2d 20 2b 20 63 6f 6c 32 20 2a 20  LECT - + col2 * 
0cb0: 2b 20 2b 20 32 39 20 2a 20 63 6f 6c 32 20 46 52  + + 29 * col2 FR
0cc0: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
0cd0: 0a 2d 2d 2d 2d 0d 0a 2d 31 30 30 39 34 39 0d 0a  .----..-100949..
0ce0: 2d 31 33 34 30 39 36 0d 0a 2d 32 36 37 32 36 34  -134096..-267264
0cf0: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
0d00: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
0d10: 2b 20 63 6f 6c 32 20 2a 20 2d 20 28 20 2d 20 31  + col2 * - ( - 1
0d20: 36 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  6 ) AS col1 FROM
0d30: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
0d40: 2d 2d 2d 0d 0a 31 30 38 38 0d 0a 31 35 33 36 0d  ---..1088..1536.
0d50: 0a 39 34 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .944....onlyif m
0d60: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
0d70: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
0d80: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
0d90: 2d 31 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  -16..SELECT DIST
0da0: 49 4e 43 54 20 32 31 20 2a 20 43 4f 55 4e 54 28  INCT 21 * COUNT(
0db0: 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41   * ) FROM tab1 A
0dc0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 33  S cor0..----..63
0dd0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
0de0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
0df0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
0e00: 72 74 20 6c 61 62 65 6c 2d 31 36 0d 0a 53 45 4c  rt label-16..SEL
0e10: 45 43 54 20 44 49 53 54 49 4e 43 54 20 32 31 20  ECT DISTINCT 21 
0e20: 2a 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52  * COUNT ( * ) FR
0e30: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
0e40: 0a 2d 2d 2d 2d 0d 0a 36 33 0d 0a 0d 0a 6f 6e 6c  .----..63....onl
0e50: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
0e60: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
0e70: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
0e80: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
0e90: 31 37 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  17..SELECT * FRO
0ea0: 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
0eb0: 20 32 30 20 42 45 54 57 45 45 4e 20 2d 20 43 41   20 BETWEEN - CA
0ec0: 53 54 28 20 2b 20 63 6f 6c 30 20 41 53 20 53 49  ST( + col0 AS SI
0ed0: 47 4e 45 44 20 29 20 2f 20 34 20 41 4e 44 20 2b  GNED ) / 4 AND +
0ee0: 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d   + col1..----...
0ef0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
0f00: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
0f10: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
0f20: 74 20 6c 61 62 65 6c 2d 31 37 0d 0a 53 45 4c 45  t label-17..SELE
0f30: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  CT * FROM tab2 W
0f40: 48 45 52 45 20 4e 4f 54 20 32 30 20 42 45 54 57  HERE NOT 20 BETW
0f50: 45 45 4e 20 2d 20 43 41 53 54 20 28 20 2b 20 63  EEN - CAST ( + c
0f60: 6f 6c 30 20 41 53 20 49 4e 54 45 47 45 52 20 29  ol0 AS INTEGER )
0f70: 20 2f 20 34 20 41 4e 44 20 2b 20 2b 20 63 6f 6c   / 4 AND + + col
0f80: 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  1..----....query
0f90: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
0fa0: 43 54 20 41 4c 4c 20 63 6f 6c 30 20 2a 20 2b 20  CT ALL col0 * + 
0fb0: 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46  + col2 AS col2 F
0fc0: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
0fd0: 34 38 39 36 0d 0a 35 30 31 35 0d 0a 36 31 38 38  4896..5015..6188
0fe0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
0ff0: 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
1000: 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
1010: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1020: 61 62 65 6c 2d 31 39 0d 0a 53 45 4c 45 43 54 20  abel-19..SELECT 
1030: 44 49 53 54 49 4e 43 54 20 2d 20 31 38 20 44 49  DISTINCT - 18 DI
1040: 56 20 2b 20 35 30 20 41 53 20 63 6f 6c 31 20 46  V + 50 AS col1 F
1050: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
1060: 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
1070: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1080: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1090: 6f 72 74 20 6c 61 62 65 6c 2d 31 39 0d 0a 53 45  ort label-19..SE
10a0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
10b0: 31 38 20 2f 20 2b 20 35 30 20 41 53 20 63 6f 6c  18 / + 50 AS col
10c0: 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
10d0: 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49  -..0....query II
10e0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
10f0: 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 2c 20 63   col1 AS col2, c
1100: 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol0 AS col2 FROM
1110: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d   tab1..----..14.
1120: 0a 35 31 0d 0a 34 37 0d 0a 39 31 0d 0a 35 0d 0a  .51..47..91..5..
1130: 38 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  85....query II r
1140: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
1150: 4c 4c 20 2d 20 63 6f 6c 31 2c 20 63 6f 6c 32 20  LL - col1, col2 
1160: 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
1170: 0a 2d 35 31 0d 0a 32 33 0d 0a 2d 36 37 0d 0a 35  .-51..23..-67..5
1180: 38 0d 0a 2d 37 37 0d 0a 34 30 0d 0a 0d 0a 71 75  8..-77..40....qu
1190: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
11a0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
11b0: 2d 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c 32 20 41  - col1, + col2 A
11c0: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
11d0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 32 33 0d  ..----..-51..23.
11e0: 0a 2d 36 37 0d 0a 35 38 0d 0a 2d 37 37 0d 0a 34  .-67..58..-77..4
11f0: 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
1200: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63  sort..SELECT - c
1210: 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol2 AS col0 FROM
1220: 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20   tab2 WHERE NOT 
1230: 63 6f 6c 31 20 2f 20 2b 20 63 6f 6c 30 20 2a 20  col1 / + col0 * 
1240: 2b 20 2d 20 36 38 20 2b 20 2d 20 33 35 20 2d 20  + - 68 + - 35 - 
1250: 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col0 IS NOT NULL
1260: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
1270: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1280: 54 20 44 49 53 54 49 4e 43 54 20 32 20 2a 20 2b  T DISTINCT 2 * +
1290: 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52   col0 AS col2 FR
12a0: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab2..----..1
12b0: 32 38 0d 0a 31 35 30 0d 0a 39 32 0d 0a 0d 0a 71  28..150..92....q
12c0: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
12d0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
12e0: 20 2b 20 34 32 20 41 53 20 63 6f 6c 31 2c 20 2b   + 42 AS col1, +
12f0: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
1300: 0a 2d 2d 2d 2d 0d 0a 34 32 0d 0a 35 31 0d 0a 34  .----..42..51..4
1310: 32 0d 0a 38 35 0d 0a 34 32 0d 0a 39 31 0d 0a 0d  2..85..42..91...
1320: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
1330: 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 63 6f  t..SELECT - + co
1340: 6c 31 20 41 53 20 63 6f 6c 31 2c 20 2d 20 35 36  l1 AS col1, - 56
1350: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
1360: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 35  r0..----..-1..-5
1370: 36 0d 0a 2d 32 31 0d 0a 2d 35 36 0d 0a 2d 38 31  6..-21..-56..-81
1380: 0d 0a 2d 35 36 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-56....query I
1390: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
13a0: 54 20 2d 20 34 38 2c 20 2b 20 63 6f 6c 32 20 2b  T - 48, + col2 +
13b0: 20 35 38 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   58 AS col0 FROM
13c0: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
13d0: 2d 2d 2d 0d 0a 2d 34 38 0d 0a 31 31 36 0d 0a 2d  ---..-48..116..-
13e0: 34 38 0d 0a 38 31 0d 0a 2d 34 38 0d 0a 39 38 0d  48..81..-48..98.
13f0: 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
1400: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
1410: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
1420: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
1430: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
1440: 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
1450: 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2a 20 2d 20  LECT - col1 * - 
1460: 63 6f 6c 31 20 63 6f 6c 31 2c 20 2d 20 63 6f 6c  col1 col1, - col
1470: 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
1480: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 36 0d 0a  or0..----..196..
1490: 2d 31 34 0d 0a 32 32 30 39 0d 0a 2d 34 37 0d 0a  -14..2209..-47..
14a0: 32 35 0d 0a 2d 35 0d 0a 0d 0a 71 75 65 72 79 20  25..-5....query 
14b0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
14c0: 54 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 41 53 20  T ALL - col1 AS 
14d0: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 57  col1 FROM tab2 W
14e0: 48 45 52 45 20 2d 20 2b 20 63 6f 6c 32 20 2d 20  HERE - + col2 - 
14f0: 2d 20 63 6f 6c 32 20 3c 20 4e 55 4c 4c 0d 0a 2d  - col2 < NULL..-
1500: 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
1510: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
1520: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
1530: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1540: 33 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  30..SELECT DISTI
1550: 4e 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a  NCT COUNT( * ) *
1560: 20 2b 20 32 39 20 2b 20 2d 20 36 20 46 52 4f 4d   + 29 + - 6 FROM
1570: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 38 31 0d   tab1..----..81.
1580: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1590: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
15a0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
15b0: 74 20 6c 61 62 65 6c 2d 33 30 0d 0a 53 45 4c 45  t label-30..SELE
15c0: 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e  CT DISTINCT COUN
15d0: 54 20 28 20 2a 20 29 20 2a 20 2b 20 32 39 20 2b  T ( * ) * + 29 +
15e0: 20 2d 20 36 20 46 52 4f 4d 20 74 61 62 31 0d 0a   - 6 FROM tab1..
15f0: 2d 2d 2d 2d 0d 0a 38 31 0d 0a 0d 0a 6f 6e 6c 79  ----..81....only
1600: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
1610: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
1620: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
1630: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 31 0d  owsort label-31.
1640: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1650: 20 2b 20 35 32 20 2a 20 2b 20 2d 20 41 56 47 20   + 52 * + - AVG 
1660: 28 20 44 49 53 54 49 4e 43 54 20 2b 20 43 41 53  ( DISTINCT + CAS
1670: 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
1680: 44 20 29 20 29 20 2b 20 41 56 47 20 28 20 2d 20  D ) ) + AVG ( - 
1690: 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 30  col1 ) FROM tab0
16a0: 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
16b0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
16c0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
16d0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
16e0: 61 62 65 6c 2d 33 31 0d 0a 53 45 4c 45 43 54 20  abel-31..SELECT 
16f0: 44 49 53 54 49 4e 43 54 20 2b 20 35 32 20 2a 20  DISTINCT + 52 * 
1700: 2b 20 2d 20 41 56 47 20 28 20 44 49 53 54 49 4e  + - AVG ( DISTIN
1710: 43 54 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c  CT + CAST ( NULL
1720: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20   AS INTEGER ) ) 
1730: 2b 20 41 56 47 20 28 20 2d 20 63 6f 6c 31 20 29  + AVG ( - col1 )
1740: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
1750: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20  ..NULL....query 
1760: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1770: 43 54 20 41 4c 4c 20 28 20 2d 20 63 6f 6c 31 20  CT ALL ( - col1 
1780: 29 20 41 53 20 63 6f 6c 31 2c 20 63 6f 6c 32 20  ) AS col1, col2 
1790: 2a 20 2d 20 32 39 20 2b 20 2d 20 63 6f 6c 30 20  * - 29 + - col0 
17a0: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
17b0: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
17c0: 0a 2d 31 34 0d 0a 2d 32 38 33 35 0d 0a 2d 34 37  .-14..-2835..-47
17d0: 0d 0a 2d 32 30 36 33 0d 0a 2d 35 0d 0a 2d 31 37  ..-2063..-5..-17
17e0: 39 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  96....query I ro
17f0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
1800: 2b 20 63 6f 6c 31 20 2a 20 2b 20 2d 20 63 6f 6c  + col1 * + - col
1810: 32 20 2b 20 38 38 20 46 52 4f 4d 20 74 61 62 30  2 + 88 FROM tab0
1820: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1830: 2d 31 31 0d 0a 2d 31 32 32 0d 0a 2d 33 37 31 39  -11..-122..-3719
1840: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1850: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
1860: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
1870: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 34 0d  owsort label-34.
1880: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1890: 20 32 32 20 2b 20 2b 20 2d 20 43 4f 55 4e 54 28   22 + + - COUNT(
18a0: 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41   * ) FROM tab0 A
18b0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39  S cor0..----..19
18c0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
18d0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
18e0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
18f0: 72 74 20 6c 61 62 65 6c 2d 33 34 0d 0a 53 45 4c  rt label-34..SEL
1900: 45 43 54 20 44 49 53 54 49 4e 43 54 20 32 32 20  ECT DISTINCT 22 
1910: 2b 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  + + - COUNT ( * 
1920: 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  ) FROM tab0 AS c
1930: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 0d 0a 0d  or0..----..19...
1940: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1950: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1960: 54 20 2d 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 2b  T - + col0 * + +
1970: 20 63 6f 6c 30 20 2d 20 2d 20 2b 20 63 6f 6c 32   col0 - - + col2
1980: 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   + col0 FROM tab
1990: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
19a0: 0a 2d 32 30 34 37 0d 0a 2d 33 39 39 32 0d 0a 2d  .-2047..-3992..-
19b0: 35 34 39 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  5492....onlyif m
19c0: 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
19d0: 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
19e0: 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
19f0: 6f 72 74 20 6c 61 62 65 6c 2d 33 36 0d 0a 53 45  ort label-36..SE
1a00: 4c 45 43 54 20 63 6f 6c 30 20 44 49 56 20 2b 20  LECT col0 DIV + 
1a10: 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 31 20 41 53  col0 + + col1 AS
1a20: 20 63 6f 6c 32 2c 20 63 6f 6c 32 20 41 53 20 63   col2, col2 AS c
1a30: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
1a40: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 0d 0a   cor0..----..2..
1a50: 39 39 0d 0a 32 32 0d 0a 31 30 0d 0a 38 32 0d 0a  99..22..10..82..
1a60: 34 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  47....skipif mys
1a70: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1a80: 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
1a90: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 36 0d 0a  wsort label-36..
1aa0: 53 45 4c 45 43 54 20 63 6f 6c 30 20 2f 20 2b 20  SELECT col0 / + 
1ab0: 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 31 20 41 53  col0 + + col1 AS
1ac0: 20 63 6f 6c 32 2c 20 63 6f 6c 32 20 41 53 20 63   col2, col2 AS c
1ad0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
1ae0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 0d 0a   cor0..----..2..
1af0: 39 39 0d 0a 32 32 0d 0a 31 30 0d 0a 38 32 0d 0a  99..22..10..82..
1b00: 34 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  47....query II r
1b10: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
1b20: 20 2b 20 28 20 2d 20 38 30 20 29 20 2b 20 2b 20   + ( - 80 ) + + 
1b30: 39 36 20 41 53 20 63 6f 6c 30 2c 20 39 32 20 41  96 AS col0, 92 A
1b40: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
1b50: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1b60: 31 36 0d 0a 39 32 0d 0a 31 36 0d 0a 39 32 0d 0a  16..92..16..92..
1b70: 31 36 0d 0a 39 32 0d 0a 0d 0a 6f 6e 6c 79 69 66  16..92....onlyif
1b80: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
1b90: 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66  te syntax: DIV f
1ba0: 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
1bb0: 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
1bc0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 38 0d  owsort label-38.
1bd0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1be0: 20 2b 20 38 34 20 44 49 56 20 2d 20 28 20 2b 20   + 84 DIV - ( + 
1bf0: 38 37 20 29 20 2b 20 2d 20 37 36 20 2b 20 2b 20  87 ) + - 76 + + 
1c00: 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 63 6f 6c  - COUNT( * ) col
1c10: 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
1c20: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 39 0d 0a  or0..----..-79..
1c30: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1c40: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1c50: 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
1c60: 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
1c70: 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
1c80: 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
1c90: 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
1ca0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1cb0: 33 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  38..SELECT DISTI
1cc0: 4e 43 54 20 2b 20 38 34 20 2f 20 2d 20 28 20 2b  NCT + 84 / - ( +
1cd0: 20 38 37 20 29 20 2b 20 2d 20 37 36 20 2b 20 2b   87 ) + - 76 + +
1ce0: 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 63   - COUNT ( * ) c
1cf0: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
1d00: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 39   cor0..----..-79
1d10: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
1d20: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
1d30: 63 6f 6c 30 20 2a 20 63 6f 6c 30 20 2b 20 2b 20  col0 * col0 + + 
1d40: 39 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  91 FROM tab1 AS 
1d50: 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 31 20  cor0 WHERE col1 
1d60: 2a 20 2b 20 38 34 20 3e 20 2b 20 28 20 33 39 20  * + 84 > + ( 39 
1d70: 29 20 2a 20 63 6f 6c 30 20 2b 20 2b 20 37 31 20  ) * col0 + + 71 
1d80: 2f 20 2b 20 2d 20 32 37 0d 0a 2d 2d 2d 2d 0d 0a  / + - 27..----..
1d90: 38 33 37 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49  8372....query II
1da0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1db0: 20 2b 20 31 32 20 2b 20 2d 20 63 6f 6c 31 20 2a   + 12 + - col1 *
1dc0: 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c   + - col2 AS col
1dd0: 32 2c 20 63 6f 6c 31 20 2b 20 63 6f 6c 32 20 2b  2, col1 + col2 +
1de0: 20 28 20 2d 20 63 6f 6c 30 20 29 20 2a 20 2d 20   ( - col0 ) * - 
1df0: 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  - col0 FROM tab0
1e00: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 31   cor0..----..111
1e10: 0d 0a 2d 39 33 30 39 0d 0a 32 32 32 0d 0a 2d 37  ..-9309..222..-7
1e20: 35 33 38 0d 0a 33 38 31 39 0d 0a 2d 39 37 0d 0a  538..3819..-97..
1e30: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
1e40: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
1e50: 4e 43 54 20 28 20 2d 20 28 20 2d 20 2d 20 63 6f  NCT ( - ( - - co
1e60: 6c 31 20 29 20 29 20 41 53 20 63 6f 6c 30 2c 20  l1 ) ) AS col0, 
1e70: 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46  - col2 AS col2 F
1e80: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
1e90: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 39 39 0d  ..----..-1..-99.
1ea0: 0a 2d 32 31 0d 0a 2d 31 30 0d 0a 2d 38 31 0d 0a  .-21..-10..-81..
1eb0: 2d 34 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  -47....query II 
1ec0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1ed0: 44 49 53 54 49 4e 43 54 20 2b 20 34 32 20 41 53  DISTINCT + 42 AS
1ee0: 20 63 6f 6c 30 2c 20 2b 20 36 20 41 53 20 63 6f   col0, + 6 AS co
1ef0: 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  l2 FROM tab1 cor
1f00: 30 20 57 48 45 52 45 20 35 31 20 2b 20 2b 20 2d  0 WHERE 51 + + -
1f10: 20 35 30 20 2b 20 28 20 2b 20 32 37 20 29 20 2a   50 + ( + 27 ) *
1f20: 20 2d 20 2b 20 28 20 2b 20 2b 20 33 20 29 20 49   - + ( + + 3 ) I
1f30: 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
1f40: 0d 0a 34 32 0d 0a 36 0d 0a 0d 0a 71 75 65 72 79  ..42..6....query
1f50: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
1f60: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  LECT * FROM tab2
1f70: 20 57 48 45 52 45 20 2b 20 38 36 20 2a 20 38 35   WHERE + 86 * 85
1f80: 20 3c 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   <= NULL..----..
1f90: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
1fa0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
1fb0: 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  INCT * FROM tab2
1fc0: 20 57 48 45 52 45 20 2b 20 63 6f 6c 31 20 4e 4f   WHERE + col1 NO
1fd0: 54 20 42 45 54 57 45 45 4e 20 2b 20 63 6f 6c 32  T BETWEEN + col2
1fe0: 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   AND NULL..----.
1ff0: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2000: 72 74 0d 0a 53 45 4c 45 43 54 20 38 20 2a 20 2b  rt..SELECT 8 * +
2010: 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52   col2 AS col1 FR
2020: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab2..----..1
2030: 38 34 0d 0a 33 32 30 0d 0a 34 36 34 0d 0a 0d 0a  84..320..464....
2040: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
2050: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2060: 54 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 2c 20  T col2 AS col0, 
2070: 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46  - col2 AS col2 F
2080: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
2090: 35 39 0d 0a 2d 35 39 0d 0a 36 38 0d 0a 2d 36 38  59..-59..68..-68
20a0: 0d 0a 39 36 0d 0a 2d 39 36 0d 0a 0d 0a 6f 6e 6c  ..96..-96....onl
20b0: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
20c0: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
20d0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
20e0: 6c 61 62 65 6c 2d 34 37 0d 0a 53 45 4c 45 43 54  label-47..SELECT
20f0: 20 2b 20 31 33 20 2a 20 43 4f 55 4e 54 28 20 2a   + 13 * COUNT( *
2100: 20 29 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20   ) - - COUNT( * 
2110: 29 20 2a 20 2d 20 39 20 41 53 20 63 6f 6c 31 20  ) * - 9 AS col1 
2120: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
2130: 0a 31 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .12....skipif my
2140: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2150: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
2160: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 37 0d 0a  wsort label-47..
2170: 53 45 4c 45 43 54 20 2b 20 31 33 20 2a 20 43 4f  SELECT + 13 * CO
2180: 55 4e 54 20 28 20 2a 20 29 20 2d 20 2d 20 43 4f  UNT ( * ) - - CO
2190: 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20 39 20  UNT ( * ) * - 9 
21a0: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
21b0: 31 0d 0a 2d 2d 2d 2d 0d 0a 31 32 0d 0a 0d 0a 6f  1..----..12....o
21c0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
21d0: 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
21e0: 44 20 74 79 70 65 3a 20 44 45 43 49 4d 41 4c 20  D type: DECIMAL 
21f0: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
2200: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 38  rowsort label-48
2210: 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 46 52  ..SELECT col2 FR
2220: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
2230: 57 48 45 52 45 20 28 20 2d 20 43 41 53 54 28 20  WHERE ( - CAST( 
2240: 2d 20 31 37 20 41 53 20 53 49 47 4e 45 44 20 29  - 17 AS SIGNED )
2250: 20 2d 20 2d 20 2b 20 43 41 53 54 28 20 4e 55 4c   - - + CAST( NUL
2260: 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20 29  L AS DECIMAL ) )
2270: 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e 55 4c   NOT BETWEEN NUL
2280: 4c 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  L AND NULL..----
2290: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
22a0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
22b0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
22c0: 72 74 20 6c 61 62 65 6c 2d 34 38 0d 0a 53 45 4c  rt label-48..SEL
22d0: 45 43 54 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  ECT col2 FROM ta
22e0: 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
22f0: 20 28 20 2d 20 43 41 53 54 20 28 20 2d 20 31 37   ( - CAST ( - 17
2300: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2d 20   AS INTEGER ) - 
2310: 2d 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  - + CAST ( NULL 
2320: 41 53 20 52 45 41 4c 20 29 20 29 20 4e 4f 54 20  AS REAL ) ) NOT 
2330: 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44  BETWEEN NULL AND
2340: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   NULL..----....o
2350: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
2360: 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
2370: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
2380: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
2390: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
23a0: 6c 2d 34 39 0d 0a 53 45 4c 45 43 54 20 2d 20 2d  l-49..SELECT - -
23b0: 20 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20 2b   MAX( DISTINCT +
23c0: 20 63 6f 6c 32 20 29 20 2d 20 2d 20 43 41 53 54   col2 ) - - CAST
23d0: 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
23e0: 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   ) col0 FROM tab
23f0: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
2400: 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
2410: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2420: 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70  atible..skipif p
2430: 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
2440: 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
2450: 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
2460: 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
2470: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2480: 20 6c 61 62 65 6c 2d 34 39 0d 0a 53 45 4c 45 43   label-49..SELEC
2490: 54 20 2d 20 2d 20 4d 41 58 20 28 20 44 49 53 54  T - - MAX ( DIST
24a0: 49 4e 43 54 20 2b 20 63 6f 6c 32 20 29 20 2d 20  INCT + col2 ) - 
24b0: 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
24c0: 20 49 4e 54 45 47 45 52 20 29 20 63 6f 6c 30 20   INTEGER ) col0 
24d0: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
24e0: 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  0..----..NULL...
24f0: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
2500: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
2510: 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  NCT * FROM tab1 
2520: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20  AS cor0 WHERE ( 
2530: 35 38 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  58 ) IS NOT NULL
2540: 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
2550: 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30   hashing to c6c0
2560: 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38 31  a4111b36d04dbc81
2570: 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a  1a11e4d54cad....
2580: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
2590: 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
25a0: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
25b0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
25c0: 2d 35 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  -51..SELECT DIST
25d0: 49 4e 43 54 20 2d 20 63 6f 6c 31 20 2a 20 43 41  INCT - col1 * CA
25e0: 53 54 28 20 2b 20 28 20 63 6f 6c 31 20 29 20 2a  ST( + ( col1 ) *
25f0: 20 63 6f 6c 32 20 41 53 20 53 49 47 4e 45 44 20   col2 AS SIGNED 
2600: 29 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31  ) + col0 AS col1
2610: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
2620: 0d 0a 2d 32 0d 0a 2d 33 30 38 33 35 32 0d 0a 2d  ..-2..-308352..-
2630: 34 33 32 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  4323....skipif m
2640: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2650: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
2660: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 31 0d  owsort label-51.
2670: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2680: 20 2d 20 63 6f 6c 31 20 2a 20 43 41 53 54 20 28   - col1 * CAST (
2690: 20 2b 20 28 20 63 6f 6c 31 20 29 20 2a 20 63 6f   + ( col1 ) * co
26a0: 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  l2 AS INTEGER ) 
26b0: 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46  + col0 AS col1 F
26c0: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
26d0: 2d 32 0d 0a 2d 33 30 38 33 35 32 0d 0a 2d 34 33  -2..-308352..-43
26e0: 32 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  23....query III 
26f0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2700: 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  * FROM tab2 WHER
2710: 45 20 4e 4f 54 20 2d 20 63 6f 6c 31 20 2a 20 2d  E NOT - col1 * -
2720: 20 63 6f 6c 31 20 3c 3d 20 4e 55 4c 4c 0d 0a 2d   col1 <= NULL..-
2730: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ---....query III
2740: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2750: 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31   ALL * FROM tab1
2760: 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c   WHERE NOT + col
2770: 30 20 2a 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c  0 * col0 IS NULL
2780: 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
2790: 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30   hashing to c6c0
27a0: 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38 31  a4111b36d04dbc81
27b0: 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a  1a11e4d54cad....
27c0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
27d0: 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72  AST syntax: aggr
27e0: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49  egate syntax: SI
27f0: 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
2800: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2810: 65 6c 2d 35 34 0d 0a 53 45 4c 45 43 54 20 41 4c  el-54..SELECT AL
2820: 4c 20 2d 20 43 41 53 54 28 20 4d 49 4e 28 20 2d  L - CAST( MIN( -
2830: 20 63 6f 6c 30 20 29 20 41 53 20 53 49 47 4e 45   col0 ) AS SIGNE
2840: 44 20 29 20 2b 20 2d 20 34 33 20 46 52 4f 4d 20  D ) + - 43 FROM 
2850: 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2d  tab2 WHERE NOT -
2860: 20 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c   col0 IS NOT NUL
2870: 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  L..----..NULL...
2880: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2890: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
28a0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
28b0: 6c 61 62 65 6c 2d 35 34 0d 0a 53 45 4c 45 43 54  label-54..SELECT
28c0: 20 41 4c 4c 20 2d 20 43 41 53 54 20 28 20 4d 49   ALL - CAST ( MI
28d0: 4e 20 28 20 2d 20 63 6f 6c 30 20 29 20 41 53 20  N ( - col0 ) AS 
28e0: 49 4e 54 45 47 45 52 20 29 20 2b 20 2d 20 34 33  INTEGER ) + - 43
28f0: 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
2900: 20 4e 4f 54 20 2d 20 63 6f 6c 30 20 49 53 20 4e   NOT - col0 IS N
2910: 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e  OT NULL..----..N
2920: 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ULL....query I r
2930: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
2940: 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52   col1 AS col2 FR
2950: 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 63 6f  OM tab1 WHERE co
2960: 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  l1 IS NOT NULL..
2970: 2d 2d 2d 2d 0d 0a 31 34 0d 0a 34 37 0d 0a 35 0d  ----..14..47..5.
2980: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2990: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
29a0: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
29b0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 36 0d 0a  wsort label-56..
29c0: 53 45 4c 45 43 54 20 2d 20 4d 41 58 28 20 41 4c  SELECT - MAX( AL
29d0: 4c 20 2b 20 63 6f 6c 31 20 29 20 2f 20 31 37 20  L + col1 ) / 17 
29e0: 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
29f0: 4e 55 4c 4c 20 49 4e 20 28 20 2d 20 63 6f 6c 32  NULL IN ( - col2
2a00: 20 29 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a   )..----..NULL..
2a10: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2a20: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2a30: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2a40: 20 6c 61 62 65 6c 2d 35 36 0d 0a 53 45 4c 45 43   label-56..SELEC
2a50: 54 20 2d 20 4d 41 58 20 28 20 41 4c 4c 20 2b 20  T - MAX ( ALL + 
2a60: 63 6f 6c 31 20 29 20 2f 20 31 37 20 46 52 4f 4d  col1 ) / 17 FROM
2a70: 20 74 61 62 32 20 57 48 45 52 45 20 4e 55 4c 4c   tab2 WHERE NULL
2a80: 20 49 4e 20 28 20 2d 20 63 6f 6c 32 20 29 0d 0a   IN ( - col2 )..
2a90: 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e  ----..NULL....on
2aa0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
2ab0: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
2ac0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2ad0: 20 6c 61 62 65 6c 2d 35 37 0d 0a 53 45 4c 45 43   label-57..SELEC
2ae0: 54 20 4d 41 58 28 20 41 4c 4c 20 2d 20 63 6f 6c  T MAX( ALL - col
2af0: 32 20 29 20 2f 20 35 39 20 46 52 4f 4d 20 74 61  2 ) / 59 FROM ta
2b00: 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63  b1 WHERE NOT + c
2b10: 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ol2 IS NOT NULL.
2b20: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
2b30: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2b40: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2b50: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2b60: 62 65 6c 2d 35 37 0d 0a 53 45 4c 45 43 54 20 4d  bel-57..SELECT M
2b70: 41 58 20 28 20 41 4c 4c 20 2d 20 63 6f 6c 32 20  AX ( ALL - col2 
2b80: 29 20 2f 20 35 39 20 46 52 4f 4d 20 74 61 62 31  ) / 59 FROM tab1
2b90: 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c   WHERE NOT + col
2ba0: 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  2 IS NOT NULL..-
2bb0: 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65  ---..NULL....que
2bc0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2bd0: 4c 45 43 54 20 2d 20 63 6f 6c 32 20 41 53 20 63  LECT - col2 AS c
2be0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 57 48  ol2 FROM tab2 WH
2bf0: 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29  ERE NOT ( NULL )
2c00: 20 4e 4f 54 20 49 4e 20 28 20 38 35 20 29 0d 0a   NOT IN ( 85 )..
2c10: 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
2c20: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
2c30: 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
2c40: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2c50: 72 74 20 6c 61 62 65 6c 2d 35 39 0d 0a 53 45 4c  rt label-59..SEL
2c60: 45 43 54 20 2b 20 63 6f 6c 30 20 2a 20 63 6f 6c  ECT + col0 * col
2c70: 30 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  0 + CAST( NULL A
2c80: 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20  S SIGNED ) FROM 
2c90: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab0..----..NULL
2ca0: 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
2cb0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2cc0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2cd0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2ce0: 61 62 65 6c 2d 35 39 0d 0a 53 45 4c 45 43 54 20  abel-59..SELECT 
2cf0: 2b 20 63 6f 6c 30 20 2a 20 63 6f 6c 30 20 2b 20  + col0 * col0 + 
2d00: 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
2d10: 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61  NTEGER ) FROM ta
2d20: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b0..----..NULL..
2d30: 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  NULL..NULL....qu
2d40: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2d50: 45 4c 45 43 54 20 41 4c 4c 20 2d 20 34 38 20 2f  ELECT ALL - 48 /
2d60: 20 34 35 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20   45 - col1 FROM 
2d70: 74 61 62 31 20 57 48 45 52 45 20 28 20 4e 55 4c  tab1 WHERE ( NUL
2d80: 4c 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  L ) IS NOT NULL.
2d90: 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
2da0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2db0: 20 41 4c 4c 20 28 20 2d 20 28 20 37 35 20 29 20   ALL ( - ( 75 ) 
2dc0: 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
2dd0: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 35 0d 0a  ab0..----..-75..
2de0: 2d 37 35 0d 0a 2d 37 35 0d 0a 0d 0a 71 75 65 72  -75..-75....quer
2df0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2e00: 45 43 54 20 2b 20 35 31 20 41 53 20 63 6f 6c 32  ECT + 51 AS col2
2e10: 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
2e20: 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d   NULL IS NULL..-
2e30: 2d 2d 2d 0d 0a 35 31 0d 0a 35 31 0d 0a 35 31 0d  ---..51..51..51.
2e40: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
2e50: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
2e60: 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   * FROM tab2 WHE
2e70: 52 45 20 28 20 2b 20 35 35 20 29 20 4e 4f 54 20  RE ( + 55 ) NOT 
2e80: 42 45 54 57 45 45 4e 20 28 20 4e 55 4c 4c 20 29  BETWEEN ( NULL )
2e90: 20 41 4e 44 20 28 20 2b 20 33 20 29 0d 0a 2d 2d   AND ( + 3 )..--
2ea0: 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
2eb0: 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61  hing to 75c998aa
2ec0: 35 33 61 63 38 33 32 31 38 63 62 66 32 66 65 62  53ac83218cbf2feb
2ed0: 39 36 32 64 30 61 34 39 0d 0a 0d 0a 71 75 65 72  962d0a49....quer
2ee0: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
2ef0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
2f00: 32 20 57 48 45 52 45 20 4e 4f 54 20 28 20 63 6f  2 WHERE NOT ( co
2f10: 6c 30 20 2b 20 2d 20 63 6f 6c 31 20 29 20 3e 20  l0 + - col1 ) > 
2f20: 2d 20 63 6f 6c 31 20 2b 20 32 0d 0a 2d 2d 2d 2d  - col1 + 2..----
2f30: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
2f40: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
2f50: 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
2f60: 28 20 4e 55 4c 4c 20 29 20 4e 4f 54 20 42 45 54  ( NULL ) NOT BET
2f70: 57 45 45 4e 20 2d 20 63 6f 6c 30 20 2a 20 63 6f  WEEN - col0 * co
2f80: 6c 31 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d  l1 AND NULL..---
2f90: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  -....query III r
2fa0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
2fb0: 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
2fc0: 20 4e 4f 54 20 38 30 20 3c 3e 20 2d 20 63 6f 6c   NOT 80 <> - col
2fd0: 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  1..----....onlyi
2fe0: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
2ff0: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
3000: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
3010: 62 65 6c 2d 36 37 0d 0a 53 45 4c 45 43 54 20 2b  bel-67..SELECT +
3020: 20 34 39 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a   49 + - COUNT( *
3030: 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
3040: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a  tab2..----..46..
3050: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
3060: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
3070: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
3080: 20 6c 61 62 65 6c 2d 36 37 0d 0a 53 45 4c 45 43   label-67..SELEC
3090: 54 20 2b 20 34 39 20 2b 20 2d 20 43 4f 55 4e 54  T + 49 + - COUNT
30a0: 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46   ( * ) AS col1 F
30b0: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
30c0: 34 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  46....query III 
30d0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
30e0: 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
30f0: 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2b  tab1 WHERE NOT +
3100: 20 32 39 20 4e 4f 54 20 42 45 54 57 45 45 4e 20   29 NOT BETWEEN 
3110: 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d  NULL AND NULL..-
3120: 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
3130: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
3140: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
3150: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
3160: 74 20 6c 61 62 65 6c 2d 36 39 0d 0a 53 45 4c 45  t label-69..SELE
3170: 43 54 20 28 20 43 41 53 54 28 20 63 6f 6c 32 20  CT ( CAST( col2 
3180: 41 53 20 53 49 47 4e 45 44 20 29 20 29 20 41 53  AS SIGNED ) ) AS
3190: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d   col2 FROM tab2.
31a0: 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 34 30 0d 0a 35  .----..23..40..5
31b0: 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  8....skipif mysq
31c0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
31d0: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
31e0: 6f 72 74 20 6c 61 62 65 6c 2d 36 39 0d 0a 53 45  ort label-69..SE
31f0: 4c 45 43 54 20 28 20 43 41 53 54 20 28 20 63 6f  LECT ( CAST ( co
3200: 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  l2 AS INTEGER ) 
3210: 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
3220: 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 34  ab2..----..23..4
3230: 30 0d 0a 35 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  0..58....onlyif 
3240: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
3250: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
3260: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
3270: 6c 2d 37 30 0d 0a 53 45 4c 45 43 54 20 28 20 43  l-70..SELECT ( C
3280: 4f 55 4e 54 28 20 2a 20 29 20 29 20 63 6f 6c 32  OUNT( * ) ) col2
3290: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
32a0: 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..3....skipif my
32b0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
32c0: 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
32d0: 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
32e0: 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
32f0: 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
3300: 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
3310: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
3320: 61 62 65 6c 2d 37 30 0d 0a 53 45 4c 45 43 54 20  abel-70..SELECT 
3330: 28 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29 20  ( COUNT ( * ) ) 
3340: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
3350: 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69  ----..3....onlyi
3360: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
3370: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
3380: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
3390: 62 65 6c 2d 37 31 0d 0a 53 45 4c 45 43 54 20 44  bel-71..SELECT D
33a0: 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 28  ISTINCT - COUNT(
33b0: 20 2d 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c   - col1 ) AS col
33c0: 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  0 FROM tab0 cor0
33d0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b  ..----..-3....sk
33e0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
33f0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
3400: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
3410: 65 6c 2d 37 31 0d 0a 53 45 4c 45 43 54 20 44 49  el-71..SELECT DI
3420: 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 20 28  STINCT - COUNT (
3430: 20 2d 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c   - col1 ) AS col
3440: 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  0 FROM tab0 cor0
3450: 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 6f 6e  ..----..-3....on
3460: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
3470: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
3480: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
3490: 20 6c 61 62 65 6c 2d 37 32 0d 0a 53 45 4c 45 43   label-72..SELEC
34a0: 54 20 41 4c 4c 20 28 20 2d 20 43 4f 55 4e 54 28  T ALL ( - COUNT(
34b0: 20 2a 20 29 20 29 20 2b 20 2d 20 38 37 20 46 52   * ) ) + - 87 FR
34c0: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
34d0: 0a 2d 2d 2d 2d 0d 0a 2d 39 30 0d 0a 0d 0a 73 6b  .----..-90....sk
34e0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
34f0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
3500: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
3510: 65 6c 2d 37 32 0d 0a 53 45 4c 45 43 54 20 41 4c  el-72..SELECT AL
3520: 4c 20 28 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  L ( - COUNT ( * 
3530: 29 20 29 20 2b 20 2d 20 38 37 20 46 52 4f 4d 20  ) ) + - 87 FROM 
3540: 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
3550: 2d 2d 0d 0a 2d 39 30 0d 0a 0d 0a 6f 6e 6c 79 69  --..-90....onlyi
3560: 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
3570: 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
3580: 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
3590: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 33 0d 0a  wsort label-73..
35a0: 53 45 4c 45 43 54 20 2d 20 31 39 20 44 49 56 20  SELECT - 19 DIV 
35b0: 2d 20 28 20 2d 20 63 6f 6c 30 20 2a 20 38 34 20  - ( - col0 * 84 
35c0: 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
35d0: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
35e0: 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b  -..0..0..0....sk
35f0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
3600: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
3610: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
3620: 65 6c 2d 37 33 0d 0a 53 45 4c 45 43 54 20 2d 20  el-73..SELECT - 
3630: 31 39 20 2f 20 2d 20 28 20 2d 20 63 6f 6c 30 20  19 / - ( - col0 
3640: 2a 20 38 34 20 29 20 41 53 20 63 6f 6c 31 20 46  * 84 ) AS col1 F
3650: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
3660: 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d  ..----..0..0..0.
3670: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
3680: 72 74 0d 0a 53 45 4c 45 43 54 20 33 31 20 2a 20  rt..SELECT 31 * 
3690: 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46  + col0 AS col2 F
36a0: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
36b0: 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20   WHERE ( NULL ) 
36c0: 4e 4f 54 20 49 4e 20 28 20 39 38 20 29 0d 0a 2d  NOT IN ( 98 )..-
36d0: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
36e0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
36f0: 49 53 54 49 4e 43 54 20 34 36 20 2a 20 31 32 20  ISTINCT 46 * 12 
3700: 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31  + - col2 AS col1
3710: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
3720: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 35 36 0d 0a 34  r0..----..456..4
3730: 38 34 0d 0a 34 39 33 0d 0a 0d 0a 71 75 65 72 79  84..493....query
3740: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
3750: 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 33 30  CT DISTINCT - 30
3760: 20 2f 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20   / col2 AS col0 
3770: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
3780: 30 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29  0 WHERE ( NULL )
3790: 20 49 4e 20 28 20 2d 20 63 6f 6c 30 20 29 0d 0a   IN ( - col0 )..
37a0: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
37b0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
37c0: 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
37d0: 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
37e0: 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 32 20 3c 20  col0 * + col2 < 
37f0: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
3800: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
3810: 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 35 30  ELECT ALL - - 50
3820: 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 31   + col1 * + col1
3830: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
3840: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 39 31 0d 0a 35  r0..----..491..5
3850: 31 0d 0a 36 36 31 31 0d 0a 0d 0a 71 75 65 72 79  1..6611....query
3860: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
3870: 43 54 20 44 49 53 54 49 4e 43 54 20 39 39 20 2d  CT DISTINCT 99 -
3880: 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52   col2 AS col2 FR
3890: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
38a0: 57 48 45 52 45 20 28 20 2d 20 63 6f 6c 30 20 29  WHERE ( - col0 )
38b0: 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e   BETWEEN NULL AN
38c0: 44 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d  D ( NULL )..----
38d0: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
38e0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
38f0: 2b 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 31 36 20  + - col1 + - 16 
3900: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
3910: 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  0 cor0..----..-1
3920: 37 0d 0a 2d 33 37 0d 0a 2d 39 37 0d 0a 0d 0a 73  7..-37..-97....s
3930: 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
3940: 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
3950: 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
3960: 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
3970: 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
3980: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
3990: 41 4c 4c 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 28  ALL - col1 + + (
39a0: 20 63 6f 6c 32 20 2b 20 63 6f 6c 31 20 2a 20 2b   col2 + col1 * +
39b0: 20 63 6f 6c 31 20 29 20 2a 20 63 6f 6c 30 20 63   col1 ) * col0 c
39c0: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
39d0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 30   cor0..----..120
39e0: 36 35 33 0d 0a 33 34 30 39 35 38 0d 0a 33 38 31  653..340958..381
39f0: 39 33 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  939....query III
3a00: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
3a10: 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
3a20: 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
3a30: 45 52 45 20 4e 4f 54 20 28 20 2d 20 63 6f 6c 30  ERE NOT ( - col0
3a40: 20 2a 20 2d 20 63 6f 6c 30 20 29 20 4e 4f 54 20   * - col0 ) NOT 
3a50: 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44  BETWEEN NULL AND
3a60: 20 63 6f 6c 32 20 2a 20 2b 20 33 37 0d 0a 2d 2d   col2 * + 37..--
3a70: 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
3a80: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
3a90: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
3aa0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
3ab0: 33 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e  3..SELECT - COUN
3ac0: 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32  T( * ) FROM tab2
3ad0: 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 32   cor0 WHERE col2
3ae0: 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
3af0: 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66  --..-3....skipif
3b00: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
3b10: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
3b20: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
3b30: 33 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e  3..SELECT - COUN
3b40: 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  T ( * ) FROM tab
3b50: 32 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c  2 cor0 WHERE col
3b60: 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  2 IS NOT NULL..-
3b70: 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 6f 6e 6c 79 69  ---..-3....onlyi
3b80: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
3b90: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
3ba0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
3bb0: 62 65 6c 2d 38 34 0d 0a 53 45 4c 45 43 54 20 44  bel-84..SELECT D
3bc0: 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 28  ISTINCT - COUNT(
3bd0: 20 2a 20 29 20 2d 20 33 20 46 52 4f 4d 20 74 61   * ) - 3 FROM ta
3be0: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 0d 0a 0d 0a  b0..----..-6....
3bf0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
3c00: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
3c10: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
3c20: 61 62 65 6c 2d 38 34 0d 0a 53 45 4c 45 43 54 20  abel-84..SELECT 
3c30: 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54  DISTINCT - COUNT
3c40: 20 28 20 2a 20 29 20 2d 20 33 20 46 52 4f 4d 20   ( * ) - 3 FROM 
3c50: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 0d 0a  tab0..----..-6..
3c60: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
3c70: 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32  t..SELECT + col2
3c80: 20 2a 20 37 32 20 2b 20 2b 20 63 6f 6c 31 20 41   * 72 + + col1 A
3c90: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
3ca0: 0d 0a 2d 2d 2d 2d 0d 0a 31 37 30 37 0d 0a 32 39  ..----..1707..29
3cb0: 35 37 0d 0a 34 32 34 33 0d 0a 0d 0a 71 75 65 72  57..4243....quer
3cc0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
3cd0: 45 43 54 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  ECT col1 FROM ta
3ce0: 62 32 20 57 48 45 52 45 20 2d 20 31 36 20 49 53  b2 WHERE - 16 IS
3cf0: 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
3d00: 0a 35 31 0d 0a 36 37 0d 0a 37 37 0d 0a 0d 0a 6f  .51..67..77....o
3d10: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
3d20: 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
3d30: 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
3d40: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
3d50: 38 37 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c  87..SELECT + col
3d60: 31 20 44 49 56 20 2b 20 2d 20 32 39 20 2b 20 2d  1 DIV + - 29 + -
3d70: 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52   col2 AS col0 FR
3d80: 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
3d90: 35 39 0d 0a 2d 36 39 0d 0a 2d 39 36 0d 0a 0d 0a  59..-69..-96....
3da0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
3db0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
3dc0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
3dd0: 61 62 65 6c 2d 38 37 0d 0a 53 45 4c 45 43 54 20  abel-87..SELECT 
3de0: 2b 20 63 6f 6c 31 20 2f 20 2b 20 2d 20 32 39 20  + col1 / + - 29 
3df0: 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30  + - col2 AS col0
3e00: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
3e10: 0d 0a 2d 35 39 0d 0a 2d 36 39 0d 0a 2d 39 36 0d  ..-59..-69..-96.
3e20: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
3e30: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
3e40: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
3e50: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 38 0d 0a  wsort label-88..
3e60: 53 45 4c 45 43 54 20 53 55 4d 28 20 44 49 53 54  SELECT SUM( DIST
3e70: 49 4e 43 54 20 2b 20 63 6f 6c 30 20 29 20 2a 20  INCT + col0 ) * 
3e80: 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  2 FROM tab1..---
3e90: 2d 0d 0a 34 35 34 0d 0a 0d 0a 73 6b 69 70 69 66  -..454....skipif
3ea0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
3eb0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
3ec0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
3ed0: 38 0d 0a 53 45 4c 45 43 54 20 53 55 4d 20 28 20  8..SELECT SUM ( 
3ee0: 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20  DISTINCT + col0 
3ef0: 29 20 2a 20 32 20 46 52 4f 4d 20 74 61 62 31 0d  ) * 2 FROM tab1.
3f00: 0a 2d 2d 2d 2d 0d 0a 34 35 34 0d 0a 0d 0a 71 75  .----..454....qu
3f10: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
3f20: 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
3f30: 61 62 32 20 57 48 45 52 45 20 4e 55 4c 4c 20 42  ab2 WHERE NULL B
3f40: 45 54 57 45 45 4e 20 2b 20 63 6f 6c 32 20 2a 20  ETWEEN + col2 * 
3f50: 28 20 2d 20 63 6f 6c 31 20 29 20 41 4e 44 20 31  ( - col1 ) AND 1
3f60: 33 20 2b 20 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d  3 + - col2..----
3f70: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
3f80: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
3f90: 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
3fa0: 28 20 4e 55 4c 4c 20 29 20 42 45 54 57 45 45 4e  ( NULL ) BETWEEN
3fb0: 20 28 20 2d 20 63 6f 6c 32 20 29 20 41 4e 44 20   ( - col2 ) AND 
3fc0: 28 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c  ( - col0 * - col
3fd0: 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  1 )..----....onl
3fe0: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
3ff0: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
4000: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
4010: 6c 61 62 65 6c 2d 39 31 0d 0a 53 45 4c 45 43 54  label-91..SELECT
4020: 20 44 49 53 54 49 4e 43 54 20 53 55 4d 28 20 2b   DISTINCT SUM( +
4030: 20 32 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41   2 ) FROM tab1 A
4040: 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
4050: 20 28 20 4e 55 4c 4c 20 29 20 3d 20 28 20 2b 20   ( NULL ) = ( + 
4060: 36 37 20 29 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  67 )..----..NULL
4070: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
4080: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
4090: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
40a0: 72 74 20 6c 61 62 65 6c 2d 39 31 0d 0a 53 45 4c  rt label-91..SEL
40b0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 53 55 4d  ECT DISTINCT SUM
40c0: 20 28 20 2b 20 32 20 29 20 46 52 4f 4d 20 74 61   ( + 2 ) FROM ta
40d0: 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
40e0: 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 3d 20   NOT ( NULL ) = 
40f0: 28 20 2b 20 36 37 20 29 0d 0a 2d 2d 2d 2d 0d 0a  ( + 67 )..----..
4100: 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  NULL....onlyif m
4110: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
4120: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
4130: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
4140: 2d 39 32 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f  -92..SELECT + CO
4150: 55 4e 54 28 20 2a 20 29 20 2a 20 2d 20 43 4f 55  UNT( * ) * - COU
4160: 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20  NT( * ) AS col0 
4170: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
4180: 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 36 35  0 WHERE NOT ( 65
4190: 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a   ) IS NOT NULL..
41a0: 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  ----..0....skipi
41b0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
41c0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
41d0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
41e0: 39 32 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55  92..SELECT + COU
41f0: 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20 43 4f 55  NT ( * ) * - COU
4200: 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30  NT ( * ) AS col0
4210: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
4220: 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 36  r0 WHERE NOT ( 6
4230: 35 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  5 ) IS NOT NULL.
4240: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72  .----..0....quer
4250: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
4260: 45 43 54 20 41 4c 4c 20 2b 20 2d 20 36 36 20 46  ECT ALL + - 66 F
4270: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
4280: 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30   CROSS JOIN tab0
4290: 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
42a0: 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
42b0: 20 74 6f 20 61 34 30 38 31 30 38 64 34 32 33 64   to a408108d423d
42c0: 37 37 38 34 62 37 64 36 31 30 63 62 37 37 39 65  7784b7d610cb779e
42d0: 35 31 35 61 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  515a....onlyif m
42e0: 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
42f0: 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
4300: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
4310: 72 74 20 6c 61 62 65 6c 2d 39 34 0d 0a 53 45 4c  rt label-94..SEL
4320: 45 43 54 20 41 4c 4c 20 2b 20 39 31 20 2a 20 38  ECT ALL + 91 * 8
4330: 34 20 44 49 56 20 2d 20 2b 20 63 6f 6c 32 20 2b  4 DIV - + col2 +
4340: 20 2d 20 31 31 20 2a 20 31 32 20 41 53 20 63 6f   - 11 * 12 AS co
4350: 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
4360: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30 39  cor0..----..-209
4370: 0d 0a 2d 32 39 34 0d 0a 2d 38 39 36 0d 0a 0d 0a  ..-294..-896....
4380: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
4390: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
43a0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
43b0: 61 62 65 6c 2d 39 34 0d 0a 53 45 4c 45 43 54 20  abel-94..SELECT 
43c0: 41 4c 4c 20 2b 20 39 31 20 2a 20 38 34 20 2f 20  ALL + 91 * 84 / 
43d0: 2d 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 31 31 20  - + col2 + - 11 
43e0: 2a 20 31 32 20 41 53 20 63 6f 6c 31 20 46 52 4f  * 12 AS col1 FRO
43f0: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
4400: 2d 2d 2d 2d 0d 0a 2d 32 30 39 0d 0a 2d 32 39 34  ----..-209..-294
4410: 0d 0a 2d 38 39 36 0d 0a 0d 0a 71 75 65 72 79 20  ..-896....query 
4420: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
4430: 54 20 35 32 20 2b 20 2b 20 37 20 41 53 20 63 6f  T 52 + + 7 AS co
4440: 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
4450: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b  cor0 WHERE NOT +
4460: 20 63 6f 6c 31 20 4e 4f 54 20 42 45 54 57 45 45   col1 NOT BETWEE
4470: 4e 20 28 20 63 6f 6c 30 20 29 20 41 4e 44 20 4e  N ( col0 ) AND N
4480: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ULL..----....onl
4490: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
44a0: 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61   syntax: aggrega
44b0: 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  te syntax: SIGNE
44c0: 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
44d0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
44e0: 39 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  96..SELECT DISTI
44f0: 4e 43 54 20 2b 20 4d 49 4e 28 20 41 4c 4c 20 43  NCT + MIN( ALL C
4500: 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
4510: 4e 45 44 20 29 20 29 20 46 52 4f 4d 20 74 61 62  NED ) ) FROM tab
4520: 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  1 cor0..----..NU
4530: 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
4540: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
4550: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
4560: 73 6f 72 74 20 6c 61 62 65 6c 2d 39 36 0d 0a 53  sort label-96..S
4570: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
4580: 20 4d 49 4e 20 28 20 41 4c 4c 20 43 41 53 54 20   MIN ( ALL CAST 
4590: 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
45a0: 52 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31 20  R ) ) FROM tab1 
45b0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
45c0: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
45d0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
45e0: 49 4e 43 54 20 63 6f 6c 30 20 2a 20 2d 20 37 38  INCT col0 * - 78
45f0: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
4600: 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
4610: 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 42 45   NOT NULL NOT BE
4620: 54 57 45 45 4e 20 2b 20 63 6f 6c 32 20 2a 20 28  TWEEN + col2 * (
4630: 20 63 6f 6c 31 20 29 20 41 4e 44 20 4e 55 4c 4c   col1 ) AND NULL
4640: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
4650: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
4660: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
4670: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
4680: 65 6c 2d 39 38 0d 0a 53 45 4c 45 43 54 20 2b 20  el-98..SELECT + 
4690: 39 39 20 2a 20 43 4f 55 4e 54 28 20 2a 20 29 20  99 * COUNT( * ) 
46a0: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
46b0: 30 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  0 cor0 WHERE NOT
46c0: 20 4e 55 4c 4c 20 3c 20 28 20 2d 20 33 34 20 29   NULL < ( - 34 )
46d0: 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69  ..----..0....ski
46e0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
46f0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
4700: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
4710: 6c 2d 39 38 0d 0a 53 45 4c 45 43 54 20 2b 20 39  l-98..SELECT + 9
4720: 39 20 2a 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  9 * COUNT ( * ) 
4730: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
4740: 30 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  0 cor0 WHERE NOT
4750: 20 4e 55 4c 4c 20 3c 20 28 20 2d 20 33 34 20 29   NULL < ( - 34 )
4760: 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65  ..----..0....que
4770: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
4780: 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2a 20  LECT ALL col1 * 
4790: 2b 20 32 33 20 46 52 4f 4d 20 74 61 62 30 20 41  + 23 FROM tab0 A
47a0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 38  S cor0..----..18
47b0: 36 33 0d 0a 32 33 0d 0a 34 38 33 0d 0a 0d 0a 6f  63..23..483....o
47c0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
47d0: 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
47e0: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
47f0: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
4800: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
4810: 6c 2d 31 30 30 0d 0a 53 45 4c 45 43 54 20 43 4f  l-100..SELECT CO
4820: 55 4e 54 28 20 2a 20 29 20 2a 20 4d 41 58 28 20  UNT( * ) * MAX( 
4830: 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 30  col1 ) FROM tab0
4840: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
4850: 4f 54 20 43 41 53 54 28 20 2d 20 63 6f 6c 31 20  OT CAST( - col1 
4860: 41 53 20 53 49 47 4e 45 44 20 29 20 4e 4f 54 20  AS SIGNED ) NOT 
4870: 49 4e 20 28 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d  IN ( col2 )..---
4880: 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  -..NULL....skipi
4890: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
48a0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
48b0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
48c0: 31 30 30 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e  100..SELECT COUN
48d0: 54 20 28 20 2a 20 29 20 2a 20 4d 41 58 20 28 20  T ( * ) * MAX ( 
48e0: 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 30  col1 ) FROM tab0
48f0: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
4900: 4f 54 20 43 41 53 54 20 28 20 2d 20 63 6f 6c 31  OT CAST ( - col1
4910: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 4e 4f   AS INTEGER ) NO
4920: 54 20 49 4e 20 28 20 63 6f 6c 32 20 29 0d 0a 2d  T IN ( col2 )..-
4930: 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c  ---..NULL....onl
4940: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
4950: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
4960: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
4970: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
4980: 31 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53 54  1..SELECT - CAST
4990: 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
49a0: 20 29 20 2a 20 2d 20 31 32 20 41 53 20 63 6f 6c   ) * - 12 AS col
49b0: 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
49c0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
49d0: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .NULL..NULL....s
49e0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
49f0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
4a00: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
4a10: 62 65 6c 2d 31 30 31 0d 0a 53 45 4c 45 43 54 20  bel-101..SELECT 
4a20: 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
4a30: 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2d 20 31   INTEGER ) * - 1
4a40: 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  2 AS col2 FROM t
4a50: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
4a60: 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
4a70: 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ULL....onlyif my
4a80: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
4a90: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
4aa0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
4ab0: 31 30 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  102..SELECT DIST
4ac0: 49 4e 43 54 20 28 20 2d 20 2d 20 43 4f 55 4e 54  INCT ( - - COUNT
4ad0: 28 20 2a 20 29 20 29 20 41 53 20 63 6f 6c 31 20  ( * ) ) AS col1 
4ae0: 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a  FROM tab1 cor0..
4af0: 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69  ----..3....skipi
4b00: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
4b10: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
4b20: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
4b30: 31 30 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  102..SELECT DIST
4b40: 49 4e 43 54 20 28 20 2d 20 2d 20 43 4f 55 4e 54  INCT ( - - COUNT
4b50: 20 28 20 2a 20 29 20 29 20 41 53 20 63 6f 6c 31   ( * ) ) AS col1
4b60: 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d   FROM tab1 cor0.
4b70: 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72  .----..3....quer
4b80: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
4b90: 45 43 54 20 41 4c 4c 20 2d 20 33 33 20 2b 20 2d  ECT ALL - 33 + -
4ba0: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
4bb0: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
4bc0: 54 20 4e 55 4c 4c 20 3d 20 4e 55 4c 4c 20 4f 52  T NULL = NULL OR
4bd0: 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 39 38 20 49   - col2 * - 98 I
4be0: 4e 20 28 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d  N ( col2 )..----
4bf0: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
4c00: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 36 31 20 2a  ort..SELECT 61 *
4c10: 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   - col0 FROM tab
4c20: 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  0 cor0..----..-5
4c30: 33 30 37 0d 0a 2d 35 39 31 37 0d 0a 2d 39 31 35  307..-5917..-915
4c40: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
4c50: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
4c60: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
4c70: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35  owsort label-105
4c80: 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 4d 41 58  ..SELECT + - MAX
4c90: 28 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 29 20 2a  ( ALL + col0 ) *
4ca0: 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20   + COUNT( * ) * 
4cb0: 4d 49 4e 28 20 44 49 53 54 49 4e 43 54 20 63 6f  MIN( DISTINCT co
4cc0: 6c 31 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  l1 ) AS col1 FRO
4cd0: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
4ce0: 2d 2d 2d 2d 0d 0a 2d 32 39 31 0d 0a 0d 0a 73 6b  ----..-291....sk
4cf0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
4d00: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
4d10: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
4d20: 65 6c 2d 31 30 35 0d 0a 53 45 4c 45 43 54 20 2b  el-105..SELECT +
4d30: 20 2d 20 4d 41 58 20 28 20 41 4c 4c 20 2b 20 63   - MAX ( ALL + c
4d40: 6f 6c 30 20 29 20 2a 20 2b 20 43 4f 55 4e 54 20  ol0 ) * + COUNT 
4d50: 28 20 2a 20 29 20 2a 20 4d 49 4e 20 28 20 44 49  ( * ) * MIN ( DI
4d60: 53 54 49 4e 43 54 20 63 6f 6c 31 20 29 20 41 53  STINCT col1 ) AS
4d70: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
4d80: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
4d90: 32 39 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  291....query III
4da0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
4db0: 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
4dc0: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 35  cor0 WHERE NOT 5
4dd0: 31 20 2a 20 2b 20 39 32 20 2a 20 2d 20 39 38 20  1 * + 92 * - 98 
4de0: 2d 20 2d 20 63 6f 6c 32 20 4e 4f 54 20 49 4e 20  - - col2 NOT IN 
4df0: 28 20 2d 20 35 38 20 29 0d 0a 2d 2d 2d 2d 0d 0a  ( - 58 )..----..
4e00: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
4e10: 74 0d 0a 53 45 4c 45 43 54 20 39 39 20 41 53 20  t..SELECT 99 AS 
4e20: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
4e30: 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
4e40: 20 28 20 4e 55 4c 4c 20 29 20 49 53 20 4e 4f 54   ( NULL ) IS NOT
4e50: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 39 0d   NULL..----..99.
4e60: 0a 39 39 0d 0a 39 39 0d 0a 0d 0a 71 75 65 72 79  .99..99....query
4e70: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
4e80: 43 54 20 34 37 20 2a 20 63 6f 6c 31 20 2b 20 2d  CT 47 * col1 + -
4e90: 20 38 39 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 32   89 + - col1 * 2
4ea0: 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
4eb0: 2d 0d 0a 2d 36 33 0d 0a 32 30 31 37 0d 0a 34 35  -..-63..2017..45
4ec0: 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  7....skipif post
4ed0: 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
4ee0: 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
4ef0: 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
4f00: 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
4f10: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
4f20: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
4f30: 20 31 31 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   11 col0 FROM ta
4f40: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 0d 0a 0d 0a  b0..----..11....
4f50: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
4f60: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
4f70: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57  CT * FROM tab1 W
4f80: 48 45 52 45 20 28 20 2b 20 28 20 2d 20 63 6f 6c  HERE ( + ( - col
4f90: 31 20 29 20 2b 20 63 6f 6c 32 20 29 20 49 53 20  1 ) + col2 ) IS 
4fa0: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
4fb0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
4fc0: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
4fd0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
4fe0: 20 6c 61 62 65 6c 2d 31 31 31 0d 0a 53 45 4c 45   label-111..SELE
4ff0: 43 54 20 2b 20 53 55 4d 28 20 44 49 53 54 49 4e  CT + SUM( DISTIN
5000: 43 54 20 38 37 20 29 20 41 53 20 63 6f 6c 30 20  CT 87 ) AS col0 
5010: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
5020: 0a 38 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .87....skipif my
5030: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
5040: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
5050: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31 0d  wsort label-111.
5060: 0a 53 45 4c 45 43 54 20 2b 20 53 55 4d 20 28 20  .SELECT + SUM ( 
5070: 44 49 53 54 49 4e 43 54 20 38 37 20 29 20 41 53  DISTINCT 87 ) AS
5080: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
5090: 0a 2d 2d 2d 2d 0d 0a 38 37 0d 0a 0d 0a 71 75 65  .----..87....que
50a0: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
50b0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
50c0: 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  * FROM tab2 WHER
50d0: 45 20 4e 4f 54 20 28 20 2d 20 2d 20 63 6f 6c 31  E NOT ( - - col1
50e0: 20 2a 20 2b 20 39 20 2d 20 63 6f 6c 32 20 29 20   * + 9 - col2 ) 
50f0: 4e 4f 54 20 42 45 54 57 45 45 4e 20 28 20 63 6f  NOT BETWEEN ( co
5100: 6c 32 20 29 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d  l2 ) AND NULL..-
5110: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
5120: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 39  owsort..SELECT 9
5130: 37 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  7 FROM tab0 WHER
5140: 45 20 4e 4f 54 20 4e 55 4c 4c 20 3c 20 33 0d 0a  E NOT NULL < 3..
5150: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
5160: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
5170: 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
5180: 4d 20 74 61 62 31 20 57 48 45 52 45 20 2d 20 63  M tab1 WHERE - c
5190: 6f 6c 32 20 2a 20 2d 20 2b 20 39 30 20 2b 20 63  ol2 * - + 90 + c
51a0: 6f 6c 32 20 2d 20 63 6f 6c 31 20 42 45 54 57 45  ol2 - col1 BETWE
51b0: 45 4e 20 63 6f 6c 30 20 41 4e 44 20 63 6f 6c 32  EN col0 AND col2
51c0: 20 2f 20 63 6f 6c 30 20 2b 20 63 6f 6c 32 0d 0a   / col0 + col2..
51d0: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
51e0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
51f0: 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  T * FROM tab2 WH
5200: 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 32 20 2d  ERE NOT + col2 -
5210: 20 63 6f 6c 30 20 3c 3d 20 4e 55 4c 4c 0d 0a 2d   col0 <= NULL..-
5220: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ---....query III
5230: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
5240: 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
5250: 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3c 3d 20 2d  RE NOT NULL <= -
5260: 20 35 36 20 2a 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d   56 * col0..----
5270: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
5280: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
5290: 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
52a0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
52b0: 61 62 65 6c 2d 31 31 37 0d 0a 53 45 4c 45 43 54  abel-117..SELECT
52c0: 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 41 53 20 63   ALL + col0 AS c
52d0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 57 48  ol2 FROM tab2 WH
52e0: 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 3e 20 2b  ERE ( NULL ) > +
52f0: 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
5300: 49 47 4e 45 44 20 29 20 2a 20 2d 20 38 20 2b 20  IGNED ) * - 8 + 
5310: 31 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70  12..----....skip
5320: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
5330: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
5340: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
5350: 2d 31 31 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -117..SELECT ALL
5360: 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20   + col0 AS col2 
5370: 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
5380: 28 20 4e 55 4c 4c 20 29 20 3e 20 2b 20 43 41 53  ( NULL ) > + CAS
5390: 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
53a0: 47 45 52 20 29 20 2a 20 2d 20 38 20 2b 20 31 32  GER ) * - 8 + 12
53b0: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
53c0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
53d0: 54 20 41 4c 4c 20 63 6f 6c 31 20 2a 20 2d 20 63  T ALL col1 * - c
53e0: 6f 6c 31 20 2b 20 2d 20 2d 20 63 6f 6c 32 20 2a  ol1 + - - col2 *
53f0: 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 36 37 20 46   + col2 * + 67 F
5400: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
5410: 31 30 31 32 37 31 0d 0a 32 32 30 38 39 39 0d 0a  101271..220899..
5420: 33 32 38 34 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  32842....onlyif 
5430: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
5440: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
5450: 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  : ..query III ro
5460: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 39 0d  wsort label-119.
5470: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
5480: 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 2b 20  OM tab1 WHERE + 
5490: 63 6f 6c 32 20 3c 3e 20 2d 20 2d 20 33 38 20 2a  col2 <> - - 38 *
54a0: 20 2d 20 43 41 53 54 28 20 28 20 63 6f 6c 30 20   - CAST( ( col0 
54b0: 29 20 41 53 20 53 49 47 4e 45 44 20 29 0d 0a 2d  ) AS SIGNED )..-
54c0: 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
54d0: 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31  shing to c6c0a41
54e0: 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31  11b36d04dbc811a1
54f0: 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 73 6b 69  1e4d54cad....ski
5500: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
5510: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
5520: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
5530: 62 65 6c 2d 31 31 39 0d 0a 53 45 4c 45 43 54 20  bel-119..SELECT 
5540: 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ALL * FROM tab1 
5550: 57 48 45 52 45 20 2b 20 63 6f 6c 32 20 3c 3e 20  WHERE + col2 <> 
5560: 2d 20 2d 20 33 38 20 2a 20 2d 20 43 41 53 54 20  - - 38 * - CAST 
5570: 28 20 28 20 63 6f 6c 30 20 29 20 41 53 20 49 4e  ( ( col0 ) AS IN
5580: 54 45 47 45 52 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39  TEGER )..----..9
5590: 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
55a0: 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64  to c6c0a4111b36d
55b0: 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34  04dbc811a11e4d54
55c0: 63 61 64 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  cad....onlyif my
55d0: 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
55e0: 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
55f0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
5600: 74 20 6c 61 62 65 6c 2d 31 32 30 0d 0a 53 45 4c  t label-120..SEL
5610: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2b  ECT DISTINCT + +
5620: 20 63 6f 6c 30 20 44 49 56 20 2d 20 63 6f 6c 32   col0 DIV - col2
5630: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
5640: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
5650: 31 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  1..0....skipif m
5660: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
5670: 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
5680: 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
5690: 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
56a0: 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
56b0: 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
56c0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
56d0: 6c 61 62 65 6c 2d 31 32 30 0d 0a 53 45 4c 45 43  label-120..SELEC
56e0: 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 63  T DISTINCT + + c
56f0: 6f 6c 30 20 2f 20 2d 20 63 6f 6c 32 20 63 6f 6c  ol0 / - col2 col
5700: 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
5710: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 30  or0..----..-1..0
5720: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
5730: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 31 34 20 41  ort..SELECT 14 A
5740: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
5750: 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 2d 20   cor0 WHERE ( - 
5760: 63 6f 6c 32 20 29 20 49 4e 20 28 20 28 20 2b 20  col2 ) IN ( ( + 
5770: 34 39 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  49 ) )..----....
5780: 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
5790: 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
57a0: 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
57b0: 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
57c0: 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
57d0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
57e0: 20 2b 20 63 6f 6c 32 20 63 6f 6c 32 20 46 52 4f   + col2 col2 FRO
57f0: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
5800: 48 45 52 45 20 4e 55 4c 4c 20 42 45 54 57 45 45  HERE NULL BETWEE
5810: 4e 20 28 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 31  N ( - col2 * + 1
5820: 38 20 29 20 41 4e 44 20 2d 20 63 6f 6c 32 0d 0a  8 ) AND - col2..
5830: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
5840: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
5850: 44 49 53 54 49 4e 43 54 20 2d 20 28 20 63 6f 6c  DISTINCT - ( col
5860: 30 20 29 20 2a 20 2b 20 2b 20 34 33 20 2b 20 2d  0 ) * + + 43 + -
5870: 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52   col1 AS col1 FR
5880: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
5890: 0a 2d 2d 2d 2d 0d 0a 2d 33 37 36 32 0d 0a 2d 34  .----..-3762..-4
58a0: 31 37 32 0d 0a 2d 37 32 36 0d 0a 0d 0a 6f 6e 6c  172..-726....onl
58b0: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
58c0: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
58d0: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
58e0: 20 6c 61 62 65 6c 2d 31 32 34 0d 0a 53 45 4c 45   label-124..SELE
58f0: 43 54 20 4d 41 58 28 20 41 4c 4c 20 63 6f 6c 32  CT MAX( ALL col2
5900: 20 29 20 41 53 20 63 6f 6c 30 2c 20 53 55 4d 28   ) AS col0, SUM(
5910: 20 2b 20 38 35 20 29 20 41 53 20 63 6f 6c 31 20   + 85 ) AS col1 
5920: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
5930: 30 0d 0a 2d 2d 2d 2d 0d 0a 39 36 0d 0a 32 35 35  0..----..96..255
5940: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
5950: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
5960: 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
5970: 6f 72 74 20 6c 61 62 65 6c 2d 31 32 34 0d 0a 53  ort label-124..S
5980: 45 4c 45 43 54 20 4d 41 58 20 28 20 41 4c 4c 20  ELECT MAX ( ALL 
5990: 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 30 2c 20  col2 ) AS col0, 
59a0: 53 55 4d 20 28 20 2b 20 38 35 20 29 20 41 53 20  SUM ( + 85 ) AS 
59b0: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
59c0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 36  S cor0..----..96
59d0: 0d 0a 32 35 35 0d 0a 0d 0a 71 75 65 72 79 20 49  ..255....query I
59e0: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
59f0: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41  CT * FROM tab1 A
5a00: 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 2d  S cor0 WHERE ( -
5a10: 20 36 32 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c   62 ) IS NOT NUL
5a20: 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  L..----..9 value
5a30: 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63  s hashing to c6c
5a40: 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38  0a4111b36d04dbc8
5a50: 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d  11a11e4d54cad...
5a60: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
5a70: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
5a80: 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  NCT * FROM tab2 
5a90: 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  cor0 WHERE NULL 
5aa0: 3d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  = col1..----....
5ab0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
5ac0: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
5ad0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
5ae0: 72 74 20 6c 61 62 65 6c 2d 31 32 37 0d 0a 53 45  rt label-127..SE
5af0: 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 28 20 2b  LECT ALL - - ( +
5b00: 20 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 41 53   COUNT( * ) ) AS
5b10: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
5b20: 57 48 45 52 45 20 4e 55 4c 4c 20 3e 3d 20 2b 20  WHERE NULL >= + 
5b30: 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  col1..----..0...
5b40: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
5b50: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
5b60: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
5b70: 6c 61 62 65 6c 2d 31 32 37 0d 0a 53 45 4c 45 43  label-127..SELEC
5b80: 54 20 41 4c 4c 20 2d 20 2d 20 28 20 2b 20 43 4f  T ALL - - ( + CO
5b90: 55 4e 54 20 28 20 2a 20 29 20 29 20 41 53 20 63  UNT ( * ) ) AS c
5ba0: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 57 48  ol1 FROM tab1 WH
5bb0: 45 52 45 20 4e 55 4c 4c 20 3e 3d 20 2b 20 63 6f  ERE NULL >= + co
5bc0: 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71  l1..----..0....q
5bd0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
5be0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
5bf0: 2d 20 28 20 63 6f 6c 32 20 29 20 2a 20 2d 20 63  - ( col2 ) * - c
5c00: 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol0 AS col2 FROM
5c10: 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20   tab2 WHERE NOT 
5c20: 4e 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e  NULL NOT BETWEEN
5c30: 20 2b 20 39 39 20 41 4e 44 20 28 20 2b 20 36 39   + 99 AND ( + 69
5c40: 20 2f 20 2b 20 2b 20 63 6f 6c 30 20 29 0d 0a 2d   / + + col0 )..-
5c50: 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
5c60: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
5c70: 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20  syntax: DIV for 
5c80: 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
5c90: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
5ca0: 6f 72 74 20 6c 61 62 65 6c 2d 31 32 39 0d 0a 53  ort label-129..S
5cb0: 45 4c 45 43 54 20 2d 20 2d 20 37 38 20 44 49 56  ELECT - - 78 DIV
5cc0: 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52   - COUNT( * ) FR
5cd0: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
5ce0: 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20  CROSS JOIN tab2 
5cf0: 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 0d 0a  cor1..----..-8..
5d00: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
5d10: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
5d20: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
5d30: 20 6c 61 62 65 6c 2d 31 32 39 0d 0a 53 45 4c 45   label-129..SELE
5d40: 43 54 20 2d 20 2d 20 37 38 20 2f 20 2d 20 43 4f  CT - - 78 / - CO
5d50: 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
5d60: 61 62 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53  ab2 AS cor0 CROS
5d70: 53 20 4a 4f 49 4e 20 74 61 62 32 20 63 6f 72 31  S JOIN tab2 cor1
5d80: 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 0d 0a 0d 0a 71 75  ..----..-8....qu
5d90: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
5da0: 45 4c 45 43 54 20 2b 20 34 33 20 41 53 20 63 6f  ELECT + 43 AS co
5db0: 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
5dc0: 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
5dd0: 74 61 62 32 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d  tab2 cor1..----.
5de0: 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
5df0: 67 20 74 6f 20 31 39 39 31 30 35 36 31 39 30 34  g to 19910561904
5e00: 39 32 37 31 31 34 37 39 35 36 64 65 35 32 65 37  9271147956de52e7
5e10: 66 35 65 64 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  f5ed4....onlyif 
5e20: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
5e30: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
5e40: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
5e50: 6c 2d 31 33 31 0d 0a 53 45 4c 45 43 54 20 44 49  l-131..SELECT DI
5e60: 53 54 49 4e 43 54 20 2b 20 28 20 2b 20 2b 20 43  STINCT + ( + + C
5e70: 4f 55 4e 54 28 20 2a 20 29 20 29 20 2b 20 2d 20  OUNT( * ) ) + - 
5e80: 43 4f 55 4e 54 28 20 63 6f 6c 30 20 29 20 2b 20  COUNT( col0 ) + 
5e90: 2d 20 43 4f 55 4e 54 28 20 28 20 39 34 20 29 20  - COUNT( ( 94 ) 
5ea0: 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
5eb0: 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..-3....skipif 
5ec0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
5ed0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
5ee0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 33  rowsort label-13
5ef0: 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  1..SELECT DISTIN
5f00: 43 54 20 2b 20 28 20 2b 20 2b 20 43 4f 55 4e 54  CT + ( + + COUNT
5f10: 20 28 20 2a 20 29 20 29 20 2b 20 2d 20 43 4f 55   ( * ) ) + - COU
5f20: 4e 54 20 28 20 63 6f 6c 30 20 29 20 2b 20 2d 20  NT ( col0 ) + - 
5f30: 43 4f 55 4e 54 20 28 20 28 20 39 34 20 29 20 29  COUNT ( ( 94 ) )
5f40: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
5f50: 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..-3....query I 
5f60: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
5f70: 44 49 53 54 49 4e 43 54 20 2b 20 31 37 20 2a 20  DISTINCT + 17 * 
5f80: 2b 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31  + - col0 AS col1
5f90: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
5fa0: 0d 0a 2d 31 34 34 35 0d 0a 2d 31 35 34 37 0d 0a  ..-1445..-1547..
5fb0: 2d 38 36 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -867....onlyif m
5fc0: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
5fd0: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
5fe0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
5ff0: 2d 31 33 33 0d 0a 53 45 4c 45 43 54 20 2b 20 53  -133..SELECT + S
6000: 55 4d 28 20 41 4c 4c 20 2b 20 31 30 20 29 20 2b  UM( ALL + 10 ) +
6010: 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
6020: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
6030: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 33 0d   cor0..----..33.
6040: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
6050: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
6060: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
6070: 74 20 6c 61 62 65 6c 2d 31 33 33 0d 0a 53 45 4c  t label-133..SEL
6080: 45 43 54 20 2b 20 53 55 4d 20 28 20 41 4c 4c 20  ECT + SUM ( ALL 
6090: 2b 20 31 30 20 29 20 2b 20 43 4f 55 4e 54 20 28  + 10 ) + COUNT (
60a0: 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f   * ) AS col0 FRO
60b0: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
60c0: 2d 2d 2d 2d 0d 0a 33 33 0d 0a 0d 0a 6f 6e 6c 79  ----..33....only
60d0: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
60e0: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
60f0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
6100: 61 62 65 6c 2d 31 33 34 0d 0a 53 45 4c 45 43 54  abel-134..SELECT
6110: 20 44 49 53 54 49 4e 43 54 20 2b 20 28 20 2b 20   DISTINCT + ( + 
6120: 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 41 53 20  COUNT( * ) ) AS 
6130: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
6140: 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c  S cor0 WHERE NUL
6150: 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  L IS NOT NULL..-
6160: 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  ---..0....skipif
6170: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
6180: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
6190: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
61a0: 33 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  34..SELECT DISTI
61b0: 4e 43 54 20 2b 20 28 20 2b 20 43 4f 55 4e 54 20  NCT + ( + COUNT 
61c0: 28 20 2a 20 29 20 29 20 41 53 20 63 6f 6c 32 20  ( * ) ) AS col2 
61d0: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
61e0: 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20  0 WHERE NULL IS 
61f0: 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
6200: 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  0....query III r
6210: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
6220: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
6230: 72 30 20 57 48 45 52 45 20 37 33 20 42 45 54 57  r0 WHERE 73 BETW
6240: 45 45 4e 20 63 6f 6c 31 20 2f 20 2d 20 28 20 2d  EEN col1 / - ( -
6250: 20 33 33 20 29 20 41 4e 44 20 2b 20 63 6f 6c 32   33 ) AND + col2
6260: 0d 0a 2d 2d 2d 2d 0d 0a 39 37 0d 0a 31 0d 0a 39  ..----..97..1..9
6270: 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  9....query III r
6280: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
6290: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
62a0: 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 4e  r0 WHERE NULL IN
62b0: 20 28 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 2d 20   ( + col1 * + - 
62c0: 63 6f 6c 31 20 2a 20 2d 20 2d 20 35 35 20 29 0d  col1 * - - 55 ).
62d0: 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
62e0: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
62f0: 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f  e syntax: DIV fo
6300: 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
6310: 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
6320: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 33 37 0d  wsort label-137.
6330: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 32 39  .SELECT ALL + 29
6340: 20 44 49 56 20 2d 20 2b 20 43 4f 55 4e 54 28 20   DIV - + COUNT( 
6350: 41 4c 4c 20 2d 20 63 6f 6c 31 20 29 20 46 52 4f  ALL - col1 ) FRO
6360: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
6370: 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 73 6b 69 70  ----..-9....skip
6380: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
6390: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
63a0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
63b0: 2d 31 33 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -137..SELECT ALL
63c0: 20 2b 20 32 39 20 2f 20 2d 20 2b 20 43 4f 55 4e   + 29 / - + COUN
63d0: 54 20 28 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 29  T ( ALL - col1 )
63e0: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
63f0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a  r0..----..-9....
6400: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
6410: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
6420: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
6430: 72 74 20 6c 61 62 65 6c 2d 31 33 38 0d 0a 53 45  rt label-138..SE
6440: 4c 45 43 54 20 41 4c 4c 20 37 37 20 2a 20 4d 49  LECT ALL 77 * MI
6450: 4e 28 20 34 36 20 29 20 2b 20 2d 20 53 55 4d 28  N( 46 ) + - SUM(
6460: 20 2b 20 2d 20 35 37 20 29 20 46 52 4f 4d 20 74   + - 57 ) FROM t
6470: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
6480: 2d 0d 0a 33 37 31 33 0d 0a 0d 0a 73 6b 69 70 69  -..3713....skipi
6490: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
64a0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
64b0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
64c0: 31 33 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  138..SELECT ALL 
64d0: 37 37 20 2a 20 4d 49 4e 20 28 20 34 36 20 29 20  77 * MIN ( 46 ) 
64e0: 2b 20 2d 20 53 55 4d 20 28 20 2b 20 2d 20 35 37  + - SUM ( + - 57
64f0: 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
6500: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 37 31 33  cor0..----..3713
6510: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
6520: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
6530: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  tax: ..query II 
6540: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 33  rowsort label-13
6550: 39 0d 0a 53 45 4c 45 43 54 20 2b 20 36 36 2c 20  9..SELECT + 66, 
6560: 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  + COUNT( * ) AS 
6570: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
6580: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 36  S cor0..----..66
6590: 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..3....skipif my
65a0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
65b0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72  ible..query II r
65c0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 33 39  owsort label-139
65d0: 0d 0a 53 45 4c 45 43 54 20 2b 20 36 36 2c 20 2b  ..SELECT + 66, +
65e0: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
65f0: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
6600: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 36  S cor0..----..66
6610: 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  ..3....query II 
6620: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
6630: 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 2c 20  - col2 AS col1, 
6640: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
6650: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  S cor0..----..-5
6660: 39 0d 0a 38 35 0d 0a 2d 36 38 0d 0a 39 31 0d 0a  9..85..-68..91..
6670: 2d 39 36 0d 0a 35 31 0d 0a 0d 0a 71 75 65 72 79  -96..51....query
6680: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
6690: 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30  CT DISTINCT col0
66a0: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
66b0: 62 32 20 57 48 45 52 45 20 63 6f 6c 32 20 2a 20  b2 WHERE col2 * 
66c0: 2d 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a  - col0 IS NULL..
66d0: 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  ----....skipif p
66e0: 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
66f0: 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
6700: 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
6710: 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
6720: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
6730: 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 63  t..SELECT col1 c
6740: 6f 6c 32 2c 20 32 37 20 2b 20 2b 20 63 6f 6c 31  ol2, 27 + + col1
6750: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
6760: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 32 38 0d  b0..----..1..28.
6770: 0a 32 31 0d 0a 34 38 0d 0a 38 31 0d 0a 31 30 38  .21..48..81..108
6780: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
6790: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
67a0: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
67b0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 34 33  owsort label-143
67c0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
67d0: 54 20 4d 49 4e 28 20 44 49 53 54 49 4e 43 54 20  T MIN( DISTINCT 
67e0: 2b 20 2b 20 39 32 20 29 20 46 52 4f 4d 20 74 61  + + 92 ) FROM ta
67f0: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 39 32 0d 0a 0d 0a  b1..----..92....
6800: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
6810: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
6820: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
6830: 61 62 65 6c 2d 31 34 33 0d 0a 53 45 4c 45 43 54  abel-143..SELECT
6840: 20 44 49 53 54 49 4e 43 54 20 4d 49 4e 20 28 20   DISTINCT MIN ( 
6850: 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 39 32 20  DISTINCT + + 92 
6860: 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  ) FROM tab1..---
6870: 2d 0d 0a 39 32 0d 0a 0d 0a 71 75 65 72 79 20 49  -..92....query I
6880: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
6890: 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
68a0: 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 55  OM tab1 WHERE NU
68b0: 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2d  LL NOT BETWEEN -
68c0: 20 2d 20 63 6f 6c 30 20 41 4e 44 20 63 6f 6c 30   - col0 AND col0
68d0: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
68e0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
68f0: 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  T DISTINCT - col
6900: 30 20 2a 20 2b 20 2d 20 37 37 20 2d 20 2d 20 63  0 * + - 77 - - c
6910: 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol0 AS col2 FROM
6920: 20 74 61 62 30 20 57 48 45 52 45 20 2b 20 63 6f   tab0 WHERE + co
6930: 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  l1 IS NOT NULL..
6940: 2d 2d 2d 2d 0d 0a 31 31 37 30 0d 0a 36 37 38 36  ----..1170..6786
6950: 0d 0a 37 35 36 36 0d 0a 0d 0a 71 75 65 72 79 20  ..7566....query 
6960: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
6970: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
6980: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
6990: 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 4f 54   WHERE NOT ( NOT
69a0: 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45   NULL NOT BETWEE
69b0: 4e 20 28 20 2b 20 33 36 20 2a 20 36 37 20 29 20  N ( + 36 * 67 ) 
69c0: 41 4e 44 20 2b 20 32 39 20 29 0d 0a 2d 2d 2d 2d  AND + 29 )..----
69d0: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
69e0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31  ort..SELECT col1
69f0: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
6a00: 62 32 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  b2 cor0 WHERE NO
6a10: 54 20 28 20 38 31 20 2a 20 2b 20 2d 20 63 6f 6c  T ( 81 * + - col
6a20: 30 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  0 ) IS NULL..---
6a30: 2d 0d 0a 35 31 0d 0a 36 37 0d 0a 37 37 0d 0a 0d  -..51..67..77...
6a40: 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
6a50: 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
6a60: 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
6a70: 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
6a80: 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
6a90: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
6aa0: 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 28  T DISTINCT + + (
6ab0: 20 63 6f 6c 30 20 29 20 2b 20 2b 20 37 30 20 63   col0 ) + + 70 c
6ac0: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  ol0 FROM tab0 co
6ad0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 37 0d 0a 31  r0..----..157..1
6ae0: 36 37 0d 0a 38 35 0d 0a 0d 0a 71 75 65 72 79 20  67..85....query 
6af0: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
6b00: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
6b10: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
6b20: 20 57 48 45 52 45 20 4e 4f 54 20 37 38 20 2a 20   WHERE NOT 78 * 
6b30: 63 6f 6c 32 20 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d  col2 > NULL..---
6b40: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  -....query II ro
6b50: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
6b60: 39 33 20 41 53 20 63 6f 6c 30 2c 20 63 6f 6c 31  93 AS col0, col1
6b70: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
6b80: 0d 0a 2d 39 33 0d 0a 31 0d 0a 2d 39 33 0d 0a 32  ..-93..1..-93..2
6b90: 31 0d 0a 2d 39 33 0d 0a 38 31 0d 0a 0d 0a 6f 6e  1..-93..81....on
6ba0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
6bb0: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
6bc0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
6bd0: 20 6c 61 62 65 6c 2d 31 35 31 0d 0a 53 45 4c 45   label-151..SELE
6be0: 43 54 20 41 4c 4c 20 2d 20 37 33 20 2a 20 4d 41  CT ALL - 73 * MA
6bf0: 58 28 20 2b 20 32 34 20 29 20 63 6f 6c 31 20 46  X( + 24 ) col1 F
6c00: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
6c10: 2d 31 37 35 32 0d 0a 0d 0a 73 6b 69 70 69 66 20  -1752....skipif 
6c20: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
6c30: 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70  atible..skipif p
6c40: 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
6c50: 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
6c60: 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
6c70: 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
6c80: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
6c90: 20 6c 61 62 65 6c 2d 31 35 31 0d 0a 53 45 4c 45   label-151..SELE
6ca0: 43 54 20 41 4c 4c 20 2d 20 37 33 20 2a 20 4d 41  CT ALL - 73 * MA
6cb0: 58 20 28 20 2b 20 32 34 20 29 20 63 6f 6c 31 20  X ( + 24 ) col1 
6cc0: 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
6cd0: 0a 2d 31 37 35 32 0d 0a 0d 0a 73 6b 69 70 69 66  .-1752....skipif
6ce0: 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
6cf0: 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
6d00: 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
6d10: 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
6d20: 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
6d30: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
6d40: 4e 43 54 20 2b 20 63 6f 6c 31 20 2b 20 63 6f 6c  NCT + col1 + col
6d50: 31 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  1 col0 FROM tab1
6d60: 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 32 38 0d 0a  ..----..10..28..
6d70: 39 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  94....skipif pos
6d80: 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
6d90: 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
6da0: 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
6db0: 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
6dc0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
6dd0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
6de0: 2d 20 38 30 20 2a 20 2b 20 2d 20 38 33 20 63 6f  - 80 * + - 83 co
6df0: 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l2 FROM tab1..--
6e00: 2d 2d 0d 0a 36 36 34 30 0d 0a 0d 0a 71 75 65 72  --..6640....quer
6e10: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
6e20: 45 43 54 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c  ECT col0 * + col
6e30: 30 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  0 FROM tab0 WHER
6e40: 45 20 28 20 2b 20 28 20 63 6f 6c 32 20 29 20 2a  E ( + ( col2 ) *
6e50: 20 2d 20 63 6f 6c 32 20 2a 20 63 6f 6c 32 20 2b   - col2 * col2 +
6e60: 20 63 6f 6c 30 20 29 20 49 53 20 4e 4f 54 20 4e   col0 ) IS NOT N
6e70: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 32 35 0d 0a  ULL..----..225..
6e80: 37 35 36 39 0d 0a 39 34 30 39 0d 0a 0d 0a 6f 6e  7569..9409....on
6e90: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
6ea0: 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
6eb0: 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
6ec0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
6ed0: 35 35 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20  55..SELECT col2 
6ee0: 2b 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  + - CAST( NULL A
6ef0: 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f  S SIGNED ) AS co
6f00: 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
6f10: 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
6f20: 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
6f30: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
6f40: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
6f50: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 35 35  owsort label-155
6f60: 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2b 20  ..SELECT col2 + 
6f70: 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
6f80: 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f   INTEGER ) AS co
6f90: 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
6fa0: 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
6fb0: 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49  NULL....query II
6fc0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
6fd0: 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 30   - col1 + + col0
6fe0: 20 2a 20 2b 20 2d 20 63 6f 6c 31 2c 20 2b 20 63   * + - col1, + c
6ff0: 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol1 AS col2 FROM
7000: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
7010: 2d 2d 2d 0d 0a 2d 34 33 30 0d 0a 35 0d 0a 2d 34  ---..-430..5..-4
7020: 33 32 34 0d 0a 34 37 0d 0a 2d 37 32 38 0d 0a 31  324..47..-728..1
7030: 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  4....query I row
7040: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
7050: 20 31 34 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   14 AS col0 FROM
7060: 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
7070: 45 52 45 20 28 20 2d 20 63 6f 6c 30 20 29 20 4e  ERE ( - col0 ) N
7080: 4f 54 20 49 4e 20 28 20 33 36 20 29 0d 0a 2d 2d  OT IN ( 36 )..--
7090: 2d 2d 0d 0a 31 34 0d 0a 31 34 0d 0a 31 34 0d 0a  --..14..14..14..
70a0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
70b0: 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32  t..SELECT + col2
70c0: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
70d0: 72 30 20 57 48 45 52 45 20 2b 20 38 32 20 2a 20  r0 WHERE + 82 * 
70e0: 2b 20 33 35 20 3e 3d 20 63 6f 6c 32 0d 0a 2d 2d  + 35 >= col2..--
70f0: 2d 2d 0d 0a 35 39 0d 0a 36 38 0d 0a 39 36 0d 0a  --..59..68..96..
7100: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
7110: 74 0d 0a 53 45 4c 45 43 54 20 2b 20 38 35 20 46  t..SELECT + 85 F
7120: 52 4f 4d 20 28 20 74 61 62 30 20 41 53 20 63 6f  ROM ( tab0 AS co
7130: 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
7140: 62 32 20 41 53 20 63 6f 72 31 20 29 0d 0a 2d 2d  b2 AS cor1 )..--
7150: 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
7160: 68 69 6e 67 20 74 6f 20 61 61 66 61 38 65 35 63  hing to aafa8e5c
7170: 66 62 39 65 30 32 63 65 61 38 37 31 37 38 33 33  fb9e02cea8717833
7180: 65 37 35 38 31 66 37 62 0d 0a 0d 0a 71 75 65 72  e7581f7b....quer
7190: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
71a0: 45 43 54 20 2b 20 34 35 20 2a 20 2b 20 2b 20 63  ECT + 45 * + + c
71b0: 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol2 AS col0 FROM
71c0: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 30 33   tab2..----..103
71d0: 35 0d 0a 31 38 30 30 0d 0a 32 36 31 30 0d 0a 0d  5..1800..2610...
71e0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
71f0: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
7200: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
7210: 6f 72 74 20 6c 61 62 65 6c 2d 31 36 31 0d 0a 53  ort label-161..S
7220: 45 4c 45 43 54 20 41 4c 4c 20 2b 20 36 20 2a 20  ELECT ALL + 6 * 
7230: 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f  - COUNT( * ) FRO
7240: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab2..----..-1
7250: 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  8....skipif mysq
7260: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
7270: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
7280: 6f 72 74 20 6c 61 62 65 6c 2d 31 36 31 0d 0a 53  ort label-161..S
7290: 45 4c 45 43 54 20 41 4c 4c 20 2b 20 36 20 2a 20  ELECT ALL + 6 * 
72a0: 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52  - COUNT ( * ) FR
72b0: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
72c0: 31 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  18....onlyif mys
72d0: 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
72e0: 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
72f0: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
7300: 72 74 20 6c 61 62 65 6c 2d 31 36 32 0d 0a 53 45  rt label-162..SE
7310: 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
7320: 74 61 62 31 20 57 48 45 52 45 20 2b 20 43 41 53  tab1 WHERE + CAS
7330: 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
7340: 44 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  D ) IS NULL..---
7350: 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
7360: 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31  ing to c6c0a4111
7370: 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65  b36d04dbc811a11e
7380: 34 64 35 34 63 61 64 0d 0a 0d 0a 73 6b 69 70 69  4d54cad....skipi
7390: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
73a0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
73b0: 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
73c0: 6c 2d 31 36 32 0d 0a 53 45 4c 45 43 54 20 41 4c  l-162..SELECT AL
73d0: 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48  L * FROM tab1 WH
73e0: 45 52 45 20 2b 20 43 41 53 54 20 28 20 4e 55 4c  ERE + CAST ( NUL
73f0: 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 49  L AS INTEGER ) I
7400: 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20  S NULL..----..9 
7410: 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
7420: 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64 30  o c6c0a4111b36d0
7430: 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34 63  4dbc811a11e4d54c
7440: 61 64 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  ad....query II r
7450: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
7460: 6f 6c 31 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f  ol1 - col0 AS co
7470: 6c 31 2c 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  l1, col0 FROM ta
7480: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 37 0d 0a 35  b1..----..-37..5
7490: 31 0d 0a 2d 34 34 0d 0a 39 31 0d 0a 2d 38 30 0d  1..-44..91..-80.
74a0: 0a 38 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .85....query I r
74b0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
74c0: 20 63 6f 6c 31 20 2a 20 2b 20 36 34 20 46 52 4f   col1 * + 64 FRO
74d0: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
74e0: 48 45 52 45 20 2d 20 37 32 20 49 53 20 4e 4f 54  HERE - 72 IS NOT
74f0: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33 30 30   NULL..----..300
7500: 38 0d 0a 33 32 30 0d 0a 38 39 36 0d 0a 0d 0a 6f  8..320..896....o
7510: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
7520: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
7530: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
7540: 74 20 6c 61 62 65 6c 2d 31 36 35 0d 0a 53 45 4c  t label-165..SEL
7550: 45 43 54 20 41 4c 4c 20 2b 20 2b 20 43 4f 55 4e  ECT ALL + + COUN
7560: 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30  T( * ) FROM tab0
7570: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
7580: 4f 54 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20  OT NULL BETWEEN 
7590: 2b 20 63 6f 6c 30 20 41 4e 44 20 2b 20 63 6f 6c  + col0 AND + col
75a0: 31 20 2a 20 2b 20 39 38 0d 0a 2d 2d 2d 2d 0d 0a  1 * + 98..----..
75b0: 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
75c0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
75d0: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
75e0: 6f 72 74 20 6c 61 62 65 6c 2d 31 36 35 0d 0a 53  ort label-165..S
75f0: 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 43 4f  ELECT ALL + + CO
7600: 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
7610: 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
7620: 45 20 4e 4f 54 20 4e 55 4c 4c 20 42 45 54 57 45  E NOT NULL BETWE
7630: 45 4e 20 2b 20 63 6f 6c 30 20 41 4e 44 20 2b 20  EN + col0 AND + 
7640: 63 6f 6c 31 20 2a 20 2b 20 39 38 0d 0a 2d 2d 2d  col1 * + 98..---
7650: 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -..0....query I 
7660: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
7670: 41 4c 4c 20 2d 20 2b 20 30 20 2b 20 28 20 2d 20  ALL - + 0 + ( - 
7680: 2b 20 28 20 2d 20 2b 20 33 37 20 29 20 29 20 41  + ( - + 37 ) ) A
7690: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
76a0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
76b0: 33 37 0d 0a 33 37 0d 0a 33 37 0d 0a 0d 0a 6f 6e  37..37..37....on
76c0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
76d0: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
76e0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
76f0: 20 6c 61 62 65 6c 2d 31 36 37 0d 0a 53 45 4c 45   label-167..SELE
7700: 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20 2a 20  CT ALL COUNT( * 
7710: 29 20 2a 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  ) * + COUNT( * )
7720: 20 2a 20 2b 20 38 37 20 41 53 20 63 6f 6c 30 20   * + 87 AS col0 
7730: 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a  FROM tab0 cor0..
7740: 2d 2d 2d 2d 0d 0a 37 38 33 0d 0a 0d 0a 73 6b 69  ----..783....ski
7750: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
7760: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
7770: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
7780: 6c 2d 31 36 37 0d 0a 53 45 4c 45 43 54 20 41 4c  l-167..SELECT AL
7790: 4c 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20  L COUNT ( * ) * 
77a0: 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20  + COUNT ( * ) * 
77b0: 2b 20 38 37 20 41 53 20 63 6f 6c 30 20 46 52 4f  + 87 AS col0 FRO
77c0: 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
77d0: 2d 0d 0a 37 38 33 0d 0a 0d 0a 71 75 65 72 79 20  -..783....query 
77e0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
77f0: 54 20 41 4c 4c 20 34 30 20 2b 20 63 6f 6c 32 20  T ALL 40 + col2 
7800: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
7810: 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 33  2 cor0..----..63
7820: 0d 0a 38 30 0d 0a 39 38 0d 0a 0d 0a 73 6b 69 70  ..80..98....skip
7830: 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
7840: 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
7850: 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
7860: 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
7870: 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
7880: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 28  sort..SELECT + (
7890: 20 2b 20 2b 20 63 6f 6c 32 20 29 20 2b 20 34 33   + + col2 ) + 43
78a0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
78b0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 31 0d  cor0..----..101.
78c0: 0a 36 36 0d 0a 38 33 0d 0a 0d 0a 6f 6e 6c 79 69  .66..83....onlyi
78d0: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
78e0: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
78f0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
7900: 62 65 6c 2d 31 37 30 0d 0a 53 45 4c 45 43 54 20  bel-170..SELECT 
7910: 2b 20 31 38 20 2b 20 34 37 20 2b 20 2d 20 43 4f  + 18 + 47 + - CO
7920: 55 4e 54 28 20 2b 20 28 20 2d 20 34 33 20 29 20  UNT( + ( - 43 ) 
7930: 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
7940: 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab0 cor0..----..
7950: 36 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  62....skipif mys
7960: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
7970: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
7980: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37 30 0d 0a  sort label-170..
7990: 53 45 4c 45 43 54 20 2b 20 31 38 20 2b 20 34 37  SELECT + 18 + 47
79a0: 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2b 20 28   + - COUNT ( + (
79b0: 20 2d 20 34 33 20 29 20 29 20 41 53 20 63 6f 6c   - 43 ) ) AS col
79c0: 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  0 FROM tab0 cor0
79d0: 0d 0a 2d 2d 2d 2d 0d 0a 36 32 0d 0a 0d 0a 6f 6e  ..----..62....on
79e0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
79f0: 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
7a00: 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
7a10: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
7a20: 37 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  71..SELECT DISTI
7a30: 4e 43 54 20 2b 20 2b 20 39 35 20 2a 20 2b 20 43  NCT + + 95 * + C
7a40: 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
7a50: 4e 45 44 20 29 20 2d 20 2d 20 63 6f 6c 31 20 46  NED ) - - col1 F
7a60: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
7a70: 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
7a80: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
7a90: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
7aa0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
7ab0: 61 62 65 6c 2d 31 37 31 0d 0a 53 45 4c 45 43 54  abel-171..SELECT
7ac0: 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 39 35   DISTINCT + + 95
7ad0: 20 2a 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c   * + CAST ( NULL
7ae0: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2d 20   AS INTEGER ) - 
7af0: 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  - col1 FROM tab0
7b00: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
7b10: 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  NULL....skipif p
7b20: 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
7b30: 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
7b40: 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
7b50: 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
7b60: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
7b70: 0d 0a 53 45 4c 45 43 54 20 38 20 2a 20 2b 20 2b  ..SELECT 8 * + +
7b80: 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 30 20 2b   col2 + - col0 +
7b90: 20 2b 20 36 31 20 2d 20 35 20 63 6f 6c 31 20 46   + 61 - 5 col1 F
7ba0: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
7bb0: 0d 0a 2d 2d 2d 2d 0d 0a 34 31 37 0d 0a 34 39 0d  ..----..417..49.
7bc0: 0a 37 35 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .751....onlyif m
7bd0: 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
7be0: 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
7bf0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
7c00: 72 74 20 6c 61 62 65 6c 2d 31 37 33 0d 0a 53 45  rt label-173..SE
7c10: 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 44 49  LECT ALL col1 DI
7c20: 56 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 32 20  V col0 + + col2 
7c30: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
7c40: 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 35 32 0d  0..----..10..52.
7c50: 0a 39 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .99....skipif my
7c60: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
7c70: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
7c80: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37 33 0d  wsort label-173.
7c90: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31  .SELECT ALL col1
7ca0: 20 2f 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 32   / col0 + + col2
7cb0: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
7cc0: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 35 32  b0..----..10..52
7cd0: 0d 0a 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..99....onlyif m
7ce0: 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
7cf0: 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
7d00: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
7d10: 72 74 20 6c 61 62 65 6c 2d 31 37 34 0d 0a 53 45  rt label-174..SE
7d20: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
7d30: 63 6f 6c 32 20 44 49 56 20 2d 20 2b 20 63 6f 6c  col2 DIV - + col
7d40: 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
7d50: 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..0....skipif m
7d60: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
7d70: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
7d80: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37 34  owsort label-174
7d90: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
7da0: 54 20 2d 20 63 6f 6c 32 20 2f 20 2d 20 2b 20 63  T - col2 / - + c
7db0: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
7dc0: 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20  ---..0....query 
7dd0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
7de0: 54 20 41 4c 4c 20 2d 20 34 36 20 2a 20 2b 20 63  T ALL - 46 * + c
7df0: 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol1 AS col1 FROM
7e00: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33   tab2..----..-23
7e10: 34 36 0d 0a 2d 33 30 38 32 0d 0a 2d 33 35 34 32  46..-3082..-3542
7e20: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
7e30: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
7e40: 49 4e 43 54 20 2d 20 63 6f 6c 32 20 2a 20 2d 20  INCT - col2 * - 
7e50: 38 36 20 2a 20 35 31 20 46 52 4f 4d 20 74 61 62  86 * 51 FROM tab
7e60: 31 0d 0a 2d 2d 2d 2d 0d 0a 32 35 38 37 37 34 0d  1..----..258774.
7e70: 0a 32 39 38 32 34 38 0d 0a 34 32 31 30 35 36 0d  .298248..421056.
7e80: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
7e90: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
7ea0: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
7eb0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37 37 0d  wsort label-177.
7ec0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
7ed0: 20 4d 49 4e 28 20 2b 20 35 35 20 29 20 63 6f 6c   MIN( + 55 ) col
7ee0: 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
7ef0: 2d 0d 0a 35 35 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..55....skipif 
7f00: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
7f10: 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70  atible..skipif p
7f20: 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
7f30: 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
7f40: 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
7f50: 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
7f60: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
7f70: 20 6c 61 62 65 6c 2d 31 37 37 0d 0a 53 45 4c 45   label-177..SELE
7f80: 43 54 20 44 49 53 54 49 4e 43 54 20 4d 49 4e 20  CT DISTINCT MIN 
7f90: 28 20 2b 20 35 35 20 29 20 63 6f 6c 32 20 46 52  ( + 55 ) col2 FR
7fa0: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 35  OM tab0..----..5
7fb0: 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  5....query I row
7fc0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d  sort..SELECT + -
7fd0: 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 31 20 2a   col2 * - col1 *
7fe0: 20 2d 20 28 20 2d 20 28 20 63 6f 6c 32 20 29 20   - ( - ( col2 ) 
7ff0: 29 20 2b 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20  ) + + col0 FROM 
8000: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
8010: 2d 2d 0d 0a 31 32 39 30 37 35 0d 0a 31 37 34 39  --..129075..1749
8020: 30 0d 0a 32 31 37 34 31 39 0d 0a 0d 0a 6f 6e 6c  0..217419....onl
8030: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
8040: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
8050: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
8060: 6c 61 62 65 6c 2d 31 37 39 0d 0a 53 45 4c 45 43  label-179..SELEC
8070: 54 20 2b 20 53 55 4d 28 20 44 49 53 54 49 4e 43  T + SUM( DISTINC
8080: 54 20 2b 20 2d 20 38 20 29 20 41 53 20 63 6f 6c  T + - 8 ) AS col
8090: 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
80a0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 0d 0a 0d  or0..----..-8...
80b0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
80c0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
80d0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
80e0: 6c 61 62 65 6c 2d 31 37 39 0d 0a 53 45 4c 45 43  label-179..SELEC
80f0: 54 20 2b 20 53 55 4d 20 28 20 44 49 53 54 49 4e  T + SUM ( DISTIN
8100: 43 54 20 2b 20 2d 20 38 20 29 20 41 53 20 63 6f  CT + - 8 ) AS co
8110: 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l0 FROM tab2 AS 
8120: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 0d 0a  cor0..----..-8..
8130: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
8140: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
8150: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
8160: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 38 30 0d 0a  sort label-180..
8170: 53 45 4c 45 43 54 20 2d 20 2d 20 43 4f 55 4e 54  SELECT - - COUNT
8180: 28 20 2a 20 29 20 2a 20 53 55 4d 28 20 44 49 53  ( * ) * SUM( DIS
8190: 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20 29 20 41  TINCT + col0 ) A
81a0: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
81b0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
81c0: 36 38 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  681....skipif my
81d0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
81e0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
81f0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 38 30 0d  wsort label-180.
8200: 0a 53 45 4c 45 43 54 20 2d 20 2d 20 43 4f 55 4e  .SELECT - - COUN
8210: 54 20 28 20 2a 20 29 20 2a 20 53 55 4d 20 28 20  T ( * ) * SUM ( 
8220: 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20  DISTINCT + col0 
8230: 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
8240: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
8250: 2d 0d 0a 36 38 31 0d 0a 0d 0a 73 6b 69 70 69 66  -..681....skipif
8260: 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
8270: 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
8280: 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
8290: 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
82a0: 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
82b0: 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 37  rt..SELECT - + 7
82c0: 30 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  0 col1 FROM tab1
82d0: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
82e0: 4f 54 20 28 20 2d 20 63 6f 6c 30 20 2a 20 63 6f  OT ( - col0 * co
82f0: 6c 32 20 2d 20 33 36 20 4e 4f 54 20 42 45 54 57  l2 - 36 NOT BETW
8300: 45 45 4e 20 28 20 2d 20 33 30 20 29 20 41 4e 44  EEN ( - 30 ) AND
8310: 20 2d 20 2b 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d   - + col0 )..---
8320: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
8330: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 39 36 20  sort..SELECT 96 
8340: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
8350: 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 36  0 cor0..----..96
8360: 0d 0a 39 36 0d 0a 39 36 0d 0a 0d 0a 6f 6e 6c 79  ..96..96....only
8370: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
8380: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
8390: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
83a0: 61 62 65 6c 2d 31 38 33 0d 0a 53 45 4c 45 43 54  abel-183..SELECT
83b0: 20 4d 49 4e 28 20 44 49 53 54 49 4e 43 54 20 2b   MIN( DISTINCT +
83c0: 20 38 31 20 29 20 41 53 20 63 6f 6c 30 20 46 52   81 ) AS col0 FR
83d0: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 38  OM tab2..----..8
83e0: 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
83f0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
8400: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
8410: 6f 72 74 20 6c 61 62 65 6c 2d 31 38 33 0d 0a 53  ort label-183..S
8420: 45 4c 45 43 54 20 4d 49 4e 20 28 20 44 49 53 54  ELECT MIN ( DIST
8430: 49 4e 43 54 20 2b 20 38 31 20 29 20 41 53 20 63  INCT + 81 ) AS c
8440: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol0 FROM tab2..-
8450: 2d 2d 2d 0d 0a 38 31 0d 0a 0d 0a 71 75 65 72 79  ---..81....query
8460: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
8470: 43 54 20 39 30 20 41 53 20 63 6f 6c 30 20 46 52  CT 90 AS col0 FR
8480: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
8490: 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20  CROSS JOIN tab1 
84a0: 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39  AS cor1..----..9
84b0: 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
84c0: 74 6f 20 39 36 66 37 61 39 30 34 32 38 64 62 39  to 96f7a90428db9
84d0: 33 66 34 37 32 65 30 64 32 31 39 62 61 62 36 34  3f472e0d219bab64
84e0: 38 35 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  853....query III
84f0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
8500: 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30   ALL * FROM tab0
8510: 20 57 48 45 52 45 20 63 6f 6c 30 20 2a 20 2d 20   WHERE col0 * - 
8520: 63 6f 6c 32 20 2a 20 33 31 20 2d 20 30 20 49 4e  col2 * 31 - 0 IN
8530: 20 28 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d   ( + col1 )..---
8540: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
8550: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 31  sort..SELECT + 1
8560: 36 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  6 AS col1 FROM t
8570: 61 62 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53  ab2 AS cor0 CROS
8580: 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63  S JOIN tab0 AS c
8590: 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  or1..----..9 val
85a0: 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 33  ues hashing to 3
85b0: 66 64 62 30 38 65 63 32 65 33 64 34 62 36 34 32  fdb08ec2e3d4b642
85c0: 64 64 34 35 39 34 37 37 38 63 63 61 38 62 33 0d  dd4594778cca8b3.
85d0: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
85e0: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
85f0: 4e 43 54 20 2b 20 63 6f 6c 31 20 2a 20 63 6f 6c  NCT + col1 * col
8600: 32 20 2a 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c  2 * col1 + - col
8610: 31 20 2d 20 2b 20 2d 20 38 39 20 46 52 4f 4d 20  1 - + - 89 FROM 
8620: 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
8630: 52 45 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20  RE NULL BETWEEN 
8640: 63 6f 6c 30 20 41 4e 44 20 2d 20 34 38 0d 0a 2d  col0 AND - 48..-
8650: 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
8660: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
8670: 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e  x: aggregate syn
8680: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
8690: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
86a0: 6f 72 74 20 6c 61 62 65 6c 2d 31 38 38 0d 0a 53  ort label-188..S
86b0: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
86c0: 20 2b 20 4d 49 4e 28 20 2d 20 43 41 53 54 28 20   + MIN( - CAST( 
86d0: 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
86e0: 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
86f0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
8700: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
8710: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
8720: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
8730: 72 74 20 6c 61 62 65 6c 2d 31 38 38 0d 0a 53 45  rt label-188..SE
8740: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
8750: 2b 20 4d 49 4e 20 28 20 2d 20 43 41 53 54 20 28  + MIN ( - CAST (
8760: 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
8770: 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41   ) ) FROM tab0 A
8780: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
8790: 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  LL....onlyif mys
87a0: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
87b0: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
87c0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
87d0: 38 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  89..SELECT DISTI
87e0: 4e 43 54 20 2d 20 34 33 20 2a 20 2b 20 53 55 4d  NCT - 43 * + SUM
87f0: 28 20 2b 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20  ( + col0 ) FROM 
8800: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
8810: 2d 2d 0d 0a 2d 39 37 36 31 0d 0a 0d 0a 73 6b 69  --..-9761....ski
8820: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
8830: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
8840: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
8850: 6c 2d 31 38 39 0d 0a 53 45 4c 45 43 54 20 44 49  l-189..SELECT DI
8860: 53 54 49 4e 43 54 20 2d 20 34 33 20 2a 20 2b 20  STINCT - 43 * + 
8870: 53 55 4d 20 28 20 2b 20 63 6f 6c 30 20 29 20 46  SUM ( + col0 ) F
8880: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
8890: 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 37 36 31 0d 0a 0d  ..----..-9761...
88a0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
88b0: 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 63 6f 6c  ..SELECT + + col
88c0: 31 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f  1 + - col2 AS co
88d0: 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  l0 FROM tab1 cor
88e0: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 0d 0a 2d 35  0..----..-21..-5
88f0: 34 0d 0a 2d 38 32 0d 0a 0d 0a 71 75 65 72 79 20  4..-82....query 
8900: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
8910: 54 20 41 4c 4c 20 2d 20 35 20 2b 20 2b 20 63 6f  T ALL - 5 + + co
8920: 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  l0 FROM tab1 cor
8930: 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  0 WHERE NOT NULL
8940: 20 42 45 54 57 45 45 4e 20 2b 20 28 20 2b 20 39   BETWEEN + ( + 9
8950: 36 20 29 20 2a 20 2b 20 37 38 20 2b 20 2d 20 2b  6 ) * + 78 + - +
8960: 20 39 33 20 2b 20 2b 20 34 37 20 41 4e 44 20 63   93 + + 47 AND c
8970: 6f 6c 32 20 2b 20 2b 20 63 6f 6c 30 0d 0a 2d 2d  ol2 + + col0..--
8980: 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
8990: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
89a0: 63 6f 6c 31 20 2b 20 2b 20 33 33 20 41 53 20 63  col1 + + 33 AS c
89b0: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
89c0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 34   cor0..----..114
89d0: 0d 0a 33 34 0d 0a 35 34 0d 0a 0d 0a 71 75 65 72  ..34..54....quer
89e0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
89f0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  ECT DISTINCT col
8a00: 31 20 2b 20 34 39 20 46 52 4f 4d 20 74 61 62 30  1 + 49 FROM tab0
8a10: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
8a20: 31 33 30 0d 0a 35 30 0d 0a 37 30 0d 0a 0d 0a 71  130..50..70....q
8a30: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
8a40: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 36 33 20  SELECT ALL + 63 
8a50: 2a 20 2d 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f  * - + col1 AS co
8a60: 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l2 FROM tab0..--
8a70: 2d 2d 0d 0a 2d 31 33 32 33 0d 0a 2d 35 31 30 33  --..-1323..-5103
8a80: 0d 0a 2d 36 33 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-63....query I
8a90: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
8aa0: 20 2d 20 36 33 20 2d 20 2d 20 63 6f 6c 30 20 2a   - 63 - - col0 *
8ab0: 20 2d 20 39 35 20 41 53 20 63 6f 6c 32 20 46 52   - 95 AS col2 FR
8ac0: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
8ad0: 0a 2d 2d 2d 2d 0d 0a 2d 31 34 38 38 0d 0a 2d 38  .----..-1488..-8
8ae0: 33 32 38 0d 0a 2d 39 32 37 38 0d 0a 0d 0a 71 75  328..-9278....qu
8af0: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
8b00: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
8b10: 2d 20 63 6f 6c 30 20 2f 20 2b 20 37 31 20 2b 20  - col0 / + 71 + 
8b20: 2b 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 32 20  + col2 * - col2 
8b30: 2a 20 28 20 2d 20 2b 20 63 6f 6c 30 20 29 20 41  * ( - + col0 ) A
8b40: 53 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c 30 20 2b  S col1, + col0 +
8b50: 20 2b 20 32 39 20 2b 20 2d 20 63 6f 6c 30 20 2a   + 29 + - col0 *
8b60: 20 2b 20 2d 20 38 39 20 2a 20 63 6f 6c 30 20 2a   + - 89 * col0 *
8b70: 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 31 20 46   col1 + - col1 F
8b80: 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
8b90: 55 4c 4c 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ULL <> NULL..---
8ba0: 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  -....skipif post
8bb0: 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
8bc0: 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
8bd0: 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
8be0: 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
8bf0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
8c00: 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 63  ELECT ALL col1 c
8c10: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 57 48  ol0 FROM tab1 WH
8c20: 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20  ERE NOT NULL IS 
8c30: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
8c40: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
8c50: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
8c60: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
8c70: 20 6c 61 62 65 6c 2d 31 39 38 0d 0a 53 45 4c 45   label-198..SELE
8c80: 43 54 20 2b 20 2b 20 28 20 43 4f 55 4e 54 28 20  CT + + ( COUNT( 
8c90: 2a 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52  * ) ) AS col1 FR
8ca0: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
8cb0: 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20  CROSS JOIN tab1 
8cc0: 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39  AS cor1..----..9
8cd0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
8ce0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
8cf0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
8d00: 72 74 20 6c 61 62 65 6c 2d 31 39 38 0d 0a 53 45  rt label-198..SE
8d10: 4c 45 43 54 20 2b 20 2b 20 28 20 43 4f 55 4e 54  LECT + + ( COUNT
8d20: 20 28 20 2a 20 29 20 29 20 41 53 20 63 6f 6c 31   ( * ) ) AS col1
8d30: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
8d40: 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
8d50: 62 31 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d  b1 AS cor1..----
8d60: 0d 0a 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ..9....query I r
8d70: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 36  owsort..SELECT 6
8d80: 32 20 2b 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20  2 + + col1 FROM 
8d90: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 30 39 0d  tab1..----..109.
8da0: 0a 36 37 0d 0a 37 36 0d 0a 0d 0a 71 75 65 72 79  .67..76....query
8db0: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
8dc0: 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
8dd0: 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2d  tab0 WHERE NOT -
8de0: 20 34 39 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d   49 < NULL..----
8df0: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
8e00: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
8e10: 49 4e 43 54 20 2b 20 39 31 20 41 53 20 63 6f 6c  INCT + 91 AS col
8e20: 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
8e30: 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f  or0 WHERE NOT co
8e40: 6c 30 20 42 45 54 57 45 45 4e 20 2d 20 2b 20 33  l0 BETWEEN - + 3
8e50: 33 20 2a 20 2d 20 2b 20 63 6f 6c 30 20 41 4e 44  3 * - + col0 AND
8e60: 20 2b 20 28 20 2d 20 32 33 20 29 20 2a 20 2d 20   + ( - 23 ) * - 
8e70: 63 6f 6c 32 20 2a 20 2d 20 2d 20 63 6f 6c 31 0d  col2 * - - col1.
8e80: 0a 2d 2d 2d 2d 0d 0a 39 31 0d 0a 0d 0a 71 75 65  .----..91....que
8e90: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
8ea0: 45 4c 45 43 54 20 2b 20 63 6f 6c 30 2c 20 37 36  ELECT + col0, 76
8eb0: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
8ec0: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
8ed0: 0d 0a 35 31 0d 0a 37 36 0d 0a 38 35 0d 0a 37 36  ..51..76..85..76
8ee0: 0d 0a 39 31 0d 0a 37 36 0d 0a 0d 0a 73 6b 69 70  ..91..76....skip
8ef0: 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
8f00: 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
8f10: 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
8f20: 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
8f30: 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  mns..query II ro
8f40: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
8f50: 6c 30 20 63 6f 6c 31 2c 20 2d 20 63 6f 6c 32 20  l0 col1, - col2 
8f60: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
8f70: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
8f80: 0a 31 35 0d 0a 2d 34 37 0d 0a 38 37 0d 0a 2d 31  .15..-47..87..-1
8f90: 30 0d 0a 39 37 0d 0a 2d 39 39 0d 0a 0d 0a 6f 6e  0..97..-99....on
8fa0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
8fb0: 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
8fc0: 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
8fd0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
8fe0: 32 30 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  204..SELECT ALL 
8ff0: 28 20 2d 20 63 6f 6c 31 20 29 20 2b 20 63 6f 6c  ( - col1 ) + col
9000: 32 20 41 53 20 63 6f 6c 30 2c 20 28 20 63 6f 6c  2 AS col0, ( col
9010: 31 20 29 20 44 49 56 20 2b 20 35 34 20 41 53 20  1 ) DIV + 54 AS 
9020: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41  col2 FROM tab1 A
9030: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31  S cor0..----..21
9040: 0d 0a 30 0d 0a 35 34 0d 0a 30 0d 0a 38 32 0d 0a  ..0..54..0..82..
9050: 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
9060: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
9070: 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
9080: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 30 34 0d 0a  sort label-204..
9090: 53 45 4c 45 43 54 20 41 4c 4c 20 28 20 2d 20 63  SELECT ALL ( - c
90a0: 6f 6c 31 20 29 20 2b 20 63 6f 6c 32 20 41 53 20  ol1 ) + col2 AS 
90b0: 63 6f 6c 30 2c 20 28 20 63 6f 6c 31 20 29 20 2f  col0, ( col1 ) /
90c0: 20 2b 20 35 34 20 41 53 20 63 6f 6c 32 20 46 52   + 54 AS col2 FR
90d0: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
90e0: 0a 2d 2d 2d 2d 0d 0a 32 31 0d 0a 30 0d 0a 35 34  .----..21..0..54
90f0: 0d 0a 30 0d 0a 38 32 0d 0a 30 0d 0a 0d 0a 6f 6e  ..0..82..0....on
9100: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
9110: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
9120: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
9130: 20 6c 61 62 65 6c 2d 32 30 35 0d 0a 53 45 4c 45   label-205..SELE
9140: 43 54 20 4d 41 58 28 20 44 49 53 54 49 4e 43 54  CT MAX( DISTINCT
9150: 20 63 6f 6c 30 20 29 20 2a 20 2b 20 53 55 4d 28   col0 ) * + SUM(
9160: 20 2d 20 28 20 2b 20 35 37 20 29 20 29 20 46 52   - ( + 57 ) ) FR
9170: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
9180: 0a 2d 2d 2d 2d 0d 0a 2d 31 32 38 32 35 0d 0a 0d  .----..-12825...
9190: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
91a0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
91b0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
91c0: 6c 61 62 65 6c 2d 32 30 35 0d 0a 53 45 4c 45 43  label-205..SELEC
91d0: 54 20 4d 41 58 20 28 20 44 49 53 54 49 4e 43 54  T MAX ( DISTINCT
91e0: 20 63 6f 6c 30 20 29 20 2a 20 2b 20 53 55 4d 20   col0 ) * + SUM 
91f0: 28 20 2d 20 28 20 2b 20 35 37 20 29 20 29 20 46  ( - ( + 57 ) ) F
9200: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
9210: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 38 32 35 0d 0a  ..----..-12825..
9220: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
9230: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
9240: 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  INCT * FROM tab0
9250: 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 32 34   cor0 WHERE + 24
9260: 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 49 53 20 4e   * + - col2 IS N
9270: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ULL..----....onl
9280: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
9290: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
92a0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
92b0: 6c 61 62 65 6c 2d 32 30 37 0d 0a 53 45 4c 45 43  label-207..SELEC
92c0: 54 20 2d 20 2b 20 4d 41 58 28 20 41 4c 4c 20 2d  T - + MAX( ALL -
92d0: 20 2b 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74   + col0 ) FROM t
92e0: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
92f0: 2d 0d 0a 35 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..51....skipif 
9300: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
9310: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
9320: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 30  rowsort label-20
9330: 37 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 4d 41  7..SELECT - + MA
9340: 58 20 28 20 41 4c 4c 20 2d 20 2b 20 63 6f 6c 30  X ( ALL - + col0
9350: 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
9360: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a  cor0..----..51..
9370: 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
9380: 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
9390: 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
93a0: 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
93b0: 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
93c0: 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
93d0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 37  ECT DISTINCT - 7
93e0: 39 2c 20 31 37 20 63 6f 6c 32 20 46 52 4f 4d 20  9, 17 col2 FROM 
93f0: 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
9400: 2d 2d 0d 0a 2d 37 39 0d 0a 31 37 0d 0a 0d 0a 71  --..-79..17....q
9410: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
9420: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
9430: 2d 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 31 20 46  - + col2 * - 1 F
9440: 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d  ROM tab2 cor0..-
9450: 2d 2d 2d 0d 0a 32 33 0d 0a 34 30 0d 0a 35 38 0d  ---..23..40..58.
9460: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
9470: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63  rt..SELECT ALL c
9480: 6f 6c 30 20 2a 20 2b 20 28 20 63 6f 6c 31 20 29  ol0 * + ( col1 )
9490: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
94a0: 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  b2 cor0..----..2
94b0: 33 34 36 0d 0a 34 39 32 38 0d 0a 35 30 32 35 0d  346..4928..5025.
94c0: 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
94d0: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
94e0: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
94f0: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
9500: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
9510: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
9520: 45 43 54 20 2b 20 2b 20 28 20 2b 20 31 37 20 29  ECT + + ( + 17 )
9530: 20 2a 20 2b 20 32 38 20 63 6f 6c 30 20 46 52 4f   * + 28 col0 FRO
9540: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
9550: 2d 2d 2d 2d 0d 0a 34 37 36 0d 0a 34 37 36 0d 0a  ----..476..476..
9560: 34 37 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  476....query I r
9570: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
9580: 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31 20 2a  ISTINCT - col1 *
9590: 20 2d 20 39 30 20 46 52 4f 4d 20 74 61 62 32 20   - 90 FROM tab2 
95a0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34  AS cor0..----..4
95b0: 35 39 30 0d 0a 36 30 33 30 0d 0a 36 39 33 30 0d  590..6030..6930.
95c0: 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
95d0: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
95e0: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
95f0: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
9600: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
9610: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
9620: 45 43 54 20 41 4c 4c 20 2d 20 31 33 20 2a 20 2b  ECT ALL - 13 * +
9630: 20 37 39 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   79 col0 FROM ta
9640: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 32 37 0d  b1..----..-1027.
9650: 0a 2d 31 30 32 37 0d 0a 2d 31 30 32 37 0d 0a 0d  .-1027..-1027...
9660: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
9670: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
9680: 54 20 2d 20 35 35 20 46 52 4f 4d 20 74 61 62 32  T - 55 FROM tab2
9690: 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 39 31 20   WHERE NOT + 91 
96a0: 2a 20 35 39 20 2b 20 2d 20 32 30 20 3c 3e 20 63  * 59 + - 20 <> c
96b0: 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ol1..----....que
96c0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
96d0: 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 2a 20  LECT ALL col0 * 
96e0: 2d 20 2d 20 34 35 20 46 52 4f 4d 20 74 61 62 32  - - 45 FROM tab2
96f0: 0d 0a 2d 2d 2d 2d 0d 0a 32 30 37 30 0d 0a 32 38  ..----..2070..28
9700: 38 30 0d 0a 33 33 37 35 0d 0a 0d 0a 71 75 65 72  80..3375....quer
9710: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
9720: 45 43 54 20 37 33 20 46 52 4f 4d 20 74 61 62 31  ECT 73 FROM tab1
9730: 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 2d 20 63   WHERE NOT + - c
9740: 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ol2 IS NOT NULL.
9750: 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
9760: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
9770: 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
9780: 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
9790: 54 20 2d 20 63 6f 6c 30 20 42 45 54 57 45 45 4e  T - col0 BETWEEN
97a0: 20 4e 55 4c 4c 20 41 4e 44 20 2b 20 2d 20 28 20   NULL AND + - ( 
97b0: 2b 20 2d 20 39 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a  + - 90 )..----..
97c0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
97d0: 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2a  t..SELECT col2 *
97e0: 20 2d 20 39 34 20 2a 20 63 6f 6c 31 20 46 52 4f   - 94 * col1 FRO
97f0: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
9800: 2d 2d 2d 2d 0d 0a 2d 31 31 30 32 36 32 0d 0a 2d  ----..-110262..-
9810: 32 38 39 35 32 30 0d 0a 2d 33 36 35 32 38 34 0d  289520..-365284.
9820: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
9830: 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20 2b  rt..SELECT - ( +
9840: 20 2d 20 36 34 20 29 20 2a 20 63 6f 6c 31 20 41   - 64 ) * col1 A
9850: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
9860: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
9870: 33 30 30 38 0d 0a 33 32 30 0d 0a 38 39 36 0d 0a  3008..320..896..
9880: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
9890: 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 28 20  t..SELECT - + ( 
98a0: 2b 20 2d 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20  + - col2 ) FROM 
98b0: 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
98c0: 2d 2d 0d 0a 32 33 0d 0a 34 30 0d 0a 35 38 0d 0a  --..23..40..58..
98d0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
98e0: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
98f0: 43 54 20 2d 20 37 36 20 2b 20 2b 20 2b 20 63 6f  CT - 76 + + + co
9900: 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
9910: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 35 0d  cor0..----..-55.
9920: 0a 2d 37 35 0d 0a 35 0d 0a 0d 0a 6f 6e 6c 79 69  .-75..5....onlyi
9930: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
9940: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
9950: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
9960: 62 65 6c 2d 32 32 32 0d 0a 53 45 4c 45 43 54 20  bel-222..SELECT 
9970: 2b 20 30 20 2a 20 43 4f 55 4e 54 28 20 2a 20 29  + 0 * COUNT( * )
9980: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
9990: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73  r0..----..0....s
99a0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
99b0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
99c0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
99d0: 62 65 6c 2d 32 32 32 0d 0a 53 45 4c 45 43 54 20  bel-222..SELECT 
99e0: 2b 20 30 20 2a 20 43 4f 55 4e 54 20 28 20 2a 20  + 0 * COUNT ( * 
99f0: 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  ) FROM tab2 AS c
9a00: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  or0..----..0....
9a10: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
9a20: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
9a30: 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
9a40: 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
9a50: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
9a60: 65 6c 2d 32 32 33 0d 0a 53 45 4c 45 43 54 20 41  el-223..SELECT A
9a70: 4c 4c 20 2b 20 38 36 20 44 49 56 20 28 20 2b 20  LL + 86 DIV ( + 
9a80: 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 41 53 20  COUNT( * ) ) AS 
9a90: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
9aa0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 38  S cor0..----..28
9ab0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
9ac0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
9ad0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
9ae0: 72 74 20 6c 61 62 65 6c 2d 32 32 33 0d 0a 53 45  rt label-223..SE
9af0: 4c 45 43 54 20 41 4c 4c 20 2b 20 38 36 20 2f 20  LECT ALL + 86 / 
9b00: 28 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ( + COUNT ( * ) 
9b10: 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
9b20: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
9b30: 2d 0d 0a 32 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -..28....onlyif 
9b40: 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
9b50: 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
9b60: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
9b70: 6f 72 74 20 6c 61 62 65 6c 2d 32 32 34 0d 0a 53  ort label-224..S
9b80: 45 4c 45 43 54 20 41 4c 4c 20 2d 20 39 30 20 44  ELECT ALL - 90 D
9b90: 49 56 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 2b 20  IV - col1 + - + 
9ba0: 63 6f 6c 32 20 2a 20 2b 20 33 31 20 46 52 4f 4d  col2 * + 31 FROM
9bb0: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
9bc0: 2d 2d 2d 0d 0a 2d 31 38 31 31 0d 0a 2d 32 31 30  ---..-1811..-210
9bd0: 37 0d 0a 2d 32 39 37 30 0d 0a 0d 0a 73 6b 69 70  7..-2970....skip
9be0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
9bf0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
9c00: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
9c10: 2d 32 32 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -224..SELECT ALL
9c20: 20 2d 20 39 30 20 2f 20 2d 20 63 6f 6c 31 20 2b   - 90 / - col1 +
9c30: 20 2d 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 33 31   - + col2 * + 31
9c40: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
9c50: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38 31 31 0d  r0..----..-1811.
9c60: 0a 2d 32 31 30 37 0d 0a 2d 32 39 37 30 0d 0a 0d  .-2107..-2970...
9c70: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
9c80: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b  ..SELECT ALL - +
9c90: 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52   col1 AS col0 FR
9ca0: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
9cb0: 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 32  WHERE NOT + col2
9cc0: 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
9cd0: 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
9ce0: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
9cf0: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
9d00: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
9d10: 32 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28  26..SELECT ALL (
9d20: 20 2d 20 53 55 4d 28 20 37 38 20 29 20 29 20 46   - SUM( 78 ) ) F
9d30: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
9d40: 2d 32 33 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -234....skipif m
9d50: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
9d60: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
9d70: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 32 36  owsort label-226
9d80: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28 20 2d  ..SELECT ALL ( -
9d90: 20 53 55 4d 20 28 20 37 38 20 29 20 29 20 46 52   SUM ( 78 ) ) FR
9da0: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
9db0: 32 33 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  234....query I r
9dc0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
9dd0: 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52   col0 AS col2 FR
9de0: 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 2b 20  OM tab2 WHERE + 
9df0: 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  col2 IS NULL..--
9e00: 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
9e10: 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
9e20: 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
9e30: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
9e40: 20 6c 61 62 65 6c 2d 32 32 38 0d 0a 53 45 4c 45   label-228..SELE
9e50: 43 54 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 32  CT col0 + + col2
9e60: 20 2a 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20   * - CAST( NULL 
9e70: 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d  AS SIGNED ) FROM
9e80: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   tab1..----..NUL
9e90: 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
9ea0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
9eb0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
9ec0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
9ed0: 6c 61 62 65 6c 2d 32 32 38 0d 0a 53 45 4c 45 43  label-228..SELEC
9ee0: 54 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 32 20  T col0 + + col2 
9ef0: 2a 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  * - CAST ( NULL 
9f00: 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f  AS INTEGER ) FRO
9f10: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab1..----..NU
9f20: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
9f30: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
9f40: 74 0d 0a 53 45 4c 45 43 54 20 32 39 20 2b 20 31  t..SELECT 29 + 1
9f50: 37 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  7 AS col1 FROM t
9f60: 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 34  ab2..----..46..4
9f70: 36 0d 0a 34 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  6..46....onlyif 
9f80: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
9f90: 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70  tax: DECIMAL typ
9fa0: 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72  e: ..query III r
9fb0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 33 30  owsort label-230
9fc0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
9fd0: 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48  T * FROM tab0 WH
9fe0: 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 42 45 54  ERE NOT NULL BET
9ff0: 57 45 45 4e 20 35 31 20 2b 20 2b 20 28 20 39 32  WEEN 51 + + ( 92
a000: 20 29 20 41 4e 44 20 2d 20 43 41 53 54 28 20 2b   ) AND - CAST( +
a010: 20 63 6f 6c 31 20 41 53 20 44 45 43 49 4d 41 4c   col1 AS DECIMAL
a020: 20 29 20 41 4e 44 20 4e 55 4c 4c 20 42 45 54 57   ) AND NULL BETW
a030: 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2d 20 32  EEN NULL AND - 2
a040: 34 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  4..----....skipi
a050: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
a060: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
a070: 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
a080: 6c 2d 32 33 30 0d 0a 53 45 4c 45 43 54 20 44 49  l-230..SELECT DI
a090: 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
a0a0: 62 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  b0 WHERE NOT NUL
a0b0: 4c 20 42 45 54 57 45 45 4e 20 35 31 20 2b 20 2b  L BETWEEN 51 + +
a0c0: 20 28 20 39 32 20 29 20 41 4e 44 20 2d 20 43 41   ( 92 ) AND - CA
a0d0: 53 54 20 28 20 2b 20 63 6f 6c 31 20 41 53 20 52  ST ( + col1 AS R
a0e0: 45 41 4c 20 29 20 41 4e 44 20 4e 55 4c 4c 20 42  EAL ) AND NULL B
a0f0: 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20  ETWEEN NULL AND 
a100: 2d 20 32 34 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  - 24..----....on
a110: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
a120: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
a130: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
a140: 20 6c 61 62 65 6c 2d 32 33 31 0d 0a 53 45 4c 45   label-231..SELE
a150: 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20  CT COUNT( * ) * 
a160: 2d 20 36 37 20 2b 20 28 20 2b 20 2b 20 34 38 20  - 67 + ( + + 48 
a170: 29 20 2a 20 34 38 20 41 53 20 63 6f 6c 31 20 46  ) * 48 AS col1 F
a180: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
a190: 32 31 30 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  2103....skipif m
a1a0: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
a1b0: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
a1c0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 33 31  owsort label-231
a1d0: 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28  ..SELECT COUNT (
a1e0: 20 2a 20 29 20 2a 20 2d 20 36 37 20 2b 20 28 20   * ) * - 67 + ( 
a1f0: 2b 20 2b 20 34 38 20 29 20 2a 20 34 38 20 41 53  + + 48 ) * 48 AS
a200: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
a210: 0a 2d 2d 2d 2d 0d 0a 32 31 30 33 0d 0a 0d 0a 71  .----..2103....q
a220: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
a230: 53 45 4c 45 43 54 20 2d 20 37 31 20 2a 20 63 6f  SELECT - 71 * co
a240: 6c 31 20 2b 20 2b 20 2b 20 63 6f 6c 32 20 41 53  l1 + + + col2 AS
a250: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
a260: 0a 2d 2d 2d 2d 0d 0a 2d 31 34 38 31 0d 0a 2d 35  .----..-1481..-5
a270: 37 30 34 0d 0a 32 38 0d 0a 0d 0a 71 75 65 72 79  704..28....query
a280: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
a290: 43 54 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 37 33  CT + col1 + + 73
a2a0: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
a2b0: 0d 0a 31 32 30 0d 0a 37 38 0d 0a 38 37 0d 0a 0d  ..120..78..87...
a2c0: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
a2d0: 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2b  t..SELECT col0 +
a2e0: 20 2b 20 2d 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c   + - col2, + col
a2f0: 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  0 AS col2 FROM t
a300: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 35 0d 0a  ab1..----..-45..
a310: 35 31 0d 0a 32 33 0d 0a 39 31 0d 0a 32 36 0d 0a  51..23..91..26..
a320: 38 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  85....query I ro
a330: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
a340: 4c 20 63 6f 6c 30 20 2b 20 2b 20 31 32 20 46 52  L col0 + + 12 FR
a350: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
a360: 0a 2d 2d 2d 2d 0d 0a 35 38 0d 0a 37 36 0d 0a 38  .----..58..76..8
a370: 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  7....onlyif mysq
a380: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
a390: 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
a3a0: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
a3b0: 20 6c 61 62 65 6c 2d 32 33 36 0d 0a 53 45 4c 45   label-236..SELE
a3c0: 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 36 20  CT DISTINCT + 6 
a3d0: 2d 20 2d 20 63 6f 6c 30 2c 20 2d 20 63 6f 6c 30  - - col0, - col0
a3e0: 20 2a 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20   * + CAST( NULL 
a3f0: 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63  AS SIGNED ) AS c
a400: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
a410: 2d 2d 2d 0d 0a 35 37 0d 0a 4e 55 4c 4c 0d 0a 39  ---..57..NULL..9
a420: 31 0d 0a 4e 55 4c 4c 0d 0a 39 37 0d 0a 4e 55 4c  1..NULL..97..NUL
a430: 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
a440: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
a450: 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
a460: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 33 36 0d 0a  sort label-236..
a470: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
a480: 2b 20 36 20 2d 20 2d 20 63 6f 6c 30 2c 20 2d 20  + 6 - - col0, - 
a490: 63 6f 6c 30 20 2a 20 2b 20 43 41 53 54 20 28 20  col0 * + CAST ( 
a4a0: 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
a4b0: 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
a4c0: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 37 0d 0a 4e  ab1..----..57..N
a4d0: 55 4c 4c 0d 0a 39 31 0d 0a 4e 55 4c 4c 0d 0a 39  ULL..91..NULL..9
a4e0: 37 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  7..NULL....skipi
a4f0: 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
a500: 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
a510: 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
a520: 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
a530: 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
a540: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
a550: 49 4e 43 54 20 2b 20 2b 20 31 36 20 63 6f 6c 31  INCT + + 16 col1
a560: 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d   FROM tab1 cor0.
a570: 0a 2d 2d 2d 2d 0d 0a 31 36 0d 0a 0d 0a 6f 6e 6c  .----..16....onl
a580: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
a590: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
a5a0: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
a5b0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 33  rowsort label-23
a5c0: 38 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54  8..SELECT + CAST
a5d0: 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
a5e0: 20 29 20 2a 20 2d 20 32 38 20 2a 20 2d 20 2b 20   ) * - 28 * - + 
a5f0: 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 31 20 2a 20  col2 + + col1 * 
a600: 2b 20 28 20 2b 20 33 32 20 29 20 41 53 20 63 6f  + ( + 32 ) AS co
a610: 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
a620: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
a630: 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
a640: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
a650: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
a660: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
a670: 61 62 65 6c 2d 32 33 38 0d 0a 53 45 4c 45 43 54  abel-238..SELECT
a680: 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   + CAST ( NULL A
a690: 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2d 20  S INTEGER ) * - 
a6a0: 32 38 20 2a 20 2d 20 2b 20 63 6f 6c 32 20 2b 20  28 * - + col2 + 
a6b0: 2b 20 63 6f 6c 31 20 2a 20 2b 20 28 20 2b 20 33  + col1 * + ( + 3
a6c0: 32 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  2 ) AS col0 FROM
a6d0: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
a6e0: 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
a6f0: 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
a700: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
a710: 20 41 4c 4c 20 2d 20 28 20 2b 20 2b 20 63 6f 6c   ALL - ( + + col
a720: 30 20 29 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 41  0 ) * - - col0 A
a730: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
a740: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
a750: 2d 32 36 30 31 0d 0a 2d 37 32 32 35 0d 0a 2d 38  -2601..-7225..-8
a760: 32 38 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  281....query III
a770: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
a780: 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
a790: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  cor0 WHERE NOT N
a7a0: 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  ULL NOT BETWEEN 
a7b0: 4e 55 4c 4c 20 41 4e 44 20 2b 20 63 6f 6c 31 20  NULL AND + col1 
a7c0: 2a 20 2b 20 2d 20 34 30 0d 0a 2d 2d 2d 2d 0d 0a  * + - 40..----..
a7d0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
a7e0: 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
a7f0: 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
a800: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
a810: 62 65 6c 2d 32 34 31 0d 0a 53 45 4c 45 43 54 20  bel-241..SELECT 
a820: 2b 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c 30 20 2b  + col1, + col0 +
a830: 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   - CAST( NULL AS
a840: 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c   SIGNED ) AS col
a850: 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
a860: 2d 0d 0a 35 31 0d 0a 4e 55 4c 4c 0d 0a 36 37 0d  -..51..NULL..67.
a870: 0a 4e 55 4c 4c 0d 0a 37 37 0d 0a 4e 55 4c 4c 0d  .NULL..77..NULL.
a880: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
a890: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
a8a0: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
a8b0: 72 74 20 6c 61 62 65 6c 2d 32 34 31 0d 0a 53 45  rt label-241..SE
a8c0: 4c 45 43 54 20 2b 20 63 6f 6c 31 2c 20 2b 20 63  LECT + col1, + c
a8d0: 6f 6c 30 20 2b 20 2d 20 43 41 53 54 20 28 20 4e  ol0 + - CAST ( N
a8e0: 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
a8f0: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
a900: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 4e 55  b2..----..51..NU
a910: 4c 4c 0d 0a 36 37 0d 0a 4e 55 4c 4c 0d 0a 37 37  LL..67..NULL..77
a920: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
a930: 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
a940: 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
a950: 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
a960: 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
a970: 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  s..query II rows
a980: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
a990: 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 2c 20  - col0 AS col1, 
a9a0: 2d 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 31 20  - col1 * - col1 
a9b0: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
a9c0: 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 36 35 36 31 0d  ----..-15..6561.
a9d0: 0a 2d 38 37 0d 0a 34 34 31 0d 0a 2d 39 37 0d 0a  .-87..441..-97..
a9e0: 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  1....query I row
a9f0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 32  sort..SELECT - 2
aa00: 35 20 2d 20 2d 20 39 31 20 41 53 20 63 6f 6c 31  5 - - 91 AS col1
aa10: 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
aa20: 20 4e 4f 54 20 2d 20 63 6f 6c 30 20 49 53 20 4e   NOT - col0 IS N
aa30: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 36 36 0d 0a 36  ULL..----..66..6
aa40: 36 0d 0a 36 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  6..66....onlyif 
aa50: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
aa60: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
aa70: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
aa80: 6f 72 74 20 6c 61 62 65 6c 2d 32 34 34 0d 0a 53  ort label-244..S
aa90: 45 4c 45 43 54 20 2d 20 2b 20 63 6f 6c 30 20 46  ELECT - + col0 F
aaa0: 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
aab0: 4f 54 20 2b 20 43 41 53 54 28 20 38 38 20 41 53  OT + CAST( 88 AS
aac0: 20 53 49 47 4e 45 44 20 29 20 3c 20 2d 20 2b 20   SIGNED ) < - + 
aad0: 31 36 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a 2d  16..----..-46..-
aae0: 36 34 0d 0a 2d 37 35 0d 0a 0d 0a 73 6b 69 70 69  64..-75....skipi
aaf0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
ab00: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
ab10: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
ab20: 32 34 34 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20  244..SELECT - + 
ab30: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 57  col0 FROM tab2 W
ab40: 48 45 52 45 20 4e 4f 54 20 2b 20 43 41 53 54 20  HERE NOT + CAST 
ab50: 28 20 38 38 20 41 53 20 49 4e 54 45 47 45 52 20  ( 88 AS INTEGER 
ab60: 29 20 3c 20 2d 20 2b 20 31 36 0d 0a 2d 2d 2d 2d  ) < - + 16..----
ab70: 0d 0a 2d 34 36 0d 0a 2d 36 34 0d 0a 2d 37 35 0d  ..-46..-64..-75.
ab80: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
ab90: 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  rt..SELECT - col
aba0: 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
abb0: 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20  or0 WHERE NOT ( 
abc0: 2d 20 63 6f 6c 31 20 29 20 3e 3d 20 4e 55 4c 4c  - col1 ) >= NULL
abd0: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
abe0: 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
abf0: 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
ac00: 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
ac10: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 34 36 0d 0a  sort label-246..
ac20: 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20  SELECT ALL col2 
ac30: 44 49 56 20 2d 20 2d 20 63 6f 6c 30 20 46 52 4f  DIV - - col0 FRO
ac40: 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
ac50: 2d 0d 0a 30 0d 0a 31 0d 0a 33 0d 0a 0d 0a 73 6b  -..0..1..3....sk
ac60: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
ac70: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
ac80: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
ac90: 65 6c 2d 32 34 36 0d 0a 53 45 4c 45 43 54 20 41  el-246..SELECT A
aca0: 4c 4c 20 63 6f 6c 32 20 2f 20 2d 20 2d 20 63 6f  LL col2 / - - co
acb0: 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l0 FROM tab0 cor
acc0: 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31 0d 0a 33  0..----..0..1..3
acd0: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
ace0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
acf0: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
ad00: 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f  0 WHERE NOT + co
ad10: 6c 31 20 3c 3d 20 2b 20 2d 20 63 6f 6c 31 0d 0a  l1 <= + - col1..
ad20: 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
ad30: 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37  ashing to c4b427
ad40: 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30  65dff94eaaa46040
ad50: 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75  e537fb43b7....qu
ad60: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
ad70: 45 4c 45 43 54 20 39 30 20 2a 20 2b 20 28 20 2b  ELECT 90 * + ( +
ad80: 20 2d 20 63 6f 6c 31 20 29 20 2b 20 2d 20 2d 20   - col1 ) + - - 
ad90: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
ada0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
adb0: 38 30 33 0d 0a 2d 37 32 37 35 0d 0a 37 0d 0a 0d  803..-7275..7...
adc0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
add0: 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 39 31 20  ..SELECT - + 91 
ade0: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
adf0: 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39  2 cor0..----..-9
ae00: 31 0d 0a 2d 39 31 0d 0a 2d 39 31 0d 0a 0d 0a 71  1..-91..-91....q
ae10: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
ae20: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
ae30: 2d 20 35 38 20 2a 20 2b 20 2d 20 63 6f 6c 30 20  - 58 * + - col0 
ae40: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
ae50: 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
ae60: 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 49 53 20  NOT ( NULL ) IS 
ae70: 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
ae80: 35 30 34 36 0d 0a 35 36 32 36 0d 0a 38 37 30 0d  5046..5626..870.
ae90: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
aea0: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
aeb0: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
aec0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 35 31 0d  wsort label-251.
aed0: 0a 53 45 4c 45 43 54 20 4d 41 58 28 20 63 6f 6c  .SELECT MAX( col
aee0: 31 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  1 ) AS col2 FROM
aef0: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 37 37 0d   tab2..----..77.
af00: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
af10: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
af20: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
af30: 74 20 6c 61 62 65 6c 2d 32 35 31 0d 0a 53 45 4c  t label-251..SEL
af40: 45 43 54 20 4d 41 58 20 28 20 63 6f 6c 31 20 29  ECT MAX ( col1 )
af50: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
af60: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 37 37 0d 0a 0d 0a  b2..----..77....
af70: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
af80: 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
af90: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
afa0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
afb0: 2d 32 35 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -252..SELECT ALL
afc0: 20 63 6f 6c 31 20 2d 20 2d 20 63 6f 6c 32 20 46   col1 - - col2 F
afd0: 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
afe0: 4f 54 20 28 20 2b 20 43 41 53 54 28 20 2d 20 2d  OT ( + CAST( - -
aff0: 20 63 6f 6c 32 20 41 53 20 53 49 47 4e 45 44 20   col2 AS SIGNED 
b000: 29 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ) ) IS NULL..---
b010: 2d 0d 0a 31 30 30 0d 0a 31 32 38 0d 0a 33 31 0d  -..100..128..31.
b020: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
b030: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
b040: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
b050: 74 20 6c 61 62 65 6c 2d 32 35 32 0d 0a 53 45 4c  t label-252..SEL
b060: 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2d 20 2d  ECT ALL col1 - -
b070: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
b080: 57 48 45 52 45 20 4e 4f 54 20 28 20 2b 20 43 41  WHERE NOT ( + CA
b090: 53 54 20 28 20 2d 20 2d 20 63 6f 6c 32 20 41 53  ST ( - - col2 AS
b0a0: 20 49 4e 54 45 47 45 52 20 29 20 29 20 49 53 20   INTEGER ) ) IS 
b0b0: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 30 30 0d  NULL..----..100.
b0c0: 0a 31 32 38 0d 0a 33 31 0d 0a 0d 0a 71 75 65 72  .128..31....quer
b0d0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
b0e0: 45 43 54 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f  ECT + col0 AS co
b0f0: 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  l0 FROM tab1 WHE
b100: 52 45 20 2b 20 63 6f 6c 32 20 2f 20 63 6f 6c 30  RE + col2 / col0
b110: 20 3c 3d 20 2d 20 2b 20 63 6f 6c 30 0d 0a 2d 2d   <= - + col0..--
b120: 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  --....query III 
b130: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
b140: 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  * FROM tab1 AS c
b150: 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 31 20 3e  or0 WHERE col1 >
b160: 20 2d 20 34 31 20 2a 20 33 35 0d 0a 2d 2d 2d 2d   - 41 * 35..----
b170: 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
b180: 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31 62  ng to c6c0a4111b
b190: 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65 34  36d04dbc811a11e4
b1a0: 64 35 34 63 61 64 0d 0a 0d 0a 6f 6e 6c 79 69 66  d54cad....onlyif
b1b0: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
b1c0: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
b1d0: 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
b1e0: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 35 35 0d 0a  sort label-255..
b1f0: 53 45 4c 45 43 54 20 63 6f 6c 31 20 2b 20 43 41  SELECT col1 + CA
b200: 53 54 28 20 2b 20 63 6f 6c 32 20 41 53 20 53 49  ST( + col2 AS SI
b210: 47 4e 45 44 20 29 20 2b 20 2d 20 2d 20 63 6f 6c  GNED ) + - - col
b220: 30 20 2a 20 2d 20 2b 20 28 20 2d 20 39 35 20 29  0 * - + ( - 95 )
b230: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
b240: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 35 33 0d 0a  r0..----..1553..
b250: 38 32 39 36 0d 0a 39 33 31 35 0d 0a 0d 0a 73 6b  8296..9315....sk
b260: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
b270: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
b280: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
b290: 65 6c 2d 32 35 35 0d 0a 53 45 4c 45 43 54 20 63  el-255..SELECT c
b2a0: 6f 6c 31 20 2b 20 43 41 53 54 20 28 20 2b 20 63  ol1 + CAST ( + c
b2b0: 6f 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20 29  ol2 AS INTEGER )
b2c0: 20 2b 20 2d 20 2d 20 63 6f 6c 30 20 2a 20 2d 20   + - - col0 * - 
b2d0: 2b 20 28 20 2d 20 39 35 20 29 20 46 52 4f 4d 20  + ( - 95 ) FROM 
b2e0: 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
b2f0: 2d 2d 0d 0a 31 35 35 33 0d 0a 38 32 39 36 0d 0a  --..1553..8296..
b300: 39 33 31 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  9315....onlyif m
b310: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
b320: 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
b330: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
b340: 72 74 20 6c 61 62 65 6c 2d 32 35 36 0d 0a 53 45  rt label-256..SE
b350: 4c 45 43 54 20 2d 20 43 41 53 54 28 20 2b 20 35  LECT - CAST( + 5
b360: 30 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20  0 AS SIGNED ) * 
b370: 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f  col2 AS col1 FRO
b380: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
b390: 2d 2d 2d 2d 0d 0a 2d 32 33 35 30 0d 0a 2d 34 39  ----..-2350..-49
b3a0: 35 30 0d 0a 2d 35 30 30 0d 0a 0d 0a 73 6b 69 70  50..-500....skip
b3b0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
b3c0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
b3d0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
b3e0: 2d 32 35 36 0d 0a 53 45 4c 45 43 54 20 2d 20 43  -256..SELECT - C
b3f0: 41 53 54 20 28 20 2b 20 35 30 20 41 53 20 49 4e  AST ( + 50 AS IN
b400: 54 45 47 45 52 20 29 20 2a 20 63 6f 6c 32 20 41  TEGER ) * col2 A
b410: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
b420: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
b430: 2d 32 33 35 30 0d 0a 2d 34 39 35 30 0d 0a 2d 35  -2350..-4950..-5
b440: 30 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  00....onlyif mys
b450: 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
b460: 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
b470: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
b480: 72 74 20 6c 61 62 65 6c 2d 32 35 37 0d 0a 53 45  rt label-257..SE
b490: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
b4a0: 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 20 57  FROM tab1 cor0 W
b4b0: 48 45 52 45 20 4e 4f 54 20 2d 20 43 41 53 54 28  HERE NOT - CAST(
b4c0: 20 2d 20 63 6f 6c 30 20 41 53 20 53 49 47 4e 45   - col0 AS SIGNE
b4d0: 44 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  D ) IS NOT NULL.
b4e0: 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
b4f0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
b500: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
b510: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
b520: 32 35 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  257..SELECT DIST
b530: 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  INCT * FROM tab1
b540: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
b550: 2d 20 43 41 53 54 20 28 20 2d 20 63 6f 6c 30 20  - CAST ( - col0 
b560: 41 53 20 49 4e 54 45 47 45 52 20 29 20 49 53 20  AS INTEGER ) IS 
b570: 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
b580: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
b590: 74 0d 0a 53 45 4c 45 43 54 20 28 20 2b 20 31 38  t..SELECT ( + 18
b5a0: 20 29 20 2a 20 37 35 20 46 52 4f 4d 20 74 61 62   ) * 75 FROM tab
b5b0: 31 0d 0a 2d 2d 2d 2d 0d 0a 31 33 35 30 0d 0a 31  1..----..1350..1
b5c0: 33 35 30 0d 0a 31 33 35 30 0d 0a 0d 0a 71 75 65  350..1350....que
b5d0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
b5e0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
b5f0: 6c 30 20 2b 20 2b 20 34 36 20 2a 20 2b 20 63 6f  l0 + + 46 * + co
b600: 6c 31 20 2a 20 2b 20 2b 20 63 6f 6c 31 20 41 53  l1 * + + col1 AS
b610: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d   col2 FROM tab2.
b620: 0a 2d 2d 2d 2d 0d 0a 31 31 39 36 39 32 0d 0a 32  .----..119692..2
b630: 30 36 35 36 39 0d 0a 32 37 32 37 39 38 0d 0a 0d  06569..272798...
b640: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
b650: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
b660: 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  NCT * FROM tab1 
b670: 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e  WHERE NOT NULL N
b680: 4f 54 20 42 45 54 57 45 45 4e 20 28 20 38 36 20  OT BETWEEN ( 86 
b690: 29 20 41 4e 44 20 2b 20 63 6f 6c 30 0d 0a 2d 2d  ) AND + col0..--
b6a0: 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
b6b0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
b6c0: 4c 20 2d 20 35 30 20 2d 20 2b 20 31 37 20 41 53  L - 50 - + 17 AS
b6d0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
b6e0: 0a 2d 2d 2d 2d 0d 0a 2d 36 37 0d 0a 2d 36 37 0d  .----..-67..-67.
b6f0: 0a 2d 36 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  .-67....skipif p
b700: 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
b710: 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
b720: 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
b730: 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
b740: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
b750: 0d 0a 53 45 4c 45 43 54 20 2d 20 37 39 20 63 6f  ..SELECT - 79 co
b760: 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
b770: 2d 2d 0d 0a 2d 37 39 0d 0a 2d 37 39 0d 0a 2d 37  --..-79..-79..-7
b780: 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  9....query II ro
b790: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
b7a0: 4c 20 34 31 20 41 53 20 63 6f 6c 31 2c 20 63 6f  L 41 AS col1, co
b7b0: 6c 30 20 2a 20 2d 20 63 6f 6c 30 20 46 52 4f 4d  l0 * - col0 FROM
b7c0: 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 34 31 0d   tab0..----..41.
b7d0: 0a 2d 32 32 35 0d 0a 34 31 0d 0a 2d 37 35 36 39  .-225..41..-7569
b7e0: 0d 0a 34 31 0d 0a 2d 39 34 30 39 0d 0a 0d 0a 6f  ..41..-9409....o
b7f0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
b800: 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
b810: 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
b820: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
b830: 2d 32 36 34 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  -264..SELECT col
b840: 30 20 2b 20 63 6f 6c 32 20 44 49 56 20 2d 20 31  0 + col2 DIV - 1
b850: 31 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31  1 + col1 AS col1
b860: 2c 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 36 30 20  , + col2 * - 60 
b870: 2a 20 31 36 20 41 53 20 63 6f 6c 32 20 46 52 4f  * 16 AS col2 FRO
b880: 4d 20 74 61 62 31 20 57 48 45 52 45 20 63 6f 6c  M tab1 WHERE col
b890: 32 20 3c 3e 20 39 34 0d 0a 2d 2d 2d 2d 0d 0a 31  2 <> 94..----..1
b8a0: 33 32 0d 0a 2d 36 35 32 38 30 0d 0a 35 37 0d 0a  32..-65280..57..
b8b0: 2d 39 32 31 36 30 0d 0a 38 35 0d 0a 2d 35 36 36  -92160..85..-566
b8c0: 34 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  40....skipif mys
b8d0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
b8e0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
b8f0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 36 34 0d  wsort label-264.
b900: 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2b 20 63  .SELECT col0 + c
b910: 6f 6c 32 20 2f 20 2d 20 31 31 20 2b 20 63 6f 6c  ol2 / - 11 + col
b920: 31 20 41 53 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c  1 AS col1, + col
b930: 32 20 2a 20 2d 20 36 30 20 2a 20 31 36 20 41 53  2 * - 60 * 16 AS
b940: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
b950: 57 48 45 52 45 20 63 6f 6c 32 20 3c 3e 20 39 34  WHERE col2 <> 94
b960: 0d 0a 2d 2d 2d 2d 0d 0a 31 33 32 0d 0a 2d 36 35  ..----..132..-65
b970: 32 38 30 0d 0a 35 37 0d 0a 2d 39 32 31 36 30 0d  280..57..-92160.
b980: 0a 38 35 0d 0a 2d 35 36 36 34 30 0d 0a 0d 0a 71  .85..-56640....q
b990: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
b9a0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28 20 35 36  .SELECT ALL ( 56
b9b0: 20 29 20 2b 20 32 33 2c 20 2b 20 63 6f 6c 30 20   ) + 23, + col0 
b9c0: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
b9d0: 30 0d 0a 2d 2d 2d 2d 0d 0a 37 39 0d 0a 31 35 0d  0..----..79..15.
b9e0: 0a 37 39 0d 0a 38 37 0d 0a 37 39 0d 0a 39 37 0d  .79..87..79..97.
b9f0: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
ba00: 72 74 0d 0a 53 45 4c 45 43 54 20 36 34 20 2d 20  rt..SELECT 64 - 
ba10: 2d 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30  - + col0 AS col0
ba20: 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d   FROM tab2 cor0.
ba30: 0a 2d 2d 2d 2d 0d 0a 31 31 30 0d 0a 31 32 38 0d  .----..110..128.
ba40: 0a 31 33 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .139....query I 
ba50: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
ba60: 2d 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 30 20  - col1 + + col0 
ba70: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
ba80: 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
ba90: 4e 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e  NULL NOT BETWEEN
baa0: 20 38 20 41 4e 44 20 2d 20 63 6f 6c 30 0d 0a 2d   8 AND - col0..-
bab0: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
bac0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
bad0: 4c 4c 20 2d 20 2b 20 63 6f 6c 30 20 2a 20 2b 20  LL - + col0 * + 
bae0: 36 38 20 2a 20 2d 20 63 6f 6c 31 20 46 52 4f 4d  68 * - col1 FROM
baf0: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
bb00: 2d 2d 2d 0d 0a 31 35 39 35 32 38 0d 0a 33 33 35  ---..159528..335
bb10: 31 30 34 0d 0a 33 34 31 37 30 30 0d 0a 0d 0a 6f  104..341700....o
bb20: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
bb30: 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
bb40: 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
bb50: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
bb60: 32 36 39 0d 0a 53 45 4c 45 43 54 20 2b 20 34 39  269..SELECT + 49
bb70: 20 2d 20 2b 20 43 41 53 54 28 20 63 6f 6c 32 20   - + CAST( col2 
bb80: 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63  AS SIGNED ) AS c
bb90: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
bba0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 30   cor0..----..-50
bbb0: 0d 0a 32 0d 0a 33 39 0d 0a 0d 0a 73 6b 69 70 69  ..2..39....skipi
bbc0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
bbd0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
bbe0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
bbf0: 32 36 39 0d 0a 53 45 4c 45 43 54 20 2b 20 34 39  269..SELECT + 49
bc00: 20 2d 20 2b 20 43 41 53 54 20 28 20 63 6f 6c 32   - + CAST ( col2
bc10: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53   AS INTEGER ) AS
bc20: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
bc30: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
bc40: 35 30 0d 0a 32 0d 0a 33 39 0d 0a 0d 0a 71 75 65  50..2..39....que
bc50: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
bc60: 4c 45 43 54 20 2d 20 2d 20 32 35 20 2b 20 63 6f  LECT - - 25 + co
bc70: 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l1 AS col2 FROM 
bc80: 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
bc90: 0a 33 30 0d 0a 33 39 0d 0a 37 32 0d 0a 0d 0a 71  .30..39..72....q
bca0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
bcb0: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 63  SELECT ALL + + c
bcc0: 6f 6c 31 20 2d 20 36 30 20 41 53 20 63 6f 6c 32  ol1 - 60 AS col2
bcd0: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
bce0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 39 0d 0a 2d  r0..----..-39..-
bcf0: 35 39 0d 0a 32 31 0d 0a 0d 0a 71 75 65 72 79 20  59..21....query 
bd00: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
bd10: 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
bd20: 57 48 45 52 45 20 2d 20 63 6f 6c 30 20 2f 20 63  WHERE - col0 / c
bd30: 6f 6c 31 20 2f 20 2d 20 63 6f 6c 31 20 2b 20 2b  ol1 / - col1 + +
bd40: 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c   col1 IS NOT NUL
bd50: 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  L..----..9 value
bd60: 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62  s hashing to c4b
bd70: 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36  42765dff94eaaa46
bd80: 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d  040e537fb43b7...
bd90: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
bda0: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
bdb0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
bdc0: 6f 72 74 20 6c 61 62 65 6c 2d 32 37 33 0d 0a 53  ort label-273..S
bdd0: 45 4c 45 43 54 20 41 4c 4c 20 2b 20 53 55 4d 28  ELECT ALL + SUM(
bde0: 20 2d 20 35 33 20 29 20 41 53 20 63 6f 6c 32 20   - 53 ) AS col2 
bdf0: 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 43  FROM tab0 cor0 C
be00: 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 63  ROSS JOIN tab0 c
be10: 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 37 37 0d  or1..----..-477.
be20: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
be30: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
be40: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
be50: 74 20 6c 61 62 65 6c 2d 32 37 33 0d 0a 53 45 4c  t label-273..SEL
be60: 45 43 54 20 41 4c 4c 20 2b 20 53 55 4d 20 28 20  ECT ALL + SUM ( 
be70: 2d 20 35 33 20 29 20 41 53 20 63 6f 6c 32 20 46  - 53 ) AS col2 F
be80: 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 43 52  ROM tab0 cor0 CR
be90: 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 63 6f  OSS JOIN tab0 co
bea0: 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 37 37 0d 0a  r1..----..-477..
beb0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
bec0: 74 0d 0a 53 45 4c 45 43 54 20 2b 20 36 30 20 46  t..SELECT + 60 F
bed0: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
bee0: 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30   CROSS JOIN tab0
bef0: 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
bf00: 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
bf10: 20 74 6f 20 61 39 37 35 36 31 65 31 37 65 63 61   to a97561e17eca
bf20: 61 36 31 38 32 32 37 63 37 35 61 35 37 62 32 36  a618227c75a57b26
bf30: 38 66 33 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  8f33....onlyif m
bf40: 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
bf50: 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
bf60: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
bf70: 72 74 20 6c 61 62 65 6c 2d 32 37 35 0d 0a 53 45  rt label-275..SE
bf80: 4c 45 43 54 20 2d 20 2d 20 63 6f 6c 32 20 2a 20  LECT - - col2 * 
bf90: 2d 20 63 6f 6c 32 20 2b 20 63 6f 6c 32 20 2b 20  - col2 + col2 + 
bfa0: 30 20 44 49 56 20 63 6f 6c 30 20 41 53 20 63 6f  0 DIV col0 AS co
bfb0: 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
bfc0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 34 32  cor0..----..-342
bfd0: 32 0d 0a 2d 34 35 35 36 0d 0a 2d 39 31 32 30 0d  2..-4556..-9120.
bfe0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
bff0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
c000: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
c010: 74 20 6c 61 62 65 6c 2d 32 37 35 0d 0a 53 45 4c  t label-275..SEL
c020: 45 43 54 20 2d 20 2d 20 63 6f 6c 32 20 2a 20 2d  ECT - - col2 * -
c030: 20 63 6f 6c 32 20 2b 20 63 6f 6c 32 20 2b 20 30   col2 + col2 + 0
c040: 20 2f 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20   / col0 AS col2 
c050: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
c060: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 34 32 32 0d 0a  0..----..-3422..
c070: 2d 34 35 35 36 0d 0a 2d 39 31 32 30 0d 0a 0d 0a  -4556..-9120....
c080: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
c090: 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
c0a0: 20 74 61 62 31 20 63 6f 72 30 20 57 48 45 52 45   tab1 cor0 WHERE
c0b0: 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 42 45   NOT ( NULL ) BE
c0c0: 54 57 45 45 4e 20 2d 20 63 6f 6c 30 20 41 4e 44  TWEEN - col0 AND
c0d0: 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 2b 20 63 6f   - col1 * - + co
c0e0: 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  l0..----....quer
c0f0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
c100: 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20 41 53 20  ECT ALL col2 AS 
c110: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
c120: 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
c130: 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c   NULL IS NOT NUL
c140: 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 36 38 0d  L..----..59..68.
c150: 0a 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .96....onlyif my
c160: 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
c170: 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
c180: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
c190: 74 20 6c 61 62 65 6c 2d 32 37 38 0d 0a 53 45 4c  t label-278..SEL
c1a0: 45 43 54 20 35 38 20 44 49 56 20 2b 20 63 6f 6c  ECT 58 DIV + col
c1b0: 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  1 AS col0 FROM t
c1c0: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
c1d0: 2d 0d 0a 31 0d 0a 31 31 0d 0a 34 0d 0a 0d 0a 73  -..1..11..4....s
c1e0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
c1f0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
c200: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
c210: 62 65 6c 2d 32 37 38 0d 0a 53 45 4c 45 43 54 20  bel-278..SELECT 
c220: 35 38 20 2f 20 2b 20 63 6f 6c 31 20 41 53 20 63  58 / + col1 AS c
c230: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
c240: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a   cor0..----..1..
c250: 31 31 0d 0a 34 0d 0a 0d 0a 71 75 65 72 79 20 49  11..4....query I
c260: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
c270: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41  CT * FROM tab2 A
c280: 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
c290: 20 2b 20 37 34 20 4e 4f 54 20 42 45 54 57 45 45   + 74 NOT BETWEE
c2a0: 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c 0d  N NULL AND NULL.
c2b0: 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
c2c0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
c2d0: 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 2a 20 2d 20   ALL + col1 * - 
c2e0: 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 32 20 46 52  col1 * + col2 FR
c2f0: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
c300: 0a 2d 2d 2d 2d 0d 0a 2d 33 30 38 33 36 37 0d 0a  .----..-308367..
c310: 2d 34 34 31 30 0d 0a 2d 39 39 0d 0a 0d 0a 71 75  -4410..-99....qu
c320: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
c330: 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 2c 20  .SELECT + col1, 
c340: 31 35 2c 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31  15, col1 AS col1
c350: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
c360: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  r0..----..9 valu
c370: 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 38 31  es hashing to 81
c380: 38 39 33 63 35 61 32 37 30 66 61 66 34 32 39 63  893c5a270faf429c
c390: 36 33 66 34 39 34 64 63 66 62 64 63 39 39 0d 0a  63f494dcfbdc99..
c3a0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
c3b0: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
c3c0: 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  x: ..query II ro
c3d0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38 32 0d  wsort label-282.
c3e0: 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a  .SELECT COUNT( *
c3f0: 20 29 20 41 53 20 63 6f 6c 31 2c 20 2b 20 33 38   ) AS col1, + 38
c400: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
c410: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 33 38 0d  r0..----..3..38.
c420: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
c430: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
c440: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
c450: 72 74 20 6c 61 62 65 6c 2d 32 38 32 0d 0a 53 45  rt label-282..SE
c460: 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29  LECT COUNT ( * )
c470: 20 41 53 20 63 6f 6c 31 2c 20 2b 20 33 38 20 46   AS col1, + 38 F
c480: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
c490: 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 33 38 0d 0a 0d  ..----..3..38...
c4a0: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
c4b0: 74 0d 0a 53 45 4c 45 43 54 20 2b 20 31 30 20 41  t..SELECT + 10 A
c4c0: 53 20 63 6f 6c 32 2c 20 28 20 63 6f 6c 31 20 29  S col2, ( col1 )
c4d0: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
c4e0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 31 34  r0..----..10..14
c4f0: 0d 0a 31 30 0d 0a 34 37 0d 0a 31 30 0d 0a 35 0d  ..10..47..10..5.
c500: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
c510: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
c520: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
c530: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38 34 0d  wsort label-284.
c540: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
c550: 20 2b 20 4d 49 4e 28 20 44 49 53 54 49 4e 43 54   + MIN( DISTINCT
c560: 20 32 39 20 29 20 41 53 20 63 6f 6c 31 20 46 52   29 ) AS col1 FR
c570: 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d  OM tab2 cor0..--
c580: 2d 2d 0d 0a 32 39 0d 0a 0d 0a 73 6b 69 70 69 66  --..29....skipif
c590: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
c5a0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
c5b0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
c5c0: 38 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  84..SELECT DISTI
c5d0: 4e 43 54 20 2b 20 4d 49 4e 20 28 20 44 49 53 54  NCT + MIN ( DIST
c5e0: 49 4e 43 54 20 32 39 20 29 20 41 53 20 63 6f 6c  INCT 29 ) AS col
c5f0: 31 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  1 FROM tab2 cor0
c600: 0d 0a 2d 2d 2d 2d 0d 0a 32 39 0d 0a 0d 0a 71 75  ..----..29....qu
c610: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
c620: 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 63  SELECT ALL - - c
c630: 6f 6c 31 20 41 53 20 63 6f 6c 30 2c 20 2b 20 34  ol1 AS col0, + 4
c640: 37 20 2a 20 2d 20 2b 20 63 6f 6c 30 20 2b 20 2b  7 * - + col0 + +
c650: 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52   col0 AS col1 FR
c660: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
c670: 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 2d 32 33 34 36  .----..14..-2346
c680: 0d 0a 34 37 0d 0a 2d 34 31 38 36 0d 0a 35 0d 0a  ..47..-4186..5..
c690: 2d 33 39 31 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -3910....onlyif 
c6a0: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
c6b0: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
c6c0: 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20  : DECIMAL type: 
c6d0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
c6e0: 74 20 6c 61 62 65 6c 2d 32 38 36 0d 0a 53 45 4c  t label-286..SEL
c6f0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43  ECT DISTINCT + C
c700: 41 53 54 28 20 2b 20 2b 20 43 41 53 54 28 20 4e  AST( + + CAST( N
c710: 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
c720: 41 53 20 44 45 43 49 4d 41 4c 20 29 20 41 53 20  AS DECIMAL ) AS 
c730: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
c740: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
c750: 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
c760: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
c770: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
c780: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38 36 0d 0a  sort label-286..
c790: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
c7a0: 2b 20 43 41 53 54 20 28 20 2b 20 2b 20 43 41 53  + CAST ( + + CAS
c7b0: 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
c7c0: 47 45 52 20 29 20 41 53 20 52 45 41 4c 20 29 20  GER ) AS REAL ) 
c7d0: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
c7e0: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
c7f0: 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .NULL....onlyif 
c800: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
c810: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
c820: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
c830: 6c 2d 32 38 37 0d 0a 53 45 4c 45 43 54 20 41 4c  l-287..SELECT AL
c840: 4c 20 4d 41 58 28 20 41 4c 4c 20 2b 20 36 39 20  L MAX( ALL + 69 
c850: 29 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  ) FROM tab1 cor0
c860: 0d 0a 2d 2d 2d 2d 0d 0a 36 39 0d 0a 0d 0a 73 6b  ..----..69....sk
c870: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
c880: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
c890: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
c8a0: 65 6c 2d 32 38 37 0d 0a 53 45 4c 45 43 54 20 41  el-287..SELECT A
c8b0: 4c 4c 20 4d 41 58 20 28 20 41 4c 4c 20 2b 20 36  LL MAX ( ALL + 6
c8c0: 39 20 29 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  9 ) FROM tab1 co
c8d0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 39 0d 0a 0d 0a  r0..----..69....
c8e0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
c8f0: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
c900: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
c910: 72 74 20 6c 61 62 65 6c 2d 32 38 38 0d 0a 53 45  rt label-288..SE
c920: 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20  LECT ALL COUNT( 
c930: 41 4c 4c 20 2b 20 63 6f 6c 32 20 29 20 46 52 4f  ALL + col2 ) FRO
c940: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  M tab1..----..3.
c950: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
c960: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
c970: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
c980: 74 20 6c 61 62 65 6c 2d 32 38 38 0d 0a 53 45 4c  t label-288..SEL
c990: 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20 28 20  ECT ALL COUNT ( 
c9a0: 41 4c 4c 20 2b 20 63 6f 6c 32 20 29 20 46 52 4f  ALL + col2 ) FRO
c9b0: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  M tab1..----..3.
c9c0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
c9d0: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
c9e0: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
c9f0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38 39 0d  wsort label-289.
ca00: 0a 53 45 4c 45 43 54 20 2d 20 53 55 4d 28 20 2b  .SELECT - SUM( +
ca10: 20 63 6f 6c 32 20 29 20 63 6f 6c 32 20 46 52 4f   col2 ) col2 FRO
ca20: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  M tab1..----..-2
ca30: 32 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  23....skipif mys
ca40: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
ca50: 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  ble..skipif post
ca60: 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
ca70: 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
ca80: 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
ca90: 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
caa0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
cab0: 62 65 6c 2d 32 38 39 0d 0a 53 45 4c 45 43 54 20  bel-289..SELECT 
cac0: 2d 20 53 55 4d 20 28 20 2b 20 63 6f 6c 32 20 29  - SUM ( + col2 )
cad0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
cae0: 0a 2d 2d 2d 2d 0d 0a 2d 32 32 33 0d 0a 0d 0a 6f  .----..-223....o
caf0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
cb00: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
cb10: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
cb20: 72 74 20 6c 61 62 65 6c 2d 32 39 30 0d 0a 53 45  rt label-290..SE
cb30: 4c 45 43 54 20 38 30 20 2a 20 43 4f 55 4e 54 28  LECT 80 * COUNT(
cb40: 20 2a 20 29 2c 20 2d 20 33 31 20 41 53 20 63 6f   * ), - 31 AS co
cb50: 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
cb60: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 34 30 0d  cor0..----..240.
cb70: 0a 2d 33 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-31....skipif m
cb80: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
cb90: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
cba0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 39  rowsort label-29
cbb0: 30 0d 0a 53 45 4c 45 43 54 20 38 30 20 2a 20 43  0..SELECT 80 * C
cbc0: 4f 55 4e 54 20 28 20 2a 20 29 2c 20 2d 20 33 31  OUNT ( * ), - 31
cbd0: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
cbe0: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
cbf0: 0d 0a 32 34 30 0d 0a 2d 33 31 0d 0a 0d 0a 6f 6e  ..240..-31....on
cc00: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
cc10: 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
cc20: 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
cc30: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
cc40: 39 31 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20  91..SELECT col1 
cc50: 2a 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 63 6f 6c  * + - col0 * col
cc60: 32 20 44 49 56 20 2b 20 63 6f 6c 32 20 41 53 20  2 DIV + col2 AS 
cc70: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41  col2 FROM tab1 A
cc80: 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
cc90: 20 28 20 4e 55 4c 4c 20 29 20 49 53 20 4e 4f 54   ( NULL ) IS NOT
cca0: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 32   NULL..----..-42
ccb0: 35 0d 0a 2d 34 32 37 37 0d 0a 2d 37 31 34 0d 0a  5..-4277..-714..
ccc0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
ccd0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
cce0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
ccf0: 20 6c 61 62 65 6c 2d 32 39 31 0d 0a 53 45 4c 45   label-291..SELE
cd00: 43 54 20 63 6f 6c 31 20 2a 20 2b 20 2d 20 63 6f  CT col1 * + - co
cd10: 6c 30 20 2a 20 63 6f 6c 32 20 2f 20 2b 20 63 6f  l0 * col2 / + co
cd20: 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l2 AS col2 FROM 
cd30: 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
cd40: 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20  RE NOT ( NULL ) 
cd50: 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
cd60: 2d 0d 0a 2d 34 32 35 0d 0a 2d 34 32 37 37 0d 0a  -..-425..-4277..
cd70: 2d 37 31 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49  -714....query II
cd80: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
cd90: 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
cda0: 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
cdb0: 4e 4f 54 20 2d 20 36 31 20 2a 20 2d 20 37 31 20  NOT - 61 * - 71 
cdc0: 2a 20 2b 20 34 20 2a 20 2b 20 2b 20 63 6f 6c 30  * + 4 * + + col0
cdd0: 20 3c 20 39 38 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   < 98..----..9 v
cde0: 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
cdf0: 20 63 36 63 30 61 34 31 31 31 62 33 36 64 30 34   c6c0a4111b36d04
ce00: 64 62 63 38 31 31 61 31 31 65 34 64 35 34 63 61  dbc811a11e4d54ca
ce10: 64 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  d....onlyif mysq
ce20: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
ce30: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
ce40: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 39  rowsort label-29
ce50: 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  3..SELECT DISTIN
ce60: 43 54 20 4d 41 58 28 20 41 4c 4c 20 63 6f 6c 30  CT MAX( ALL col0
ce70: 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   ) col0 FROM tab
ce80: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
ce90: 0a 39 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .97....skipif my
cea0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
ceb0: 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
cec0: 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
ced0: 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
cee0: 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
cef0: 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
cf00: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
cf10: 61 62 65 6c 2d 32 39 33 0d 0a 53 45 4c 45 43 54  abel-293..SELECT
cf20: 20 44 49 53 54 49 4e 43 54 20 4d 41 58 20 28 20   DISTINCT MAX ( 
cf30: 41 4c 4c 20 63 6f 6c 30 20 29 20 63 6f 6c 30 20  ALL col0 ) col0 
cf40: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
cf50: 30 0d 0a 2d 2d 2d 2d 0d 0a 39 37 0d 0a 0d 0a 6f  0..----..97....o
cf60: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
cf70: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
cf80: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
cf90: 74 20 6c 61 62 65 6c 2d 32 39 34 0d 0a 53 45 4c  t label-294..SEL
cfa0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43  ECT DISTINCT - C
cfb0: 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c  OUNT( * ) AS col
cfc0: 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
cfd0: 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f  or0 WHERE NOT co
cfe0: 6c 31 20 2f 20 2d 20 2b 20 63 6f 6c 32 20 2b 20  l1 / - + col2 + 
cff0: 2b 20 2b 20 28 20 32 35 20 29 20 3e 3d 20 2d 20  + + ( 25 ) >= - 
d000: 2d 20 63 6f 6c 31 20 2a 20 63 6f 6c 32 20 2b 20  - col1 * col2 + 
d010: 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  - col1..----..-3
d020: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
d030: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
d040: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
d050: 72 74 20 6c 61 62 65 6c 2d 32 39 34 0d 0a 53 45  rt label-294..SE
d060: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
d070: 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63  COUNT ( * ) AS c
d080: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
d090: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
d0a0: 63 6f 6c 31 20 2f 20 2d 20 2b 20 63 6f 6c 32 20  col1 / - + col2 
d0b0: 2b 20 2b 20 2b 20 28 20 32 35 20 29 20 3e 3d 20  + + + ( 25 ) >= 
d0c0: 2d 20 2d 20 63 6f 6c 31 20 2a 20 63 6f 6c 32 20  - - col1 * col2 
d0d0: 2b 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a  + - col1..----..
d0e0: 2d 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  -3....query II r
d0f0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
d100: 6f 6c 31 2c 20 35 38 20 2b 20 2d 20 2b 20 63 6f  ol1, 58 + - + co
d110: 6c 31 20 2b 20 33 39 20 46 52 4f 4d 20 74 61 62  l1 + 39 FROM tab
d120: 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 39 36 0d 0a  0..----..1..96..
d130: 32 31 0d 0a 37 36 0d 0a 38 31 0d 0a 31 36 0d 0a  21..76..81..16..
d140: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
d150: 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  rt..SELECT - col
d160: 31 20 2a 20 2b 20 2d 20 32 35 20 2a 20 2b 20 2b  1 * + - 25 * + +
d170: 20 37 38 20 41 53 20 63 6f 6c 31 2c 20 2d 20 63   78 AS col1, - c
d180: 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol0 AS col1 FROM
d190: 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 37   tab0..----..157
d1a0: 39 35 30 0d 0a 2d 31 35 0d 0a 31 39 35 30 0d 0a  950..-15..1950..
d1b0: 2d 39 37 0d 0a 34 30 39 35 30 0d 0a 2d 38 37 0d  -97..40950..-87.
d1c0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
d1d0: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
d1e0: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
d1f0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 39 37 0d  wsort label-297.
d200: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f  .SELECT ALL - CO
d210: 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
d220: 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
d230: 20 28 20 4e 55 4c 4c 20 29 20 49 53 20 4e 4f 54   ( NULL ) IS NOT
d240: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   NULL..----..0..
d250: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
d260: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
d270: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
d280: 20 6c 61 62 65 6c 2d 32 39 37 0d 0a 53 45 4c 45   label-297..SELE
d290: 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 20 28  CT ALL - COUNT (
d2a0: 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41   * ) FROM tab0 A
d2b0: 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e  S cor0 WHERE ( N
d2c0: 55 4c 4c 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c  ULL ) IS NOT NUL
d2d0: 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75  L..----..0....qu
d2e0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
d2f0: 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32  ELECT ALL - col2
d300: 20 2b 20 2d 20 34 30 20 2a 20 2d 20 2d 20 38 38   + - 40 * - - 88
d310: 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c   + + col0 AS col
d320: 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
d330: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 34 34 33  or0..----..-3443
d340: 0d 0a 2d 33 35 32 32 0d 0a 2d 33 35 35 32 0d 0a  ..-3522..-3552..
d350: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
d360: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
d370: 43 54 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 2d 20  CT + col1 + - - 
d380: 63 6f 6c 30 20 2a 20 2b 20 28 20 2d 20 2b 20 63  col0 * + ( - + c
d390: 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ol0 ) FROM tab2 
d3a0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
d3b0: 32 30 36 35 0d 0a 2d 34 30 31 39 0d 0a 2d 35 35  2065..-4019..-55
d3c0: 35 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  58....query I ro
d3d0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
d3e0: 4c 20 2d 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 63  L - + col1 + + c
d3f0: 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol1 AS col0 FROM
d400: 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
d410: 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 6f 6e 6c  ..0..0..0....onl
d420: 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
d430: 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
d440: 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
d450: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 30  rowsort label-30
d460: 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  1..SELECT DISTIN
d470: 43 54 20 2b 20 37 39 20 44 49 56 20 2b 20 2d 20  CT + 79 DIV + - 
d480: 39 30 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d  90 + - col0 FROM
d490: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36   tab2..----..-46
d4a0: 0d 0a 2d 36 34 0d 0a 2d 37 35 0d 0a 0d 0a 73 6b  ..-64..-75....sk
d4b0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
d4c0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
d4d0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
d4e0: 65 6c 2d 33 30 31 0d 0a 53 45 4c 45 43 54 20 44  el-301..SELECT D
d4f0: 49 53 54 49 4e 43 54 20 2b 20 37 39 20 2f 20 2b  ISTINCT + 79 / +
d500: 20 2d 20 39 30 20 2b 20 2d 20 63 6f 6c 30 20 46   - 90 + - col0 F
d510: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
d520: 2d 34 36 0d 0a 2d 36 34 0d 0a 2d 37 35 0d 0a 0d  -46..-64..-75...
d530: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
d540: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
d550: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
d560: 6f 72 74 20 6c 61 62 65 6c 2d 33 30 32 0d 0a 53  ort label-302..S
d570: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
d580: 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2d 20   COUNT( * ) * - 
d590: 2b 20 31 35 20 46 52 4f 4d 20 74 61 62 31 0d 0a  + 15 FROM tab1..
d5a0: 2d 2d 2d 2d 0d 0a 34 35 0d 0a 0d 0a 73 6b 69 70  ----..45....skip
d5b0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
d5c0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
d5d0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
d5e0: 2d 33 30 32 0d 0a 53 45 4c 45 43 54 20 44 49 53  -302..SELECT DIS
d5f0: 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 20 28 20  TINCT - COUNT ( 
d600: 2a 20 29 20 2a 20 2d 20 2b 20 31 35 20 46 52 4f  * ) * - + 15 FRO
d610: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 34 35  M tab1..----..45
d620: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
d630: 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
d640: 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
d650: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
d660: 61 62 65 6c 2d 33 30 33 0d 0a 53 45 4c 45 43 54  abel-303..SELECT
d670: 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 32 20 2b   col1 + + col2 +
d680: 20 2d 20 2d 20 30 20 2d 20 2b 20 63 6f 6c 32 20   - - 0 - + col2 
d690: 44 49 56 20 28 20 2b 20 34 35 20 29 20 41 53 20  DIV ( + 45 ) AS 
d6a0: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col1 FROM tab2..
d6b0: 2d 2d 2d 2d 0d 0a 31 31 37 0d 0a 31 32 34 0d 0a  ----..117..124..
d6c0: 37 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  74....skipif mys
d6d0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
d6e0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
d6f0: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 30 33 0d 0a  sort label-303..
d700: 53 45 4c 45 43 54 20 63 6f 6c 31 20 2b 20 2b 20  SELECT col1 + + 
d710: 63 6f 6c 32 20 2b 20 2d 20 2d 20 30 20 2d 20 2b  col2 + - - 0 - +
d720: 20 63 6f 6c 32 20 2f 20 28 20 2b 20 34 35 20 29   col2 / ( + 45 )
d730: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
d740: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 31 37 0d 0a 31  b2..----..117..1
d750: 32 34 0d 0a 37 34 0d 0a 0d 0a 71 75 65 72 79 20  24..74....query 
d760: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
d770: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
d780: 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
d790: 55 4c 4c 20 3c 3d 20 2d 20 33 34 20 2b 20 2d 20  ULL <= - 34 + - 
d7a0: 2d 20 36 33 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  - 63..----....qu
d7b0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
d7c0: 45 4c 45 43 54 20 41 4c 4c 20 2b 20 37 20 2d 20  ELECT ALL + 7 - 
d7d0: 2d 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 32 20  - col2 + - col2 
d7e0: 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
d7f0: 0a 37 0d 0a 37 0d 0a 37 0d 0a 0d 0a 6f 6e 6c 79  .7..7..7....only
d800: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
d810: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
d820: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
d830: 61 62 65 6c 2d 33 30 36 0d 0a 53 45 4c 45 43 54  abel-306..SELECT
d840: 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 28 20 2a 20   ALL + COUNT( * 
d850: 29 20 2a 20 2b 20 39 20 46 52 4f 4d 20 74 61 62  ) * + 9 FROM tab
d860: 31 0d 0a 2d 2d 2d 2d 0d 0a 32 37 0d 0a 0d 0a 73  1..----..27....s
d870: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
d880: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
d890: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
d8a0: 62 65 6c 2d 33 30 36 0d 0a 53 45 4c 45 43 54 20  bel-306..SELECT 
d8b0: 41 4c 4c 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  ALL + COUNT ( * 
d8c0: 29 20 2a 20 2b 20 39 20 46 52 4f 4d 20 74 61 62  ) * + 9 FROM tab
d8d0: 31 0d 0a 2d 2d 2d 2d 0d 0a 32 37 0d 0a 0d 0a 71  1..----..27....q
d8e0: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
d8f0: 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
d900: 74 61 62 32 20 57 48 45 52 45 20 63 6f 6c 31 20  tab2 WHERE col1 
d910: 3e 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  > col1..----....
d920: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
d930: 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2b  .SELECT + col1 +
d940: 20 2b 20 28 20 2d 20 2b 20 39 20 29 20 41 53 20   + ( - + 9 ) AS 
d950: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col1 FROM tab2..
d960: 2d 2d 2d 2d 0d 0a 34 32 0d 0a 35 38 0d 0a 36 38  ----..42..58..68
d970: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
d980: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
d990: 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
d9a0: 2b 20 32 34 20 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d  + 24 > NULL..---
d9b0: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  -....query II ro
d9c0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
d9d0: 53 54 49 4e 43 54 20 32 31 20 2a 20 2b 20 38 33  STINCT 21 * + 83
d9e0: 2c 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30  , - col2 AS col0
d9f0: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
da00: 0d 0a 31 37 34 33 0d 0a 2d 32 33 0d 0a 31 37 34  ..1743..-23..174
da10: 33 0d 0a 2d 34 30 0d 0a 31 37 34 33 0d 0a 2d 35  3..-40..1743..-5
da20: 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  8....query I row
da30: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63  sort..SELECT - c
da40: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
da50: 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 63 6f   cor0 WHERE + co
da60: 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l0 IS NULL..----
da70: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
da80: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
da90: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
daa0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 31 32  owsort label-312
dab0: 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 53 55 4d  ..SELECT + + SUM
dac0: 28 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 29 20 46  ( ALL + col0 ) F
dad0: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
dae0: 0d 0a 2d 2d 2d 2d 0d 0a 31 39 39 0d 0a 0d 0a 73  ..----..199....s
daf0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
db00: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
db10: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
db20: 62 65 6c 2d 33 31 32 0d 0a 53 45 4c 45 43 54 20  bel-312..SELECT 
db30: 2b 20 2b 20 53 55 4d 20 28 20 41 4c 4c 20 2b 20  + + SUM ( ALL + 
db40: 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 30  col0 ) FROM tab0
db50: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
db60: 31 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  199....onlyif my
db70: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
db80: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
db90: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
dba0: 33 31 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  313..SELECT DIST
dbb0: 49 4e 43 54 20 2b 20 4d 41 58 28 20 41 4c 4c 20  INCT + MAX( ALL 
dbc0: 2d 20 2d 20 33 34 20 29 20 63 6f 6c 31 20 46 52  - - 34 ) col1 FR
dbd0: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
dbe0: 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30 20  CROSS JOIN tab0 
dbf0: 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 33  AS cor1..----..3
dc00: 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  4....skipif mysq
dc10: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
dc20: 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
dc30: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
dc40: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
dc50: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
dc60: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
dc70: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
dc80: 65 6c 2d 33 31 33 0d 0a 53 45 4c 45 43 54 20 44  el-313..SELECT D
dc90: 49 53 54 49 4e 43 54 20 2b 20 4d 41 58 20 28 20  ISTINCT + MAX ( 
dca0: 41 4c 4c 20 2d 20 2d 20 33 34 20 29 20 63 6f 6c  ALL - - 34 ) col
dcb0: 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
dcc0: 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
dcd0: 61 62 30 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d  ab0 AS cor1..---
dce0: 2d 0d 0a 33 34 0d 0a 0d 0a 71 75 65 72 79 20 49  -..34....query I
dcf0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
dd00: 20 2d 20 2d 20 34 20 41 53 20 63 6f 6c 31 20 46   - - 4 AS col1 F
dd10: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
dd20: 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32   CROSS JOIN tab2
dd30: 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
dd40: 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
dd50: 20 74 6f 20 36 66 65 63 39 36 35 62 36 30 62 39   to 6fec965b60b9
dd60: 38 38 35 63 34 61 66 37 33 65 38 35 34 32 32 63  885c4af73e85422c
dd70: 66 64 39 62 0d 0a 0d 0a 71 75 65 72 79 20 49 20  fd9b....query I 
dd80: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
dd90: 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20  DISTINCT + col1 
dda0: 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
ddb0: 2b 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a  + col2 IS NULL..
ddc0: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
ddd0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
dde0: 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
ddf0: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
de00: 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 30 20  HERE NOT - col0 
de10: 2b 20 2d 20 2b 20 33 36 20 42 45 54 57 45 45 4e  + - + 36 BETWEEN
de20: 20 2b 20 2b 20 28 20 2b 20 32 39 20 29 20 2a 20   + + ( + 29 ) * 
de30: 2d 20 2d 20 63 6f 6c 31 20 41 4e 44 20 2d 20 2d  - - col1 AND - -
de40: 20 38 37 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c   87..----..9 val
de50: 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37  ues hashing to 7
de60: 35 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38  5c998aa53ac83218
de70: 63 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d  cbf2feb962d0a49.
de80: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
de90: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
dea0: 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48  ROM tab2 cor0 WH
deb0: 45 52 45 20 4e 4f 54 20 28 20 4e 4f 54 20 4e 55  ERE NOT ( NOT NU
dec0: 4c 4c 20 49 53 20 4e 55 4c 4c 20 29 0d 0a 2d 2d  LL IS NULL )..--
ded0: 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
dee0: 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61  hing to 75c998aa
def0: 35 33 61 63 38 33 32 31 38 63 62 66 32 66 65 62  53ac83218cbf2feb
df00: 39 36 32 64 30 61 34 39 0d 0a 0d 0a 6f 6e 6c 79  962d0a49....only
df10: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
df20: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
df30: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49  ype: ..query III
df40: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
df50: 31 38 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  18..SELECT * FRO
df60: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
df70: 48 45 52 45 20 4e 4f 54 20 43 41 53 54 28 20 2d  HERE NOT CAST( -
df80: 20 35 39 20 41 53 20 53 49 47 4e 45 44 20 29 20   59 AS SIGNED ) 
df90: 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
dfa0: 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  -....skipif mysq
dfb0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
dfc0: 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  le..query III ro
dfd0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 31 38 0d  wsort label-318.
dfe0: 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
dff0: 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
e000: 45 20 4e 4f 54 20 43 41 53 54 20 28 20 2d 20 35  E NOT CAST ( - 5
e010: 39 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 49  9 AS INTEGER ) I
e020: 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
e030: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
e040: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
e050: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
e060: 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20  : DECIMAL type: 
e070: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
e080: 72 74 20 6c 61 62 65 6c 2d 33 31 39 0d 0a 53 45  rt label-319..SE
e090: 4c 45 43 54 20 2d 20 2d 20 43 4f 55 4e 54 28 20  LECT - - COUNT( 
e0a0: 2a 20 29 20 41 53 20 63 6f 6c 30 2c 20 2b 20 43  * ) AS col0, + C
e0b0: 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2d 20 36 35  OUNT( * ) * - 65
e0c0: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
e0d0: 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  r0 WHERE NOT NUL
e0e0: 4c 20 3c 3e 20 43 41 53 54 28 20 2b 20 63 6f 6c  L <> CAST( + col
e0f0: 30 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20 2a  0 AS DECIMAL ) *
e100: 20 2b 20 31 39 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   + 19..----..0..
e110: 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
e120: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
e130: 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
e140: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 31 39 0d 0a  sort label-319..
e150: 53 45 4c 45 43 54 20 2d 20 2d 20 43 4f 55 4e 54  SELECT - - COUNT
e160: 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 2c 20   ( * ) AS col0, 
e170: 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20  + COUNT ( * ) * 
e180: 2d 20 36 35 20 46 52 4f 4d 20 74 61 62 31 20 41  - 65 FROM tab1 A
e190: 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
e1a0: 20 4e 55 4c 4c 20 3c 3e 20 43 41 53 54 20 28 20   NULL <> CAST ( 
e1b0: 2b 20 63 6f 6c 30 20 41 53 20 52 45 41 4c 20 29  + col0 AS REAL )
e1c0: 20 2a 20 2b 20 31 39 0d 0a 2d 2d 2d 2d 0d 0a 30   * + 19..----..0
e1d0: 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..0....onlyif my
e1e0: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
e1f0: 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e  x: aggregate syn
e200: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
e210: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
e220: 6f 72 74 20 6c 61 62 65 6c 2d 33 32 30 0d 0a 53  ort label-320..S
e230: 45 4c 45 43 54 20 43 41 53 54 28 20 2b 20 2d 20  ELECT CAST( + - 
e240: 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 53 49  COUNT( * ) AS SI
e250: 47 4e 45 44 20 29 20 2a 20 2d 20 2d 20 33 37 20  GNED ) * - - 37 
e260: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
e270: 0a 2d 31 31 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  .-111....skipif 
e280: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
e290: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
e2a0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 32  rowsort label-32
e2b0: 30 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 20 28  0..SELECT CAST (
e2c0: 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29   + - COUNT ( * )
e2d0: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20   AS INTEGER ) * 
e2e0: 2d 20 2d 20 33 37 20 46 52 4f 4d 20 74 61 62 31  - - 37 FROM tab1
e2f0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 31 0d 0a 0d 0a  ..----..-111....
e300: 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
e310: 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
e320: 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
e330: 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
e340: 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
e350: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
e360: 54 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 2c 20  T col0 AS col0, 
e370: 2b 20 35 38 20 63 6f 6c 30 20 46 52 4f 4d 20 74  + 58 col0 FROM t
e380: 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 35  ab2..----..46..5
e390: 38 0d 0a 36 34 0d 0a 35 38 0d 0a 37 35 0d 0a 35  8..64..58..75..5
e3a0: 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  8....skipif post
e3b0: 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
e3c0: 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
e3d0: 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
e3e0: 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
e3f0: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
e400: 53 45 4c 45 43 54 20 63 6f 6c 31 20 41 53 20 63  SELECT col1 AS c
e410: 6f 6c 32 2c 20 2b 20 63 6f 6c 31 20 63 6f 6c 31  ol2, + col1 col1
e420: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
e430: 0d 0a 35 31 0d 0a 35 31 0d 0a 36 37 0d 0a 36 37  ..51..51..67..67
e440: 0d 0a 37 37 0d 0a 37 37 0d 0a 0d 0a 73 6b 69 70  ..77..77....skip
e450: 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
e460: 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
e470: 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
e480: 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
e490: 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  mns..query II ro
e4a0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
e4b0: 53 54 49 4e 43 54 20 63 6f 6c 32 20 63 6f 6c 32  STINCT col2 col2
e4c0: 2c 20 35 20 2a 20 2b 20 2b 20 63 6f 6c 32 20 46  , 5 * + + col2 F
e4d0: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
e4e0: 31 30 0d 0a 35 30 0d 0a 34 37 0d 0a 32 33 35 0d  10..50..47..235.
e4f0: 0a 39 39 0d 0a 34 39 35 0d 0a 0d 0a 71 75 65 72  .99..495....quer
e500: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
e510: 45 43 54 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f  ECT - col2 AS co
e520: 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45  l0 FROM tab2 WHE
e530: 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 42 45 54 57  RE NOT NULL BETW
e540: 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 28 20 2d  EEN NULL AND ( -
e550: 20 63 6f 6c 31 20 29 20 2d 20 2d 20 63 6f 6c 32   col1 ) - - col2
e560: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
e570: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
e580: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
e590: 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 2d  ROM tab1 WHERE -
e5a0: 20 63 6f 6c 32 20 2a 20 2d 20 38 34 20 49 53 20   col2 * - 84 IS 
e5b0: 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
e5c0: 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
e5d0: 20 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36   to c6c0a4111b36
e5e0: 64 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35  d04dbc811a11e4d5
e5f0: 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20 49 20  4cad....query I 
e600: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
e610: 2b 20 34 33 20 46 52 4f 4d 20 74 61 62 30 20 57  + 43 FROM tab0 W
e620: 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53  HERE NOT NULL IS
e630: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   NULL..----....o
e640: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
e650: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
e660: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
e670: 74 20 6c 61 62 65 6c 2d 33 32 37 0d 0a 53 45 4c  t label-327..SEL
e680: 45 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  ECT COUNT( * ) F
e690: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
e6a0: 20 57 48 45 52 45 20 36 30 20 49 53 20 4e 55 4c   WHERE 60 IS NUL
e6b0: 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b  L..----..0....sk
e6c0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
e6d0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
e6e0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
e6f0: 65 6c 2d 33 32 37 0d 0a 53 45 4c 45 43 54 20 43  el-327..SELECT C
e700: 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20  OUNT ( * ) FROM 
e710: 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
e720: 52 45 20 36 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d  RE 60 IS NULL..-
e730: 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20  ---..0....query 
e740: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
e750: 54 20 2b 20 2b 20 33 35 20 2a 20 63 6f 6c 30 20  T + + 35 * col0 
e760: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
e770: 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 30  0 cor0..----..30
e780: 34 35 0d 0a 33 33 39 35 0d 0a 35 32 35 0d 0a 0d  45..3395..525...
e790: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
e7a0: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67  CAST syntax: agg
e7b0: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44  regate syntax: D
e7c0: 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71  ECIMAL type: ..q
e7d0: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
e7e0: 6c 61 62 65 6c 2d 33 32 39 0d 0a 53 45 4c 45 43  label-329..SELEC
e7f0: 54 20 41 4c 4c 20 43 41 53 54 28 20 4e 55 4c 4c  T ALL CAST( NULL
e800: 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20 41 53   AS DECIMAL ) AS
e810: 20 63 6f 6c 32 2c 20 2b 20 53 55 4d 28 20 2b 20   col2, + SUM( + 
e820: 30 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  0 ) AS col0 FROM
e830: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
e840: 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 30 0d 0a 0d 0a  ---..NULL..0....
e850: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
e860: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
e870: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
e880: 6c 61 62 65 6c 2d 33 32 39 0d 0a 53 45 4c 45 43  label-329..SELEC
e890: 54 20 41 4c 4c 20 43 41 53 54 20 28 20 4e 55 4c  T ALL CAST ( NUL
e8a0: 4c 20 41 53 20 52 45 41 4c 20 29 20 41 53 20 63  L AS REAL ) AS c
e8b0: 6f 6c 32 2c 20 2b 20 53 55 4d 20 28 20 2b 20 30  ol2, + SUM ( + 0
e8c0: 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
e8d0: 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
e8e0: 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 30 0d 0a 0d 0a 71  --..NULL..0....q
e8f0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
e900: 53 45 4c 45 43 54 20 28 20 2d 20 38 20 29 20 41  SELECT ( - 8 ) A
e910: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
e920: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
e930: 2d 38 0d 0a 2d 38 0d 0a 2d 38 0d 0a 0d 0a 71 75  -8..-8..-8....qu
e940: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
e950: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 31  ELECT DISTINCT 1
e960: 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
e970: 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
e980: 61 62 31 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d  ab1 AS cor1..---
e990: 2d 0d 0a 31 30 0d 0a 0d 0a 71 75 65 72 79 20 49  -..10....query I
e9a0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
e9b0: 20 44 49 53 54 49 4e 43 54 20 2d 20 39 32 20 41   DISTINCT - 92 A
e9c0: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
e9d0: 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a   AS cor0 CROSS J
e9e0: 4f 49 4e 20 74 61 62 32 20 41 53 20 63 6f 72 31  OIN tab2 AS cor1
e9f0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 32 0d 0a 0d 0a 71  ..----..-92....q
ea00: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
ea10: 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2b 20  SELECT - col1 + 
ea20: 2b 20 2b 20 33 34 20 46 52 4f 4d 20 74 61 62 30  + + 34 FROM tab0
ea30: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
ea40: 2d 34 37 0d 0a 31 33 0d 0a 33 33 0d 0a 0d 0a 71  -47..13..33....q
ea50: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
ea60: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20  .SELECT ALL - + 
ea70: 63 6f 6c 30 20 2a 20 31 31 20 41 53 20 63 6f 6c  col0 * 11 AS col
ea80: 30 2c 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74  0, + col1 FROM t
ea90: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
eaa0: 2d 0d 0a 2d 35 30 36 0d 0a 35 31 0d 0a 2d 37 30  -..-506..51..-70
eab0: 34 0d 0a 37 37 0d 0a 2d 38 32 35 0d 0a 36 37 0d  4..77..-825..67.
eac0: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
ead0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
eae0: 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
eaf0: 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
eb00: 2b 20 63 6f 6c 30 20 2d 20 63 6f 6c 30 20 49 53  + col0 - col0 IS
eb10: 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
eb20: 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
eb30: 67 20 74 6f 20 63 36 63 30 61 34 31 31 31 62 33  g to c6c0a4111b3
eb40: 36 64 30 34 64 62 63 38 31 31 61 31 31 65 34 64  6d04dbc811a11e4d
eb50: 35 34 63 61 64 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  54cad....onlyif 
eb60: 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
eb70: 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
eb80: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
eb90: 6f 72 74 20 6c 61 62 65 6c 2d 33 33 36 0d 0a 53  ort label-336..S
eba0: 45 4c 45 43 54 20 2b 20 36 32 20 44 49 56 20 2d  ELECT + 62 DIV -
ebb0: 20 34 20 2b 20 2b 20 39 34 20 46 52 4f 4d 20 74   4 + + 94 FROM t
ebc0: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
ebd0: 2d 0d 0a 37 39 0d 0a 37 39 0d 0a 37 39 0d 0a 0d  -..79..79..79...
ebe0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
ebf0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
ec00: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
ec10: 6c 61 62 65 6c 2d 33 33 36 0d 0a 53 45 4c 45 43  label-336..SELEC
ec20: 54 20 2b 20 36 32 20 2f 20 2d 20 34 20 2b 20 2b  T + 62 / - 4 + +
ec30: 20 39 34 20 46 52 4f 4d 20 74 61 62 31 20 41 53   94 FROM tab1 AS
ec40: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 39 0d   cor0..----..79.
ec50: 0a 37 39 0d 0a 37 39 0d 0a 0d 0a 6f 6e 6c 79 69  .79..79....onlyi
ec60: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
ec70: 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
ec80: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
ec90: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 33 37 0d  wsort label-337.
eca0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 33 33 20 2b  .SELECT ALL 33 +
ecb0: 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
ecc0: 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62  IGNED ) FROM tab
ecd0: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
ece0: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
ecf0: 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
ed00: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
ed10: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
ed20: 6f 72 74 20 6c 61 62 65 6c 2d 33 33 37 0d 0a 53  ort label-337..S
ed30: 45 4c 45 43 54 20 41 4c 4c 20 33 33 20 2b 20 43  ELECT ALL 33 + C
ed40: 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
ed50: 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62  TEGER ) FROM tab
ed60: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
ed70: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
ed80: 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  L....query I row
ed90: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
eda0: 30 20 2b 20 2b 20 2b 20 32 31 20 46 52 4f 4d 20  0 + + + 21 FROM 
edb0: 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
edc0: 2d 2d 0d 0a 36 37 0d 0a 38 35 0d 0a 39 36 0d 0a  --..67..85..96..
edd0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
ede0: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
edf0: 43 54 20 2d 20 2d 20 63 6f 6c 32 20 2d 20 2b 20  CT - - col2 - + 
ee00: 39 39 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  99 AS col2 FROM 
ee10: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
ee20: 2d 2d 0d 0a 2d 33 0d 0a 2d 33 31 0d 0a 2d 34 30  --..-3..-31..-40
ee30: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
ee40: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
ee50: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
ee60: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 34 30  owsort label-340
ee70: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 39  ..SELECT ALL - 9
ee80: 31 20 2a 20 2d 20 31 30 20 2b 20 43 4f 55 4e 54  1 * - 10 + COUNT
ee90: 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20  ( * ) FROM tab1 
eea0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39  AS cor0..----..9
eeb0: 31 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  13....skipif mys
eec0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
eed0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
eee0: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 34 30 0d 0a  sort label-340..
eef0: 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 39 31 20  SELECT ALL - 91 
ef00: 2a 20 2d 20 31 30 20 2b 20 43 4f 55 4e 54 20 28  * - 10 + COUNT (
ef10: 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41   * ) FROM tab1 A
ef20: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 31  S cor0..----..91
ef30: 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
ef40: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
ef50: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
ef60: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 34  rowsort label-34
ef70: 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  1..SELECT DISTIN
ef80: 43 54 20 28 20 2b 20 43 4f 55 4e 54 28 20 63 6f  CT ( + COUNT( co
ef90: 6c 32 20 29 20 29 20 2a 20 39 31 20 41 53 20 63  l2 ) ) * 91 AS c
efa0: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
efb0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 37 33   cor0..----..273
efc0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
efd0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
efe0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
eff0: 72 74 20 6c 61 62 65 6c 2d 33 34 31 0d 0a 53 45  rt label-341..SE
f000: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 28 20  LECT DISTINCT ( 
f010: 2b 20 43 4f 55 4e 54 20 28 20 63 6f 6c 32 20 29  + COUNT ( col2 )
f020: 20 29 20 2a 20 39 31 20 41 53 20 63 6f 6c 30 20   ) * 91 AS col0 
f030: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
f040: 30 0d 0a 2d 2d 2d 2d 0d 0a 32 37 33 0d 0a 0d 0a  0..----..273....
f050: 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
f060: 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
f070: 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
f080: 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
f090: 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
f0a0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
f0b0: 20 2b 20 32 33 20 2a 20 2b 20 2b 20 63 6f 6c 32   + 23 * + + col2
f0c0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
f0d0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
f0e0: 33 35 37 0d 0a 31 35 36 34 0d 0a 32 32 30 38 0d  357..1564..2208.
f0f0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
f100: 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
f110: 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
f120: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
f130: 62 65 6c 2d 33 34 33 0d 0a 53 45 4c 45 43 54 20  bel-343..SELECT 
f140: 41 4c 4c 20 2d 20 32 31 20 2d 20 2b 20 63 6f 6c  ALL - 21 - + col
f150: 32 20 44 49 56 20 63 6f 6c 31 20 41 53 20 63 6f  2 DIV col1 AS co
f160: 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
f170: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32 0d  cor0..----..-22.
f180: 0a 2d 32 37 0d 0a 2d 33 32 0d 0a 0d 0a 73 6b 69  .-27..-32....ski
f190: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
f1a0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
f1b0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
f1c0: 6c 2d 33 34 33 0d 0a 53 45 4c 45 43 54 20 41 4c  l-343..SELECT AL
f1d0: 4c 20 2d 20 32 31 20 2d 20 2b 20 63 6f 6c 32 20  L - 21 - + col2 
f1e0: 2f 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46  / col1 AS col2 F
f1f0: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
f200: 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32 0d 0a 2d 32 37  ..----..-22..-27
f210: 0d 0a 2d 33 32 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-32....query I
f220: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
f230: 54 20 2d 20 35 37 20 41 53 20 63 6f 6c 31 2c 20  T - 57 AS col1, 
f240: 2b 20 63 6f 6c 32 20 2b 20 2d 20 39 31 20 41 53  + col2 + - 91 AS
f250: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
f260: 0a 2d 2d 2d 2d 0d 0a 2d 35 37 0d 0a 2d 33 33 0d  .----..-57..-33.
f270: 0a 2d 35 37 0d 0a 2d 35 31 0d 0a 2d 35 37 0d 0a  .-57..-51..-57..
f280: 2d 36 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  -68....query I r
f290: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
f2a0: 4c 4c 20 31 37 20 2b 20 2d 20 38 31 20 41 53 20  LL 17 + - 81 AS 
f2b0: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
f2c0: 2d 2d 2d 2d 0d 0a 2d 36 34 0d 0a 2d 36 34 0d 0a  ----..-64..-64..
f2d0: 2d 36 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -64....onlyif my
f2e0: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
f2f0: 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20  syntax: DIV for 
f300: 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
f310: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
f320: 6f 72 74 20 6c 61 62 65 6c 2d 33 34 36 0d 0a 53  ort label-346..S
f330: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43  ELECT DISTINCT C
f340: 4f 55 4e 54 28 20 2a 20 29 20 44 49 56 20 2d 20  OUNT( * ) DIV - 
f350: 2b 20 31 36 20 46 52 4f 4d 20 74 61 62 31 0d 0a  + 16 FROM tab1..
f360: 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  ----..0....skipi
f370: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
f380: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
f390: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
f3a0: 33 34 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  346..SELECT DIST
f3b0: 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29  INCT COUNT ( * )
f3c0: 20 2f 20 2d 20 2b 20 31 36 20 46 52 4f 4d 20 74   / - + 16 FROM t
f3d0: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  ab1..----..0....
f3e0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
f3f0: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
f400: 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
f410: 6f 72 74 20 6c 61 62 65 6c 2d 33 34 37 0d 0a 53  ort label-347..S
f420: 45 4c 45 43 54 20 41 4c 4c 20 2d 20 37 33 20 2a  ELECT ALL - 73 *
f430: 20 2b 20 43 4f 55 4e 54 28 20 2b 20 2d 20 31 39   + COUNT( + - 19
f440: 20 29 20 2a 20 2d 20 32 37 20 41 53 20 63 6f 6c   ) * - 27 AS col
f450: 31 2c 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20  1, - COUNT( * ) 
f460: 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
f470: 0a 35 39 31 33 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69  .5913..-3....ski
f480: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
f490: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
f4a0: 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
f4b0: 65 6c 2d 33 34 37 0d 0a 53 45 4c 45 43 54 20 41  el-347..SELECT A
f4c0: 4c 4c 20 2d 20 37 33 20 2a 20 2b 20 43 4f 55 4e  LL - 73 * + COUN
f4d0: 54 20 28 20 2b 20 2d 20 31 39 20 29 20 2a 20 2d  T ( + - 19 ) * -
f4e0: 20 32 37 20 41 53 20 63 6f 6c 31 2c 20 2d 20 43   27 AS col1, - C
f4f0: 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20  OUNT ( * ) FROM 
f500: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 39 31 33  tab2..----..5913
f510: 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..-3....query I 
f520: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
f530: 2b 20 33 36 20 2d 20 2b 20 33 20 2a 20 28 20 63  + 36 - + 3 * ( c
f540: 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 32 0d  ol0 ) FROM tab2.
f550: 0a 2d 2d 2d 2d 0d 0a 2d 31 30 32 0d 0a 2d 31 35  .----..-102..-15
f560: 36 0d 0a 2d 31 38 39 0d 0a 0d 0a 71 75 65 72 79  6..-189....query
f570: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
f580: 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
f590: 74 61 62 31 20 57 48 45 52 45 20 28 20 4e 55 4c  tab1 WHERE ( NUL
f5a0: 4c 20 29 20 3c 3d 20 4e 55 4c 4c 20 41 4e 44 20  L ) <= NULL AND 
f5b0: 4e 4f 54 20 38 36 20 4e 4f 54 20 49 4e 20 28 20  NOT 86 NOT IN ( 
f5c0: 35 34 20 2f 20 2d 20 2b 20 39 33 20 2b 20 2d 20  54 / - + 93 + - 
f5d0: 34 32 2c 20 34 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a  42, 42 )..----..
f5e0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
f5f0: 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30  t..SELECT - col0
f600: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
f610: 62 32 20 57 48 45 52 45 20 2d 20 39 36 20 2a 20  b2 WHERE - 96 * 
f620: 2b 20 39 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  + 91 IS NULL..--
f630: 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
f640: 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
f650: 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  : aggregate synt
f660: 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
f670: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
f680: 72 74 20 6c 61 62 65 6c 2d 33 35 31 0d 0a 53 45  rt label-351..SE
f690: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 41  LECT DISTINCT CA
f6a0: 53 54 28 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a  ST( - - COUNT( *
f6b0: 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a   ) AS SIGNED ) *
f6c0: 20 2d 20 2d 20 35 35 20 46 52 4f 4d 20 74 61 62   - - 55 FROM tab
f6d0: 31 0d 0a 2d 2d 2d 2d 0d 0a 31 36 35 0d 0a 0d 0a  1..----..165....
f6e0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
f6f0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
f700: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
f710: 61 62 65 6c 2d 33 35 31 0d 0a 53 45 4c 45 43 54  abel-351..SELECT
f720: 20 44 49 53 54 49 4e 43 54 20 43 41 53 54 20 28   DISTINCT CAST (
f730: 20 2d 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29   - - COUNT ( * )
f740: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20   AS INTEGER ) * 
f750: 2d 20 2d 20 35 35 20 46 52 4f 4d 20 74 61 62 31  - - 55 FROM tab1
f760: 0d 0a 2d 2d 2d 2d 0d 0a 31 36 35 0d 0a 0d 0a 71  ..----..165....q
f770: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
f780: 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
f790: 74 61 62 30 20 57 48 45 52 45 20 2d 20 34 33 20  tab0 WHERE - 43 
f7a0: 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c  NOT BETWEEN NULL
f7b0: 20 41 4e 44 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d   AND - col1..---
f7c0: 2d 0d 0a 31 35 0d 0a 38 31 0d 0a 34 37 0d 0a 0d  -..15..81..47...
f7d0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
f7e0: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
f7f0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
f800: 6f 72 74 20 6c 61 62 65 6c 2d 33 35 33 0d 0a 53  ort label-353..S
f810: 45 4c 45 43 54 20 2b 20 33 38 20 2d 20 2b 20 34  ELECT + 38 - + 4
f820: 38 20 2d 20 2d 20 2d 20 43 4f 55 4e 54 28 20 41  8 - - - COUNT( A
f830: 4c 4c 20 2b 20 31 32 20 29 20 41 53 20 63 6f 6c  LL + 12 ) AS col
f840: 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  2 FROM tab2..---
f850: 2d 0d 0a 2d 31 33 0d 0a 0d 0a 73 6b 69 70 69 66  -..-13....skipif
f860: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
f870: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
f880: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
f890: 35 33 0d 0a 53 45 4c 45 43 54 20 2b 20 33 38 20  53..SELECT + 38 
f8a0: 2d 20 2b 20 34 38 20 2d 20 2d 20 2d 20 43 4f 55  - + 48 - - - COU
f8b0: 4e 54 20 28 20 41 4c 4c 20 2b 20 31 32 20 29 20  NT ( ALL + 12 ) 
f8c0: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
f8d0: 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 0d 0a 0d 0a  2..----..-13....
f8e0: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
f8f0: 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
f900: 20 74 61 62 32 20 63 6f 72 30 20 57 48 45 52 45   tab2 cor0 WHERE
f910: 20 4e 4f 54 20 2b 20 28 20 2b 20 2b 20 63 6f 6c   NOT + ( + + col
f920: 31 20 29 20 3c 3d 20 2b 20 63 6f 6c 30 0d 0a 2d  1 ) <= + col0..-
f930: 2d 2d 2d 0d 0a 34 36 0d 0a 35 31 0d 0a 32 33 0d  ---..46..51..23.
f940: 0a 36 34 0d 0a 37 37 0d 0a 34 30 0d 0a 0d 0a 6f  .64..77..40....o
f950: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
f960: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
f970: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
f980: 74 20 6c 61 62 65 6c 2d 33 35 35 0d 0a 53 45 4c  t label-355..SEL
f990: 45 43 54 20 41 4c 4c 20 2d 20 4d 41 58 28 20 2b  ECT ALL - MAX( +
f9a0: 20 63 6f 6c 32 20 29 20 2a 20 2b 20 43 4f 55 4e   col2 ) * + COUN
f9b0: 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46  T( * ) AS col0 F
f9c0: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
f9d0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37 34 0d 0a 0d 0a  ..----..-174....
f9e0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
f9f0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
fa00: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
fa10: 61 62 65 6c 2d 33 35 35 0d 0a 53 45 4c 45 43 54  abel-355..SELECT
fa20: 20 41 4c 4c 20 2d 20 4d 41 58 20 28 20 2b 20 63   ALL - MAX ( + c
fa30: 6f 6c 32 20 29 20 2a 20 2b 20 43 4f 55 4e 54 20  ol2 ) * + COUNT 
fa40: 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ( * ) AS col0 FR
fa50: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
fa60: 0a 2d 2d 2d 2d 0d 0a 2d 31 37 34 0d 0a 0d 0a 71  .----..-174....q
fa70: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
fa80: 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
fa90: 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2d  tab1 WHERE NOT -
faa0: 20 36 34 20 2a 20 2b 20 63 6f 6c 32 20 3c 20 2d   64 * + col2 < -
fab0: 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   col0..----....q
fac0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
fad0: 53 45 4c 45 43 54 20 38 37 20 2a 20 2b 20 2b 20  SELECT 87 * + + 
fae0: 63 6f 6c 32 20 2a 20 2b 20 37 35 20 41 53 20 63  col2 * + 75 AS c
faf0: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
fb00: 2d 2d 2d 0d 0a 33 30 36 36 37 35 0d 0a 36 34 35  ---..306675..645
fb10: 39 37 35 0d 0a 36 35 32 35 30 0d 0a 0d 0a 71 75  975..65250....qu
fb20: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
fb30: 45 4c 45 43 54 20 2b 20 31 36 20 2a 20 2d 20 63  ELECT + 16 * - c
fb40: 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol1 AS col2 FROM
fb50: 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
fb60: 0d 0a 2d 32 32 34 0d 0a 2d 37 35 32 0d 0a 2d 38  ..-224..-752..-8
fb70: 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
fb80: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
fb90: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
fba0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 35  rowsort label-35
fbb0: 39 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 4d 49  9..SELECT - + MI
fbc0: 4e 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32  N( DISTINCT col2
fbd0: 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
fbe0: 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
fbf0: 0a 2d 35 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-59....skipif m
fc00: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
fc10: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
fc20: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 35 39  owsort label-359
fc30: 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 4d 49 4e  ..SELECT - + MIN
fc40: 20 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32   ( DISTINCT col2
fc50: 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
fc60: 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
fc70: 0a 2d 35 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-59....onlyif m
fc80: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
fc90: 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72   syntax: DIV for
fca0: 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
fcb0: 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
fcc0: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 36 30 0d 0a  sort label-360..
fcd0: 53 45 4c 45 43 54 20 28 20 2d 20 2b 20 43 4f 55  SELECT ( - + COU
fce0: 4e 54 28 20 2a 20 29 20 29 20 44 49 56 20 39 34  NT( * ) ) DIV 94
fcf0: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
fd00: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73  r0..----..0....s
fd10: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
fd20: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
fd30: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
fd40: 62 65 6c 2d 33 36 30 0d 0a 53 45 4c 45 43 54 20  bel-360..SELECT 
fd50: 28 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  ( - + COUNT ( * 
fd60: 29 20 29 20 2f 20 39 34 20 46 52 4f 4d 20 74 61  ) ) / 94 FROM ta
fd70: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
fd80: 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ..0....query III
fd90: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
fda0: 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72   * FROM tab2 cor
fdb0: 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55  0 WHERE NOT ( NU
fdc0: 4c 4c 20 29 20 3c 20 2b 20 33 33 20 2b 20 2d 20  LL ) < + 33 + - 
fdd0: 37 38 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  78..----....quer
fde0: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
fdf0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
fe00: 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
fe10: 4e 4f 54 20 2d 20 33 30 20 2a 20 2b 20 2b 20 39  NOT - 30 * + + 9
fe20: 31 20 2a 20 2b 20 2b 20 63 6f 6c 32 20 3e 3d 20  1 * + + col2 >= 
fe30: 2d 20 28 20 2b 20 63 6f 6c 30 20 29 20 2f 20 2d  - ( + col0 ) / -
fe40: 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   col2..----..9 v
fe50: 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
fe60: 20 63 36 63 30 61 34 31 31 31 62 33 36 64 30 34   c6c0a4111b36d04
fe70: 64 62 63 38 31 31 61 31 31 65 34 64 35 34 63 61  dbc811a11e4d54ca
fe80: 64 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  d....onlyif mysq
fe90: 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
fea0: 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
feb0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
fec0: 6c 61 62 65 6c 2d 33 36 33 0d 0a 53 45 4c 45 43  label-363..SELEC
fed0: 54 20 2b 20 34 33 20 44 49 56 20 2b 20 36 37 20  T + 43 DIV + 67 
fee0: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
fef0: 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .0..0..0....skip
ff00: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
ff10: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
ff20: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
ff30: 2d 33 36 33 0d 0a 53 45 4c 45 43 54 20 2b 20 34  -363..SELECT + 4
ff40: 33 20 2f 20 2b 20 36 37 20 46 52 4f 4d 20 74 61  3 / + 67 FROM ta
ff50: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a  b1..----..0..0..
ff60: 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  0....query III r
ff70: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
ff80: 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57  LL * FROM tab1 W
ff90: 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3c 20  HERE NOT NULL < 
ffa0: 2b 20 32 36 20 2b 20 2d 20 2b 20 30 20 2b 20 2d  + 26 + - + 0 + -
ffb0: 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d   - col1..----...
ffc0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
ffd0: 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
ffe0: 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
fff0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
10000 6c 2d 33 36 35 0d 0a 53 45 4c 45 43 54 20 41 4c  l-365..SELECT AL
10010 4c 20 2d 20 33 39 20 44 49 56 20 63 6f 6c 31 20  L - 39 DIV col1 
10020 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
10030 0a 2d 32 0d 0a 2d 37 0d 0a 30 0d 0a 0d 0a 73 6b  .-2..-7..0....sk
10040 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
10050 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
10060 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
10070 65 6c 2d 33 36 35 0d 0a 53 45 4c 45 43 54 20 41  el-365..SELECT A
10080 4c 4c 20 2d 20 33 39 20 2f 20 63 6f 6c 31 20 46  LL - 39 / col1 F
10090 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
100a0 2d 32 0d 0a 2d 37 0d 0a 30 0d 0a 0d 0a 6f 6e 6c  -2..-7..0....onl
100b0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
100c0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
100d0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
100e0 6c 61 62 65 6c 2d 33 36 36 0d 0a 53 45 4c 45 43  label-366..SELEC
100f0 54 20 2b 20 28 20 2d 20 4d 41 58 28 20 41 4c 4c  T + ( - MAX( ALL
10100 20 63 6f 6c 30 20 29 20 29 20 41 53 20 63 6f 6c   col0 ) ) AS col
10110 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  2 FROM tab1..---
10120 2d 0d 0a 2d 39 31 0d 0a 0d 0a 73 6b 69 70 69 66  -..-91....skipif
10130 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
10140 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
10150 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
10160 36 36 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 2d  66..SELECT + ( -
10170 20 4d 41 58 20 28 20 41 4c 4c 20 63 6f 6c 30 20   MAX ( ALL col0 
10180 29 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ) ) AS col2 FROM
10190 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 31   tab1..----..-91
101a0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
101b0 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
101c0 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
101d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
101e0 61 62 65 6c 2d 33 36 37 0d 0a 53 45 4c 45 43 54  abel-367..SELECT
101f0 20 63 6f 6c 31 20 44 49 56 20 2b 20 63 6f 6c 30   col1 DIV + col0
10200 20 2b 20 28 20 2b 20 31 38 20 29 20 2a 20 2d 20   + ( + 18 ) * - 
10210 2d 20 35 36 20 41 53 20 63 6f 6c 32 20 46 52 4f  - 56 AS col2 FRO
10220 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 30  M tab2..----..10
10230 30 38 0d 0a 31 30 30 39 0d 0a 31 30 30 39 0d 0a  08..1009..1009..
10240 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
10250 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
10260 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
10270 20 6c 61 62 65 6c 2d 33 36 37 0d 0a 53 45 4c 45   label-367..SELE
10280 43 54 20 63 6f 6c 31 20 2f 20 2b 20 63 6f 6c 30  CT col1 / + col0
10290 20 2b 20 28 20 2b 20 31 38 20 29 20 2a 20 2d 20   + ( + 18 ) * - 
102a0 2d 20 35 36 20 41 53 20 63 6f 6c 32 20 46 52 4f  - 56 AS col2 FRO
102b0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 30  M tab2..----..10
102c0 30 38 0d 0a 31 30 30 39 0d 0a 31 30 30 39 0d 0a  08..1009..1009..
102d0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
102e0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
102f0 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 63 6f  OM tab2 WHERE co
10300 6c 31 20 2d 20 63 6f 6c 31 20 49 53 20 4e 55 4c  l1 - col1 IS NUL
10310 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
10320 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
10330 43 54 20 44 49 53 54 49 4e 43 54 20 28 20 39 30  CT DISTINCT ( 90
10340 20 29 20 2b 20 2d 20 28 20 2d 20 37 35 20 29 20   ) + - ( - 75 ) 
10350 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
10360 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 35 0d 0a 0d 0a  0..----..165....
10370 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
10380 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f  .SELECT ALL - co
10390 6c 30 20 2b 20 2d 20 2d 20 36 37 20 46 52 4f 4d  l0 + - - 67 FROM
103a0 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
103b0 0d 0a 2d 38 0d 0a 32 31 0d 0a 33 0d 0a 0d 0a 71  ..-8..21..3....q
103c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
103d0 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c  SELECT ALL - col
103e0 32 20 2b 20 2d 20 2b 20 63 6f 6c 30 20 2a 20 2d  2 + - + col0 * -
103f0 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52   col0 AS col0 FR
10400 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d  OM tab0 cor0..--
10410 2d 2d 0d 0a 31 37 38 0d 0a 37 35 35 39 0d 0a 39  --..178..7559..9
10420 33 31 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  310....query I r
10430 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
10440 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol0 AS col0 FROM
10450 20 74 61 62 30 20 57 48 45 52 45 20 28 20 63 6f   tab0 WHERE ( co
10460 6c 32 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  l2 ) IS NULL..--
10470 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
10480 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
10490 28 20 2d 20 35 31 20 29 20 46 52 4f 4d 20 74 61  ( - 51 ) FROM ta
104a0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 35 31  b0..----..51..51
104b0 0d 0a 35 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..51....query I 
104c0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
104d0 44 49 53 54 49 4e 43 54 20 36 30 20 41 53 20 63  DISTINCT 60 AS c
104e0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 57 48  ol1 FROM tab2 WH
104f0 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c  ERE NULL IS NULL
10500 0d 0a 2d 2d 2d 2d 0d 0a 36 30 0d 0a 0d 0a 6f 6e  ..----..60....on
10510 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
10520 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
10530 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
10540 20 6c 61 62 65 6c 2d 33 37 35 0d 0a 53 45 4c 45   label-375..SELE
10550 43 54 20 28 20 2b 20 2d 20 4d 41 58 28 20 2d 20  CT ( + - MAX( - 
10560 63 6f 6c 31 20 29 20 29 20 41 53 20 63 6f 6c 31  col1 ) ) AS col1
10570 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
10580 0d 0a 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..5....skipif my
10590 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
105a0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
105b0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 37 35 0d  wsort label-375.
105c0 0a 53 45 4c 45 43 54 20 28 20 2b 20 2d 20 4d 41  .SELECT ( + - MA
105d0 58 20 28 20 2d 20 63 6f 6c 31 20 29 20 29 20 41  X ( - col1 ) ) A
105e0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
105f0 0d 0a 2d 2d 2d 2d 0d 0a 35 0d 0a 0d 0a 6f 6e 6c  ..----..5....onl
10600 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
10610 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
10620 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
10630 20 6c 61 62 65 6c 2d 33 37 36 0d 0a 53 45 4c 45   label-376..SELE
10640 43 54 20 2b 20 28 20 2d 20 43 4f 55 4e 54 28 20  CT + ( - COUNT( 
10650 2a 20 29 20 29 20 41 53 20 63 6f 6c 30 2c 20 2d  * ) ) AS col0, -
10660 20 39 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   91 AS col0 FROM
10670 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d   tab1..----..-3.
10680 0a 2d 39 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-91....skipif m
10690 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
106a0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
106b0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 37  rowsort label-37
106c0 36 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 2d 20  6..SELECT + ( - 
106d0 43 4f 55 4e 54 20 28 20 2a 20 29 20 29 20 41 53  COUNT ( * ) ) AS
106e0 20 63 6f 6c 30 2c 20 2d 20 39 31 20 41 53 20 63   col0, - 91 AS c
106f0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
10700 2d 2d 2d 0d 0a 2d 33 0d 0a 2d 39 31 0d 0a 0d 0a  ---..-3..-91....
10710 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
10720 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
10730 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 2d 20 63 6f   + col1 * + - co
10740 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  l0 FROM tab1 WHE
10750 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20  RE NOT NULL NOT 
10760 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44  BETWEEN NULL AND
10770 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
10780 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
10790 53 45 4c 45 43 54 20 2d 20 36 32 20 2a 20 2b 20  SELECT - 62 * + 
107a0 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  - col2 FROM tab0
107b0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
107c0 32 39 31 34 0d 0a 36 31 33 38 0d 0a 36 32 30 0d  2914..6138..620.
107d0 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
107e0 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
107f0 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
10800 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
10810 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
10820 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
10830 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2b  ECT DISTINCT + +
10840 20 39 31 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   91 col2 FROM ta
10850 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53  b1 AS cor0 CROSS
10860 20 4a 4f 49 4e 20 74 61 62 30 20 63 6f 72 31 0d   JOIN tab0 cor1.
10870 0a 2d 2d 2d 2d 0d 0a 39 31 0d 0a 0d 0a 71 75 65  .----..91....que
10880 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
10890 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
108a0 38 30 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45  80 FROM tab2 WHE
108b0 52 45 20 38 37 20 3e 20 2d 20 38 35 0d 0a 2d 2d  RE 87 > - 85..--
108c0 2d 2d 0d 0a 2d 38 30 0d 0a 0d 0a 6f 6e 6c 79 69  --..-80....onlyi
108d0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
108e0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
108f0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
10900 62 65 6c 2d 33 38 31 0d 0a 53 45 4c 45 43 54 20  bel-381..SELECT 
10910 41 4c 4c 20 2b 20 4d 49 4e 28 20 41 4c 4c 20 2b  ALL + MIN( ALL +
10920 20 2d 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c   - col1 ) AS col
10930 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
10940 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 37 0d 0a  or0..----..-47..
10950 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
10960 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
10970 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
10980 20 6c 61 62 65 6c 2d 33 38 31 0d 0a 53 45 4c 45   label-381..SELE
10990 43 54 20 41 4c 4c 20 2b 20 4d 49 4e 20 28 20 41  CT ALL + MIN ( A
109a0 4c 4c 20 2b 20 2d 20 63 6f 6c 31 20 29 20 41 53  LL + - col1 ) AS
109b0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
109c0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
109d0 34 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  47....onlyif mys
109e0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
109f0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
10a00 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
10a10 33 38 32 0d 0a 53 45 4c 45 43 54 20 2b 20 32 20  382..SELECT + 2 
10a20 41 53 20 63 6f 6c 31 2c 20 43 4f 55 4e 54 28 20  AS col1, COUNT( 
10a30 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  * ) FROM tab0 AS
10a40 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 0d 0a   cor0..----..2..
10a50 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
10a60 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
10a70 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
10a80 73 6f 72 74 20 6c 61 62 65 6c 2d 33 38 32 0d 0a  sort label-382..
10a90 53 45 4c 45 43 54 20 2b 20 32 20 41 53 20 63 6f  SELECT + 2 AS co
10aa0 6c 31 2c 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  l1, COUNT ( * ) 
10ab0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
10ac0 30 0d 0a 2d 2d 2d 2d 0d 0a 32 0d 0a 33 0d 0a 0d  0..----..2..3...
10ad0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
10ae0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f  t..SELECT ALL co
10af0 6c 30 20 2b 20 2b 20 37 32 2c 20 36 20 2a 20 63  l0 + + 72, 6 * c
10b00 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol2 AS col0 FROM
10b10 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
10b20 45 52 45 20 4e 55 4c 4c 20 3c 20 4e 55 4c 4c 0d  ERE NULL < NULL.
10b30 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
10b40 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
10b50 20 44 49 53 54 49 4e 43 54 20 2d 20 36 39 20 2a   DISTINCT - 69 *
10b60 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52   col2 AS col2 FR
10b70 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
10b80 0a 2d 2d 2d 2d 0d 0a 2d 34 30 37 31 0d 0a 2d 34  .----..-4071..-4
10b90 36 39 32 0d 0a 2d 36 36 32 34 0d 0a 0d 0a 6f 6e  692..-6624....on
10ba0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
10bb0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
10bc0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
10bd0 20 6c 61 62 65 6c 2d 33 38 35 0d 0a 53 45 4c 45   label-385..SELE
10be0 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 28 20  CT ALL + COUNT( 
10bf0 2a 20 29 20 2a 20 2b 20 2b 20 38 31 20 41 53 20  * ) * + + 81 AS 
10c00 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
10c10 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 34  S cor0..----..24
10c20 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
10c30 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
10c40 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
10c50 6f 72 74 20 6c 61 62 65 6c 2d 33 38 35 0d 0a 53  ort label-385..S
10c60 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e  ELECT ALL + COUN
10c70 54 20 28 20 2a 20 29 20 2a 20 2b 20 2b 20 38 31  T ( * ) * + + 81
10c80 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
10c90 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
10ca0 0d 0a 32 34 33 0d 0a 0d 0a 71 75 65 72 79 20 49  ..243....query I
10cb0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
10cc0 20 2b 20 2d 20 35 30 20 2b 20 2b 20 63 6f 6c 30   + - 50 + + col0
10cd0 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 2b 20 63 6f   + col0 * - + co
10ce0 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
10cf0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 36 30  cor0..----..-260
10d00 0d 0a 2d 37 35 33 32 0d 0a 2d 39 33 36 32 0d 0a  ..-7532..-9362..
10d10 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
10d20 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
10d30 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
10d40 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
10d50 65 6c 2d 33 38 37 0d 0a 53 45 4c 45 43 54 20 44  el-387..SELECT D
10d60 49 53 54 49 4e 43 54 20 37 38 20 44 49 56 20 34  ISTINCT 78 DIV 4
10d70 31 20 2b 20 2d 20 2d 20 33 35 20 41 53 20 63 6f  1 + - - 35 AS co
10d80 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
10d90 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 36 0d 0a  cor0..----..36..
10da0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
10db0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
10dc0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
10dd0 20 6c 61 62 65 6c 2d 33 38 37 0d 0a 53 45 4c 45   label-387..SELE
10de0 43 54 20 44 49 53 54 49 4e 43 54 20 37 38 20 2f  CT DISTINCT 78 /
10df0 20 34 31 20 2b 20 2d 20 2d 20 33 35 20 41 53 20   41 + - - 35 AS 
10e00 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
10e10 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 36  S cor0..----..36
10e20 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
10e30 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20  ort..SELECT - + 
10e40 38 30 20 2b 20 2d 20 2d 20 38 31 20 41 53 20 63  80 + - - 81 AS c
10e50 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
10e60 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a   cor0..----..1..
10e70 31 0d 0a 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  1..1....onlyif m
10e80 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
10e90 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
10ea0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
10eb0 2d 33 38 39 0d 0a 53 45 4c 45 43 54 20 44 49 53  -389..SELECT DIS
10ec0 54 49 4e 43 54 20 2d 20 4d 41 58 28 20 2b 20 39  TINCT - MAX( + 9
10ed0 31 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  1 ) FROM tab1 AS
10ee0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 31   cor0..----..-91
10ef0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
10f00 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
10f10 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
10f20 72 74 20 6c 61 62 65 6c 2d 33 38 39 0d 0a 53 45  rt label-389..SE
10f30 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
10f40 4d 41 58 20 28 20 2b 20 39 31 20 29 20 46 52 4f  MAX ( + 91 ) FRO
10f50 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
10f60 2d 2d 2d 2d 0d 0a 2d 39 31 0d 0a 0d 0a 71 75 65  ----..-91....que
10f70 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
10f80 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2b 20 2b 20  LECT - col1 + + 
10f90 63 6f 6c 32 20 2b 20 2b 20 35 35 20 2a 20 2b 20  col2 + + 55 * + 
10fa0 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f  col2 AS col0 FRO
10fb0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 35  M tab0..----..25
10fc0 35 31 0d 0a 35 33 39 0d 0a 35 35 34 33 0d 0a 0d  51..539..5543...
10fd0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
10fe0 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67  CAST syntax: agg
10ff0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53  regate syntax: S
11000 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
11010 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
11020 61 62 65 6c 2d 33 39 31 0d 0a 53 45 4c 45 43 54  abel-391..SELECT
11030 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   - CAST( NULL AS
11040 20 53 49 47 4e 45 44 20 29 20 2f 20 34 37 2c 20   SIGNED ) / 47, 
11050 43 4f 55 4e 54 28 20 2b 20 2d 20 63 6f 6c 32 20  COUNT( + - col2 
11060 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
11070 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab0..----..NULL.
11080 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .3....skipif mys
11090 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
110a0 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
110b0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39 31 0d  wsort label-391.
110c0 0a 53 45 4c 45 43 54 20 2d 20 43 41 53 54 20 28  .SELECT - CAST (
110d0 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
110e0 20 29 20 2f 20 34 37 2c 20 43 4f 55 4e 54 20 28   ) / 47, COUNT (
110f0 20 2b 20 2d 20 63 6f 6c 32 20 29 20 41 53 20 63   + - col2 ) AS c
11100 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol0 FROM tab0..-
11110 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 33 0d 0a 0d 0a  ---..NULL..3....
11120 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
11130 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
11140 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  CT * FROM tab2 W
11150 48 45 52 45 20 4e 4f 54 20 2d 20 28 20 2d 20 63  HERE NOT - ( - c
11160 6f 6c 30 20 29 20 42 45 54 57 45 45 4e 20 63 6f  ol0 ) BETWEEN co
11170 6c 30 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d  l0 AND NULL..---
11180 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  -....query III r
11190 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
111a0 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
111b0 20 37 34 20 49 4e 20 28 20 63 6f 6c 30 2c 20 2b   74 IN ( col0, +
111c0 20 63 6f 6c 32 2c 20 2b 20 38 30 20 29 0d 0a 2d   col2, + 80 )..-
111d0 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
111e0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
111f0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
11200 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
11210 74 20 6c 61 62 65 6c 2d 33 39 34 0d 0a 53 45 4c  t label-394..SEL
11220 45 43 54 20 2d 20 43 41 53 54 28 20 2d 20 2b 20  ECT - CAST( - + 
11230 63 6f 6c 32 20 41 53 20 53 49 47 4e 45 44 20 29  col2 AS SIGNED )
11240 20 2f 20 2b 20 33 38 20 46 52 4f 4d 20 74 61 62   / + 38 FROM tab
11250 31 20 57 48 45 52 45 20 2b 20 2d 20 63 6f 6c 32  1 WHERE + - col2
11260 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
11270 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
11280 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
11290 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
112a0 20 6c 61 62 65 6c 2d 33 39 34 0d 0a 53 45 4c 45   label-394..SELE
112b0 43 54 20 2d 20 43 41 53 54 20 28 20 2d 20 2b 20  CT - CAST ( - + 
112c0 63 6f 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20  col2 AS INTEGER 
112d0 29 20 2f 20 2b 20 33 38 20 46 52 4f 4d 20 74 61  ) / + 38 FROM ta
112e0 62 31 20 57 48 45 52 45 20 2b 20 2d 20 63 6f 6c  b1 WHERE + - col
112f0 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  2 IS NULL..----.
11300 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
11310 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
11320 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
11330 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e 55 4c  cor0 WHERE ( NUL
11340 4c 20 3d 20 2b 20 38 34 20 29 0d 0a 2d 2d 2d 2d  L = + 84 )..----
11350 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
11360 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
11370 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
11380 2b 20 2d 20 28 20 2d 20 63 6f 6c 30 20 29 20 49  + - ( - col0 ) I
11390 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  S NULL..----....
113a0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
113b0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
113c0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
113d0 72 74 20 6c 61 62 65 6c 2d 33 39 37 0d 0a 53 45  rt label-397..SE
113e0 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54  LECT ALL + COUNT
113f0 28 20 2a 20 29 20 2d 20 2b 20 2d 20 43 4f 55 4e  ( * ) - + - COUN
11400 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30  T( * ) FROM tab0
11410 0d 0a 2d 2d 2d 2d 0d 0a 36 0d 0a 0d 0a 73 6b 69  ..----..6....ski
11420 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
11430 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
11440 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
11450 6c 2d 33 39 37 0d 0a 53 45 4c 45 43 54 20 41 4c  l-397..SELECT AL
11460 4c 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  L + COUNT ( * ) 
11470 2d 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  - + - COUNT ( * 
11480 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
11490 2d 0d 0a 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -..6....onlyif m
114a0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
114b0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
114c0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
114d0 2d 33 39 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -398..SELECT ALL
114e0 20 2d 20 4d 49 4e 28 20 63 6f 6c 32 20 29 20 2b   - MIN( col2 ) +
114f0 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20   - - COUNT( * ) 
11500 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
11510 0a 2d 35 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-56....skipif m
11520 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
11530 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
11540 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39 38  owsort label-398
11550 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 4d  ..SELECT ALL - M
11560 49 4e 20 28 20 63 6f 6c 32 20 29 20 2b 20 2d 20  IN ( col2 ) + - 
11570 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52  - COUNT ( * ) FR
11580 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
11590 35 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  56....onlyif mys
115a0 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
115b0 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  : aggregate synt
115c0 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
115d0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
115e0 72 74 20 6c 61 62 65 6c 2d 33 39 39 0d 0a 53 45  rt label-399..SE
115f0 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28 20 44 49  LECT - COUNT( DI
11600 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 29 20  STINCT + col1 ) 
11610 2a 20 43 41 53 54 28 20 2b 20 43 41 53 54 28 20  * CAST( + CAST( 
11620 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 53 49  COUNT( * ) AS SI
11630 47 4e 45 44 20 29 20 41 53 20 53 49 47 4e 45 44  GNED ) AS SIGNED
11640 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
11650 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a  cor0..----..-9..
11660 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
11670 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
11680 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
11690 20 6c 61 62 65 6c 2d 33 39 39 0d 0a 53 45 4c 45   label-399..SELE
116a0 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 44 49 53  CT - COUNT ( DIS
116b0 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 29 20 2a  TINCT + col1 ) *
116c0 20 43 41 53 54 20 28 20 2b 20 43 41 53 54 20 28   CAST ( + CAST (
116d0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
116e0 49 4e 54 45 47 45 52 20 29 20 41 53 20 49 4e 54  INTEGER ) AS INT
116f0 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 31  EGER ) FROM tab1
11700 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
11710 2d 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  -9....query I ro
11720 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
11730 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20 2b 20  STINCT - col0 + 
11740 2d 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  - - col0 FROM ta
11750 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
11760 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..0....onlyif my
11770 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
11780 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
11790 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
117a0 34 30 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  401..SELECT ALL 
117b0 2b 20 53 55 4d 28 20 41 4c 4c 20 2d 20 2b 20 63  + SUM( ALL - + c
117c0 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 30 20  ol0 ) FROM tab0 
117d0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
117e0 31 39 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  199....skipif my
117f0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
11800 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
11810 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 30 31 0d  wsort label-401.
11820 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 53 55  .SELECT ALL + SU
11830 4d 20 28 20 41 4c 4c 20 2d 20 2b 20 63 6f 6c 30  M ( ALL - + col0
11840 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
11850 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 39  cor0..----..-199
11860 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
11870 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
11880 49 4e 43 54 20 2d 20 2b 20 63 6f 6c 30 20 2a 20  INCT - + col0 * 
11890 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 30 20 2b 20  col0 + - col0 + 
118a0 2d 20 34 33 20 46 52 4f 4d 20 74 61 62 30 20 41  - 43 FROM tab0 A
118b0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  S cor0..----..-2
118c0 38 33 0d 0a 2d 37 36 39 39 0d 0a 2d 39 35 34 39  83..-7699..-9549
118d0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
118e0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
118f0 2b 20 2b 20 31 35 20 2d 20 2d 20 63 6f 6c 31 20  + + 15 - - col1 
11900 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
11910 30 0d 0a 2d 2d 2d 2d 0d 0a 32 30 0d 0a 32 39 0d  0..----..20..29.
11920 0a 36 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .62....query I r
11930 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
11940 49 53 54 49 4e 43 54 20 37 34 20 2b 20 2d 20 2b  ISTINCT 74 + - +
11950 20 31 31 20 2d 20 2b 20 2b 20 63 6f 6c 32 20 46   11 - + + col2 F
11960 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
11970 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 34 30 0d 0a  ..----..23..40..
11980 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  5....query I row
11990 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63  sort..SELECT - c
119a0 6f 6c 31 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 2b  ol1 * - - col0 +
119b0 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 31   - col2 + - col1
119c0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
119d0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 34 32 30 0d  r0..----..-2420.
119e0 0a 2d 35 30 34 35 0d 0a 2d 35 31 35 30 0d 0a 0d  .-5045..-5150...
119f0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
11a00 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
11a10 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
11a20 6f 72 74 20 6c 61 62 65 6c 2d 34 30 36 0d 0a 53  ort label-406..S
11a30 45 4c 45 43 54 20 2b 20 2b 20 43 4f 55 4e 54 28  ELECT + + COUNT(
11a40 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   * ) AS col1 FRO
11a50 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45 52  M tab0 cor0 WHER
11a60 45 20 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e 55  E col0 IS NOT NU
11a70 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73  LL..----..3....s
11a80 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
11a90 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
11aa0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
11ab0 62 65 6c 2d 34 30 36 0d 0a 53 45 4c 45 43 54 20  bel-406..SELECT 
11ac0 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  + + COUNT ( * ) 
11ad0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
11ae0 30 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c  0 cor0 WHERE col
11af0 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  0 IS NOT NULL..-
11b00 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20  ---..3....query 
11b10 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
11b20 43 54 20 30 20 41 53 20 63 6f 6c 30 2c 20 63 6f  CT 0 AS col0, co
11b30 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l2 AS col1 FROM 
11b40 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
11b50 2d 2d 0d 0a 30 0d 0a 35 39 0d 0a 30 0d 0a 36 38  --..0..59..0..68
11b60 0d 0a 30 0d 0a 39 36 0d 0a 0d 0a 71 75 65 72 79  ..0..96....query
11b70 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
11b80 43 54 20 41 4c 4c 20 2b 20 38 32 20 2d 20 38 36  CT ALL + 82 - 86
11b90 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
11ba0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
11bb0 0d 0a 2d 34 0d 0a 2d 34 0d 0a 2d 34 0d 0a 0d 0a  ..-4..-4..-4....
11bc0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
11bd0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
11be0 20 2d 20 32 34 20 2a 20 34 20 2b 20 2b 20 2d 20   - 24 * 4 + + - 
11bf0 34 37 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 63 6f  47 + col1 * + co
11c00 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
11c10 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d  cor0..----..-46.
11c20 0a 31 30 37 32 0d 0a 31 36 38 34 0d 0a 0d 0a 6f  .1072..1684....o
11c30 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
11c40 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
11c50 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
11c60 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
11c70 6c 2d 34 31 30 0d 0a 53 45 4c 45 43 54 20 41 4c  l-410..SELECT AL
11c80 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53  L * FROM tab2 AS
11c90 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c   cor0 WHERE NULL
11ca0 20 3c 3d 20 63 6f 6c 32 20 2b 20 43 41 53 54 28   <= col2 + CAST(
11cb0 20 2d 20 63 6f 6c 30 20 41 53 20 53 49 47 4e 45   - col0 AS SIGNE
11cc0 44 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  D )..----....ski
11cd0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
11ce0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
11cf0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
11d00 62 65 6c 2d 34 31 30 0d 0a 53 45 4c 45 43 54 20  bel-410..SELECT 
11d10 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ALL * FROM tab2 
11d20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55  AS cor0 WHERE NU
11d30 4c 4c 20 3c 3d 20 63 6f 6c 32 20 2b 20 43 41 53  LL <= col2 + CAS
11d40 54 20 28 20 2d 20 63 6f 6c 30 20 41 53 20 49 4e  T ( - col0 AS IN
11d50 54 45 47 45 52 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d  TEGER )..----...
11d60 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
11d70 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
11d80 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
11d90 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20 3c 3e  HERE NOT col2 <>
11da0 20 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 39   + col2..----..9
11db0 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
11dc0 74 6f 20 63 34 62 34 32 37 36 35 64 66 66 39 34  to c4b42765dff94
11dd0 65 61 61 61 34 36 30 34 30 65 35 33 37 66 62 34  eaaa46040e537fb4
11de0 33 62 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  3b7....query III
11df0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
11e00 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32   ALL * FROM tab2
11e10 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
11e20 4f 54 20 4e 55 4c 4c 20 3c 3e 20 2d 20 32 39 20  OT NULL <> - 29 
11e30 2a 20 2b 20 2d 20 39 37 20 2a 20 63 6f 6c 30 20  * + - 97 * col0 
11e40 2a 20 2d 20 31 37 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  * - 17..----....
11e50 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
11e60 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31  .SELECT ALL col1
11e70 20 2a 20 2b 20 39 39 20 41 53 20 63 6f 6c 30 20   * + 99 AS col0 
11e80 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
11e90 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20  NOT NULL IS NOT 
11ea0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 33 38 36  NULL..----..1386
11eb0 0d 0a 34 36 35 33 0d 0a 34 39 35 0d 0a 0d 0a 71  ..4653..495....q
11ec0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
11ed0 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
11ee0 74 61 62 31 20 57 48 45 52 45 20 2b 20 2b 20 37  tab1 WHERE + + 7
11ef0 39 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  9 IS NOT NULL..-
11f00 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
11f10 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31  shing to c6c0a41
11f20 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31  11b36d04dbc811a1
11f30 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 6f 6e 6c  1e4d54cad....onl
11f40 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
11f50 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
11f60 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49  sion: ..query II
11f70 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
11f80 31 35 0d 0a 53 45 4c 45 43 54 20 38 33 20 44 49  15..SELECT 83 DI
11f90 56 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 2d 20 63  V - col1 + + - c
11fa0 6f 6c 31 20 41 53 20 63 6f 6c 32 2c 20 2d 20 63  ol1 AS col2, - c
11fb0 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol1 AS col2 FROM
11fc0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 34   tab0..----..-24
11fd0 0d 0a 2d 32 31 0d 0a 2d 38 32 0d 0a 2d 38 31 0d  ..-21..-82..-81.
11fe0 0a 2d 38 34 0d 0a 2d 31 0d 0a 0d 0a 73 6b 69 70  .-84..-1....skip
11ff0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
12000 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
12010 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
12020 6c 2d 34 31 35 0d 0a 53 45 4c 45 43 54 20 38 33  l-415..SELECT 83
12030 20 2f 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 2d 20   / - col1 + + - 
12040 63 6f 6c 31 20 41 53 20 63 6f 6c 32 2c 20 2d 20  col1 AS col2, - 
12050 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f  col1 AS col2 FRO
12060 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  M tab0..----..-2
12070 34 0d 0a 2d 32 31 0d 0a 2d 38 32 0d 0a 2d 38 31  4..-21..-82..-81
12080 0d 0a 2d 38 34 0d 0a 2d 31 0d 0a 0d 0a 71 75 65  ..-84..-1....que
12090 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
120a0 4c 45 43 54 20 2b 20 31 35 20 2a 20 2b 20 2d 20  LECT + 15 * + - 
120b0 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 31 20 41 53  col1 + - col1 AS
120c0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
120d0 0a 2d 2d 2d 2d 0d 0a 2d 32 32 34 0d 0a 2d 37 35  .----..-224..-75
120e0 32 0d 0a 2d 38 30 0d 0a 0d 0a 71 75 65 72 79 20  2..-80....query 
120f0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
12100 54 20 63 6f 6c 30 20 2b 20 2b 20 36 34 20 2a 20  T col0 + + 64 * 
12110 2d 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 32 20  - col2 * + col2 
12120 2b 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  + - col1 FROM ta
12130 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 32 34 31  b2..----..-10241
12140 33 0d 0a 2d 32 31 35 32 38 38 0d 0a 2d 33 33 38  3..-215288..-338
12150 36 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  61....query I ro
12160 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 36 33  wsort..SELECT 63
12170 20 2b 20 2d 20 2b 20 39 33 20 46 52 4f 4d 20 74   + - + 93 FROM t
12180 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 30 0d 0a  ab2..----..-30..
12190 2d 33 30 0d 0a 2d 33 30 0d 0a 0d 0a 6f 6e 6c 79  -30..-30....only
121a0 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
121b0 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
121c0 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
121d0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 31 39  owsort label-419
121e0 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20  ..SELECT - col1 
121f0 44 49 56 20 28 20 2d 20 63 6f 6c 30 20 29 20 2b  DIV ( - col0 ) +
12200 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 32 20 46   col0 + + col2 F
12210 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
12220 31 30 35 0d 0a 31 33 33 0d 0a 37 30 0d 0a 0d 0a  105..133..70....
12230 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
12240 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
12250 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
12260 61 62 65 6c 2d 34 31 39 0d 0a 53 45 4c 45 43 54  abel-419..SELECT
12270 20 2d 20 63 6f 6c 31 20 2f 20 28 20 2d 20 63 6f   - col1 / ( - co
12280 6c 30 20 29 20 2b 20 63 6f 6c 30 20 2b 20 2b 20  l0 ) + col0 + + 
12290 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col2 FROM tab2..
122a0 2d 2d 2d 2d 0d 0a 31 30 35 0d 0a 31 33 33 0d 0a  ----..105..133..
122b0 37 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  70....query I ro
122c0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
122d0 6c 31 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 2b 20  l1 + - col0 * + 
122e0 28 20 63 6f 6c 31 20 29 20 2a 20 2d 20 63 6f 6c  ( col1 ) * - col
122f0 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
12300 2d 0d 0a 31 30 37 39 36 37 0d 0a 33 31 35 34 36  -..107967..31546
12310 39 0d 0a 33 37 36 39 34 32 0d 0a 0d 0a 71 75 65  9..376942....que
12320 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
12330 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
12340 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46  - col1 AS col1 F
12350 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
12360 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20   WHERE ( NULL ) 
12370 3c 3e 20 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d  <> - col0..----.
12380 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
12390 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
123a0 20 31 38 20 2b 20 2d 20 63 6f 6c 32 20 46 52 4f   18 + - col2 FRO
123b0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
123c0 2d 2d 2d 2d 0d 0a 2d 32 32 0d 0a 2d 34 30 0d 0a  ----..-22..-40..
123d0 2d 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  -5....onlyif mys
123e0 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
123f0 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 44  : SIGNED type: D
12400 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
12410 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
12420 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
12430 2d 34 32 33 0d 0a 53 45 4c 45 43 54 20 44 49 53  -423..SELECT DIS
12440 54 49 4e 43 54 20 63 6f 6c 32 20 2a 20 2d 20 2b  TINCT col2 * - +
12450 20 63 6f 6c 31 20 2b 20 2d 20 38 38 20 44 49 56   col1 + - 88 DIV
12460 20 2d 20 36 31 20 2b 20 63 6f 6c 32 20 2d 20 2b   - 61 + col2 - +
12470 20 2d 20 43 41 53 54 28 20 2d 20 2d 20 63 6f 6c   - CAST( - - col
12480 32 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20  2 AS SIGNED ) * 
12490 2d 20 32 33 20 2b 20 28 20 2d 20 63 6f 6c 31 20  - 23 + ( - col1 
124a0 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
124b0 2d 0d 0a 2d 32 32 37 37 0d 0a 2d 34 35 30 0d 0a  -..-2277..-450..
124c0 2d 34 39 32 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  -4921....skipif 
124d0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
124e0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
124f0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 32  rowsort label-42
12500 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  3..SELECT DISTIN
12510 43 54 20 63 6f 6c 32 20 2a 20 2d 20 2b 20 63 6f  CT col2 * - + co
12520 6c 31 20 2b 20 2d 20 38 38 20 2f 20 2d 20 36 31  l1 + - 88 / - 61
12530 20 2b 20 63 6f 6c 32 20 2d 20 2b 20 2d 20 43 41   + col2 - + - CA
12540 53 54 20 28 20 2d 20 2d 20 63 6f 6c 32 20 41 53  ST ( - - col2 AS
12550 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2d 20 32   INTEGER ) * - 2
12560 33 20 2b 20 28 20 2d 20 63 6f 6c 31 20 29 20 46  3 + ( - col1 ) F
12570 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
12580 2d 32 32 37 37 0d 0a 2d 34 35 30 0d 0a 2d 34 39  -2277..-450..-49
12590 32 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 49  21....query IIII
125a0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
125b0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41  CT * FROM tab2 A
125c0 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  S cor0 CROSS JOI
125d0 4e 20 74 61 62 30 20 63 6f 72 31 20 57 48 45 52  N tab0 cor1 WHER
125e0 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 49  E NOT ( NULL ) I
125f0 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
12600 0d 0a 35 34 20 76 61 6c 75 65 73 20 68 61 73 68  ..54 values hash
12610 69 6e 67 20 74 6f 20 33 38 38 38 32 32 32 37 63  ing to 38882227c
12620 66 63 37 63 33 62 66 36 32 31 65 64 31 66 33 30  fc7c3bf621ed1f30
12630 33 34 35 37 33 39 63 0d 0a 0d 0a 6f 6e 6c 79 69  345739c....onlyi
12640 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
12650 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
12660 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
12670 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 32 35 0d  wsort label-425.
12680 0a 53 45 4c 45 43 54 20 2d 20 35 36 20 2d 20 2b  .SELECT - 56 - +
12690 20 63 6f 6c 32 20 2b 20 2b 20 38 34 20 2f 20 35   col2 + + 84 / 5
126a0 34 20 2b 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c  4 + - CAST( NULL
126b0 20 41 53 20 53 49 47 4e 45 44 20 29 20 2f 20 2b   AS SIGNED ) / +
126c0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
126d0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
126e0 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
126f0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
12700 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
12710 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
12720 74 20 6c 61 62 65 6c 2d 34 32 35 0d 0a 53 45 4c  t label-425..SEL
12730 45 43 54 20 2d 20 35 36 20 2d 20 2b 20 63 6f 6c  ECT - 56 - + col
12740 32 20 2b 20 2b 20 38 34 20 2f 20 35 34 20 2b 20  2 + + 84 / 54 + 
12750 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
12760 20 49 4e 54 45 47 45 52 20 29 20 2f 20 2b 20 63   INTEGER ) / + c
12770 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol1 FROM tab1 AS
12780 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
12790 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
127a0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
127b0 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
127c0 4d 20 74 61 62 31 20 63 6f 72 30 20 57 48 45 52  M tab1 cor0 WHER
127d0 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 4e  E NOT ( NULL ) N
127e0 4f 54 20 49 4e 20 28 20 2d 20 2d 20 63 6f 6c 32  OT IN ( - - col2
127f0 2c 20 32 30 2c 20 63 6f 6c 30 20 29 0d 0a 2d 2d  , 20, col0 )..--
12800 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
12810 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
12820 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
12830 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
12840 20 6c 61 62 65 6c 2d 34 32 37 0d 0a 53 45 4c 45   label-427..SELE
12850 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 44 49  CT ALL + col2 DI
12860 56 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c  V + col1 + + col
12870 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
12880 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 30 0d 0a  or0..----..100..
12890 32 31 0d 0a 38 31 0d 0a 0d 0a 73 6b 69 70 69 66  21..81....skipif
128a0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
128b0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
128c0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
128d0 32 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  27..SELECT ALL +
128e0 20 63 6f 6c 32 20 2f 20 2b 20 63 6f 6c 31 20 2b   col2 / + col1 +
128f0 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   + col1 FROM tab
12900 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
12910 0a 31 30 30 0d 0a 32 31 0d 0a 38 31 0d 0a 0d 0a  .100..21..81....
12920 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
12930 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20 2b 20 35  ..SELECT - ( + 5
12940 36 20 29 20 41 53 20 63 6f 6c 30 2c 20 2b 20 63  6 ) AS col0, + c
12950 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol1 AS col2 FROM
12960 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
12970 2d 2d 2d 0d 0a 2d 35 36 0d 0a 31 34 0d 0a 2d 35  ---..-56..14..-5
12980 36 0d 0a 34 37 0d 0a 2d 35 36 0d 0a 35 0d 0a 0d  6..47..-56..5...
12990 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
129a0 74 0d 0a 53 45 4c 45 43 54 20 2d 20 35 30 2c 20  t..SELECT - 50, 
129b0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col1 FROM tab1..
129c0 2d 2d 2d 2d 0d 0a 2d 35 30 0d 0a 31 34 0d 0a 2d  ----..-50..14..-
129d0 35 30 0d 0a 34 37 0d 0a 2d 35 30 0d 0a 35 0d 0a  50..47..-50..5..
129e0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
129f0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
12a00 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  * FROM tab2 WHER
12a10 45 20 2b 20 63 6f 6c 30 20 2a 20 63 6f 6c 30 20  E + col0 * col0 
12a20 2d 20 63 6f 6c 30 20 2b 20 38 39 20 49 53 20 4e  - col0 + 89 IS N
12a30 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  OT NULL..----..9
12a40 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
12a50 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38  to 75c998aa53ac8
12a60 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30  3218cbf2feb962d0
12a70 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  a49....query II 
12a80 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
12a90 41 4c 4c 20 2d 20 63 6f 6c 31 2c 20 63 6f 6c 31  ALL - col1, col1
12aa0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
12ab0 0d 0a 2d 35 31 0d 0a 35 31 0d 0a 2d 36 37 0d 0a  ..-51..51..-67..
12ac0 36 37 0d 0a 2d 37 37 0d 0a 37 37 0d 0a 0d 0a 71  67..-77..77....q
12ad0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
12ae0 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
12af0 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 33  tab1 WHERE NOT 3
12b00 36 20 3c 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  6 <= NULL..----.
12b10 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
12b20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
12b30 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
12b40 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 33 33 0d  wsort label-433.
12b50 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28  .SELECT + COUNT(
12b60 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f   * ) AS col0 FRO
12b70 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
12b80 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 32 20  HERE NOT - col2 
12b90 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33  IS NULL..----..3
12ba0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
12bb0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
12bc0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
12bd0 72 74 20 6c 61 62 65 6c 2d 34 33 33 0d 0a 53 45  rt label-433..SE
12be0 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a  LECT + COUNT ( *
12bf0 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
12c00 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
12c10 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 32 20 49 53  RE NOT - col2 IS
12c20 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   NULL..----..3..
12c30 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
12c40 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67   CAST syntax: ag
12c50 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
12c60 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a  DECIMAL type: ..
12c70 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
12c80 6c 61 62 65 6c 2d 34 33 34 0d 0a 53 45 4c 45 43  label-434..SELEC
12c90 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54  T DISTINCT COUNT
12ca0 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ( * ) AS col1 FR
12cb0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
12cc0 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 42  WHERE NOT NULL B
12cd0 45 54 57 45 45 4e 20 2d 20 28 20 2d 20 43 41 53  ETWEEN - ( - CAS
12ce0 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d  T( NULL AS DECIM
12cf0 41 4c 20 29 20 29 20 41 4e 44 20 63 6f 6c 32 0d  AL ) ) AND col2.
12d00 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .----..0....skip
12d10 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
12d20 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
12d30 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
12d40 2d 34 33 34 0d 0a 53 45 4c 45 43 54 20 44 49 53  -434..SELECT DIS
12d50 54 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 2a 20  TINCT COUNT ( * 
12d60 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
12d70 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
12d80 45 20 4e 4f 54 20 4e 55 4c 4c 20 42 45 54 57 45  E NOT NULL BETWE
12d90 45 4e 20 2d 20 28 20 2d 20 43 41 53 54 20 28 20  EN - ( - CAST ( 
12da0 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 29  NULL AS REAL ) )
12db0 20 41 4e 44 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d   AND col2..----.
12dc0 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  .0....skipif pos
12dd0 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
12de0 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
12df0 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
12e00 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
12e10 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
12e20 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
12e30 20 2d 20 63 6f 6c 30 20 63 6f 6c 31 2c 20 63 6f   - col0 col1, co
12e40 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l2 FROM tab0..--
12e50 2d 2d 0d 0a 2d 31 35 0d 0a 34 37 0d 0a 2d 38 37  --..-15..47..-87
12e60 0d 0a 31 30 0d 0a 2d 39 37 0d 0a 39 39 0d 0a 0d  ..10..-97..99...
12e70 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
12e80 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67  CAST syntax: agg
12e90 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53  regate syntax: S
12ea0 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
12eb0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
12ec0 62 65 6c 2d 34 33 36 0d 0a 53 45 4c 45 43 54 20  bel-436..SELECT 
12ed0 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20 43 41  MAX( DISTINCT CA
12ee0 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
12ef0 45 44 20 29 20 29 20 2b 20 2b 20 43 4f 55 4e 54  ED ) ) + + COUNT
12f00 28 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 29 20 41  ( ALL + col0 ) A
12f10 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
12f20 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
12f30 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
12f40 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
12f50 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
12f60 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 33 36  owsort label-436
12f70 0d 0a 53 45 4c 45 43 54 20 4d 41 58 20 28 20 44  ..SELECT MAX ( D
12f80 49 53 54 49 4e 43 54 20 43 41 53 54 20 28 20 4e  ISTINCT CAST ( N
12f90 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
12fa0 20 29 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20 41   ) + + COUNT ( A
12fb0 4c 4c 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63  LL + col0 ) AS c
12fc0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
12fd0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
12fe0 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  L....query I row
12ff0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
13000 54 49 4e 43 54 20 63 6f 6c 32 20 2a 20 2b 20 2b  TINCT col2 * + +
13010 20 33 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   3 FROM tab1 AS 
13020 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37 37 0d  cor0..----..177.
13030 0a 32 30 34 0d 0a 32 38 38 0d 0a 0d 0a 6f 6e 6c  .204..288....onl
13040 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
13050 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
13060 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
13070 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
13080 33 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  38..SELECT ALL -
13090 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
130a0 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 31 2c  IGNED ) AS col1,
130b0 20 2b 20 37 36 20 2b 20 2d 20 2b 20 63 6f 6c 30   + 76 + - + col0
130c0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
130d0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
130e0 2d 31 35 0d 0a 4e 55 4c 4c 0d 0a 2d 39 0d 0a 4e  -15..NULL..-9..N
130f0 55 4c 4c 0d 0a 32 35 0d 0a 0d 0a 73 6b 69 70 69  ULL..25....skipi
13100 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
13110 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
13120 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
13130 2d 34 33 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -438..SELECT ALL
13140 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   - CAST ( NULL A
13150 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 63  S INTEGER ) AS c
13160 6f 6c 31 2c 20 2b 20 37 36 20 2b 20 2d 20 2b 20  ol1, + 76 + - + 
13170 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
13180 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
13190 4c 4c 0d 0a 2d 31 35 0d 0a 4e 55 4c 4c 0d 0a 2d  LL..-15..NULL..-
131a0 39 0d 0a 4e 55 4c 4c 0d 0a 32 35 0d 0a 0d 0a 71  9..NULL..25....q
131b0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
131c0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
131d0 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48  ROM tab0 cor0 WH
131e0 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 30 20 2a  ERE NOT - col0 *
131f0 20 2d 20 63 6f 6c 30 20 2f 20 2d 20 63 6f 6c 30   - col0 / - col0
13200 20 2a 20 63 6f 6c 30 20 3c 3e 20 2b 20 63 6f 6c   * col0 <> + col
13210 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  0..----....query
13220 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
13230 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63  ECT DISTINCT - c
13240 6f 6c 31 20 41 53 20 63 6f 6c 30 2c 20 2b 20 28  ol1 AS col0, + (
13250 20 32 31 20 29 20 41 53 20 63 6f 6c 30 20 46 52   21 ) AS col0 FR
13260 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
13270 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 32 31 0d 0a 2d  .----..-1..21..-
13280 32 31 0d 0a 32 31 0d 0a 2d 38 31 0d 0a 32 31 0d  21..21..-81..21.
13290 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
132a0 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20  rt..SELECT col1 
132b0 2a 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 2b 20 63  * - col1 * + + c
132c0 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol0 AS col1 FROM
132d0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 38   tab0..----..-38
132e0 33 36 37 0d 0a 2d 39 37 0d 0a 2d 39 38 34 31 35  367..-97..-98415
132f0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
13300 6f 72 74 0d 0a 53 45 4c 45 43 54 20 33 32 20 2a  ort..SELECT 32 *
13310 20 28 20 2d 20 63 6f 6c 30 20 29 20 41 53 20 63   ( - col0 ) AS c
13320 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
13330 2d 2d 2d 0d 0a 2d 31 36 33 32 0d 0a 2d 32 37 32  ---..-1632..-272
13340 30 0d 0a 2d 32 39 31 32 0d 0a 0d 0a 6f 6e 6c 79  0..-2912....only
13350 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
13360 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
13370 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
13380 61 62 65 6c 2d 34 34 33 0d 0a 53 45 4c 45 43 54  abel-443..SELECT
13390 20 44 49 53 54 49 4e 43 54 20 2b 20 53 55 4d 28   DISTINCT + SUM(
133a0 20 2d 20 2d 20 31 39 20 29 20 41 53 20 63 6f 6c   - - 19 ) AS col
133b0 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
133c0 2d 0d 0a 35 37 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..57....skipif 
133d0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
133e0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
133f0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 34  rowsort label-44
13400 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  3..SELECT DISTIN
13410 43 54 20 2b 20 53 55 4d 20 28 20 2d 20 2d 20 31  CT + SUM ( - - 1
13420 39 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  9 ) AS col0 FROM
13430 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 37 0d   tab2..----..57.
13440 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
13450 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
13460 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
13470 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
13480 6c 61 62 65 6c 2d 34 34 34 0d 0a 53 45 4c 45 43  label-444..SELEC
13490 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48  T * FROM tab1 WH
134a0 45 52 45 20 28 20 63 6f 6c 30 20 2b 20 2d 20 2b  ERE ( col0 + - +
134b0 20 63 6f 6c 32 20 2a 20 2b 20 43 41 53 54 28 20   col2 * + CAST( 
134c0 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
134d0 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 20 29 0d 0a   IS NOT NULL )..
134e0 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ----....skipif m
134f0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
13500 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49  tible..query III
13510 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
13520 34 34 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  44..SELECT * FRO
13530 4d 20 74 61 62 31 20 57 48 45 52 45 20 28 20 63  M tab1 WHERE ( c
13540 6f 6c 30 20 2b 20 2d 20 2b 20 63 6f 6c 32 20 2a  ol0 + - + col2 *
13550 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   + CAST ( NULL A
13560 53 20 49 4e 54 45 47 45 52 20 29 20 49 53 20 4e  S INTEGER ) IS N
13570 4f 54 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d  OT NULL )..----.
13580 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
13590 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61  # CAST syntax: a
135a0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
135b0 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
135c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
135d0 6c 61 62 65 6c 2d 34 34 35 0d 0a 53 45 4c 45 43  label-445..SELEC
135e0 54 20 2d 20 53 55 4d 28 20 41 4c 4c 20 2d 20 2d  T - SUM( ALL - -
135f0 20 28 20 2b 20 28 20 2d 20 2b 20 63 6f 6c 30 20   ( + ( - + col0 
13600 29 20 29 20 29 20 2a 20 2d 20 2d 20 43 41 53 54  ) ) ) * - - CAST
13610 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
13620 20 29 20 2a 20 2b 20 2d 20 43 4f 55 4e 54 28 20   ) * + - COUNT( 
13630 2a 20 29 20 2f 20 2b 20 43 4f 55 4e 54 28 20 2a  * ) / + COUNT( *
13640 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d   ) FROM tab1..--
13650 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
13660 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
13670 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
13680 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
13690 2d 34 34 35 0d 0a 53 45 4c 45 43 54 20 2d 20 53  -445..SELECT - S
136a0 55 4d 20 28 20 41 4c 4c 20 2d 20 2d 20 28 20 2b  UM ( ALL - - ( +
136b0 20 28 20 2d 20 2b 20 63 6f 6c 30 20 29 20 29 20   ( - + col0 ) ) 
136c0 29 20 2a 20 2d 20 2d 20 43 41 53 54 20 28 20 4e  ) * - - CAST ( N
136d0 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
136e0 20 2a 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a   * + - COUNT ( *
136f0 20 29 20 2f 20 2b 20 43 4f 55 4e 54 20 28 20 2a   ) / + COUNT ( *
13700 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d   ) FROM tab1..--
13710 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79  --..NULL....only
13720 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
13730 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
13740 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
13750 61 62 65 6c 2d 34 34 36 0d 0a 53 45 4c 45 43 54  abel-446..SELECT
13760 20 44 49 53 54 49 4e 43 54 20 53 55 4d 28 20 63   DISTINCT SUM( c
13770 6f 6c 32 20 29 20 2a 20 2d 20 32 36 20 41 53 20  ol2 ) * - 26 AS 
13780 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
13790 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  S cor0..----..-3
137a0 31 34 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  146....skipif my
137b0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
137c0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
137d0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 34 36 0d  wsort label-446.
137e0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
137f0 20 53 55 4d 20 28 20 63 6f 6c 32 20 29 20 2a 20   SUM ( col2 ) * 
13800 2d 20 32 36 20 41 53 20 63 6f 6c 32 20 46 52 4f  - 26 AS col2 FRO
13810 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
13820 2d 2d 2d 2d 0d 0a 2d 33 31 34 36 0d 0a 0d 0a 71  ----..-3146....q
13830 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
13840 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
13850 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  - col2 FROM tab0
13860 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c   cor0 WHERE NULL
13870 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2b 20 63   NOT BETWEEN + c
13880 6f 6c 32 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d  ol2 AND NULL..--
13890 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  --....query II r
138a0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
138b0 20 37 34 20 2b 20 2d 20 2b 20 37 39 20 41 53 20   74 + - + 79 AS 
138c0 63 6f 6c 30 2c 20 33 39 20 46 52 4f 4d 20 74 61  col0, 39 FROM ta
138d0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
138e0 0d 0a 2d 31 35 33 0d 0a 33 39 0d 0a 2d 31 35 33  ..-153..39..-153
138f0 0d 0a 33 39 0d 0a 2d 31 35 33 0d 0a 33 39 0d 0a  ..39..-153..39..
13900 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
13910 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
13920 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
13930 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
13940 65 6c 2d 34 34 39 0d 0a 53 45 4c 45 43 54 20 2b  el-449..SELECT +
13950 20 63 6f 6c 31 20 44 49 56 20 2d 20 36 35 20 41   col1 DIV - 65 A
13960 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
13970 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 31 0d 0a  ..----..-1..-1..
13980 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
13990 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
139a0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
139b0 6f 72 74 20 6c 61 62 65 6c 2d 34 34 39 0d 0a 53  ort label-449..S
139c0 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2f 20 2d  ELECT + col1 / -
139d0 20 36 35 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   65 AS col2 FROM
139e0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d   tab2..----..-1.
139f0 0a 2d 31 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20  .-1..0....query 
13a00 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
13a10 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 37 2c  CT DISTINCT + 7,
13a20 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
13a30 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37  AS cor0..----..7
13a40 0d 0a 32 33 0d 0a 37 0d 0a 34 30 0d 0a 37 0d 0a  ..23..7..40..7..
13a50 35 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  58....onlyif mys
13a60 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
13a70 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  : aggregate synt
13a80 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
13a90 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
13aa0 72 74 20 6c 61 62 65 6c 2d 34 35 31 0d 0a 53 45  rt label-451..SE
13ab0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
13ac0 2b 20 43 41 53 54 28 20 43 4f 55 4e 54 28 20 2a  + CAST( COUNT( *
13ad0 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 41   ) AS SIGNED ) A
13ae0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
13af0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
13b00 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  -3....skipif mys
13b10 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
13b20 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
13b30 73 6f 72 74 20 6c 61 62 65 6c 2d 34 35 31 0d 0a  sort label-451..
13b40 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
13b50 2d 20 2b 20 43 41 53 54 20 28 20 43 4f 55 4e 54  - + CAST ( COUNT
13b60 20 28 20 2a 20 29 20 41 53 20 49 4e 54 45 47 45   ( * ) AS INTEGE
13b70 52 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  R ) AS col1 FROM
13b80 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
13b90 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79  ---..-3....query
13ba0 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
13bb0 45 43 54 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f  ECT + col0 AS co
13bc0 6c 31 2c 20 2d 20 38 37 20 46 52 4f 4d 20 74 61  l1, - 87 FROM ta
13bd0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
13be0 0d 0a 31 35 0d 0a 2d 38 37 0d 0a 38 37 0d 0a 2d  ..15..-87..87..-
13bf0 38 37 0d 0a 39 37 0d 0a 2d 38 37 0d 0a 0d 0a 71  87..97..-87....q
13c00 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
13c10 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
13c20 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53  T * FROM tab2 AS
13c30 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20 63 6f   cor0 WHERE - co
13c40 6c 32 20 2b 20 2d 20 2d 20 38 35 20 3e 3d 20 32  l2 + - - 85 >= 2
13c50 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  0..----..9 value
13c60 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63  s hashing to 75c
13c70 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62  998aa53ac83218cb
13c80 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d  f2feb962d0a49...
13c90 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
13ca0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
13cb0 54 20 2b 20 34 39 20 41 53 20 63 6f 6c 32 20 46  T + 49 AS col2 F
13cc0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
13cd0 34 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  49....skipif pos
13ce0 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
13cf0 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
13d00 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
13d10 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
13d20 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
13d30 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 33 39 20  SELECT ALL + 39 
13d40 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col2 FROM tab2..
13d50 2d 2d 2d 2d 0d 0a 33 39 0d 0a 33 39 0d 0a 33 39  ----..39..39..39
13d60 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
13d70 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
13d80 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
13d90 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 35 36  0 WHERE NOT - 56
13da0 20 2a 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e   * col2 IS NOT N
13db0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ULL..----....onl
13dc0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
13dd0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
13de0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
13df0 6c 61 62 65 6c 2d 34 35 37 0d 0a 53 45 4c 45 43  label-457..SELEC
13e00 54 20 44 49 53 54 49 4e 43 54 20 38 36 20 2b 20  T DISTINCT 86 + 
13e10 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 63 6f 6c  + COUNT( * ) col
13e20 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
13e30 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 39 0d 0a 0d  or0..----..89...
13e40 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
13e50 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
13e60 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
13e70 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
13e80 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
13e90 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
13ea0 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
13eb0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
13ec0 35 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  57..SELECT DISTI
13ed0 4e 43 54 20 38 36 20 2b 20 2b 20 43 4f 55 4e 54  NCT 86 + + COUNT
13ee0 20 28 20 2a 20 29 20 63 6f 6c 32 20 46 52 4f 4d   ( * ) col2 FROM
13ef0 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
13f00 2d 2d 2d 0d 0a 38 39 0d 0a 0d 0a 71 75 65 72 79  ---..89....query
13f10 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
13f20 43 54 20 2b 20 2d 20 38 20 41 53 20 63 6f 6c 32  CT + - 8 AS col2
13f30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
13f40 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
13f50 62 32 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d  b2 AS cor1..----
13f60 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
13f70 6e 67 20 74 6f 20 34 37 66 34 33 66 32 33 64 63  ng to 47f43f23dc
13f80 64 32 33 39 35 39 64 39 37 64 38 65 33 62 30 61  d23959d97d8e3b0a
13f90 61 62 36 39 32 65 0d 0a 0d 0a 6f 6e 6c 79 69 66  ab692e....onlyif
13fa0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
13fb0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
13fc0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
13fd0 65 6c 2d 34 35 39 0d 0a 53 45 4c 45 43 54 20 41  el-459..SELECT A
13fe0 4c 4c 20 2d 20 38 32 20 2b 20 2d 20 36 36 20 2b  LL - 82 + - 66 +
13ff0 20 2b 20 31 34 20 2a 20 43 4f 55 4e 54 28 20 2a   + 14 * COUNT( *
14000 20 29 20 2b 20 2d 20 31 32 20 46 52 4f 4d 20 74   ) + - 12 FROM t
14010 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
14020 2d 0d 0a 2d 31 31 38 0d 0a 0d 0a 73 6b 69 70 69  -..-118....skipi
14030 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
14040 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
14050 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
14060 34 35 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  459..SELECT ALL 
14070 2d 20 38 32 20 2b 20 2d 20 36 36 20 2b 20 2b 20  - 82 + - 66 + + 
14080 31 34 20 2a 20 43 4f 55 4e 54 20 28 20 2a 20 29  14 * COUNT ( * )
14090 20 2b 20 2d 20 31 32 20 46 52 4f 4d 20 74 61 62   + - 12 FROM tab
140a0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
140b0 0a 2d 31 31 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .-118....onlyif 
140c0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
140d0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
140e0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
140f0 6c 2d 34 36 30 0d 0a 53 45 4c 45 43 54 20 2d 20  l-460..SELECT - 
14100 4d 49 4e 28 20 44 49 53 54 49 4e 43 54 20 2d 20  MIN( DISTINCT - 
14110 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30 20 46  col0 ) AS col0 F
14120 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
14130 0d 0a 2d 2d 2d 2d 0d 0a 37 35 0d 0a 0d 0a 73 6b  ..----..75....sk
14140 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
14150 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
14160 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
14170 65 6c 2d 34 36 30 0d 0a 53 45 4c 45 43 54 20 2d  el-460..SELECT -
14180 20 4d 49 4e 20 28 20 44 49 53 54 49 4e 43 54 20   MIN ( DISTINCT 
14190 2d 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30  - col0 ) AS col0
141a0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
141b0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 35 0d 0a 0d 0a  r0..----..75....
141c0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
141d0 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
141e0 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
141f0 45 52 45 20 63 6f 6c 32 20 2d 20 2b 20 2b 20 39  ERE col2 - + + 9
14200 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  2 IS NULL..----.
14210 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
14220 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
14230 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
14240 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 36 32 0d  wsort label-462.
14250 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
14260 20 2d 20 2b 20 4d 41 58 28 20 44 49 53 54 49 4e   - + MAX( DISTIN
14270 43 54 20 2d 20 63 6f 6c 30 20 29 20 2b 20 31 39  CT - col0 ) + 19
14280 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d   FROM tab2 cor0.
14290 0a 2d 2d 2d 2d 0d 0a 36 35 0d 0a 0d 0a 73 6b 69  .----..65....ski
142a0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
142b0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
142c0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
142d0 6c 2d 34 36 32 0d 0a 53 45 4c 45 43 54 20 44 49  l-462..SELECT DI
142e0 53 54 49 4e 43 54 20 2d 20 2b 20 4d 41 58 20 28  STINCT - + MAX (
142f0 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30   DISTINCT - col0
14300 20 29 20 2b 20 31 39 20 46 52 4f 4d 20 74 61 62   ) + 19 FROM tab
14310 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 35  2 cor0..----..65
14320 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
14330 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
14340 49 4e 43 54 20 38 38 20 2a 20 2d 20 63 6f 6c 30  INCT 88 * - col0
14350 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 63 6f   + + col1 + + co
14360 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
14370 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 34 32  cor0..----..-442
14380 33 0d 0a 2d 37 33 39 30 0d 0a 2d 37 38 37 30 0d  3..-7390..-7870.
14390 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
143a0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
143b0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
143c0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 36 34 0d  wsort label-464.
143d0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
143e0 20 2b 20 37 36 20 2a 20 2d 20 43 4f 55 4e 54 28   + 76 * - COUNT(
143f0 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f   * ) AS col2 FRO
14400 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  M tab1..----..-2
14410 32 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  28....skipif mys
14420 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
14430 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
14440 73 6f 72 74 20 6c 61 62 65 6c 2d 34 36 34 0d 0a  sort label-464..
14450 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
14460 2b 20 37 36 20 2a 20 2d 20 43 4f 55 4e 54 20 28  + 76 * - COUNT (
14470 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f   * ) AS col2 FRO
14480 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  M tab1..----..-2
14490 32 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  28....onlyif mys
144a0 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
144b0 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
144c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
144d0 20 6c 61 62 65 6c 2d 34 36 35 0d 0a 53 45 4c 45   label-465..SELE
144e0 43 54 20 63 6f 6c 32 20 2b 20 2b 20 43 41 53 54  CT col2 + + CAST
144f0 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
14500 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
14510 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab0..----..NULL
14520 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
14530 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
14540 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
14550 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
14560 61 62 65 6c 2d 34 36 35 0d 0a 53 45 4c 45 43 54  abel-465..SELECT
14570 20 63 6f 6c 32 20 2b 20 2b 20 43 41 53 54 20 28   col2 + + CAST (
14580 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
14590 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
145a0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab0..----..NULL
145b0 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
145c0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
145d0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
145e0 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
145f0 6f 72 74 20 6c 61 62 65 6c 2d 34 36 36 0d 0a 53  ort label-466..S
14600 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
14610 20 31 32 20 41 53 20 63 6f 6c 32 2c 20 43 4f 55   12 AS col2, COU
14620 4e 54 28 20 2a 20 29 20 2a 20 2b 20 2b 20 43 4f  NT( * ) * + + CO
14630 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
14640 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 0d 0a 39  b2..----..-12..9
14650 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
14660 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
14670 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
14680 6f 72 74 20 6c 61 62 65 6c 2d 34 36 36 0d 0a 53  ort label-466..S
14690 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
146a0 20 31 32 20 41 53 20 63 6f 6c 32 2c 20 43 4f 55   12 AS col2, COU
146b0 4e 54 20 28 20 2a 20 29 20 2a 20 2b 20 2b 20 43  NT ( * ) * + + C
146c0 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20  OUNT ( * ) FROM 
146d0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 0d  tab2..----..-12.
146e0 0a 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .9....onlyif mys
146f0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
14700 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
14710 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
14720 36 37 0d 0a 53 45 4c 45 43 54 20 2d 20 33 35 20  67..SELECT - 35 
14730 2b 20 2b 20 4d 49 4e 28 20 63 6f 6c 30 20 29 20  + + MIN( col0 ) 
14740 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col1 FROM tab1..
14750 2d 2d 2d 2d 0d 0a 31 36 0d 0a 0d 0a 73 6b 69 70  ----..16....skip
14760 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
14770 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
14780 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
14790 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
147a0 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
147b0 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
147c0 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
147d0 6f 72 74 20 6c 61 62 65 6c 2d 34 36 37 0d 0a 53  ort label-467..S
147e0 45 4c 45 43 54 20 2d 20 33 35 20 2b 20 2b 20 4d  ELECT - 35 + + M
147f0 49 4e 20 28 20 63 6f 6c 30 20 29 20 63 6f 6c 31  IN ( col0 ) col1
14800 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
14810 0d 0a 31 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..16....onlyif m
14820 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
14830 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
14840 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
14850 72 74 20 6c 61 62 65 6c 2d 34 36 38 0d 0a 53 45  rt label-468..SE
14860 4c 45 43 54 20 63 6f 6c 31 20 2a 20 2d 20 43 41  LECT col1 * - CA
14870 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
14880 45 44 20 29 20 2b 20 2d 20 2d 20 63 6f 6c 31 20  ED ) + - - col1 
14890 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
148a0 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  2..----..NULL..N
148b0 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ULL..NULL....ski
148c0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
148d0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
148e0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
148f0 6c 2d 34 36 38 0d 0a 53 45 4c 45 43 54 20 63 6f  l-468..SELECT co
14900 6c 31 20 2a 20 2d 20 43 41 53 54 20 28 20 4e 55  l1 * - CAST ( NU
14910 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
14920 2b 20 2d 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f  + - - col1 AS co
14930 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
14940 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
14950 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  NULL....onlyif m
14960 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
14970 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
14980 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
14990 2d 34 36 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -469..SELECT ALL
149a0 20 4d 49 4e 28 20 41 4c 4c 20 33 32 20 29 20 2a   MIN( ALL 32 ) *
149b0 20 2d 20 34 33 20 41 53 20 63 6f 6c 32 20 46 52   - 43 AS col2 FR
149c0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
149d0 31 33 37 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  1376....skipif m
149e0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
149f0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
14a00 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 36 39  owsort label-469
14a10 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 4d 49 4e  ..SELECT ALL MIN
14a20 20 28 20 41 4c 4c 20 33 32 20 29 20 2a 20 2d 20   ( ALL 32 ) * - 
14a30 34 33 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  43 AS col2 FROM 
14a40 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 37  tab1..----..-137
14a50 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  6....query I row
14a60 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
14a70 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 32 20 2d   col2 + - col2 -
14a80 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20   + col2 AS col1 
14a90 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
14aa0 0a 2d 31 30 0d 0a 2d 34 37 0d 0a 2d 39 39 0d 0a  .-10..-47..-99..
14ab0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
14ac0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
14ad0 63 6f 6c 30 20 2a 20 2d 20 2b 20 63 6f 6c 31 20  col0 * - + col1 
14ae0 2a 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32  * + col2 AS col2
14af0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
14b00 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 38 32 37 30 0d  r0..----..18270.
14b10 0a 35 37 31 30 35 0d 0a 39 36 30 33 0d 0a 0d 0a  .57105..9603....
14b20 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
14b30 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
14b40 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
14b50 72 74 20 6c 61 62 65 6c 2d 34 37 32 0d 0a 53 45  rt label-472..SE
14b60 4c 45 43 54 20 41 4c 4c 20 2d 20 32 38 20 2a 20  LECT ALL - 28 * 
14b70 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2b  + COUNT( * ) + +
14b80 20 53 55 4d 28 20 2b 20 63 6f 6c 32 20 29 20 41   SUM( + col2 ) A
14b90 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
14ba0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
14bb0 37 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  72....skipif mys
14bc0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
14bd0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
14be0 73 6f 72 74 20 6c 61 62 65 6c 2d 34 37 32 0d 0a  sort label-472..
14bf0 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 32 38 20  SELECT ALL - 28 
14c00 2a 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  * + COUNT ( * ) 
14c10 2b 20 2b 20 53 55 4d 20 28 20 2b 20 63 6f 6c 32  + + SUM ( + col2
14c20 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
14c30 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
14c40 2d 2d 0d 0a 37 32 0d 0a 0d 0a 71 75 65 72 79 20  --..72....query 
14c50 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
14c60 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
14c70 61 62 30 20 57 48 45 52 45 20 32 31 20 2b 20 2b  ab0 WHERE 21 + +
14c80 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 31 20 3c   col0 * + col1 <
14c90 3e 20 2d 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d  > - - col1..----
14ca0 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
14cb0 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35 64 66  ng to c4b42765df
14cc0 66 39 34 65 61 61 61 34 36 30 34 30 65 35 33 37  f94eaaa46040e537
14cd0 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72 79 20  fb43b7....query 
14ce0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
14cf0 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 63  T DISTINCT - - c
14d00 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol0 AS col1 FROM
14d10 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
14d20 45 52 45 20 37 35 20 49 53 20 4e 4f 54 20 4e 55  ERE 75 IS NOT NU
14d30 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 38 35  LL..----..51..85
14d40 0d 0a 39 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..91....onlyif m
14d50 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
14d60 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
14d70 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
14d80 2d 34 37 35 0d 0a 53 45 4c 45 43 54 20 2b 20 2d  -475..SELECT + -
14d90 20 28 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20   ( + - COUNT( * 
14da0 29 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ) ) FROM tab0 AS
14db0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   cor0..----..3..
14dc0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
14dd0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
14de0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
14df0 20 6c 61 62 65 6c 2d 34 37 35 0d 0a 53 45 4c 45   label-475..SELE
14e00 43 54 20 2b 20 2d 20 28 20 2b 20 2d 20 43 4f 55  CT + - ( + - COU
14e10 4e 54 20 28 20 2a 20 29 20 29 20 46 52 4f 4d 20  NT ( * ) ) FROM 
14e20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
14e30 2d 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  --..3....onlyif 
14e40 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
14e50 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
14e60 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
14e70 6c 2d 34 37 36 0d 0a 53 45 4c 45 43 54 20 2d 20  l-476..SELECT - 
14e80 31 33 20 2a 20 43 4f 55 4e 54 28 20 2b 20 63 6f  13 * COUNT( + co
14e90 6c 32 20 29 20 2b 20 2b 20 43 4f 55 4e 54 28 20  l2 ) + + COUNT( 
14ea0 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  * ) FROM tab0 AS
14eb0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 36   cor0..----..-36
14ec0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
14ed0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
14ee0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
14ef0 72 74 20 6c 61 62 65 6c 2d 34 37 36 0d 0a 53 45  rt label-476..SE
14f00 4c 45 43 54 20 2d 20 31 33 20 2a 20 43 4f 55 4e  LECT - 13 * COUN
14f10 54 20 28 20 2b 20 63 6f 6c 32 20 29 20 2b 20 2b  T ( + col2 ) + +
14f20 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f   COUNT ( * ) FRO
14f30 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
14f40 2d 2d 2d 2d 0d 0a 2d 33 36 0d 0a 0d 0a 71 75 65  ----..-36....que
14f50 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
14f60 4c 45 43 54 20 2b 20 63 6f 6c 32 20 46 52 4f 4d  LECT + col2 FROM
14f70 20 74 61 62 31 20 63 6f 72 30 20 57 48 45 52 45   tab1 cor0 WHERE
14f80 20 4e 4f 54 20 63 6f 6c 32 20 3c 20 2d 20 63 6f   NOT col2 < - co
14f90 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 36 38  l1..----..59..68
14fa0 0d 0a 39 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..96....query I 
14fb0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
14fc0 44 49 53 54 49 4e 43 54 20 39 33 20 2a 20 63 6f  DISTINCT 93 * co
14fd0 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l2 AS col1 FROM 
14fe0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 34 33 37 31  tab0..----..4371
14ff0 0d 0a 39 32 30 37 0d 0a 39 33 30 0d 0a 0d 0a 6f  ..9207..930....o
15000 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
15010 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
15020 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
15030 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
15040 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
15050 6c 2d 34 37 39 0d 0a 53 45 4c 45 43 54 20 44 49  l-479..SELECT DI
15060 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54 28 20  STINCT + COUNT( 
15070 2a 20 29 20 44 49 56 20 2d 20 2d 20 38 38 20 46  * ) DIV - - 88 F
15080 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
15090 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
150a0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
150b0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
150c0 6f 72 74 20 6c 61 62 65 6c 2d 34 37 39 0d 0a 53  ort label-479..S
150d0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
150e0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2f 20 2d   COUNT ( * ) / -
150f0 20 2d 20 38 38 20 46 52 4f 4d 20 74 61 62 32 0d   - 88 FROM tab2.
15100 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79  .----..0....only
15110 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
15120 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74  syntax: aggregat
15130 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  e syntax: SIGNED
15140 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
15150 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
15160 34 38 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  480..SELECT ALL 
15170 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2d 20 43  COUNT( * ) * - C
15180 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20 2d 20  OUNT( * ) * + - 
15190 37 34 20 63 6f 6c 31 2c 20 43 41 53 54 28 20 4e  74 col1, CAST( N
151a0 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
151b0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
151c0 32 0d 0a 2d 2d 2d 2d 0d 0a 36 36 36 0d 0a 4e 55  2..----..666..NU
151d0 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
151e0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
151f0 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  ble..skipif post
15200 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
15210 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
15220 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
15230 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
15240 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
15250 61 62 65 6c 2d 34 38 30 0d 0a 53 45 4c 45 43 54  abel-480..SELECT
15260 20 41 4c 4c 20 43 4f 55 4e 54 20 28 20 2a 20 29   ALL COUNT ( * )
15270 20 2a 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29   * - COUNT ( * )
15280 20 2a 20 2b 20 2d 20 37 34 20 63 6f 6c 31 2c 20   * + - 74 col1, 
15290 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
152a0 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 32  NTEGER ) AS col2
152b0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
152c0 0d 0a 36 36 36 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f  ..666..NULL....o
152d0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
152e0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
152f0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
15300 74 20 6c 61 62 65 6c 2d 34 38 31 0d 0a 53 45 4c  t label-481..SEL
15310 45 43 54 20 41 4c 4c 20 2b 20 53 55 4d 28 20 44  ECT ALL + SUM( D
15320 49 53 54 49 4e 43 54 20 2d 20 32 38 20 29 20 63  ISTINCT - 28 ) c
15330 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 2c 20 74  ol2 FROM tab0, t
15340 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
15350 2d 0d 0a 2d 32 38 0d 0a 0d 0a 73 6b 69 70 69 66  -..-28....skipif
15360 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
15370 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
15380 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
15390 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
153a0 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
153b0 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
153c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
153d0 74 20 6c 61 62 65 6c 2d 34 38 31 0d 0a 53 45 4c  t label-481..SEL
153e0 45 43 54 20 41 4c 4c 20 2b 20 53 55 4d 20 28 20  ECT ALL + SUM ( 
153f0 44 49 53 54 49 4e 43 54 20 2d 20 32 38 20 29 20  DISTINCT - 28 ) 
15400 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 2c 20  col2 FROM tab0, 
15410 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
15420 2d 2d 0d 0a 2d 32 38 0d 0a 0d 0a 6f 6e 6c 79 69  --..-28....onlyi
15430 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
15440 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
15450 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
15460 62 65 6c 2d 34 38 32 0d 0a 53 45 4c 45 43 54 20  bel-482..SELECT 
15470 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 28 20  DISTINCT COUNT( 
15480 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20  DISTINCT + col2 
15490 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
154a0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a  ab0..----..3....
154b0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
154c0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
154d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
154e0 61 62 65 6c 2d 34 38 32 0d 0a 53 45 4c 45 43 54  abel-482..SELECT
154f0 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 20   DISTINCT COUNT 
15500 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  ( DISTINCT + col
15510 32 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  2 ) AS col0 FROM
15520 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   tab0..----..3..
15530 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
15540 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
15550 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
15560 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
15570 65 6c 2d 34 38 33 0d 0a 53 45 4c 45 43 54 20 41  el-483..SELECT A
15580 4c 4c 20 63 6f 6c 30 20 44 49 56 20 2b 20 28 20  LL col0 DIV + ( 
15590 2b 20 39 38 20 29 20 63 6f 6c 32 20 46 52 4f 4d  + 98 ) col2 FROM
155a0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   tab0..----..0..
155b0 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  0..0....skipif m
155c0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
155d0 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
155e0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
155f0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
15600 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
15610 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
15620 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
15630 6c 61 62 65 6c 2d 34 38 33 0d 0a 53 45 4c 45 43  label-483..SELEC
15640 54 20 41 4c 4c 20 63 6f 6c 30 20 2f 20 2b 20 28  T ALL col0 / + (
15650 20 2b 20 39 38 20 29 20 63 6f 6c 32 20 46 52 4f   + 98 ) col2 FRO
15660 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab0..----..0.
15670 0a 30 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49  .0..0....query I
15680 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
15690 20 41 4c 4c 20 2d 20 38 35 20 2a 20 2b 20 2b 20   ALL - 85 * + + 
156a0 39 35 20 2b 20 33 39 20 46 52 4f 4d 20 74 61 62  95 + 39 FROM tab
156b0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
156c0 0a 2d 38 30 33 36 0d 0a 2d 38 30 33 36 0d 0a 2d  .-8036..-8036..-
156d0 38 30 33 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  8036....onlyif m
156e0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
156f0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
15700 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
15710 2d 34 38 35 0d 0a 53 45 4c 45 43 54 20 28 20 2b  -485..SELECT ( +
15720 20 2b 20 43 4f 55 4e 54 28 20 39 34 20 29 20 29   + COUNT( 94 ) )
15730 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
15740 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
15750 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..3....skipif my
15760 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
15770 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
15780 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 38 35 0d  wsort label-485.
15790 0a 53 45 4c 45 43 54 20 28 20 2b 20 2b 20 43 4f  .SELECT ( + + CO
157a0 55 4e 54 20 28 20 39 34 20 29 20 29 20 41 53 20  UNT ( 94 ) ) AS 
157b0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
157c0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  S cor0..----..3.
157d0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
157e0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
157f0 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
15800 32 20 57 48 45 52 45 20 4e 55 4c 4c 20 42 45 54  2 WHERE NULL BET
15810 57 45 45 4e 20 2d 20 31 34 20 41 4e 44 20 32 38  WEEN - 14 AND 28
15820 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
15830 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
15840 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
15850 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
15860 65 6c 2d 34 38 37 0d 0a 53 45 4c 45 43 54 20 41  el-487..SELECT A
15870 4c 4c 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20  LL COUNT( * ) + 
15880 2b 20 33 35 20 46 52 4f 4d 20 74 61 62 31 0d 0a  + 35 FROM tab1..
15890 2d 2d 2d 2d 0d 0a 33 38 0d 0a 0d 0a 73 6b 69 70  ----..38....skip
158a0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
158b0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
158c0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
158d0 2d 34 38 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -487..SELECT ALL
158e0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2b   COUNT ( * ) + +
158f0 20 33 35 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d   35 FROM tab1..-
15900 2d 2d 2d 0d 0a 33 38 0d 0a 0d 0a 6f 6e 6c 79 69  ---..38....onlyi
15910 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
15920 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
15930 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
15940 62 65 6c 2d 34 38 38 0d 0a 53 45 4c 45 43 54 20  bel-488..SELECT 
15950 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 37 33 20  COUNT( * ) * 73 
15960 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
15970 31 0d 0a 2d 2d 2d 2d 0d 0a 32 31 39 0d 0a 0d 0a  1..----..219....
15980 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
15990 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
159a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
159b0 61 62 65 6c 2d 34 38 38 0d 0a 53 45 4c 45 43 54  abel-488..SELECT
159c0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 37   COUNT ( * ) * 7
159d0 33 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  3 AS col0 FROM t
159e0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 31 39 0d 0a  ab1..----..219..
159f0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
15a00 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
15a10 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
15a20 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
15a30 65 6c 2d 34 38 39 0d 0a 53 45 4c 45 43 54 20 44  el-489..SELECT D
15a40 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 44  ISTINCT + col1 D
15a50 49 56 20 2d 20 63 6f 6c 32 20 2b 20 63 6f 6c 30  IV - col2 + col0
15a60 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
15a70 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 34 0d 0a 36 33  b2..----..44..63
15a80 0d 0a 37 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..74....skipif m
15a90 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
15aa0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
15ab0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 38 39  owsort label-489
15ac0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
15ad0 54 20 2b 20 63 6f 6c 31 20 2f 20 2d 20 63 6f 6c  T + col1 / - col
15ae0 32 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32  2 + col0 AS col2
15af0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
15b00 0d 0a 34 34 0d 0a 36 33 0d 0a 37 34 0d 0a 0d 0a  ..44..63..74....
15b10 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
15b20 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
15b30 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52   col2 AS col1 FR
15b40 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 2b 20  OM tab1 WHERE + 
15b50 63 6f 6c 32 20 2a 20 63 6f 6c 32 20 49 4e 20 28  col2 * col2 IN (
15b60 20 2b 20 63 6f 6c 31 20 2f 20 35 38 20 2b 20 33   + col1 / 58 + 3
15b70 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79   )..----....only
15b80 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
15b90 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
15ba0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
15bb0 61 62 65 6c 2d 34 39 31 0d 0a 53 45 4c 45 43 54  abel-491..SELECT
15bc0 20 41 4c 4c 20 53 55 4d 28 20 41 4c 4c 20 2b 20   ALL SUM( ALL + 
15bd0 63 6f 6c 30 20 29 20 2d 20 53 55 4d 28 20 63 6f  col0 ) - SUM( co
15be0 6c 32 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  l2 ) AS col2 FRO
15bf0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 34 33  M tab0..----..43
15c00 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
15c10 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
15c20 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
15c30 72 74 20 6c 61 62 65 6c 2d 34 39 31 0d 0a 53 45  rt label-491..SE
15c40 4c 45 43 54 20 41 4c 4c 20 53 55 4d 20 28 20 41  LECT ALL SUM ( A
15c50 4c 4c 20 2b 20 63 6f 6c 30 20 29 20 2d 20 53 55  LL + col0 ) - SU
15c60 4d 20 28 20 63 6f 6c 32 20 29 20 41 53 20 63 6f  M ( col2 ) AS co
15c70 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l2 FROM tab0..--
15c80 2d 2d 0d 0a 34 33 0d 0a 0d 0a 71 75 65 72 79 20  --..43....query 
15c90 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
15ca0 54 20 34 32 20 2b 20 63 6f 6c 30 20 41 53 20 63  T 42 + col0 AS c
15cb0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 57 48  ol1 FROM tab0 WH
15cc0 45 52 45 20 2b 20 63 6f 6c 31 20 3e 3d 20 4e 55  ERE + col1 >= NU
15cd0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
15ce0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
15cf0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a  ELECT DISTINCT *
15d00 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
15d10 20 63 6f 6c 31 20 3e 3d 20 28 20 63 6f 6c 32 20   col1 >= ( col2 
15d20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  )..----....onlyi
15d30 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
15d40 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
15d50 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20  pe: ..query III 
15d60 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 39  rowsort label-49
15d70 34 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  4..SELECT * FROM
15d80 20 74 61 62 32 20 57 48 45 52 45 20 28 20 4e 55   tab2 WHERE ( NU
15d90 4c 4c 20 29 20 42 45 54 57 45 45 4e 20 43 41 53  LL ) BETWEEN CAS
15da0 54 28 20 2d 20 63 6f 6c 31 20 41 53 20 53 49 47  T( - col1 AS SIG
15db0 4e 45 44 20 29 20 41 4e 44 20 28 20 2b 20 63 6f  NED ) AND ( + co
15dc0 6c 32 20 2f 20 31 31 20 2b 20 63 6f 6c 31 20 2f  l2 / 11 + col1 /
15dd0 20 2d 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d   - col0 )..----.
15de0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
15df0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
15e00 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
15e10 6f 72 74 20 6c 61 62 65 6c 2d 34 39 34 0d 0a 53  ort label-494..S
15e20 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
15e30 32 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29  2 WHERE ( NULL )
15e40 20 42 45 54 57 45 45 4e 20 43 41 53 54 20 28 20   BETWEEN CAST ( 
15e50 2d 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45  - col1 AS INTEGE
15e60 52 20 29 20 41 4e 44 20 28 20 2b 20 63 6f 6c 32  R ) AND ( + col2
15e70 20 2f 20 31 31 20 2b 20 63 6f 6c 31 20 2f 20 2d   / 11 + col1 / -
15e80 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   col0 )..----...
15e90 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
15ea0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
15eb0 54 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 28 20 63  T + col2 + - ( c
15ec0 6f 6c 30 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ol0 ) AS col1 FR
15ed0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
15ee0 31 37 0d 0a 2d 32 33 0d 0a 2d 32 34 0d 0a 0d 0a  17..-23..-24....
15ef0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
15f00 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
15f10 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
15f20 72 74 20 6c 61 62 65 6c 2d 34 39 36 0d 0a 53 45  rt label-496..SE
15f30 4c 45 43 54 20 32 36 20 2a 20 4d 41 58 28 20 44  LECT 26 * MAX( D
15f40 49 53 54 49 4e 43 54 20 34 35 20 29 20 41 53 20  ISTINCT 45 ) AS 
15f50 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 57  col2 FROM tab2 W
15f60 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 3c 20  HERE ( NULL ) < 
15f70 2b 20 36 31 20 2b 20 2d 20 63 6f 6c 32 0d 0a 2d  + 61 + - col2..-
15f80 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ---..NULL....ski
15f90 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
15fa0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
15fb0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
15fc0 6c 2d 34 39 36 0d 0a 53 45 4c 45 43 54 20 32 36  l-496..SELECT 26
15fd0 20 2a 20 4d 41 58 20 28 20 44 49 53 54 49 4e 43   * MAX ( DISTINC
15fe0 54 20 34 35 20 29 20 41 53 20 63 6f 6c 32 20 46  T 45 ) AS col2 F
15ff0 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 28  ROM tab2 WHERE (
16000 20 4e 55 4c 4c 20 29 20 3c 20 2b 20 36 31 20 2b   NULL ) < + 61 +
16010 20 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 4e   - col2..----..N
16020 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ULL....query I r
16030 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 35  owsort..SELECT 5
16040 34 20 2a 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f  4 * + col0 AS co
16050 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l2 FROM tab0..--
16060 2d 2d 0d 0a 34 36 39 38 0d 0a 35 32 33 38 0d 0a  --..4698..5238..
16070 38 31 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  810....query I r
16080 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
16090 20 34 33 20 2a 20 33 34 20 46 52 4f 4d 20 74 61   43 * 34 FROM ta
160a0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 36 32 0d  b0..----..-1462.
160b0 0a 2d 31 34 36 32 0d 0a 2d 31 34 36 32 0d 0a 0d  .-1462..-1462...
160c0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
160d0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
160e0 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  : DIV for intege
160f0 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
16100 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
16110 62 65 6c 2d 34 39 39 0d 0a 53 45 4c 45 43 54 20  bel-499..SELECT 
16120 41 4c 4c 20 28 20 2b 20 35 30 20 29 20 2b 20 2d  ALL ( + 50 ) + -
16130 20 43 4f 55 4e 54 28 20 2a 20 29 20 44 49 56 20   COUNT( * ) DIV 
16140 2d 20 38 36 20 46 52 4f 4d 20 74 61 62 32 0d 0a  - 86 FROM tab2..
16150 2d 2d 2d 2d 0d 0a 35 30 0d 0a 0d 0a 73 6b 69 70  ----..50....skip
16160 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
16170 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
16180 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
16190 2d 34 39 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -499..SELECT ALL
161a0 20 28 20 2b 20 35 30 20 29 20 2b 20 2d 20 43 4f   ( + 50 ) + - CO
161b0 55 4e 54 20 28 20 2a 20 29 20 2f 20 2d 20 38 36  UNT ( * ) / - 86
161c0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
161d0 0d 0a 35 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..50....query II
161e0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
161f0 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48  T * FROM tab1 WH
16200 45 52 45 20 2b 20 63 6f 6c 30 20 4e 4f 54 20 42  ERE + col0 NOT B
16210 45 54 57 45 45 4e 20 36 20 2a 20 33 37 20 41 4e  ETWEEN 6 * 37 AN
16220 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20  D NULL..----..9 
16230 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
16240 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64 30  o c6c0a4111b36d0
16250 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34 63  4dbc811a11e4d54c
16260 61 64 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  ad....query I ro
16270 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
16280 6c 32 20 2a 20 32 33 20 2b 20 2d 20 63 6f 6c 31  l2 * 23 + - col1
16290 20 2a 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c   * - col0 AS col
162a0 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  0 FROM tab1..---
162b0 2d 0d 0a 31 37 38 32 0d 0a 32 39 32 32 0d 0a 35  -..1782..2922..5
162c0 38 34 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  841....skipif po
162d0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
162e0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
162f0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
16300 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
16310 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
16320 0a 53 45 4c 45 43 54 20 28 20 2b 20 39 32 20 29  .SELECT ( + 92 )
16330 20 2b 20 2b 20 32 32 20 2a 20 2d 20 63 6f 6c 30   + + 22 * - col0
16340 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
16350 0a 2d 2d 2d 2d 0d 0a 2d 31 30 33 30 0d 0a 2d 31  .----..-1030..-1
16360 37 37 38 0d 0a 2d 31 39 31 30 0d 0a 0d 0a 71 75  778..-1910....qu
16370 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
16380 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
16390 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45   * FROM tab1 WHE
163a0 52 45 20 4e 4f 54 20 2d 20 39 31 20 2f 20 2d 20  RE NOT - 91 / - 
163b0 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col0 IS NOT NULL
163c0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
163d0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
163e0 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66  te syntax: DIV f
163f0 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
16400 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
16410 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 30 34  owsort label-504
16420 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43  ..SELECT ALL + C
16430 4f 55 4e 54 28 20 2a 20 29 20 44 49 56 20 2b 20  OUNT( * ) DIV + 
16440 34 33 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  43 AS col2 FROM 
16450 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  tab2..----..0...
16460 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
16470 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
16480 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
16490 6c 61 62 65 6c 2d 35 30 34 0d 0a 53 45 4c 45 43  label-504..SELEC
164a0 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 20 28 20  T ALL + COUNT ( 
164b0 2a 20 29 20 2f 20 2b 20 34 33 20 41 53 20 63 6f  * ) / + 43 AS co
164c0 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
164d0 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  --..0....onlyif 
164e0 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
164f0 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
16500 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  : ..query III ro
16510 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 30 35 0d  wsort label-505.
16520 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
16530 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   * FROM tab2 WHE
16540 52 45 20 4e 4f 54 20 43 41 53 54 28 20 43 41 53  RE NOT CAST( CAS
16550 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
16560 44 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20  D ) AS SIGNED ) 
16570 3e 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a  > - col1..----..
16580 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
16590 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
165a0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
165b0 72 74 20 6c 61 62 65 6c 2d 35 30 35 0d 0a 53 45  rt label-505..SE
165c0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
165d0 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
165e0 4e 4f 54 20 43 41 53 54 20 28 20 43 41 53 54 20  NOT CAST ( CAST 
165f0 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
16600 52 20 29 20 41 53 20 49 4e 54 45 47 45 52 20 29  R ) AS INTEGER )
16610 20 3e 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d   > - col1..----.
16620 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
16630 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
16640 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
16650 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
16660 62 65 6c 2d 35 30 36 0d 0a 53 45 4c 45 43 54 20  bel-506..SELECT 
16670 41 4c 4c 20 2d 20 63 6f 6c 31 20 44 49 56 20 2b  ALL - col1 DIV +
16680 20 34 34 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d   44 FROM tab1..-
16690 2d 2d 2d 0d 0a 2d 31 0d 0a 30 0d 0a 30 0d 0a 0d  ---..-1..0..0...
166a0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
166b0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
166c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
166d0 6c 61 62 65 6c 2d 35 30 36 0d 0a 53 45 4c 45 43  label-506..SELEC
166e0 54 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 2f 20 2b  T ALL - col1 / +
166f0 20 34 34 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d   44 FROM tab1..-
16700 2d 2d 2d 0d 0a 2d 31 0d 0a 30 0d 0a 30 0d 0a 0d  ---..-1..0..0...
16710 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
16720 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
16730 54 20 2b 20 38 33 20 41 53 20 63 6f 6c 30 20 46  T + 83 AS col0 F
16740 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
16750 38 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  83....onlyif mys
16760 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
16770 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
16780 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
16790 20 6c 61 62 65 6c 2d 35 30 38 0d 0a 53 45 4c 45   label-508..SELE
167a0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f  CT DISTINCT + co
167b0 6c 30 20 44 49 56 20 2b 20 36 30 20 46 52 4f 4d  l0 DIV + 60 FROM
167c0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   tab1..----..0..
167d0 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
167e0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
167f0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
16800 6f 72 74 20 6c 61 62 65 6c 2d 35 30 38 0d 0a 53  ort label-508..S
16810 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
16820 20 63 6f 6c 30 20 2f 20 2b 20 36 30 20 46 52 4f   col0 / + 60 FRO
16830 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab1..----..0.
16840 0a 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  .1....query III 
16850 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
16860 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  * FROM tab1 WHER
16870 45 20 4e 4f 54 20 38 34 20 49 53 20 4e 4f 54 20  E NOT 84 IS NOT 
16880 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
16890 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
168a0 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
168b0 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
168c0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
168d0 31 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  10..SELECT DISTI
168e0 4e 43 54 20 2b 20 63 6f 6c 31 20 44 49 56 20 2b  NCT + col1 DIV +
168f0 20 63 6f 6c 30 20 63 6f 6c 32 20 46 52 4f 4d 20   col0 col2 FROM 
16900 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 35  tab0..----..0..5
16910 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
16920 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
16930 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
16940 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
16950 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
16960 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
16970 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
16980 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
16990 6c 2d 35 31 30 0d 0a 53 45 4c 45 43 54 20 44 49  l-510..SELECT DI
169a0 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 2f 20  STINCT + col1 / 
169b0 2b 20 63 6f 6c 30 20 63 6f 6c 32 20 46 52 4f 4d  + col0 col2 FROM
169c0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   tab0..----..0..
169d0 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  5....onlyif mysq
169e0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
169f0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
16a00 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 31  rowsort label-51
16a10 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  1..SELECT DISTIN
16a20 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53  CT COUNT( * ) AS
16a30 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
16a40 57 48 45 52 45 20 2b 20 38 38 20 49 4e 20 28 20  WHERE + 88 IN ( 
16a50 2b 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a  + col0 )..----..
16a60 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
16a70 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
16a80 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
16a90 6f 72 74 20 6c 61 62 65 6c 2d 35 31 31 0d 0a 53  ort label-511..S
16aa0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43  ELECT DISTINCT C
16ab0 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
16ac0 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  l2 FROM tab1 WHE
16ad0 52 45 20 2b 20 38 38 20 49 4e 20 28 20 2b 20 63  RE + 88 IN ( + c
16ae0 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a  ol0 )..----..0..
16af0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
16b00 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
16b10 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
16b20 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
16b30 65 6c 2d 35 31 32 0d 0a 53 45 4c 45 43 54 20 2d  el-512..SELECT -
16b40 20 32 36 20 44 49 56 20 2d 20 32 39 20 46 52 4f   26 DIV - 29 FRO
16b50 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab2..----..0.
16b60 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  .0..0....skipif 
16b70 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
16b80 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
16b90 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 31  rowsort label-51
16ba0 32 0d 0a 53 45 4c 45 43 54 20 2d 20 32 36 20 2f  2..SELECT - 26 /
16bb0 20 2d 20 32 39 20 46 52 4f 4d 20 74 61 62 32 0d   - 29 FROM tab2.
16bc0 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a  .----..0..0..0..
16bd0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
16be0 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
16bf0 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
16c00 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
16c10 65 6c 2d 35 31 33 0d 0a 53 45 4c 45 43 54 20 33  el-513..SELECT 3
16c20 32 20 44 49 56 20 2b 20 63 6f 6c 31 20 2b 20 36  2 DIV + col1 + 6
16c30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
16c40 0d 0a 31 32 0d 0a 36 0d 0a 38 0d 0a 0d 0a 73 6b  ..12..6..8....sk
16c50 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
16c60 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
16c70 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
16c80 65 6c 2d 35 31 33 0d 0a 53 45 4c 45 43 54 20 33  el-513..SELECT 3
16c90 32 20 2f 20 2b 20 63 6f 6c 31 20 2b 20 36 20 46  2 / + col1 + 6 F
16ca0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
16cb0 31 32 0d 0a 36 0d 0a 38 0d 0a 0d 0a 71 75 65 72  12..6..8....quer
16cc0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
16cd0 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2a 20 2d  ECT ALL col1 * -
16ce0 20 63 6f 6c 32 20 2b 20 2d 20 28 20 2d 20 63 6f   col2 + - ( - co
16cf0 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 32 20 57  l2 ) FROM tab2 W
16d00 48 45 52 45 20 2d 20 63 6f 6c 31 20 2f 20 2b 20  HERE - col1 / + 
16d10 39 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  92 IS NULL..----
16d20 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
16d30 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
16d40 49 4e 43 54 20 28 20 2b 20 34 33 20 29 20 2d 20  INCT ( + 43 ) - 
16d50 2b 20 63 6f 6c 32 20 2a 20 35 30 20 41 53 20 63  + col2 * 50 AS c
16d60 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
16d70 2d 2d 2d 0d 0a 2d 32 39 30 37 0d 0a 2d 33 33 35  ---..-2907..-335
16d80 37 0d 0a 2d 34 37 35 37 0d 0a 0d 0a 71 75 65 72  7..-4757....quer
16d90 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
16da0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 31  ECT DISTINCT - 1
16db0 39 20 2f 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 39  9 / + col1 + - 9
16dc0 36 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  6 FROM tab0 AS c
16dd0 6f 72 30 20 57 48 45 52 45 20 2b 20 63 6f 6c 30  or0 WHERE + col0
16de0 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
16df0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
16e00 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 31 38  t..SELECT ALL 18
16e10 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20   - col1 AS col2 
16e20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
16e30 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 39 0d 0a 31 33  0..----..-29..13
16e40 0d 0a 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  ..4....skipif po
16e50 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
16e60 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
16e70 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
16e80 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
16e90 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
16ea0 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2a  .SELECT - col0 *
16eb0 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 31 20 63   col0 + + col1 c
16ec0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
16ed0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35   cor0..----..-25
16ee0 38 37 0d 0a 2d 37 32 32 30 0d 0a 2d 38 32 33 34  87..-7220..-8234
16ef0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
16f00 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
16f10 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  L * FROM tab2 WH
16f20 45 52 45 20 63 6f 6c 30 20 2a 20 63 6f 6c 30 20  ERE col0 * col0 
16f30 49 4e 20 28 20 2b 20 28 20 63 6f 6c 31 20 29 20  IN ( + ( col1 ) 
16f40 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  )..----....onlyi
16f50 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
16f60 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
16f70 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20  pe: ..query III 
16f80 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 32  rowsort label-52
16f90 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  0..SELECT DISTIN
16fa0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57  CT * FROM tab0 W
16fb0 48 45 52 45 20 4e 4f 54 20 28 20 43 41 53 54 28  HERE NOT ( CAST(
16fc0 20 2d 20 34 33 20 41 53 20 53 49 47 4e 45 44 20   - 43 AS SIGNED 
16fd0 29 20 29 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  ) ) NOT BETWEEN 
16fe0 4e 55 4c 4c 20 41 4e 44 20 63 6f 6c 30 0d 0a 2d  NULL AND col0..-
16ff0 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ---....skipif my
17000 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
17010 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20  ible..query III 
17020 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 32  rowsort label-52
17030 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  0..SELECT DISTIN
17040 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57  CT * FROM tab0 W
17050 48 45 52 45 20 4e 4f 54 20 28 20 43 41 53 54 20  HERE NOT ( CAST 
17060 28 20 2d 20 34 33 20 41 53 20 49 4e 54 45 47 45  ( - 43 AS INTEGE
17070 52 20 29 20 29 20 4e 4f 54 20 42 45 54 57 45 45  R ) ) NOT BETWEE
17080 4e 20 4e 55 4c 4c 20 41 4e 44 20 63 6f 6c 30 0d  N NULL AND col0.
17090 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
170a0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
170b0 20 2d 20 38 20 2a 20 2d 20 37 33 20 41 53 20 63   - 8 * - 73 AS c
170c0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
170d0 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
170e0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   tab2..----..9 v
170f0 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
17100 20 62 35 62 33 65 63 32 35 34 64 61 37 30 63 35   b5b3ec254da70c5
17110 62 32 65 31 63 62 65 61 65 65 38 38 65 33 35 33  b2e1cbeaee88e353
17120 61 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  a....onlyif mysq
17130 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
17140 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
17150 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 32  rowsort label-52
17160 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 4d 41  2..SELECT ALL MA
17170 58 28 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 29 20  X( ALL + col2 ) 
17180 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
17190 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 38  S cor0..----..58
171a0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
171b0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
171c0 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
171d0 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
171e0 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
171f0 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
17200 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
17210 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
17220 6c 2d 35 32 32 0d 0a 53 45 4c 45 43 54 20 41 4c  l-522..SELECT AL
17230 4c 20 4d 41 58 20 28 20 41 4c 4c 20 2b 20 63 6f  L MAX ( ALL + co
17240 6c 32 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74  l2 ) col2 FROM t
17250 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
17260 2d 0d 0a 35 38 0d 0a 0d 0a 71 75 65 72 79 20 49  -..58....query I
17270 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
17280 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 2a   DISTINCT col1 *
17290 20 2b 20 34 30 20 41 53 20 63 6f 6c 30 20 46 52   + 40 AS col0 FR
172a0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
172b0 0a 2d 2d 2d 2d 0d 0a 31 38 38 30 0d 0a 32 30 30  .----..1880..200
172c0 0d 0a 35 36 30 0d 0a 0d 0a 71 75 65 72 79 20 49  ..560....query I
172d0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
172e0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41  CT * FROM tab2 A
172f0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
17300 20 2d 20 34 30 20 2b 20 36 39 20 3e 3d 20 4e 55   - 40 + 69 >= NU
17310 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
17320 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
17330 45 43 54 20 2d 20 2b 20 33 32 20 2a 20 2d 20 63  ECT - + 32 * - c
17340 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
17350 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 37   cor0..----..147
17360 32 0d 0a 32 30 34 38 0d 0a 32 34 30 30 0d 0a 0d  2..2048..2400...
17370 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
17380 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
17390 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
173a0 6f 72 74 20 6c 61 62 65 6c 2d 35 32 36 0d 0a 53  ort label-526..S
173b0 45 4c 45 43 54 20 31 36 20 2a 20 43 4f 55 4e 54  ELECT 16 * COUNT
173c0 28 20 28 20 2d 20 63 6f 6c 32 20 29 20 29 20 41  ( ( - col2 ) ) A
173d0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
173e0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
173f0 34 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  48....skipif mys
17400 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
17410 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
17420 73 6f 72 74 20 6c 61 62 65 6c 2d 35 32 36 0d 0a  sort label-526..
17430 53 45 4c 45 43 54 20 31 36 20 2a 20 43 4f 55 4e  SELECT 16 * COUN
17440 54 20 28 20 28 20 2d 20 63 6f 6c 32 20 29 20 29  T ( ( - col2 ) )
17450 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
17460 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
17470 0d 0a 34 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..48....onlyif m
17480 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
17490 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
174a0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
174b0 72 74 20 6c 61 62 65 6c 2d 35 32 37 0d 0a 53 45  rt label-527..SE
174c0 4c 45 43 54 20 2d 20 41 56 47 20 28 20 44 49 53  LECT - AVG ( DIS
174d0 54 49 4e 43 54 20 2b 20 43 41 53 54 28 20 4e 55  TINCT + CAST( NU
174e0 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 29  LL AS SIGNED ) )
174f0 20 2a 20 2d 20 34 37 20 41 53 20 63 6f 6c 32 20   * - 47 AS col2 
17500 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a  FROM tab1 cor0..
17510 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  ----..NULL....sk
17520 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
17530 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
17540 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
17550 65 6c 2d 35 32 37 0d 0a 53 45 4c 45 43 54 20 2d  el-527..SELECT -
17560 20 41 56 47 20 28 20 44 49 53 54 49 4e 43 54 20   AVG ( DISTINCT 
17570 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
17580 20 49 4e 54 45 47 45 52 20 29 20 29 20 2a 20 2d   INTEGER ) ) * -
17590 20 34 37 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   47 AS col2 FROM
175a0 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
175b0 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20  ..NULL....query 
175c0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
175d0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
175e0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
175f0 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c   WHERE NOT + col
17600 30 20 2f 20 2b 20 63 6f 6c 32 20 49 53 20 4e 4f  0 / + col2 IS NO
17610 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  T NULL..----....
17620 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
17630 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
17640 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41  CT * FROM tab0 A
17650 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 36  S cor0 WHERE ( 6
17660 39 20 29 20 3e 20 28 20 4e 55 4c 4c 20 29 0d 0a  9 ) > ( NULL )..
17670 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
17680 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
17690 41 4c 4c 20 32 33 20 41 53 20 63 6f 6c 32 20 46  ALL 23 AS col2 F
176a0 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 2d  ROM tab0 WHERE -
176b0 20 38 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 28   8 NOT BETWEEN (
176c0 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 32 20 29   col1 + + col2 )
176d0 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   AND NULL..----.
176e0 0a 32 33 0d 0a 32 33 0d 0a 32 33 0d 0a 0d 0a 6f  .23..23..23....o
176f0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
17700 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
17710 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
17720 74 20 6c 61 62 65 6c 2d 35 33 31 0d 0a 53 45 4c  t label-531..SEL
17730 45 43 54 20 2d 20 4d 49 4e 28 20 44 49 53 54 49  ECT - MIN( DISTI
17740 4e 43 54 20 2b 20 35 39 20 29 20 41 53 20 63 6f  NCT + 59 ) AS co
17750 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l2 FROM tab1..--
17760 2d 2d 0d 0a 2d 35 39 0d 0a 0d 0a 73 6b 69 70 69  --..-59....skipi
17770 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
17780 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
17790 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
177a0 35 33 31 0d 0a 53 45 4c 45 43 54 20 2d 20 4d 49  531..SELECT - MI
177b0 4e 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20 35  N ( DISTINCT + 5
177c0 39 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  9 ) AS col2 FROM
177d0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39   tab1..----..-59
177e0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
177f0 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
17800 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
17810 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
17820 61 62 65 6c 2d 35 33 32 0d 0a 53 45 4c 45 43 54  abel-532..SELECT
17830 20 28 20 2b 20 63 6f 6c 32 20 29 20 44 49 56 20   ( + col2 ) DIV 
17840 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46  - col0 AS col2 F
17850 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
17860 2d 31 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  -1..0..0....skip
17870 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
17880 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
17890 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
178a0 2d 35 33 32 0d 0a 53 45 4c 45 43 54 20 28 20 2b  -532..SELECT ( +
178b0 20 63 6f 6c 32 20 29 20 2f 20 2d 20 63 6f 6c 30   col2 ) / - col0
178c0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
178d0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 30 0d  b1..----..-1..0.
178e0 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .0....onlyif mys
178f0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
17900 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
17910 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
17920 33 33 0d 0a 53 45 4c 45 43 54 20 2b 20 53 55 4d  33..SELECT + SUM
17930 28 20 2d 20 32 37 20 29 20 46 52 4f 4d 20 74 61  ( - 27 ) FROM ta
17940 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 31 0d 0a 0d  b0..----..-81...
17950 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
17960 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
17970 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
17980 6c 61 62 65 6c 2d 35 33 33 0d 0a 53 45 4c 45 43  label-533..SELEC
17990 54 20 2b 20 53 55 4d 20 28 20 2d 20 32 37 20 29  T + SUM ( - 27 )
179a0 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
179b0 0d 0a 2d 38 31 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-81....query I
179c0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
179d0 20 41 4c 4c 20 63 6f 6c 30 20 2b 20 2d 20 33 35   ALL col0 + - 35
179e0 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 28 20 2b 20   + + col1 * ( + 
179f0 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 31 20 46  col2 ) AS col1 F
17a00 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
17a10 31 33 36 30 0d 0a 33 32 35 32 0d 0a 33 34 35 0d  1360..3252..345.
17a20 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
17a30 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61  # CAST syntax: a
17a40 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
17a50 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d   DECIMAL type: .
17a60 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
17a70 20 6c 61 62 65 6c 2d 35 33 35 0d 0a 53 45 4c 45   label-535..SELE
17a80 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e  CT DISTINCT COUN
17a90 54 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30  T( DISTINCT col0
17aa0 20 29 20 2a 20 38 31 20 46 52 4f 4d 20 74 61 62   ) * 81 FROM tab
17ab0 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
17ac0 4e 4f 54 20 63 6f 6c 32 20 42 45 54 57 45 45 4e  NOT col2 BETWEEN
17ad0 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44   CAST( NULL AS D
17ae0 45 43 49 4d 41 4c 20 29 20 2a 20 2d 20 63 6f 6c  ECIMAL ) * - col
17af0 32 20 2d 20 28 20 2b 20 63 6f 6c 30 20 29 20 2a  2 - ( + col0 ) *
17b00 20 2b 20 63 6f 6c 32 20 41 4e 44 20 4e 55 4c 4c   + col2 AND NULL
17b10 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69  ..----..0....ski
17b20 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
17b30 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
17b40 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
17b50 6c 2d 35 33 35 0d 0a 53 45 4c 45 43 54 20 44 49  l-535..SELECT DI
17b60 53 54 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 44  STINCT COUNT ( D
17b70 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 29 20 2a  ISTINCT col0 ) *
17b80 20 38 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53   81 FROM tab2 AS
17b90 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
17ba0 63 6f 6c 32 20 42 45 54 57 45 45 4e 20 43 41 53  col2 BETWEEN CAS
17bb0 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c  T ( NULL AS REAL
17bc0 20 29 20 2a 20 2d 20 63 6f 6c 32 20 2d 20 28 20   ) * - col2 - ( 
17bd0 2b 20 63 6f 6c 30 20 29 20 2a 20 2b 20 63 6f 6c  + col0 ) * + col
17be0 32 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  2 AND NULL..----
17bf0 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..0....onlyif my
17c00 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
17c10 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e  x: aggregate syn
17c20 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
17c30 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
17c40 6f 72 74 20 6c 61 62 65 6c 2d 35 33 36 0d 0a 53  ort label-536..S
17c50 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
17c60 20 43 41 53 54 28 20 2b 20 41 56 47 20 28 20 41   CAST( + AVG ( A
17c70 4c 4c 20 2b 20 63 6f 6c 31 20 29 20 41 53 20 53  LL + col1 ) AS S
17c80 49 47 4e 45 44 20 29 20 2b 20 2b 20 31 38 20 2a  IGNED ) + + 18 *
17c90 20 2d 20 43 4f 55 4e 54 28 20 41 4c 4c 20 2d 20   - COUNT( ALL - 
17ca0 43 41 53 54 28 20 36 37 20 41 53 20 53 49 47 4e  CAST( 67 AS SIGN
17cb0 45 44 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46  ED ) ) AS col1 F
17cc0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
17cd0 0d 0a 2d 2d 2d 2d 0d 0a 31 31 0d 0a 0d 0a 73 6b  ..----..11....sk
17ce0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
17cf0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
17d00 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
17d10 65 6c 2d 35 33 36 0d 0a 53 45 4c 45 43 54 20 44  el-536..SELECT D
17d20 49 53 54 49 4e 43 54 20 2b 20 43 41 53 54 20 28  ISTINCT + CAST (
17d30 20 2b 20 41 56 47 20 28 20 41 4c 4c 20 2b 20 63   + AVG ( ALL + c
17d40 6f 6c 31 20 29 20 41 53 20 49 4e 54 45 47 45 52  ol1 ) AS INTEGER
17d50 20 29 20 2b 20 2b 20 31 38 20 2a 20 2d 20 43 4f   ) + + 18 * - CO
17d60 55 4e 54 20 28 20 41 4c 4c 20 2d 20 43 41 53 54  UNT ( ALL - CAST
17d70 20 28 20 36 37 20 41 53 20 49 4e 54 45 47 45 52   ( 67 AS INTEGER
17d80 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   ) ) AS col1 FRO
17d90 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
17da0 2d 2d 2d 2d 0d 0a 31 31 0d 0a 0d 0a 71 75 65 72  ----..11....quer
17db0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
17dc0 45 43 54 20 2d 20 2d 20 63 6f 6c 31 20 2a 20 2b  ECT - - col1 * +
17dd0 20 63 6f 6c 31 20 2b 20 2d 20 32 20 41 53 20 63   col1 + - 2 AS c
17de0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
17df0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 35 39   cor0..----..259
17e00 39 0d 0a 34 34 38 37 0d 0a 35 39 32 37 0d 0a 0d  9..4487..5927...
17e10 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
17e20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
17e30 4e 45 44 20 74 79 70 65 3a 20 44 49 56 20 66 6f  NED type: DIV fo
17e40 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
17e50 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
17e60 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 33 38 0d  wsort label-538.
17e70 0a 53 45 4c 45 43 54 20 2d 20 43 41 53 54 28 20  .SELECT - CAST( 
17e80 63 6f 6c 30 20 41 53 20 53 49 47 4e 45 44 20 29  col0 AS SIGNED )
17e90 20 44 49 56 20 2d 20 63 6f 6c 31 20 2b 20 35 31   DIV - col1 + 51
17ea0 20 2a 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   * col0 FROM tab
17eb0 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
17ec0 2d 20 39 39 20 4e 4f 54 20 42 45 54 57 45 45 4e  - 99 NOT BETWEEN
17ed0 20 63 6f 6c 30 20 41 4e 44 20 28 20 4e 55 4c 4c   col0 AND ( NULL
17ee0 20 29 0d 0a 2d 2d 2d 2d 0d 0a 32 33 34 36 0d 0a   )..----..2346..
17ef0 33 32 36 34 0d 0a 33 38 32 36 0d 0a 0d 0a 73 6b  3264..3826....sk
17f00 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
17f10 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
17f20 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
17f30 65 6c 2d 35 33 38 0d 0a 53 45 4c 45 43 54 20 2d  el-538..SELECT -
17f40 20 43 41 53 54 20 28 20 63 6f 6c 30 20 41 53 20   CAST ( col0 AS 
17f50 49 4e 54 45 47 45 52 20 29 20 2f 20 2d 20 63 6f  INTEGER ) / - co
17f60 6c 31 20 2b 20 35 31 20 2a 20 63 6f 6c 30 20 46  l1 + 51 * col0 F
17f70 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
17f80 20 57 48 45 52 45 20 2d 20 39 39 20 4e 4f 54 20   WHERE - 99 NOT 
17f90 42 45 54 57 45 45 4e 20 63 6f 6c 30 20 41 4e 44  BETWEEN col0 AND
17fa0 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d   ( NULL )..----.
17fb0 0a 32 33 34 36 0d 0a 33 32 36 34 0d 0a 33 38 32  .2346..3264..382
17fc0 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
17fd0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
17fe0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
17ff0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 33  rowsort label-53
18000 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  9..SELECT ALL - 
18010 35 20 2a 20 2b 20 4d 41 58 28 20 2b 20 63 6f 6c  5 * + MAX( + col
18020 32 20 29 20 2b 20 31 37 20 46 52 4f 4d 20 74 61  2 ) + 17 FROM ta
18030 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
18040 0d 0a 2d 34 36 33 0d 0a 0d 0a 73 6b 69 70 69 66  ..-463....skipif
18050 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
18060 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
18070 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
18080 33 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  39..SELECT ALL -
18090 20 35 20 2a 20 2b 20 4d 41 58 20 28 20 2b 20 63   5 * + MAX ( + c
180a0 6f 6c 32 20 29 20 2b 20 31 37 20 46 52 4f 4d 20  ol2 ) + 17 FROM 
180b0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
180c0 2d 2d 0d 0a 2d 34 36 33 0d 0a 0d 0a 71 75 65 72  --..-463....quer
180d0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
180e0 45 43 54 20 2d 20 28 20 2b 20 2b 20 32 35 20 29  ECT - ( + + 25 )
180f0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
18100 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35 0d 0a 2d  r0..----..-25..-
18110 32 35 0d 0a 2d 32 35 0d 0a 0d 0a 71 75 65 72 79  25..-25....query
18120 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
18130 43 54 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 31  CT col1 * - col1
18140 20 2a 20 2b 20 36 30 20 41 53 20 63 6f 6c 32 20   * + 60 AS col2 
18150 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
18160 0a 2d 32 36 34 36 30 0d 0a 2d 33 39 33 36 36 30  .-26460..-393660
18170 0d 0a 2d 36 30 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-60....query I
18180 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
18190 20 41 4c 4c 20 2b 20 2b 20 39 32 20 41 53 20 63   ALL + + 92 AS c
181a0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol1 FROM tab2 co
181b0 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
181c0 62 31 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d  b1 AS cor1..----
181d0 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
181e0 6e 67 20 74 6f 20 35 31 36 66 61 34 35 63 38 62  ng to 516fa45c8b
181f0 30 36 66 39 66 36 37 64 36 65 35 30 30 62 66 64  06f9f67d6e500bfd
18200 34 33 35 63 31 61 0d 0a 0d 0a 71 75 65 72 79 20  435c1a....query 
18210 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
18220 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  T DISTINCT - col
18230 31 20 2d 20 33 34 20 41 53 20 63 6f 6c 30 20 46  1 - 34 AS col0 F
18240 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
18250 4f 54 20 28 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f  OT ( NOT NULL NO
18260 54 20 42 45 54 57 45 45 4e 20 2d 20 63 6f 6c 32  T BETWEEN - col2
18270 20 41 4e 44 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d   AND NULL )..---
18280 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
18290 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
182a0 54 49 4e 43 54 20 2d 20 35 36 20 46 52 4f 4d 20  TINCT - 56 FROM 
182b0 74 61 62 32 20 41 53 20 63 6f 72 30 20 43 52 4f  tab2 AS cor0 CRO
182c0 53 53 20 4a 4f 49 4e 20 74 61 62 31 20 41 53 20  SS JOIN tab1 AS 
182d0 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 36 0d  cor1..----..-56.
182e0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
182f0 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20  rt..SELECT col2 
18300 2a 20 2b 20 2b 20 31 30 20 46 52 4f 4d 20 74 61  * + + 10 FROM ta
18310 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 33 30 0d 0a 34  b2..----..230..4
18320 30 30 0d 0a 35 38 30 0d 0a 0d 0a 71 75 65 72 79  00..580....query
18330 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
18340 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
18350 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2d  tab2 WHERE NOT -
18360 20 2d 20 63 6f 6c 32 20 2b 20 34 38 20 3c 3e 20   - col2 + 48 <> 
18370 2b 20 31 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  + 10..----....qu
18380 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
18390 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 37  ELECT DISTINCT 7
183a0 33 20 2a 20 2b 20 39 31 20 2b 20 2b 20 35 37 20  3 * + 91 + + 57 
183b0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
183c0 31 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  1 AS cor0 CROSS 
183d0 4a 4f 49 4e 20 74 61 62 32 20 41 53 20 63 6f 72  JOIN tab2 AS cor
183e0 31 0d 0a 2d 2d 2d 2d 0d 0a 36 37 30 30 0d 0a 0d  1..----..6700...
183f0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
18400 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
18410 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  NCT * FROM tab1 
18420 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 37 30  AS cor0 WHERE 70
18430 20 49 4e 20 28 20 2d 20 63 6f 6c 30 20 2b 20 2d   IN ( - col0 + -
18440 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   col0 )..----...
18450 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
18460 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
18470 54 20 2d 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 39  T - + col0 + - 9
18480 34 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  4 FROM tab0 AS c
18490 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 39 0d  or0..----..-109.
184a0 0a 2d 31 38 31 0d 0a 2d 31 39 31 0d 0a 0d 0a 71  .-181..-191....q
184b0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
184c0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
184d0 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53  T * FROM tab0 AS
184e0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c   cor0 WHERE NULL
184f0 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 63 6f 6c   NOT BETWEEN col
18500 30 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 41 4e 44  0 * - - col0 AND
18510 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
18520 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
18530 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 63  SELECT ALL - + c
18540 6f 6c 30 20 2a 20 2d 20 34 37 20 2b 20 2d 20 63  ol0 * - 47 + - c
18550 6f 6c 32 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 63  ol2 + col1 * + c
18560 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol2 AS col0 FROM
18570 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
18580 2d 2d 2d 0d 0a 34 32 38 39 0d 0a 34 34 36 35 0d  ---..4289..4465.
18590 0a 34 35 35 39 0d 0a 0d 0a 71 75 65 72 79 20 49  .4559....query I
185a0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
185b0 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30   DISTINCT + col0
185c0 20 2a 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 34 35   * + col1 * - 45
185d0 20 2b 20 63 6f 6c 30 20 2a 20 37 36 20 46 52 4f   + col0 * 76 FRO
185e0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
185f0 2d 2d 2d 2d 0d 0a 2d 35 33 35 33 35 0d 0a 2d 37  ----..-53535..-7
18600 35 36 30 33 0d 0a 33 30 30 37 0d 0a 0d 0a 71 75  5603..3007....qu
18610 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
18620 45 4c 45 43 54 20 2d 20 2d 20 63 6f 6c 32 20 2d  ELECT - - col2 -
18630 20 2b 20 2b 20 63 6f 6c 30 20 2a 20 63 6f 6c 31   + + col0 * col1
18640 20 2b 20 2b 20 39 38 20 46 52 4f 4d 20 74 61 62   + + 98 FROM tab
18650 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
18660 0a 2d 31 30 37 30 0d 0a 2d 31 37 31 39 0d 0a 31  .-1070..-1719..1
18670 30 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  00....query I ro
18680 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
18690 4c 20 63 6f 6c 30 20 2b 20 36 37 20 41 53 20 63  L col0 + 67 AS c
186a0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  ol0 FROM tab0 co
186b0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 34 0d 0a 31  r0..----..154..1
186c0 36 34 0d 0a 38 32 0d 0a 0d 0a 71 75 65 72 79 20  64..82....query 
186d0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
186e0 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
186f0 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
18700 45 20 2d 20 32 20 4e 4f 54 20 42 45 54 57 45 45  E - 2 NOT BETWEE
18710 4e 20 2d 20 2d 20 38 38 20 2b 20 2d 20 63 6f 6c  N - - 88 + - col
18720 30 20 41 4e 44 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d  0 AND col2..----
18730 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
18740 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33  ng to 75c998aa53
18750 61 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36  ac83218cbf2feb96
18760 32 64 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20  2d0a49....query 
18770 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
18780 54 20 41 4c 4c 20 63 6f 6c 32 20 2a 20 63 6f 6c  T ALL col2 * col
18790 32 20 2b 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 28  2 + - col0 + - (
187a0 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 32 20 29   col0 + + col2 )
187b0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
187c0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 32 35 32 0d 0a  r0..----..3252..
187d0 34 33 37 34 0d 0a 39 30 31 38 0d 0a 0d 0a 71 75  4374..9018....qu
187e0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
187f0 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 41 53 20  ELECT + col1 AS 
18800 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63  col1 FROM tab0 c
18810 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49  or0 WHERE NULL I
18820 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 0d  S NULL..----..1.
18830 0a 32 31 0d 0a 38 31 0d 0a 0d 0a 6f 6e 6c 79 69  .21..81....onlyi
18840 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
18850 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65  yntax: aggregate
18860 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
18870 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
18880 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 35  rowsort label-55
18890 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  8..SELECT DISTIN
188a0 43 54 20 2d 20 39 33 20 2a 20 2d 20 43 4f 55 4e  CT - 93 * - COUN
188b0 54 28 20 41 4c 4c 20 2b 20 34 30 20 29 20 2d 20  T( ALL + 40 ) - 
188c0 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  - CAST( NULL AS 
188d0 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 31  SIGNED ) AS col1
188e0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
188f0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
18900 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
18910 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
18920 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
18930 20 6c 61 62 65 6c 2d 35 35 38 0d 0a 53 45 4c 45   label-558..SELE
18940 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 39 33  CT DISTINCT - 93
18950 20 2a 20 2d 20 43 4f 55 4e 54 20 28 20 41 4c 4c   * - COUNT ( ALL
18960 20 2b 20 34 30 20 29 20 2d 20 2d 20 43 41 53 54   + 40 ) - - CAST
18970 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
18980 45 52 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  ER ) AS col1 FRO
18990 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
189a0 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  ----..NULL....sk
189b0 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
189c0 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
189d0 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
189e0 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
189f0 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
18a00 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
18a10 4c 4c 20 35 33 20 2a 20 2b 20 32 37 20 63 6f 6c  LL 53 * + 27 col
18a20 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
18a30 6f 72 30 20 57 48 45 52 45 20 31 20 4e 4f 54 20  or0 WHERE 1 NOT 
18a40 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44  BETWEEN NULL AND
18a50 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 32   + col0 * - col2
18a60 20 4f 52 20 4e 4f 54 20 28 20 63 6f 6c 31 20 2f   OR NOT ( col1 /
18a70 20 63 6f 6c 31 20 29 20 42 45 54 57 45 45 4e 20   col1 ) BETWEEN 
18a80 28 20 2d 20 63 6f 6c 32 20 29 20 41 4e 44 20 28  ( - col2 ) AND (
18a90 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 31   NULL )..----..1
18aa0 34 33 31 0d 0a 31 34 33 31 0d 0a 31 34 33 31 0d  431..1431..1431.
18ab0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
18ac0 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
18ad0 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
18ae0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
18af0 62 65 6c 2d 35 36 30 0d 0a 53 45 4c 45 43 54 20  bel-560..SELECT 
18b00 2d 20 63 6f 6c 31 20 2b 20 2d 20 35 36 20 44 49  - col1 + - 56 DI
18b10 56 20 2d 20 2b 20 38 35 20 2a 20 2d 20 31 39 20  V - + 85 * - 19 
18b20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
18b30 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
18b40 0a 2d 31 0d 0a 2d 32 31 0d 0a 2d 38 31 0d 0a 0d  .-1..-21..-81...
18b50 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
18b60 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
18b70 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
18b80 6c 61 62 65 6c 2d 35 36 30 0d 0a 53 45 4c 45 43  label-560..SELEC
18b90 54 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 35 36 20  T - col1 + - 56 
18ba0 2f 20 2d 20 2b 20 38 35 20 2a 20 2d 20 31 39 20  / - + 85 * - 19 
18bb0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
18bc0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
18bd0 0a 2d 31 0d 0a 2d 32 31 0d 0a 2d 38 31 0d 0a 0d  .-1..-21..-81...
18be0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
18bf0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
18c00 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
18c10 20 4e 4f 54 20 28 20 2b 20 63 6f 6c 30 20 2a 20   NOT ( + col0 * 
18c20 2b 20 2d 20 34 31 20 29 20 4e 4f 54 20 42 45 54  + - 41 ) NOT BET
18c30 57 45 45 4e 20 2b 20 63 6f 6c 30 20 41 4e 44 20  WEEN + col0 AND 
18c40 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
18c50 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
18c60 45 4c 45 43 54 20 2b 20 2b 20 38 20 2a 20 2d 20  ELECT + + 8 * - 
18c70 2b 20 63 6f 6c 32 20 2a 20 33 30 20 46 52 4f 4d  + col2 * 30 FROM
18c80 20 74 61 62 30 20 57 48 45 52 45 20 4e 55 4c 4c   tab0 WHERE NULL
18c90 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
18ca0 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
18cb0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
18cc0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
18cd0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
18ce0 36 33 0d 0a 53 45 4c 45 43 54 20 38 36 20 2a 20  63..SELECT 86 * 
18cf0 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f  - COUNT( * ) FRO
18d00 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  M tab2..----..-2
18d10 35 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  58....skipif mys
18d20 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
18d30 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
18d40 73 6f 72 74 20 6c 61 62 65 6c 2d 35 36 33 0d 0a  sort label-563..
18d50 53 45 4c 45 43 54 20 38 36 20 2a 20 2d 20 43 4f  SELECT 86 * - CO
18d60 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
18d70 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35 38 0d  ab2..----..-258.
18d80 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
18d90 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
18da0 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
18db0 31 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 33 37  1 WHERE NOT - 37
18dc0 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
18dd0 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
18de0 20 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36   to c6c0a4111b36
18df0 64 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35  d04dbc811a11e4d5
18e00 34 63 61 64 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  4cad....onlyif m
18e10 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
18e20 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
18e30 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
18e40 72 74 20 6c 61 62 65 6c 2d 35 36 35 0d 0a 53 45  rt label-565..SE
18e50 4c 45 43 54 20 63 6f 6c 31 20 2a 20 43 41 53 54  LECT col1 * CAST
18e60 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
18e70 20 29 20 2f 20 2b 20 39 20 46 52 4f 4d 20 74 61   ) / + 9 FROM ta
18e80 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b0..----..NULL..
18e90 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  NULL..NULL....sk
18ea0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
18eb0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
18ec0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
18ed0 65 6c 2d 35 36 35 0d 0a 53 45 4c 45 43 54 20 63  el-565..SELECT c
18ee0 6f 6c 31 20 2a 20 43 41 53 54 20 28 20 4e 55 4c  ol1 * CAST ( NUL
18ef0 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2f  L AS INTEGER ) /
18f00 20 2b 20 39 20 46 52 4f 4d 20 74 61 62 30 0d 0a   + 9 FROM tab0..
18f10 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
18f20 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..NULL....onlyif
18f30 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
18f40 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
18f50 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72  e: ..query III r
18f60 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 36 36  owsort label-566
18f70 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
18f80 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
18f90 52 45 20 4e 4f 54 20 2b 20 36 32 20 2b 20 2b 20  RE NOT + 62 + + 
18fa0 2d 20 39 20 2a 20 2b 20 63 6f 6c 30 20 3c 3d 20  - 9 * + col0 <= 
18fb0 43 41 53 54 28 20 2d 20 63 6f 6c 32 20 41 53 20  CAST( - col2 AS 
18fc0 53 49 47 4e 45 44 20 29 20 2f 20 2b 20 63 6f 6c  SIGNED ) / + col
18fd0 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  2..----....skipi
18fe0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
18ff0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
19000 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
19010 6c 2d 35 36 36 0d 0a 53 45 4c 45 43 54 20 2a 20  l-566..SELECT * 
19020 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
19030 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 36 32  0 WHERE NOT + 62
19040 20 2b 20 2b 20 2d 20 39 20 2a 20 2b 20 63 6f 6c   + + - 9 * + col
19050 30 20 3c 3d 20 43 41 53 54 20 28 20 2d 20 63 6f  0 <= CAST ( - co
19060 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  l2 AS INTEGER ) 
19070 2f 20 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a  / + col2..----..
19080 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
19090 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
190a0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
190b0 73 6f 72 74 20 6c 61 62 65 6c 2d 35 36 37 0d 0a  sort label-567..
190c0 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55  SELECT ALL + COU
190d0 4e 54 28 20 44 49 53 54 49 4e 43 54 20 2d 20 2d  NT( DISTINCT - -
190e0 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 31 20   col1 ) AS col1 
190f0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
19100 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b  0..----..3....sk
19110 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
19120 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
19130 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
19140 65 6c 2d 35 36 37 0d 0a 53 45 4c 45 43 54 20 41  el-567..SELECT A
19150 4c 4c 20 2b 20 43 4f 55 4e 54 20 28 20 44 49 53  LL + COUNT ( DIS
19160 54 49 4e 43 54 20 2d 20 2d 20 63 6f 6c 31 20 29  TINCT - - col1 )
19170 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 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 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ..3....query III
191a0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
191b0 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
191c0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28  cor0 WHERE NOT (
191d0 20 2d 20 63 6f 6c 30 20 29 20 4e 4f 54 20 49 4e   - col0 ) NOT IN
191e0 20 28 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d   ( col1 )..----.
191f0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
19200 72 74 0d 0a 53 45 4c 45 43 54 20 35 32 20 46 52  rt..SELECT 52 FR
19210 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
19220 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 30  WHERE NOT - col0
19230 20 2b 20 2d 20 63 6f 6c 30 20 49 53 20 4e 55 4c   + - col0 IS NUL
19240 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 32 0d 0a 35 32 0d  L..----..52..52.
19250 0a 35 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  .52....query III
19260 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
19270 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30   ALL * FROM tab0
19280 20 57 48 45 52 45 20 28 20 37 33 20 2a 20 2d 20   WHERE ( 73 * - 
19290 33 20 2b 20 2b 20 31 38 20 2b 20 2d 20 63 6f 6c  3 + + 18 + - col
192a0 30 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  0 ) IS NOT NULL.
192b0 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
192c0 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32  hashing to c4b42
192d0 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34  765dff94eaaa4604
192e0 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71  0e537fb43b7....q
192f0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
19300 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c  SELECT ALL + col
19310 32 20 2f 20 2b 20 2d 20 33 32 20 2b 20 2d 20 38  2 / + - 32 + - 8
19320 38 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  8 FROM tab1 WHER
19330 45 20 2b 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c  E + col2 IS NULL
19340 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
19350 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
19360 54 20 2d 20 28 20 63 6f 6c 30 20 29 20 2a 20 2b  T - ( col0 ) * +
19370 20 31 20 2a 20 2b 20 63 6f 6c 32 20 41 53 20 63   1 * + col2 AS c
19380 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
19390 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30   cor0..----..-10
193a0 35 38 0d 0a 2d 32 35 36 30 0d 0a 2d 34 33 35 30  58..-2560..-4350
193b0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
193c0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20  ort..SELECT + - 
193d0 63 6f 6c 30 20 2a 20 2d 20 39 35 20 46 52 4f 4d  col0 * - 95 FROM
193e0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
193f0 2d 2d 2d 0d 0a 34 38 34 35 0d 0a 38 30 37 35 0d  ---..4845..8075.
19400 0a 38 36 34 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .8645....onlyif 
19410 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
19420 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
19430 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
19440 6c 2d 35 37 34 0d 0a 53 45 4c 45 43 54 20 2b 20  l-574..SELECT + 
19450 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20 2d  COUNT( * ) * + -
19460 20 35 38 20 46 52 4f 4d 20 74 61 62 32 20 41 53   58 FROM tab2 AS
19470 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37   cor0..----..-17
19480 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  4....skipif mysq
19490 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
194a0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
194b0 6f 72 74 20 6c 61 62 65 6c 2d 35 37 34 0d 0a 53  ort label-574..S
194c0 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20 28 20  ELECT + COUNT ( 
194d0 2a 20 29 20 2a 20 2b 20 2d 20 35 38 20 46 52 4f  * ) * + - 58 FRO
194e0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
194f0 2d 2d 2d 2d 0d 0a 2d 31 37 34 0d 0a 0d 0a 6f 6e  ----..-174....on
19500 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
19510 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
19520 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
19530 20 6c 61 62 65 6c 2d 35 37 35 0d 0a 53 45 4c 45   label-575..SELE
19540 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20  CT + COUNT( * ) 
19550 2b 20 2b 20 2b 20 37 36 20 46 52 4f 4d 20 74 61  + + + 76 FROM ta
19560 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37  b0 cor0..----..7
19570 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
19580 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
19590 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
195a0 6f 72 74 20 6c 61 62 65 6c 2d 35 37 35 0d 0a 53  ort label-575..S
195b0 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20 28 20  ELECT + COUNT ( 
195c0 2a 20 29 20 2b 20 2b 20 2b 20 37 36 20 46 52 4f  * ) + + + 76 FRO
195d0 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
195e0 2d 0d 0a 37 39 0d 0a 0d 0a 71 75 65 72 79 20 49  -..79....query I
195f0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
19600 54 20 2b 20 2d 20 31 37 20 2a 20 63 6f 6c 32 20  T + - 17 * col2 
19610 2b 20 2b 20 32 31 20 41 53 20 63 6f 6c 32 2c 20  + + 21 AS col2, 
19620 36 36 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  66 AS col0 FROM 
19630 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
19640 2d 2d 0d 0a 2d 33 37 30 0d 0a 36 36 0d 0a 2d 36  --..-370..66..-6
19650 35 39 0d 0a 36 36 0d 0a 2d 39 36 35 0d 0a 36 36  59..66..-965..66
19660 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
19670 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  ort..SELECT + co
19680 6c 31 20 2f 20 2b 20 2b 20 63 6f 6c 31 20 2b 20  l1 / + + col1 + 
19690 2b 20 34 39 20 41 53 20 63 6f 6c 30 20 46 52 4f  + 49 AS col0 FRO
196a0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
196b0 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53  HERE NOT NULL IS
196c0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   NULL..----....o
196d0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
196e0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
196f0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
19700 74 20 6c 61 62 65 6c 2d 35 37 38 0d 0a 53 45 4c  t label-578..SEL
19710 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 32  ECT DISTINCT + 2
19720 32 20 2a 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  2 * + COUNT( * )
19730 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
19740 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 36 0d 0a 0d 0a  r0..----..66....
19750 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
19760 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
19770 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
19780 61 62 65 6c 2d 35 37 38 0d 0a 53 45 4c 45 43 54  abel-578..SELECT
19790 20 44 49 53 54 49 4e 43 54 20 2b 20 32 32 20 2a   DISTINCT + 22 *
197a0 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46   + COUNT ( * ) F
197b0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
197c0 0d 0a 2d 2d 2d 2d 0d 0a 36 36 0d 0a 0d 0a 71 75  ..----..66....qu
197d0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
197e0 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
197f0 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 28 20  ab2 WHERE NOT ( 
19800 28 20 2b 20 63 6f 6c 32 20 29 20 49 53 20 4e 55  ( + col2 ) IS NU
19810 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  LL )..----..9 va
19820 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
19830 37 35 63 39 39 38 61 61 35 33 61 63 38 33 32 31  75c998aa53ac8321
19840 38 63 62 66 32 66 65 62 39 36 32 64 30 61 34 39  8cbf2feb962d0a49
19850 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
19860 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63  sort..SELECT + c
19870 6f 6c 30 2c 20 2b 20 63 6f 6c 32 20 41 53 20 63  ol0, + col2 AS c
19880 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
19890 2d 2d 2d 0d 0a 34 36 0d 0a 32 33 0d 0a 36 34 0d  ---..46..23..64.
198a0 0a 34 30 0d 0a 37 35 0d 0a 35 38 0d 0a 0d 0a 71  .40..75..58....q
198b0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
198c0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
198d0 28 20 37 38 20 29 20 41 53 20 63 6f 6c 32 20 46  ( 78 ) AS col2 F
198e0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
198f0 37 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  78....query I ro
19900 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
19910 6c 31 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74  l1 - col0 FROM t
19920 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 28 20  ab2 WHERE NOT ( 
19930 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 32 20 29 20  col0 + - col2 ) 
19940 3c 3d 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d  <= + col1..----.
19950 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
19960 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
19970 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 2d  ROM tab0 WHERE -
19980 20 2d 20 38 30 20 3c 3e 20 2b 20 63 6f 6c 31 0d   - 80 <> + col1.
19990 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
199a0 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32  hashing to c4b42
199b0 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34  765dff94eaaa4604
199c0 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 6f  0e537fb43b7....o
199d0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
199e0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
199f0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
19a00 74 20 6c 61 62 65 6c 2d 35 38 34 0d 0a 53 45 4c  t label-584..SEL
19a10 45 43 54 20 2d 20 28 20 2d 20 4d 41 58 28 20 44  ECT - ( - MAX( D
19a20 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20 29  ISTINCT - col0 )
19a30 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
19a40 74 61 62 32 20 57 48 45 52 45 20 4e 55 4c 4c 20  tab2 WHERE NULL 
19a50 3e 3d 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 2d 20  >= + col2 + + - 
19a60 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  col0..----..NULL
19a70 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
19a80 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
19a90 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
19aa0 72 74 20 6c 61 62 65 6c 2d 35 38 34 0d 0a 53 45  rt label-584..SE
19ab0 4c 45 43 54 20 2d 20 28 20 2d 20 4d 41 58 20 28  LECT - ( - MAX (
19ac0 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30   DISTINCT - col0
19ad0 20 29 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f   ) ) AS col0 FRO
19ae0 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 55 4c  M tab2 WHERE NUL
19af0 4c 20 3e 3d 20 2b 20 63 6f 6c 32 20 2b 20 2b 20  L >= + col2 + + 
19b00 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  - col0..----..NU
19b10 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  LL....onlyif mys
19b20 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
19b30 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
19b40 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
19b50 38 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  85..SELECT DISTI
19b60 4e 43 54 20 39 20 2b 20 43 4f 55 4e 54 28 20 2a  NCT 9 + COUNT( *
19b70 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
19b80 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 0d 0a  cor0..----..12..
19b90 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
19ba0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
19bb0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
19bc0 20 6c 61 62 65 6c 2d 35 38 35 0d 0a 53 45 4c 45   label-585..SELE
19bd0 43 54 20 44 49 53 54 49 4e 43 54 20 39 20 2b 20  CT DISTINCT 9 + 
19be0 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d  COUNT ( * ) FROM
19bf0 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
19c00 2d 2d 2d 0d 0a 31 32 0d 0a 0d 0a 71 75 65 72 79  ---..12....query
19c10 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
19c20 45 43 54 20 33 34 20 41 53 20 63 6f 6c 31 2c 20  ECT 34 AS col1, 
19c30 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 32 20 2a 20  col2 * + col2 * 
19c40 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  + col2 FROM tab2
19c50 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
19c60 33 34 0d 0a 31 32 31 36 37 0d 0a 33 34 0d 0a 31  34..12167..34..1
19c70 39 35 31 31 32 0d 0a 33 34 0d 0a 36 34 30 30 30  95112..34..64000
19c80 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
19c90 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
19ca0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
19cb0 30 20 57 48 45 52 45 20 28 20 36 39 20 29 20 49  0 WHERE ( 69 ) I
19cc0 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
19cd0 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
19ce0 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31 62  ng to c6c0a4111b
19cf0 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65 34  36d04dbc811a11e4
19d00 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20  d54cad....query 
19d10 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
19d20 54 20 63 6f 6c 32 20 2a 20 2b 20 39 32 20 46 52  T col2 * + 92 FR
19d30 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
19d40 0a 2d 2d 2d 2d 0d 0a 32 31 31 36 0d 0a 33 36 38  .----..2116..368
19d50 30 0d 0a 35 33 33 36 0d 0a 0d 0a 71 75 65 72 79  0..5336....query
19d60 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
19d70 43 54 20 44 49 53 54 49 4e 43 54 20 39 39 20 2b  CT DISTINCT 99 +
19d80 20 36 33 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   63 AS col2 FROM
19d90 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
19da0 2d 2d 2d 0d 0a 31 36 32 0d 0a 0d 0a 6f 6e 6c 79  ---..162....only
19db0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
19dc0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
19dd0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
19de0 61 62 65 6c 2d 35 39 30 0d 0a 53 45 4c 45 43 54  abel-590..SELECT
19df0 20 41 4c 4c 20 2d 20 2d 20 4d 41 58 28 20 44 49   ALL - - MAX( DI
19e00 53 54 49 4e 43 54 20 2d 20 39 33 20 29 20 41 53  STINCT - 93 ) AS
19e10 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
19e20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
19e30 39 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  93....skipif mys
19e40 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
19e50 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
19e60 73 6f 72 74 20 6c 61 62 65 6c 2d 35 39 30 0d 0a  sort label-590..
19e70 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 4d  SELECT ALL - - M
19e80 41 58 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20  AX ( DISTINCT - 
19e90 39 33 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  93 ) AS col1 FRO
19ea0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
19eb0 2d 2d 2d 2d 0d 0a 2d 39 33 0d 0a 0d 0a 71 75 65  ----..-93....que
19ec0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
19ed0 4c 45 43 54 20 2b 20 32 36 20 2b 20 63 6f 6c 30  LECT + 26 + col0
19ee0 20 2b 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 2d 20   + + + col1 * - 
19ef0 2b 20 37 34 20 2a 20 2d 20 39 38 20 41 53 20 63  + 74 * - 98 AS c
19f00 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
19f10 2d 2d 2d 0d 0a 31 30 31 36 30 35 0d 0a 33 34 30  ---..101605..340
19f20 39 36 31 0d 0a 33 36 33 37 31 0d 0a 0d 0a 71 75  961..36371....qu
19f30 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
19f40 45 4c 45 43 54 20 63 6f 6c 32 20 2a 20 2b 20 2d  ELECT col2 * + -
19f50 20 63 6f 6c 32 20 2b 20 2b 20 31 38 20 46 52 4f   col2 + + 18 FRO
19f60 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  M tab1..----..-3
19f70 34 36 33 0d 0a 2d 34 36 30 36 0d 0a 2d 39 31 39  463..-4606..-919
19f80 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  8....skipif post
19f90 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
19fa0 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
19fb0 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
19fc0 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
19fd0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
19fe0 45 4c 45 43 54 20 2b 20 35 30 20 2b 20 2b 20 63  ELECT + 50 + + c
19ff0 6f 6c 30 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  ol0 col1 FROM ta
1a000 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
1a010 0d 0a 31 31 34 0d 0a 31 32 35 0d 0a 39 36 0d 0a  ..114..125..96..
1a020 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1a030 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
1a040 43 54 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  CT col2 FROM tab
1a050 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
1a060 4e 4f 54 20 4e 55 4c 4c 20 3e 20 63 6f 6c 30 20  NOT NULL > col0 
1a070 2f 20 2b 20 2b 20 28 20 2b 20 28 20 38 31 20 29  / + + ( + ( 81 )
1a080 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72   )..----....quer
1a090 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1a0a0 45 43 54 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 32  ECT - col0 * + 2
1a0b0 34 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  4 FROM tab1 AS c
1a0c0 6f 72 30 20 57 48 45 52 45 20 2b 20 35 31 20 3e  or0 WHERE + 51 >
1a0d0 3d 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 30 20  = col2 * - col0 
1a0e0 2a 20 36 33 20 2b 20 2d 20 63 6f 6c 30 20 2d 20  * 63 + - col0 - 
1a0f0 39 32 20 2b 20 2b 20 31 37 20 2a 20 2b 20 63 6f  92 + + 17 * + co
1a100 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 32 34 0d  l1..----..-1224.
1a110 0a 2d 32 30 34 30 0d 0a 2d 32 31 38 34 0d 0a 0d  .-2040..-2184...
1a120 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1a130 0d 0a 53 45 4c 45 43 54 20 36 39 20 2b 20 2b 20  ..SELECT 69 + + 
1a140 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f  col1 AS col0 FRO
1a150 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48 45 52  M tab2 cor0 WHER
1a160 45 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55  E NULL IS NOT NU
1a170 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  LL..----....only
1a180 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
1a190 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
1a1a0 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
1a1b0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 39 37  owsort label-597
1a1c0 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20 43 41 53  ..SELECT - ( CAS
1a1d0 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
1a1e0 44 20 29 20 29 20 46 52 4f 4d 20 74 61 62 32 20  D ) ) FROM tab2 
1a1f0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
1a200 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
1a210 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1a220 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1a230 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1a240 74 20 6c 61 62 65 6c 2d 35 39 37 0d 0a 53 45 4c  t label-597..SEL
1a250 45 43 54 20 2d 20 28 20 43 41 53 54 20 28 20 4e  ECT - ( CAST ( N
1a260 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
1a270 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
1a280 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
1a290 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
1a2a0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1a2b0 0a 53 45 4c 45 43 54 20 34 34 20 41 53 20 63 6f  .SELECT 44 AS co
1a2c0 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  l0 FROM tab1 cor
1a2d0 30 0d 0a 2d 2d 2d 2d 0d 0a 34 34 0d 0a 34 34 0d  0..----..44..44.
1a2e0 0a 34 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .44....onlyif my
1a2f0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
1a300 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
1a310 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1a320 35 39 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  599..SELECT DIST
1a330 49 4e 43 54 20 2d 20 2b 20 34 20 2b 20 2b 20 28  INCT - + 4 + + (
1a340 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20   + - COUNT( * ) 
1a350 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
1a360 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
1a370 2d 0d 0a 2d 37 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..-7....skipif 
1a380 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1a390 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1a3a0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 39  rowsort label-59
1a3b0 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  9..SELECT DISTIN
1a3c0 43 54 20 2d 20 2b 20 34 20 2b 20 2b 20 28 20 2b  CT - + 4 + + ( +
1a3d0 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29   - COUNT ( * ) )
1a3e0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
1a3f0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
1a400 0d 0a 2d 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..-7....query I 
1a410 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1a420 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  - col2 FROM tab1
1a430 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28   AS cor0 WHERE (
1a440 20 4e 55 4c 4c 20 29 20 49 4e 20 28 20 2d 20 37   NULL ) IN ( - 7
1a450 37 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  7 )..----....que
1a460 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1a470 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 32 30  LECT DISTINCT 20
1a480 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
1a490 72 30 20 57 48 45 52 45 20 35 34 20 4e 4f 54 20  r0 WHERE 54 NOT 
1a4a0 49 4e 20 28 20 35 31 20 2b 20 2b 20 63 6f 6c 32  IN ( 51 + + col2
1a4b0 20 29 0d 0a 2d 2d 2d 2d 0d 0a 32 30 0d 0a 0d 0a   )..----..20....
1a4c0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
1a4d0 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
1a4e0 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
1a4f0 45 52 45 20 63 6f 6c 31 20 49 4e 20 28 20 2d 20  ERE col1 IN ( - 
1a500 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  col2 )..----....
1a510 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
1a520 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
1a530 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1a540 72 74 20 6c 61 62 65 6c 2d 36 30 33 0d 0a 53 45  rt label-603..SE
1a550 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
1a560 37 30 20 2b 20 2d 20 2d 20 28 20 28 20 2d 20 33  70 + - - ( ( - 3
1a570 38 20 29 20 29 20 2d 20 2d 20 2b 20 43 4f 55 4e  8 ) ) - - + COUN
1a580 54 28 20 2a 20 29 20 2a 20 34 36 20 41 53 20 63  T( * ) * 46 AS c
1a590 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol2 FROM tab1..-
1a5a0 2d 2d 2d 0d 0a 31 37 30 0d 0a 0d 0a 73 6b 69 70  ---..170....skip
1a5b0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1a5c0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1a5d0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1a5e0 2d 36 30 33 0d 0a 53 45 4c 45 43 54 20 44 49 53  -603..SELECT DIS
1a5f0 54 49 4e 43 54 20 2b 20 37 30 20 2b 20 2d 20 2d  TINCT + 70 + - -
1a600 20 28 20 28 20 2d 20 33 38 20 29 20 29 20 2d 20   ( ( - 38 ) ) - 
1a610 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  - + COUNT ( * ) 
1a620 2a 20 34 36 20 41 53 20 63 6f 6c 32 20 46 52 4f  * 46 AS col2 FRO
1a630 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 37  M tab1..----..17
1a640 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
1a650 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
1a660 20 37 20 2a 20 35 33 20 46 52 4f 4d 20 74 61 62   7 * 53 FROM tab
1a670 31 0d 0a 2d 2d 2d 2d 0d 0a 33 37 31 0d 0a 33 37  1..----..371..37
1a680 31 0d 0a 33 37 31 0d 0a 0d 0a 71 75 65 72 79 20  1..371....query 
1a690 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1a6a0 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f  CT DISTINCT - co
1a6b0 6c 32 20 41 53 20 63 6f 6c 30 2c 20 2d 20 39 20  l2 AS col0, - 9 
1a6c0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
1a6d0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a 2d 39  0..----..-59..-9
1a6e0 0d 0a 2d 36 38 0d 0a 2d 39 0d 0a 2d 39 36 0d 0a  ..-68..-9..-96..
1a6f0 2d 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  -9....onlyif mys
1a700 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
1a710 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
1a720 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1a730 30 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  06..SELECT DISTI
1a740 4e 43 54 20 2b 20 2d 20 4d 49 4e 28 20 2d 20 37  NCT + - MIN( - 7
1a750 35 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  5 ) FROM tab0 AS
1a760 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 35 0d   cor0..----..75.
1a770 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1a780 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1a790 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1a7a0 74 20 6c 61 62 65 6c 2d 36 30 36 0d 0a 53 45 4c  t label-606..SEL
1a7b0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2d  ECT DISTINCT + -
1a7c0 20 4d 49 4e 20 28 20 2d 20 37 35 20 29 20 46 52   MIN ( - 75 ) FR
1a7d0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
1a7e0 0a 2d 2d 2d 2d 0d 0a 37 35 0d 0a 0d 0a 71 75 65  .----..75....que
1a7f0 72 79 20 49 49 49 49 49 49 20 72 6f 77 73 6f 72  ry IIIIII rowsor
1a800 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
1a810 20 74 61 62 31 20 63 6f 72 30 20 43 52 4f 53 53   tab1 cor0 CROSS
1a820 20 4a 4f 49 4e 20 74 61 62 32 20 41 53 20 63 6f   JOIN tab2 AS co
1a830 72 31 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  r1 WHERE NOT NUL
1a840 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  L IS NOT NULL..-
1a850 2d 2d 2d 0d 0a 35 34 20 76 61 6c 75 65 73 20 68  ---..54 values h
1a860 61 73 68 69 6e 67 20 74 6f 20 63 34 31 39 64 63  ashing to c419dc
1a870 32 61 36 35 33 62 63 63 64 38 34 66 37 61 32 64  2a653bccd84f7a2d
1a880 61 31 30 33 33 31 35 31 38 37 0d 0a 0d 0a 73 6b  a103315187....sk
1a890 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
1a8a0 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
1a8b0 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
1a8c0 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
1a8d0 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20  lumns..query II 
1a8e0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1a8f0 2b 20 34 34 20 2a 20 2d 20 36 34 20 63 6f 6c 31  + 44 * - 64 col1
1a900 2c 20 37 36 20 41 53 20 63 6f 6c 30 20 46 52 4f  , 76 AS col0 FRO
1a910 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  M tab0..----..-2
1a920 38 31 36 0d 0a 37 36 0d 0a 2d 32 38 31 36 0d 0a  816..76..-2816..
1a930 37 36 0d 0a 2d 32 38 31 36 0d 0a 37 36 0d 0a 0d  76..-2816..76...
1a940 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1a950 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 2b 20 36  ..SELECT + ( + 6
1a960 34 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  4 ) AS col2 FROM
1a970 20 74 61 62 30 20 63 6f 72 30 20 57 48 45 52 45   tab0 cor0 WHERE
1a980 20 4e 4f 54 20 63 6f 6c 32 20 2b 20 28 20 2d 20   NOT col2 + ( - 
1a990 2b 20 63 6f 6c 30 20 29 20 49 53 20 4e 4f 54 20  + col0 ) IS NOT 
1a9a0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
1a9b0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
1a9c0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
1a9d0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1a9e0 20 6c 61 62 65 6c 2d 36 31 30 0d 0a 53 45 4c 45   label-610..SELE
1a9f0 43 54 20 41 4c 4c 20 2b 20 2d 20 4d 49 4e 28 20  CT ALL + - MIN( 
1aa00 41 4c 4c 20 28 20 63 6f 6c 32 20 29 20 29 20 41  ALL ( col2 ) ) A
1aa10 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
1aa20 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1aa30 2d 31 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -10....skipif my
1aa40 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1aa50 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1aa60 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 31 30 0d  wsort label-610.
1aa70 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20  .SELECT ALL + - 
1aa80 4d 49 4e 20 28 20 41 4c 4c 20 28 20 63 6f 6c 32  MIN ( ALL ( col2
1aa90 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   ) ) AS col1 FRO
1aaa0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
1aab0 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 0d 0a 71 75 65  ----..-10....que
1aac0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1aad0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
1aae0 34 35 20 2a 20 63 6f 6c 32 20 46 52 4f 4d 20 74  45 * col2 FROM t
1aaf0 61 62 30 20 63 6f 72 30 20 57 48 45 52 45 20 28  ab0 cor0 WHERE (
1ab00 20 4e 55 4c 4c 20 29 20 49 53 20 4e 55 4c 4c 0d   NULL ) IS NULL.
1ab10 0a 2d 2d 2d 2d 0d 0a 32 31 31 35 0d 0a 34 34 35  .----..2115..445
1ab20 35 0d 0a 34 35 30 0d 0a 0d 0a 71 75 65 72 79 20  5..450....query 
1ab30 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1ab40 43 54 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 32 35  CT + col2 * - 25
1ab50 2c 20 35 33 20 41 53 20 63 6f 6c 30 20 46 52 4f  , 53 AS col0 FRO
1ab60 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
1ab70 2d 2d 2d 2d 0d 0a 2d 31 34 37 35 0d 0a 35 33 0d  ----..-1475..53.
1ab80 0a 2d 31 37 30 30 0d 0a 35 33 0d 0a 2d 32 34 30  .-1700..53..-240
1ab90 30 0d 0a 35 33 0d 0a 0d 0a 71 75 65 72 79 20 49  0..53....query I
1aba0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1abb0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41  CT * FROM tab2 A
1abc0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
1abd0 20 2b 20 39 35 20 2a 20 2b 20 63 6f 6c 31 20 49   + 95 * + col1 I
1abe0 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20  S NULL..----..9 
1abf0 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
1ac00 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38 33  o 75c998aa53ac83
1ac10 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30 61  218cbf2feb962d0a
1ac20 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  49....query III 
1ac30 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1ac40 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ALL * FROM tab2 
1ac50 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
1ac60 54 20 63 6f 6c 32 20 4e 4f 54 20 42 45 54 57 45  T col2 NOT BETWE
1ac70 45 4e 20 28 20 4e 55 4c 4c 20 29 20 41 4e 44 20  EN ( NULL ) AND 
1ac80 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
1ac90 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
1aca0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
1acb0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1acc0 20 6c 61 62 65 6c 2d 36 31 35 0d 0a 53 45 4c 45   label-615..SELE
1acd0 43 54 20 44 49 53 54 49 4e 43 54 20 4d 41 58 28  CT DISTINCT MAX(
1ace0 20 41 4c 4c 20 2b 20 35 39 20 29 20 41 53 20 63   ALL + 59 ) AS c
1acf0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
1ad00 2d 2d 2d 0d 0a 35 39 0d 0a 0d 0a 73 6b 69 70 69  ---..59....skipi
1ad10 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1ad20 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
1ad30 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1ad40 36 31 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  615..SELECT DIST
1ad50 49 4e 43 54 20 4d 41 58 20 28 20 41 4c 4c 20 2b  INCT MAX ( ALL +
1ad60 20 35 39 20 29 20 41 53 20 63 6f 6c 32 20 46 52   59 ) AS col2 FR
1ad70 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 35  OM tab0..----..5
1ad80 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  9....onlyif mysq
1ad90 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
1ada0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
1adb0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 31  rowsort label-61
1adc0 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  6..SELECT DISTIN
1add0 43 54 20 2b 20 33 31 20 2a 20 2d 20 53 55 4d 28  CT + 31 * - SUM(
1ade0 20 37 39 20 29 20 2a 20 2d 20 2b 20 38 20 41 53   79 ) * - + 8 AS
1adf0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d   col2 FROM tab2.
1ae00 0a 2d 2d 2d 2d 0d 0a 35 38 37 37 36 0d 0a 0d 0a  .----..58776....
1ae10 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1ae20 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1ae30 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1ae40 61 62 65 6c 2d 36 31 36 0d 0a 53 45 4c 45 43 54  abel-616..SELECT
1ae50 20 44 49 53 54 49 4e 43 54 20 2b 20 33 31 20 2a   DISTINCT + 31 *
1ae60 20 2d 20 53 55 4d 20 28 20 37 39 20 29 20 2a 20   - SUM ( 79 ) * 
1ae70 2d 20 2b 20 38 20 41 53 20 63 6f 6c 32 20 46 52  - + 8 AS col2 FR
1ae80 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35  OM tab2..----..5
1ae90 38 37 37 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  8776....skipif p
1aea0 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
1aeb0 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
1aec0 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
1aed0 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
1aee0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1aef0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1af00 54 20 63 6f 6c 30 20 2a 20 2b 20 2d 20 63 6f 6c  T col0 * + - col
1af10 30 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  0 col1 FROM tab2
1af20 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 31 36 0d 0a 2d  ..----..-2116..-
1af30 34 30 39 36 0d 0a 2d 35 36 32 35 0d 0a 0d 0a 71  4096..-5625....q
1af40 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
1af50 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1af60 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  T * FROM tab2 WH
1af70 45 52 45 20 4e 4f 54 20 28 20 32 37 20 29 20 49  ERE NOT ( 27 ) I
1af80 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20  S NULL..----..9 
1af90 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
1afa0 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38 33  o 75c998aa53ac83
1afb0 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30 61  218cbf2feb962d0a
1afc0 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  49....onlyif mys
1afd0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
1afe0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
1aff0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1b000 31 39 0d 0a 53 45 4c 45 43 54 20 4d 49 4e 28 20  19..SELECT MIN( 
1b010 2d 20 2b 20 63 6f 6c 32 20 29 20 2b 20 2b 20 2b  - + col2 ) + + +
1b020 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
1b030 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
1b040 2d 2d 2d 0d 0a 2d 39 36 0d 0a 0d 0a 73 6b 69 70  ---..-96....skip
1b050 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1b060 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1b070 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1b080 2d 36 31 39 0d 0a 53 45 4c 45 43 54 20 4d 49 4e  -619..SELECT MIN
1b090 20 28 20 2d 20 2b 20 63 6f 6c 32 20 29 20 2b 20   ( - + col2 ) + 
1b0a0 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  + + COUNT ( * ) 
1b0b0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
1b0c0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 36 0d 0a 0d 0a  0..----..-96....
1b0d0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
1b0e0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1b0f0 54 20 37 37 20 41 53 20 63 6f 6c 30 2c 20 63 6f  T 77 AS col0, co
1b100 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
1b110 2d 2d 0d 0a 37 37 0d 0a 31 34 0d 0a 37 37 0d 0a  --..77..14..77..
1b120 34 37 0d 0a 37 37 0d 0a 35 0d 0a 0d 0a 71 75 65  47..77..5....que
1b130 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1b140 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20  LECT ALL - col0 
1b150 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
1b160 2d 20 36 36 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  - 66 IS NOT NULL
1b170 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 2d 38 37  ..----..-15..-87
1b180 0d 0a 2d 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-97....onlyif 
1b190 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
1b1a0 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
1b1b0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1b1c0 6f 72 74 20 6c 61 62 65 6c 2d 36 32 32 0d 0a 53  ort label-622..S
1b1d0 45 4c 45 43 54 20 2b 20 2d 20 34 36 20 2b 20 2d  ELECT + - 46 + -
1b1e0 20 36 39 20 46 52 4f 4d 20 74 61 62 30 20 57 48   69 FROM tab0 WH
1b1f0 45 52 45 20 34 39 20 2a 20 2d 20 43 41 53 54 28  ERE 49 * - CAST(
1b200 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
1b210 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  ) IS NOT NULL..-
1b220 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ---....skipif my
1b230 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1b240 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1b250 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32 32 0d  wsort label-622.
1b260 0a 53 45 4c 45 43 54 20 2b 20 2d 20 34 36 20 2b  .SELECT + - 46 +
1b270 20 2d 20 36 39 20 46 52 4f 4d 20 74 61 62 30 20   - 69 FROM tab0 
1b280 57 48 45 52 45 20 34 39 20 2a 20 2d 20 43 41 53  WHERE 49 * - CAS
1b290 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
1b2a0 47 45 52 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c  GER ) IS NOT NUL
1b2b0 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
1b2c0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1b2d0 43 54 20 2b 20 2d 20 63 6f 6c 30 20 2b 20 63 6f  CT + - col0 + co
1b2e0 6c 31 20 2b 20 2b 20 38 30 20 46 52 4f 4d 20 74  l1 + + 80 FROM t
1b2f0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
1b300 2d 0d 0a 2d 31 36 0d 0a 31 34 0d 0a 31 34 36 0d  -..-16..14..146.
1b310 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1b320 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
1b330 20 2b 20 39 34 20 2a 20 2d 20 32 30 20 2a 20 2b   + 94 * - 20 * +
1b340 20 63 6f 6c 31 20 2b 20 2d 20 39 33 20 2a 20 2d   col1 + - 93 * -
1b350 20 63 6f 6c 31 20 2a 20 2b 20 2b 20 63 6f 6c 32   col1 * + + col2
1b360 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
1b370 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 30 34 39 36 39  r0..----..204969
1b380 0d 0a 34 33 31 32 30 30 0d 0a 34 38 37 33 35 38  ..431200..487358
1b390 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1b3a0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
1b3b0 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
1b3c0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
1b3d0 20 6c 61 62 65 6c 2d 36 32 35 0d 0a 53 45 4c 45   label-625..SELE
1b3e0 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
1b3f0 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
1b400 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   + CAST( NULL AS
1b410 20 53 49 47 4e 45 44 20 29 20 2a 20 2b 20 63 6f   SIGNED ) * + co
1b420 6c 32 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 49 53  l2 * + - col2 IS
1b430 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
1b440 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1b450 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1b460 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
1b470 6f 72 74 20 6c 61 62 65 6c 2d 36 32 35 0d 0a 53  ort label-625..S
1b480 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
1b490 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
1b4a0 45 52 45 20 2b 20 43 41 53 54 20 28 20 4e 55 4c  ERE + CAST ( NUL
1b4b0 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a  L AS INTEGER ) *
1b4c0 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 2d 20 63 6f   + col2 * + - co
1b4d0 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  l2 IS NOT NULL..
1b4e0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
1b4f0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1b500 2d 20 2b 20 38 35 20 2a 20 2d 20 2b 20 63 6f 6c  - + 85 * - + col
1b510 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  0 AS col1 FROM t
1b520 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
1b530 2d 0d 0a 31 32 37 35 0d 0a 37 33 39 35 0d 0a 38  -..1275..7395..8
1b540 32 34 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  245....skipif po
1b550 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
1b560 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
1b570 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
1b580 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
1b590 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1b5a0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1b5b0 20 2d 20 2b 20 33 31 20 2a 20 2b 20 31 39 20 2a   - + 31 * + 19 *
1b5c0 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 2b 20 63 6f   + col2 + - + co
1b5d0 6c 32 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  l2 col1 FROM tab
1b5e0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
1b5f0 0a 2d 31 33 35 37 30 0d 0a 2d 32 33 36 30 30 0d  .-13570..-23600.
1b600 0a 2d 33 34 32 32 30 0d 0a 0d 0a 71 75 65 72 79  .-34220....query
1b610 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1b620 43 54 20 41 4c 4c 20 63 6f 6c 32 20 2a 20 2b 20  CT ALL col2 * + 
1b630 2b 20 63 6f 6c 32 20 2d 20 2b 20 33 32 20 46 52  + col2 - + 32 FR
1b640 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab2..----..1
1b650 35 36 38 0d 0a 33 33 33 32 0d 0a 34 39 37 0d 0a  568..3332..497..
1b660 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1b670 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
1b680 43 54 20 2d 20 28 20 2d 20 34 39 20 29 20 2a 20  CT - ( - 49 ) * 
1b690 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46  - col2 AS col0 F
1b6a0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
1b6b0 2d 32 33 30 33 0d 0a 2d 34 38 35 31 0d 0a 2d 34  -2303..-4851..-4
1b6c0 39 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  90....query I ro
1b6d0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
1b6e0 4c 20 31 36 20 2a 20 2d 20 2d 20 63 6f 6c 32 20  L 16 * - - col2 
1b6f0 2a 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  * + col0 FROM ta
1b700 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 36 39 32 38 0d  b2..----..16928.
1b710 0a 34 30 39 36 30 0d 0a 36 39 36 30 30 0d 0a 0d  .40960..69600...
1b720 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1b730 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43  CAST syntax: DEC
1b740 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65  IMAL type: ..que
1b750 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
1b760 61 62 65 6c 2d 36 33 31 0d 0a 53 45 4c 45 43 54  abel-631..SELECT
1b770 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72   * FROM tab2 cor
1b780 30 20 57 48 45 52 45 20 63 6f 6c 32 20 2a 20 2d  0 WHERE col2 * -
1b790 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   - CAST( NULL AS
1b7a0 20 44 45 43 49 4d 41 4c 20 29 20 49 53 20 4e 55   DECIMAL ) IS NU
1b7b0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  LL..----..9 valu
1b7c0 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35  es hashing to 75
1b7d0 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63  c998aa53ac83218c
1b7e0 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a  bf2feb962d0a49..
1b7f0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1b800 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1b810 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
1b820 72 74 20 6c 61 62 65 6c 2d 36 33 31 0d 0a 53 45  rt label-631..SE
1b830 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  LECT * FROM tab2
1b840 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 32   cor0 WHERE col2
1b850 20 2a 20 2d 20 2d 20 43 41 53 54 20 28 20 4e 55   * - - CAST ( NU
1b860 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 49 53 20  LL AS REAL ) IS 
1b870 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  NULL..----..9 va
1b880 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
1b890 37 35 63 39 39 38 61 61 35 33 61 63 38 33 32 31  75c998aa53ac8321
1b8a0 38 63 62 66 32 66 65 62 39 36 32 64 30 61 34 39  8cbf2feb962d0a49
1b8b0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
1b8c0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
1b8d0 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
1b8e0 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
1b8f0 20 28 20 4e 55 4c 4c 20 29 20 3e 3d 20 2b 20 2d   ( NULL ) >= + -
1b900 20 35 31 20 2b 20 2d 20 28 20 63 6f 6c 32 20 29   51 + - ( col2 )
1b910 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
1b920 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1b930 43 54 20 41 4c 4c 20 2d 20 31 39 20 41 53 20 63  CT ALL - 19 AS c
1b940 6f 6c 32 2c 20 2b 20 63 6f 6c 30 20 46 52 4f 4d  ol2, + col0 FROM
1b950 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
1b960 2d 2d 2d 0d 0a 2d 31 39 0d 0a 31 35 0d 0a 2d 31  ---..-19..15..-1
1b970 39 0d 0a 38 37 0d 0a 2d 31 39 0d 0a 39 37 0d 0a  9..87..-19..97..
1b980 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1b990 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
1b9a0 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
1b9b0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1b9c0 65 6c 2d 36 33 34 0d 0a 53 45 4c 45 43 54 20 44  el-634..SELECT D
1b9d0 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 2a 20 2d  ISTINCT col0 * -
1b9e0 20 2b 20 43 41 53 54 28 20 2b 20 63 6f 6c 32 20   + CAST( + col2 
1b9f0 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63  AS SIGNED ) AS c
1ba00 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
1ba10 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30   cor0..----..-10
1ba20 35 38 0d 0a 2d 32 35 36 30 0d 0a 2d 34 33 35 30  58..-2560..-4350
1ba30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1ba40 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1ba50 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
1ba60 72 74 20 6c 61 62 65 6c 2d 36 33 34 0d 0a 53 45  rt label-634..SE
1ba70 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
1ba80 6c 30 20 2a 20 2d 20 2b 20 43 41 53 54 20 28 20  l0 * - + CAST ( 
1ba90 2b 20 63 6f 6c 32 20 41 53 20 49 4e 54 45 47 45  + col2 AS INTEGE
1baa0 52 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  R ) AS col1 FROM
1bab0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
1bac0 2d 2d 2d 0d 0a 2d 31 30 35 38 0d 0a 2d 32 35 36  ---..-1058..-256
1bad0 30 0d 0a 2d 34 33 35 30 0d 0a 0d 0a 6f 6e 6c 79  0..-4350....only
1bae0 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
1baf0 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
1bb00 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  ion: ..query II 
1bb10 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 33  rowsort label-63
1bb20 35 0d 0a 53 45 4c 45 43 54 20 28 20 2b 20 63 6f  5..SELECT ( + co
1bb30 6c 32 20 29 2c 20 2d 20 63 6f 6c 32 20 44 49 56  l2 ), - col2 DIV
1bb40 20 2b 20 34 38 20 46 52 4f 4d 20 74 61 62 31 0d   + 48 FROM tab1.
1bb50 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 2d 31 0d 0a 36  .----..59..-1..6
1bb60 38 0d 0a 2d 31 0d 0a 39 36 0d 0a 2d 32 0d 0a 0d  8..-1..96..-2...
1bb70 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1bb80 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1bb90 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
1bba0 20 6c 61 62 65 6c 2d 36 33 35 0d 0a 53 45 4c 45   label-635..SELE
1bbb0 43 54 20 28 20 2b 20 63 6f 6c 32 20 29 2c 20 2d  CT ( + col2 ), -
1bbc0 20 63 6f 6c 32 20 2f 20 2b 20 34 38 20 46 52 4f   col2 / + 48 FRO
1bbd0 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 39  M tab1..----..59
1bbe0 0d 0a 2d 31 0d 0a 36 38 0d 0a 2d 31 0d 0a 39 36  ..-1..68..-1..96
1bbf0 0d 0a 2d 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..-2....query I 
1bc00 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1bc10 41 4c 4c 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c  ALL col0 * - col
1bc20 32 20 2a 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  2 * col0 FROM ta
1bc30 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 34 39 36 39  b1..----..-24969
1bc40 36 0d 0a 2d 34 32 36 32 37 35 0d 0a 2d 35 36 33  6..-426275..-563
1bc50 31 30 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  108....onlyif my
1bc60 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
1bc70 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
1bc80 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
1bc90 72 74 20 6c 61 62 65 6c 2d 36 33 37 0d 0a 53 45  rt label-637..SE
1bca0 4c 45 43 54 20 41 4c 4c 20 2d 20 33 35 20 2a 20  LECT ALL - 35 * 
1bcb0 2d 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  - + CAST( NULL A
1bcc0 53 20 53 49 47 4e 45 44 20 29 20 63 6f 6c 31 2c  S SIGNED ) col1,
1bcd0 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 31 20 46 52   - col0 * + 1 FR
1bce0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab1..----..N
1bcf0 55 4c 4c 0d 0a 2d 35 31 0d 0a 4e 55 4c 4c 0d 0a  ULL..-51..NULL..
1bd00 2d 38 35 0d 0a 4e 55 4c 4c 0d 0a 2d 39 31 0d 0a  -85..NULL..-91..
1bd10 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1bd20 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
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 20 6c 61 62 65 6c  II rowsort label
1bd90 2d 36 33 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -637..SELECT ALL
1bda0 20 2d 20 33 35 20 2a 20 2d 20 2b 20 43 41 53 54   - 35 * - + CAST
1bdb0 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
1bdc0 45 52 20 29 20 63 6f 6c 31 2c 20 2d 20 63 6f 6c  ER ) col1, - col
1bdd0 30 20 2a 20 2b 20 31 20 46 52 4f 4d 20 74 61 62  0 * + 1 FROM tab
1bde0 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 2d  1..----..NULL..-
1bdf0 35 31 0d 0a 4e 55 4c 4c 0d 0a 2d 38 35 0d 0a 4e  51..NULL..-85..N
1be00 55 4c 4c 0d 0a 2d 39 31 0d 0a 0d 0a 6f 6e 6c 79  ULL..-91....only
1be10 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
1be20 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
1be30 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
1be40 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 33 38  owsort label-638
1be50 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1be60 54 20 2d 20 33 30 20 44 49 56 20 2b 20 63 6f 6c  T - 30 DIV + col
1be70 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  0 AS col2 FROM t
1be80 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 30  ab0..----..-2..0
1be90 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1bea0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1beb0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
1bec0 72 74 20 6c 61 62 65 6c 2d 36 33 38 0d 0a 53 45  rt label-638..SE
1bed0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
1bee0 33 30 20 2f 20 2b 20 63 6f 6c 30 20 41 53 20 63  30 / + col0 AS c
1bef0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
1bf00 2d 2d 2d 0d 0a 2d 32 0d 0a 30 0d 0a 0d 0a 71 75  ---..-2..0....qu
1bf10 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1bf20 45 4c 45 43 54 20 35 33 20 2a 20 63 6f 6c 32 20  ELECT 53 * col2 
1bf30 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
1bf40 32 0d 0a 2d 2d 2d 2d 0d 0a 31 32 31 39 0d 0a 32  2..----..1219..2
1bf50 31 32 30 0d 0a 33 30 37 34 0d 0a 0d 0a 71 75 65  120..3074....que
1bf60 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1bf70 4c 45 43 54 20 63 6f 6c 30 20 2a 20 63 6f 6c 32  LECT col0 * col2
1bf80 20 2a 20 2d 20 2b 20 63 6f 6c 32 20 46 52 4f 4d   * - + col2 FROM
1bf90 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 39   tab1..----..-29
1bfa0 35 38 38 35 0d 0a 2d 34 32 30 37 38 34 0d 0a 2d  5885..-420784..-
1bfb0 34 37 30 30 31 36 0d 0a 0d 0a 6f 6e 6c 79 69 66  470016....onlyif
1bfc0 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
1bfd0 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
1bfe0 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
1bff0 73 6f 72 74 20 6c 61 62 65 6c 2d 36 34 31 0d 0a  sort label-641..
1c000 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1c010 38 39 20 44 49 56 20 2b 20 63 6f 6c 30 20 46 52  89 DIV + col0 FR
1c020 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30  OM tab0..----..0
1c030 0d 0a 31 0d 0a 35 0d 0a 0d 0a 73 6b 69 70 69 66  ..1..5....skipif
1c040 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1c050 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1c060 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1c070 34 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  41..SELECT DISTI
1c080 4e 43 54 20 38 39 20 2f 20 2b 20 63 6f 6c 30 20  NCT 89 / + col0 
1c090 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
1c0a0 0a 30 0d 0a 31 0d 0a 35 0d 0a 0d 0a 71 75 65 72  .0..1..5....quer
1c0b0 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
1c0c0 4c 45 43 54 20 28 20 2b 20 2d 20 38 30 20 29 20  LECT ( + - 80 ) 
1c0d0 2a 20 2b 20 63 6f 6c 32 2c 20 63 6f 6c 30 20 41  * + col2, col0 A
1c0e0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
1c0f0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38 34 30 0d 0a 34  ..----..-1840..4
1c100 36 0d 0a 2d 33 32 30 30 0d 0a 36 34 0d 0a 2d 34  6..-3200..64..-4
1c110 36 34 30 0d 0a 37 35 0d 0a 0d 0a 71 75 65 72 79  640..75....query
1c120 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1c130 43 54 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74  CT - col0 FROM t
1c140 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  ab1 WHERE NOT + 
1c150 33 34 20 2b 20 2b 20 63 6f 6c 30 20 2b 20 2d 20  34 + + col0 + - 
1c160 38 34 20 2d 20 2d 20 2b 20 36 34 20 2d 20 2d 20  84 - - + 64 - - 
1c170 35 31 20 2f 20 2b 20 2b 20 38 20 49 53 20 4e 55  51 / + + 8 IS NU
1c180 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 2d  LL..----..-51..-
1c190 38 35 0d 0a 2d 39 31 0d 0a 0d 0a 6f 6e 6c 79 69  85..-91....onlyi
1c1a0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
1c1b0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
1c1c0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1c1d0 62 65 6c 2d 36 34 34 0d 0a 53 45 4c 45 43 54 20  bel-644..SELECT 
1c1e0 41 4c 4c 20 2b 20 2d 20 53 55 4d 28 20 2b 20 63  ALL + - SUM( + c
1c1f0 6f 6c 32 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ol2 ) AS col0 FR
1c200 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d  OM tab2 cor0..--
1c210 2d 2d 0d 0a 2d 31 32 31 0d 0a 0d 0a 73 6b 69 70  --..-121....skip
1c220 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1c230 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1c240 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1c250 2d 36 34 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -644..SELECT ALL
1c260 20 2b 20 2d 20 53 55 4d 20 28 20 2b 20 63 6f 6c   + - SUM ( + col
1c270 32 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  2 ) AS col0 FROM
1c280 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
1c290 0d 0a 2d 31 32 31 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..-121....onlyif
1c2a0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
1c2b0 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
1c2c0 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  e: ..query II ro
1c2d0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 34 35 0d  wsort label-645.
1c2e0 0a 53 45 4c 45 43 54 20 35 34 2c 20 43 41 53 54  .SELECT 54, CAST
1c2f0 28 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  ( + CAST( NULL A
1c300 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 53 49  S SIGNED ) AS SI
1c310 47 4e 45 44 20 29 20 2b 20 43 41 53 54 28 20 4e  GNED ) + CAST( N
1c320 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
1c330 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
1c340 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
1c350 4e 4f 54 20 28 20 63 6f 6c 30 20 29 20 49 53 20  NOT ( col0 ) IS 
1c360 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 34 0d 0a  NULL..----..54..
1c370 4e 55 4c 4c 0d 0a 35 34 0d 0a 4e 55 4c 4c 0d 0a  NULL..54..NULL..
1c380 35 34 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  54..NULL....skip
1c390 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1c3a0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1c3b0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
1c3c0 6c 2d 36 34 35 0d 0a 53 45 4c 45 43 54 20 35 34  l-645..SELECT 54
1c3d0 2c 20 43 41 53 54 20 28 20 2b 20 43 41 53 54 20  , CAST ( + CAST 
1c3e0 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
1c3f0 52 20 29 20 41 53 20 49 4e 54 45 47 45 52 20 29  R ) AS INTEGER )
1c400 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   + CAST ( NULL A
1c410 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 63  S INTEGER ) AS c
1c420 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
1c430 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
1c440 28 20 63 6f 6c 30 20 29 20 49 53 20 4e 55 4c 4c  ( col0 ) IS NULL
1c450 0d 0a 2d 2d 2d 2d 0d 0a 35 34 0d 0a 4e 55 4c 4c  ..----..54..NULL
1c460 0d 0a 35 34 0d 0a 4e 55 4c 4c 0d 0a 35 34 0d 0a  ..54..NULL..54..
1c470 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  NULL....onlyif m
1c480 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
1c490 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
1c4a0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1c4b0 2d 36 34 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -646..SELECT ALL
1c4c0 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20   - COUNT( * ) + 
1c4d0 2b 20 2b 20 53 55 4d 28 20 2b 20 2d 20 63 6f 6c  + + SUM( + - col
1c4e0 32 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  2 ) AS col2 FROM
1c4f0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
1c500 2d 2d 2d 0d 0a 2d 32 32 36 0d 0a 0d 0a 73 6b 69  ---..-226....ski
1c510 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1c520 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1c530 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1c540 6c 2d 36 34 36 0d 0a 53 45 4c 45 43 54 20 41 4c  l-646..SELECT AL
1c550 4c 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  L - COUNT ( * ) 
1c560 2b 20 2b 20 2b 20 53 55 4d 20 28 20 2b 20 2d 20  + + + SUM ( + - 
1c570 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 32 20 46  col2 ) AS col2 F
1c580 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1c590 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32 36 0d 0a 0d 0a  ..----..-226....
1c5a0 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
1c5b0 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
1c5c0 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
1c5d0 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
1c5e0 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
1c5f0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1c600 20 44 49 53 54 49 4e 43 54 20 36 34 20 63 6f 6c   DISTINCT 64 col
1c610 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
1c620 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 34 0d 0a 0d  or0..----..64...
1c630 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
1c640 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
1c650 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  NCT * FROM tab0 
1c660 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
1c670 54 20 2b 20 32 20 2a 20 2d 20 63 6f 6c 31 20 49  T + 2 * - col1 I
1c680 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
1c690 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
1c6a0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
1c6b0 63 6f 6c 32 20 2a 20 2d 20 2b 20 63 6f 6c 32 20  col2 * - + col2 
1c6c0 2a 20 2b 20 2d 20 36 37 20 2b 20 2d 20 2b 20 63  * + - 67 + - + c
1c6d0 6f 6c 30 20 2b 20 63 6f 6c 31 20 2b 20 63 6f 6c  ol0 + col1 + col
1c6e0 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  0 AS col0 FROM t
1c6f0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
1c700 2d 0d 0a 32 33 33 32 33 32 0d 0a 33 30 39 38 35  -..233232..30985
1c710 35 0d 0a 36 31 37 34 38 36 0d 0a 0d 0a 71 75 65  5..617486....que
1c720 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
1c730 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 63 6f  ELECT ALL - + co
1c740 6c 32 20 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 31  l2 AS col2, col1
1c750 20 2b 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 63 6f   + - col1 + - co
1c760 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l2 AS col0 FROM 
1c770 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
1c780 2d 2d 0d 0a 2d 31 30 0d 0a 2d 31 30 0d 0a 2d 34  --..-10..-10..-4
1c790 37 0d 0a 2d 34 37 0d 0a 2d 39 39 0d 0a 2d 39 39  7..-47..-99..-99
1c7a0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
1c7b0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30  ort..SELECT col0
1c7c0 20 2b 20 2d 20 2b 20 35 20 41 53 20 63 6f 6c 32   + - + 5 AS col2
1c7d0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
1c7e0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 38 30  r0..----..46..80
1c7f0 0d 0a 38 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..86....query II
1c800 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1c810 20 41 4c 4c 20 63 6f 6c 31 20 2d 20 2b 20 36 31   ALL col1 - + 61
1c820 20 41 53 20 63 6f 6c 30 2c 20 33 31 20 2b 20 2d   AS col0, 31 + -
1c830 20 35 33 20 46 52 4f 4d 20 74 61 62 30 20 63 6f   53 FROM tab0 co
1c840 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  r0 WHERE NOT NUL
1c850 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  L IS NULL..----.
1c860 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1c870 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
1c880 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
1c890 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35 33 0d  wsort label-653.
1c8a0 0a 53 45 4c 45 43 54 20 2d 20 2b 20 35 34 20 2a  .SELECT - + 54 *
1c8b0 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2b 20   COUNT( * ) + + 
1c8c0 37 37 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  77 AS col1 FROM 
1c8d0 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab2 cor0..----.
1c8e0 0a 2d 38 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-85....skipif m
1c8f0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1c900 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1c910 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35 33  owsort label-653
1c920 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 35 34 20  ..SELECT - + 54 
1c930 2a 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20  * COUNT ( * ) + 
1c940 2b 20 37 37 20 41 53 20 63 6f 6c 31 20 46 52 4f  + 77 AS col1 FRO
1c950 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab2 cor0..---
1c960 2d 0d 0a 2d 38 35 0d 0a 0d 0a 71 75 65 72 79 20  -..-85....query 
1c970 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1c980 54 20 2d 20 38 35 20 2b 20 2b 20 63 6f 6c 31 20  T - 85 + + col1 
1c990 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
1c9a0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
1c9b0 0a 2d 31 38 0d 0a 2d 33 34 0d 0a 2d 38 0d 0a 0d  .-18..-34..-8...
1c9c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1c9d0 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20  ..SELECT + col1 
1c9e0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
1c9f0 30 20 57 48 45 52 45 20 28 20 4e 4f 54 20 4e 55  0 WHERE ( NOT NU
1ca00 4c 4c 20 49 53 20 4e 55 4c 4c 20 29 0d 0a 2d 2d  LL IS NULL )..--
1ca10 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
1ca20 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
1ca30 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
1ca40 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1ca50 20 6c 61 62 65 6c 2d 36 35 36 0d 0a 53 45 4c 45   label-656..SELE
1ca60 43 54 20 2b 20 2b 20 33 32 20 44 49 56 20 2b 20  CT + + 32 DIV + 
1ca70 35 39 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  59 AS col0 FROM 
1ca80 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
1ca90 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73  --..0..0..0....s
1caa0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1cab0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1cac0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1cad0 62 65 6c 2d 36 35 36 0d 0a 53 45 4c 45 43 54 20  bel-656..SELECT 
1cae0 2b 20 2b 20 33 32 20 2f 20 2b 20 35 39 20 41 53  + + 32 / + 59 AS
1caf0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
1cb00 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30  AS cor0..----..0
1cb10 0d 0a 30 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..0..0....onlyif
1cb20 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
1cb30 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
1cb40 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
1cb50 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35 37 0d 0a  sort label-657..
1cb60 53 45 4c 45 43 54 20 63 6f 6c 31 20 44 49 56 20  SELECT col1 DIV 
1cb70 2d 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 2b 20 35  - + col2 * + + 5
1cb80 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  2 AS col2 FROM t
1cb90 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d  ab1..----..0..0.
1cba0 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
1cbb0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1cbc0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1cbd0 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35 37 0d 0a  sort label-657..
1cbe0 53 45 4c 45 43 54 20 63 6f 6c 31 20 2f 20 2d 20  SELECT col1 / - 
1cbf0 2b 20 63 6f 6c 32 20 2a 20 2b 20 2b 20 35 32 20  + col2 * + + 52 
1cc00 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
1cc10 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30  1..----..0..0..0
1cc20 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
1cc30 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
1cc40 49 4e 43 54 20 2b 20 31 39 20 2a 20 2b 20 63 6f  INCT + 19 * + co
1cc50 6c 32 20 2b 20 2d 20 63 6f 6c 31 20 2b 20 28 20  l2 + - col1 + ( 
1cc60 2d 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 32  - col0 ) AS col2
1cc70 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
1cc80 0d 0a 33 34 30 0d 0a 36 31 39 0d 0a 39 36 30 0d  ..340..619..960.
1cc90 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1cca0 72 74 0d 0a 53 45 4c 45 43 54 20 28 20 2b 20 2d  rt..SELECT ( + -
1ccb0 20 36 39 20 29 20 2a 20 2d 20 2d 20 63 6f 6c 30   69 ) * - - col0
1ccc0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
1ccd0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 33 35 0d  b0..----..-1035.
1cce0 0a 2d 36 30 30 33 0d 0a 2d 36 36 39 33 0d 0a 0d  .-6003..-6693...
1ccf0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
1cd00 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
1cd10 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 55 4c  M tab1 WHERE NUL
1cd20 4c 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41  L BETWEEN NULL A
1cd30 4e 44 20 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d  ND - col2..----.
1cd40 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
1cd50 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
1cd60 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
1cd70 31 20 57 48 45 52 45 20 28 20 2b 20 32 33 20 29  1 WHERE ( + 23 )
1cd80 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
1cd90 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
1cda0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
1cdb0 4e 43 54 20 2b 20 37 35 20 2a 20 2d 20 28 20 2d  NCT + 75 * - ( -
1cdc0 20 2d 20 63 6f 6c 30 20 29 20 2a 20 63 6f 6c 30   - col0 ) * col0
1cdd0 20 41 53 20 63 6f 6c 30 2c 20 2b 20 63 6f 6c 30   AS col0, + col0
1cde0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
1cdf0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 38 37 30  b2..----..-15870
1ce00 30 0d 0a 34 36 0d 0a 2d 33 30 37 32 30 30 0d 0a  0..46..-307200..
1ce10 36 34 0d 0a 2d 34 32 31 38 37 35 0d 0a 37 35 0d  64..-421875..75.
1ce20 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1ce30 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 2d  rt..SELECT + ( -
1ce40 20 63 6f 6c 30 20 29 20 2a 20 2b 20 63 6f 6c 32   col0 ) * + col2
1ce50 20 2d 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c   - - col1 AS col
1ce60 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
1ce70 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 32 34 0d  or0..----..-624.
1ce80 0a 2d 38 34 39 0d 0a 2d 39 36 30 32 0d 0a 0d 0a  .-849..-9602....
1ce90 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
1cea0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
1ceb0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1cec0 72 74 20 6c 61 62 65 6c 2d 36 36 34 0d 0a 53 45  rt label-664..SE
1ced0 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54  LECT ALL - COUNT
1cee0 28 20 2a 20 29 20 2b 20 2b 20 2d 20 32 30 20 2a  ( * ) + + - 20 *
1cef0 20 2d 20 2b 20 53 55 4d 28 20 2d 20 63 6f 6c 32   - + SUM( - col2
1cf00 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
1cf10 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
1cf20 0a 2d 33 31 32 33 0d 0a 0d 0a 73 6b 69 70 69 66  .-3123....skipif
1cf30 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1cf40 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1cf50 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1cf60 36 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  64..SELECT ALL -
1cf70 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2b   COUNT ( * ) + +
1cf80 20 2d 20 32 30 20 2a 20 2d 20 2b 20 53 55 4d 20   - 20 * - + SUM 
1cf90 28 20 2d 20 63 6f 6c 32 20 29 20 41 53 20 63 6f  ( - col2 ) AS co
1cfa0 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l0 FROM tab0 cor
1cfb0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 31 32 33 0d 0a  0..----..-3123..
1cfc0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1cfd0 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
1cfe0 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
1cff0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1d000 65 6c 2d 36 36 35 0d 0a 53 45 4c 45 43 54 20 63  el-665..SELECT c
1d010 6f 6c 32 20 2a 20 34 37 20 2d 20 2d 20 43 41 53  ol2 * 47 - - CAS
1d020 54 28 20 2d 20 63 6f 6c 30 20 41 53 20 53 49 47  T( - col0 AS SIG
1d030 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62 31 20  NED ) FROM tab1 
1d040 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  AS cor0..----..2
1d050 36 38 38 0d 0a 33 31 30 35 0d 0a 34 34 36 31 0d  688..3105..4461.
1d060 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1d070 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1d080 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1d090 74 20 6c 61 62 65 6c 2d 36 36 35 0d 0a 53 45 4c  t label-665..SEL
1d0a0 45 43 54 20 63 6f 6c 32 20 2a 20 34 37 20 2d 20  ECT col2 * 47 - 
1d0b0 2d 20 43 41 53 54 20 28 20 2d 20 63 6f 6c 30 20  - CAST ( - col0 
1d0c0 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f  AS INTEGER ) FRO
1d0d0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
1d0e0 2d 2d 2d 2d 0d 0a 32 36 38 38 0d 0a 33 31 30 35  ----..2688..3105
1d0f0 0d 0a 34 34 36 31 0d 0a 0d 0a 71 75 65 72 79 20  ..4461....query 
1d100 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1d110 43 54 20 41 4c 4c 20 2d 20 32 20 2b 20 33 2c 20  CT ALL - 2 + 3, 
1d120 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f  col2 AS col1 FRO
1d130 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
1d140 2d 2d 2d 2d 0d 0a 31 0d 0a 32 33 0d 0a 31 0d 0a  ----..1..23..1..
1d150 34 30 0d 0a 31 0d 0a 35 38 0d 0a 0d 0a 71 75 65  40..1..58....que
1d160 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
1d170 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
1d180 62 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e 4f  b1 WHERE NULL NO
1d190 54 20 49 4e 20 28 20 2b 20 31 38 20 2d 20 36 20  T IN ( + 18 - 6 
1d1a0 2b 20 2d 20 2b 20 31 37 2c 20 63 6f 6c 30 20 2b  + - + 17, col0 +
1d1b0 20 34 31 2c 20 2d 20 63 6f 6c 30 20 2b 20 2d 20   41, - col0 + - 
1d1c0 2d 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a  - col1 )..----..
1d1d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1d1e0 74 0d 0a 53 45 4c 45 43 54 20 2d 20 32 33 20 46  t..SELECT - 23 F
1d1f0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1d200 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31   CROSS JOIN tab1
1d210 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
1d220 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
1d230 20 74 6f 20 63 65 36 30 62 66 34 62 30 36 34 37   to ce60bf4b0647
1d240 64 30 66 63 62 31 38 61 30 35 36 32 65 33 35 31  d0fcb18a0562e351
1d250 63 35 32 64 0d 0a 0d 0a 71 75 65 72 79 20 49 20  c52d....query I 
1d260 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1d270 41 4c 4c 20 2d 20 32 20 41 53 20 63 6f 6c 31 20  ALL - 2 AS col1 
1d280 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
1d290 0a 2d 32 0d 0a 2d 32 0d 0a 2d 32 0d 0a 0d 0a 6f  .-2..-2..-2....o
1d2a0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
1d2b0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
1d2c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1d2d0 74 20 6c 61 62 65 6c 2d 36 37 30 0d 0a 53 45 4c  t label-670..SEL
1d2e0 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55  ECT DISTINCT COU
1d2f0 4e 54 28 20 2a 20 29 20 2a 20 4d 41 58 28 20 44  NT( * ) * MAX( D
1d300 49 53 54 49 4e 43 54 20 2b 20 38 30 20 29 20 46  ISTINCT + 80 ) F
1d310 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
1d320 32 34 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  240....skipif my
1d330 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1d340 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1d350 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 37 30 0d  wsort label-670.
1d360 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1d370 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 4d   COUNT ( * ) * M
1d380 41 58 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20  AX ( DISTINCT + 
1d390 38 30 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a  80 ) FROM tab0..
1d3a0 2d 2d 2d 2d 0d 0a 32 34 30 0d 0a 0d 0a 6f 6e 6c  ----..240....onl
1d3b0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
1d3c0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
1d3d0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1d3e0 6c 61 62 65 6c 2d 36 37 31 0d 0a 53 45 4c 45 43  label-671..SELEC
1d3f0 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  T + COUNT( * ) F
1d400 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
1d410 20 57 48 45 52 45 20 28 20 63 6f 6c 30 20 2a 20   WHERE ( col0 * 
1d420 63 6f 6c 30 20 2f 20 2b 20 2b 20 63 6f 6c 32 20  col0 / + + col2 
1d430 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  ) IS NULL..----.
1d440 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
1d450 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1d460 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1d470 73 6f 72 74 20 6c 61 62 65 6c 2d 36 37 31 0d 0a  sort label-671..
1d480 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20 28  SELECT + COUNT (
1d490 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41   * ) FROM tab2 A
1d4a0 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 63  S cor0 WHERE ( c
1d4b0 6f 6c 30 20 2a 20 63 6f 6c 30 20 2f 20 2b 20 2b  ol0 * col0 / + +
1d4c0 20 63 6f 6c 32 20 29 20 49 53 20 4e 55 4c 4c 0d   col2 ) IS NULL.
1d4d0 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .----..0....skip
1d4e0 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
1d4f0 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
1d500 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
1d510 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
1d520 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
1d530 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b  sort..SELECT + +
1d540 20 28 20 2d 20 2d 20 63 6f 6c 31 20 29 20 63 6f   ( - - col1 ) co
1d550 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l0 FROM tab2 AS 
1d560 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a  cor0..----..51..
1d570 36 37 0d 0a 37 37 0d 0a 0d 0a 71 75 65 72 79 20  67..77....query 
1d580 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
1d590 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
1d5a0 61 62 30 20 63 6f 72 30 20 57 48 45 52 45 20 34  ab0 cor0 WHERE 4
1d5b0 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  1 IS NULL..----.
1d5c0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1d5d0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
1d5e0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
1d5f0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 37 34 0d  wsort label-674.
1d600 0a 53 45 4c 45 43 54 20 2d 20 30 20 2a 20 2d 20  .SELECT - 0 * - 
1d610 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f  - COUNT( * ) FRO
1d620 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab1 cor0..---
1d630 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..0....skipif m
1d640 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1d650 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1d660 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 37 34  owsort label-674
1d670 0d 0a 53 45 4c 45 43 54 20 2d 20 30 20 2a 20 2d  ..SELECT - 0 * -
1d680 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46   - COUNT ( * ) F
1d690 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d  ROM tab1 cor0..-
1d6a0 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ---..0....onlyif
1d6b0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
1d6c0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
1d6d0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1d6e0 65 6c 2d 36 37 35 0d 0a 53 45 4c 45 43 54 20 41  el-675..SELECT A
1d6f0 4c 4c 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2b 20  LL - - COUNT( + 
1d700 2d 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 31  - col2 ) AS col1
1d710 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
1d720 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73  r0..----..3....s
1d730 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1d740 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1d750 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1d760 62 65 6c 2d 36 37 35 0d 0a 53 45 4c 45 43 54 20  bel-675..SELECT 
1d770 41 4c 4c 20 2d 20 2d 20 43 4f 55 4e 54 20 28 20  ALL - - COUNT ( 
1d780 2b 20 2d 20 63 6f 6c 32 20 29 20 41 53 20 63 6f  + - col2 ) AS co
1d790 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
1d7a0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d  cor0..----..3...
1d7b0 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
1d7c0 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
1d7d0 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
1d7e0 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
1d7f0 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
1d800 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1d810 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 2a 20 36  T ALL - col0 * 6
1d820 36 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  6 col1 FROM tab2
1d830 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1d840 2d 33 30 33 36 0d 0a 2d 34 32 32 34 0d 0a 2d 34  -3036..-4224..-4
1d850 39 35 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  950....onlyif my
1d860 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
1d870 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
1d880 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1d890 36 37 37 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20  677..SELECT - + 
1d8a0 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2d 20 43  COUNT( * ) * - C
1d8b0 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74  OUNT( * ) FROM t
1d8c0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
1d8d0 2d 0d 0a 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..9....skipif m
1d8e0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1d8f0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1d900 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 37 37  owsort label-677
1d910 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 43 4f 55  ..SELECT - + COU
1d920 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20 43 4f 55  NT ( * ) * - COU
1d930 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  NT ( * ) FROM ta
1d940 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
1d950 0d 0a 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..9....onlyif my
1d960 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
1d970 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
1d980 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1d990 36 37 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  678..SELECT DIST
1d9a0 49 4e 43 54 20 2d 20 53 55 4d 28 20 44 49 53 54  INCT - SUM( DIST
1d9b0 49 4e 43 54 20 38 31 20 29 20 46 52 4f 4d 20 74  INCT 81 ) FROM t
1d9c0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
1d9d0 2d 0d 0a 2d 38 31 0d 0a 0d 0a 73 6b 69 70 69 66  -..-81....skipif
1d9e0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1d9f0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1da00 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1da10 37 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  78..SELECT DISTI
1da20 4e 43 54 20 2d 20 53 55 4d 20 28 20 44 49 53 54  NCT - SUM ( DIST
1da30 49 4e 43 54 20 38 31 20 29 20 46 52 4f 4d 20 74  INCT 81 ) FROM t
1da40 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
1da50 2d 0d 0a 2d 38 31 0d 0a 0d 0a 6f 6e 6c 79 69 66  -..-81....onlyif
1da60 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
1da70 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20  ntax: aggregate 
1da80 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
1da90 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
1daa0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 37 39  owsort label-679
1dab0 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54  ..SELECT + COUNT
1dac0 28 20 2a 20 29 20 2f 20 2b 20 2d 20 36 20 2b 20  ( * ) / + - 6 + 
1dad0 2b 20 41 56 47 20 28 20 41 4c 4c 20 43 41 53 54  + AVG ( ALL CAST
1dae0 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
1daf0 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41   ) ) FROM tab0 A
1db00 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
1db10 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
1db20 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1db30 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1db40 73 6f 72 74 20 6c 61 62 65 6c 2d 36 37 39 0d 0a  sort label-679..
1db50 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20 28  SELECT + COUNT (
1db60 20 2a 20 29 20 2f 20 2b 20 2d 20 36 20 2b 20 2b   * ) / + - 6 + +
1db70 20 41 56 47 20 28 20 41 4c 4c 20 43 41 53 54 20   AVG ( ALL CAST 
1db80 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
1db90 52 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30 20  R ) ) FROM tab0 
1dba0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
1dbb0 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ULL....query I r
1dbc0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
1dbd0 4c 4c 20 63 6f 6c 32 20 2a 20 32 36 20 46 52 4f  LL col2 * 26 FRO
1dbe0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
1dbf0 2d 2d 2d 2d 0d 0a 31 35 33 34 0d 0a 31 37 36 38  ----..1534..1768
1dc00 0d 0a 32 34 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..2496....onlyif
1dc10 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
1dc20 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
1dc30 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
1dc40 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38 31 0d 0a  sort label-681..
1dc50 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1dc60 28 20 2b 20 2b 20 43 41 53 54 28 20 63 6f 6c 32  ( + + CAST( col2
1dc70 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20 2a   AS SIGNED ) ) *
1dc80 20 2d 20 2d 20 43 41 53 54 28 20 63 6f 6c 32 20   - - CAST( col2 
1dc90 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63  AS SIGNED ) AS c
1dca0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol0 FROM tab2..-
1dcb0 2d 2d 2d 0d 0a 31 36 30 30 0d 0a 33 33 36 34 0d  ---..1600..3364.
1dcc0 0a 35 32 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .529....skipif m
1dcd0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1dce0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1dcf0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38 31  owsort label-681
1dd00 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1dd10 54 20 28 20 2b 20 2b 20 43 41 53 54 20 28 20 63  T ( + + CAST ( c
1dd20 6f 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20 29  ol2 AS INTEGER )
1dd30 20 29 20 2a 20 2d 20 2d 20 43 41 53 54 20 28 20   ) * - - CAST ( 
1dd40 63 6f 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20  col2 AS INTEGER 
1dd50 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
1dd60 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 36 30 30 0d  ab2..----..1600.
1dd70 0a 33 33 36 34 0d 0a 35 32 39 0d 0a 0d 0a 71 75  .3364..529....qu
1dd80 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1dd90 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 2a  ELECT ALL col0 *
1dda0 20 38 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   8 AS col2 FROM 
1ddb0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 30 0d  tab0..----..120.
1ddc0 0a 36 39 36 0d 0a 37 37 36 0d 0a 0d 0a 71 75 65  .696..776....que
1ddd0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
1dde0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1ddf0 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
1de00 45 20 28 20 28 20 63 6f 6c 31 20 29 20 29 20 49  E ( ( col1 ) ) I
1de10 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  S NULL..----....
1de20 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
1de30 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
1de40 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
1de50 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
1de60 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
1de70 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1de80 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 2a   DISTINCT col0 *
1de90 20 39 39 20 2a 20 2d 20 63 6f 6c 30 20 63 6f 6c   99 * - col0 col
1dea0 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
1deb0 2d 0d 0a 2d 32 30 39 34 38 34 0d 0a 2d 34 30 35  -..-209484..-405
1dec0 35 30 34 0d 0a 2d 35 35 36 38 37 35 0d 0a 0d 0a  504..-556875....
1ded0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
1dee0 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
1def0 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
1df00 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1df10 2d 36 38 35 0d 0a 53 45 4c 45 43 54 20 44 49 53  -685..SELECT DIS
1df20 54 49 4e 43 54 20 63 6f 6c 30 20 44 49 56 20 2d  TINCT col0 DIV -
1df30 20 35 37 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   57 AS col1 FROM
1df40 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d   tab1..----..-1.
1df50 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
1df60 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1df70 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1df80 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38 35 0d 0a  sort label-685..
1df90 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1dfa0 63 6f 6c 30 20 2f 20 2d 20 35 37 20 41 53 20 63  col0 / - 57 AS c
1dfb0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
1dfc0 2d 2d 2d 0d 0a 2d 31 0d 0a 30 0d 0a 0d 0a 6f 6e  ---..-1..0....on
1dfd0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
1dfe0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
1dff0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
1e000 74 20 6c 61 62 65 6c 2d 36 38 36 0d 0a 53 45 4c  t label-686..SEL
1e010 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55  ECT DISTINCT COU
1e020 4e 54 28 20 2a 20 29 20 63 6f 6c 30 2c 20 38 39  NT( * ) col0, 89
1e030 20 2a 20 2d 20 38 35 20 46 52 4f 4d 20 74 61 62   * - 85 FROM tab
1e040 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 2d 37 35 36  0..----..3..-756
1e050 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  5....skipif mysq
1e060 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1e070 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
1e080 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
1e090 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
1e0a0 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
1e0b0 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
1e0c0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
1e0d0 62 65 6c 2d 36 38 36 0d 0a 53 45 4c 45 43 54 20  bel-686..SELECT 
1e0e0 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 20 28  DISTINCT COUNT (
1e0f0 20 2a 20 29 20 63 6f 6c 30 2c 20 38 39 20 2a 20   * ) col0, 89 * 
1e100 2d 20 38 35 20 46 52 4f 4d 20 74 61 62 30 0d 0a  - 85 FROM tab0..
1e110 2d 2d 2d 2d 0d 0a 33 0d 0a 2d 37 35 36 35 0d 0a  ----..3..-7565..
1e120 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1e130 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
1e140 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
1e150 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1e160 65 6c 2d 36 38 37 0d 0a 53 45 4c 45 43 54 20 2b  el-687..SELECT +
1e170 20 63 6f 6c 32 20 2a 20 2d 20 43 41 53 54 28 20   col2 * - CAST( 
1e180 35 38 20 41 53 20 53 49 47 4e 45 44 20 29 20 41  58 AS SIGNED ) A
1e190 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
1e1a0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 33 34 0d 0a 2d  ..----..-1334..-
1e1b0 32 33 32 30 0d 0a 2d 33 33 36 34 0d 0a 0d 0a 73  2320..-3364....s
1e1c0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1e1d0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1e1e0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1e1f0 62 65 6c 2d 36 38 37 0d 0a 53 45 4c 45 43 54 20  bel-687..SELECT 
1e200 2b 20 63 6f 6c 32 20 2a 20 2d 20 43 41 53 54 20  + col2 * - CAST 
1e210 28 20 35 38 20 41 53 20 49 4e 54 45 47 45 52 20  ( 58 AS INTEGER 
1e220 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
1e230 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 33 34  ab2..----..-1334
1e240 0d 0a 2d 32 33 32 30 0d 0a 2d 33 33 36 34 0d 0a  ..-2320..-3364..
1e250 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
1e260 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20  rt..SELECT col2 
1e270 2a 20 2d 20 2d 20 33 20 41 53 20 63 6f 6c 30 2c  * - - 3 AS col0,
1e280 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   - col1 FROM tab
1e290 32 0d 0a 2d 2d 2d 2d 0d 0a 31 32 30 0d 0a 2d 37  2..----..120..-7
1e2a0 37 0d 0a 31 37 34 0d 0a 2d 36 37 0d 0a 36 39 0d  7..174..-67..69.
1e2b0 0a 2d 35 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .-51....query II
1e2c0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1e2d0 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
1e2e0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
1e2f0 48 45 52 45 20 63 6f 6c 32 20 3c 3e 20 63 6f 6c  HERE col2 <> col
1e300 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  0..----..9 value
1e310 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62  s hashing to c4b
1e320 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36  42765dff94eaaa46
1e330 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d  040e537fb43b7...
1e340 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
1e350 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
1e360 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
1e370 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
1e380 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
1e390 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1e3a0 43 54 20 2b 20 2b 20 63 6f 6c 32 20 63 6f 6c 32  CT + + col2 col2
1e3b0 2c 20 2b 20 28 20 2d 20 2d 20 63 6f 6c 32 20 29  , + ( - - col2 )
1e3c0 20 2b 20 2b 20 63 6f 6c 31 20 2d 20 28 20 2d 20   + + col1 - ( - 
1e3d0 63 6f 6c 31 20 29 20 2a 20 2d 20 2b 20 28 20 2b  col1 ) * - + ( +
1e3e0 20 63 6f 6c 32 20 29 20 2a 20 28 20 2d 20 38 20   col2 ) * ( - 8 
1e3f0 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
1e400 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
1e410 2d 0d 0a 35 39 0d 0a 32 34 32 34 0d 0a 36 38 0d  -..59..2424..68.
1e420 0a 32 35 36 38 33 0d 0a 39 36 0d 0a 31 30 38 36  .25683..96..1086
1e430 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  2....onlyif mysq
1e440 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
1e450 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e  ntax: DIV for in
1e460 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
1e470 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1e480 74 20 6c 61 62 65 6c 2d 36 39 31 0d 0a 53 45 4c  t label-691..SEL
1e490 45 43 54 20 41 4c 4c 20 2d 20 4d 41 58 28 20 28  ECT ALL - MAX( (
1e4a0 20 63 6f 6c 30 20 29 20 29 20 44 49 56 20 2d 20   col0 ) ) DIV - 
1e4b0 4d 41 58 28 20 2d 20 63 6f 6c 32 20 29 20 41 53  MAX( - col2 ) AS
1e4c0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
1e4d0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
1e4e0 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
1e4f0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1e500 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1e510 6f 72 74 20 6c 61 62 65 6c 2d 36 39 31 0d 0a 53  ort label-691..S
1e520 45 4c 45 43 54 20 41 4c 4c 20 2d 20 4d 41 58 20  ELECT ALL - MAX 
1e530 28 20 28 20 63 6f 6c 30 20 29 20 29 20 2f 20 2d  ( ( col0 ) ) / -
1e540 20 4d 41 58 20 28 20 2d 20 63 6f 6c 32 20 29 20   MAX ( - col2 ) 
1e550 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
1e560 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
1e570 0a 2d 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .-1....onlyif my
1e580 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
1e590 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
1e5a0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1e5b0 36 39 32 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20  692..SELECT + + 
1e5c0 4d 41 58 28 20 35 37 20 29 20 41 53 20 63 6f 6c  MAX( 57 ) AS col
1e5d0 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  1 FROM tab0 cor0
1e5e0 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32   CROSS JOIN tab2
1e5f0 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
1e600 35 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  57....skipif mys
1e610 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1e620 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1e630 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39 32 0d 0a  sort label-692..
1e640 53 45 4c 45 43 54 20 2b 20 2b 20 4d 41 58 20 28  SELECT + + MAX (
1e650 20 35 37 20 29 20 41 53 20 63 6f 6c 31 20 46 52   57 ) AS col1 FR
1e660 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 43 52 4f  OM tab0 cor0 CRO
1e670 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53 20  SS JOIN tab2 AS 
1e680 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 35 37 0d 0a  cor1..----..57..
1e690 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1e6a0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
1e6b0 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  x: ..query II ro
1e6c0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39 33 0d  wsort label-693.
1e6d0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d 49  .SELECT ALL + MI
1e6e0 4e 28 20 2d 20 63 6f 6c 31 20 29 20 41 53 20 63  N( - col1 ) AS c
1e6f0 6f 6c 31 2c 20 2b 20 43 4f 55 4e 54 28 20 2a 20  ol1, + COUNT( * 
1e700 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
1e710 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 37 0d 0a  ab2..----..-77..
1e720 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
1e730 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1e740 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
1e750 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39 33 0d 0a  sort label-693..
1e760 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d 49 4e  SELECT ALL + MIN
1e770 20 28 20 2d 20 63 6f 6c 31 20 29 20 41 53 20 63   ( - col1 ) AS c
1e780 6f 6c 31 2c 20 2b 20 43 4f 55 4e 54 20 28 20 2a  ol1, + COUNT ( *
1e790 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
1e7a0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 37 0d  tab2..----..-77.
1e7b0 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .3....query I ro
1e7c0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
1e7d0 4c 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c  L - col0 * + col
1e7e0 32 20 2a 20 2d 20 63 6f 6c 32 20 2b 20 63 6f 6c  2 * - col2 + col
1e7f0 32 20 2a 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  2 * + col2 AS co
1e800 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72  l2 FROM tab2 cor
1e810 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 34 30 30 30 0d  0..----..104000.
1e820 0a 32 34 38 36 33 0d 0a 32 35 35 36 36 34 0d 0a  .24863..255664..
1e830 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1e840 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
1e850 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
1e860 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39 35 0d 0a  sort label-695..
1e870 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d 41 58  SELECT ALL + MAX
1e880 28 20 2d 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20  ( - col2 ) FROM 
1e890 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
1e8a0 2d 2d 0d 0a 2d 35 39 0d 0a 0d 0a 73 6b 69 70 69  --..-59....skipi
1e8b0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1e8c0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
1e8d0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1e8e0 36 39 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  695..SELECT ALL 
1e8f0 2b 20 4d 41 58 20 28 20 2d 20 63 6f 6c 32 20 29  + MAX ( - col2 )
1e900 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
1e910 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a 0d  r0..----..-59...
1e920 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1e930 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
1e940 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
1e950 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1e960 6c 2d 36 39 36 0d 0a 53 45 4c 45 43 54 20 44 49  l-696..SELECT DI
1e970 53 54 49 4e 43 54 20 34 36 20 44 49 56 20 2b 20  STINCT 46 DIV + 
1e980 2b 20 38 36 20 41 53 20 63 6f 6c 31 20 46 52 4f  + 86 AS col1 FRO
1e990 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54  M tab0 WHERE NOT
1e9a0 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c   NULL IS NOT NUL
1e9b0 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b  L..----..0....sk
1e9c0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1e9d0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1e9e0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1e9f0 65 6c 2d 36 39 36 0d 0a 53 45 4c 45 43 54 20 44  el-696..SELECT D
1ea00 49 53 54 49 4e 43 54 20 34 36 20 2f 20 2b 20 2b  ISTINCT 46 / + +
1ea10 20 38 36 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   86 AS col1 FROM
1ea20 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20   tab0 WHERE NOT 
1ea30 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  NULL IS NOT NULL
1ea40 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65  ..----..0....que
1ea50 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
1ea60 45 4c 45 43 54 20 41 4c 4c 20 39 39 20 2a 20 2b  ELECT ALL 99 * +
1ea70 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 30 20 41   col1 + + col0 A
1ea80 53 20 63 6f 6c 32 2c 20 2d 20 33 20 46 52 4f 4d  S col2, - 3 FROM
1ea90 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 30 39   tab2..----..509
1eaa0 35 0d 0a 2d 33 0d 0a 36 37 30 38 0d 0a 2d 33 0d  5..-3..6708..-3.
1eab0 0a 37 36 38 37 0d 0a 2d 33 0d 0a 0d 0a 6f 6e 6c  .7687..-3....onl
1eac0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
1ead0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
1eae0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
1eaf0 20 6c 61 62 65 6c 2d 36 39 38 0d 0a 53 45 4c 45   label-698..SELE
1eb00 43 54 20 44 49 53 54 49 4e 43 54 20 34 38 20 41  CT DISTINCT 48 A
1eb10 53 20 63 6f 6c 31 2c 20 2b 20 4d 49 4e 28 20 2d  S col1, + MIN( -
1eb20 20 2d 20 38 30 20 29 20 41 53 20 63 6f 6c 32 20   - 80 ) AS col2 
1eb30 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
1eb40 0a 34 38 0d 0a 38 30 0d 0a 0d 0a 73 6b 69 70 69  .48..80....skipi
1eb50 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1eb60 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
1eb70 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
1eb80 2d 36 39 38 0d 0a 53 45 4c 45 43 54 20 44 49 53  -698..SELECT DIS
1eb90 54 49 4e 43 54 20 34 38 20 41 53 20 63 6f 6c 31  TINCT 48 AS col1
1eba0 2c 20 2b 20 4d 49 4e 20 28 20 2d 20 2d 20 38 30  , + MIN ( - - 80
1ebb0 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
1ebc0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 38 0d 0a  tab2..----..48..
1ebd0 38 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  80....query I ro
1ebe0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
1ebf0 63 6f 6c 31 20 2b 20 2d 20 28 20 2b 20 63 6f 6c  col1 + - ( + col
1ec00 30 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  0 ) AS col2 FROM
1ec10 20 74 61 62 31 20 57 48 45 52 45 20 4e 55 4c 4c   tab1 WHERE NULL
1ec20 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
1ec30 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
1ec40 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
1ec50 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
1ec60 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1ec70 20 6c 61 62 65 6c 2d 37 30 30 0d 0a 53 45 4c 45   label-700..SELE
1ec80 43 54 20 41 4c 4c 20 2b 20 41 56 47 20 28 20 63  CT ALL + AVG ( c
1ec90 6f 6c 31 20 29 20 2b 20 43 41 53 54 28 20 4e 55  ol1 ) + CAST( NU
1eca0 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 41  LL AS SIGNED ) A
1ecb0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
1ecc0 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
1ecd0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1ece0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1ecf0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1ed00 61 62 65 6c 2d 37 30 30 0d 0a 53 45 4c 45 43 54  abel-700..SELECT
1ed10 20 41 4c 4c 20 2b 20 41 56 47 20 28 20 63 6f 6c   ALL + AVG ( col
1ed20 31 20 29 20 2b 20 43 41 53 54 20 28 20 4e 55 4c  1 ) + CAST ( NUL
1ed30 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41  L AS INTEGER ) A
1ed40 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
1ed50 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
1ed60 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1ed70 0a 53 45 4c 45 43 54 20 33 36 20 2b 20 28 20 35  .SELECT 36 + ( 5
1ed80 39 20 29 20 2d 20 2d 20 63 6f 6c 31 20 41 53 20  9 ) - - col1 AS 
1ed90 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col1 FROM tab1..
1eda0 2d 2d 2d 2d 0d 0a 31 30 30 0d 0a 31 30 39 0d 0a  ----..100..109..
1edb0 31 34 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  142....query III
1edc0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1edd0 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30   ALL * FROM tab0
1ede0 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c   WHERE NOT ( NUL
1edf0 4c 20 29 20 3e 3d 20 2b 20 63 6f 6c 32 0d 0a 2d  L ) >= + col2..-
1ee00 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
1ee10 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
1ee20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
1ee30 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1ee40 37 30 33 0d 0a 53 45 4c 45 43 54 20 28 20 35 33  703..SELECT ( 53
1ee50 20 29 20 2b 20 2d 20 2d 20 43 4f 55 4e 54 28 20   ) + - - COUNT( 
1ee60 2a 20 29 20 2a 20 2d 20 30 20 46 52 4f 4d 20 74  * ) * - 0 FROM t
1ee70 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 33 0d 0a 0d  ab2..----..53...
1ee80 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1ee90 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1eea0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1eeb0 6c 61 62 65 6c 2d 37 30 33 0d 0a 53 45 4c 45 43  label-703..SELEC
1eec0 54 20 28 20 35 33 20 29 20 2b 20 2d 20 2d 20 43  T ( 53 ) + - - C
1eed0 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20 30  OUNT ( * ) * - 0
1eee0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
1eef0 0d 0a 35 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..53....query I 
1ef00 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1ef10 63 6f 6c 31 20 2b 20 2d 20 2b 20 63 6f 6c 30 20  col1 + - + col0 
1ef20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
1ef30 0a 2d 38 0d 0a 31 33 0d 0a 35 0d 0a 0d 0a 71 75  .-8..13..5....qu
1ef40 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1ef50 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2b 20 39  ELECT - col0 + 9
1ef60 34 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  4 FROM tab1..---
1ef70 2d 0d 0a 33 0d 0a 34 33 0d 0a 39 0d 0a 0d 0a 71  -..3..43..9....q
1ef80 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
1ef90 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
1efa0 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 20 57 48  ROM tab1 cor0 WH
1efb0 45 52 45 20 2d 20 31 37 20 49 53 20 4e 55 4c 4c  ERE - 17 IS NULL
1efc0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
1efd0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
1efe0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
1eff0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1f000 20 57 48 45 52 45 20 2b 20 63 6f 6c 30 20 3c 20   WHERE + col0 < 
1f010 2b 20 2d 20 37 34 20 2a 20 63 6f 6c 31 0d 0a 2d  + - 74 * col1..-
1f020 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
1f030 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
1f040 20 33 36 20 2b 20 2d 20 2b 20 63 6f 6c 32 20 46   36 + - + col2 F
1f050 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
1f060 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a 2d 37 36  ..----..-59..-76
1f070 0d 0a 2d 39 34 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-94....query I
1f080 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1f090 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41  CT * FROM tab2 A
1f0a0 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20 63  S cor0 WHERE - c
1f0b0 6f 6c 32 20 2d 20 2d 20 2b 20 63 6f 6c 30 20 49  ol2 - - + col0 I
1f0c0 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
1f0d0 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
1f0e0 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33  ng to 75c998aa53
1f0f0 61 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36  ac83218cbf2feb96
1f100 32 64 30 61 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66  2d0a49....onlyif
1f110 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
1f120 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
1f130 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
1f140 73 6f 72 74 20 6c 61 62 65 6c 2d 37 31 30 0d 0a  sort label-710..
1f150 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2a 20  SELECT - col2 * 
1f160 2d 20 2b 20 33 20 2b 20 2d 20 43 41 53 54 28 20  - + 3 + - CAST( 
1f170 2d 20 63 6f 6c 31 20 41 53 20 53 49 47 4e 45 44  - col1 AS SIGNED
1f180 20 29 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72   ) FROM tab0 cor
1f190 30 0d 0a 2d 2d 2d 2d 0d 0a 32 32 32 0d 0a 32 39  0..----..222..29
1f1a0 38 0d 0a 35 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  8..51....skipif 
1f1b0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1f1c0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1f1d0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 31  rowsort label-71
1f1e0 30 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32  0..SELECT - col2
1f1f0 20 2a 20 2d 20 2b 20 33 20 2b 20 2d 20 43 41 53   * - + 3 + - CAS
1f200 54 20 28 20 2d 20 63 6f 6c 31 20 41 53 20 49 4e  T ( - col1 AS IN
1f210 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62  TEGER ) FROM tab
1f220 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 32  0 cor0..----..22
1f230 32 0d 0a 32 39 38 0d 0a 35 31 0d 0a 0d 0a 71 75  2..298..51....qu
1f240 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1f250 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
1f260 6f 6c 31 20 2b 20 2d 20 63 6f 6c 31 20 41 53 20  ol1 + - col1 AS 
1f270 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
1f280 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 63  S cor0 WHERE + c
1f290 6f 6c 30 20 2b 20 2b 20 63 6f 6c 32 20 49 53 20  ol0 + + col2 IS 
1f2a0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
1f2b0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1f2c0 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 2d  ELECT ALL col0 -
1f2d0 20 2b 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 2d 20   + + col0 * - - 
1f2e0 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f  col0 AS col2 FRO
1f2f0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
1f300 2d 2d 2d 2d 0d 0a 2d 32 35 35 30 0d 0a 2d 37 31  ----..-2550..-71
1f310 34 30 0d 0a 2d 38 31 39 30 0d 0a 0d 0a 6f 6e 6c  40..-8190....onl
1f320 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
1f330 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
1f340 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1f350 6c 61 62 65 6c 2d 37 31 33 0d 0a 53 45 4c 45 43  label-713..SELEC
1f360 54 20 2b 20 53 55 4d 28 20 44 49 53 54 49 4e 43  T + SUM( DISTINC
1f370 54 20 2d 20 63 6f 6c 31 20 29 20 63 6f 6c 31 20  T - col1 ) col1 
1f380 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
1f390 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 35 0d 0a 0d  0..----..-195...
1f3a0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1f3b0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1f3c0 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
1f3d0 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
1f3e0 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
1f3f0 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
1f400 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
1f410 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
1f420 31 33 0d 0a 53 45 4c 45 43 54 20 2b 20 53 55 4d  13..SELECT + SUM
1f430 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f   ( DISTINCT - co
1f440 6c 31 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74  l1 ) col1 FROM t
1f450 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
1f460 2d 0d 0a 2d 31 39 35 0d 0a 0d 0a 71 75 65 72 79  -..-195....query
1f470 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1f480 43 54 20 2b 20 63 6f 6c 31 20 2d 20 35 35 20 2b  CT + col1 - 55 +
1f490 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 30   - col1 * - col0
1f4a0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
1f4b0 0d 0a 33 37 35 0d 0a 34 32 36 39 0d 0a 36 37 33  ..375..4269..673
1f4c0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
1f4d0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
1f4e0 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53  L * FROM tab0 AS
1f4f0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
1f500 4e 55 4c 4c 20 3c 3e 20 63 6f 6c 32 20 2a 20 2b  NULL <> col2 * +
1f510 20 2b 20 28 20 2d 20 63 6f 6c 31 20 29 20 2a 20   + ( - col1 ) * 
1f520 2b 20 28 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d  + ( + col1 )..--
1f530 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
1f540 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
1f550 2d 20 28 20 2d 20 2b 20 63 6f 6c 30 20 29 20 41  - ( - + col0 ) A
1f560 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
1f570 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1f580 2d 31 35 0d 0a 2d 38 37 0d 0a 2d 39 37 0d 0a 0d  -15..-87..-97...
1f590 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1f5a0 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20  ..SELECT + col0 
1f5b0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
1f5c0 30 20 57 48 45 52 45 20 4e 4f 54 20 36 34 20 3d  0 WHERE NOT 64 =
1f5d0 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d   col2..----..46.
1f5e0 0a 36 34 0d 0a 37 35 0d 0a 0d 0a 6f 6e 6c 79 69  .64..75....onlyi
1f5f0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
1f600 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
1f610 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1f620 62 65 6c 2d 37 31 38 0d 0a 53 45 4c 45 43 54 20  bel-718..SELECT 
1f630 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54  DISTINCT - COUNT
1f640 28 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 29 20 46  ( ALL + col1 ) F
1f650 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
1f660 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
1f670 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30  IS NULL..----..0
1f680 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1f690 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1f6a0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
1f6b0 72 74 20 6c 61 62 65 6c 2d 37 31 38 0d 0a 53 45  rt label-718..SE
1f6c0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
1f6d0 43 4f 55 4e 54 20 28 20 41 4c 4c 20 2b 20 63 6f  COUNT ( ALL + co
1f6e0 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41  l1 ) FROM tab2 A
1f6f0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
1f700 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d   NULL IS NULL..-
1f710 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ---..0....onlyif
1f720 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
1f730 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
1f740 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
1f750 73 6f 72 74 20 6c 61 62 65 6c 2d 37 31 39 0d 0a  sort label-719..
1f760 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 46 52  SELECT + col1 FR
1f770 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
1f780 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20 3e  WHERE NOT col0 >
1f790 20 2d 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20   - + CAST( NULL 
1f7a0 41 53 20 53 49 47 4e 45 44 20 29 0d 0a 2d 2d 2d  AS SIGNED )..---
1f7b0 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  -....skipif mysq
1f7c0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1f7d0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1f7e0 6f 72 74 20 6c 61 62 65 6c 2d 37 31 39 0d 0a 53  ort label-719..S
1f7f0 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 46 52 4f  ELECT + col1 FRO
1f800 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
1f810 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20 3e 20  HERE NOT col0 > 
1f820 2d 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  - + CAST ( NULL 
1f830 41 53 20 49 4e 54 45 47 45 52 20 29 0d 0a 2d 2d  AS INTEGER )..--
1f840 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
1f850 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
1f860 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  : aggregate synt
1f870 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
1f880 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
1f890 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
1f8a0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1f8b0 65 6c 2d 37 32 30 0d 0a 53 45 4c 45 43 54 20 2b  el-720..SELECT +
1f8c0 20 2d 20 43 41 53 54 28 20 34 38 20 41 53 20 53   - CAST( 48 AS S
1f8d0 49 47 4e 45 44 20 29 20 44 49 56 20 2d 20 2b 20  IGNED ) DIV - + 
1f8e0 43 4f 55 4e 54 28 20 2a 20 29 20 63 6f 6c 30 20  COUNT( * ) col0 
1f8f0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
1f900 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 0d 0a 0d 0a 73  0..----..16....s
1f910 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1f920 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
1f930 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
1f940 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
1f950 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
1f960 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
1f970 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
1f980 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 32 30  owsort label-720
1f990 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 43 41 53  ..SELECT + - CAS
1f9a0 54 20 28 20 34 38 20 41 53 20 49 4e 54 45 47 45  T ( 48 AS INTEGE
1f9b0 52 20 29 20 2f 20 2d 20 2b 20 43 4f 55 4e 54 20  R ) / - + COUNT 
1f9c0 28 20 2a 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20  ( * ) col0 FROM 
1f9d0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
1f9e0 2d 2d 0d 0a 31 36 0d 0a 0d 0a 71 75 65 72 79 20  --..16....query 
1f9f0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1fa00 43 54 20 28 20 2b 20 63 6f 6c 31 20 29 2c 20 31  CT ( + col1 ), 1
1fa10 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
1fa20 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31 31  or0..----..1..11
1fa30 0d 0a 32 31 0d 0a 31 31 0d 0a 38 31 0d 0a 31 31  ..21..11..81..11
1fa40 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1fa50 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
1fa60 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1fa70 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
1fa80 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1fa90 20 6c 61 62 65 6c 2d 37 32 32 0d 0a 53 45 4c 45   label-722..SELE
1faa0 43 54 20 41 4c 4c 20 2b 20 39 20 2a 20 4d 49 4e  CT ALL + 9 * MIN
1fab0 28 20 41 4c 4c 20 2b 20 2b 20 63 6f 6c 32 20 29  ( ALL + + col2 )
1fac0 20 2f 20 2b 20 2b 20 43 41 53 54 28 20 4e 55 4c   / + + CAST( NUL
1fad0 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52  L AS SIGNED ) FR
1fae0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab2..----..N
1faf0 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
1fb00 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1fb10 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1fb20 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 32 32 0d  wsort label-722.
1fb30 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 39 20  .SELECT ALL + 9 
1fb40 2a 20 4d 49 4e 20 28 20 41 4c 4c 20 2b 20 2b 20  * MIN ( ALL + + 
1fb50 63 6f 6c 32 20 29 20 2f 20 2b 20 2b 20 43 41 53  col2 ) / + + CAS
1fb60 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
1fb70 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 32 0d  GER ) FROM tab2.
1fb80 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  .----..NULL....q
1fb90 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
1fba0 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
1fbb0 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2b  tab1 WHERE NOT +
1fbc0 20 2b 20 63 6f 6c 30 20 2f 20 63 6f 6c 31 20 4e   + col0 / col1 N
1fbd0 4f 54 20 49 4e 20 28 20 2b 20 63 6f 6c 31 20 29  OT IN ( + col1 )
1fbe0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
1fbf0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1fc00 43 54 20 2b 20 37 33 20 41 53 20 63 6f 6c 31 2c  CT + 73 AS col1,
1fc10 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20   - col0 AS col1 
1fc20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
1fc30 0a 37 33 0d 0a 2d 31 35 0d 0a 37 33 0d 0a 2d 38  .73..-15..73..-8
1fc40 37 0d 0a 37 33 0d 0a 2d 39 37 0d 0a 0d 0a 6f 6e  7..73..-97....on
1fc50 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
1fc60 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
1fc70 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1fc80 20 6c 61 62 65 6c 2d 37 32 35 0d 0a 53 45 4c 45   label-725..SELE
1fc90 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 28 20  CT ALL - COUNT( 
1fca0 2a 20 29 20 2a 20 2b 20 38 20 41 53 20 63 6f 6c  * ) * + 8 AS col
1fcb0 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  2 FROM tab1..---
1fcc0 2d 0d 0a 2d 32 34 0d 0a 0d 0a 73 6b 69 70 69 66  -..-24....skipif
1fcd0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1fce0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1fcf0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
1fd00 32 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  25..SELECT ALL -
1fd10 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2b   COUNT ( * ) * +
1fd20 20 38 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   8 AS col2 FROM 
1fd30 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 34 0d  tab1..----..-24.
1fd40 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1fd50 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61  # CAST syntax: a
1fd60 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
1fd70 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 44 49   SIGNED type: DI
1fd80 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
1fd90 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
1fda0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1fdb0 37 32 36 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e  726..SELECT COUN
1fdc0 54 28 20 2a 20 29 20 44 49 56 20 32 20 41 53 20  T( * ) DIV 2 AS 
1fdd0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 57  col0 FROM tab2 W
1fde0 48 45 52 45 20 4e 4f 54 20 2b 20 2d 20 63 6f 6c  HERE NOT + - col
1fdf0 31 20 3c 3e 20 2d 20 2b 20 43 41 53 54 28 20 2d  1 <> - + CAST( -
1fe00 20 38 34 20 41 53 20 53 49 47 4e 45 44 20 29 0d   84 AS SIGNED ).
1fe10 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .----..0....skip
1fe20 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1fe30 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1fe40 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1fe50 2d 37 32 36 0d 0a 53 45 4c 45 43 54 20 43 4f 55  -726..SELECT COU
1fe60 4e 54 20 28 20 2a 20 29 20 2f 20 32 20 41 53 20  NT ( * ) / 2 AS 
1fe70 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 57  col0 FROM tab2 W
1fe80 48 45 52 45 20 4e 4f 54 20 2b 20 2d 20 63 6f 6c  HERE NOT + - col
1fe90 31 20 3c 3e 20 2d 20 2b 20 43 41 53 54 20 28 20  1 <> - + CAST ( 
1fea0 2d 20 38 34 20 41 53 20 49 4e 54 45 47 45 52 20  - 84 AS INTEGER 
1feb0 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e  )..----..0....on
1fec0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
1fed0 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
1fee0 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
1fef0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
1ff00 32 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  27..SELECT ALL -
1ff10 20 2b 20 33 39 20 44 49 56 20 2d 20 28 20 2b 20   + 39 DIV - ( + 
1ff20 63 6f 6c 32 20 29 20 63 6f 6c 30 20 46 52 4f 4d  col2 ) col0 FROM
1ff30 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
1ff40 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 33 0d 0a 0d 0a  ---..0..0..3....
1ff50 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1ff60 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73  ot compatible..s
1ff70 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
1ff80 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
1ff90 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
1ffa0 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
1ffb0 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
1ffc0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 32  rowsort label-72
1ffd0 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  7..SELECT ALL - 
1ffe0 2b 20 33 39 20 2f 20 2d 20 28 20 2b 20 63 6f 6c  + 39 / - ( + col
1fff0 32 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  2 ) col0 FROM ta
20000 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
20010 0d 0a 30 0d 0a 30 0d 0a 33 0d 0a 0d 0a 71 75 65  ..0..0..3....que
20020 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
20030 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
20040 6c 32 20 2a 20 35 35 20 2a 20 2b 20 63 6f 6c 30  l2 * 55 * + col0
20050 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
20060 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 36 39 32 38 30  r0..----..269280
20070 0d 0a 32 37 35 38 32 35 0d 0a 33 34 30 33 34 30  ..275825..340340
20080 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
20090 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
200a0 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74  tax: DIV for int
200b0 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
200c0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
200d0 74 20 6c 61 62 65 6c 2d 37 32 39 0d 0a 53 45 4c  t label-729..SEL
200e0 45 43 54 20 44 49 53 54 49 4e 43 54 20 38 34 2c  ECT DISTINCT 84,
200f0 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 44 49   - COUNT( * ) DI
20100 56 20 2b 20 31 31 20 2b 20 43 4f 55 4e 54 28 20  V + 11 + COUNT( 
20110 2a 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  * ) col1 FROM ta
20120 62 31 0d 0a 2d 2d 2d 2d 0d 0a 38 34 0d 0a 33 0d  b1..----..84..3.
20130 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
20140 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
20150 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
20160 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
20170 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
20180 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
20190 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
201a0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
201b0 6c 2d 37 32 39 0d 0a 53 45 4c 45 43 54 20 44 49  l-729..SELECT DI
201c0 53 54 49 4e 43 54 20 38 34 2c 20 2d 20 43 4f 55  STINCT 84, - COU
201d0 4e 54 20 28 20 2a 20 29 20 2f 20 2b 20 31 31 20  NT ( * ) / + 11 
201e0 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 63 6f  + COUNT ( * ) co
201f0 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
20200 2d 2d 0d 0a 38 34 0d 0a 33 0d 0a 0d 0a 6f 6e 6c  --..84..3....onl
20210 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
20220 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
20230 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
20240 20 6c 61 62 65 6c 2d 37 33 30 0d 0a 53 45 4c 45   label-730..SELE
20250 43 54 20 44 49 53 54 49 4e 43 54 20 37 34 20 63  CT DISTINCT 74 c
20260 6f 6c 32 2c 20 4d 49 4e 28 20 28 20 2b 20 36 38  ol2, MIN( ( + 68
20270 20 29 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f   ) ) AS col2 FRO
20280 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 37 34  M tab0..----..74
20290 0d 0a 36 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..68....skipif m
202a0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
202b0 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
202c0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
202d0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
202e0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
202f0 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
20300 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
20310 20 6c 61 62 65 6c 2d 37 33 30 0d 0a 53 45 4c 45   label-730..SELE
20320 43 54 20 44 49 53 54 49 4e 43 54 20 37 34 20 63  CT DISTINCT 74 c
20330 6f 6c 32 2c 20 4d 49 4e 20 28 20 28 20 2b 20 36  ol2, MIN ( ( + 6
20340 38 20 29 20 29 20 41 53 20 63 6f 6c 32 20 46 52  8 ) ) AS col2 FR
20350 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 37  OM tab0..----..7
20360 34 0d 0a 36 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  4..68....onlyif 
20370 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
20380 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
20390 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
203a0 6f 72 74 20 6c 61 62 65 6c 2d 37 33 31 0d 0a 53  ort label-731..S
203b0 45 4c 45 43 54 20 2b 20 43 41 53 54 28 20 4e 55  ELECT + CAST( NU
203c0 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 41  LL AS SIGNED ) A
203d0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
203e0 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a   AS cor0 CROSS J
203f0 4f 49 4e 20 74 61 62 32 20 41 53 20 63 6f 72 31  OIN tab2 AS cor1
20400 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e   WHERE NULL IS N
20410 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  OT NULL..----...
20420 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
20430 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
20440 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
20450 6c 61 62 65 6c 2d 37 33 31 0d 0a 53 45 4c 45 43  label-731..SELEC
20460 54 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  T + CAST ( NULL 
20470 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20  AS INTEGER ) AS 
20480 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
20490 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  S cor0 CROSS JOI
204a0 4e 20 74 61 62 32 20 41 53 20 63 6f 72 31 20 57  N tab2 AS cor1 W
204b0 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 4f 54  HERE NULL IS NOT
204c0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
204d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
204e0 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c  SELECT ALL + col
204f0 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
20500 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49  or0 WHERE NULL I
20510 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 34  S NULL..----..14
20520 0d 0a 34 37 0d 0a 35 0d 0a 0d 0a 71 75 65 72 79  ..47..5....query
20530 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
20540 43 54 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 2b 20  CT - col0 + - + 
20550 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f  col1 AS col1 FRO
20560 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
20570 2d 2d 2d 2d 0d 0a 2d 31 33 38 0d 0a 2d 36 35 0d  ----..-138..-65.
20580 0a 2d 39 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-90....onlyif m
20590 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
205a0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
205b0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
205c0 2d 37 33 34 0d 0a 53 45 4c 45 43 54 20 4d 41 58  -734..SELECT MAX
205d0 28 20 41 4c 4c 20 2d 20 35 35 20 29 20 2b 20 2d  ( ALL - 55 ) + -
205e0 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
205f0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  ol2 FROM tab0 co
20600 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 38 0d 0a 0d  r0..----..-58...
20610 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
20620 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
20630 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
20640 6c 61 62 65 6c 2d 37 33 34 0d 0a 53 45 4c 45 43  label-734..SELEC
20650 54 20 4d 41 58 20 28 20 41 4c 4c 20 2d 20 35 35  T MAX ( ALL - 55
20660 20 29 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a   ) + - COUNT ( *
20670 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
20680 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
20690 0a 2d 35 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  .-58....skipif p
206a0 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
206b0 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
206c0 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
206d0 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
206e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
206f0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 31  ..SELECT ALL + 1
20700 37 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  7 col0 FROM tab0
20710 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
20720 55 4c 4c 20 3d 20 2b 20 63 6f 6c 31 0d 0a 2d 2d  ULL = + col1..--
20730 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
20740 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
20750 4c 20 63 6f 6c 30 20 2b 20 2b 20 2b 20 32 35 20  L col0 + + + 25 
20760 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a  FROM tab0 cor0..
20770 2d 2d 2d 2d 0d 0a 31 31 32 0d 0a 31 32 32 0d 0a  ----..112..122..
20780 34 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  40....onlyif mys
20790 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
207a0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
207b0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
207c0 33 37 0d 0a 53 45 4c 45 43 54 20 2d 20 36 39 20  37..SELECT - 69 
207d0 2b 20 2b 20 4d 49 4e 28 20 2d 20 2b 20 28 20 2b  + + MIN( - + ( +
207e0 20 63 6f 6c 30 20 29 20 29 20 41 53 20 63 6f 6c   col0 ) ) AS col
207f0 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
20800 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 30 0d  or0..----..-160.
20810 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
20820 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
20830 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
20840 74 20 6c 61 62 65 6c 2d 37 33 37 0d 0a 53 45 4c  t label-737..SEL
20850 45 43 54 20 2d 20 36 39 20 2b 20 2b 20 4d 49 4e  ECT - 69 + + MIN
20860 20 28 20 2d 20 2b 20 28 20 2b 20 63 6f 6c 30 20   ( - + ( + col0 
20870 29 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ) ) AS col2 FROM
20880 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
20890 2d 2d 2d 0d 0a 2d 31 36 30 0d 0a 0d 0a 71 75 65  ---..-160....que
208a0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
208b0 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2b 20 2b 20  LECT + col1 + + 
208c0 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  - col0 FROM tab2
208d0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
208e0 2d 38 0d 0a 31 33 0d 0a 35 0d 0a 0d 0a 71 75 65  -8..13..5....que
208f0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
20900 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
20910 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
20920 20 28 20 63 6f 6c 30 20 29 20 4e 4f 54 20 42 45   ( col0 ) NOT BE
20930 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e  TWEEN NULL AND N
20940 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ULL..----....onl
20950 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
20960 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
20970 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
20980 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 34  rowsort label-74
20990 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  0..SELECT ALL + 
209a0 37 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  7 + CAST( NULL A
209b0 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20  S SIGNED ) FROM 
209c0 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
209d0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
209e0 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
209f0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
20a00 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
20a10 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 34 30  owsort label-740
20a20 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 37  ..SELECT ALL + 7
20a30 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   + CAST ( NULL A
20a40 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d  S INTEGER ) FROM
20a50 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
20a60 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
20a70 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .NULL....onlyif 
20a80 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
20a90 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f  e syntax: DIV fo
20aa0 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
20ab0 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
20ac0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 34 31 0d  wsort label-741.
20ad0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
20ae0 20 35 31 20 2b 20 2b 20 2d 20 37 30 20 44 49 56   51 + + - 70 DIV
20af0 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20   - COUNT( * ) + 
20b00 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2b  + COUNT( * ) + +
20b10 20 2d 20 32 38 20 46 52 4f 4d 20 74 61 62 32 20   - 28 FROM tab2 
20b20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34  AS cor0..----..4
20b30 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
20b40 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
20b50 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
20b60 6f 72 74 20 6c 61 62 65 6c 2d 37 34 31 0d 0a 53  ort label-741..S
20b70 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 35  ELECT DISTINCT 5
20b80 31 20 2b 20 2b 20 2d 20 37 30 20 2f 20 2d 20 43  1 + + - 70 / - C
20b90 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2b 20 43  OUNT ( * ) + + C
20ba0 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2b 20 2d  OUNT ( * ) + + -
20bb0 20 32 38 20 46 52 4f 4d 20 74 61 62 32 20 41 53   28 FROM tab2 AS
20bc0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 39 0d   cor0..----..49.
20bd0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
20be0 72 74 0d 0a 53 45 4c 45 43 54 20 32 37 20 2a 20  rt..SELECT 27 * 
20bf0 2d 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  - + col0 FROM ta
20c00 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
20c10 0d 0a 2d 31 32 34 32 0d 0a 2d 31 37 32 38 0d 0a  ..-1242..-1728..
20c20 2d 32 30 32 35 0d 0a 0d 0a 71 75 65 72 79 20 49  -2025....query I
20c30 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
20c40 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
20c50 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
20c60 54 20 2d 20 2b 20 28 20 2b 20 2d 20 63 6f 6c 32  T - + ( + - col2
20c70 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a   ) IS NOT NULL..
20c80 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
20c90 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
20ca0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
20cb0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
20cc0 2d 37 34 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -744..SELECT ALL
20cd0 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52   - COUNT( * ) FR
20ce0 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
20cf0 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55  T NULL IS NOT NU
20d00 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a  LL..----..-3....
20d10 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
20d20 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
20d30 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
20d40 61 62 65 6c 2d 37 34 34 0d 0a 53 45 4c 45 43 54  abel-744..SELECT
20d50 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 20 28 20 2a   ALL - COUNT ( *
20d60 20 29 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   ) FROM tab2 WHE
20d70 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e  RE NOT NULL IS N
20d80 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d  OT NULL..----..-
20d90 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
20da0 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
20db0 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
20dc0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
20dd0 6c 61 62 65 6c 2d 37 34 35 0d 0a 53 45 4c 45 43  label-745..SELEC
20de0 54 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 2b 20 2d  T ALL + col0 + -
20df0 20 2d 20 34 38 20 44 49 56 20 2d 20 31 35 20 46   - 48 DIV - 15 F
20e00 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
20e10 34 38 0d 0a 38 32 0d 0a 38 38 0d 0a 0d 0a 73 6b  48..82..88....sk
20e20 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
20e30 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
20e40 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
20e50 65 6c 2d 37 34 35 0d 0a 53 45 4c 45 43 54 20 41  el-745..SELECT A
20e60 4c 4c 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 2d 20  LL + col0 + - - 
20e70 34 38 20 2f 20 2d 20 31 35 20 46 52 4f 4d 20 74  48 / - 15 FROM t
20e80 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 34 38 0d 0a 38  ab1..----..48..8
20e90 32 0d 0a 38 38 0d 0a 0d 0a 71 75 65 72 79 20 49  2..88....query I
20ea0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
20eb0 20 2b 20 63 6f 6c 30 20 2d 20 2b 20 2d 20 63 6f   + col0 - + - co
20ec0 6c 31 20 2b 20 2d 20 38 34 20 2a 20 2d 20 2b 20  l1 + - 84 * - + 
20ed0 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f  col0 AS col2 FRO
20ee0 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 34 33  M tab1..----..43
20ef0 34 39 0d 0a 37 32 33 30 0d 0a 37 37 38 32 0d 0a  49..7230..7782..
20f00 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
20f10 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
20f20 2d 20 38 33 20 2b 20 2d 20 63 6f 6c 30 20 2b 20  - 83 + - col0 + 
20f30 2d 20 33 39 20 2a 20 2d 20 28 20 2b 20 2b 20 63  - 39 * - ( + + c
20f40 6f 6c 32 20 29 20 2a 20 2d 20 30 20 41 53 20 63  ol2 ) * - 0 AS c
20f50 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
20f60 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32   cor0..----..-12
20f70 39 0d 0a 2d 31 34 37 0d 0a 2d 31 35 38 0d 0a 0d  9..-147..-158...
20f80 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
20f90 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
20fa0 54 20 2d 20 2b 20 28 20 63 6f 6c 30 20 29 20 2b  T - + ( col0 ) +
20fb0 20 2b 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74   + + col1 FROM t
20fc0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
20fd0 2d 0d 0a 2d 38 0d 0a 31 33 0d 0a 35 0d 0a 0d 0a  -..-8..13..5....
20fe0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
20ff0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
21000 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
21010 72 74 20 6c 61 62 65 6c 2d 37 34 39 0d 0a 53 45  rt label-749..SE
21020 4c 45 43 54 20 2d 20 28 20 2b 20 43 4f 55 4e 54  LECT - ( + COUNT
21030 28 20 2a 20 29 20 29 20 2b 20 2b 20 30 20 41 53  ( * ) ) + + 0 AS
21040 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
21050 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
21060 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
21070 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
21080 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
21090 6f 72 74 20 6c 61 62 65 6c 2d 37 34 39 0d 0a 53  ort label-749..S
210a0 45 4c 45 43 54 20 2d 20 28 20 2b 20 43 4f 55 4e  ELECT - ( + COUN
210b0 54 20 28 20 2a 20 29 20 29 20 2b 20 2b 20 30 20  T ( * ) ) + + 0 
210c0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
210d0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
210e0 0a 2d 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .-3....onlyif my
210f0 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
21100 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
21110 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
21120 74 20 6c 61 62 65 6c 2d 37 35 30 0d 0a 53 45 4c  t label-750..SEL
21130 45 43 54 20 41 4c 4c 20 2d 20 39 38 20 2b 20 2b  ECT ALL - 98 + +
21140 20 63 6f 6c 30 20 44 49 56 20 2b 20 2d 20 63 6f   col0 DIV + - co
21150 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l1 AS col0 FROM 
21160 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
21170 2d 2d 0d 0a 2d 31 30 31 0d 0a 2d 31 31 35 0d 0a  --..-101..-115..
21180 2d 39 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -99....skipif my
21190 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
211a0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
211b0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 35 30 0d  wsort label-750.
211c0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 39 38  .SELECT ALL - 98
211d0 20 2b 20 2b 20 63 6f 6c 30 20 2f 20 2b 20 2d 20   + + col0 / + - 
211e0 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f  col1 AS col0 FRO
211f0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
21200 2d 2d 2d 2d 0d 0a 2d 31 30 31 0d 0a 2d 31 31 35  ----..-101..-115
21210 0d 0a 2d 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-99....query I
21220 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
21230 20 44 49 53 54 49 4e 43 54 20 2d 20 28 20 2d 20   DISTINCT - ( - 
21240 2b 20 28 20 2d 20 37 35 20 29 20 29 20 2d 20 2d  + ( - 75 ) ) - -
21250 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
21260 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
21270 31 31 0d 0a 2d 32 39 0d 0a 30 0d 0a 0d 0a 71 75  11..-29..0....qu
21280 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
21290 45 4c 45 43 54 20 35 30 20 2b 20 63 6f 6c 31 20  ELECT 50 + col1 
212a0 2b 20 2d 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20  + - + col1 FROM 
212b0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
212c0 2d 2d 0d 0a 35 30 0d 0a 35 30 0d 0a 35 30 0d 0a  --..50..50..50..
212d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
212e0 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31  t..SELECT - col1
212f0 20 2a 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 2b 20   * - col1 + - + 
21300 33 35 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  35 AS col1 FROM 
21310 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d  tab1..----..-10.
21320 0a 31 36 31 0d 0a 32 31 37 34 0d 0a 0d 0a 6f 6e  .161..2174....on
21330 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
21340 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
21350 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
21360 20 6c 61 62 65 6c 2d 37 35 34 0d 0a 53 45 4c 45   label-754..SELE
21370 43 54 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20  CT + - COUNT( * 
21380 29 20 2a 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  ) * - COUNT( * )
21390 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
213a0 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54   NOT NULL IS NOT
213b0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a   NULL..----..9..
213c0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
213d0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
213e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
213f0 20 6c 61 62 65 6c 2d 37 35 34 0d 0a 53 45 4c 45   label-754..SELE
21400 43 54 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a  CT + - COUNT ( *
21410 20 29 20 2a 20 2d 20 43 4f 55 4e 54 20 28 20 2a   ) * - COUNT ( *
21420 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45   ) FROM tab1 WHE
21430 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e  RE NOT NULL IS N
21440 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  OT NULL..----..9
21450 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
21460 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
21470 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48  L * FROM tab0 WH
21480 45 52 45 20 4e 4f 54 20 34 30 20 2a 20 63 6f 6c  ERE NOT 40 * col
21490 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  1 IS NOT NULL..-
214a0 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
214b0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
214c0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
214d0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
214e0 37 35 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  756..SELECT ALL 
214f0 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  + + COUNT( * ) F
21500 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
21510 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30   CROSS JOIN tab0
21520 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a   cor1..----..9..
21530 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
21540 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
21550 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
21560 20 6c 61 62 65 6c 2d 37 35 36 0d 0a 53 45 4c 45   label-756..SELE
21570 43 54 20 41 4c 4c 20 2b 20 2b 20 43 4f 55 4e 54  CT ALL + + COUNT
21580 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31   ( * ) FROM tab1
21590 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a   AS cor0 CROSS J
215a0 4f 49 4e 20 74 61 62 30 20 63 6f 72 31 0d 0a 2d  OIN tab0 cor1..-
215b0 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 71 75 65 72 79 20  ---..9....query 
215c0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
215d0 54 20 35 30 20 2a 20 2b 20 2d 20 63 6f 6c 30 20  T 50 * + - col0 
215e0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
215f0 0a 2d 32 33 30 30 0d 0a 2d 33 32 30 30 0d 0a 2d  .-2300..-3200..-
21600 33 37 35 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49  3750....query II
21610 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
21620 20 2b 20 36 34 2c 20 63 6f 6c 32 20 2a 20 2b 20   + 64, col2 * + 
21630 28 20 2d 20 2d 20 63 6f 6c 31 20 29 20 2b 20 63  ( - - col1 ) + c
21640 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol1 AS col1 FROM
21650 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 36 34 0d   tab0..----..64.
21660 0a 31 30 30 0d 0a 36 34 0d 0a 32 33 31 0d 0a 36  .100..64..231..6
21670 34 0d 0a 33 38 38 38 0d 0a 0d 0a 71 75 65 72 79  4..3888....query
21680 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
21690 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  LECT * FROM tab2
216a0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
216b0 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20 63 6f 6c  NULL BETWEEN col
216c0 30 20 2b 20 63 6f 6c 31 20 41 4e 44 20 4e 55 4c  0 + col1 AND NUL
216d0 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
216e0 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
216f0 45 43 54 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  ECT + col2 AS co
21700 6c 32 2c 20 34 20 2a 20 2d 20 63 6f 6c 32 20 46  l2, 4 * - col2 F
21710 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
21720 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 2d 32 33 36  ..----..59..-236
21730 0d 0a 36 38 0d 0a 2d 32 37 32 0d 0a 39 36 0d 0a  ..68..-272..96..
21740 2d 33 38 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -384....onlyif m
21750 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
21760 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
21770 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
21780 2d 37 36 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -761..SELECT ALL
21790 20 2b 20 2d 20 43 4f 55 4e 54 28 20 41 4c 4c 20   + - COUNT( ALL 
217a0 63 6f 6c 30 20 29 20 2a 20 2b 20 34 34 20 46 52  col0 ) * + 44 FR
217b0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
217c0 0a 2d 2d 2d 2d 0d 0a 2d 31 33 32 0d 0a 0d 0a 73  .----..-132....s
217d0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
217e0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
217f0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
21800 62 65 6c 2d 37 36 31 0d 0a 53 45 4c 45 43 54 20  bel-761..SELECT 
21810 41 4c 4c 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20  ALL + - COUNT ( 
21820 41 4c 4c 20 63 6f 6c 30 20 29 20 2a 20 2b 20 34  ALL col0 ) * + 4
21830 34 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  4 FROM tab0 AS c
21840 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 32 0d  or0..----..-132.
21850 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
21860 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 2d  rt..SELECT + ( -
21870 20 2d 20 37 37 20 29 20 41 53 20 63 6f 6c 31 20   - 77 ) AS col1 
21880 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a  FROM tab1 cor0..
21890 2d 2d 2d 2d 0d 0a 37 37 0d 0a 37 37 0d 0a 37 37  ----..77..77..77
218a0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
218b0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
218c0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
218d0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 36 33  owsort label-763
218e0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
218f0 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41  T + COUNT( * ) A
21900 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
21910 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
21920 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ULL IS NULL..---
21930 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..3....skipif m
21940 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
21950 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
21960 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 36 33  owsort label-763
21970 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
21980 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  T + COUNT ( * ) 
21990 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
219a0 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
219b0 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  NULL IS NULL..--
219c0 2d 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  --..3....onlyif 
219d0 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
219e0 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
219f0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
21a00 6f 72 74 20 6c 61 62 65 6c 2d 37 36 34 0d 0a 53  ort label-764..S
21a10 45 4c 45 43 54 20 2d 20 43 41 53 54 28 20 2b 20  ELECT - CAST( + 
21a20 2d 20 63 6f 6c 30 20 41 53 20 53 49 47 4e 45 44  - col0 AS SIGNED
21a30 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
21a40 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a  tab0..----..15..
21a50 38 37 0d 0a 39 37 0d 0a 0d 0a 73 6b 69 70 69 66  87..97....skipif
21a60 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
21a70 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
21a80 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
21a90 36 34 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53  64..SELECT - CAS
21aa0 54 20 28 20 2b 20 2d 20 63 6f 6c 30 20 41 53 20  T ( + - col0 AS 
21ab0 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c  INTEGER ) AS col
21ac0 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
21ad0 2d 0d 0a 31 35 0d 0a 38 37 0d 0a 39 37 0d 0a 0d  -..15..87..97...
21ae0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
21af0 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
21b00 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
21b10 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
21b20 65 6c 2d 37 36 35 0d 0a 53 45 4c 45 43 54 20 2d  el-765..SELECT -
21b30 20 63 6f 6c 32 20 2a 20 43 41 53 54 28 20 4e 55   col2 * CAST( NU
21b40 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 41  LL AS SIGNED ) A
21b50 53 20 63 6f 6c 32 2c 20 32 35 20 46 52 4f 4d 20  S col2, 25 FROM 
21b60 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab1..----..NULL
21b70 0d 0a 32 35 0d 0a 4e 55 4c 4c 0d 0a 32 35 0d 0a  ..25..NULL..25..
21b80 4e 55 4c 4c 0d 0a 32 35 0d 0a 0d 0a 73 6b 69 70  NULL..25....skip
21b90 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
21ba0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
21bb0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
21bc0 6c 2d 37 36 35 0d 0a 53 45 4c 45 43 54 20 2d 20  l-765..SELECT - 
21bd0 63 6f 6c 32 20 2a 20 43 41 53 54 20 28 20 4e 55  col2 * CAST ( NU
21be0 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
21bf0 41 53 20 63 6f 6c 32 2c 20 32 35 20 46 52 4f 4d  AS col2, 25 FROM
21c00 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   tab1..----..NUL
21c10 4c 0d 0a 32 35 0d 0a 4e 55 4c 4c 0d 0a 32 35 0d  L..25..NULL..25.
21c20 0a 4e 55 4c 4c 0d 0a 32 35 0d 0a 0d 0a 6f 6e 6c  .NULL..25....onl
21c30 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
21c40 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
21c50 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
21c60 6c 61 62 65 6c 2d 37 36 36 0d 0a 53 45 4c 45 43  label-766..SELEC
21c70 54 20 2d 20 28 20 2d 20 2b 20 43 4f 55 4e 54 28  T - ( - + COUNT(
21c80 20 2a 20 29 20 29 20 41 53 20 63 6f 6c 32 20 46   * ) ) AS col2 F
21c90 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
21ca0 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
21cb0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
21cc0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
21cd0 6f 72 74 20 6c 61 62 65 6c 2d 37 36 36 0d 0a 53  ort label-766..S
21ce0 45 4c 45 43 54 20 2d 20 28 20 2d 20 2b 20 43 4f  ELECT - ( - + CO
21cf0 55 4e 54 20 28 20 2a 20 29 20 29 20 41 53 20 63  UNT ( * ) ) AS c
21d00 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol2 FROM tab1..-
21d10 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20  ---..3....query 
21d20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
21d30 54 20 41 4c 4c 20 2d 20 2b 20 33 30 20 41 53 20  T ALL - + 30 AS 
21d40 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
21d50 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  S cor0 CROSS JOI
21d60 4e 20 74 61 62 31 20 41 53 20 63 6f 72 31 0d 0a  N tab1 AS cor1..
21d70 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
21d80 61 73 68 69 6e 67 20 74 6f 20 35 36 66 61 32 35  ashing to 56fa25
21d90 66 39 66 62 38 30 34 30 34 36 30 66 65 33 63 38  f9fb8040460fe3c8
21da0 39 34 30 30 30 65 61 38 66 62 0d 0a 0d 0a 6f 6e  94000ea8fb....on
21db0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
21dc0 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
21dd0 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
21de0 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
21df0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
21e00 2d 37 36 38 0d 0a 53 45 4c 45 43 54 20 43 4f 55  -768..SELECT COU
21e10 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20  NT( * ) AS col0 
21e20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
21e30 2d 20 63 6f 6c 32 20 2a 20 2d 20 2b 20 63 6f 6c  - col2 * - + col
21e40 32 20 3e 20 63 6f 6c 30 20 2a 20 2d 20 2d 20 43  2 > col0 * - - C
21e50 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
21e60 4e 45 44 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a  NED )..----..0..
21e70 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
21e80 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
21e90 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
21ea0 20 6c 61 62 65 6c 2d 37 36 38 0d 0a 53 45 4c 45   label-768..SELE
21eb0 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41  CT COUNT ( * ) A
21ec0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
21ed0 20 57 48 45 52 45 20 2d 20 63 6f 6c 32 20 2a 20   WHERE - col2 * 
21ee0 2d 20 2b 20 63 6f 6c 32 20 3e 20 63 6f 6c 30 20  - + col2 > col0 
21ef0 2a 20 2d 20 2d 20 43 41 53 54 20 28 20 4e 55 4c  * - - CAST ( NUL
21f00 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 0d 0a  L AS INTEGER )..
21f10 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69  ----..0....onlyi
21f20 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
21f30 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65  yntax: aggregate
21f40 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
21f50 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
21f60 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 36  rowsort label-76
21f70 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  9..SELECT DISTIN
21f80 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20  CT COUNT( * ) * 
21f90 2d 20 43 41 53 54 28 20 2d 20 43 4f 55 4e 54 28  - CAST( - COUNT(
21fa0 20 2a 20 29 20 41 53 20 53 49 47 4e 45 44 20 29   * ) AS SIGNED )
21fb0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
21fc0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 73  b1..----..9....s
21fd0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
21fe0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
21ff0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
22000 62 65 6c 2d 37 36 39 0d 0a 53 45 4c 45 43 54 20  bel-769..SELECT 
22010 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 20 28  DISTINCT COUNT (
22020 20 2a 20 29 20 2a 20 2d 20 43 41 53 54 20 28 20   * ) * - CAST ( 
22030 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53  - COUNT ( * ) AS
22040 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f   INTEGER ) AS co
22050 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l0 FROM tab1..--
22060 2d 2d 0d 0a 39 0d 0a 0d 0a 71 75 65 72 79 20 49  --..9....query I
22070 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
22080 20 44 49 53 54 49 4e 43 54 20 2b 20 33 33 20 2b   DISTINCT + 33 +
22090 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   + col2 FROM tab
220a0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
220b0 0a 31 33 32 0d 0a 34 33 0d 0a 38 30 0d 0a 0d 0a  .132..43..80....
220c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
220d0 0a 53 45 4c 45 43 54 20 2d 20 2b 20 38 34 20 2a  .SELECT - + 84 *
220e0 20 2d 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 63 6f   - + col0 * + co
220f0 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
22100 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 32 30  cor0..----..1020
22110 36 30 0d 0a 31 35 33 34 36 38 0d 0a 38 31 34 38  60..153468..8148
22120 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
22130 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
22140 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
22150 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 37 32  owsort label-772
22160 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d  ..SELECT ALL - -
22170 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 43 4f   COUNT( * ) + CO
22180 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
22190 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
221a0 0d 0a 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..6....skipif my
221b0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
221c0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
221d0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 37 32 0d  wsort label-772.
221e0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20  .SELECT ALL - - 
221f0 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 43 4f  COUNT ( * ) + CO
22200 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
22210 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
22220 2d 0d 0a 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -..6....onlyif m
22230 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
22240 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
22250 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77   ..query III row
22260 73 6f 72 74 20 6c 61 62 65 6c 2d 37 37 33 0d 0a  sort label-773..
22270 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
22280 2d 20 63 6f 6c 30 20 2a 20 31 34 20 2a 20 2d 20  - col0 * 14 * - 
22290 63 6f 6c 32 20 2f 20 2b 20 63 6f 6c 32 20 2b 20  col2 / + col2 + 
222a0 63 6f 6c 30 20 2b 20 63 6f 6c 31 20 2a 20 2b 20  col0 + col1 * + 
222b0 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 31 20 2b 20  col2 * - col1 + 
222c0 2b 20 32 36 20 2a 20 2d 20 2d 20 43 41 53 54 28  + 26 * - - CAST(
222d0 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
222e0 29 20 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 32 20  ) AS col2, col2 
222f0 41 53 20 63 6f 6c 32 2c 20 2b 20 2d 20 37 33 20  AS col2, + - 73 
22300 2a 20 2d 20 2d 20 34 31 20 41 53 20 63 6f 6c 32  * - - 41 AS col2
22310 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
22320 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  r0..----..9 valu
22330 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 65 37  es hashing to e7
22340 65 61 63 35 64 61 36 37 35 35 37 37 63 31 37 63  eac5da675577c17c
22350 64 64 34 62 63 65 63 37 34 30 39 34 34 32 0d 0a  dd4bcec7409442..
22360 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
22370 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
22380 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
22390 72 74 20 6c 61 62 65 6c 2d 37 37 33 0d 0a 53 45  rt label-773..SE
223a0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
223b0 63 6f 6c 30 20 2a 20 31 34 20 2a 20 2d 20 63 6f  col0 * 14 * - co
223c0 6c 32 20 2f 20 2b 20 63 6f 6c 32 20 2b 20 63 6f  l2 / + col2 + co
223d0 6c 30 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 63 6f  l0 + col1 * + co
223e0 6c 32 20 2a 20 2d 20 63 6f 6c 31 20 2b 20 2b 20  l2 * - col1 + + 
223f0 32 36 20 2a 20 2d 20 2d 20 43 41 53 54 20 28 20  26 * - - CAST ( 
22400 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
22410 29 20 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 32 20  ) AS col2, col2 
22420 41 53 20 63 6f 6c 32 2c 20 2b 20 2d 20 37 33 20  AS col2, + - 73 
22430 2a 20 2d 20 2d 20 34 31 20 41 53 20 63 6f 6c 32  * - - 41 AS col2
22440 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
22450 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  r0..----..9 valu
22460 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 65 37  es hashing to e7
22470 65 61 63 35 64 61 36 37 35 35 37 37 63 31 37 63  eac5da675577c17c
22480 64 64 34 62 63 65 63 37 34 30 39 34 34 32 0d 0a  dd4bcec7409442..
22490 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
224a0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
224b0 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45  OM tab0 cor0 WHE
224c0 52 45 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 2d 20  RE - col0 * + - 
224d0 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col1 IS NOT NULL
224e0 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
224f0 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34   hashing to c4b4
22500 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30  2765dff94eaaa460
22510 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a  40e537fb43b7....
22520 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
22530 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2b  .SELECT - col1 +
22540 20 2d 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c   - + col0 AS col
22550 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
22560 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 38 0d  or0..----..-108.
22570 0a 2d 39 36 0d 0a 2d 39 38 0d 0a 0d 0a 71 75 65  .-96..-98....que
22580 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
22590 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
225a0 20 63 6f 6c 31 2c 20 2d 20 28 20 63 6f 6c 30 20   col1, - ( col0 
225b0 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  ) FROM tab1..---
225c0 2d 0d 0a 31 34 0d 0a 2d 35 31 0d 0a 34 37 0d 0a  -..14..-51..47..
225d0 2d 39 31 0d 0a 35 0d 0a 2d 38 35 0d 0a 0d 0a 71  -91..5..-85....q
225e0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
225f0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
22600 2b 20 35 38 20 2a 20 2d 20 63 6f 6c 30 20 41 53  + 58 * - col0 AS
22610 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d   col2 FROM tab2.
22620 0a 2d 2d 2d 2d 0d 0a 2d 32 36 36 38 0d 0a 2d 33  .----..-2668..-3
22630 37 31 32 0d 0a 2d 34 33 35 30 0d 0a 0d 0a 71 75  712..-4350....qu
22640 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
22650 45 4c 45 43 54 20 2d 20 35 32 20 41 53 20 63 6f  ELECT - 52 AS co
22660 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45  l0 FROM tab0 WHE
22670 52 45 20 4e 55 4c 4c 20 3c 3d 20 4e 55 4c 4c 0d  RE NULL <= NULL.
22680 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
22690 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
226a0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
226b0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
226c0 6c 2d 37 37 39 0d 0a 53 45 4c 45 43 54 20 41 4c  l-779..SELECT AL
226d0 4c 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41  L + COUNT( * ) A
226e0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
226f0 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 2d 20 36   WHERE NOT + - 6
22700 32 20 42 45 54 57 45 45 4e 20 2d 20 63 6f 6c 30  2 BETWEEN - col0
22710 20 2a 20 2b 20 63 6f 6c 32 20 41 4e 44 20 63 6f   * + col2 AND co
22720 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73  l1..----..0....s
22730 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
22740 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
22750 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
22760 62 65 6c 2d 37 37 39 0d 0a 53 45 4c 45 43 54 20  bel-779..SELECT 
22770 41 4c 4c 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  ALL + COUNT ( * 
22780 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
22790 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  ab0 WHERE NOT + 
227a0 2d 20 36 32 20 42 45 54 57 45 45 4e 20 2d 20 63  - 62 BETWEEN - c
227b0 6f 6c 30 20 2a 20 2b 20 63 6f 6c 32 20 41 4e 44  ol0 * + col2 AND
227c0 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   col1..----..0..
227d0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
227e0 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
227f0 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
22800 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
22810 65 6c 2d 37 38 30 0d 0a 53 45 4c 45 43 54 20 41  el-780..SELECT A
22820 4c 4c 20 63 6f 6c 30 20 2a 20 63 6f 6c 31 20 44  LL col0 * col1 D
22830 49 56 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20  IV col0 AS col2 
22840 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
22850 0a 35 31 0d 0a 36 37 0d 0a 37 37 0d 0a 0d 0a 73  .51..67..77....s
22860 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
22870 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
22880 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
22890 62 65 6c 2d 37 38 30 0d 0a 53 45 4c 45 43 54 20  bel-780..SELECT 
228a0 41 4c 4c 20 63 6f 6c 30 20 2a 20 63 6f 6c 31 20  ALL col0 * col1 
228b0 2f 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46  / col0 AS col2 F
228c0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
228d0 35 31 0d 0a 36 37 0d 0a 37 37 0d 0a 0d 0a 71 75  51..67..77....qu
228e0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
228f0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
22900 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 31 20 2a   col2 * + col1 *
22910 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20   + col0 AS col2 
22920 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
22930 0a 31 39 37 31 32 30 0d 0a 32 39 31 34 35 30 0d  .197120..291450.
22940 0a 35 33 39 35 38 0d 0a 0d 0a 71 75 65 72 79 20  .53958....query 
22950 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
22960 43 54 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 2c  CT col2 AS col1,
22970 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52   col1 AS col0 FR
22980 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 55  OM tab0 WHERE NU
22990 4c 4c 20 3d 20 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d  LL = + col2..---
229a0 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
229b0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
229c0 54 49 4e 43 54 20 2b 20 2b 20 38 36 20 46 52 4f  TINCT + + 86 FRO
229d0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
229e0 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20 42 45  HERE NOT col1 BE
229f0 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e  TWEEN NULL AND N
22a00 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
22a10 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
22a20 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
22a30 33 35 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  35 AS col0 FROM 
22a40 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
22a50 52 45 20 4e 55 4c 4c 20 3e 3d 20 4e 55 4c 4c 0d  RE NULL >= NULL.
22a60 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
22a70 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
22a80 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
22a90 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
22aa0 6c 2d 37 38 35 0d 0a 53 45 4c 45 43 54 20 44 49  l-785..SELECT DI
22ab0 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 28 20  STINCT - COUNT( 
22ac0 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  * ) AS col1 FROM
22ad0 20 74 61 62 32 20 63 6f 72 30 20 43 52 4f 53 53   tab2 cor0 CROSS
22ae0 20 4a 4f 49 4e 20 74 61 62 30 20 63 6f 72 31 20   JOIN tab0 cor1 
22af0 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49  WHERE NOT NULL I
22b00 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  S NULL..----..0.
22b10 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
22b20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
22b30 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
22b40 74 20 6c 61 62 65 6c 2d 37 38 35 0d 0a 53 45 4c  t label-785..SEL
22b50 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43  ECT DISTINCT - C
22b60 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
22b70 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72  l1 FROM tab2 cor
22b80 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62  0 CROSS JOIN tab
22b90 30 20 63 6f 72 31 20 57 48 45 52 45 20 4e 4f 54  0 cor1 WHERE NOT
22ba0 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d   NULL IS NULL..-
22bb0 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20  ---..0....query 
22bc0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
22bd0 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
22be0 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
22bf0 45 20 4e 4f 54 20 63 6f 6c 31 20 2a 20 2d 20 2d  E NOT col1 * - -
22c00 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d   col0 IS NULL..-
22c10 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
22c20 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38 61  shing to 75c998a
22c30 61 35 33 61 63 38 33 32 31 38 63 62 66 32 66 65  a53ac83218cbf2fe
22c40 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 71 75 65  b962d0a49....que
22c50 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
22c60 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
22c70 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  * FROM tab1 AS c
22c80 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f  or0 WHERE NOT co
22c90 6c 31 20 2b 20 2d 20 2d 20 63 6f 6c 30 20 2a 20  l1 + - - col0 * 
22ca0 2d 20 63 6f 6c 30 20 2a 20 2d 20 2b 20 63 6f 6c  - col0 * - + col
22cb0 31 20 2a 20 2d 20 28 20 63 6f 6c 31 20 29 20 2a  1 * - ( col1 ) *
22cc0 20 36 36 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d   66 IS NULL..---
22cd0 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
22ce0 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31  ing to c6c0a4111
22cf0 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65  b36d04dbc811a11e
22d00 34 64 35 34 63 61 64 0d 0a 0d 0a 73 6b 69 70 69  4d54cad....skipi
22d10 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
22d20 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
22d30 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
22d40 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
22d50 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
22d60 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
22d70 2d 20 2b 20 33 38 20 63 6f 6c 31 20 46 52 4f 4d  - + 38 col1 FROM
22d80 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab0 cor0..----
22d90 0d 0a 2d 33 38 0d 0a 2d 33 38 0d 0a 2d 33 38 0d  ..-38..-38..-38.
22da0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
22db0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
22dc0 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
22dd0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d  cor0 WHERE NOT -
22de0 20 33 37 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d   37 IS NOT NULL.
22df0 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
22e00 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
22e10 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
22e20 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
22e30 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
22e40 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
22e50 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2a  t..SELECT col2 *
22e60 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 2d 20 63 6f   + col1 * + - co
22e70 6c 30 20 2a 20 2b 20 63 6f 6c 32 20 63 6f 6c 32  l0 * + col2 col2
22e80 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
22e90 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 37 39 34  r0..----..-14794
22ea0 32 35 0d 0a 2d 31 39 37 37 36 38 34 38 0d 0a 2d  25..-19776848..-
22eb0 36 35 38 30 32 32 34 0d 0a 0d 0a 6f 6e 6c 79 69  6580224....onlyi
22ec0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
22ed0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
22ee0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
22ef0 62 65 6c 2d 37 39 31 0d 0a 53 45 4c 45 43 54 20  bel-791..SELECT 
22f00 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 53 55 4d  DISTINCT - - SUM
22f10 28 20 41 4c 4c 20 2b 20 39 32 20 29 20 46 52 4f  ( ALL + 92 ) FRO
22f20 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
22f30 2d 2d 2d 2d 0d 0a 32 37 36 0d 0a 0d 0a 73 6b 69  ----..276....ski
22f40 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
22f50 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
22f60 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
22f70 6c 2d 37 39 31 0d 0a 53 45 4c 45 43 54 20 44 49  l-791..SELECT DI
22f80 53 54 49 4e 43 54 20 2d 20 2d 20 53 55 4d 20 28  STINCT - - SUM (
22f90 20 41 4c 4c 20 2b 20 39 32 20 29 20 46 52 4f 4d   ALL + 92 ) FROM
22fa0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
22fb0 2d 2d 2d 0d 0a 32 37 36 0d 0a 0d 0a 6f 6e 6c 79  ---..276....only
22fc0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
22fd0 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
22fe0 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
22ff0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 39 32  owsort label-792
23000 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 37  ..SELECT ALL + 7
23010 33 20 2f 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f  3 / - col0 AS co
23020 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l0 FROM tab2 AS 
23030 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b  cor0 WHERE NOT +
23040 20 63 6f 6c 31 20 3c 3e 20 2b 20 39 33 20 2a 20   col1 <> + 93 * 
23050 43 41 53 54 28 20 2b 20 63 6f 6c 30 20 41 53 20  CAST( + col0 AS 
23060 53 49 47 4e 45 44 20 29 0d 0a 2d 2d 2d 2d 0d 0a  SIGNED )..----..
23070 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
23080 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
23090 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
230a0 20 6c 61 62 65 6c 2d 37 39 32 0d 0a 53 45 4c 45   label-792..SELE
230b0 43 54 20 41 4c 4c 20 2b 20 37 33 20 2f 20 2d 20  CT ALL + 73 / - 
230c0 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f  col0 AS col0 FRO
230d0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
230e0 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 31 20  HERE NOT + col1 
230f0 3c 3e 20 2b 20 39 33 20 2a 20 43 41 53 54 20 28  <> + 93 * CAST (
23100 20 2b 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47   + col0 AS INTEG
23110 45 52 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  ER )..----....on
23120 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
23130 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
23140 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
23150 20 6c 61 62 65 6c 2d 37 39 33 0d 0a 53 45 4c 45   label-793..SELE
23160 43 54 20 53 55 4d 28 20 44 49 53 54 49 4e 43 54  CT SUM( DISTINCT
23170 20 2b 20 63 6f 6c 31 20 29 20 2a 20 2b 20 2b 20   + col1 ) * + + 
23180 32 35 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  25 AS col0 FROM 
23190 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 35 37 35  tab0..----..2575
231a0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
231b0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
231c0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
231d0 72 74 20 6c 61 62 65 6c 2d 37 39 33 0d 0a 53 45  rt label-793..SE
231e0 4c 45 43 54 20 53 55 4d 20 28 20 44 49 53 54 49  LECT SUM ( DISTI
231f0 4e 43 54 20 2b 20 63 6f 6c 31 20 29 20 2a 20 2b  NCT + col1 ) * +
23200 20 2b 20 32 35 20 41 53 20 63 6f 6c 30 20 46 52   + 25 AS col0 FR
23210 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32  OM tab0..----..2
23220 35 37 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  575....query II 
23230 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
23240 41 4c 4c 20 2b 20 63 6f 6c 32 2c 20 63 6f 6c 32  ALL + col2, col2
23250 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
23260 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 31 30  b0..----..10..10
23270 0d 0a 34 37 0d 0a 34 37 0d 0a 39 39 0d 0a 39 39  ..47..47..99..99
23280 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
23290 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
232a0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
232b0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 39 35  owsort label-795
232c0 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20  ..SELECT COUNT( 
232d0 2a 20 29 20 2a 20 2b 20 2d 20 38 20 41 53 20 63  * ) * + - 8 AS c
232e0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
232f0 2d 2d 2d 0d 0a 2d 32 34 0d 0a 0d 0a 73 6b 69 70  ---..-24....skip
23300 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
23310 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
23320 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
23330 2d 37 39 35 0d 0a 53 45 4c 45 43 54 20 43 4f 55  -795..SELECT COU
23340 4e 54 20 28 20 2a 20 29 20 2a 20 2b 20 2d 20 38  NT ( * ) * + - 8
23350 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
23360 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 34 0d 0a 0d  b0..----..-24...
23370 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
23380 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
23390 4e 45 44 20 74 79 70 65 3a 20 44 45 43 49 4d 41  NED type: DECIMA
233a0 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  L type: ..query 
233b0 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
233c0 2d 37 39 36 0d 0a 53 45 4c 45 43 54 20 44 49 53  -796..SELECT DIS
233d0 54 49 4e 43 54 20 2b 20 34 32 20 41 53 20 63 6f  TINCT + 42 AS co
233e0 6c 30 2c 20 2d 20 35 39 20 2a 20 43 41 53 54 28  l0, - 59 * CAST(
233f0 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c   NULL AS DECIMAL
23400 20 29 20 2b 20 2b 20 63 6f 6c 32 20 2d 20 2d 20   ) + + col2 - - 
23410 2b 20 63 6f 6c 30 20 2a 20 63 6f 6c 32 20 2a 20  + col0 * col2 * 
23420 2b 20 2d 20 43 41 53 54 28 20 2b 20 34 32 20 41  + - CAST( + 42 A
23430 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20  S SIGNED ) FROM 
23440 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 34 32 0d 0a  tab1..----..42..
23450 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
23460 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
23470 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
23480 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 39  rowsort label-79
23490 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  6..SELECT DISTIN
234a0 43 54 20 2b 20 34 32 20 41 53 20 63 6f 6c 30 2c  CT + 42 AS col0,
234b0 20 2d 20 35 39 20 2a 20 43 41 53 54 20 28 20 4e   - 59 * CAST ( N
234c0 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 2b 20  ULL AS REAL ) + 
234d0 2b 20 63 6f 6c 32 20 2d 20 2d 20 2b 20 63 6f 6c  + col2 - - + col
234e0 30 20 2a 20 63 6f 6c 32 20 2a 20 2b 20 2d 20 43  0 * col2 * + - C
234f0 41 53 54 20 28 20 2b 20 34 32 20 41 53 20 49 4e  AST ( + 42 AS IN
23500 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62  TEGER ) FROM tab
23510 31 0d 0a 2d 2d 2d 2d 0d 0a 34 32 0d 0a 4e 55 4c  1..----..42..NUL
23520 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  L....onlyif mysq
23530 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
23540 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
23550 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 39  rowsort label-79
23560 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  7..SELECT DISTIN
23570 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20  CT + COUNT( * ) 
23580 2b 20 2b 20 35 32 20 2b 20 32 39 20 41 53 20 63  + + 52 + 29 AS c
23590 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
235a0 2d 2d 2d 0d 0a 38 34 0d 0a 0d 0a 73 6b 69 70 69  ---..84....skipi
235b0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
235c0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
235d0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
235e0 37 39 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  797..SELECT DIST
235f0 49 4e 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a  INCT + COUNT ( *
23600 20 29 20 2b 20 2b 20 35 32 20 2b 20 32 39 20 41   ) + + 52 + 29 A
23610 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
23620 0d 0a 2d 2d 2d 2d 0d 0a 38 34 0d 0a 0d 0a 6f 6e  ..----..84....on
23630 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
23640 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
23650 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
23660 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
23670 39 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  98..SELECT ALL -
23680 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 28 20 2b 20   + col2 + - ( + 
23690 63 6f 6c 30 20 29 20 44 49 56 20 2b 20 63 6f 6c  col0 ) DIV + col
236a0 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  2 AS col2 FROM t
236b0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
236c0 2d 0d 0a 2d 32 35 0d 0a 2d 34 31 0d 0a 2d 35 39  -..-25..-41..-59
236d0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
236e0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
236f0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
23700 72 74 20 6c 61 62 65 6c 2d 37 39 38 0d 0a 53 45  rt label-798..SE
23710 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 63 6f 6c  LECT ALL - + col
23720 32 20 2b 20 2d 20 28 20 2b 20 63 6f 6c 30 20 29  2 + - ( + col0 )
23730 20 2f 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c   / + col2 AS col
23740 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
23750 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35 0d 0a  or0..----..-25..
23760 2d 34 31 0d 0a 2d 35 39 0d 0a 0d 0a 71 75 65 72  -41..-59....quer
23770 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
23780 4c 45 43 54 20 63 6f 6c 30 2c 20 2b 20 63 6f 6c  LECT col0, + col
23790 32 20 2a 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f  2 * - col1 AS co
237a0 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
237b0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a  cor0..----..51..
237c0 2d 31 33 34 34 0d 0a 38 35 0d 0a 2d 32 39 35 0d  -1344..85..-295.
237d0 0a 39 31 0d 0a 2d 33 31 39 36 0d 0a 0d 0a 71 75  .91..-3196....qu
237e0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
237f0 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2a 20 2b  ELECT - col1 * +
23800 20 2b 20 35 20 46 52 4f 4d 20 74 61 62 32 20 41   + 5 FROM tab2 A
23810 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  S cor0..----..-2
23820 35 35 0d 0a 2d 33 33 35 0d 0a 2d 33 38 35 0d 0a  55..-335..-385..
23830 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
23840 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
23850 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 57  col2 FROM tab2 W
23860 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 42 45  HERE NOT NULL BE
23870 54 57 45 45 4e 20 63 6f 6c 31 20 41 4e 44 20 2b  TWEEN col1 AND +
23880 20 37 32 20 2b 20 2d 20 33 32 20 2b 20 2b 20 2d   72 + - 32 + + -
23890 20 38 34 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65   84..----....que
238a0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
238b0 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
238c0 62 30 20 57 48 45 52 45 20 2b 20 2d 20 28 20 63  b0 WHERE + - ( c
238d0 6f 6c 31 20 29 20 3e 3d 20 2d 20 63 6f 6c 31 20  ol1 ) >= - col1 
238e0 2b 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 2d 20 63  + - col2 * - - c
238f0 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  ol1..----..9 val
23900 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
23910 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61  4b42765dff94eaaa
23920 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d  46040e537fb43b7.
23930 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
23940 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
23950 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
23960 52 45 20 4e 4f 54 20 63 6f 6c 30 20 3c 20 4e 55  RE NOT col0 < NU
23970 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  LL..----....only
23980 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
23990 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
239a0 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
239b0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 30 34  owsort label-804
239c0 0d 0a 53 45 4c 45 43 54 20 33 31 20 2b 20 2d 20  ..SELECT 31 + - 
239d0 2b 20 63 6f 6c 32 20 44 49 56 20 2d 20 63 6f 6c  + col2 DIV - col
239e0 32 20 2b 20 2d 20 63 6f 6c 32 20 2a 20 63 6f 6c  2 + - col2 * col
239f0 30 20 2b 20 2d 20 35 38 20 41 53 20 63 6f 6c 30  0 + - 58 AS col0
23a00 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 20   FROM tab1 cor0 
23a10 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 55  WHERE NULL IS NU
23a20 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 39 32 32 0d  LL..----..-4922.
23a30 0a 2d 35 30 34 31 0d 0a 2d 36 32 31 34 0d 0a 0d  .-5041..-6214...
23a40 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
23a50 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
23a60 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
23a70 6c 61 62 65 6c 2d 38 30 34 0d 0a 53 45 4c 45 43  label-804..SELEC
23a80 54 20 33 31 20 2b 20 2d 20 2b 20 63 6f 6c 32 20  T 31 + - + col2 
23a90 2f 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c  / - col2 + - col
23aa0 32 20 2a 20 63 6f 6c 30 20 2b 20 2d 20 35 38 20  2 * col0 + - 58 
23ab0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
23ac0 31 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c  1 cor0 WHERE NUL
23ad0 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  L IS NULL..----.
23ae0 0a 2d 34 39 32 32 0d 0a 2d 35 30 34 31 0d 0a 2d  .-4922..-5041..-
23af0 36 32 31 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49  6214....query II
23b00 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
23b10 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53  T * FROM tab1 AS
23b20 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20 35 35   cor0 WHERE - 55
23b30 20 2a 20 2b 20 28 20 2b 20 63 6f 6c 32 20 29 20   * + ( + col2 ) 
23b40 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
23b50 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
23b60 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
23b70 39 32 20 2b 20 2b 20 39 38 20 41 53 20 63 6f 6c  92 + + 98 AS col
23b80 32 2c 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 32  2, col2 * - col2
23b90 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
23ba0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 30 0d 0a 2d  r0..----..190..-
23bb0 31 30 30 0d 0a 31 39 30 0d 0a 2d 32 32 30 39 0d  100..190..-2209.
23bc0 0a 31 39 30 0d 0a 2d 39 38 30 31 0d 0a 0d 0a 71  .190..-9801....q
23bd0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
23be0 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c  SELECT ALL + col
23bf0 31 20 2a 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 63  1 * - col0 + - c
23c00 6f 6c 31 20 2b 20 2b 20 63 6f 6c 30 20 2a 20 34  ol1 + + col0 * 4
23c10 33 20 2b 20 2d 20 39 31 20 2a 20 2b 20 2d 20 63  3 + - 91 * + - c
23c20 6f 6c 32 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20  ol2 + + col0 AS 
23c30 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
23c40 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34  S cor0..----..14
23c50 35 31 0d 0a 31 37 32 30 0d 0a 33 34 38 36 0d 0a  51..1720..3486..
23c60 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
23c70 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 28  rt..SELECT - + (
23c80 20 2d 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c   - col0 ) AS col
23c90 32 2c 20 63 6f 6c 31 20 2a 20 2d 20 2b 20 63 6f  2, col1 * - + co
23ca0 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l1 AS col0 FROM 
23cb0 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
23cc0 2d 2d 0d 0a 31 35 0d 0a 2d 36 35 36 31 0d 0a 38  --..15..-6561..8
23cd0 37 0d 0a 2d 34 34 31 0d 0a 39 37 0d 0a 2d 31 0d  7..-441..97..-1.
23ce0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
23cf0 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
23d00 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
23d10 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
23d20 61 62 65 6c 2d 38 30 39 0d 0a 53 45 4c 45 43 54  abel-809..SELECT
23d30 20 41 4c 4c 20 2d 20 35 33 20 2b 20 2b 20 63 6f   ALL - 53 + + co
23d40 6c 31 20 2b 20 2b 20 28 20 2b 20 2d 20 33 31 20  l1 + + ( + - 31 
23d50 29 2c 20 63 6f 6c 31 20 2a 20 63 6f 6c 32 20 2a  ), col1 * col2 *
23d60 20 63 6f 6c 31 20 2b 20 63 6f 6c 32 20 44 49 56   col1 + col2 DIV
23d70 20 63 6f 6c 32 20 2b 20 2b 20 2d 20 63 6f 6c 32   col2 + + - col2
23d80 20 2b 20 28 20 2d 20 63 6f 6c 31 20 29 20 2b 20   + ( - col1 ) + 
23d90 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31  + - col2 AS col1
23da0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
23db0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37 0d 0a 32  r0..----..-17..2
23dc0 36 30 31 38 30 0d 0a 2d 33 33 0d 0a 35 39 37 32  60180..-33..5972
23dd0 37 0d 0a 2d 37 0d 0a 32 33 37 30 30 34 0d 0a 0d  7..-7..237004...
23de0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
23df0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
23e00 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
23e10 20 6c 61 62 65 6c 2d 38 30 39 0d 0a 53 45 4c 45   label-809..SELE
23e20 43 54 20 41 4c 4c 20 2d 20 35 33 20 2b 20 2b 20  CT ALL - 53 + + 
23e30 63 6f 6c 31 20 2b 20 2b 20 28 20 2b 20 2d 20 33  col1 + + ( + - 3
23e40 31 20 29 2c 20 63 6f 6c 31 20 2a 20 63 6f 6c 32  1 ), col1 * col2
23e50 20 2a 20 63 6f 6c 31 20 2b 20 63 6f 6c 32 20 2f   * col1 + col2 /
23e60 20 63 6f 6c 32 20 2b 20 2b 20 2d 20 63 6f 6c 32   col2 + + - col2
23e70 20 2b 20 28 20 2d 20 63 6f 6c 31 20 29 20 2b 20   + ( - col1 ) + 
23e80 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31  + - col2 AS col1
23e90 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
23ea0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37 0d 0a 32  r0..----..-17..2
23eb0 36 30 31 38 30 0d 0a 2d 33 33 0d 0a 35 39 37 32  60180..-33..5972
23ec0 37 0d 0a 2d 37 0d 0a 32 33 37 30 30 34 0d 0a 0d  7..-7..237004...
23ed0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
23ee0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
23ef0 54 20 2d 20 2d 20 34 30 20 46 52 4f 4d 20 74 61  T - - 40 FROM ta
23f00 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
23f10 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20 63 6f   NULL BETWEEN co
23f20 6c 30 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d  l0 AND NULL..---
23f30 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
23f40 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
23f50 54 49 4e 43 54 20 2b 20 2b 20 34 34 20 2d 20 63  TINCT + + 44 - c
23f60 6f 6c 30 20 2b 20 39 38 20 41 53 20 63 6f 6c 31  ol0 + 98 AS col1
23f70 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
23f80 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 35 37  r0..----..51..57
23f90 0d 0a 39 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..91....query I 
23fa0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
23fb0 41 4c 4c 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c  ALL col0 * + col
23fc0 32 20 2a 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  2 * col1 FROM ta
23fd0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 35 30 37 35 0d  b1..----..25075.
23fe0 0a 32 39 30 38 33 36 0d 0a 36 38 35 34 34 0d 0a  .290836..68544..
23ff0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
24000 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
24010 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 55  OM tab0 WHERE NU
24020 4c 4c 20 42 45 54 57 45 45 4e 20 34 39 20 41 4e  LL BETWEEN 49 AN
24030 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  D NULL..----....
24040 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
24050 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
24060 20 2b 20 34 39 20 2a 20 63 6f 6c 32 20 2d 20 2d   + 49 * col2 - -
24070 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   - col1 FROM tab
24080 32 0d 0a 2d 2d 2d 2d 0d 0a 31 30 37 36 0d 0a 31  2..----..1076..1
24090 38 38 33 0d 0a 32 37 37 35 0d 0a 0d 0a 71 75 65  883..2775....que
240a0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
240b0 4c 45 43 54 20 2d 20 2b 20 63 6f 6c 30 20 46 52  LECT - + col0 FR
240c0 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 55  OM tab2 WHERE NU
240d0 4c 4c 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  LL < NULL..----.
240e0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
240f0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
24100 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45   * FROM tab1 WHE
24110 52 45 20 4e 4f 54 20 39 34 20 49 53 20 4e 55 4c  RE NOT 94 IS NUL
24120 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  L..----..9 value
24130 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63  s hashing to c6c
24140 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38  0a4111b36d04dbc8
24150 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d  11a11e4d54cad...
24160 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
24170 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
24180 54 20 39 34 20 2a 20 2b 20 63 6f 6c 30 20 41 53  T 94 * + col0 AS
24190 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
241a0 0a 2d 2d 2d 2d 0d 0a 34 37 39 34 0d 0a 37 39 39  .----..4794..799
241b0 30 0d 0a 38 35 35 34 0d 0a 0d 0a 6f 6e 6c 79 69  0..8554....onlyi
241c0 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
241d0 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
241e0 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
241f0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 31 38 0d  wsort label-818.
24200 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f  .SELECT ALL + co
24210 6c 30 20 44 49 56 20 2d 20 2b 20 63 6f 6c 30 20  l0 DIV - + col0 
24220 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
24230 0a 2d 31 0d 0a 2d 31 0d 0a 2d 31 0d 0a 0d 0a 73  .-1..-1..-1....s
24240 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
24250 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
24260 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
24270 62 65 6c 2d 38 31 38 0d 0a 53 45 4c 45 43 54 20  bel-818..SELECT 
24280 41 4c 4c 20 2b 20 63 6f 6c 30 20 2f 20 2d 20 2b  ALL + col0 / - +
24290 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
242a0 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 31 0d 0a 2d  .----..-1..-1..-
242b0 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
242c0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
242d0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
242e0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 31  rowsort label-81
242f0 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  9..SELECT DISTIN
24300 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20  CT - COUNT( * ) 
24310 2a 20 2d 20 2d 20 35 35 20 46 52 4f 4d 20 74 61  * - - 55 FROM ta
24320 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 35 0d 0a  b0..----..-165..
24330 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
24340 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
24350 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
24360 20 6c 61 62 65 6c 2d 38 31 39 0d 0a 53 45 4c 45   label-819..SELE
24370 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43 4f  CT DISTINCT - CO
24380 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20 2d 20  UNT ( * ) * - - 
24390 35 35 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  55 FROM tab0..--
243a0 2d 2d 0d 0a 2d 31 36 35 0d 0a 0d 0a 71 75 65 72  --..-165....quer
243b0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
243c0 45 43 54 20 41 4c 4c 20 34 30 20 2b 20 63 6f 6c  ECT ALL 40 + col
243d0 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  2 AS col1 FROM t
243e0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 36 33 0d 0a 38  ab2..----..63..8
243f0 30 0d 0a 39 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  0..98....onlyif 
24400 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
24410 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
24420 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
24430 6f 72 74 20 6c 61 62 65 6c 2d 38 32 31 0d 0a 53  ort label-821..S
24440 45 4c 45 43 54 20 2d 20 43 41 53 54 28 20 4e 55  ELECT - CAST( NU
24450 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2d  LL AS SIGNED ) -
24460 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   + col1 FROM tab
24470 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  2..----..NULL..N
24480 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ULL..NULL....ski
24490 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
244a0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
244b0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
244c0 6c 2d 38 32 31 0d 0a 53 45 4c 45 43 54 20 2d 20  l-821..SELECT - 
244d0 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
244e0 4e 54 45 47 45 52 20 29 20 2d 20 2b 20 63 6f 6c  NTEGER ) - + col
244f0 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
24500 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
24510 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ULL....query I r
24520 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
24530 20 63 6f 6c 31 20 2a 20 39 34 20 2b 20 2b 20 2b   col1 * 94 + + +
24540 20 63 6f 6c 30 20 2a 20 2b 20 2d 20 63 6f 6c 31   col0 * + - col1
24550 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
24560 0d 0a 2d 32 30 33 30 0d 0a 2d 38 36 39 35 0d 0a  ..-2030..-8695..
24570 2d 38 39 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49  -895....query II
24580 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
24590 20 44 49 53 54 49 4e 43 54 20 2b 20 38 35 2c 20   DISTINCT + 85, 
245a0 35 33 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  53 AS col0 FROM 
245b0 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 4e  tab2 WHERE NOT N
245c0 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ULL IS NOT NULL.
245d0 0a 2d 2d 2d 2d 0d 0a 38 35 0d 0a 35 33 0d 0a 0d  .----..85..53...
245e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
245f0 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20  ..SELECT + col1 
24600 2a 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 2b 20 35  * - col2 + + + 5
24610 30 20 2b 20 39 30 20 41 53 20 63 6f 6c 31 20 46  0 + 90 AS col1 F
24620 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
24630 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 33 33 0d 0a 2d  ..----..-1033..-
24640 32 39 34 30 0d 0a 2d 33 37 34 36 0d 0a 0d 0a 73  2940..-3746....s
24650 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
24660 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
24670 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
24680 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
24690 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
246a0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
246b0 2d 20 28 20 2d 20 63 6f 6c 30 20 29 20 63 6f 6c  - ( - col0 ) col
246c0 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
246d0 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20  or0 WHERE NOT ( 
246e0 4e 55 4c 4c 20 29 20 49 53 20 4e 4f 54 20 4e 55  NULL ) IS NOT NU
246f0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 38 35  LL..----..51..85
24700 0d 0a 39 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..91....query I 
24710 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
24720 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  - col1 FROM tab0
24730 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
24740 4f 54 20 33 36 20 49 53 20 4e 4f 54 20 4e 55 4c  OT 36 IS NOT NUL
24750 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
24760 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
24770 45 43 54 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f  ECT + col0 AS co
24780 6c 31 2c 20 2b 20 28 20 36 38 20 29 20 41 53 20  l1, + ( 68 ) AS 
24790 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 63  col0 FROM tab1 c
247a0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 36  or0..----..51..6
247b0 38 0d 0a 38 35 0d 0a 36 38 0d 0a 39 31 0d 0a 36  8..85..68..91..6
247c0 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  8....query III r
247d0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
247e0 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
247f0 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
24800 45 20 4e 4f 54 20 63 6f 6c 31 20 2a 20 2b 20 63  E NOT col1 * + c
24810 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ol0 IS NULL..---
24820 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
24830 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31  ing to c6c0a4111
24840 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65  b36d04dbc811a11e
24850 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79  4d54cad....query
24860 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
24870 45 43 54 20 2d 20 35 31 20 2a 20 63 6f 6c 31 20  ECT - 51 * col1 
24880 2b 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30  + + col2 AS col0
24890 2c 20 2d 20 35 36 20 2b 20 2d 20 63 6f 6c 30 20  , - 56 + - col0 
248a0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
248b0 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  0 cor0..----..-1
248c0 30 36 31 0d 0a 2d 31 34 33 0d 0a 2d 34 30 38 34  061..-143..-4084
248d0 0d 0a 2d 37 31 0d 0a 34 38 0d 0a 2d 31 35 33 0d  ..-71..48..-153.
248e0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
248f0 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20 28  rt..SELECT - ( (
24900 20 2b 20 2d 20 28 20 63 6f 6c 31 20 29 20 29 20   + - ( col1 ) ) 
24910 29 20 2a 20 2b 20 33 38 20 41 53 20 63 6f 6c 31  ) * + 38 AS col1
24920 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
24930 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37 38 36 0d 0a  r0..----..1786..
24940 31 39 30 0d 0a 35 33 32 0d 0a 0d 0a 71 75 65 72  190..532....quer
24950 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
24960 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a  ELECT DISTINCT *
24970 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20   FROM tab2 cor0 
24980 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 3c  WHERE ( NULL ) <
24990 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  > NULL..----....
249a0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
249b0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
249c0 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
249d0 6f 72 74 20 6c 61 62 65 6c 2d 38 33 32 0d 0a 53  ort label-832..S
249e0 45 4c 45 43 54 20 2b 20 33 32 20 41 53 20 63 6f  ELECT + 32 AS co
249f0 6c 31 2c 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  l1, COUNT( * ) F
24a00 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
24a10 0d 0a 2d 2d 2d 2d 0d 0a 33 32 0d 0a 33 0d 0a 0d  ..----..32..3...
24a20 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
24a30 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
24a40 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
24a50 20 6c 61 62 65 6c 2d 38 33 32 0d 0a 53 45 4c 45   label-832..SELE
24a60 43 54 20 2b 20 33 32 20 41 53 20 63 6f 6c 31 2c  CT + 32 AS col1,
24a70 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f   COUNT ( * ) FRO
24a80 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
24a90 2d 2d 2d 2d 0d 0a 33 32 0d 0a 33 0d 0a 0d 0a 6f  ----..32..3....o
24aa0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
24ab0 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
24ac0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
24ad0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
24ae0 38 33 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  833..SELECT DIST
24af0 49 4e 43 54 20 2d 20 41 56 47 20 28 20 41 4c 4c  INCT - AVG ( ALL
24b00 20 2b 20 2d 20 63 6f 6c 31 20 29 20 2a 20 43 41   + - col1 ) * CA
24b10 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
24b20 45 44 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41  ED ) FROM tab1 A
24b30 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
24b40 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
24b50 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
24b60 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
24b70 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33 33 0d 0a  sort label-833..
24b80 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
24b90 2d 20 41 56 47 20 28 20 41 4c 4c 20 2b 20 2d 20  - AVG ( ALL + - 
24ba0 63 6f 6c 31 20 29 20 2a 20 43 41 53 54 20 28 20  col1 ) * CAST ( 
24bb0 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
24bc0 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
24bd0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
24be0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
24bf0 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
24c00 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
24c10 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
24c20 62 65 6c 2d 38 33 34 0d 0a 53 45 4c 45 43 54 20  bel-834..SELECT 
24c30 41 4c 4c 20 63 6f 6c 32 20 44 49 56 20 2b 20 34  ALL col2 DIV + 4
24c40 36 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  6 AS col2 FROM t
24c50 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31 0d  ab0..----..0..1.
24c60 0a 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .2....skipif mys
24c70 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
24c80 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
24c90 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33 34 0d 0a  sort label-834..
24ca0 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20  SELECT ALL col2 
24cb0 2f 20 2b 20 34 36 20 41 53 20 63 6f 6c 32 20 46  / + 46 AS col2 F
24cc0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
24cd0 30 0d 0a 31 0d 0a 32 0d 0a 0d 0a 71 75 65 72 79  0..1..2....query
24ce0 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
24cf0 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  ECT DISTINCT col
24d00 32 2c 20 2b 20 35 35 20 46 52 4f 4d 20 74 61 62  2, + 55 FROM tab
24d10 32 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 35 35 0d  2..----..23..55.
24d20 0a 34 30 0d 0a 35 35 0d 0a 35 38 0d 0a 35 35 0d  .40..55..58..55.
24d30 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
24d40 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
24d50 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
24d60 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
24d70 62 65 6c 2d 38 33 36 0d 0a 53 45 4c 45 43 54 20  bel-836..SELECT 
24d80 41 4c 4c 20 2d 20 38 38 20 44 49 56 20 2d 20 38  ALL - 88 DIV - 8
24d90 36 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  6 FROM tab0 AS c
24da0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31 0d  or0..----..1..1.
24db0 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .1....skipif mys
24dc0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
24dd0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
24de0 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33 36 0d 0a  sort label-836..
24df0 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 38 38 20  SELECT ALL - 88 
24e00 2f 20 2d 20 38 36 20 46 52 4f 4d 20 74 61 62 30  / - 86 FROM tab0
24e10 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
24e20 31 0d 0a 31 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69  1..1..1....skipi
24e30 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
24e40 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
24e50 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
24e60 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
24e70 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ns..query II row
24e80 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
24e90 54 49 4e 43 54 20 2d 20 36 30 20 63 6f 6c 30 2c  TINCT - 60 col0,
24ea0 20 38 30 20 2a 20 2b 20 63 6f 6c 31 20 46 52 4f   80 * + col1 FRO
24eb0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
24ec0 2d 2d 2d 2d 0d 0a 2d 36 30 0d 0a 31 36 38 30 0d  ----..-60..1680.
24ed0 0a 2d 36 30 0d 0a 36 34 38 30 0d 0a 2d 36 30 0d  .-60..6480..-60.
24ee0 0a 38 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  .80....query II 
24ef0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
24f00 41 4c 4c 20 2b 20 2d 20 32 2c 20 2d 20 37 20 41  ALL + - 2, - 7 A
24f10 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
24f20 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
24f30 2d 32 0d 0a 2d 37 0d 0a 2d 32 0d 0a 2d 37 0d 0a  -2..-7..-2..-7..
24f40 2d 32 0d 0a 2d 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  -2..-7....onlyif
24f50 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
24f60 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
24f70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
24f80 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33 39 0d 0a  sort label-839..
24f90 53 45 4c 45 43 54 20 63 6f 6c 30 20 63 6f 6c 30  SELECT col0 col0
24fa0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
24fb0 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63  r0 WHERE NOT + c
24fc0 6f 6c 30 20 2b 20 2b 20 43 41 53 54 28 20 4e 55  ol0 + + CAST( NU
24fd0 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 49  LL AS SIGNED ) I
24fe0 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  S NULL..----....
24ff0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
25000 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73  ot compatible..s
25010 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
25020 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
25030 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
25040 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
25050 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
25060 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33  rowsort label-83
25070 39 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 63  9..SELECT col0 c
25080 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
25090 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
250a0 2b 20 63 6f 6c 30 20 2b 20 2b 20 43 41 53 54 20  + col0 + + CAST 
250b0 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
250c0 52 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  R ) IS NULL..---
250d0 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  -....query III r
250e0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
250f0 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
25100 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
25110 45 20 4e 4f 54 20 4e 55 4c 4c 20 42 45 54 57 45  E NOT NULL BETWE
25120 45 4e 20 28 20 63 6f 6c 30 20 29 20 2f 20 2d 20  EN ( col0 ) / - 
25130 2d 20 63 6f 6c 31 20 41 4e 44 20 4e 55 4c 4c 0d  - col1 AND NULL.
25140 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
25150 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
25160 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
25170 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
25180 6c 2d 38 34 31 0d 0a 53 45 4c 45 43 54 20 41 4c  l-841..SELECT AL
25190 4c 20 43 4f 55 4e 54 28 20 2d 20 28 20 33 34 20  L COUNT( - ( 34 
251a0 29 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ) ) FROM tab0 AS
251b0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   cor0..----..3..
251c0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
251d0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
251e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
251f0 20 6c 61 62 65 6c 2d 38 34 31 0d 0a 53 45 4c 45   label-841..SELE
25200 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20 28 20 2d  CT ALL COUNT ( -
25210 20 28 20 33 34 20 29 20 29 20 46 52 4f 4d 20 74   ( 34 ) ) FROM t
25220 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
25230 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -..3....query I 
25240 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
25250 41 4c 4c 20 2d 20 2b 20 38 33 20 46 52 4f 4d 20  ALL - + 83 FROM 
25260 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
25270 52 45 20 4e 4f 54 20 63 6f 6c 31 20 2a 20 2d 20  RE NOT col1 * - 
25280 2d 20 30 20 2a 20 2d 20 2b 20 31 35 20 2a 20 2d  - 0 * - + 15 * -
25290 20 2b 20 32 33 20 49 53 20 4e 4f 54 20 4e 55 4c   + 23 IS NOT NUL
252a0 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
252b0 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
252c0 45 43 54 20 41 4c 4c 20 2d 20 2d 20 63 6f 6c 30  ECT ALL - - col0
252d0 20 41 53 20 63 6f 6c 31 2c 20 2d 20 63 6f 6c 32   AS col1, - col2
252e0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
252f0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
25300 0d 0a 31 35 0d 0a 2d 34 37 0d 0a 38 37 0d 0a 2d  ..15..-47..87..-
25310 31 30 0d 0a 39 37 0d 0a 2d 39 39 0d 0a 0d 0a 71  10..97..-99....q
25320 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
25330 53 45 4c 45 43 54 20 41 4c 4c 20 35 35 20 41 53  SELECT ALL 55 AS
25340 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
25350 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 35 0d 0a  cor0..----..55..
25360 35 35 0d 0a 35 35 0d 0a 0d 0a 6f 6e 6c 79 69 66  55..55....onlyif
25370 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
25380 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
25390 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  n: ..query II ro
253a0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34 35 0d  wsort label-845.
253b0 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 44 49 56  .SELECT col1 DIV
253c0 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 2c 20 2b   col1 AS col2, +
253d0 20 35 37 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d   57 FROM tab2..-
253e0 2d 2d 2d 0d 0a 31 0d 0a 35 37 0d 0a 31 0d 0a 35  ---..1..57..1..5
253f0 37 0d 0a 31 0d 0a 35 37 0d 0a 0d 0a 73 6b 69 70  7..1..57....skip
25400 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
25410 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
25420 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
25430 6c 2d 38 34 35 0d 0a 53 45 4c 45 43 54 20 63 6f  l-845..SELECT co
25440 6c 31 20 2f 20 63 6f 6c 31 20 41 53 20 63 6f 6c  l1 / col1 AS col
25450 32 2c 20 2b 20 35 37 20 46 52 4f 4d 20 74 61 62  2, + 57 FROM tab
25460 32 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 35 37 0d 0a  2..----..1..57..
25470 31 0d 0a 35 37 0d 0a 31 0d 0a 35 37 0d 0a 0d 0a  1..57..1..57....
25480 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
25490 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72  AST syntax: aggr
254a0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49  egate syntax: SI
254b0 47 4e 45 44 20 74 79 70 65 3a 20 44 49 56 20 66  GNED type: DIV f
254c0 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
254d0 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
254e0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34 36  owsort label-846
254f0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d  ..SELECT ALL + M
25500 49 4e 28 20 44 49 53 54 49 4e 43 54 20 2d 20 38  IN( DISTINCT - 8
25510 33 20 29 20 44 49 56 20 2b 20 4d 49 4e 28 20 41  3 ) DIV + MIN( A
25520 4c 4c 20 28 20 2b 20 43 41 53 54 28 20 32 20 41  LL ( + CAST( 2 A
25530 53 20 53 49 47 4e 45 44 20 29 20 29 20 29 20 41  S SIGNED ) ) ) A
25540 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
25550 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 31 0d 0a 0d 0a 73  ..----..-41....s
25560 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
25570 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
25580 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
25590 62 65 6c 2d 38 34 36 0d 0a 53 45 4c 45 43 54 20  bel-846..SELECT 
255a0 41 4c 4c 20 2b 20 4d 49 4e 20 28 20 44 49 53 54  ALL + MIN ( DIST
255b0 49 4e 43 54 20 2d 20 38 33 20 29 20 2f 20 2b 20  INCT - 83 ) / + 
255c0 4d 49 4e 20 28 20 41 4c 4c 20 28 20 2b 20 43 41  MIN ( ALL ( + CA
255d0 53 54 20 28 20 32 20 41 53 20 49 4e 54 45 47 45  ST ( 2 AS INTEGE
255e0 52 20 29 20 29 20 29 20 41 53 20 63 6f 6c 30 20  R ) ) ) AS col0 
255f0 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
25600 0a 2d 34 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-41....onlyif m
25610 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
25620 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
25630 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
25640 2d 38 34 37 0d 0a 53 45 4c 45 43 54 20 4d 41 58  -847..SELECT MAX
25650 28 20 2d 20 37 36 20 29 20 2a 20 2b 20 32 35 20  ( - 76 ) * + 25 
25660 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
25670 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 30 30 0d 0a  1..----..-1900..
25680 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
25690 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
256a0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
256b0 20 6c 61 62 65 6c 2d 38 34 37 0d 0a 53 45 4c 45   label-847..SELE
256c0 43 54 20 4d 41 58 20 28 20 2d 20 37 36 20 29 20  CT MAX ( - 76 ) 
256d0 2a 20 2b 20 32 35 20 41 53 20 63 6f 6c 31 20 46  * + 25 AS col1 F
256e0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
256f0 2d 31 39 30 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  -1900....skipif 
25700 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
25710 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
25720 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
25730 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
25740 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
25750 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
25760 2b 20 35 36 20 63 6f 6c 32 20 46 52 4f 4d 20 74  + 56 col2 FROM t
25770 61 62 30 20 57 48 45 52 45 20 2d 20 63 6f 6c 32  ab0 WHERE - col2
25780 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e 55 4c   NOT BETWEEN NUL
25790 4c 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  L AND NULL..----
257a0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
257b0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
257c0 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
257d0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
257e0 20 6c 61 62 65 6c 2d 38 34 39 0d 0a 53 45 4c 45   label-849..SELE
257f0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57  CT * FROM tab0 W
25800 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20 2d 20  HERE NOT col1 - 
25810 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
25820 47 4e 45 44 20 29 20 49 53 20 4e 4f 54 20 4e 55  GNED ) IS NOT NU
25830 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  LL..----..9 valu
25840 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34  es hashing to c4
25850 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34  b42765dff94eaaa4
25860 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a  6040e537fb43b7..
25870 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
25880 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
25890 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
258a0 72 74 20 6c 61 62 65 6c 2d 38 34 39 0d 0a 53 45  rt label-849..SE
258b0 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
258c0 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20   WHERE NOT col1 
258d0 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
258e0 20 49 4e 54 45 47 45 52 20 29 20 49 53 20 4e 4f   INTEGER ) IS NO
258f0 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20  T NULL..----..9 
25900 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
25910 6f 20 63 34 62 34 32 37 36 35 64 66 66 39 34 65  o c4b42765dff94e
25920 61 61 61 34 36 30 34 30 65 35 33 37 66 62 34 33  aaa46040e537fb43
25930 62 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  b7....skipif pos
25940 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
25950 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
25960 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
25970 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
25980 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
25990 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2b 20  SELECT + col1 + 
259a0 2d 20 2b 20 36 36 20 2a 20 2b 20 39 37 20 2a 20  - + 66 * + 97 * 
259b0 2d 20 38 32 20 63 6f 6c 31 20 46 52 4f 4d 20 74  - 82 col1 FROM t
259c0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 32 34 39 36  ab1..----..52496
259d0 39 0d 0a 35 32 34 39 37 38 0d 0a 35 32 35 30 31  9..524978..52501
259e0 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  1....skipif post
259f0 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
25a00 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
25a10 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
25a20 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
25a30 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
25a40 45 4c 45 43 54 20 2d 20 2d 20 37 30 20 2b 20 2d  ELECT - - 70 + -
25a50 20 2b 20 38 39 20 63 6f 6c 32 20 46 52 4f 4d 20   + 89 col2 FROM 
25a60 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
25a70 2d 2d 0d 0a 2d 31 39 0d 0a 2d 31 39 0d 0a 2d 31  --..-19..-19..-1
25a80 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  9....onlyif mysq
25a90 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
25aa0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
25ab0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 35  rowsort label-85
25ac0 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  2..SELECT ALL + 
25ad0 28 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 29  ( - COUNT( * ) )
25ae0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
25af0 72 30 20 57 48 45 52 45 20 2d 20 34 30 20 2b 20  r0 WHERE - 40 + 
25b00 63 6f 6c 31 20 42 45 54 57 45 45 4e 20 63 6f 6c  col1 BETWEEN col
25b10 30 20 41 4e 44 20 2b 20 63 6f 6c 31 20 2b 20 2d  0 AND + col1 + -
25b20 20 63 6f 6c 31 20 2d 20 2b 20 38 31 0d 0a 2d 2d   col1 - + 81..--
25b30 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..0....skipif 
25b40 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
25b50 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
25b60 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 35  rowsort label-85
25b70 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  2..SELECT ALL + 
25b80 28 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ( - COUNT ( * ) 
25b90 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  ) FROM tab2 AS c
25ba0 6f 72 30 20 57 48 45 52 45 20 2d 20 34 30 20 2b  or0 WHERE - 40 +
25bb0 20 63 6f 6c 31 20 42 45 54 57 45 45 4e 20 63 6f   col1 BETWEEN co
25bc0 6c 30 20 41 4e 44 20 2b 20 63 6f 6c 31 20 2b 20  l0 AND + col1 + 
25bd0 2d 20 63 6f 6c 31 20 2d 20 2b 20 38 31 0d 0a 2d  - col1 - + 81..-
25be0 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20  ---..0....query 
25bf0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
25c00 54 20 41 4c 4c 20 63 6f 6c 31 20 2b 20 63 6f 6c  T ALL col1 + col
25c10 32 20 2a 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30  2 * col2 AS col0
25c20 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
25c30 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 34 38 36 0d 0a  r0..----..3486..
25c40 34 36 37 31 0d 0a 39 32 33 30 0d 0a 0d 0a 71 75  4671..9230....qu
25c50 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
25c60 45 4c 45 43 54 20 32 36 20 2a 20 35 36 20 46 52  ELECT 26 * 56 FR
25c70 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
25c80 34 35 36 0d 0a 31 34 35 36 0d 0a 31 34 35 36 0d  456..1456..1456.
25c90 0a 0d 0a 71 75 65 72 79 20 49 49 49 49 49 49 20  ...query IIIIII 
25ca0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
25cb0 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  * FROM tab2 AS c
25cc0 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
25cd0 61 62 30 20 63 6f 72 31 20 57 48 45 52 45 20 28  ab0 cor1 WHERE (
25ce0 20 4e 55 4c 4c 20 29 20 49 53 20 4e 4f 54 20 4e   NULL ) IS NOT N
25cf0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
25d00 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
25d10 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
25d20 6c 30 20 2b 20 2d 20 2b 20 36 20 2a 20 2d 20 37  l0 + - + 6 * - 7
25d30 34 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  4 FROM tab0 AS c
25d40 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 35 39 0d 0a  or0..----..459..
25d50 35 33 31 0d 0a 35 34 31 0d 0a 0d 0a 71 75 65 72  531..541....quer
25d60 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
25d70 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
25d80 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
25d90 45 52 45 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 63  ERE - col2 * + c
25da0 6f 6c 32 20 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  ol2 > NULL..----
25db0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
25dc0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
25dd0 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 2d 20 2b  TINCT - col2 - +
25de0 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 2c 20 63   col2 AS col1, c
25df0 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol0 AS col1 FROM
25e00 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31   tab1..----..-11
25e10 38 0d 0a 38 35 0d 0a 2d 31 33 36 0d 0a 39 31 0d  8..85..-136..91.
25e20 0a 2d 31 39 32 0d 0a 35 31 0d 0a 0d 0a 71 75 65  .-192..51....que
25e30 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
25e40 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
25e50 62 32 20 57 48 45 52 45 20 2d 20 39 37 20 2f 20  b2 WHERE - 97 / 
25e60 28 20 2d 20 37 30 20 29 20 2d 20 2b 20 2b 20 35  ( - 70 ) - + + 5
25e70 34 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2b 20  4 NOT BETWEEN + 
25e80 63 6f 6c 30 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d  col0 AND NULL..-
25e90 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
25ea0 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38 61  shing to 75c998a
25eb0 61 35 33 61 63 38 33 32 31 38 63 62 66 32 66 65  a53ac83218cbf2fe
25ec0 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 6f 6e 6c  b962d0a49....onl
25ed0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
25ee0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
25ef0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
25f00 20 6c 61 62 65 6c 2d 38 36 30 0d 0a 53 45 4c 45   label-860..SELE
25f10 43 54 20 41 4c 4c 20 2b 20 37 30 20 2b 20 2b 20  CT ALL + 70 + + 
25f20 2b 20 33 33 20 41 53 20 63 6f 6c 30 2c 20 36 37  + 33 AS col0, 67
25f30 20 2d 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20   - + + COUNT( * 
25f40 29 20 2b 20 2b 20 32 39 20 46 52 4f 4d 20 74 61  ) + + 29 FROM ta
25f50 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 30 33 0d 0a 39  b1..----..103..9
25f60 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
25f70 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
25f80 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
25f90 73 6f 72 74 20 6c 61 62 65 6c 2d 38 36 30 0d 0a  sort label-860..
25fa0 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 37 30 20  SELECT ALL + 70 
25fb0 2b 20 2b 20 2b 20 33 33 20 41 53 20 63 6f 6c 30  + + + 33 AS col0
25fc0 2c 20 36 37 20 2d 20 2b 20 2b 20 43 4f 55 4e 54  , 67 - + + COUNT
25fd0 20 28 20 2a 20 29 20 2b 20 2b 20 32 39 20 46 52   ( * ) + + 29 FR
25fe0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab1..----..1
25ff0 30 33 0d 0a 39 33 0d 0a 0d 0a 6f 6e 6c 79 69 66  03..93....onlyif
26000 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
26010 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
26020 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  n: ..query II ro
26030 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 36 31 0d  wsort label-861.
26040 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2b  .SELECT - col0 +
26050 20 2d 20 35 35 2c 20 2b 20 63 6f 6c 32 20 44 49   - 55, + col2 DI
26060 56 20 2b 20 36 32 20 41 53 20 63 6f 6c 32 20 46  V + 62 AS col2 F
26070 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
26080 2d 31 30 31 0d 0a 30 0d 0a 2d 31 31 39 0d 0a 30  -101..0..-119..0
26090 0d 0a 2d 31 33 30 0d 0a 30 0d 0a 0d 0a 73 6b 69  ..-130..0....ski
260a0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
260b0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
260c0 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
260d0 65 6c 2d 38 36 31 0d 0a 53 45 4c 45 43 54 20 2d  el-861..SELECT -
260e0 20 63 6f 6c 30 20 2b 20 2d 20 35 35 2c 20 2b 20   col0 + - 55, + 
260f0 63 6f 6c 32 20 2f 20 2b 20 36 32 20 41 53 20 63  col2 / + 62 AS c
26100 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
26110 2d 2d 2d 0d 0a 2d 31 30 31 0d 0a 30 0d 0a 2d 31  ---..-101..0..-1
26120 31 39 0d 0a 30 0d 0a 2d 31 33 30 0d 0a 30 0d 0a  19..0..-130..0..
26130 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
26140 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
26150 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
26160 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
26170 65 6c 2d 38 36 32 0d 0a 53 45 4c 45 43 54 20 44  el-862..SELECT D
26180 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 2d 20 2d  ISTINCT col2 - -
26190 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   - CAST( NULL AS
261a0 20 53 49 47 4e 45 44 20 29 20 2b 20 2d 20 2d 20   SIGNED ) + - - 
261b0 63 6f 6c 32 20 2d 20 2d 20 2b 20 63 6f 6c 30 20  col2 - - + col0 
261c0 2b 20 2b 20 63 6f 6c 31 20 2f 20 63 6f 6c 32 20  + + col1 / col2 
261d0 2a 20 2b 20 33 38 20 46 52 4f 4d 20 74 61 62 31  * + 38 FROM tab1
261e0 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
261f0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
26200 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
26210 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
26220 61 62 65 6c 2d 38 36 32 0d 0a 53 45 4c 45 43 54  abel-862..SELECT
26230 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 2d   DISTINCT col2 -
26240 20 2d 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c   - - CAST ( NULL
26250 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20   AS INTEGER ) + 
26260 2d 20 2d 20 63 6f 6c 32 20 2d 20 2d 20 2b 20 63  - - col2 - - + c
26270 6f 6c 30 20 2b 20 2b 20 63 6f 6c 31 20 2f 20 63  ol0 + + col1 / c
26280 6f 6c 32 20 2a 20 2b 20 33 38 20 46 52 4f 4d 20  ol2 * + 38 FROM 
26290 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab1..----..NULL
262a0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
262b0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
262c0 2b 20 28 20 2d 20 2b 20 31 35 20 29 20 46 52 4f  + ( - + 15 ) FRO
262d0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab2..----..-1
262e0 35 0d 0a 2d 31 35 0d 0a 2d 31 35 0d 0a 0d 0a 71  5..-15..-15....q
262f0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
26300 53 45 4c 45 43 54 20 41 4c 4c 20 28 20 2b 20 33  SELECT ALL ( + 3
26310 32 20 29 20 2d 20 2b 20 63 6f 6c 31 20 46 52 4f  2 ) - + col1 FRO
26320 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34  M tab0..----..-4
26330 39 0d 0a 31 31 0d 0a 33 31 0d 0a 0d 0a 71 75 65  9..11..31....que
26340 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
26350 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
26360 28 20 2b 20 2b 20 35 35 20 29 20 41 53 20 63 6f  ( + + 55 ) AS co
26370 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l2 FROM tab1..--
26380 2d 2d 0d 0a 35 35 0d 0a 0d 0a 73 6b 69 70 69 66  --..55....skipif
26390 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
263a0 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
263b0 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
263c0 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
263d0 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
263e0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 33  rt..SELECT ALL 3
263f0 34 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  4 col2 FROM tab1
26400 0d 0a 2d 2d 2d 2d 0d 0a 33 34 0d 0a 33 34 0d 0a  ..----..34..34..
26410 33 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  34....query I ro
26420 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
26430 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 2a 20  STINCT + col1 * 
26440 2b 20 39 35 20 46 52 4f 4d 20 74 61 62 31 20 41  + 95 FROM tab1 A
26450 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33  S cor0..----..13
26460 33 30 0d 0a 34 34 36 35 0d 0a 34 37 35 0d 0a 0d  30..4465..475...
26470 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
26480 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
26490 54 20 2d 20 2b 20 28 20 35 20 29 20 2a 20 2d 20  T - + ( 5 ) * - 
264a0 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  - col1 FROM tab1
264b0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
264c0 2d 32 33 35 0d 0a 2d 32 35 0d 0a 2d 37 30 0d 0a  -235..-25..-70..
264d0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
264e0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
264f0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
26500 73 6f 72 74 20 6c 61 62 65 6c 2d 38 36 39 0d 0a  sort label-869..
26510 53 45 4c 45 43 54 20 28 20 2d 20 43 4f 55 4e 54  SELECT ( - COUNT
26520 28 20 2b 20 39 34 20 29 20 29 20 41 53 20 63 6f  ( + 94 ) ) AS co
26530 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l1 FROM tab0 cor
26540 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73  0..----..-3....s
26550 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
26560 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
26570 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
26580 62 65 6c 2d 38 36 39 0d 0a 53 45 4c 45 43 54 20  bel-869..SELECT 
26590 28 20 2d 20 43 4f 55 4e 54 20 28 20 2b 20 39 34  ( - COUNT ( + 94
265a0 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   ) ) AS col1 FRO
265b0 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
265c0 2d 0d 0a 2d 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -..-3....onlyif 
265d0 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
265e0 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
265f0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
26600 6f 72 74 20 6c 61 62 65 6c 2d 38 37 30 0d 0a 53  ort label-870..S
26610 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
26620 20 43 41 53 54 28 20 2b 20 63 6f 6c 32 20 41 53   CAST( + col2 AS
26630 20 53 49 47 4e 45 44 20 29 20 2a 20 33 39 20 46   SIGNED ) * 39 F
26640 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e  ROM tab1 WHERE N
26650 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ULL IS NULL..---
26660 2d 0d 0a 32 33 30 31 0d 0a 32 36 35 32 0d 0a 33  -..2301..2652..3
26670 37 34 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  744....skipif my
26680 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
26690 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
266a0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 37 30 0d  wsort label-870.
266b0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
266c0 20 2b 20 43 41 53 54 20 28 20 2b 20 63 6f 6c 32   + CAST ( + col2
266d0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20   AS INTEGER ) * 
266e0 33 39 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  39 FROM tab1 WHE
266f0 52 45 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d  RE NULL IS NULL.
26700 0a 2d 2d 2d 2d 0d 0a 32 33 30 31 0d 0a 32 36 35  .----..2301..265
26710 32 0d 0a 33 37 34 34 0d 0a 0d 0a 6f 6e 6c 79 69  2..3744....onlyi
26720 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
26730 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
26740 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
26750 62 65 6c 2d 38 37 31 0d 0a 53 45 4c 45 43 54 20  bel-871..SELECT 
26760 44 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54  DISTINCT + COUNT
26770 28 20 35 38 20 29 20 2a 20 31 39 20 2d 20 31 37  ( 58 ) * 19 - 17
26780 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
26790 0d 0a 34 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..40....skipif m
267a0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
267b0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
267c0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 37 31  owsort label-871
267d0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
267e0 54 20 2b 20 43 4f 55 4e 54 20 28 20 35 38 20 29  T + COUNT ( 58 )
267f0 20 2a 20 31 39 20 2d 20 31 37 20 46 52 4f 4d 20   * 19 - 17 FROM 
26800 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 30 0d 0a  tab2..----..40..
26810 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
26820 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
26830 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
26840 73 6f 72 74 20 6c 61 62 65 6c 2d 38 37 32 0d 0a  sort label-872..
26850 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d 49 4e  SELECT ALL + MIN
26860 28 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 29 20 41  ( ALL - col1 ) A
26870 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
26880 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 31 0d 0a 0d 0a 73  ..----..-81....s
26890 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
268a0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
268b0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
268c0 62 65 6c 2d 38 37 32 0d 0a 53 45 4c 45 43 54 20  bel-872..SELECT 
268d0 41 4c 4c 20 2b 20 4d 49 4e 20 28 20 41 4c 4c 20  ALL + MIN ( ALL 
268e0 2d 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 32  - col1 ) AS col2
268f0 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
26900 0d 0a 2d 38 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-81....onlyif 
26910 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
26920 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
26930 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
26940 6c 2d 38 37 33 0d 0a 53 45 4c 45 43 54 20 41 4c  l-873..SELECT AL
26950 4c 20 2d 20 53 55 4d 28 20 2b 20 63 6f 6c 30 20  L - SUM( + col0 
26960 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
26970 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32 37 0d  or0..----..-227.
26980 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
26990 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
269a0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
269b0 74 20 6c 61 62 65 6c 2d 38 37 33 0d 0a 53 45 4c  t label-873..SEL
269c0 45 43 54 20 41 4c 4c 20 2d 20 53 55 4d 20 28 20  ECT ALL - SUM ( 
269d0 2b 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61  + col0 ) FROM ta
269e0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
269f0 0d 0a 2d 32 32 37 0d 0a 0d 0a 71 75 65 72 79 20  ..-227....query 
26a00 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
26a10 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f  CT DISTINCT + co
26a20 6c 32 20 2b 20 2b 20 2d 20 28 20 2b 20 39 30 20  l2 + + - ( + 90 
26a30 29 20 41 53 20 63 6f 6c 30 2c 20 36 36 20 46 52  ) AS col0, 66 FR
26a40 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
26a50 0a 2d 2d 2d 2d 0d 0a 2d 34 33 0d 0a 36 36 0d 0a  .----..-43..66..
26a60 2d 38 30 0d 0a 36 36 0d 0a 39 0d 0a 36 36 0d 0a  -80..66..9..66..
26a70 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
26a80 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
26a90 31 32 20 2b 20 2d 20 63 6f 6c 32 20 46 52 4f 4d  12 + - col2 FROM
26aa0 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
26ab0 45 52 45 20 4e 4f 54 20 2b 20 38 37 20 49 53 20  ERE NOT + 87 IS 
26ac0 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
26ad0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
26ae0 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
26af0 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
26b00 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
26b10 65 6c 2d 38 37 36 0d 0a 53 45 4c 45 43 54 20 2b  el-876..SELECT +
26b20 20 34 36 20 2b 20 2b 20 63 6f 6c 30 20 2b 20 2b   46 + + col0 + +
26b30 20 37 30 20 44 49 56 20 2b 20 63 6f 6c 32 20 46   70 DIV + col2 F
26b40 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
26b50 0d 0a 2d 2d 2d 2d 0d 0a 31 33 32 0d 0a 31 33 38  ..----..132..138
26b60 0d 0a 39 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..97....skipif m
26b70 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
26b80 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
26b90 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 37 36  owsort label-876
26ba0 0d 0a 53 45 4c 45 43 54 20 2b 20 34 36 20 2b 20  ..SELECT + 46 + 
26bb0 2b 20 63 6f 6c 30 20 2b 20 2b 20 37 30 20 2f 20  + col0 + + 70 / 
26bc0 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  + col2 FROM tab1
26bd0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
26be0 31 33 32 0d 0a 31 33 38 0d 0a 39 37 0d 0a 0d 0a  132..138..97....
26bf0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
26c00 0a 53 45 4c 45 43 54 20 2b 20 34 32 20 2b 20 36  .SELECT + 42 + 6
26c10 32 20 2b 20 2b 20 2b 20 63 6f 6c 31 20 2f 20 2d  2 + + + col1 / -
26c20 20 31 36 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   16 AS col2 FROM
26c30 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
26c40 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 30 20 2a  ERE NOT + col0 *
26c50 20 28 20 2d 20 39 38 20 29 20 2b 20 2d 20 63 6f   ( - 98 ) + - co
26c60 6c 30 20 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  l0 = NULL..----.
26c70 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
26c80 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
26c90 20 63 6f 6c 32 20 2b 20 2b 20 2b 20 28 20 63 6f   col2 + + + ( co
26ca0 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41  l0 ) FROM tab2 A
26cb0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37  S cor0..----..17
26cc0 0d 0a 32 33 0d 0a 32 34 0d 0a 0d 0a 71 75 65 72  ..23..24....quer
26cd0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
26ce0 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 2a  ECT ALL + col0 *
26cf0 20 2b 20 2b 20 63 6f 6c 32 20 2d 20 2b 20 63 6f   + + col2 - + co
26d00 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
26d10 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 38 30 30  cor0..----..4800
26d20 0d 0a 34 39 35 36 0d 0a 36 31 32 30 0d 0a 0d 0a  ..4956..6120....
26d30 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
26d40 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
26d50 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
26d60 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
26d70 2d 38 38 30 0d 0a 53 45 4c 45 43 54 20 39 20 44  -880..SELECT 9 D
26d80 49 56 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c  IV - col1 AS col
26d90 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
26da0 2d 0d 0a 2d 31 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73  -..-1..0..0....s
26db0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
26dc0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
26dd0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
26de0 62 65 6c 2d 38 38 30 0d 0a 53 45 4c 45 43 54 20  bel-880..SELECT 
26df0 39 20 2f 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f  9 / - col1 AS co
26e00 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
26e10 2d 2d 0d 0a 2d 31 0d 0a 30 0d 0a 30 0d 0a 0d 0a  --..-1..0..0....
26e20 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
26e30 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
26e40 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
26e50 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
26e60 2d 38 38 31 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  -881..SELECT col
26e70 32 20 44 49 56 20 2b 20 28 20 2b 20 63 6f 6c 32  2 DIV + ( + col2
26e80 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
26e90 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31  tab1..----..1..1
26ea0 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..1....skipif my
26eb0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
26ec0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
26ed0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 38 31 0d  wsort label-881.
26ee0 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2f 20 2b  .SELECT col2 / +
26ef0 20 28 20 2b 20 63 6f 6c 32 20 29 20 41 53 20 63   ( + col2 ) AS c
26f00 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
26f10 2d 2d 2d 0d 0a 31 0d 0a 31 0d 0a 31 0d 0a 0d 0a  ---..1..1..1....
26f20 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
26f30 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
26f40 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
26f50 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
26f60 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
26f70 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
26f80 54 20 2b 20 63 6f 6c 32 20 2a 20 36 36 20 41 53  T + col2 * 66 AS
26f90 20 63 6f 6c 32 2c 20 63 6f 6c 32 20 63 6f 6c 32   col2, col2 col2
26fa0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
26fb0 0d 0a 33 38 39 34 0d 0a 35 39 0d 0a 34 34 38 38  ..3894..59..4488
26fc0 0d 0a 36 38 0d 0a 36 33 33 36 0d 0a 39 36 0d 0a  ..68..6336..96..
26fd0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
26fe0 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30  t..SELECT + col0
26ff0 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 63 6f   + - col0 * - co
27000 6c 31 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 38 36  l1 + col2 + - 86
27010 20 2a 20 63 6f 6c 31 20 2a 20 2b 20 28 20 2b 20   * col1 * + ( + 
27020 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 31  col2 ) FROM tab1
27030 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
27040 2d 31 31 34 37 32 33 0d 0a 2d 32 34 38 30 31 0d  -114723..-24801.
27050 0a 2d 32 37 30 34 32 30 0d 0a 0d 0a 71 75 65 72  .-270420....quer
27060 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
27070 45 43 54 20 41 4c 4c 20 2b 20 28 20 2d 20 2d 20  ECT ALL + ( - - 
27080 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 31  col0 ) FROM tab1
27090 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
270a0 35 31 0d 0a 38 35 0d 0a 39 31 0d 0a 0d 0a 71 75  51..85..91....qu
270b0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
270c0 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 32 33  ELECT ALL - - 23
270d0 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
270e0 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d   NULL IS NULL..-
270f0 2d 2d 2d 0d 0a 32 33 0d 0a 32 33 0d 0a 32 33 0d  ---..23..23..23.
27100 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
27110 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
27120 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
27130 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
27140 6c 61 62 65 6c 2d 38 38 36 0d 0a 53 45 4c 45 43  label-886..SELEC
27150 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48  T * FROM tab0 WH
27160 45 52 45 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 63  ERE + col2 + + c
27170 6f 6c 31 20 2a 20 63 6f 6c 32 20 3d 20 2b 20 43  ol1 * col2 = + C
27180 41 53 54 28 20 2b 20 37 20 41 53 20 53 49 47 4e  AST( + 7 AS SIGN
27190 45 44 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b  ED )..----....sk
271a0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
271b0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
271c0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
271d0 61 62 65 6c 2d 38 38 36 0d 0a 53 45 4c 45 43 54  abel-886..SELECT
271e0 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
271f0 52 45 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 63 6f  RE + col2 + + co
27200 6c 31 20 2a 20 63 6f 6c 32 20 3d 20 2b 20 43 41  l1 * col2 = + CA
27210 53 54 20 28 20 2b 20 37 20 41 53 20 49 4e 54 45  ST ( + 7 AS INTE
27220 47 45 52 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f  GER )..----....o
27230 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
27240 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
27250 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
27260 74 20 6c 61 62 65 6c 2d 38 38 37 0d 0a 53 45 4c  t label-887..SEL
27270 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 53  ECT DISTINCT - S
27280 55 4d 28 20 2d 20 2b 20 63 6f 6c 32 20 29 20 41  UM( - + col2 ) A
27290 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
272a0 0d 0a 2d 2d 2d 2d 0d 0a 32 32 33 0d 0a 0d 0a 73  ..----..223....s
272b0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
272c0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
272d0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
272e0 62 65 6c 2d 38 38 37 0d 0a 53 45 4c 45 43 54 20  bel-887..SELECT 
272f0 44 49 53 54 49 4e 43 54 20 2d 20 53 55 4d 20 28  DISTINCT - SUM (
27300 20 2d 20 2b 20 63 6f 6c 32 20 29 20 41 53 20 63   - + col2 ) AS c
27310 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol2 FROM tab1..-
27320 2d 2d 2d 0d 0a 32 32 33 0d 0a 0d 0a 6f 6e 6c 79  ---..223....only
27330 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
27340 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56  gate syntax: DIV
27350 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
27360 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
27370 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
27380 38 38 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 4d  88..SELECT + - M
27390 41 58 28 20 2b 20 32 37 20 29 20 44 49 56 20 2b  AX( + 27 ) DIV +
273a0 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
273b0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  ol0 FROM tab1 co
273c0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a  r0..----..-9....
273d0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
273e0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
273f0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
27400 61 62 65 6c 2d 38 38 38 0d 0a 53 45 4c 45 43 54  abel-888..SELECT
27410 20 2b 20 2d 20 4d 41 58 20 28 20 2b 20 32 37 20   + - MAX ( + 27 
27420 29 20 2f 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  ) / + COUNT ( * 
27430 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
27440 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab1 cor0..----..
27450 2d 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  -9....onlyif mys
27460 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
27470 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
27480 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
27490 38 38 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  889..SELECT DIST
274a0 49 4e 43 54 20 43 4f 55 4e 54 28 20 2b 20 2d 20  INCT COUNT( + - 
274b0 63 6f 6c 30 20 29 2c 20 2d 20 53 55 4d 28 20 44  col0 ), - SUM( D
274c0 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 29  ISTINCT - col2 )
274d0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
274e0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
274f0 0d 0a 33 0d 0a 31 35 36 0d 0a 0d 0a 73 6b 69 70  ..3..156....skip
27500 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
27510 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
27520 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
27530 6c 2d 38 38 39 0d 0a 53 45 4c 45 43 54 20 44 49  l-889..SELECT DI
27540 53 54 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 2b  STINCT COUNT ( +
27550 20 2d 20 63 6f 6c 30 20 29 2c 20 2d 20 53 55 4d   - col0 ), - SUM
27560 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f   ( DISTINCT - co
27570 6c 32 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  l2 ) AS col2 FRO
27580 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
27590 2d 2d 2d 2d 0d 0a 33 0d 0a 31 35 36 0d 0a 0d 0a  ----..3..156....
275a0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
275b0 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
275c0 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
275d0 45 52 45 20 2b 20 36 33 20 3c 20 28 20 4e 55 4c  ERE + 63 < ( NUL
275e0 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  L )..----....que
275f0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
27600 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 37 38  LECT DISTINCT 78
27610 20 2a 20 63 6f 6c 31 20 2b 20 2b 20 32 33 20 46   * col1 + + 23 F
27620 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d  ROM tab0 cor0..-
27630 2d 2d 2d 0d 0a 31 30 31 0d 0a 31 36 36 31 0d 0a  ---..101..1661..
27640 36 33 34 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  6341....onlyif m
27650 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
27660 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
27670 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
27680 72 74 20 6c 61 62 65 6c 2d 38 39 32 0d 0a 53 45  rt label-892..SE
27690 4c 45 43 54 20 2d 20 2d 20 28 20 2b 20 38 30 20  LECT - - ( + 80 
276a0 29 20 44 49 56 20 2d 20 2b 20 63 6f 6c 30 20 2b  ) DIV - + col0 +
276b0 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   + col1 FROM tab
276c0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
276d0 0a 35 30 0d 0a 36 36 0d 0a 37 36 0d 0a 0d 0a 73  .50..66..76....s
276e0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
276f0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
27700 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
27710 62 65 6c 2d 38 39 32 0d 0a 53 45 4c 45 43 54 20  bel-892..SELECT 
27720 2d 20 2d 20 28 20 2b 20 38 30 20 29 20 2f 20 2d  - - ( + 80 ) / -
27730 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 31   + col0 + + col1
27740 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
27750 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 30 0d 0a 36 36  r0..----..50..66
27760 0d 0a 37 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..76....onlyif m
27770 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
27780 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
27790 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
277a0 72 74 20 6c 61 62 65 6c 2d 38 39 33 0d 0a 53 45  rt label-893..SE
277b0 4c 45 43 54 20 43 41 53 54 28 20 2d 20 38 32 20  LECT CAST( - 82 
277c0 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 63 6f  AS SIGNED ) * co
277d0 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l2 AS col2 FROM 
277e0 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
277f0 2d 2d 0d 0a 2d 33 38 35 34 0d 0a 2d 38 31 31 38  --..-3854..-8118
27800 0d 0a 2d 38 32 30 0d 0a 0d 0a 73 6b 69 70 69 66  ..-820....skipif
27810 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
27820 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
27830 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
27840 39 33 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 20  93..SELECT CAST 
27850 28 20 2d 20 38 32 20 41 53 20 49 4e 54 45 47 45  ( - 82 AS INTEGE
27860 52 20 29 20 2a 20 63 6f 6c 32 20 41 53 20 63 6f  R ) * col2 AS co
27870 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
27880 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 38 35  cor0..----..-385
27890 34 0d 0a 2d 38 31 31 38 0d 0a 2d 38 32 30 0d 0a  4..-8118..-820..
278a0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
278b0 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30  t..SELECT - col0
278c0 20 2a 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 2b 20   * - col0 * - + 
278d0 36 33 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  63 FROM tab0 AS 
278e0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 31  cor0..----..-141
278f0 37 35 0d 0a 2d 34 37 36 38 34 37 0d 0a 2d 35 39  75..-476847..-59
27900 32 37 36 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20  2767....query I 
27910 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
27920 41 4c 4c 20 41 56 47 20 28 20 44 49 53 54 49 4e  ALL AVG ( DISTIN
27930 43 54 20 2b 20 2b 20 63 6f 6c 31 20 29 20 46 52  CT + + col1 ) FR
27940 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
27950 57 48 45 52 45 20 63 6f 6c 31 20 49 53 20 4e 55  WHERE col1 IS NU
27960 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  LL..----..NULL..
27970 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
27980 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30  t..SELECT + col0
27990 20 2d 20 2b 20 2d 20 34 35 20 41 53 20 63 6f 6c   - + - 45 AS col
279a0 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
279b0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 30 0d 0a  or0..----..130..
279c0 31 33 36 0d 0a 39 36 0d 0a 0d 0a 6f 6e 6c 79 69  136..96....onlyi
279d0 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
279e0 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65  yntax: aggregate
279f0 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
27a00 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
27a10 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 39  rowsort label-89
27a20 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f  7..SELECT ALL CO
27a30 55 4e 54 28 20 44 49 53 54 49 4e 43 54 20 2d 20  UNT( DISTINCT - 
27a40 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
27a50 47 4e 45 44 20 29 20 29 20 41 53 20 63 6f 6c 31  GNED ) ) AS col1
27a60 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
27a70 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
27a80 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
27a90 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
27aa0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 39 37 0d  wsort label-897.
27ab0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e  .SELECT ALL COUN
27ac0 54 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 43  T ( DISTINCT - C
27ad0 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
27ae0 54 45 47 45 52 20 29 20 29 20 41 53 20 63 6f 6c  TEGER ) ) AS col
27af0 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
27b00 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -..0....query I 
27b10 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
27b20 44 49 53 54 49 4e 43 54 20 2b 20 28 20 2d 20 2b  DISTINCT + ( - +
27b30 20 28 20 2d 20 31 37 20 29 20 29 20 41 53 20 63   ( - 17 ) ) AS c
27b40 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol0 FROM tab2..-
27b50 2d 2d 2d 0d 0a 31 37 0d 0a 0d 0a 71 75 65 72 79  ---..17....query
27b60 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
27b70 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
27b80 74 61 62 31 20 57 48 45 52 45 20 28 20 36 33 20  tab1 WHERE ( 63 
27b90 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  ) IS NOT NULL..-
27ba0 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
27bb0 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31  shing to c6c0a41
27bc0 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31  11b36d04dbc811a1
27bd0 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65  1e4d54cad....que
27be0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
27bf0 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
27c00 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54  M tab1 WHERE NOT
27c10 20 63 6f 6c 32 20 49 4e 20 28 20 2d 20 63 6f 6c   col2 IN ( - col
27c20 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  2 )..----..9 val
27c30 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
27c40 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64 62  6c0a4111b36d04db
27c50 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64 0d  c811a11e4d54cad.
27c60 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
27c70 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
27c80 4e 43 54 20 32 39 20 46 52 4f 4d 20 74 61 62 32  NCT 29 FROM tab2
27c90 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
27ca0 3d 20 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a  = + col2..----..
27cb0 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
27cc0 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
27cd0 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
27ce0 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
27cf0 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
27d00 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
27d10 45 43 54 20 41 4c 4c 20 35 34 20 41 53 20 63 6f  ECT ALL 54 AS co
27d20 6c 32 2c 20 63 6f 6c 32 20 63 6f 6c 31 20 46 52  l2, col2 col1 FR
27d30 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 35  OM tab0..----..5
27d40 34 0d 0a 31 30 0d 0a 35 34 0d 0a 34 37 0d 0a 35  4..10..54..47..5
27d50 34 0d 0a 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49  4..99....query I
27d60 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
27d70 20 63 6f 6c 30 20 2a 20 2d 20 28 20 2d 20 2d 20   col0 * - ( - - 
27d80 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 32 20 46  col1 ) AS col2 F
27d90 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
27da0 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 32 35 0d 0a 2d 34  ..----..-425..-4
27db0 32 37 37 0d 0a 2d 37 31 34 0d 0a 0d 0a 6f 6e 6c  277..-714....onl
27dc0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
27dd0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
27de0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
27df0 6c 61 62 65 6c 2d 39 30 34 0d 0a 53 45 4c 45 43  label-904..SELEC
27e00 54 20 41 4c 4c 20 2d 20 2d 20 34 32 20 2a 20 2b  T ALL - - 42 * +
27e10 20 53 55 4d 28 20 41 4c 4c 20 63 6f 6c 30 20 29   SUM( ALL col0 )
27e20 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
27e30 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 37 37 30 0d 0a  r0..----..7770..
27e40 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
27e50 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
27e60 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
27e70 20 6c 61 62 65 6c 2d 39 30 34 0d 0a 53 45 4c 45   label-904..SELE
27e80 43 54 20 41 4c 4c 20 2d 20 2d 20 34 32 20 2a 20  CT ALL - - 42 * 
27e90 2b 20 53 55 4d 20 28 20 41 4c 4c 20 63 6f 6c 30  + SUM ( ALL col0
27ea0 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
27eb0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 37 37 30  cor0..----..7770
27ec0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
27ed0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
27ee0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
27ef0 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f  0 WHERE NOT + co
27f00 6c 31 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2b  l1 NOT BETWEEN +
27f10 20 39 30 20 2b 20 63 6f 6c 30 20 41 4e 44 20 4e   90 + col0 AND N
27f20 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ULL..----....onl
27f30 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
27f40 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
27f50 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
27f60 6c 61 62 65 6c 2d 39 30 36 0d 0a 53 45 4c 45 43  label-906..SELEC
27f70 54 20 44 49 53 54 49 4e 43 54 20 32 36 20 2a 20  T DISTINCT 26 * 
27f80 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f  - COUNT( * ) FRO
27f90 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
27fa0 2d 2d 2d 2d 0d 0a 2d 37 38 0d 0a 0d 0a 73 6b 69  ----..-78....ski
27fb0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
27fc0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
27fd0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
27fe0 6c 2d 39 30 36 0d 0a 53 45 4c 45 43 54 20 44 49  l-906..SELECT DI
27ff0 53 54 49 4e 43 54 20 32 36 20 2a 20 2d 20 43 4f  STINCT 26 * - CO
28000 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
28010 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
28020 2d 0d 0a 2d 37 38 0d 0a 0d 0a 6f 6e 6c 79 69 66  -..-78....onlyif
28030 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
28040 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
28050 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
28060 65 6c 2d 39 30 37 0d 0a 53 45 4c 45 43 54 20 41  el-907..SELECT A
28070 4c 4c 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52  LL COUNT( * ) FR
28080 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 43 52 4f  OM tab0 cor0 CRO
28090 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20  SS JOIN tab0 AS 
280a0 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d  cor1..----..9...
280b0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
280c0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
280d0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
280e0 6c 61 62 65 6c 2d 39 30 37 0d 0a 53 45 4c 45 43  label-907..SELEC
280f0 54 20 41 4c 4c 20 43 4f 55 4e 54 20 28 20 2a 20  T ALL COUNT ( * 
28100 29 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  ) FROM tab0 cor0
28110 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30   CROSS JOIN tab0
28120 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
28130 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  9....query I row
28140 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
28150 20 2b 20 37 39 20 46 52 4f 4d 20 74 61 62 32 20   + 79 FROM tab2 
28160 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
28170 49 4e 20 74 61 62 31 20 41 53 20 63 6f 72 31 0d  IN tab1 AS cor1.
28180 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
28190 68 61 73 68 69 6e 67 20 74 6f 20 34 30 61 32 32  hashing to 40a22
281a0 36 31 63 61 61 32 63 35 63 64 62 66 64 38 30 39  61caa2c5cdbfd809
281b0 36 35 64 37 64 66 31 32 33 31 66 0d 0a 0d 0a 71  65d7df1231f....q
281c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
281d0 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 28 20 2d  SELECT ALL - ( -
281e0 20 39 38 20 29 20 2b 20 63 6f 6c 31 20 41 53 20   98 ) + col1 AS 
281f0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
28200 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34  S cor0..----..14
28210 39 0d 0a 31 36 35 0d 0a 31 37 35 0d 0a 0d 0a 71  9..165..175....q
28220 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
28230 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2a 20  SELECT - col0 * 
28240 2d 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32  - - col1 AS col2
28250 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
28260 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 34 36 0d  r0..----..-2346.
28270 0a 2d 34 39 32 38 0d 0a 2d 35 30 32 35 0d 0a 0d  .-4928..-5025...
28280 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
28290 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c  ..SELECT ALL col
282a0 31 20 2b 20 2b 20 38 38 20 41 53 20 63 6f 6c 31  1 + + 88 AS col1
282b0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
282c0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 32 0d 0a 31  r0..----..102..1
282d0 33 35 0d 0a 39 33 0d 0a 0d 0a 71 75 65 72 79 20  35..93....query 
282e0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
282f0 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 63  T DISTINCT - - c
28300 6f 6c 30 20 2b 20 2b 20 28 20 2b 20 63 6f 6c 32  ol0 + + ( + col2
28310 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
28320 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
28330 0a 31 39 36 0d 0a 36 32 0d 0a 39 37 0d 0a 0d 0a  .196..62..97....
28340 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
28350 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
28360 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
28370 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
28380 6c 2d 39 31 33 0d 0a 53 45 4c 45 43 54 20 44 49  l-913..SELECT DI
28390 53 54 49 4e 43 54 20 35 31 20 44 49 56 20 2d 20  STINCT 51 DIV - 
283a0 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 32 20 2b 20  col1 + - col2 + 
283b0 2b 20 63 6f 6c 30 20 63 6f 6c 30 2c 20 37 38 20  + col0 col0, 78 
283c0 44 49 56 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c  DIV col2 + - col
283d0 32 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  2 + col2 FROM ta
283e0 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
283f0 0d 0a 31 37 0d 0a 31 0d 0a 32 32 0d 0a 33 0d 0a  ..17..1..22..3..
28400 32 34 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  24..1....skipif 
28410 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
28420 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70  atible..skipif p
28430 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
28440 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
28450 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
28460 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
28470 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
28480 74 20 6c 61 62 65 6c 2d 39 31 33 0d 0a 53 45 4c  t label-913..SEL
28490 45 43 54 20 44 49 53 54 49 4e 43 54 20 35 31 20  ECT DISTINCT 51 
284a0 2f 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c  / - col1 + - col
284b0 32 20 2b 20 2b 20 63 6f 6c 30 20 63 6f 6c 30 2c  2 + + col0 col0,
284c0 20 37 38 20 2f 20 63 6f 6c 32 20 2b 20 2d 20 63   78 / col2 + - c
284d0 6f 6c 32 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20  ol2 + col2 FROM 
284e0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
284f0 2d 2d 0d 0a 31 37 0d 0a 31 0d 0a 32 32 0d 0a 33  --..17..1..22..3
28500 0d 0a 32 34 0d 0a 31 0d 0a 0d 0a 6f 6e 6c 79 69  ..24..1....onlyi
28510 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
28520 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
28530 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
28540 62 65 6c 2d 39 31 34 0d 0a 53 45 4c 45 43 54 20  bel-914..SELECT 
28550 44 49 53 54 49 4e 43 54 20 2b 20 4d 49 4e 28 20  DISTINCT + MIN( 
28560 2b 20 2b 20 63 6f 6c 31 20 29 20 2a 20 2b 20 2b  + + col1 ) * + +
28570 20 28 20 38 20 29 20 41 53 20 63 6f 6c 30 20 46   ( 8 ) AS col0 F
28580 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
28590 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c   WHERE NOT - col
285a0 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  0 IS NOT NULL..-
285b0 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ---..NULL....ski
285c0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
285d0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
285e0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
285f0 6c 2d 39 31 34 0d 0a 53 45 4c 45 43 54 20 44 49  l-914..SELECT DI
28600 53 54 49 4e 43 54 20 2b 20 4d 49 4e 20 28 20 2b  STINCT + MIN ( +
28610 20 2b 20 63 6f 6c 31 20 29 20 2a 20 2b 20 2b 20   + col1 ) * + + 
28620 28 20 38 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ( 8 ) AS col0 FR
28630 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
28640 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 30  WHERE NOT - col0
28650 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
28660 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72  --..NULL....quer
28670 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
28680 45 43 54 20 37 38 20 2b 20 2b 20 31 20 2a 20 2b  ECT 78 + + 1 * +
28690 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d   col2 FROM tab2.
286a0 0a 2d 2d 2d 2d 0d 0a 31 30 31 0d 0a 31 31 38 0d  .----..101..118.
286b0 0a 31 33 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .136....onlyif m
286c0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
286d0 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
286e0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
286f0 72 74 20 6c 61 62 65 6c 2d 39 31 36 0d 0a 53 45  rt label-916..SE
28700 4c 45 43 54 20 63 6f 6c 31 20 2a 20 43 41 53 54  LECT col1 * CAST
28710 28 20 2b 20 31 33 20 41 53 20 53 49 47 4e 45 44  ( + 13 AS SIGNED
28720 20 29 20 2b 20 2d 20 2d 20 63 6f 6c 31 20 41 53   ) + - - col1 AS
28730 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
28740 0a 2d 2d 2d 2d 0d 0a 31 30 37 38 0d 0a 37 31 34  .----..1078..714
28750 0d 0a 39 33 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..938....skipif 
28760 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
28770 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
28780 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 31  rowsort label-91
28790 36 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2a  6..SELECT col1 *
287a0 20 43 41 53 54 20 28 20 2b 20 31 33 20 41 53 20   CAST ( + 13 AS 
287b0 49 4e 54 45 47 45 52 20 29 20 2b 20 2d 20 2d 20  INTEGER ) + - - 
287c0 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f  col1 AS col0 FRO
287d0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 30  M tab2..----..10
287e0 37 38 0d 0a 37 31 34 0d 0a 39 33 38 0d 0a 0d 0a  78..714..938....
287f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
28800 0a 53 45 4c 45 43 54 20 32 36 20 2b 20 2b 20 2d  .SELECT 26 + + -
28810 20 63 6f 6c 31 20 2a 20 2d 20 2d 20 63 6f 6c 32   col1 * - - col2
28820 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
28830 0d 0a 2d 31 38 34 0d 0a 2d 33 37 38 31 0d 0a 2d  ..-184..-3781..-
28840 37 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  73....onlyif mys
28850 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
28860 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
28870 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
28880 31 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  18..SELECT ALL -
28890 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2d 20   - COUNT( * ) - 
288a0 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f  - COUNT( * ) FRO
288b0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
288c0 2d 2d 2d 2d 0d 0a 36 0d 0a 0d 0a 73 6b 69 70 69  ----..6....skipi
288d0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
288e0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
288f0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
28900 39 31 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  918..SELECT ALL 
28910 2d 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  - - COUNT ( * ) 
28920 2d 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  - - COUNT ( * ) 
28930 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
28940 30 0d 0a 2d 2d 2d 2d 0d 0a 36 0d 0a 0d 0a 71 75  0..----..6....qu
28950 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
28960 45 4c 45 43 54 20 41 4c 4c 20 36 39 20 2b 20 36  ELECT ALL 69 + 6
28970 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
28980 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 35 0d 0a 37 35  r0..----..75..75
28990 0d 0a 37 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..75....query I 
289a0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
289b0 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20  DISTINCT + col1 
289c0 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
289d0 4e 4f 54 20 2b 20 35 37 20 2f 20 2b 20 38 36 20  NOT + 57 / + 86 
289e0 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
289f0 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
28a00 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 33 33 20  sort..SELECT 33 
28a10 2b 20 33 34 20 41 53 20 63 6f 6c 30 20 46 52 4f  + 34 AS col0 FRO
28a20 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
28a30 2d 2d 2d 2d 0d 0a 36 37 0d 0a 36 37 0d 0a 36 37  ----..67..67..67
28a40 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
28a50 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
28a60 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
28a70 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 32 32  owsort label-922
28a80 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
28a90 54 20 2d 20 2b 20 35 31 20 2a 20 2b 20 4d 49 4e  T - + 51 * + MIN
28aa0 28 20 36 38 20 29 20 41 53 20 63 6f 6c 32 20 46  ( 68 ) AS col2 F
28ab0 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d  ROM tab1 cor0..-
28ac0 2d 2d 2d 0d 0a 2d 33 34 36 38 0d 0a 0d 0a 73 6b  ---..-3468....sk
28ad0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
28ae0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
28af0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
28b00 65 6c 2d 39 32 32 0d 0a 53 45 4c 45 43 54 20 44  el-922..SELECT D
28b10 49 53 54 49 4e 43 54 20 2d 20 2b 20 35 31 20 2a  ISTINCT - + 51 *
28b20 20 2b 20 4d 49 4e 20 28 20 36 38 20 29 20 41 53   + MIN ( 68 ) AS
28b30 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
28b40 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 34 36  cor0..----..-346
28b50 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  8....query III r
28b60 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
28b70 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
28b80 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  r0 WHERE NOT col
28b90 31 20 3d 20 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d  1 = - col0..----
28ba0 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
28bb0 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31 62  ng to c6c0a4111b
28bc0 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65 34  36d04dbc811a11e4
28bd0 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20  d54cad....query 
28be0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
28bf0 43 54 20 2d 20 2d 20 35 32 20 41 53 20 63 6f 6c  CT - - 52 AS col
28c00 32 2c 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 2b 20  2, - col1 * + + 
28c10 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
28c20 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 32  S cor0..----..52
28c30 0d 0a 2d 32 33 34 36 0d 0a 35 32 0d 0a 2d 34 39  ..-2346..52..-49
28c40 32 38 0d 0a 35 32 0d 0a 2d 35 30 32 35 0d 0a 0d  28..52..-5025...
28c50 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
28c60 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
28c70 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
28c80 6f 72 74 20 6c 61 62 65 6c 2d 39 32 35 0d 0a 53  ort label-925..S
28c90 45 4c 45 43 54 20 41 4c 4c 20 2d 20 28 20 2d 20  ELECT ALL - ( - 
28ca0 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 41 53 20  COUNT( * ) ) AS 
28cb0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
28cc0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  S cor0..----..3.
28cd0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
28ce0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
28cf0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
28d00 74 20 6c 61 62 65 6c 2d 39 32 35 0d 0a 53 45 4c  t label-925..SEL
28d10 45 43 54 20 41 4c 4c 20 2d 20 28 20 2d 20 43 4f  ECT ALL - ( - CO
28d20 55 4e 54 20 28 20 2a 20 29 20 29 20 41 53 20 63  UNT ( * ) ) AS c
28d30 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
28d40 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   cor0..----..3..
28d50 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
28d60 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
28d70 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
28d80 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
28d90 65 6c 2d 39 32 36 0d 0a 53 45 4c 45 43 54 20 2d  el-926..SELECT -
28da0 20 43 41 53 54 28 20 2d 20 31 38 20 41 53 20 53   CAST( - 18 AS S
28db0 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 30 20  IGNED ) AS col0 
28dc0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
28dd0 0a 31 38 0d 0a 31 38 0d 0a 31 38 0d 0a 0d 0a 73  .18..18..18....s
28de0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
28df0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
28e00 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
28e10 62 65 6c 2d 39 32 36 0d 0a 53 45 4c 45 43 54 20  bel-926..SELECT 
28e20 2d 20 43 41 53 54 20 28 20 2d 20 31 38 20 41 53  - CAST ( - 18 AS
28e30 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f   INTEGER ) AS co
28e40 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l0 FROM tab2..--
28e50 2d 2d 0d 0a 31 38 0d 0a 31 38 0d 0a 31 38 0d 0a  --..18..18..18..
28e60 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
28e70 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
28e80 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
28e90 73 6f 72 74 20 6c 61 62 65 6c 2d 39 32 37 0d 0a  sort label-927..
28ea0 53 45 4c 45 43 54 20 41 4c 4c 20 28 20 53 55 4d  SELECT ALL ( SUM
28eb0 28 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  ( DISTINCT - col
28ec0 31 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52  1 ) ) AS col1 FR
28ed0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
28ee0 31 30 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  103....skipif my
28ef0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
28f00 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
28f10 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 32 37 0d  wsort label-927.
28f20 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28 20 53 55  .SELECT ALL ( SU
28f30 4d 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 63  M ( DISTINCT - c
28f40 6f 6c 31 20 29 20 29 20 41 53 20 63 6f 6c 31 20  ol1 ) ) AS col1 
28f50 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
28f60 0a 2d 31 30 33 0d 0a 0d 0a 71 75 65 72 79 20 49  .-103....query I
28f70 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
28f80 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 41   DISTINCT col0 A
28f90 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
28fa0 20 57 48 45 52 45 20 2b 20 63 6f 6c 30 20 49 53   WHERE + col0 IS
28fb0 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
28fc0 0a 34 36 0d 0a 36 34 0d 0a 37 35 0d 0a 0d 0a 6f  .46..64..75....o
28fd0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
28fe0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
28ff0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
29000 74 20 6c 61 62 65 6c 2d 39 32 39 0d 0a 53 45 4c  t label-929..SEL
29010 45 43 54 20 41 4c 4c 20 2b 20 4d 41 58 28 20 44  ECT ALL + MAX( D
29020 49 53 54 49 4e 43 54 20 2d 20 34 36 20 29 20 46  ISTINCT - 46 ) F
29030 52 4f 4d 20 74 61 62 30 2c 20 74 61 62 30 20 63  ROM tab0, tab0 c
29040 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a  or0..----..-46..
29050 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
29060 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
29070 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
29080 20 6c 61 62 65 6c 2d 39 32 39 0d 0a 53 45 4c 45   label-929..SELE
29090 43 54 20 41 4c 4c 20 2b 20 4d 41 58 20 28 20 44  CT ALL + MAX ( D
290a0 49 53 54 49 4e 43 54 20 2d 20 34 36 20 29 20 46  ISTINCT - 46 ) F
290b0 52 4f 4d 20 74 61 62 30 2c 20 74 61 62 30 20 63  ROM tab0, tab0 c
290c0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a  or0..----..-46..
290d0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
290e0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
290f0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
29100 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 42  WHERE NOT NULL B
29110 45 54 57 45 45 4e 20 2b 20 63 6f 6c 30 20 2a 20  ETWEEN + col0 * 
29120 63 6f 6c 30 20 2a 20 2b 20 35 38 20 41 4e 44 20  col0 * + 58 AND 
29130 36 36 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  66..----....only
29140 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
29150 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
29160 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
29170 61 62 65 6c 2d 39 33 31 0d 0a 53 45 4c 45 43 54  abel-931..SELECT
29180 20 4d 49 4e 28 20 44 49 53 54 49 4e 43 54 20 39   MIN( DISTINCT 9
29190 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
291a0 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
291b0 0a 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .9....skipif mys
291c0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
291d0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
291e0 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33 31 0d 0a  sort label-931..
291f0 53 45 4c 45 43 54 20 4d 49 4e 20 28 20 44 49 53  SELECT MIN ( DIS
29200 54 49 4e 43 54 20 39 20 29 20 41 53 20 63 6f 6c  TINCT 9 ) AS col
29210 32 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  2 FROM tab0 cor0
29220 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 6f 6e 6c  ..----..9....onl
29230 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
29240 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
29250 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
29260 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33  rowsort label-93
29270 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  2..SELECT DISTIN
29280 43 54 20 2d 20 2b 20 28 20 2b 20 2d 20 63 6f 6c  CT - + ( + - col
29290 30 20 29 20 2a 20 43 41 53 54 28 20 4e 55 4c 4c  0 ) * CAST( NULL
292a0 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20   AS SIGNED ) AS 
292b0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 63  col2 FROM tab2 c
292c0 6f 72 30 20 57 48 45 52 45 20 2b 20 63 6f 6c 31  or0 WHERE + col1
292d0 20 2f 20 2d 20 63 6f 6c 32 20 49 53 20 4e 55 4c   / - col2 IS NUL
292e0 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  L..----....skipi
292f0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
29300 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
29310 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
29320 39 33 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  932..SELECT DIST
29330 49 4e 43 54 20 2d 20 2b 20 28 20 2b 20 2d 20 63  INCT - + ( + - c
29340 6f 6c 30 20 29 20 2a 20 43 41 53 54 20 28 20 4e  ol0 ) * CAST ( N
29350 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
29360 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
29370 62 32 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20  b2 cor0 WHERE + 
29380 63 6f 6c 31 20 2f 20 2d 20 63 6f 6c 32 20 49 53  col1 / - col2 IS
29390 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
293a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
293b0 53 45 4c 45 43 54 20 63 6f 6c 31 20 41 53 20 63  SELECT col1 AS c
293c0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
293d0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
293e0 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  NULL IS NULL..--
293f0 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
29400 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
29410 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
29420 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
29430 33 34 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 49 4e  34..SELECT + MIN
29440 28 20 44 49 53 54 49 4e 43 54 20 36 37 20 29 20  ( DISTINCT 67 ) 
29450 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
29460 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 37  S cor0..----..67
29470 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
29480 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
29490 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
294a0 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
294b0 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
294c0 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
294d0 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
294e0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
294f0 6c 2d 39 33 34 0d 0a 53 45 4c 45 43 54 20 2b 20  l-934..SELECT + 
29500 4d 49 4e 20 28 20 44 49 53 54 49 4e 43 54 20 36  MIN ( DISTINCT 6
29510 37 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  7 ) col1 FROM ta
29520 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
29530 0d 0a 36 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..67....query I 
29540 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
29550 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 31 35 20  DISTINCT + + 15 
29560 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
29570 30 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 49  0 WHERE ( NULL I
29580 53 20 4e 4f 54 20 4e 55 4c 4c 20 29 0d 0a 2d 2d  S NOT NULL )..--
29590 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
295a0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
295b0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
295c0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
295d0 33 36 0d 0a 53 45 4c 45 43 54 20 2d 20 31 34 20  36..SELECT - 14 
295e0 2a 20 2d 20 2d 20 38 35 20 2b 20 43 4f 55 4e 54  * - - 85 + COUNT
295f0 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ( * ) FROM tab2 
29600 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
29610 31 31 38 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  1187....skipif m
29620 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
29630 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
29640 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33 36  owsort label-936
29650 0d 0a 53 45 4c 45 43 54 20 2d 20 31 34 20 2a 20  ..SELECT - 14 * 
29660 2d 20 2d 20 38 35 20 2b 20 43 4f 55 4e 54 20 28  - - 85 + COUNT (
29670 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41   * ) FROM tab2 A
29680 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
29690 31 38 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  187....query I r
296a0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
296b0 49 53 54 49 4e 43 54 20 2b 20 39 35 20 2b 20 37  ISTINCT + 95 + 7
296c0 34 20 2a 20 2d 20 2b 20 63 6f 6c 31 20 2a 20 63  4 * - + col1 * c
296d0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
296e0 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20 63 6f   cor0 WHERE - co
296f0 6c 30 20 3e 20 2d 20 63 6f 6c 30 20 2f 20 2b 20  l0 > - col0 / + 
29700 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  col0..----....qu
29710 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
29720 45 4c 45 43 54 20 63 6f 6c 32 20 2b 20 36 33 20  ELECT col2 + 63 
29730 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
29740 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
29750 0a 31 32 32 0d 0a 31 33 31 0d 0a 31 35 39 0d 0a  .122..131..159..
29760 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
29770 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31  t..SELECT - col1
29780 20 2a 20 2b 20 33 39 20 46 52 4f 4d 20 74 61 62   * + 39 FROM tab
29790 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
297a0 0a 2d 31 39 38 39 0d 0a 2d 32 36 31 33 0d 0a 2d  .-1989..-2613..-
297b0 33 30 30 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20  3003....query I 
297c0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
297d0 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 63 6f 6c  DISTINCT + - col
297e0 30 20 2b 20 2d 20 63 6f 6c 30 20 2b 20 63 6f 6c  0 + - col0 + col
297f0 32 20 2a 20 30 20 2b 20 2b 20 63 6f 6c 31 20 46  2 * 0 + + col1 F
29800 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
29810 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 35 0d 0a 2d 31  ..----..-135..-1
29820 36 35 0d 0a 2d 38 38 0d 0a 0d 0a 6f 6e 6c 79 69  65..-88....onlyi
29830 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
29840 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
29850 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
29860 62 65 6c 2d 39 34 31 0d 0a 53 45 4c 45 43 54 20  bel-941..SELECT 
29870 4d 41 58 28 20 36 38 20 29 20 41 53 20 63 6f 6c  MAX( 68 ) AS col
29880 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
29890 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 38 0d 0a 0d  or0..----..68...
298a0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
298b0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
298c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
298d0 6c 61 62 65 6c 2d 39 34 31 0d 0a 53 45 4c 45 43  label-941..SELEC
298e0 54 20 4d 41 58 20 28 20 36 38 20 29 20 41 53 20  T MAX ( 68 ) AS 
298f0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
29900 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 38  S cor0..----..68
29910 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
29920 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
29930 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
29940 30 20 57 48 45 52 45 20 2d 20 63 6f 6c 32 20 2a  0 WHERE - col2 *
29950 20 2d 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d   - col2 IS NULL.
29960 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
29970 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
29980 54 20 2d 20 63 6f 6c 31 2c 20 28 20 2d 20 2b 20  T - col1, ( - + 
29990 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 32 20 46  col1 ) AS col2 F
299a0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
299b0 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 2d 35 31  ..----..-51..-51
299c0 0d 0a 2d 36 37 0d 0a 2d 36 37 0d 0a 2d 37 37 0d  ..-67..-67..-77.
299d0 0a 2d 37 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-77....onlyif m
299e0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
299f0 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
29a00 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77   ..query III row
29a10 73 6f 72 74 20 6c 61 62 65 6c 2d 39 34 34 0d 0a  sort label-944..
29a20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
29a30 62 32 20 57 48 45 52 45 20 2d 20 43 41 53 54 28  b2 WHERE - CAST(
29a40 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
29a50 29 20 2a 20 37 36 20 3c 3e 20 2b 20 2b 20 34 32  ) * 76 <> + + 42
29a60 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
29a70 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
29a80 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
29a90 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
29aa0 2d 39 34 34 0d 0a 53 45 4c 45 43 54 20 2a 20 46  -944..SELECT * F
29ab0 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 2d  ROM tab2 WHERE -
29ac0 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
29ad0 49 4e 54 45 47 45 52 20 29 20 2a 20 37 36 20 3c  INTEGER ) * 76 <
29ae0 3e 20 2b 20 2b 20 34 32 0d 0a 2d 2d 2d 2d 0d 0a  > + + 42..----..
29af0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
29b00 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
29b10 39 35 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45  95 FROM tab2 WHE
29b20 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 32 20 3d 20  RE NOT - col2 = 
29b30 2d 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 32 20  - col0 * - col2 
29b40 2a 20 2b 20 35 37 20 2b 20 28 20 38 31 20 29 0d  * + 57 + ( 81 ).
29b50 0a 2d 2d 2d 2d 0d 0a 39 35 0d 0a 39 35 0d 0a 39  .----..95..95..9
29b60 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  5....query I row
29b70 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
29b80 20 2b 20 30 20 2b 20 38 36 20 41 53 20 63 6f 6c   + 0 + 86 AS col
29b90 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
29ba0 2d 0d 0a 38 36 0d 0a 38 36 0d 0a 38 36 0d 0a 0d  -..86..86..86...
29bb0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
29bc0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 39  ..SELECT ALL + 9
29bd0 34 20 2a 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  4 * col1 FROM ta
29be0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 37 39 34 0d 0a  b2..----..4794..
29bf0 36 32 39 38 0d 0a 37 32 33 38 0d 0a 0d 0a 71 75  6298..7238....qu
29c00 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
29c10 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2a 20 31  ELECT + col1 * 1
29c20 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
29c30 2d 0d 0a 35 36 31 0d 0a 37 33 37 0d 0a 38 34 37  -..561..737..847
29c40 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
29c50 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b  sort..SELECT - +
29c60 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c 32 20 41 53   col1, + col2 AS
29c70 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
29c80 57 48 45 52 45 20 4e 55 4c 4c 20 3c 3d 20 2b 20  WHERE NULL <= + 
29c90 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  col2..----....qu
29ca0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
29cb0 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 2a  ELECT ALL col0 *
29cc0 20 2d 20 35 34 20 41 53 20 63 6f 6c 32 20 46 52   - 54 AS col2 FR
29cd0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
29ce0 32 34 38 34 0d 0a 2d 33 34 35 36 0d 0a 2d 34 30  2484..-3456..-40
29cf0 35 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  50....query I ro
29d00 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
29d10 4c 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 32 20  L col2 + - col2 
29d20 2b 20 2d 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20  + - - col0 FROM 
29d30 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a  tab1..----..51..
29d40 38 35 0d 0a 39 31 0d 0a 0d 0a 6f 6e 6c 79 69 66  85..91....onlyif
29d50 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
29d60 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79  ntax: DECIMAL ty
29d70 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20  pe: ..query III 
29d80 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 35  rowsort label-95
29d90 32 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  2..SELECT * FROM
29da0 20 74 61 62 31 20 57 48 45 52 45 20 63 6f 6c 31   tab1 WHERE col1
29db0 20 2a 20 63 6f 6c 32 20 2b 20 2b 20 2d 20 63 6f   * col2 + + - co
29dc0 6c 31 20 2a 20 2d 20 33 39 20 49 4e 20 28 20 2b  l1 * - 39 IN ( +
29dd0 20 63 6f 6c 32 2c 20 2b 20 28 20 63 6f 6c 31 20   col2, + ( col1 
29de0 29 2c 20 34 33 20 2d 20 2b 20 38 30 20 2b 20 2d  ), 43 - + 80 + -
29df0 20 63 6f 6c 30 20 2a 20 2d 20 43 41 53 54 28 20   col0 * - CAST( 
29e00 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20  NULL AS DECIMAL 
29e10 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  ) )..----....ski
29e20 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
29e30 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
29e40 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
29e50 62 65 6c 2d 39 35 32 0d 0a 53 45 4c 45 43 54 20  bel-952..SELECT 
29e60 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  * FROM tab1 WHER
29e70 45 20 63 6f 6c 31 20 2a 20 63 6f 6c 32 20 2b 20  E col1 * col2 + 
29e80 2b 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 33 39 20  + - col1 * - 39 
29e90 49 4e 20 28 20 2b 20 63 6f 6c 32 2c 20 2b 20 28  IN ( + col2, + (
29ea0 20 63 6f 6c 31 20 29 2c 20 34 33 20 2d 20 2b 20   col1 ), 43 - + 
29eb0 38 30 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 2d 20  80 + - col0 * - 
29ec0 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52  CAST ( NULL AS R
29ed0 45 41 4c 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d  EAL ) )..----...
29ee0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
29ef0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
29f00 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
29f10 6f 72 74 20 6c 61 62 65 6c 2d 39 35 33 0d 0a 53  ort label-953..S
29f20 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
29f30 20 39 39 20 2a 20 4d 49 4e 28 20 41 4c 4c 20 39   99 * MIN( ALL 9
29f40 35 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  5 ) AS col1 FROM
29f50 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 39 34 30   tab2..----..940
29f60 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  5....skipif mysq
29f70 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
29f80 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
29f90 6f 72 74 20 6c 61 62 65 6c 2d 39 35 33 0d 0a 53  ort label-953..S
29fa0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
29fb0 20 39 39 20 2a 20 4d 49 4e 20 28 20 41 4c 4c 20   99 * MIN ( ALL 
29fc0 39 35 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  95 ) AS col1 FRO
29fd0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 39 34  M tab2..----..94
29fe0 30 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  05....query I ro
29ff0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
2a000 2b 20 63 6f 6c 31 20 2d 20 2d 20 38 20 41 53 20  + col1 - - 8 AS 
2a010 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
2a020 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 39  S cor0..----..29
2a030 0d 0a 38 39 0d 0a 39 0d 0a 0d 0a 6f 6e 6c 79 69  ..89..9....onlyi
2a040 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
2a050 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
2a060 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
2a070 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 35 35 0d  wsort label-955.
2a080 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f  .SELECT ALL + co
2a090 6c 32 20 44 49 56 20 2b 20 63 6f 6c 31 20 2d 20  l2 DIV + col1 - 
2a0a0 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f  col2 AS col1 FRO
2a0b0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
2a0c0 2d 2d 2d 2d 0d 0a 2d 34 38 0d 0a 2d 36 37 0d 0a  ----..-48..-67..
2a0d0 2d 39 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -90....skipif my
2a0e0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2a0f0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
2a100 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 35 35 0d  wsort label-955.
2a110 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f  .SELECT ALL + co
2a120 6c 32 20 2f 20 2b 20 63 6f 6c 31 20 2d 20 63 6f  l2 / + col1 - co
2a130 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l2 AS col1 FROM 
2a140 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
2a150 2d 2d 0d 0a 2d 34 38 0d 0a 2d 36 37 0d 0a 2d 39  --..-48..-67..-9
2a160 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
2a170 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
2a180 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
2a190 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 35  rowsort label-95
2a1a0 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  6..SELECT DISTIN
2a1b0 43 54 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20  CT + + COUNT( * 
2a1c0 29 20 2b 20 2b 20 43 4f 55 4e 54 28 20 44 49 53  ) + + COUNT( DIS
2a1d0 54 49 4e 43 54 20 35 30 20 29 20 41 53 20 63 6f  TINCT 50 ) AS co
2a1e0 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
2a1f0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 0d 0a 0d  cor0..----..4...
2a200 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2a210 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2a220 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2a230 6c 61 62 65 6c 2d 39 35 36 0d 0a 53 45 4c 45 43  label-956..SELEC
2a240 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 43  T DISTINCT + + C
2a250 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2b 20 43  OUNT ( * ) + + C
2a260 4f 55 4e 54 20 28 20 44 49 53 54 49 4e 43 54 20  OUNT ( DISTINCT 
2a270 35 30 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  50 ) AS col1 FRO
2a280 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
2a290 2d 2d 2d 2d 0d 0a 34 0d 0a 0d 0a 73 6b 69 70 69  ----..4....skipi
2a2a0 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
2a2b0 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
2a2c0 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
2a2d0 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
2a2e0 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
2a2f0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20  ort..SELECT - + 
2a300 34 20 2b 20 2b 20 2d 20 38 33 20 63 6f 6c 31 20  4 + + - 83 col1 
2a310 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
2a320 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 37 0d 0a 2d 38  0..----..-87..-8
2a330 37 0d 0a 2d 38 37 0d 0a 0d 0a 71 75 65 72 79 20  7..-87....query 
2a340 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2a350 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20  T DISTINCT col2 
2a360 2a 20 2d 20 2d 20 63 6f 6c 31 20 2d 20 2b 20 2b  * - - col1 - + +
2a370 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52   col0 AS col1 FR
2a380 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
2a390 0a 2d 2d 2d 2d 0d 0a 31 32 33 0d 0a 32 0d 0a 33  .----..123..2..3
2a3a0 37 39 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  792....query I r
2a3b0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
2a3c0 49 53 54 49 4e 43 54 20 2d 20 31 39 20 2a 20 2b  ISTINCT - 19 * +
2a3d0 20 63 6f 6c 32 20 2b 20 39 20 41 53 20 63 6f 6c   col2 + 9 AS col
2a3e0 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
2a3f0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 31 32  or0..----..-1112
2a400 0d 0a 2d 31 32 38 33 0d 0a 2d 31 38 31 35 0d 0a  ..-1283..-1815..
2a410 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2a420 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 38 31  t..SELECT + + 81
2a430 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
2a440 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
2a450 20 4e 4f 54 20 2b 20 28 20 2b 20 33 30 20 29 20   NOT + ( + 30 ) 
2a460 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 38  IS NULL..----..8
2a470 31 0d 0a 38 31 0d 0a 38 31 0d 0a 0d 0a 6f 6e 6c  1..81..81....onl
2a480 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
2a490 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
2a4a0 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
2a4b0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 36  rowsort label-96
2a4c0 31 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 44  1..SELECT col0 D
2a4d0 49 56 20 2b 20 63 6f 6c 31 20 2b 20 31 33 20 41  IV + col1 + 13 A
2a4e0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
2a4f0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2a500 31 34 0d 0a 31 36 0d 0a 33 30 0d 0a 0d 0a 73 6b  14..16..30....sk
2a510 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2a520 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2a530 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2a540 65 6c 2d 39 36 31 0d 0a 53 45 4c 45 43 54 20 63  el-961..SELECT c
2a550 6f 6c 30 20 2f 20 2b 20 63 6f 6c 31 20 2b 20 31  ol0 / + col1 + 1
2a560 33 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  3 AS col2 FROM t
2a570 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
2a580 2d 0d 0a 31 34 0d 0a 31 36 0d 0a 33 30 0d 0a 0d  -..14..16..30...
2a590 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2a5a0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2a5b0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2a5c0 6f 72 74 20 6c 61 62 65 6c 2d 39 36 32 0d 0a 53  ort label-962..S
2a5d0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
2a5e0 20 2b 20 4d 49 4e 28 20 44 49 53 54 49 4e 43 54   + MIN( DISTINCT
2a5f0 20 2b 20 28 20 2b 20 2b 20 63 6f 6c 30 20 29 20   + ( + + col0 ) 
2a600 29 20 2a 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  ) * + COUNT( * )
2a610 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
2a620 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  b2 cor0..----..1
2a630 33 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  38....skipif mys
2a640 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2a650 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2a660 73 6f 72 74 20 6c 61 62 65 6c 2d 39 36 32 0d 0a  sort label-962..
2a670 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2a680 2b 20 2b 20 4d 49 4e 20 28 20 44 49 53 54 49 4e  + + MIN ( DISTIN
2a690 43 54 20 2b 20 28 20 2b 20 2b 20 63 6f 6c 30 20  CT + ( + + col0 
2a6a0 29 20 29 20 2a 20 2b 20 43 4f 55 4e 54 20 28 20  ) ) * + COUNT ( 
2a6b0 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  * ) AS col1 FROM
2a6c0 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
2a6d0 0d 0a 31 33 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..138....onlyif 
2a6e0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
2a6f0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
2a700 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
2a710 65 6c 2d 39 36 33 0d 0a 53 45 4c 45 43 54 20 41  el-963..SELECT A
2a720 4c 4c 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 2c  LL + COUNT( * ),
2a730 20 2b 20 43 4f 55 4e 54 28 20 2b 20 63 6f 6c 31   + COUNT( + col1
2a740 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
2a750 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 33  cor0..----..3..3
2a760 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2a770 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2a780 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
2a790 6f 72 74 20 6c 61 62 65 6c 2d 39 36 33 0d 0a 53  ort label-963..S
2a7a0 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e  ELECT ALL + COUN
2a7b0 54 20 28 20 2a 20 29 2c 20 2b 20 43 4f 55 4e 54  T ( * ), + COUNT
2a7c0 20 28 20 2b 20 63 6f 6c 31 20 29 20 46 52 4f 4d   ( + col1 ) FROM
2a7d0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
2a7e0 2d 2d 2d 0d 0a 33 0d 0a 33 0d 0a 0d 0a 6f 6e 6c  ---..3..3....onl
2a7f0 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
2a800 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
2a810 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
2a820 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 36  rowsort label-96
2a830 34 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 44  4..SELECT col0 D
2a840 49 56 20 2d 20 2b 20 63 6f 6c 32 20 41 53 20 63  IV - + col2 AS c
2a850 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol1 FROM tab1 AS
2a860 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d   cor0..----..-1.
2a870 0a 2d 31 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  .-1..0....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 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2a8b0 36 34 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20  64..SELECT col0 
2a8c0 2f 20 2d 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  / - + col2 AS co
2a8d0 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
2a8e0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a  cor0..----..-1..
2a8f0 2d 31 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49  -1..0....query I
2a900 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
2a910 43 54 20 2d 20 2b 20 63 6f 6c 31 2c 20 2d 20 63  CT - + col1, - c
2a920 6f 6c 30 20 2a 20 63 6f 6c 32 20 41 53 20 63 6f  ol0 * col2 AS co
2a930 6c 32 2c 20 2d 20 2b 20 28 20 2d 20 63 6f 6c 31  l2, - + ( - col1
2a940 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
2a950 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
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 38 34 36 64 62 63 39 64  hing to 846dbc9d
2a980 31 30 34 33 61 64 31 30 61 39 66 62 66 61 65 64  1043ad10a9fbfaed
2a990 65 35 37 34 34 66 30 39 0d 0a 0d 0a 71 75 65 72  e5744f09....quer
2a9a0 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
2a9b0 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20  LECT ALL - col0 
2a9c0 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 31 20 41 53  AS col2, col1 AS
2a9d0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
2a9e0 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 31 34 0d 0a  .----..-51..14..
2a9f0 2d 38 35 0d 0a 35 0d 0a 2d 39 31 0d 0a 34 37 0d  -85..5..-91..47.
2aa00 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2aa10 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
2aa20 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
2aa30 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2aa40 62 65 6c 2d 39 36 37 0d 0a 53 45 4c 45 43 54 20  bel-967..SELECT 
2aa50 44 49 53 54 49 4e 43 54 20 2b 20 39 38 20 2a 20  DISTINCT + 98 * 
2aa60 63 6f 6c 30 20 44 49 56 20 2d 20 63 6f 6c 30 20  col0 DIV - col0 
2aa70 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
2aa80 0a 2d 39 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-98....skipif m
2aa90 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2aaa0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
2aab0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 36 37  owsort label-967
2aac0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2aad0 54 20 2b 20 39 38 20 2a 20 63 6f 6c 30 20 2f 20  T + 98 * col0 / 
2aae0 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  - col0 FROM tab1
2aaf0 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 38 0d 0a 0d 0a 71  ..----..-98....q
2ab00 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2ab10 53 45 4c 45 43 54 20 41 4c 4c 20 31 39 20 46 52  SELECT ALL 19 FR
2ab20 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 2d 20  OM tab2 WHERE - 
2ab30 63 6f 6c 31 20 3e 3d 20 2d 20 63 6f 6c 31 0d 0a  col1 >= - col1..
2ab40 2d 2d 2d 2d 0d 0a 31 39 0d 0a 31 39 0d 0a 31 39  ----..19..19..19
2ab50 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2ab60 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
2ab70 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
2ab80 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2ab90 61 62 65 6c 2d 39 36 39 0d 0a 53 45 4c 45 43 54  abel-969..SELECT
2aba0 20 44 49 53 54 49 4e 43 54 20 43 41 53 54 28 20   DISTINCT CAST( 
2abb0 2d 20 2d 20 36 30 20 41 53 20 53 49 47 4e 45 44  - - 60 AS SIGNED
2abc0 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
2abd0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 36 30 0d 0a  tab2..----..60..
2abe0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2abf0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2ac00 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2ac10 20 6c 61 62 65 6c 2d 39 36 39 0d 0a 53 45 4c 45   label-969..SELE
2ac20 43 54 20 44 49 53 54 49 4e 43 54 20 43 41 53 54  CT DISTINCT CAST
2ac30 20 28 20 2d 20 2d 20 36 30 20 41 53 20 49 4e 54   ( - - 60 AS INT
2ac40 45 47 45 52 20 29 20 41 53 20 63 6f 6c 32 20 46  EGER ) AS col2 F
2ac50 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
2ac60 36 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  60....query II r
2ac70 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
2ac80 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31 20 41  ISTINCT - col1 A
2ac90 53 20 63 6f 6c 31 2c 20 63 6f 6c 30 20 2b 20 2b  S col1, col0 + +
2aca0 20 36 39 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d   69 FROM tab2..-
2acb0 2d 2d 2d 0d 0a 2d 35 31 0d 0a 31 31 35 0d 0a 2d  ---..-51..115..-
2acc0 36 37 0d 0a 31 34 34 0d 0a 2d 37 37 0d 0a 31 33  67..144..-77..13
2acd0 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  3....skipif post
2ace0 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
2acf0 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
2ad00 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
2ad10 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
2ad20 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
2ad30 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2ad40 2b 20 32 32 20 63 6f 6c 30 2c 20 2b 20 63 6f 6c  + 22 col0, + col
2ad50 30 20 2b 20 2b 20 2b 20 28 20 32 20 29 20 46 52  0 + + + ( 2 ) FR
2ad60 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32  OM tab2..----..2
2ad70 32 0d 0a 34 38 0d 0a 32 32 0d 0a 36 36 0d 0a 32  2..48..22..66..2
2ad80 32 0d 0a 37 37 0d 0a 0d 0a 71 75 65 72 79 20 49  2..77....query I
2ad90 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2ada0 20 2b 20 37 30 20 2a 20 2b 20 36 38 20 41 53 20   + 70 * + 68 AS 
2adb0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
2adc0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 37  S cor0..----..47
2add0 36 30 0d 0a 34 37 36 30 0d 0a 34 37 36 30 0d 0a  60..4760..4760..
2ade0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
2adf0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
2ae00 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  * FROM tab2 AS c
2ae10 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  or0 WHERE NOT + 
2ae20 34 39 20 2a 20 2d 20 63 6f 6c 31 20 3d 20 4e 55  49 * - col1 = NU
2ae30 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70  LL..----....skip
2ae40 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
2ae50 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
2ae60 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
2ae70 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
2ae80 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
2ae90 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 36  sort..SELECT + 6
2aea0 30 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  0 col2 FROM tab1
2aeb0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
2aec0 4f 54 20 37 37 20 2b 20 2d 20 2d 20 63 6f 6c 32  OT 77 + - - col2
2aed0 20 2f 20 2b 20 34 37 20 49 53 20 4e 55 4c 4c 0d   / + 47 IS NULL.
2aee0 0a 2d 2d 2d 2d 0d 0a 36 30 0d 0a 36 30 0d 0a 36  .----..60..60..6
2aef0 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
2af00 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
2af10 30 20 2a 20 63 6f 6c 32 20 2b 20 2d 20 33 32 20  0 * col2 + - 32 
2af20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
2af30 30 0d 0a 2d 2d 2d 2d 0d 0a 36 37 33 0d 0a 38 33  0..----..673..83
2af40 38 0d 0a 39 35 37 31 0d 0a 0d 0a 71 75 65 72 79  8..9571....query
2af50 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
2af60 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  ECT DISTINCT col
2af70 32 20 41 53 20 63 6f 6c 31 2c 20 63 6f 6c 30 20  2 AS col1, col0 
2af80 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2af90 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
2afa0 0a 35 39 0d 0a 38 35 0d 0a 36 38 0d 0a 39 31 0d  .59..85..68..91.
2afb0 0a 39 36 0d 0a 35 31 0d 0a 0d 0a 71 75 65 72 79  .96..51....query
2afc0 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
2afd0 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
2afe0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
2aff0 4f 54 20 28 20 2d 20 63 6f 6c 31 20 3e 20 4e 55  OT ( - col1 > NU
2b000 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  LL )..----....on
2b010 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
2b020 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
2b030 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2b040 20 6c 61 62 65 6c 2d 39 37 38 0d 0a 53 45 4c 45   label-978..SELE
2b050 43 54 20 2b 20 43 4f 55 4e 54 28 20 44 49 53 54  CT + COUNT( DIST
2b060 49 4e 43 54 20 33 34 20 29 20 46 52 4f 4d 20 28  INCT 34 ) FROM (
2b070 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 43 52   tab0 AS cor0 CR
2b080 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53  OSS JOIN tab0 AS
2b090 20 63 6f 72 31 20 29 20 57 48 45 52 45 20 4e 4f   cor1 ) WHERE NO
2b0a0 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a  T NULL IS NULL..
2b0b0 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  ----..0....skipi
2b0c0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2b0d0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2b0e0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2b0f0 39 37 38 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f  978..SELECT + CO
2b100 55 4e 54 20 28 20 44 49 53 54 49 4e 43 54 20 33  UNT ( DISTINCT 3
2b110 34 20 29 20 46 52 4f 4d 20 28 20 74 61 62 30 20  4 ) FROM ( tab0 
2b120 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
2b130 49 4e 20 74 61 62 30 20 41 53 20 63 6f 72 31 20  IN tab0 AS cor1 
2b140 29 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  ) WHERE NOT NULL
2b150 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
2b160 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
2b170 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
2b180 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
2b190 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2b1a0 6c 61 62 65 6c 2d 39 37 39 0d 0a 53 45 4c 45 43  label-979..SELEC
2b1b0 54 20 2b 20 63 6f 6c 32 20 44 49 56 20 63 6f 6c  T + col2 DIV col
2b1c0 31 20 44 49 56 20 63 6f 6c 30 20 41 53 20 63 6f  1 DIV col0 AS co
2b1d0 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
2b1e0 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73  --..0..0..0....s
2b1f0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2b200 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2b210 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2b220 62 65 6c 2d 39 37 39 0d 0a 53 45 4c 45 43 54 20  bel-979..SELECT 
2b230 2b 20 63 6f 6c 32 20 2f 20 63 6f 6c 31 20 2f 20  + col2 / col1 / 
2b240 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f  col0 AS col2 FRO
2b250 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab2..----..0.
2b260 0a 30 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49  .0..0....query I
2b270 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
2b280 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57  CT * FROM tab1 W
2b290 48 45 52 45 20 36 38 20 49 53 20 4e 55 4c 4c 0d  HERE 68 IS NULL.
2b2a0 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
2b2b0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2b2c0 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 46 52 4f 4d   ALL + col0 FROM
2b2d0 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
2b2e0 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 3c 3d 20  ERE ( NULL ) <= 
2b2f0 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  + col1..----....
2b300 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2b310 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2b320 20 2b 20 2d 20 34 36 20 2b 20 28 20 2d 20 2d 20   + - 46 + ( - - 
2b330 28 20 2d 20 63 6f 6c 32 20 29 20 29 20 46 52 4f  ( - col2 ) ) FRO
2b340 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
2b350 2d 2d 2d 2d 0d 0a 2d 31 34 35 0d 0a 2d 35 36 0d  ----..-145..-56.
2b360 0a 2d 39 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-93....query I 
2b370 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2b380 2d 20 36 20 2b 20 2d 20 2d 20 63 6f 6c 32 20 2b  - 6 + - - col2 +
2b390 20 2d 20 28 20 2d 20 2d 20 63 6f 6c 31 20 29 20   - ( - - col1 ) 
2b3a0 2a 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46  * col1 AS col1 F
2b3b0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
2b3c0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 36 0d 0a 2d 32  ..----..-106..-2
2b3d0 31 34 37 0d 0a 32 38 0d 0a 0d 0a 71 75 65 72 79  147..28....query
2b3e0 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
2b3f0 45 43 54 20 41 4c 4c 20 2d 20 2b 20 63 6f 6c 31  ECT ALL - + col1
2b400 20 2b 20 2b 20 63 6f 6c 32 2c 20 63 6f 6c 30 20   + + col2, col0 
2b410 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2b420 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
2b430 0a 2d 31 31 0d 0a 38 37 0d 0a 2d 33 34 0d 0a 31  .-11..87..-34..1
2b440 35 0d 0a 39 38 0d 0a 39 37 0d 0a 0d 0a 71 75 65  5..98..97....que
2b450 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2b460 4c 45 43 54 20 41 4c 4c 20 2b 20 34 36 20 2b 20  LECT ALL + 46 + 
2b470 2b 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 28 20 63  + - col1 * + ( c
2b480 6f 6c 31 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ol1 ) AS col0 FR
2b490 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d  OM tab2 cor0..--
2b4a0 2d 2d 0d 0a 2d 32 35 35 35 0d 0a 2d 34 34 34 33  --..-2555..-4443
2b4b0 0d 0a 2d 35 38 38 33 0d 0a 0d 0a 6f 6e 6c 79 69  ..-5883....onlyi
2b4c0 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
2b4d0 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
2b4e0 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
2b4f0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 38 36 0d  wsort label-986.
2b500 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2b510 20 2d 20 43 41 53 54 28 20 2b 20 2d 20 28 20 2b   - CAST( + - ( +
2b520 20 2d 20 35 20 29 20 41 53 20 53 49 47 4e 45 44   - 5 ) AS SIGNED
2b530 20 29 20 2b 20 37 37 20 41 53 20 63 6f 6c 30 20   ) + 77 AS col0 
2b540 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a  FROM tab2 cor0..
2b550 2d 2d 2d 2d 0d 0a 37 32 0d 0a 0d 0a 73 6b 69 70  ----..72....skip
2b560 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2b570 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2b580 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2b590 2d 39 38 36 0d 0a 53 45 4c 45 43 54 20 44 49 53  -986..SELECT DIS
2b5a0 54 49 4e 43 54 20 2d 20 43 41 53 54 20 28 20 2b  TINCT - CAST ( +
2b5b0 20 2d 20 28 20 2b 20 2d 20 35 20 29 20 41 53 20   - ( + - 5 ) AS 
2b5c0 49 4e 54 45 47 45 52 20 29 20 2b 20 37 37 20 41  INTEGER ) + 77 A
2b5d0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
2b5e0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 32 0d   cor0..----..72.
2b5f0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2b600 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
2b610 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
2b620 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 38 37 0d  wsort label-987.
2b630 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2b640 20 2b 20 4d 49 4e 28 20 2d 20 2b 20 28 20 2d 20   + MIN( - + ( - 
2b650 28 20 2b 20 63 6f 6c 31 20 29 20 29 20 29 20 46  ( + col1 ) ) ) F
2b660 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
2b670 0d 0a 2d 2d 2d 2d 0d 0a 35 0d 0a 0d 0a 73 6b 69  ..----..5....ski
2b680 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2b690 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2b6a0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2b6b0 6c 2d 39 38 37 0d 0a 53 45 4c 45 43 54 20 44 49  l-987..SELECT DI
2b6c0 53 54 49 4e 43 54 20 2b 20 4d 49 4e 20 28 20 2d  STINCT + MIN ( -
2b6d0 20 2b 20 28 20 2d 20 28 20 2b 20 63 6f 6c 31 20   + ( - ( + col1 
2b6e0 29 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31 20  ) ) ) FROM tab1 
2b6f0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35  AS cor0..----..5
2b700 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2b710 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
2b720 49 4e 43 54 20 2b 20 2b 20 63 6f 6c 31 20 2a 20  INCT + + col1 * 
2b730 28 20 2b 20 35 39 20 29 20 41 53 20 63 6f 6c 30  ( + 59 ) AS col0
2b740 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
2b750 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 37 37 33 0d 0a  r0..----..2773..
2b760 32 39 35 0d 0a 38 32 36 0d 0a 0d 0a 6f 6e 6c 79  295..826....only
2b770 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
2b780 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
2b790 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
2b7a0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 38 39  owsort label-989
2b7b0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 38 34 20  ..SELECT ALL 84 
2b7c0 2b 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 43 41 53  + + col1 * + CAS
2b7d0 54 28 20 2d 20 2d 20 63 6f 6c 30 20 41 53 20 53  T( - - col0 AS S
2b7e0 49 47 4e 45 44 20 29 20 2a 20 2b 20 2d 20 63 6f  IGNED ) * + - co
2b7f0 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l2 AS col2 FROM 
2b800 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
2b810 2d 2d 0d 0a 2d 31 39 37 30 33 36 0d 0a 2d 32 39  --..-197036..-29
2b820 31 33 36 36 0d 0a 2d 35 33 38 37 34 0d 0a 0d 0a  1366..-53874....
2b830 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2b840 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2b850 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2b860 61 62 65 6c 2d 39 38 39 0d 0a 53 45 4c 45 43 54  abel-989..SELECT
2b870 20 41 4c 4c 20 38 34 20 2b 20 2b 20 63 6f 6c 31   ALL 84 + + col1
2b880 20 2a 20 2b 20 43 41 53 54 20 28 20 2d 20 2d 20   * + CAST ( - - 
2b890 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45 52 20  col0 AS INTEGER 
2b8a0 29 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20  ) * + - col2 AS 
2b8b0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
2b8c0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
2b8d0 39 37 30 33 36 0d 0a 2d 32 39 31 33 36 36 0d 0a  97036..-291366..
2b8e0 2d 35 33 38 37 34 0d 0a 0d 0a 71 75 65 72 79 20  -53874....query 
2b8f0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2b900 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 39  T DISTINCT - + 9
2b910 33 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  3 FROM tab1 cor0
2b920 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 33 0d 0a 0d 0a 6f  ..----..-93....o
2b930 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
2b940 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
2b950 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
2b960 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2b970 39 39 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  991..SELECT ALL 
2b980 2d 20 43 41 53 54 28 20 33 31 20 41 53 20 53 49  - CAST( 31 AS SI
2b990 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62 30  GNED ) FROM tab0
2b9a0 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 31 0d 0a 2d 33 31  ..----..-31..-31
2b9b0 0d 0a 2d 33 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-31....skipif 
2b9c0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2b9d0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2b9e0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 39  rowsort label-99
2b9f0 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  1..SELECT ALL - 
2ba00 43 41 53 54 20 28 20 33 31 20 41 53 20 49 4e 54  CAST ( 31 AS INT
2ba10 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 30  EGER ) FROM tab0
2ba20 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 31 0d 0a 2d 33 31  ..----..-31..-31
2ba30 0d 0a 2d 33 31 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-31....query I
2ba40 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2ba50 20 37 30 20 2b 20 2b 20 2d 20 63 6f 6c 31 20 46   70 + + - col1 F
2ba60 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
2ba70 32 33 0d 0a 35 36 0d 0a 36 35 0d 0a 0d 0a 6f 6e  23..56..65....on
2ba80 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
2ba90 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41  T syntax: DECIMA
2baa0 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  L type: ..query 
2bab0 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
2bac0 6c 2d 39 39 33 0d 0a 53 45 4c 45 43 54 20 2a 20  l-993..SELECT * 
2bad0 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
2bae0 4e 55 4c 4c 20 3c 3d 20 2b 20 38 36 20 2a 20 2d  NULL <= + 86 * -
2baf0 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   - CAST( NULL AS
2bb00 20 44 45 43 49 4d 41 4c 20 29 20 2a 20 63 6f 6c   DECIMAL ) * col
2bb10 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  0..----....skipi
2bb20 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2bb30 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2bb40 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
2bb50 6c 2d 39 39 33 0d 0a 53 45 4c 45 43 54 20 2a 20  l-993..SELECT * 
2bb60 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
2bb70 4e 55 4c 4c 20 3c 3d 20 2b 20 38 36 20 2a 20 2d  NULL <= + 86 * -
2bb80 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   - CAST ( NULL A
2bb90 53 20 52 45 41 4c 20 29 20 2a 20 63 6f 6c 30 0d  S REAL ) * col0.
2bba0 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
2bbb0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2bbc0 20 37 38 20 2b 20 2d 20 36 34 20 2b 20 34 34 20   78 + - 64 + 44 
2bbd0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
2bbe0 32 0d 0a 2d 2d 2d 2d 0d 0a 35 38 0d 0a 35 38 0d  2..----..58..58.
2bbf0 0a 35 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .58....query I r
2bc00 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 31  owsort..SELECT 1
2bc10 31 20 2b 20 2b 20 2d 20 31 20 41 53 20 63 6f 6c  1 + + - 1 AS col
2bc20 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  0 FROM tab1..---
2bc30 2d 0d 0a 31 30 0d 0a 31 30 0d 0a 31 30 0d 0a 0d  -..10..10..10...
2bc40 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2bc50 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
2bc60 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
2bc70 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2bc80 6c 2d 39 39 36 0d 0a 53 45 4c 45 43 54 20 41 4c  l-996..SELECT AL
2bc90 4c 20 2d 20 33 38 20 2a 20 2d 20 34 32 20 2a 20  L - 38 * - 42 * 
2bca0 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  + CAST( NULL AS 
2bcb0 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 31  SIGNED ) AS col1
2bcc0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
2bcd0 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
2bce0 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
2bcf0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2bd00 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2bd10 73 6f 72 74 20 6c 61 62 65 6c 2d 39 39 36 0d 0a  sort label-996..
2bd20 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 33 38 20  SELECT ALL - 38 
2bd30 2a 20 2d 20 34 32 20 2a 20 2b 20 43 41 53 54 20  * - 42 * + CAST 
2bd40 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
2bd50 52 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  R ) AS col1 FROM
2bd60 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   tab1..----..NUL
2bd70 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
2bd80 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2bd90 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2bda0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2bdb0 6f 72 74 20 6c 61 62 65 6c 2d 39 39 37 0d 0a 53  ort label-997..S
2bdc0 45 4c 45 43 54 20 2d 20 2d 20 43 4f 55 4e 54 28  ELECT - - COUNT(
2bdd0 20 2a 20 29 20 2b 20 33 20 2a 20 33 31 20 46 52   * ) + 3 * 31 FR
2bde0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
2bdf0 57 48 45 52 45 20 2b 20 63 6f 6c 31 20 3e 20 63  WHERE + col1 > c
2be00 6f 6c 32 20 2a 20 2d 20 63 6f 6c 30 0d 0a 2d 2d  ol2 * - col0..--
2be10 2d 2d 0d 0a 39 36 0d 0a 0d 0a 73 6b 69 70 69 66  --..96....skipif
2be20 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2be30 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2be40 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2be50 39 37 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 43  97..SELECT - - C
2be60 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 33 20 2a  OUNT ( * ) + 3 *
2be70 20 33 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53   31 FROM tab2 AS
2be80 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 63 6f   cor0 WHERE + co
2be90 6c 31 20 3e 20 63 6f 6c 32 20 2a 20 2d 20 63 6f  l1 > col2 * - co
2bea0 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 39 36 0d 0a 0d 0a  l0..----..96....
2beb0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
2bec0 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
2bed0 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
2bee0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2bef0 2d 39 39 38 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  -998..SELECT col
2bf00 32 20 44 49 56 20 34 39 20 41 53 20 63 6f 6c 31  2 DIV 49 AS col1
2bf10 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
2bf20 0d 0a 30 0d 0a 30 0d 0a 32 0d 0a 0d 0a 73 6b 69  ..0..0..2....ski
2bf30 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2bf40 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2bf50 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2bf60 6c 2d 39 39 38 0d 0a 53 45 4c 45 43 54 20 63 6f  l-998..SELECT co
2bf70 6c 32 20 2f 20 34 39 20 41 53 20 63 6f 6c 31 20  l2 / 49 AS col1 
2bf80 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
2bf90 0a 30 0d 0a 30 0d 0a 32 0d 0a 0d 0a 71 75 65 72  .0..0..2....quer
2bfa0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
2bfb0 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
2bfc0 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2b 20  0 WHERE NOT ( + 
2bfd0 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 30 20 29 20  col0 * - col0 ) 
2bfe0 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
2bff0 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
2c000 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
2c010 54 49 4e 43 54 20 63 6f 6c 30 20 46 52 4f 4d 20  TINCT col0 FROM 
2c020 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 63  tab2 WHERE NOT c
2c030 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ol2 IS NOT NULL.
2c040 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
2c050 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
2c060 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
2c070 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2c080 6f 72 74 20 6c 61 62 65 6c 2d 31 30 30 31 0d 0a  ort label-1001..
2c090 53 45 4c 45 43 54 20 2d 20 32 30 20 2b 20 2b 20  SELECT - 20 + + 
2c0a0 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
2c0b0 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62 30  GNED ) FROM tab0
2c0c0 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
2c0d0 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  LL..NULL....skip
2c0e0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2c0f0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2c100 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2c110 2d 31 30 30 31 0d 0a 53 45 4c 45 43 54 20 2d 20  -1001..SELECT - 
2c120 32 30 20 2b 20 2b 20 43 41 53 54 20 28 20 4e 55  20 + + CAST ( NU
2c130 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
2c140 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
2c150 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
2c160 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  L....query I row
2c170 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 34  sort..SELECT + 4
2c180 33 20 2a 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32  3 * col2 AS col2
2c190 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
2c1a0 20 2b 20 28 20 63 6f 6c 31 20 29 20 2d 20 35 30   + ( col1 ) - 50
2c1b0 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d   < NULL..----...
2c1c0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
2c1d0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
2c1e0 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
2c1f0 20 4e 4f 54 20 34 35 20 2a 20 32 38 20 49 53 20   NOT 45 * 28 IS 
2c200 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
2c210 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2c220 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30  t..SELECT - col0
2c230 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
2c240 20 38 33 20 3e 3d 20 28 20 4e 55 4c 4c 20 29 0d   83 >= ( NULL ).
2c250 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
2c260 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
2c270 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
2c280 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2c290 6c 2d 31 30 30 35 0d 0a 53 45 4c 45 43 54 20 44  l-1005..SELECT D
2c2a0 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 28 20 2a  ISTINCT COUNT( *
2c2b0 20 29 20 2a 20 43 4f 55 4e 54 28 20 2a 20 29 20   ) * COUNT( * ) 
2c2c0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2c2d0 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  0 WHERE NOT NULL
2c2e0 20 42 45 54 57 45 45 4e 20 63 6f 6c 30 20 2b 20   BETWEEN col0 + 
2c2f0 31 33 20 41 4e 44 20 63 6f 6c 32 20 2b 20 2b 20  13 AND col2 + + 
2c300 35 38 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73  58..----..0....s
2c310 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2c320 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2c330 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2c340 62 65 6c 2d 31 30 30 35 0d 0a 53 45 4c 45 43 54  bel-1005..SELECT
2c350 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 20   DISTINCT COUNT 
2c360 28 20 2a 20 29 20 2a 20 43 4f 55 4e 54 20 28 20  ( * ) * COUNT ( 
2c370 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  * ) AS col1 FROM
2c380 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20   tab0 WHERE NOT 
2c390 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20 63 6f 6c  NULL BETWEEN col
2c3a0 30 20 2b 20 31 33 20 41 4e 44 20 63 6f 6c 32 20  0 + 13 AND col2 
2c3b0 2b 20 2b 20 35 38 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  + + 58..----..0.
2c3c0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2c3d0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
2c3e0 4e 43 54 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 63  NCT + col1 + + c
2c3f0 6f 6c 32 20 2a 20 34 35 20 46 52 4f 4d 20 74 61  ol2 * 45 FROM ta
2c400 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 39 36 0d 0a  b0..----..2196..
2c410 34 34 35 36 0d 0a 34 37 31 0d 0a 0d 0a 71 75 65  4456..471....que
2c420 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2c430 4c 45 43 54 20 63 6f 6c 30 20 2b 20 36 32 20 41  LECT col0 + 62 A
2c440 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
2c450 0d 0a 2d 2d 2d 2d 0d 0a 31 34 39 0d 0a 31 35 39  ..----..149..159
2c460 0d 0a 37 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..77....query I 
2c470 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2c480 41 4c 4c 20 63 6f 6c 31 20 2a 20 2b 20 28 20 38  ALL col1 * + ( 8
2c490 33 20 29 20 2d 20 34 36 20 46 52 4f 4d 20 74 61  3 ) - 46 FROM ta
2c4a0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 31 31 36 0d 0a  b1..----..1116..
2c4b0 33 36 39 0d 0a 33 38 35 35 0d 0a 0d 0a 71 75 65  369..3855....que
2c4c0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2c4d0 4c 45 43 54 20 2d 20 35 20 2a 20 2b 20 63 6f 6c  LECT - 5 * + col
2c4e0 32 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20  2 + - col0 FROM 
2c4f0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 31  tab2..----..-161
2c500 0d 0a 2d 32 36 34 0d 0a 2d 33 36 35 0d 0a 0d 0a  ..-264..-365....
2c510 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
2c520 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
2c530 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20   tab1 WHERE NOT 
2c540 4e 55 4c 4c 20 3e 3d 20 33 32 0d 0a 2d 2d 2d 2d  NULL >= 32..----
2c550 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2c560 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
2c570 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
2c580 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2c590 61 62 65 6c 2d 31 30 31 31 0d 0a 53 45 4c 45 43  abel-1011..SELEC
2c5a0 54 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  T col1 FROM tab0
2c5b0 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 43 41 53   WHERE NOT + CAS
2c5c0 54 28 20 2b 20 63 6f 6c 32 20 41 53 20 53 49 47  T( + col2 AS SIG
2c5d0 4e 45 44 20 29 20 3e 3d 20 4e 55 4c 4c 0d 0a 2d  NED ) >= NULL..-
2c5e0 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ---....skipif my
2c5f0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2c600 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
2c610 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31 31  wsort label-1011
2c620 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 46 52  ..SELECT col1 FR
2c630 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
2c640 54 20 2b 20 43 41 53 54 20 28 20 2b 20 63 6f 6c  T + CAST ( + col
2c650 32 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 3e  2 AS INTEGER ) >
2c660 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  = NULL..----....
2c670 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2c680 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32  .SELECT ALL col2
2c690 20 2a 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c   * - col2 AS col
2c6a0 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  2 FROM tab1 WHER
2c6b0 45 20 63 6f 6c 32 20 2f 20 2d 20 63 6f 6c 30 20  E col2 / - col0 
2c6c0 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
2c6d0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2c6e0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63  ..SELECT ALL + c
2c6f0 6f 6c 32 20 2b 20 2b 20 63 6f 6c 31 20 46 52 4f  ol2 + + col1 FRO
2c700 4d 20 74 61 62 30 20 57 48 45 52 45 20 28 20 4e  M tab0 WHERE ( N
2c710 55 4c 4c 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c  ULL ) IS NOT NUL
2c720 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  L..----....onlyi
2c730 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
2c740 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20  ate syntax: DIV 
2c750 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
2c760 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
2c770 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2c780 31 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  14..SELECT ALL -
2c790 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2d 20   COUNT( * ) * - 
2c7a0 4d 41 58 28 20 2d 20 63 6f 6c 30 20 44 49 56 20  MAX( - col0 DIV 
2c7b0 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 32  col1 ) FROM tab2
2c7c0 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69  ..----..0....ski
2c7d0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2c7e0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2c7f0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2c800 6c 2d 31 30 31 34 0d 0a 53 45 4c 45 43 54 20 41  l-1014..SELECT A
2c810 4c 4c 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29  LL - COUNT ( * )
2c820 20 2a 20 2d 20 4d 41 58 20 28 20 2d 20 63 6f 6c   * - MAX ( - col
2c830 30 20 2f 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20  0 / col1 ) FROM 
2c840 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  tab2..----..0...
2c850 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2c860 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20  ..SELECT - col0 
2c870 2b 20 32 35 20 41 53 20 63 6f 6c 30 20 46 52 4f  + 25 AS col0 FRO
2c880 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36  M tab0..----..-6
2c890 32 0d 0a 2d 37 32 0d 0a 31 30 0d 0a 0d 0a 6f 6e  2..-72..10....on
2c8a0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
2c8b0 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
2c8c0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
2c8d0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2c8e0 30 31 36 0d 0a 53 45 4c 45 43 54 20 43 41 53 54  016..SELECT CAST
2c8f0 28 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  ( - CAST( NULL A
2c900 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 53 49  S SIGNED ) AS SI
2c910 47 4e 45 44 20 29 20 63 6f 6c 30 20 46 52 4f 4d  GNED ) col0 FROM
2c920 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20   tab0 WHERE NOT 
2c930 4e 55 4c 4c 20 3d 20 2d 20 63 6f 6c 31 0d 0a 2d  NULL = - col1..-
2c940 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ---....skipif my
2c950 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2c960 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
2c970 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
2c980 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
2c990 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
2c9a0 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
2c9b0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2c9c0 61 62 65 6c 2d 31 30 31 36 0d 0a 53 45 4c 45 43  abel-1016..SELEC
2c9d0 54 20 43 41 53 54 20 28 20 2d 20 43 41 53 54 20  T CAST ( - CAST 
2c9e0 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
2c9f0 52 20 29 20 41 53 20 49 4e 54 45 47 45 52 20 29  R ) AS INTEGER )
2ca00 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
2ca10 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3d  WHERE NOT NULL =
2ca20 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d   - col1..----...
2ca30 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2ca40 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20  ..SELECT + col1 
2ca50 2b 20 33 31 20 2a 20 63 6f 6c 31 20 41 53 20 63  + 31 * col1 AS c
2ca60 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol0 FROM tab2..-
2ca70 2d 2d 2d 0d 0a 31 36 33 32 0d 0a 32 31 34 34 0d  ---..1632..2144.
2ca80 0a 32 34 36 34 0d 0a 0d 0a 71 75 65 72 79 20 49  .2464....query I
2ca90 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2caa0 20 44 49 53 54 49 4e 43 54 20 2b 20 28 20 63 6f   DISTINCT + ( co
2cab0 6c 30 20 29 20 2b 20 2d 20 63 6f 6c 30 20 41 53  l0 ) + - col0 AS
2cac0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
2cad0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30  AS cor0..----..0
2cae0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2caf0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
2cb00 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
2cb10 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2cb20 61 62 65 6c 2d 31 30 31 39 0d 0a 53 45 4c 45 43  abel-1019..SELEC
2cb30 54 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 43 41 53  T - col0 * + CAS
2cb40 54 28 20 37 33 20 41 53 20 53 49 47 4e 45 44 20  T( 73 AS SIGNED 
2cb50 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  ) FROM tab2 AS c
2cb60 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 33 35 38  or0..----..-3358
2cb70 0d 0a 2d 34 36 37 32 0d 0a 2d 35 34 37 35 0d 0a  ..-4672..-5475..
2cb80 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2cb90 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2cba0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2cbb0 20 6c 61 62 65 6c 2d 31 30 31 39 0d 0a 53 45 4c   label-1019..SEL
2cbc0 45 43 54 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 43  ECT - col0 * + C
2cbd0 41 53 54 20 28 20 37 33 20 41 53 20 49 4e 54 45  AST ( 73 AS INTE
2cbe0 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 32 20  GER ) FROM tab2 
2cbf0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
2cc00 33 33 35 38 0d 0a 2d 34 36 37 32 0d 0a 2d 35 34  3358..-4672..-54
2cc10 37 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  75....onlyif mys
2cc20 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
2cc30 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
2cc40 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2cc50 30 32 30 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f  020..SELECT + CO
2cc60 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31  UNT( * ) AS col1
2cc70 20 46 52 4f 4d 20 28 20 74 61 62 32 20 41 53 20   FROM ( tab2 AS 
2cc80 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
2cc90 74 61 62 31 20 29 20 57 48 45 52 45 20 4e 4f 54  tab1 ) WHERE NOT
2cca0 20 28 20 4e 55 4c 4c 20 29 20 3c 20 2b 20 35 39   ( NULL ) < + 59
2ccb0 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69  ..----..0....ski
2ccc0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2ccd0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2cce0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2ccf0 6c 2d 31 30 32 30 0d 0a 53 45 4c 45 43 54 20 2b  l-1020..SELECT +
2cd00 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
2cd10 63 6f 6c 31 20 46 52 4f 4d 20 28 20 74 61 62 32  col1 FROM ( tab2
2cd20 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a   AS cor0 CROSS J
2cd30 4f 49 4e 20 74 61 62 31 20 29 20 57 48 45 52 45  OIN tab1 ) WHERE
2cd40 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 3c 20   NOT ( NULL ) < 
2cd50 2b 20 35 39 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  + 59..----..0...
2cd60 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
2cd70 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
2cd80 4d 20 74 61 62 30 20 57 48 45 52 45 20 31 31 20  M tab0 WHERE 11 
2cd90 2d 20 2d 20 31 30 20 3d 20 34 36 20 2a 20 33 34  - - 10 = 46 * 34
2cda0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
2cdb0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2cdc0 54 20 32 35 20 2d 20 2b 20 38 37 20 2a 20 63 6f  T 25 - + 87 * co
2cdd0 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45  l0 FROM tab2 WHE
2cde0 52 45 20 63 6f 6c 32 20 42 45 54 57 45 45 4e 20  RE col2 BETWEEN 
2cdf0 28 20 31 20 2a 20 33 33 20 29 20 41 4e 44 20 4e  ( 1 * 33 ) AND N
2ce00 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
2ce10 72 79 20 49 49 49 49 49 49 20 72 6f 77 73 6f 72  ry IIIIII rowsor
2ce20 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
2ce30 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 43 52   tab1 AS cor0 CR
2ce40 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 57 48  OSS JOIN tab2 WH
2ce50 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c  ERE NULL IS NULL
2ce60 0d 0a 2d 2d 2d 2d 0d 0a 35 34 20 76 61 6c 75 65  ..----..54 value
2ce70 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 31  s hashing to c41
2ce80 39 64 63 32 61 36 35 33 62 63 63 64 38 34 66 37  9dc2a653bccd84f7
2ce90 61 32 64 61 31 30 33 33 31 35 31 38 37 0d 0a 0d  a2da103315187...
2cea0 0a 71 75 65 72 79 20 49 49 49 49 49 49 20 72 6f  .query IIIIII ro
2ceb0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
2cec0 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  L * FROM tab2 co
2ced0 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
2cee0 62 31 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  b1 WHERE NOT NUL
2cef0 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  L IS NULL..----.
2cf00 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2cf10 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
2cf20 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
2cf30 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 32 35  wsort label-1025
2cf40 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2cf50 54 20 4d 49 4e 28 20 2d 20 34 31 20 29 20 41 53  T MIN( - 41 ) AS
2cf60 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
2cf70 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55  AS cor0 WHERE NU
2cf80 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  LL IS NOT NULL..
2cf90 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  ----..NULL....sk
2cfa0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2cfb0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2cfc0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2cfd0 65 6c 2d 31 30 32 35 0d 0a 53 45 4c 45 43 54 20  el-1025..SELECT 
2cfe0 44 49 53 54 49 4e 43 54 20 4d 49 4e 20 28 20 2d  DISTINCT MIN ( -
2cff0 20 34 31 20 29 20 41 53 20 63 6f 6c 31 20 46 52   41 ) AS col1 FR
2d000 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
2d010 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 4f  WHERE NULL IS NO
2d020 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  T NULL..----..NU
2d030 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  LL....onlyif mys
2d040 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
2d050 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69  yntax: DIV for i
2d060 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
2d070 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2d080 72 74 20 6c 61 62 65 6c 2d 31 30 32 36 0d 0a 53  rt label-1026..S
2d090 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
2d0a0 20 36 20 44 49 56 20 2b 20 43 4f 55 4e 54 28 20   6 DIV + COUNT( 
2d0b0 2a 20 29 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a  * ) + - COUNT( *
2d0c0 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
2d0d0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
2d0e0 2d 2d 0d 0a 2d 35 0d 0a 0d 0a 73 6b 69 70 69 66  --..-5....skipif
2d0f0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2d100 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2d110 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2d120 30 32 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  026..SELECT DIST
2d130 49 4e 43 54 20 2d 20 36 20 2f 20 2b 20 43 4f 55  INCT - 6 / + COU
2d140 4e 54 20 28 20 2a 20 29 20 2b 20 2d 20 43 4f 55  NT ( * ) + - COU
2d150 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30  NT ( * ) AS col0
2d160 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
2d170 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 0d 0a 0d 0a  r0..----..-5....
2d180 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2d190 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20  .SELECT ALL - + 
2d1a0 32 37 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20 63  27 + + col2 AS c
2d1b0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
2d1c0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 32 0d   cor0..----..32.
2d1d0 0a 34 31 0d 0a 36 39 0d 0a 0d 0a 71 75 65 72 79  .41..69....query
2d1e0 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
2d1f0 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
2d200 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
2d210 55 4c 4c 20 3c 20 28 20 63 6f 6c 32 20 2d 20 63  ULL < ( col2 - c
2d220 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71  ol1 )..----....q
2d230 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2d240 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 63  SELECT ALL + - c
2d250 6f 6c 31 20 2a 20 2d 20 34 38 20 2b 20 33 31 20  ol1 * - 48 + 31 
2d260 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
2d270 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
2d280 0a 31 30 33 39 0d 0a 33 39 31 39 0d 0a 37 39 0d  .1039..3919..79.
2d290 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2d2a0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
2d2b0 4e 43 54 20 2b 20 35 20 2d 20 2d 20 63 6f 6c 31  NCT + 5 - - col1
2d2c0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
2d2d0 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
2d2e0 0d 0a 35 36 0d 0a 37 32 0d 0a 38 32 0d 0a 0d 0a  ..56..72..82....
2d2f0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
2d300 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2d310 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2d320 72 74 20 6c 61 62 65 6c 2d 31 30 33 31 0d 0a 53  rt label-1031..S
2d330 45 4c 45 43 54 20 41 4c 4c 20 2b 20 35 35 20 2a  ELECT ALL + 55 *
2d340 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d   COUNT( * ) FROM
2d350 20 74 61 62 31 20 57 48 45 52 45 20 28 20 63 6f   tab1 WHERE ( co
2d360 6c 32 20 2b 20 2b 20 63 6f 6c 32 20 29 20 42 45  l2 + + col2 ) BE
2d370 54 57 45 45 4e 20 63 6f 6c 32 20 41 4e 44 20 4e  TWEEN col2 AND N
2d380 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  ULL..----..0....
2d390 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2d3a0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2d3b0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2d3c0 61 62 65 6c 2d 31 30 33 31 0d 0a 53 45 4c 45 43  abel-1031..SELEC
2d3d0 54 20 41 4c 4c 20 2b 20 35 35 20 2a 20 43 4f 55  T ALL + 55 * COU
2d3e0 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  NT ( * ) FROM ta
2d3f0 62 31 20 57 48 45 52 45 20 28 20 63 6f 6c 32 20  b1 WHERE ( col2 
2d400 2b 20 2b 20 63 6f 6c 32 20 29 20 42 45 54 57 45  + + col2 ) BETWE
2d410 45 4e 20 63 6f 6c 32 20 41 4e 44 20 4e 55 4c 4c  EN col2 AND NULL
2d420 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69  ..----..0....ski
2d430 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
2d440 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
2d450 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
2d460 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
2d470 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
2d480 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
2d490 53 54 49 4e 43 54 20 63 6f 6c 32 20 2d 20 2b 20  STINCT col2 - + 
2d4a0 2d 20 28 20 2d 20 28 20 2b 20 34 32 20 29 20 29  - ( - ( + 42 ) )
2d4b0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
2d4c0 0a 2d 2d 2d 2d 0d 0a 31 37 0d 0a 32 36 0d 0a 35  .----..17..26..5
2d4d0 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  4....query III r
2d4e0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
2d4f0 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  LL * FROM tab2 W
2d500 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3e 3d  HERE NOT NULL >=
2d510 20 2b 20 36 30 20 2f 20 2b 20 63 6f 6c 31 20 4f   + 60 / + col1 O
2d520 52 20 4e 4f 54 20 63 6f 6c 32 20 2d 20 2d 20 63  R NOT col2 - - c
2d530 6f 6c 31 20 3c 3d 20 28 20 4e 55 4c 4c 20 29 0d  ol1 <= ( NULL ).
2d540 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
2d550 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2d560 20 33 39 20 2d 20 2b 20 37 37 20 2a 20 2b 20 39   39 - + 77 * + 9
2d570 38 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  8 FROM tab1..---
2d580 2d 0d 0a 2d 37 35 30 37 0d 0a 2d 37 35 30 37 0d  -..-7507..-7507.
2d590 0a 2d 37 35 30 37 0d 0a 0d 0a 71 75 65 72 79 20  .-7507....query 
2d5a0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
2d5b0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
2d5c0 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
2d5d0 4f 54 20 2d 20 32 33 20 2b 20 2b 20 32 36 20 3e  OT - 23 + + 26 >
2d5e0 3d 20 28 20 38 32 20 29 20 2f 20 2d 20 63 6f 6c  = ( 82 ) / - col
2d5f0 30 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a  0 + col1..----..
2d600 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
2d610 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63   to 75c998aa53ac
2d620 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64  83218cbf2feb962d
2d630 30 61 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  0a49....onlyif m
2d640 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
2d650 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
2d660 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2d670 2d 31 30 33 36 0d 0a 53 45 4c 45 43 54 20 44 49  -1036..SELECT DI
2d680 53 54 49 4e 43 54 20 2b 20 4d 49 4e 28 20 2b 20  STINCT + MIN( + 
2d690 63 6f 6c 31 20 29 20 63 6f 6c 32 20 46 52 4f 4d  col1 ) col2 FROM
2d6a0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 0d 0a   tab1..----..5..
2d6b0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2d6c0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2d6d0 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
2d6e0 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
2d6f0 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
2d700 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
2d710 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
2d720 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2d730 31 30 33 36 0d 0a 53 45 4c 45 43 54 20 44 49 53  1036..SELECT DIS
2d740 54 49 4e 43 54 20 2b 20 4d 49 4e 20 28 20 2b 20  TINCT + MIN ( + 
2d750 63 6f 6c 31 20 29 20 63 6f 6c 32 20 46 52 4f 4d  col1 ) col2 FROM
2d760 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 0d 0a   tab1..----..5..
2d770 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2d780 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
2d790 47 4e 45 44 20 74 79 70 65 3a 20 44 49 56 20 66  GNED type: DIV f
2d7a0 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
2d7b0 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
2d7c0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 33  owsort label-103
2d7d0 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  7..SELECT ALL + 
2d7e0 43 41 53 54 28 20 2b 20 28 20 2b 20 63 6f 6c 30  CAST( + ( + col0
2d7f0 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 44   ) AS SIGNED ) D
2d800 49 56 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74  IV - col0 FROM t
2d810 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d  ab2..----..-1..-
2d820 31 0d 0a 2d 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  1..-1....skipif 
2d830 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2d840 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2d850 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2d860 33 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  37..SELECT ALL +
2d870 20 43 41 53 54 20 28 20 2b 20 28 20 2b 20 63 6f   CAST ( + ( + co
2d880 6c 30 20 29 20 41 53 20 49 4e 54 45 47 45 52 20  l0 ) AS INTEGER 
2d890 29 20 2f 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20  ) / - col0 FROM 
2d8a0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a  tab2..----..-1..
2d8b0 2d 31 0d 0a 2d 31 0d 0a 0d 0a 71 75 65 72 79 20  -1..-1....query 
2d8c0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2d8d0 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 2b 20 63  T ALL - col0 + c
2d8e0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 57 48  ol1 FROM tab0 WH
2d8f0 45 52 45 20 4e 4f 54 20 28 20 2d 20 34 38 20 29  ERE NOT ( - 48 )
2d900 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   <> NULL..----..
2d910 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2d920 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 63 6f  t..SELECT - - co
2d930 6c 32 20 2a 20 63 6f 6c 31 20 2b 20 63 6f 6c 30  l2 * col1 + col0
2d940 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
2d950 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
2d960 0d 0a 31 39 36 0d 0a 32 39 37 0d 0a 33 38 32 32  ..196..297..3822
2d970 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2d980 6f 72 74 0d 0a 53 45 4c 45 43 54 20 35 37 20 2b  ort..SELECT 57 +
2d990 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20   - col1 AS col1 
2d9a0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
2d9b0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 2d 32  0..----..-10..-2
2d9c0 30 0d 0a 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  0..6....onlyif m
2d9d0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
2d9e0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
2d9f0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2da00 2d 31 30 34 31 0d 0a 53 45 4c 45 43 54 20 44 49  -1041..SELECT DI
2da10 53 54 49 4e 43 54 20 53 55 4d 28 20 2b 20 33 32  STINCT SUM( + 32
2da20 20 29 20 2a 20 2b 20 35 33 20 46 52 4f 4d 20 74   ) * + 53 FROM t
2da30 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
2da40 2d 0d 0a 35 30 38 38 0d 0a 0d 0a 73 6b 69 70 69  -..5088....skipi
2da50 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2da60 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2da70 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2da80 31 30 34 31 0d 0a 53 45 4c 45 43 54 20 44 49 53  1041..SELECT DIS
2da90 54 49 4e 43 54 20 53 55 4d 20 28 20 2b 20 33 32  TINCT SUM ( + 32
2daa0 20 29 20 2a 20 2b 20 35 33 20 46 52 4f 4d 20 74   ) * + 53 FROM t
2dab0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
2dac0 2d 0d 0a 35 30 38 38 0d 0a 0d 0a 6f 6e 6c 79 69  -..5088....onlyi
2dad0 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
2dae0 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
2daf0 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
2db00 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 34 32  wsort label-1042
2db10 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 34  ..SELECT ALL - 4
2db20 35 20 2a 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  5 * CAST( NULL A
2db30 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20  S SIGNED ) FROM 
2db40 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
2db50 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
2db60 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
2db70 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2db80 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
2db90 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 34  owsort label-104
2dba0 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  2..SELECT ALL - 
2dbb0 34 35 20 2a 20 43 41 53 54 20 28 20 4e 55 4c 4c  45 * CAST ( NULL
2dbc0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52   AS INTEGER ) FR
2dbd0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
2dbe0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
2dbf0 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69  L..NULL....onlyi
2dc00 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
2dc10 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
2dc20 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2dc30 62 65 6c 2d 31 30 34 33 0d 0a 53 45 4c 45 43 54  bel-1043..SELECT
2dc40 20 41 4c 4c 20 2b 20 4d 49 4e 28 20 2b 20 2b 20   ALL + MIN( + + 
2dc50 34 32 20 29 20 2a 20 2b 20 31 35 20 46 52 4f 4d  42 ) * + 15 FROM
2dc60 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
2dc70 2d 2d 2d 0d 0a 36 33 30 0d 0a 0d 0a 73 6b 69 70  ---..630....skip
2dc80 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2dc90 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2dca0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2dcb0 2d 31 30 34 33 0d 0a 53 45 4c 45 43 54 20 41 4c  -1043..SELECT AL
2dcc0 4c 20 2b 20 4d 49 4e 20 28 20 2b 20 2b 20 34 32  L + MIN ( + + 42
2dcd0 20 29 20 2a 20 2b 20 31 35 20 46 52 4f 4d 20 74   ) * + 15 FROM t
2dce0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
2dcf0 2d 0d 0a 36 33 30 0d 0a 0d 0a 73 6b 69 70 69 66  -..630....skipif
2dd00 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
2dd10 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
2dd20 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
2dd30 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
2dd40 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
2dd50 72 74 0d 0a 53 45 4c 45 43 54 20 34 33 20 2a 20  rt..SELECT 43 * 
2dd60 2b 20 63 6f 6c 32 20 2b 20 38 31 20 63 6f 6c 30  + col2 + 81 col0
2dd70 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
2dd80 20 4e 4f 54 20 2b 20 2d 20 63 6f 6c 32 20 49 53   NOT + - col2 IS
2dd90 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
2dda0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2ddb0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
2ddc0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
2ddd0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 34 35  wsort label-1045
2dde0 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54  ..SELECT - COUNT
2ddf0 28 20 2a 20 29 20 2b 20 2d 20 28 20 2b 20 43 4f  ( * ) + - ( + CO
2de00 55 4e 54 28 20 2a 20 29 20 29 20 41 53 20 63 6f  UNT( * ) ) AS co
2de10 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
2de20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
2de30 74 61 62 30 20 41 53 20 63 6f 72 31 0d 0a 2d 2d  tab0 AS cor1..--
2de40 2d 2d 0d 0a 2d 31 38 0d 0a 0d 0a 73 6b 69 70 69  --..-18....skipi
2de50 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2de60 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2de70 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2de80 31 30 34 35 0d 0a 53 45 4c 45 43 54 20 2d 20 43  1045..SELECT - C
2de90 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2d 20 28  OUNT ( * ) + - (
2dea0 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29   + COUNT ( * ) )
2deb0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
2dec0 62 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53  b2 AS cor0 CROSS
2ded0 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63 6f   JOIN tab0 AS co
2dee0 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38 0d 0a 0d  r1..----..-18...
2def0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2df00 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2df10 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2df20 6f 72 74 20 6c 61 62 65 6c 2d 31 30 34 36 0d 0a  ort label-1046..
2df30 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2df40 2b 20 31 38 20 2a 20 43 4f 55 4e 54 28 20 2a 20  + 18 * COUNT( * 
2df50 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
2df60 61 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f 53  ab1 AS cor0 CROS
2df70 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63  S JOIN tab0 AS c
2df80 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 31 36 32 0d 0a  or1..----..162..
2df90 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2dfa0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2dfb0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2dfc0 20 6c 61 62 65 6c 2d 31 30 34 36 0d 0a 53 45 4c   label-1046..SEL
2dfd0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 31  ECT DISTINCT + 1
2dfe0 38 20 2a 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  8 * COUNT ( * ) 
2dff0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
2e000 31 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  1 AS cor0 CROSS 
2e010 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63 6f 72  JOIN tab0 AS cor
2e020 31 0d 0a 2d 2d 2d 2d 0d 0a 31 36 32 0d 0a 0d 0a  1..----..162....
2e030 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
2e040 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2e050 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2e060 72 74 20 6c 61 62 65 6c 2d 31 30 34 37 0d 0a 53  rt label-1047..S
2e070 45 4c 45 43 54 20 2d 20 32 32 20 2a 20 43 4f 55  ELECT - 22 * COU
2e080 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  NT( * ) FROM tab
2e090 30 2c 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  0, tab1 AS cor0.
2e0a0 0a 2d 2d 2d 2d 0d 0a 2d 31 39 38 0d 0a 0d 0a 73  .----..-198....s
2e0b0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2e0c0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2e0d0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2e0e0 62 65 6c 2d 31 30 34 37 0d 0a 53 45 4c 45 43 54  bel-1047..SELECT
2e0f0 20 2d 20 32 32 20 2a 20 43 4f 55 4e 54 20 28 20   - 22 * COUNT ( 
2e100 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 2c 20 74  * ) FROM tab0, t
2e110 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
2e120 2d 0d 0a 2d 31 39 38 0d 0a 0d 0a 6f 6e 6c 79 69  -..-198....onlyi
2e130 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
2e140 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
2e150 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2e160 62 65 6c 2d 31 30 34 38 0d 0a 53 45 4c 45 43 54  bel-1048..SELECT
2e170 20 43 4f 55 4e 54 28 20 44 49 53 54 49 4e 43 54   COUNT( DISTINCT
2e180 20 2d 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63   - + col0 ) AS c
2e190 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
2e1a0 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66  ---..3....skipif
2e1b0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2e1c0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2e1d0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2e1e0 30 34 38 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e  048..SELECT COUN
2e1f0 54 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 2b  T ( DISTINCT - +
2e200 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 31 20   col0 ) AS col1 
2e210 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
2e220 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .3....query I ro
2e230 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
2e240 4c 20 2d 20 30 20 46 52 4f 4d 20 74 61 62 30 2c  L - 0 FROM tab0,
2e250 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
2e260 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
2e270 6e 67 20 74 6f 20 38 62 37 35 31 33 36 62 32 62  ng to 8b75136b2b
2e280 35 31 63 37 37 33 34 35 63 30 33 38 30 34 65 63  51c77345c03804ec
2e290 31 63 64 61 35 63 0d 0a 0d 0a 6f 6e 6c 79 69 66  1cda5c....onlyif
2e2a0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
2e2b0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
2e2c0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2e2d0 65 6c 2d 31 30 35 30 0d 0a 53 45 4c 45 43 54 20  el-1050..SELECT 
2e2e0 2d 20 28 20 2d 20 4d 49 4e 28 20 44 49 53 54 49  - ( - MIN( DISTI
2e2f0 4e 43 54 20 2b 20 2b 20 28 20 63 6f 6c 30 20 29  NCT + + ( col0 )
2e300 20 29 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74   ) ) col0 FROM t
2e310 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 0d  ab0..----..15...
2e320 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2e330 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2e340 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
2e350 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
2e360 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
2e370 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
2e380 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
2e390 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2e3a0 30 35 30 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20  050..SELECT - ( 
2e3b0 2d 20 4d 49 4e 20 28 20 44 49 53 54 49 4e 43 54  - MIN ( DISTINCT
2e3c0 20 2b 20 2b 20 28 20 63 6f 6c 30 20 29 20 29 20   + + ( col0 ) ) 
2e3d0 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  ) col0 FROM tab0
2e3e0 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 0d 0a 6f 6e  ..----..15....on
2e3f0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
2e400 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
2e410 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2e420 20 6c 61 62 65 6c 2d 31 30 35 31 0d 0a 53 45 4c   label-1051..SEL
2e430 45 43 54 20 41 4c 4c 20 2b 20 2d 20 43 4f 55 4e  ECT ALL + - COUN
2e440 54 28 20 2a 20 29 20 2a 20 2d 20 33 37 20 2d 20  T( * ) * - 37 - 
2e450 35 35 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  55 AS col0 FROM 
2e460 74 61 62 32 20 41 53 20 63 6f 72 30 20 43 52 4f  tab2 AS cor0 CRO
2e470 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20  SS JOIN tab0 AS 
2e480 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 32 37 38 0d  cor1..----..278.
2e490 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2e4a0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2e4b0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2e4c0 74 20 6c 61 62 65 6c 2d 31 30 35 31 0d 0a 53 45  t label-1051..SE
2e4d0 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 43 4f 55  LECT ALL + - COU
2e4e0 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20 33 37 20  NT ( * ) * - 37 
2e4f0 2d 20 35 35 20 41 53 20 63 6f 6c 30 20 46 52 4f  - 55 AS col0 FRO
2e500 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 43  M tab2 AS cor0 C
2e510 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 41  ROSS JOIN tab0 A
2e520 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 32 37  S cor1..----..27
2e530 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  8....query I row
2e540 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 34 35 20  sort..SELECT 45 
2e550 2a 20 2b 20 37 39 20 46 52 4f 4d 20 74 61 62 32  * + 79 FROM tab2
2e560 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2e570 33 35 35 35 0d 0a 33 35 35 35 0d 0a 33 35 35 35  3555..3555..3555
2e580 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
2e590 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
2e5a0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
2e5b0 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f  0 WHERE NOT - co
2e5c0 6c 32 20 2d 20 2b 20 63 6f 6c 31 20 2a 20 63 6f  l2 - + col1 * co
2e5d0 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l0 IS NULL..----
2e5e0 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
2e5f0 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33  ng to 75c998aa53
2e600 61 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36  ac83218cbf2feb96
2e610 32 64 30 61 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66  2d0a49....onlyif
2e620 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
2e630 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
2e640 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2e650 65 6c 2d 31 30 35 34 0d 0a 53 45 4c 45 43 54 20  el-1054..SELECT 
2e660 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 43  + COUNT( * ) * C
2e670 4f 55 4e 54 28 20 2a 20 29 20 63 6f 6c 32 20 46  OUNT( * ) col2 F
2e680 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d  ROM tab2 cor0..-
2e690 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 73 6b 69 70 69 66  ---..9....skipif
2e6a0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2e6b0 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
2e6c0 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
2e6d0 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
2e6e0 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
2e6f0 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
2e700 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2e710 74 20 6c 61 62 65 6c 2d 31 30 35 34 0d 0a 53 45  t label-1054..SE
2e720 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a  LECT + COUNT ( *
2e730 20 29 20 2a 20 43 4f 55 4e 54 20 28 20 2a 20 29   ) * COUNT ( * )
2e740 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
2e750 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d  cor0..----..9...
2e760 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2e770 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2e780 54 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 32 39 20  T - col0 * - 29 
2e790 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
2e7a0 30 0d 0a 2d 2d 2d 2d 0d 0a 32 35 32 33 0d 0a 32  0..----..2523..2
2e7b0 38 31 33 0d 0a 34 33 35 0d 0a 0d 0a 6f 6e 6c 79  813..435....only
2e7c0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
2e7d0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56  gate syntax: DIV
2e7e0 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
2e7f0 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
2e800 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2e810 30 35 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  056..SELECT DIST
2e820 49 4e 43 54 20 2d 20 2d 20 43 4f 55 4e 54 28 20  INCT - - COUNT( 
2e830 2a 20 29 20 44 49 56 20 43 4f 55 4e 54 28 20 2a  * ) DIV COUNT( *
2e840 20 29 20 2a 20 2d 20 2d 20 4d 41 58 28 20 44 49   ) * - - MAX( DI
2e850 53 54 49 4e 43 54 20 63 6f 6c 31 20 29 20 46 52  STINCT col1 ) FR
2e860 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
2e870 0a 2d 2d 2d 2d 0d 0a 37 37 0d 0a 0d 0a 73 6b 69  .----..77....ski
2e880 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2e890 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2e8a0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2e8b0 6c 2d 31 30 35 36 0d 0a 53 45 4c 45 43 54 20 44  l-1056..SELECT D
2e8c0 49 53 54 49 4e 43 54 20 2d 20 2d 20 43 4f 55 4e  ISTINCT - - COUN
2e8d0 54 20 28 20 2a 20 29 20 2f 20 43 4f 55 4e 54 20  T ( * ) / COUNT 
2e8e0 28 20 2a 20 29 20 2a 20 2d 20 2d 20 4d 41 58 20  ( * ) * - - MAX 
2e8f0 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20  ( DISTINCT col1 
2e900 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  ) FROM tab2 AS c
2e910 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 37 0d 0a 0d  or0..----..77...
2e920 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2e930 0d 0a 53 45 4c 45 43 54 20 39 36 20 2a 20 2b 20  ..SELECT 96 * + 
2e940 63 6f 6c 32 20 2a 20 2b 20 2d 20 63 6f 6c 30 20  col2 * + - col0 
2e950 2a 20 2b 20 37 30 20 2b 20 2d 20 63 6f 6c 30 20  * + 70 + - col0 
2e960 2a 20 34 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  * 4 AS col0 FROM
2e970 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
2e980 2d 2d 2d 0d 0a 2d 34 37 33 37 36 36 30 0d 0a 2d  ---..-4737660..-
2e990 35 38 34 36 37 34 38 0d 0a 2d 36 34 35 33 32 35  5846748..-645325
2e9a0 34 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  48....query I ro
2e9b0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 35 37  wsort..SELECT 57
2e9c0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
2e9d0 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
2e9e0 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 4e 4f   NOT ( NULL ) NO
2e9f0 54 20 42 45 54 57 45 45 4e 20 28 20 2d 20 63 6f  T BETWEEN ( - co
2ea00 6c 31 20 2a 20 2d 20 63 6f 6c 31 20 29 20 41 4e  l1 * - col1 ) AN
2ea10 44 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c  D - col1 * + col
2ea20 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  2..----....query
2ea30 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2ea40 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 2a 20  CT ALL + col1 * 
2ea50 2b 20 2d 20 35 35 20 2a 20 2d 20 28 20 32 30 20  + - 55 * - ( 20 
2ea60 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
2ea70 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 34 30 30  or0..----..15400
2ea80 0d 0a 35 31 37 30 30 0d 0a 35 35 30 30 0d 0a 0d  ..51700..5500...
2ea90 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2eaa0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63  ..SELECT ALL + c
2eab0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol1 FROM tab1 AS
2eac0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
2ead0 2d 20 63 6f 6c 30 20 2a 20 63 6f 6c 32 20 49 4e  - col0 * col2 IN
2eae0 20 28 20 2d 20 32 37 20 2b 20 2d 20 63 6f 6c 32   ( - 27 + - col2
2eaf0 20 29 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 34 37   )..----..14..47
2eb00 0d 0a 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ..5....query I r
2eb10 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
2eb20 49 53 54 49 4e 43 54 20 2b 20 37 31 20 2a 20 2b  ISTINCT + 71 * +
2eb30 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52   col2 AS col2 FR
2eb40 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 34  OM tab1..----..4
2eb50 31 38 39 0d 0a 34 38 32 38 0d 0a 36 38 31 36 0d  189..4828..6816.
2eb60 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
2eb70 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
2eb80 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e  ROM tab1 WHERE N
2eb90 4f 54 20 2b 20 36 31 20 49 4e 20 28 20 63 6f 6c  OT + 61 IN ( col
2eba0 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  1 )..----..9 val
2ebb0 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
2ebc0 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64 62  6c0a4111b36d04db
2ebd0 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64 0d  c811a11e4d54cad.
2ebe0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2ebf0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
2ec00 4e 43 54 20 2d 20 28 20 63 6f 6c 32 20 29 20 2b  NCT - ( col2 ) +
2ec10 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
2ec20 57 48 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 42  WHERE NULL NOT B
2ec30 45 54 57 45 45 4e 20 2d 20 2d 20 63 6f 6c 32 20  ETWEEN - - col2 
2ec40 2a 20 2b 20 38 38 20 41 4e 44 20 2b 20 32 38 20  * + 88 AND + 28 
2ec50 2f 20 32 32 20 2b 20 2b 20 39 36 0d 0a 2d 2d 2d  / 22 + + 96..---
2ec60 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
2ec70 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
2ec80 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
2ec90 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2eca0 6c 61 62 65 6c 2d 31 30 36 34 0d 0a 53 45 4c 45  label-1064..SELE
2ecb0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 31 35  CT DISTINCT + 15
2ecc0 20 2b 20 2b 20 2b 20 63 6f 6c 32 20 2b 20 63 6f   + + + col2 + co
2ecd0 6c 30 20 44 49 56 20 38 33 20 44 49 56 20 2b 20  l0 DIV 83 DIV + 
2ece0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
2ecf0 2d 2d 2d 2d 0d 0a 31 31 34 0d 0a 32 35 0d 0a 36  ----..114..25..6
2ed00 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  2....skipif mysq
2ed10 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2ed20 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2ed30 6f 72 74 20 6c 61 62 65 6c 2d 31 30 36 34 0d 0a  ort label-1064..
2ed40 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2ed50 2b 20 31 35 20 2b 20 2b 20 2b 20 63 6f 6c 32 20  + 15 + + + col2 
2ed60 2b 20 63 6f 6c 30 20 2f 20 38 33 20 2f 20 2b 20  + col0 / 83 / + 
2ed70 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
2ed80 2d 2d 2d 2d 0d 0a 31 31 34 0d 0a 32 35 0d 0a 36  ----..114..25..6
2ed90 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  2....query I row
2eda0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63  sort..SELECT - c
2edb0 6f 6c 30 20 2b 20 2b 20 35 20 2b 20 2d 20 33 33  ol0 + + 5 + - 33
2edc0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
2edd0 0d 0a 2d 31 31 33 0d 0a 2d 31 31 39 0d 0a 2d 37  ..-113..-119..-7
2ede0 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  9....onlyif mysq
2edf0 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
2ee00 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
2ee10 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
2ee20 74 20 6c 61 62 65 6c 2d 31 30 36 36 0d 0a 53 45  t label-1066..SE
2ee30 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  LECT * FROM tab2
2ee40 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2d 20 63   WHERE NOT ( - c
2ee50 6f 6c 30 20 2b 20 43 41 53 54 28 20 32 20 41 53  ol0 + CAST( 2 AS
2ee60 20 53 49 47 4e 45 44 20 29 20 29 20 49 53 20 4e   SIGNED ) ) IS N
2ee70 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  ULL..----..9 val
2ee80 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37  ues hashing to 7
2ee90 35 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38  5c998aa53ac83218
2eea0 63 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d  cbf2feb962d0a49.
2eeb0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2eec0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2eed0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
2eee0 6f 72 74 20 6c 61 62 65 6c 2d 31 30 36 36 0d 0a  ort label-1066..
2eef0 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
2ef00 62 32 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2d  b2 WHERE NOT ( -
2ef10 20 63 6f 6c 30 20 2b 20 43 41 53 54 20 28 20 32   col0 + CAST ( 2
2ef20 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20   AS INTEGER ) ) 
2ef30 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  IS NULL..----..9
2ef40 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
2ef50 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38  to 75c998aa53ac8
2ef60 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30  3218cbf2feb962d0
2ef70 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  a49....query I r
2ef80 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
2ef90 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 2b 20 63 6f   - col1 + + + co
2efa0 6c 30 20 2b 20 2d 20 2d 20 63 6f 6c 30 20 46 52  l0 + - - col0 FR
2efb0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
2efc0 0a 2d 2d 2d 2d 0d 0a 34 31 0d 0a 35 31 0d 0a 38  .----..41..51..8
2efd0 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  3....query I row
2efe0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b  sort..SELECT + +
2eff0 20 63 6f 6c 31 20 2b 20 63 6f 6c 32 20 2d 20 63   col1 + col2 - c
2f000 6f 6c 31 20 2d 20 2d 20 39 39 20 41 53 20 63 6f  ol1 - - 99 AS co
2f010 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
2f020 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 38 0d  cor0..----..158.
2f030 0a 31 36 37 0d 0a 31 39 35 0d 0a 0d 0a 73 6b 69  .167..195....ski
2f040 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
2f050 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
2f060 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
2f070 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
2f080 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
2f090 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
2f0a0 2d 20 63 6f 6c 31 20 2b 20 2b 20 2b 20 63 6f 6c  - col1 + + + col
2f0b0 31 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  1 col1 FROM tab0
2f0c0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2f0d0 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69  0..0..0....onlyi
2f0e0 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
2f0f0 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
2f100 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
2f110 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 37 30  wsort label-1070
2f120 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b  ..SELECT ALL - +
2f130 20 38 37 20 44 49 56 20 2b 20 32 20 46 52 4f 4d   87 DIV + 2 FROM
2f140 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
2f150 0d 0a 2d 34 33 0d 0a 2d 34 33 0d 0a 2d 34 33 0d  ..-43..-43..-43.
2f160 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2f170 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2f180 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2f190 74 20 6c 61 62 65 6c 2d 31 30 37 30 0d 0a 53 45  t label-1070..SE
2f1a0 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 38 37 20  LECT ALL - + 87 
2f1b0 2f 20 2b 20 32 20 46 52 4f 4d 20 74 61 62 31 20  / + 2 FROM tab1 
2f1c0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 33 0d  cor0..----..-43.
2f1d0 0a 2d 34 33 0d 0a 2d 34 33 0d 0a 0d 0a 71 75 65  .-43..-43....que
2f1e0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2f1f0 4c 45 43 54 20 2b 20 63 6f 6c 31 20 46 52 4f 4d  LECT + col1 FROM
2f200 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
2f210 45 52 45 20 2d 20 28 20 63 6f 6c 30 20 29 20 3e  ERE - ( col0 ) >
2f220 20 2b 20 28 20 2d 20 35 38 20 29 20 2b 20 2d 20   + ( - 58 ) + - 
2f230 31 33 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 0d 0a  13..----..14....
2f240 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2f250 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2f260 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20   - col2 AS col1 
2f270 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
2f280 30 20 57 48 45 52 45 20 28 20 2d 20 31 34 20 2a  0 WHERE ( - 14 *
2f290 20 2b 20 37 35 20 2a 20 2d 20 31 39 20 29 20 3c   + 75 * - 19 ) <
2f2a0 3d 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a  = + col1..----..
2f2b0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2f2c0 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
2f2d0 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
2f2e0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2f2f0 65 6c 2d 31 30 37 33 0d 0a 53 45 4c 45 43 54 20  el-1073..SELECT 
2f300 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 2b 20  DISTINCT col2 + 
2f310 63 6f 6c 31 20 44 49 56 20 2b 20 63 6f 6c 30 20  col1 DIV + col0 
2f320 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
2f330 30 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 36 38 0d  0..----..59..68.
2f340 0a 39 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .96....skipif my
2f350 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2f360 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
2f370 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 37 33  wsort label-1073
2f380 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2f390 54 20 63 6f 6c 32 20 2b 20 63 6f 6c 31 20 2f 20  T col2 + col1 / 
2f3a0 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  + col0 FROM tab1
2f3b0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2f3c0 35 39 0d 0a 36 38 0d 0a 39 36 0d 0a 0d 0a 71 75  59..68..96....qu
2f3d0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2f3e0 45 4c 45 43 54 20 63 6f 6c 32 20 41 53 20 63 6f  ELECT col2 AS co
2f3f0 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72  l2 FROM tab2 cor
2f400 30 20 57 48 45 52 45 20 28 20 63 6f 6c 32 20 29  0 WHERE ( col2 )
2f410 20 3c 20 2b 20 37 38 0d 0a 2d 2d 2d 2d 0d 0a 32   < + 78..----..2
2f420 33 0d 0a 34 30 0d 0a 35 38 0d 0a 0d 0a 71 75 65  3..40..58....que
2f430 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
2f440 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2f450 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  * FROM tab0 AS c
2f460 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 32 34  or0 WHERE NOT 24
2f470 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
2f480 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  --....query III 
2f490 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2f4a0 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
2f4b0 45 20 28 20 2d 20 63 6f 6c 31 20 2d 20 2d 20 38  E ( - col1 - - 8
2f4c0 39 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  9 ) IS NULL..---
2f4d0 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
2f4e0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
2f4f0 54 49 4e 43 54 20 2d 20 35 33 20 2a 20 39 38 20  TINCT - 53 * 98 
2f500 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2f510 30 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  0 AS cor0 CROSS 
2f520 4a 4f 49 4e 20 74 61 62 32 20 41 53 20 63 6f 72  JOIN tab2 AS cor
2f530 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 39 34 0d 0a  1..----..-5194..
2f540 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2f550 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32  t..SELECT - col2
2f560 20 2d 20 2d 20 2d 20 36 35 20 46 52 4f 4d 20 74   - - - 65 FROM t
2f570 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab1 cor0..----..
2f580 2d 31 32 34 0d 0a 2d 31 33 33 0d 0a 2d 31 36 31  -124..-133..-161
2f590 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2f5a0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
2f5b0 49 4e 43 54 20 34 37 20 2b 20 2b 20 34 32 20 46  INCT 47 + + 42 F
2f5c0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
2f5d0 20 57 48 45 52 45 20 2d 20 2d 20 63 6f 6c 32 20   WHERE - - col2 
2f5e0 2b 20 2b 20 34 37 20 3e 3d 20 2d 20 63 6f 6c 32  + + 47 >= - col2
2f5f0 20 41 4e 44 20 2b 20 63 6f 6c 32 20 49 53 20 4e   AND + col2 IS N
2f600 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
2f610 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2f620 4c 45 43 54 20 34 30 20 2d 20 2d 20 2d 20 33 39  LECT 40 - - - 39
2f630 20 2a 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20   * col0 AS col0 
2f640 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
2f650 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 33 35 33 0d 0a  0..----..-3353..
2f660 2d 33 37 34 33 0d 0a 2d 35 34 35 0d 0a 0d 0a 71  -3743..-545....q
2f670 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2f680 53 45 4c 45 43 54 20 41 4c 4c 20 39 30 20 2b 20  SELECT ALL 90 + 
2f690 2b 20 36 39 20 41 53 20 63 6f 6c 32 20 46 52 4f  + 69 AS col2 FRO
2f6a0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
2f6b0 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 4e 4f  HERE ( NULL ) NO
2f6c0 54 20 49 4e 20 28 20 33 39 20 29 20 41 4e 44 20  T IN ( 39 ) AND 
2f6d0 2d 20 63 6f 6c 32 20 3d 20 28 20 38 33 20 29 0d  - col2 = ( 83 ).
2f6e0 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
2f6f0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2f700 20 36 30 20 2b 20 2b 20 63 6f 6c 31 20 41 53 20   60 + + col1 AS 
2f710 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
2f720 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30  S cor0..----..10
2f730 37 0d 0a 36 35 0d 0a 37 34 0d 0a 0d 0a 6f 6e 6c  7..65..74....onl
2f740 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
2f750 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
2f760 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2f770 6c 61 62 65 6c 2d 31 30 38 33 0d 0a 53 45 4c 45  label-1083..SELE
2f780 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43 4f  CT DISTINCT - CO
2f790 55 4e 54 28 20 2d 20 2b 20 63 6f 6c 30 20 29 20  UNT( - + col0 ) 
2f7a0 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
2f7b0 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .-3....skipif my
2f7c0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2f7d0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
2f7e0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 38 33  wsort label-1083
2f7f0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2f800 54 20 2d 20 43 4f 55 4e 54 20 28 20 2d 20 2b 20  T - COUNT ( - + 
2f810 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 31  col0 ) FROM tab1
2f820 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75  ..----..-3....qu
2f830 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2f840 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2a 20 2d  ELECT + col2 * -
2f850 20 2d 20 32 36 20 46 52 4f 4d 20 74 61 62 31 0d   - 26 FROM tab1.
2f860 0a 2d 2d 2d 2d 0d 0a 31 35 33 34 0d 0a 31 37 36  .----..1534..176
2f870 38 0d 0a 32 34 39 36 0d 0a 0d 0a 71 75 65 72 79  8..2496....query
2f880 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2f890 43 54 20 44 49 53 54 49 4e 43 54 20 28 20 2d 20  CT DISTINCT ( - 
2f8a0 38 31 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  81 ) AS col1 FRO
2f8b0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38  M tab0..----..-8
2f8c0 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  1....query II ro
2f8d0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
2f8e0 4c 20 2b 20 36 37 20 41 53 20 63 6f 6c 32 2c 20  L + 67 AS col2, 
2f8f0 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  - col0 FROM tab2
2f900 0d 0a 2d 2d 2d 2d 0d 0a 36 37 0d 0a 2d 34 36 0d  ..----..67..-46.
2f910 0a 36 37 0d 0a 2d 36 34 0d 0a 36 37 0d 0a 2d 37  .67..-64..67..-7
2f920 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  5....query III r
2f930 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
2f940 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41  LL * FROM tab1 A
2f950 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
2f960 20 28 20 2b 20 63 6f 6c 31 20 29 20 4e 4f 54 20   ( + col1 ) NOT 
2f970 49 4e 20 28 20 2d 20 63 6f 6c 31 2c 20 2d 20 31  IN ( - col1, - 1
2f980 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  0 )..----....que
2f990 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2f9a0 4c 45 43 54 20 2d 20 2b 20 63 6f 6c 31 20 2d 20  LECT - + col1 - 
2f9b0 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46  - col2 AS col1 F
2f9c0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
2f9d0 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 38 34 20   WHERE NOT + 84 
2f9e0 2b 20 2d 20 2d 20 63 6f 6c 32 20 2a 20 37 31 20  + - - col2 * 71 
2f9f0 3c 3d 20 33 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 38 0d  <= 3..----..-28.
2fa00 0a 2d 33 37 0d 0a 2d 39 0d 0a 0d 0a 6f 6e 6c 79  .-37..-9....only
2fa10 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
2fa20 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
2fa30 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2fa40 61 62 65 6c 2d 31 30 38 39 0d 0a 53 45 4c 45 43  abel-1089..SELEC
2fa50 54 20 2b 20 4d 41 58 28 20 41 4c 4c 20 28 20 2d  T + MAX( ALL ( -
2fa60 20 28 20 2d 20 63 6f 6c 30 20 29 20 29 20 29 20   ( - col0 ) ) ) 
2fa70 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  + + COUNT( * ) F
2fa80 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
2fa90 20 57 48 45 52 45 20 4e 4f 54 20 28 20 63 6f 6c   WHERE NOT ( col
2faa0 30 20 29 20 4e 4f 54 20 49 4e 20 28 20 63 6f 6c  0 ) NOT IN ( col
2fab0 32 2c 20 2b 20 28 20 2d 20 36 37 20 29 20 29 0d  2, + ( - 67 ) ).
2fac0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
2fad0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2fae0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2faf0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2fb00 62 65 6c 2d 31 30 38 39 0d 0a 53 45 4c 45 43 54  bel-1089..SELECT
2fb10 20 2b 20 4d 41 58 20 28 20 41 4c 4c 20 28 20 2d   + MAX ( ALL ( -
2fb20 20 28 20 2d 20 63 6f 6c 30 20 29 20 29 20 29 20   ( - col0 ) ) ) 
2fb30 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  + + COUNT ( * ) 
2fb40 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
2fb50 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 63 6f  0 WHERE NOT ( co
2fb60 6c 30 20 29 20 4e 4f 54 20 49 4e 20 28 20 63 6f  l0 ) NOT IN ( co
2fb70 6c 32 2c 20 2b 20 28 20 2d 20 36 37 20 29 20 29  l2, + ( - 67 ) )
2fb80 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
2fb90 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2fba0 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2d  .SELECT - col2 -
2fbb0 20 2d 20 28 20 2d 20 36 33 20 29 20 41 53 20 63   - ( - 63 ) AS c
2fbc0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 57 48  ol0 FROM tab0 WH
2fbd0 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54  ERE NOT NULL NOT
2fbe0 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e   BETWEEN NULL AN
2fbf0 44 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a  D - col1..----..
2fc00 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2fc10 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67   CAST syntax: ag
2fc20 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
2fc30 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
2fc40 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2fc50 61 62 65 6c 2d 31 30 39 31 0d 0a 53 45 4c 45 43  abel-1091..SELEC
2fc60 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 28 20 2a  T ALL + COUNT( *
2fc70 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
2fc80 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d  cor0 WHERE NOT -
2fc90 20 43 41 53 54 28 20 2d 20 63 6f 6c 30 20 41 53   CAST( - col0 AS
2fca0 20 53 49 47 4e 45 44 20 29 20 3e 20 63 6f 6c 32   SIGNED ) > col2
2fcb0 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69  ..----..0....ski
2fcc0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2fcd0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2fce0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2fcf0 6c 2d 31 30 39 31 0d 0a 53 45 4c 45 43 54 20 41  l-1091..SELECT A
2fd00 4c 4c 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29  LL + COUNT ( * )
2fd10 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
2fd20 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 43  r0 WHERE NOT - C
2fd30 41 53 54 20 28 20 2d 20 63 6f 6c 30 20 41 53 20  AST ( - col0 AS 
2fd40 49 4e 54 45 47 45 52 20 29 20 3e 20 63 6f 6c 32  INTEGER ) > col2
2fd50 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65  ..----..0....que
2fd60 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2fd70 4c 45 43 54 20 41 4c 4c 20 2b 20 28 20 2b 20 2d  LECT ALL + ( + -
2fd80 20 32 30 20 29 20 46 52 4f 4d 20 74 61 62 32 20   20 ) FROM tab2 
2fd90 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30 0d  cor0..----..-20.
2fda0 0a 2d 32 30 0d 0a 2d 32 30 0d 0a 0d 0a 71 75 65  .-20..-20....que
2fdb0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2fdc0 4c 45 43 54 20 63 6f 6c 31 20 41 53 20 63 6f 6c  LECT col1 AS col
2fdd0 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
2fde0 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55  or0 WHERE NOT NU
2fdf0 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 63  LL NOT BETWEEN c
2fe00 6f 6c 30 20 41 4e 44 20 28 20 2b 20 63 6f 6c 32  ol0 AND ( + col2
2fe10 20 2b 20 2d 20 28 20 2b 20 2b 20 28 20 63 6f 6c   + - ( + + ( col
2fe20 30 20 29 20 29 20 2d 20 2b 20 63 6f 6c 31 20 2a  0 ) ) - + col1 *
2fe30 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   col0 )..----...
2fe40 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2fe50 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2fe60 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2fe70 6f 72 74 20 6c 61 62 65 6c 2d 31 30 39 34 0d 0a  ort label-1094..
2fe80 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2fe90 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  - COUNT( * ) AS 
2fea0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41  col2 FROM tab1 A
2feb0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
2fec0 20 2b 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d   + col1 IS NULL.
2fed0 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69  .----..-3....ski
2fee0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2fef0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2ff00 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2ff10 6c 2d 31 30 39 34 0d 0a 53 45 4c 45 43 54 20 44  l-1094..SELECT D
2ff20 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 20  ISTINCT - COUNT 
2ff30 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ( * ) AS col2 FR
2ff40 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
2ff50 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 31  WHERE NOT + col1
2ff60 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
2ff70 2d 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  -3....query I ro
2ff80 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
2ff90 53 54 49 4e 43 54 20 2b 20 2b 20 31 35 20 2a 20  STINCT + + 15 * 
2ffa0 2b 20 31 34 20 41 53 20 63 6f 6c 30 20 46 52 4f  + 14 AS col0 FRO
2ffb0 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
2ffc0 2d 0d 0a 32 31 30 0d 0a 0d 0a 71 75 65 72 79 20  -..210....query 
2ffd0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2ffe0 54 20 63 6f 6c 32 20 2a 20 2d 20 2b 20 63 6f 6c  T col2 * - + col
2fff0 32 20 2a 20 2d 20 2b 20 63 6f 6c 30 20 2a 20 2b  2 * - + col0 * +
30000 20 2d 20 34 37 20 46 52 4f 4d 20 74 61 62 32 20   - 47 FROM tab2 
30010 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
30020 31 31 34 33 36 39 38 0d 0a 2d 31 31 38 35 38 31  1143698..-118581
30030 30 30 0d 0a 2d 34 38 31 32 38 30 30 0d 0a 0d 0a  00..-4812800....
30040 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
30050 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
30060 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
30070 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 4e 20  ERE NOT NULL IN 
30080 28 20 33 36 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  ( 36 )..----....
30090 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
300a0 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20  ..SELECT + col1 
300b0 2a 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32  * - col2 AS col2
300c0 2c 20 2d 20 28 20 2d 20 33 37 20 29 20 41 53 20  , - ( - 37 ) AS 
300d0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
300e0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
300f0 33 34 34 0d 0a 33 37 0d 0a 2d 32 39 35 0d 0a 33  344..37..-295..3
30100 37 0d 0a 2d 33 31 39 36 0d 0a 33 37 0d 0a 0d 0a  7..-3196..37....
30110 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
30120 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
30130 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
30140 72 74 20 6c 61 62 65 6c 2d 31 30 39 39 0d 0a 53  rt label-1099..S
30150 45 4c 45 43 54 20 41 4c 4c 20 53 55 4d 28 20 2d  ELECT ALL SUM( -
30160 20 2d 20 35 36 20 29 20 46 52 4f 4d 20 74 61 62   - 56 ) FROM tab
30170 31 0d 0a 2d 2d 2d 2d 0d 0a 31 36 38 0d 0a 0d 0a  1..----..168....
30180 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
30190 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
301a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
301b0 61 62 65 6c 2d 31 30 39 39 0d 0a 53 45 4c 45 43  abel-1099..SELEC
301c0 54 20 41 4c 4c 20 53 55 4d 20 28 20 2d 20 2d 20  T ALL SUM ( - - 
301d0 35 36 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a  56 ) FROM tab1..
301e0 2d 2d 2d 2d 0d 0a 31 36 38 0d 0a 0d 0a 6f 6e 6c  ----..168....onl
301f0 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
30200 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
30210 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
30220 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
30230 30 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  00..SELECT DISTI
30240 4e 43 54 20 63 6f 6c 32 20 44 49 56 20 35 34 20  NCT col2 DIV 54 
30250 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
30260 2d 2d 2d 2d 0d 0a 30 0d 0a 31 0d 0a 0d 0a 73 6b  ----..0..1....sk
30270 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
30280 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69   compatible..ski
30290 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
302a0 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
302b0 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
302c0 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
302d0 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
302e0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 30 30  wsort label-1100
302f0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
30300 54 20 63 6f 6c 32 20 2f 20 35 34 20 63 6f 6c 30  T col2 / 54 col0
30310 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
30320 0d 0a 30 0d 0a 31 0d 0a 0d 0a 71 75 65 72 79 20  ..0..1....query 
30330 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
30340 54 20 44 49 53 54 49 4e 43 54 20 2b 20 34 30 20  T DISTINCT + 40 
30350 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
30360 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20  0 WHERE NULL IS 
30370 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
30380 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
30390 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
303a0 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
303b0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
303c0 65 6c 2d 31 31 30 32 0d 0a 53 45 4c 45 43 54 20  el-1102..SELECT 
303d0 2d 20 63 6f 6c 31 20 44 49 56 20 2b 20 63 6f 6c  - col1 DIV + col
303e0 30 20 2a 20 2d 20 2b 20 37 30 20 46 52 4f 4d 20  0 * - + 70 FROM 
303f0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30  tab1..----..0..0
30400 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
30410 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
30420 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
30430 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 30 32  wsort label-1102
30440 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20  ..SELECT - col1 
30450 2f 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 2b 20 37  / + col0 * - + 7
30460 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  0 FROM tab1..---
30470 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 6f 6e  -..0..0..0....on
30480 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
30490 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
304a0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
304b0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
304c0 31 30 33 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41  103..SELECT - CA
304d0 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
304e0 45 44 20 29 20 2f 20 2d 20 33 36 20 46 52 4f 4d  ED ) / - 36 FROM
304f0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   tab2..----..NUL
30500 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
30510 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
30520 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
30530 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
30540 6c 61 62 65 6c 2d 31 31 30 33 0d 0a 53 45 4c 45  label-1103..SELE
30550 43 54 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c  CT - CAST ( NULL
30560 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2f 20   AS INTEGER ) / 
30570 2d 20 33 36 20 46 52 4f 4d 20 74 61 62 32 0d 0a  - 36 FROM tab2..
30580 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
30590 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..NULL....onlyif
305a0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
305b0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
305c0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
305d0 65 6c 2d 31 31 30 34 0d 0a 53 45 4c 45 43 54 20  el-1104..SELECT 
305e0 41 4c 4c 20 4d 41 58 28 20 44 49 53 54 49 4e 43  ALL MAX( DISTINC
305f0 54 20 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20  T - col0 ) FROM 
30600 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d  tab2..----..-46.
30610 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
30620 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
30630 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
30640 74 20 6c 61 62 65 6c 2d 31 31 30 34 0d 0a 53 45  t label-1104..SE
30650 4c 45 43 54 20 41 4c 4c 20 4d 41 58 20 28 20 44  LECT ALL MAX ( D
30660 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20 29  ISTINCT - col0 )
30670 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
30680 0d 0a 2d 34 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-46....onlyif 
30690 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
306a0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
306b0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
306c0 6c 2d 31 31 30 35 0d 0a 53 45 4c 45 43 54 20 41  l-1105..SELECT A
306d0 4c 4c 20 43 4f 55 4e 54 28 20 2d 20 63 6f 6c 30  LL COUNT( - col0
306e0 20 29 20 2b 20 53 55 4d 28 20 31 39 20 29 20 41   ) + SUM( 19 ) A
306f0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
30700 0d 0a 2d 2d 2d 2d 0d 0a 36 30 0d 0a 0d 0a 73 6b  ..----..60....sk
30710 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
30720 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
30730 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
30740 65 6c 2d 31 31 30 35 0d 0a 53 45 4c 45 43 54 20  el-1105..SELECT 
30750 41 4c 4c 20 43 4f 55 4e 54 20 28 20 2d 20 63 6f  ALL COUNT ( - co
30760 6c 30 20 29 20 2b 20 53 55 4d 20 28 20 31 39 20  l0 ) + SUM ( 19 
30770 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
30780 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 36 30 0d 0a 0d  ab1..----..60...
30790 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
307a0 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20  ..SELECT + col2 
307b0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
307c0 32 20 57 48 45 52 45 20 28 20 2b 20 63 6f 6c 32  2 WHERE ( + col2
307d0 20 29 20 2a 20 63 6f 6c 31 20 2a 20 2b 20 2d 20   ) * col1 * + - 
307e0 63 6f 6c 32 20 3c 3d 20 63 6f 6c 31 0d 0a 2d 2d  col2 <= col1..--
307f0 2d 2d 0d 0a 32 33 0d 0a 34 30 0d 0a 35 38 0d 0a  --..23..40..58..
30800 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
30810 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
30820 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
30830 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
30840 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
30850 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
30860 45 43 54 20 2b 20 63 6f 6c 32 20 63 6f 6c 30 2c  ECT + col2 col0,
30870 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52   col2 AS col0 FR
30880 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
30890 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 35 39 0d 0a 36  .----..59..59..6
308a0 38 0d 0a 36 38 0d 0a 39 36 0d 0a 39 36 0d 0a 0d  8..68..96..96...
308b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
308c0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 28  ..SELECT ALL + (
308d0 20 2b 20 63 6f 6c 31 20 29 20 2a 20 2d 20 33 20   + col1 ) * - 3 
308e0 2b 20 2b 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f  + + - col1 AS co
308f0 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
30900 2d 2d 0d 0a 2d 33 32 34 0d 0a 2d 34 0d 0a 2d 38  --..-324..-4..-8
30910 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 49 49  4....query IIIII
30920 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
30930 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53  T * FROM tab2 AS
30940 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
30950 20 74 61 62 31 20 41 53 20 63 6f 72 31 20 57 48   tab1 AS cor1 WH
30960 45 52 45 20 28 20 4e 4f 54 20 28 20 4e 4f 54 20  ERE ( NOT ( NOT 
30970 28 20 36 35 20 29 20 49 53 20 4e 4f 54 20 4e 55  ( 65 ) IS NOT NU
30980 4c 4c 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 35 34  LL ) )..----..54
30990 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
309a0 74 6f 20 33 33 61 30 34 39 33 65 37 37 62 66 38  to 33a0493e77bf8
309b0 31 35 31 36 37 36 63 39 34 38 62 30 36 37 36 64  151676c948b0676d
309c0 36 62 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  6b9....skipif po
309d0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
309e0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
309f0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
30a00 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
30a10 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
30a20 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
30a30 20 2b 20 2b 20 39 36 20 63 6f 6c 32 20 46 52 4f   + + 96 col2 FRO
30a40 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
30a50 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 31 20  HERE NOT - col1 
30a60 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
30a70 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
30a80 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
30a90 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
30aa0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
30ab0 31 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  11..SELECT ALL +
30ac0 20 33 36 20 2a 20 38 38 20 2f 20 2b 20 53 55 4d   36 * 88 / + SUM
30ad0 28 20 2b 20 28 20 2b 20 36 38 20 29 20 29 20 63  ( + ( + 68 ) ) c
30ae0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
30af0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c   cor0 WHERE NULL
30b00 20 3c 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   <= NULL..----..
30b10 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
30b20 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
30b30 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
30b40 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
30b50 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
30b60 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
30b70 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
30b80 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
30b90 6c 61 62 65 6c 2d 31 31 31 31 0d 0a 53 45 4c 45  label-1111..SELE
30ba0 43 54 20 41 4c 4c 20 2b 20 33 36 20 2a 20 38 38  CT ALL + 36 * 88
30bb0 20 2f 20 2b 20 53 55 4d 20 28 20 2b 20 28 20 2b   / + SUM ( + ( +
30bc0 20 36 38 20 29 20 29 20 63 6f 6c 30 20 46 52 4f   68 ) ) col0 FRO
30bd0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
30be0 48 45 52 45 20 4e 55 4c 4c 20 3c 3d 20 4e 55 4c  HERE NULL <= NUL
30bf0 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  L..----..NULL...
30c00 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
30c10 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
30c20 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
30c30 48 45 52 45 20 2b 20 63 6f 6c 30 20 3c 3e 20 2d  HERE + col0 <> -
30c40 20 2d 20 28 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d   - ( col1 )..---
30c50 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
30c60 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31  ing to c6c0a4111
30c70 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65  b36d04dbc811a11e
30c80 34 64 35 34 63 61 64 0d 0a 0d 0a 73 6b 69 70 69  4d54cad....skipi
30c90 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
30ca0 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
30cb0 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
30cc0 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
30cd0 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ns..query II row
30ce0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
30cf0 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20 2b 20 2b  TINCT + col0 + +
30d00 20 63 6f 6c 31 2c 20 63 6f 6c 31 20 63 6f 6c 31   col1, col1 col1
30d10 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
30d20 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 38 0d 0a 34  r0..----..138..4
30d30 37 0d 0a 36 35 0d 0a 31 34 0d 0a 39 30 0d 0a 35  7..65..14..90..5
30d40 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
30d50 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
30d60 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 30 20 2b 20  col2 * + col0 + 
30d70 2d 20 28 20 2b 20 63 6f 6c 30 20 29 20 41 53 20  - ( + col0 ) AS 
30d80 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
30d90 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 39  S cor0..----..69
30da0 30 0d 0a 37 38 33 0d 0a 39 35 30 36 0d 0a 0d 0a  0..783..9506....
30db0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
30dc0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
30dd0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
30de0 72 74 20 6c 61 62 65 6c 2d 31 31 31 35 0d 0a 53  rt label-1115..S
30df0 45 4c 45 43 54 20 2d 20 31 31 20 2a 20 43 4f 55  ELECT - 11 * COU
30e00 4e 54 28 20 2a 20 29 20 63 6f 6c 31 20 46 52 4f  NT( * ) col1 FRO
30e10 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
30e20 2d 0d 0a 2d 33 33 0d 0a 0d 0a 73 6b 69 70 69 66  -..-33....skipif
30e30 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
30e40 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
30e50 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
30e60 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
30e70 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
30e80 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
30e90 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
30ea0 74 20 6c 61 62 65 6c 2d 31 31 31 35 0d 0a 53 45  t label-1115..SE
30eb0 4c 45 43 54 20 2d 20 31 31 20 2a 20 43 4f 55 4e  LECT - 11 * COUN
30ec0 54 20 28 20 2a 20 29 20 63 6f 6c 31 20 46 52 4f  T ( * ) col1 FRO
30ed0 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
30ee0 2d 0d 0a 2d 33 33 0d 0a 0d 0a 6f 6e 6c 79 69 66  -..-33....onlyif
30ef0 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
30f00 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
30f10 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
30f20 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31 36 0d  sort label-1116.
30f30 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f  .SELECT ALL + co
30f40 6c 32 20 2a 20 2d 20 63 6f 6c 30 20 2b 20 2d 20  l2 * - col0 + - 
30f50 28 20 2b 20 2d 20 34 37 20 29 20 44 49 56 20 2b  ( + - 47 ) DIV +
30f60 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 30 20 46   col1 + - col0 F
30f70 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
30f80 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 30 34 0d 0a 2d  ..----..-1104..-
30f90 32 36 32 34 0d 0a 2d 34 34 32 35 0d 0a 0d 0a 73  2624..-4425....s
30fa0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
30fb0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
30fc0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
30fd0 62 65 6c 2d 31 31 31 36 0d 0a 53 45 4c 45 43 54  bel-1116..SELECT
30fe0 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 2a 20 2d 20   ALL + col2 * - 
30ff0 63 6f 6c 30 20 2b 20 2d 20 28 20 2b 20 2d 20 34  col0 + - ( + - 4
31000 37 20 29 20 2f 20 2b 20 63 6f 6c 31 20 2b 20 2d  7 ) / + col1 + -
31010 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
31020 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
31030 31 31 30 34 0d 0a 2d 32 36 32 34 0d 0a 2d 34 34  1104..-2624..-44
31040 32 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  25....query I ro
31050 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
31060 4c 20 2b 20 2b 20 38 35 20 2d 20 2b 20 2b 20 31  L + + 85 - + + 1
31070 20 2a 20 63 6f 6c 32 20 2b 20 2d 20 38 35 20 46   * col2 + - 85 F
31080 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
31090 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 2d 34 37  ..----..-10..-47
310a0 0d 0a 2d 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-99....query I
310b0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
310c0 20 2d 20 28 20 63 6f 6c 32 20 29 20 2d 20 2b 20   - ( col2 ) - + 
310d0 39 32 20 2d 20 28 20 2d 20 2d 20 63 6f 6c 32 20  92 - ( - - col2 
310e0 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
310f0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 30 0d  ab1..----..-210.
31100 0a 2d 32 32 38 0d 0a 2d 32 38 34 0d 0a 0d 0a 71  .-228..-284....q
31110 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
31120 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
31130 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e  ROM tab1 WHERE N
31140 4f 54 20 2b 20 63 6f 6c 32 20 2f 20 2d 20 63 6f  OT + col2 / - co
31150 6c 30 20 2a 20 2d 20 32 36 20 3c 3e 20 2d 20 39  l0 * - 26 <> - 9
31160 34 20 2b 20 63 6f 6c 30 20 41 4e 44 20 4e 4f 54  4 + col0 AND NOT
31170 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c   NULL IS NOT NUL
31180 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  L..----....onlyi
31190 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
311a0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
311b0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
311c0 62 65 6c 2d 31 31 32 30 0d 0a 53 45 4c 45 43 54  bel-1120..SELECT
311d0 20 41 4c 4c 20 43 4f 55 4e 54 28 20 2a 20 29 20   ALL COUNT( * ) 
311e0 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  - COUNT( * ) AS 
311f0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
31200 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  ----..0....skipi
31210 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
31220 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
31230 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
31240 31 31 32 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1120..SELECT ALL
31250 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2d 20 43   COUNT ( * ) - C
31260 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
31270 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l1 FROM tab0..--
31280 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  --..0....onlyif 
31290 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
312a0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
312b0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
312c0 6c 2d 31 31 32 31 0d 0a 53 45 4c 45 43 54 20 2b  l-1121..SELECT +
312d0 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 43 4f   COUNT( * ) * CO
312e0 55 4e 54 28 20 2a 20 29 20 63 6f 6c 31 20 46 52  UNT( * ) col1 FR
312f0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 39  OM tab1..----..9
31300 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
31310 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
31320 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
31330 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
31340 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
31350 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
31360 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
31370 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
31380 6c 2d 31 31 32 31 0d 0a 53 45 4c 45 43 54 20 2b  l-1121..SELECT +
31390 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 43   COUNT ( * ) * C
313a0 4f 55 4e 54 20 28 20 2a 20 29 20 63 6f 6c 31 20  OUNT ( * ) col1 
313b0 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
313c0 0a 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  .9....skipif pos
313d0 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
313e0 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
313f0 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
31400 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
31410 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
31420 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
31430 20 63 6f 6c 30 20 63 6f 6c 30 2c 20 2d 20 38 34   col0 col0, - 84
31440 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
31450 0d 0a 34 36 0d 0a 2d 38 34 0d 0a 36 34 0d 0a 2d  ..46..-84..64..-
31460 38 34 0d 0a 37 35 0d 0a 2d 38 34 0d 0a 0d 0a 71  84..75..-84....q
31470 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
31480 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
31490 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 37  tab1 WHERE NOT 7
314a0 37 20 2a 20 63 6f 6c 30 20 2b 20 63 6f 6c 31 20  7 * col0 + col1 
314b0 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  = NULL..----....
314c0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
314d0 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
314e0 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
314f0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
31500 6c 2d 31 31 32 34 0d 0a 53 45 4c 45 43 54 20 44  l-1124..SELECT D
31510 49 53 54 49 4e 43 54 20 43 41 53 54 28 20 4e 55  ISTINCT CAST( NU
31520 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 2c 20  LL AS SIGNED ), 
31530 2d 20 33 34 20 41 53 20 63 6f 6c 30 20 46 52 4f  - 34 AS col0 FRO
31540 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab1..----..NU
31550 4c 4c 0d 0a 2d 33 34 0d 0a 0d 0a 73 6b 69 70 69  LL..-34....skipi
31560 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
31570 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
31580 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
31590 2d 31 31 32 34 0d 0a 53 45 4c 45 43 54 20 44 49  -1124..SELECT DI
315a0 53 54 49 4e 43 54 20 43 41 53 54 20 28 20 4e 55  STINCT CAST ( NU
315b0 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 2c  LL AS INTEGER ),
315c0 20 2d 20 33 34 20 41 53 20 63 6f 6c 30 20 46 52   - 34 AS col0 FR
315d0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab1..----..N
315e0 55 4c 4c 0d 0a 2d 33 34 0d 0a 0d 0a 6f 6e 6c 79  ULL..-34....only
315f0 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
31600 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
31610 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
31620 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 32  owsort label-112
31630 35 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 63 6f  5..SELECT - + co
31640 6c 31 20 2a 20 38 34 20 44 49 56 20 2b 20 2b 20  l1 * 84 DIV + + 
31650 28 20 2d 20 36 36 20 29 20 41 53 20 63 6f 6c 31  ( - 66 ) AS col1
31660 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
31670 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37 0d 0a 35 39  r0..----..17..59
31680 0d 0a 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..6....skipif my
31690 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
316a0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
316b0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 32 35  wsort label-1125
316c0 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 63 6f 6c  ..SELECT - + col
316d0 31 20 2a 20 38 34 20 2f 20 2b 20 2b 20 28 20 2d  1 * 84 / + + ( -
316e0 20 36 36 20 29 20 41 53 20 63 6f 6c 31 20 46 52   66 ) AS col1 FR
316f0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
31700 0a 2d 2d 2d 2d 0d 0a 31 37 0d 0a 35 39 0d 0a 36  .----..17..59..6
31710 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
31720 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
31730 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
31740 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
31750 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
31760 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
31770 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 37 33  ELECT ALL + + 73
31780 20 63 6f 6c 30 2c 20 2b 20 63 6f 6c 32 20 46 52   col0, + col2 FR
31790 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
317a0 0a 2d 2d 2d 2d 0d 0a 37 33 0d 0a 32 33 0d 0a 37  .----..73..23..7
317b0 33 0d 0a 34 30 0d 0a 37 33 0d 0a 35 38 0d 0a 0d  3..40..73..58...
317c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
317d0 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20  ..SELECT + col1 
317e0 2a 20 2d 20 34 36 20 41 53 20 63 6f 6c 32 20 46  * - 46 AS col2 F
317f0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
31800 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 36 32 0d 0a 2d  ..----..-2162..-
31810 32 33 30 0d 0a 2d 36 34 34 0d 0a 0d 0a 6f 6e 6c  230..-644....onl
31820 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
31830 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
31840 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
31850 6c 61 62 65 6c 2d 31 31 32 38 0d 0a 53 45 4c 45  label-1128..SELE
31860 43 54 20 2d 20 2b 20 36 30 20 2a 20 2b 20 43 4f  CT - + 60 * + CO
31870 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31  UNT( * ) AS col1
31880 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d   FROM tab2 cor0.
31890 0a 2d 2d 2d 2d 0d 0a 2d 31 38 30 0d 0a 0d 0a 73  .----..-180....s
318a0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
318b0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
318c0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
318d0 62 65 6c 2d 31 31 32 38 0d 0a 53 45 4c 45 43 54  bel-1128..SELECT
318e0 20 2d 20 2b 20 36 30 20 2a 20 2b 20 43 4f 55 4e   - + 60 * + COUN
318f0 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20  T ( * ) AS col1 
31900 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a  FROM tab2 cor0..
31910 2d 2d 2d 2d 0d 0a 2d 31 38 30 0d 0a 0d 0a 71 75  ----..-180....qu
31920 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
31930 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
31940 20 2d 20 37 32 20 41 53 20 63 6f 6c 30 20 46 52   - 72 AS col0 FR
31950 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
31960 0a 2d 2d 2d 2d 0d 0a 2d 37 32 0d 0a 0d 0a 6f 6e  .----..-72....on
31970 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
31980 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
31990 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
319a0 20 6c 61 62 65 6c 2d 31 31 33 30 0d 0a 53 45 4c   label-1130..SEL
319b0 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 28  ECT ALL - COUNT(
319c0 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41   * ) FROM tab2 A
319d0 53 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c  S cor0 WHERE col
319e0 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  2 IS NULL..----.
319f0 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
31a00 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
31a10 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
31a20 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33 30 0d  sort label-1130.
31a30 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f  .SELECT ALL - CO
31a40 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
31a50 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
31a60 45 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a  E col2 IS NULL..
31a70 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79  ----..0....query
31a80 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
31a90 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 41 53 20  ECT ALL col0 AS 
31aa0 63 6f 6c 30 2c 20 2d 20 63 6f 6c 32 20 46 52 4f  col0, - col2 FRO
31ab0 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 31  M tab1..----..51
31ac0 0d 0a 2d 39 36 0d 0a 38 35 0d 0a 2d 35 39 0d 0a  ..-96..85..-59..
31ad0 39 31 0d 0a 2d 36 38 0d 0a 0d 0a 6f 6e 6c 79 69  91..-68....onlyi
31ae0 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
31af0 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
31b00 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
31b10 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33 32  wsort label-1132
31b20 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
31b30 54 20 28 20 2b 20 28 20 43 41 53 54 28 20 4e 55  T ( + ( CAST( NU
31b40 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 29  LL AS SIGNED ) )
31b50 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
31b60 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
31b70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
31b80 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
31b90 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
31ba0 2d 31 31 33 32 0d 0a 53 45 4c 45 43 54 20 44 49  -1132..SELECT DI
31bb0 53 54 49 4e 43 54 20 28 20 2b 20 28 20 43 41 53  STINCT ( + ( CAS
31bc0 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
31bd0 47 45 52 20 29 20 29 20 29 20 46 52 4f 4d 20 74  GER ) ) ) FROM t
31be0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab0..----..NULL.
31bf0 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
31c00 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32  ort..SELECT col2
31c10 20 41 53 20 63 6f 6c 30 2c 20 63 6f 6c 30 20 41   AS col0, col0 A
31c20 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
31c30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 34 36 0d 0a  ..----..23..46..
31c40 34 30 0d 0a 36 34 0d 0a 35 38 0d 0a 37 35 0d 0a  40..64..58..75..
31c50 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
31c60 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
31c70 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f  OM tab1 WHERE NO
31c80 54 20 38 33 20 3e 3d 20 4e 55 4c 4c 0d 0a 2d 2d  T 83 >= NULL..--
31c90 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
31ca0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
31cb0 53 54 49 4e 43 54 20 2d 20 38 34 20 2a 20 2d 20  STINCT - 84 * - 
31cc0 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f  col2 AS col1 FRO
31cd0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 39  M tab2..----..19
31ce0 33 32 0d 0a 33 33 36 30 0d 0a 34 38 37 32 0d 0a  32..3360..4872..
31cf0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
31d00 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 63 6f  t..SELECT + + co
31d10 6c 32 20 2a 20 2b 20 34 31 20 41 53 20 63 6f 6c  l2 * + 41 AS col
31d20 30 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  0 FROM tab2 cor0
31d30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 34 30 0d 0a 32 33  ..----..1640..23
31d40 37 38 0d 0a 39 34 33 0d 0a 0d 0a 71 75 65 72 79  78..943....query
31d50 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
31d60 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 38 35  CT DISTINCT - 85
31d70 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74   + - col0 FROM t
31d80 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
31d90 2d 0d 0a 2d 31 30 30 0d 0a 2d 31 37 32 0d 0a 2d  -..-100..-172..-
31da0 31 38 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  182....onlyif my
31db0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
31dc0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
31dd0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
31de0 31 31 33 38 0d 0a 53 45 4c 45 43 54 20 2d 20 28  1138..SELECT - (
31df0 20 2d 20 43 4f 55 4e 54 28 20 63 6f 6c 30 20 29   - COUNT( col0 )
31e00 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
31e10 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d  cor0..----..3...
31e20 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
31e30 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
31e40 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
31e50 6c 61 62 65 6c 2d 31 31 33 38 0d 0a 53 45 4c 45  label-1138..SELE
31e60 43 54 20 2d 20 28 20 2d 20 43 4f 55 4e 54 20 28  CT - ( - COUNT (
31e70 20 63 6f 6c 30 20 29 20 29 20 46 52 4f 4d 20 74   col0 ) ) FROM t
31e80 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
31e90 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -..3....query I 
31ea0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
31eb0 2b 20 2d 20 28 20 2b 20 36 37 20 29 20 2a 20 2b  + - ( + 67 ) * +
31ec0 20 39 35 20 2a 20 2d 20 2b 20 63 6f 6c 31 20 2a   95 * - + col1 *
31ed0 20 2b 20 2d 20 38 39 20 2a 20 2b 20 2d 20 63 6f   + - 89 * + - co
31ee0 6c 32 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20 63  l2 + + col0 AS c
31ef0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  ol0 FROM tab1 co
31f00 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 37 31 31 33  r0..----..167113
31f10 31 36 30 0d 0a 31 38 31 30 34 38 36 31 35 31 0d  160..1810486151.
31f20 0a 37 36 31 33 35 35 38 39 31 0d 0a 0d 0a 71 75  .761355891....qu
31f30 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
31f40 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
31f50 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
31f60 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
31f70 4e 55 4c 4c 20 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d  NULL > NULL..---
31f80 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
31f90 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 34  sort..SELECT + 4
31fa0 30 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20  0 + - col0 FROM 
31fb0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 0d  tab1..----..-11.
31fc0 0a 2d 34 35 0d 0a 2d 35 31 0d 0a 0d 0a 73 6b 69  .-45..-51....ski
31fd0 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
31fe0 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
31ff0 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
32000 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
32010 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72  umns..query II r
32020 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
32030 4c 4c 20 2d 20 28 20 2d 20 63 6f 6c 30 20 29 2c  LL - ( - col0 ),
32040 20 34 36 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   46 col0 FROM ta
32050 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 34 36  b2..----..46..46
32060 0d 0a 36 34 0d 0a 34 36 0d 0a 37 35 0d 0a 34 36  ..64..46..75..46
32070 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
32080 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  ort..SELECT + co
32090 6c 30 20 2b 20 39 35 20 41 53 20 63 6f 6c 32 20  l0 + 95 AS col2 
320a0 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
320b0 0a 31 34 36 0d 0a 31 38 30 0d 0a 31 38 36 0d 0a  .146..180..186..
320c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
320d0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
320e0 43 54 20 38 20 2a 20 2d 20 36 38 20 46 52 4f 4d  CT 8 * - 68 FROM
320f0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 34   tab0..----..-54
32100 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  4....query II ro
32110 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
32120 6c 30 20 2b 20 63 6f 6c 31 2c 20 39 35 20 41 53  l0 + col1, 95 AS
32130 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
32140 0a 2d 2d 2d 2d 0d 0a 31 33 38 0d 0a 39 35 0d 0a  .----..138..95..
32150 36 35 0d 0a 39 35 0d 0a 39 30 0d 0a 39 35 0d 0a  65..95..90..95..
32160 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
32170 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67   CAST syntax: ag
32180 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
32190 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
321a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
321b0 61 62 65 6c 2d 31 31 34 36 0d 0a 53 45 4c 45 43  abel-1146..SELEC
321c0 54 20 44 49 53 54 49 4e 43 54 20 2d 20 4d 41 58  T DISTINCT - MAX
321d0 28 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 37  ( DISTINCT + + 7
321e0 35 20 29 20 2b 20 2d 20 43 41 53 54 28 20 2b 20  5 ) + - CAST( + 
321f0 32 37 20 41 53 20 53 49 47 4e 45 44 20 29 20 46  27 AS SIGNED ) F
32200 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
32210 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 32 0d 0a 0d 0a  ..----..-102....
32220 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
32230 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
32240 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
32250 61 62 65 6c 2d 31 31 34 36 0d 0a 53 45 4c 45 43  abel-1146..SELEC
32260 54 20 44 49 53 54 49 4e 43 54 20 2d 20 4d 41 58  T DISTINCT - MAX
32270 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20   ( DISTINCT + + 
32280 37 35 20 29 20 2b 20 2d 20 43 41 53 54 20 28 20  75 ) + - CAST ( 
32290 2b 20 32 37 20 41 53 20 49 4e 54 45 47 45 52 20  + 27 AS INTEGER 
322a0 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  ) FROM tab2 AS c
322b0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 32 0d  or0..----..-102.
322c0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
322d0 72 74 0d 0a 53 45 4c 45 43 54 20 32 31 20 46 52  rt..SELECT 21 FR
322e0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
322f0 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 55  WHERE NULL IS NU
32300 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 31 0d 0a 32 31  LL..----..21..21
32310 0d 0a 32 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..21....onlyif m
32320 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
32330 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65  ax: DECIMAL type
32340 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  : ..query III ro
32350 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 34 38  wsort label-1148
32360 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
32370 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
32380 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20   WHERE NULL NOT 
32390 42 45 54 57 45 45 4e 20 43 41 53 54 28 20 2d 20  BETWEEN CAST( - 
323a0 2b 20 63 6f 6c 30 20 41 53 20 44 45 43 49 4d 41  + col0 AS DECIMA
323b0 4c 20 29 20 2b 20 2d 20 2b 20 63 6f 6c 31 20 2d  L ) + - + col1 -
323c0 20 2b 20 2b 20 63 6f 6c 32 20 2d 20 2b 20 63 6f   + + col2 - + co
323d0 6c 31 20 2d 20 2d 20 63 6f 6c 32 20 2a 20 63 6f  l1 - - col2 * co
323e0 6c 30 20 2f 20 2d 20 63 6f 6c 30 20 41 4e 44 20  l0 / - col0 AND 
323f0 28 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a  ( col1 )..----..
32400 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
32410 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
32420 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
32430 72 74 20 6c 61 62 65 6c 2d 31 31 34 38 0d 0a 53  rt label-1148..S
32440 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
32450 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
32460 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54  ERE NULL NOT BET
32470 57 45 45 4e 20 43 41 53 54 20 28 20 2d 20 2b 20  WEEN CAST ( - + 
32480 63 6f 6c 30 20 41 53 20 52 45 41 4c 20 29 20 2b  col0 AS REAL ) +
32490 20 2d 20 2b 20 63 6f 6c 31 20 2d 20 2b 20 2b 20   - + col1 - + + 
324a0 63 6f 6c 32 20 2d 20 2b 20 63 6f 6c 31 20 2d 20  col2 - + col1 - 
324b0 2d 20 63 6f 6c 32 20 2a 20 63 6f 6c 30 20 2f 20  - col2 * col0 / 
324c0 2d 20 63 6f 6c 30 20 41 4e 44 20 28 20 63 6f 6c  - col0 AND ( col
324d0 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  1 )..----....que
324e0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
324f0 4c 45 43 54 20 39 39 20 2a 20 2d 20 63 6f 6c 32  LECT 99 * - col2
32500 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
32510 0d 0a 2d 32 32 37 37 0d 0a 2d 33 39 36 30 0d 0a  ..-2277..-3960..
32520 2d 35 37 34 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -5742....onlyif 
32530 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
32540 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70  tax: DECIMAL typ
32550 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  e: ..query II ro
32560 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 35 30  wsort label-1150
32570 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
32580 54 20 63 6f 6c 30 20 2a 20 2d 20 43 41 53 54 28  T col0 * - CAST(
32590 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c   NULL AS DECIMAL
325a0 20 29 20 2a 20 2d 20 63 6f 6c 30 20 41 53 20 63   ) * - col0 AS c
325b0 6f 6c 32 2c 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ol2, col2 FROM t
325c0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab2..----..NULL.
325d0 0a 32 33 0d 0a 4e 55 4c 4c 0d 0a 34 30 0d 0a 4e  .23..NULL..40..N
325e0 55 4c 4c 0d 0a 35 38 0d 0a 0d 0a 73 6b 69 70 69  ULL..58....skipi
325f0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
32600 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
32610 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
32620 2d 31 31 35 30 0d 0a 53 45 4c 45 43 54 20 44 49  -1150..SELECT DI
32630 53 54 49 4e 43 54 20 63 6f 6c 30 20 2a 20 2d 20  STINCT col0 * - 
32640 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52  CAST ( NULL AS R
32650 45 41 4c 20 29 20 2a 20 2d 20 63 6f 6c 30 20 41  EAL ) * - col0 A
32660 53 20 63 6f 6c 32 2c 20 63 6f 6c 32 20 46 52 4f  S col2, col2 FRO
32670 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab2..----..NU
32680 4c 4c 0d 0a 32 33 0d 0a 4e 55 4c 4c 0d 0a 34 30  LL..23..NULL..40
32690 0d 0a 4e 55 4c 4c 0d 0a 35 38 0d 0a 0d 0a 71 75  ..NULL..58....qu
326a0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
326b0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
326c0 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 2b 20  OM tab0 WHERE + 
326d0 33 38 20 49 53 20 4e 55 4c 4c 20 41 4e 44 20 28  38 IS NULL AND (
326e0 20 4e 55 4c 4c 20 29 20 49 53 20 4e 4f 54 20 4e   NULL ) IS NOT N
326f0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
32700 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
32710 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
32720 32 31 20 2a 20 2b 20 63 6f 6c 32 20 41 53 20 63  21 * + col2 AS c
32730 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
32740 2d 2d 2d 0d 0a 2d 31 32 33 39 0d 0a 2d 31 34 32  ---..-1239..-142
32750 38 0d 0a 2d 32 30 31 36 0d 0a 0d 0a 6f 6e 6c 79  8..-2016....only
32760 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
32770 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
32780 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  ype: ..query II 
32790 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
327a0 35 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  53..SELECT ALL +
327b0 20 43 41 53 54 28 20 2b 20 2d 20 63 6f 6c 31 20   CAST( + - col1 
327c0 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 63 6f  AS SIGNED ) * co
327d0 6c 32 20 63 6f 6c 32 2c 20 37 38 20 63 6f 6c 30  l2 col2, 78 col0
327e0 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
327f0 0d 0a 2d 32 31 30 0d 0a 37 38 0d 0a 2d 33 38 30  ..-210..78..-380
32800 37 0d 0a 37 38 0d 0a 2d 39 39 0d 0a 37 38 0d 0a  7..78..-99..78..
32810 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
32820 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
32830 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
32840 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
32850 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
32860 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
32870 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
32880 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
32890 2d 31 31 35 33 0d 0a 53 45 4c 45 43 54 20 41 4c  -1153..SELECT AL
328a0 4c 20 2b 20 43 41 53 54 20 28 20 2b 20 2d 20 63  L + CAST ( + - c
328b0 6f 6c 31 20 41 53 20 49 4e 54 45 47 45 52 20 29  ol1 AS INTEGER )
328c0 20 2a 20 63 6f 6c 32 20 63 6f 6c 32 2c 20 37 38   * col2 col2, 78
328d0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
328e0 0a 2d 2d 2d 2d 0d 0a 2d 32 31 30 0d 0a 37 38 0d  .----..-210..78.
328f0 0a 2d 33 38 30 37 0d 0a 37 38 0d 0a 2d 39 39 0d  .-3807..78..-99.
32900 0a 37 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .78....query I r
32910 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
32920 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 30   - col2 + + col0
32930 20 2d 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c   - - col1 AS col
32940 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  0 FROM tab0 cor0
32950 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 34 39 0d 0a  ..----..-1..49..
32960 39 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  98....onlyif mys
32970 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
32980 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
32990 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
329a0 74 20 6c 61 62 65 6c 2d 31 31 35 35 0d 0a 53 45  t label-1155..SE
329b0 4c 45 43 54 20 41 4c 4c 20 2d 20 34 32 20 2b 20  LECT ALL - 42 + 
329c0 2d 20 63 6f 6c 32 20 44 49 56 20 2d 20 63 6f 6c  - col2 DIV - col
329d0 30 2c 20 63 6f 6c 32 20 2a 20 63 6f 6c 31 20 41  0, col2 * col1 A
329e0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
329f0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
32a00 2d 34 32 0d 0a 31 31 37 33 0d 0a 2d 34 32 0d 0a  -42..1173..-42..
32a10 33 30 38 30 0d 0a 2d 34 32 0d 0a 33 38 38 36 0d  3080..-42..3886.
32a20 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
32a30 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
32a40 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
32a50 72 74 20 6c 61 62 65 6c 2d 31 31 35 35 0d 0a 53  rt label-1155..S
32a60 45 4c 45 43 54 20 41 4c 4c 20 2d 20 34 32 20 2b  ELECT ALL - 42 +
32a70 20 2d 20 63 6f 6c 32 20 2f 20 2d 20 63 6f 6c 30   - col2 / - col0
32a80 2c 20 63 6f 6c 32 20 2a 20 63 6f 6c 31 20 41 53  , col2 * col1 AS
32a90 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
32aa0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
32ab0 34 32 0d 0a 31 31 37 33 0d 0a 2d 34 32 0d 0a 33  42..1173..-42..3
32ac0 30 38 30 0d 0a 2d 34 32 0d 0a 33 38 38 36 0d 0a  080..-42..3886..
32ad0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
32ae0 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
32af0 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
32b00 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
32b10 65 6c 2d 31 31 35 36 0d 0a 53 45 4c 45 43 54 20  el-1156..SELECT 
32b20 41 4c 4c 20 2b 20 63 6f 6c 32 20 44 49 56 20 2b  ALL + col2 DIV +
32b30 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   + col1 FROM tab
32b40 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  2 cor0..----..0.
32b50 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  .0..0....skipif 
32b60 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
32b70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
32b80 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
32b90 35 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  56..SELECT ALL +
32ba0 20 63 6f 6c 32 20 2f 20 2b 20 2b 20 63 6f 6c 31   col2 / + + col1
32bb0 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d   FROM tab2 cor0.
32bc0 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a  .----..0..0..0..
32bd0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
32be0 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
32bf0 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
32c00 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
32c10 65 6c 2d 31 31 35 37 0d 0a 53 45 4c 45 43 54 20  el-1157..SELECT 
32c20 41 4c 4c 20 63 6f 6c 32 20 44 49 56 20 63 6f 6c  ALL col2 DIV col
32c30 30 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  0 + col0 FROM ta
32c40 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
32c50 0d 0a 35 32 0d 0a 38 35 0d 0a 39 31 0d 0a 0d 0a  ..52..85..91....
32c60 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
32c70 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
32c80 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
32c90 61 62 65 6c 2d 31 31 35 37 0d 0a 53 45 4c 45 43  abel-1157..SELEC
32ca0 54 20 41 4c 4c 20 63 6f 6c 32 20 2f 20 63 6f 6c  T ALL col2 / col
32cb0 30 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  0 + col0 FROM ta
32cc0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
32cd0 0d 0a 35 32 0d 0a 38 35 0d 0a 39 31 0d 0a 0d 0a  ..52..85..91....
32ce0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
32cf0 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72  AST syntax: aggr
32d00 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49  egate syntax: SI
32d10 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
32d20 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
32d30 65 6c 2d 31 31 35 38 0d 0a 53 45 4c 45 43 54 20  el-1158..SELECT 
32d40 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 28 20  DISTINCT COUNT( 
32d50 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20  DISTINCT + col2 
32d60 29 20 2d 20 2d 20 2b 20 43 41 53 54 28 20 4e 55  ) - - + CAST( NU
32d70 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2d  LL AS SIGNED ) -
32d80 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20   + + COUNT( * ) 
32d90 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
32da0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
32db0 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
32dc0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
32dd0 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  ble..skipif post
32de0 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
32df0 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
32e00 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
32e10 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
32e20 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
32e30 62 65 6c 2d 31 31 35 38 0d 0a 53 45 4c 45 43 54  bel-1158..SELECT
32e40 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 20   DISTINCT COUNT 
32e50 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  ( DISTINCT + col
32e60 32 20 29 20 2d 20 2d 20 2b 20 43 41 53 54 20 28  2 ) - - + CAST (
32e70 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
32e80 20 29 20 2d 20 2b 20 2b 20 43 4f 55 4e 54 20 28   ) - + + COUNT (
32e90 20 2a 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74   * ) col0 FROM t
32ea0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
32eb0 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79  -..NULL....query
32ec0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
32ed0 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 2a 20  CT ALL - col2 * 
32ee0 2b 20 36 37 20 2a 20 2d 20 63 6f 6c 30 20 2b 20  + 67 * - col0 + 
32ef0 2b 20 37 38 20 41 53 20 63 6f 6c 32 20 46 52 4f  + 78 AS col2 FRO
32f00 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
32f10 2d 0d 0a 34 37 33 31 33 0d 0a 35 38 33 36 38 0d  -..47313..58368.
32f20 0a 36 34 33 34 37 39 0d 0a 0d 0a 71 75 65 72 79  .643479....query
32f30 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
32f40 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
32f50 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
32f60 2d 20 63 6f 6c 30 20 2a 20 28 20 32 36 20 29 20  - col0 * ( 26 ) 
32f70 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  IS NULL..----..9
32f80 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
32f90 74 6f 20 63 34 62 34 32 37 36 35 64 66 66 39 34  to c4b42765dff94
32fa0 65 61 61 61 34 36 30 34 30 65 35 33 37 66 62 34  eaaa46040e537fb4
32fb0 33 62 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  3b7....onlyif my
32fc0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
32fd0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
32fe0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
32ff0 72 74 20 6c 61 62 65 6c 2d 31 31 36 31 0d 0a 53  rt label-1161..S
33000 45 4c 45 43 54 20 2b 20 28 20 32 33 20 29 20 41  ELECT + ( 23 ) A
33010 53 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c 30 20 2b  S col1, + col0 +
33020 20 37 39 20 2b 20 43 41 53 54 28 20 2d 20 63 6f   79 + CAST( - co
33030 6c 32 20 41 53 20 53 49 47 4e 45 44 20 29 20 46  l2 AS SIGNED ) F
33040 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
33050 32 33 0d 0a 31 30 32 0d 0a 32 33 0d 0a 31 30 33  23..102..23..103
33060 0d 0a 32 33 0d 0a 39 36 0d 0a 0d 0a 73 6b 69 70  ..23..96....skip
33070 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
33080 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
33090 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
330a0 6c 2d 31 31 36 31 0d 0a 53 45 4c 45 43 54 20 2b  l-1161..SELECT +
330b0 20 28 20 32 33 20 29 20 41 53 20 63 6f 6c 31 2c   ( 23 ) AS col1,
330c0 20 2b 20 63 6f 6c 30 20 2b 20 37 39 20 2b 20 43   + col0 + 79 + C
330d0 41 53 54 20 28 20 2d 20 63 6f 6c 32 20 41 53 20  AST ( - col2 AS 
330e0 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74  INTEGER ) FROM t
330f0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 31  ab2..----..23..1
33100 30 32 0d 0a 32 33 0d 0a 31 30 33 0d 0a 32 33 0d  02..23..103..23.
33110 0a 39 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  .96....query II 
33120 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
33130 41 4c 4c 20 2b 20 39 33 20 2a 20 2b 20 63 6f 6c  ALL + 93 * + col
33140 31 2c 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20  1, col1 AS col2 
33150 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
33160 0a 31 33 30 32 0d 0a 31 34 0d 0a 34 33 37 31 0d  .1302..14..4371.
33170 0a 34 37 0d 0a 34 36 35 0d 0a 35 0d 0a 0d 0a 6f  .47..465..5....o
33180 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
33190 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
331a0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
331b0 74 20 6c 61 62 65 6c 2d 31 31 36 33 0d 0a 53 45  t label-1163..SE
331c0 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20  LECT - COUNT( * 
331d0 29 20 2a 20 39 37 20 46 52 4f 4d 20 74 61 62 32  ) * 97 FROM tab2
331e0 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 39 31 0d 0a 0d 0a  ..----..-291....
331f0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
33200 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
33210 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
33220 61 62 65 6c 2d 31 31 36 33 0d 0a 53 45 4c 45 43  abel-1163..SELEC
33230 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  T - COUNT ( * ) 
33240 2a 20 39 37 20 46 52 4f 4d 20 74 61 62 32 0d 0a  * 97 FROM tab2..
33250 2d 2d 2d 2d 0d 0a 2d 32 39 31 0d 0a 0d 0a 71 75  ----..-291....qu
33260 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
33270 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20 2a  ELECT ALL col2 *
33280 20 2b 20 35 38 20 41 53 20 63 6f 6c 31 20 46 52   + 58 AS col1 FR
33290 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32  OM tab0..----..2
332a0 37 32 36 0d 0a 35 37 34 32 0d 0a 35 38 30 0d 0a  726..5742..580..
332b0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
332c0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
332d0 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
332e0 54 20 2d 20 2d 20 63 6f 6c 32 20 3d 20 4e 55 4c  T - - col2 = NUL
332f0 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  L..----....onlyi
33300 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
33310 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
33320 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
33330 62 65 6c 2d 31 31 36 36 0d 0a 53 45 4c 45 43 54  bel-1166..SELECT
33340 20 2b 20 28 20 34 31 20 29 20 2a 20 2d 20 43 4f   + ( 41 ) * - CO
33350 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
33360 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 33 0d 0a  b2..----..-123..
33370 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
33380 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
33390 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
333a0 20 6c 61 62 65 6c 2d 31 31 36 36 0d 0a 53 45 4c   label-1166..SEL
333b0 45 43 54 20 2b 20 28 20 34 31 20 29 20 2a 20 2d  ECT + ( 41 ) * -
333c0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f   COUNT ( * ) FRO
333d0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab2..----..-1
333e0 32 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  23....onlyif mys
333f0 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
33400 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
33410 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
33420 20 6c 61 62 65 6c 2d 31 31 36 37 0d 0a 53 45 4c   label-1167..SEL
33430 45 43 54 20 43 41 53 54 28 20 37 31 20 41 53 20  ECT CAST( 71 AS 
33440 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61  SIGNED ) FROM ta
33450 62 30 0d 0a 2d 2d 2d 2d 0d 0a 37 31 0d 0a 37 31  b0..----..71..71
33460 0d 0a 37 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..71....skipif m
33470 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
33480 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
33490 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 36  owsort label-116
334a0 37 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 20 28  7..SELECT CAST (
334b0 20 37 31 20 41 53 20 49 4e 54 45 47 45 52 20 29   71 AS INTEGER )
334c0 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
334d0 0d 0a 37 31 0d 0a 37 31 0d 0a 37 31 0d 0a 0d 0a  ..71..71..71....
334e0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
334f0 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
33500 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20   tab0 WHERE NOT 
33510 2d 20 63 6f 6c 30 20 2a 20 2b 20 38 32 20 4e 4f  - col0 * + 82 NO
33520 54 20 42 45 54 57 45 45 4e 20 2b 20 63 6f 6c 32  T BETWEEN + col2
33530 20 41 4e 44 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d   AND + col0..---
33540 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
33550 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 32 33 20  sort..SELECT 23 
33560 2a 20 2d 20 37 32 20 46 52 4f 4d 20 74 61 62 31  * - 72 FROM tab1
33570 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 35 36 0d 0a 2d  ..----..-1656..-
33580 31 36 35 36 0d 0a 2d 31 36 35 36 0d 0a 0d 0a 73  1656..-1656....s
33590 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
335a0 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
335b0 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
335c0 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
335d0 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49  olumns..query II
335e0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
335f0 20 44 49 53 54 49 4e 43 54 20 2d 20 28 20 2d 20   DISTINCT - ( - 
33600 33 38 20 29 20 63 6f 6c 30 2c 20 28 20 38 34 20  38 ) col0, ( 84 
33610 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  ) col2 FROM tab1
33620 0d 0a 2d 2d 2d 2d 0d 0a 33 38 0d 0a 38 34 0d 0a  ..----..38..84..
33630 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
33640 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
33650 43 54 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74  CT - col1 FROM t
33660 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
33670 45 20 4e 4f 54 20 35 36 20 49 53 20 4e 55 4c 4c  E NOT 56 IS NULL
33680 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 0d 0a 2d 34 37  ..----..-14..-47
33690 0d 0a 2d 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..-5....query II
336a0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
336b0 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
336c0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
336d0 48 45 52 45 20 2b 20 63 6f 6c 32 20 42 45 54 57  HERE + col2 BETW
336e0 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 28 20 63  EEN NULL AND ( c
336f0 6f 6c 32 20 2b 20 34 33 20 29 0d 0a 2d 2d 2d 2d  ol2 + 43 )..----
33700 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
33710 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
33720 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
33730 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 37  owsort label-117
33740 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  3..SELECT DISTIN
33750 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20  CT COUNT( * ) + 
33760 2d 20 2b 20 36 36 20 46 52 4f 4d 20 74 61 62 31  - + 66 FROM tab1
33770 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a   AS cor0 CROSS J
33780 4f 49 4e 20 74 61 62 30 20 41 53 20 63 6f 72 31  OIN tab0 AS cor1
33790 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 37 0d 0a 0d 0a 73  ..----..-57....s
337a0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
337b0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
337c0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
337d0 62 65 6c 2d 31 31 37 33 0d 0a 53 45 4c 45 43 54  bel-1173..SELECT
337e0 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 20   DISTINCT COUNT 
337f0 28 20 2a 20 29 20 2b 20 2d 20 2b 20 36 36 20 46  ( * ) + - + 66 F
33800 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
33810 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30   CROSS JOIN tab0
33820 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
33830 2d 35 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  -57....query I r
33840 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
33850 20 63 6f 6c 30 20 2a 20 37 30 20 41 53 20 63 6f   col0 * 70 AS co
33860 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
33870 2d 2d 0d 0a 2d 33 32 32 30 0d 0a 2d 34 34 38 30  --..-3220..-4480
33880 0d 0a 2d 35 32 35 30 0d 0a 0d 0a 71 75 65 72 79  ..-5250....query
33890 20 49 49 49 49 49 49 20 72 6f 77 73 6f 72 74 0d   IIIIII rowsort.
338a0 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
338b0 61 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f 53  ab1 AS cor0 CROS
338c0 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63  S JOIN tab0 AS c
338d0 6f 72 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c  or1 WHERE NULL <
338e0 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  > NULL..----....
338f0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
33900 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
33910 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57  CT * FROM tab0 W
33920 48 45 52 45 20 28 20 2b 20 63 6f 6c 31 20 2b 20  HERE ( + col1 + 
33930 35 34 20 29 20 3d 20 28 20 4e 55 4c 4c 20 29 0d  54 ) = ( NULL ).
33940 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
33950 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
33960 20 2d 20 31 20 41 53 20 63 6f 6c 30 20 46 52 4f   - 1 AS col0 FRO
33970 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 43  M tab2 AS cor0 C
33980 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 41  ROSS JOIN tab0 A
33990 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20  S cor1..----..9 
339a0 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
339b0 6f 20 36 30 66 64 64 36 39 32 34 62 62 37 36 33  o 60fdd6924bb763
339c0 64 36 61 63 61 30 30 62 61 37 34 39 33 35 65 66  d6aca00ba74935ef
339d0 34 62 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  4b....skipif pos
339e0 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
339f0 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
33a00 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
33a10 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
33a20 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
33a30 0a 53 45 4c 45 43 54 20 35 37 20 2a 20 2b 20 39  .SELECT 57 * + 9
33a40 31 20 63 6f 6c 32 2c 20 63 6f 6c 30 20 41 53 20  1 col2, col0 AS 
33a50 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 57  col0 FROM tab2 W
33a60 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20 49 53  HERE NOT col2 IS
33a70 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
33a80 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
33a90 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 34  rt..SELECT - + 4
33aa0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
33ab0 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e  r0 WHERE NOT ( N
33ac0 55 4c 4c 20 29 20 49 4e 20 28 20 2d 20 63 6f 6c  ULL ) IN ( - col
33ad0 32 20 2a 20 2b 20 31 20 2a 20 2d 20 2b 20 63 6f  2 * + 1 * - + co
33ae0 6c 30 20 2f 20 2b 20 63 6f 6c 30 2c 20 2d 20 39  l0 / + col0, - 9
33af0 38 20 2a 20 2b 20 63 6f 6c 32 20 29 0d 0a 2d 2d  8 * + col2 )..--
33b00 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
33b10 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
33b20 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
33b30 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
33b40 31 38 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  180..SELECT DIST
33b50 49 4e 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20  INCT + COUNT( * 
33b60 29 20 2b 20 43 4f 55 4e 54 28 20 63 6f 6c 31 20  ) + COUNT( col1 
33b70 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
33b80 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
33b90 2d 0d 0a 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..6....skipif m
33ba0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
33bb0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
33bc0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 38  owsort label-118
33bd0 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  0..SELECT DISTIN
33be0 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29  CT + COUNT ( * )
33bf0 20 2b 20 43 4f 55 4e 54 20 28 20 63 6f 6c 31 20   + COUNT ( col1 
33c00 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
33c10 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
33c20 2d 0d 0a 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -..6....query I 
33c30 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
33c40 2d 20 63 6f 6c 31 20 2a 20 31 37 20 2b 20 2d 20  - col1 * 17 + - 
33c50 63 6f 6c 32 20 2d 20 2b 20 2d 20 63 6f 6c 30 20  col2 - + - col0 
33c60 2a 20 63 6f 6c 32 20 2b 20 2b 20 2d 20 63 6f 6c  * col2 + + - col
33c70 32 20 2d 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f  2 - + col1 AS co
33c80 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
33c90 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 34 35 32  cor0..----..4452
33ca0 0d 0a 34 38 30 37 0d 0a 35 32 30 36 0d 0a 0d 0a  ..4807..5206....
33cb0 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
33cc0 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
33cd0 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
33ce0 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
33cf0 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
33d00 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
33d10 54 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 2c 20  T col2 AS col2, 
33d20 32 30 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  20 col2 FROM tab
33d30 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 32 30 0d  0..----..10..20.
33d40 0a 34 37 0d 0a 32 30 0d 0a 39 39 0d 0a 32 30 0d  .47..20..99..20.
33d50 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
33d60 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
33d70 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
33d80 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 38 33  wsort label-1183
33d90 0d 0a 53 45 4c 45 43 54 20 4d 49 4e 28 20 2d 20  ..SELECT MIN( - 
33da0 2d 20 63 6f 6c 30 20 29 20 63 6f 6c 30 20 46 52  - col0 ) col0 FR
33db0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34  OM tab2..----..4
33dc0 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  6....skipif mysq
33dd0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
33de0 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
33df0 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
33e00 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
33e10 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
33e20 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
33e30 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
33e40 65 6c 2d 31 31 38 33 0d 0a 53 45 4c 45 43 54 20  el-1183..SELECT 
33e50 4d 49 4e 20 28 20 2d 20 2d 20 63 6f 6c 30 20 29  MIN ( - - col0 )
33e60 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
33e70 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 0d 0a 6f 6e 6c  .----..46....onl
33e80 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
33e90 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
33ea0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
33eb0 6c 61 62 65 6c 2d 31 31 38 34 0d 0a 53 45 4c 45  label-1184..SELE
33ec0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 4d 41  CT DISTINCT + MA
33ed0 58 28 20 41 4c 4c 20 63 6f 6c 32 20 29 20 41 53  X( ALL col2 ) AS
33ee0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
33ef0 0a 2d 2d 2d 2d 0d 0a 39 36 0d 0a 0d 0a 73 6b 69  .----..96....ski
33f00 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
33f10 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
33f20 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
33f30 6c 2d 31 31 38 34 0d 0a 53 45 4c 45 43 54 20 44  l-1184..SELECT D
33f40 49 53 54 49 4e 43 54 20 2b 20 4d 41 58 20 28 20  ISTINCT + MAX ( 
33f50 41 4c 4c 20 63 6f 6c 32 20 29 20 41 53 20 63 6f  ALL col2 ) AS co
33f60 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
33f70 2d 2d 0d 0a 39 36 0d 0a 0d 0a 71 75 65 72 79 20  --..96....query 
33f80 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
33f90 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 41 53 20  T ALL + col1 AS 
33fa0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 57  col1 FROM tab0 W
33fb0 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3e 20  HERE NOT NULL > 
33fc0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b  NULL..----....sk
33fd0 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
33fe0 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
33ff0 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
34000 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
34010 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
34020 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
34030 49 53 54 49 4e 43 54 20 2d 20 37 38 20 2a 20 2d  ISTINCT - 78 * -
34040 20 2d 20 63 6f 6c 30 20 63 6f 6c 31 20 46 52 4f   - col0 col1 FRO
34050 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  M tab2..----..-3
34060 35 38 38 0d 0a 2d 34 39 39 32 0d 0a 2d 35 38 35  588..-4992..-585
34070 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
34080 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
34090 54 49 4e 43 54 20 2b 20 2d 20 34 20 41 53 20 63  TINCT + - 4 AS c
340a0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 57 48  ol1 FROM tab1 WH
340b0 45 52 45 20 4e 55 4c 4c 20 3e 3d 20 2b 20 28 20  ERE NULL >= + ( 
340c0 2b 20 36 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  + 62 )..----....
340d0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
340e0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
340f0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
34100 72 74 20 6c 61 62 65 6c 2d 31 31 38 38 0d 0a 53  rt label-1188..S
34110 45 4c 45 43 54 20 2d 20 53 55 4d 28 20 44 49 53  ELECT - SUM( DIS
34120 54 49 4e 43 54 20 2b 20 2d 20 32 30 20 29 20 2b  TINCT + - 20 ) +
34130 20 2d 20 2b 20 53 55 4d 28 20 44 49 53 54 49 4e   - + SUM( DISTIN
34140 43 54 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74  CT col0 ) FROM t
34150 61 62 31 20 57 48 45 52 45 20 2d 20 63 6f 6c 32  ab1 WHERE - col2
34160 20 2f 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e   / col2 IS NOT N
34170 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30 37 0d  ULL..----..-207.
34180 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
34190 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
341a0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
341b0 74 20 6c 61 62 65 6c 2d 31 31 38 38 0d 0a 53 45  t label-1188..SE
341c0 4c 45 43 54 20 2d 20 53 55 4d 20 28 20 44 49 53  LECT - SUM ( DIS
341d0 54 49 4e 43 54 20 2b 20 2d 20 32 30 20 29 20 2b  TINCT + - 20 ) +
341e0 20 2d 20 2b 20 53 55 4d 20 28 20 44 49 53 54 49   - + SUM ( DISTI
341f0 4e 43 54 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20  NCT col0 ) FROM 
34200 74 61 62 31 20 57 48 45 52 45 20 2d 20 63 6f 6c  tab1 WHERE - col
34210 32 20 2f 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20  2 / col2 IS NOT 
34220 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30 37  NULL..----..-207
34230 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
34240 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
34250 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
34260 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
34270 61 62 65 6c 2d 31 31 38 39 0d 0a 53 45 4c 45 43  abel-1189..SELEC
34280 54 20 63 6f 6c 32 20 2d 20 2b 20 2b 20 43 41 53  T col2 - + + CAS
34290 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
342a0 44 20 29 20 2f 20 2b 20 2b 20 28 20 2d 20 39 30  D ) / + + ( - 90
342b0 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
342c0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
342d0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
342e0 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
342f0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
34300 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
34310 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 38  owsort label-118
34320 39 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2d  9..SELECT col2 -
34330 20 2b 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c   + + CAST ( NULL
34340 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2f 20   AS INTEGER ) / 
34350 2b 20 2b 20 28 20 2d 20 39 30 20 29 20 41 53 20  + + ( - 90 ) AS 
34360 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
34370 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
34380 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
34390 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
343a0 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67   CAST syntax: ag
343b0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
343c0 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
343d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
343e0 61 62 65 6c 2d 31 31 39 30 0d 0a 53 45 4c 45 43  abel-1190..SELEC
343f0 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b  T + COUNT( * ) +
34400 20 35 35 20 2d 20 2b 20 43 41 53 54 28 20 2d 20   55 - + CAST( - 
34410 39 37 20 41 53 20 53 49 47 4e 45 44 20 29 20 46  97 AS SIGNED ) F
34420 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
34430 0d 0a 2d 2d 2d 2d 0d 0a 31 35 35 0d 0a 0d 0a 73  ..----..155....s
34440 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
34450 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
34460 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
34470 62 65 6c 2d 31 31 39 30 0d 0a 53 45 4c 45 43 54  bel-1190..SELECT
34480 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b   + COUNT ( * ) +
34490 20 35 35 20 2d 20 2b 20 43 41 53 54 20 28 20 2d   55 - + CAST ( -
344a0 20 39 37 20 41 53 20 49 4e 54 45 47 45 52 20 29   97 AS INTEGER )
344b0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
344c0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 35 0d 0a 0d  r0..----..155...
344d0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
344e0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63  ..SELECT ALL + c
344f0 6f 6c 31 20 2b 20 2d 20 32 30 20 46 52 4f 4d 20  ol1 + - 20 FROM 
34500 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
34510 2d 2d 0d 0a 2d 31 35 0d 0a 2d 36 0d 0a 32 37 0d  --..-15..-6..27.
34520 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
34530 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
34540 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
34550 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
34560 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
34570 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
34580 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2b  ECT DISTINCT - +
34590 20 32 33 20 2a 20 63 6f 6c 31 20 2b 20 2d 20 63   23 * col1 + - c
345a0 6f 6c 31 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  ol1 col2 FROM ta
345b0 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
345c0 0d 0a 2d 31 32 32 34 0d 0a 2d 31 36 30 38 0d 0a  ..-1224..-1608..
345d0 2d 31 38 34 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  -1848....skipif 
345e0 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
345f0 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
34600 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
34610 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
34620 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
34630 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 37 31  t..SELECT + - 71
34640 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
34650 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
34660 74 61 62 31 20 41 53 20 63 6f 72 31 0d 0a 2d 2d  tab1 AS cor1..--
34670 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
34680 68 69 6e 67 20 74 6f 20 65 37 32 66 39 35 63 33  hing to e72f95c3
34690 34 36 37 31 34 64 33 30 36 35 61 39 36 64 36 37  46714d3065a96d67
346a0 61 36 66 64 35 30 36 32 0d 0a 0d 0a 71 75 65 72  a6fd5062....quer
346b0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
346c0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 39  ECT DISTINCT + 9
346d0 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
346e0 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
346f0 61 62 32 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d  ab2 AS cor1..---
34700 2d 0d 0a 39 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -..90....onlyif 
34710 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
34720 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
34730 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
34740 6f 72 74 20 6c 61 62 65 6c 2d 31 31 39 35 0d 0a  ort label-1195..
34750 53 45 4c 45 43 54 20 63 6f 6c 32 20 44 49 56 20  SELECT col2 DIV 
34760 2d 20 63 6f 6c 31 20 2b 20 2d 20 28 20 2d 20 63  - col1 + - ( - c
34770 6f 6c 30 20 29 20 2a 20 2b 20 2b 20 33 39 20 63  ol0 ) * + + 39 c
34780 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
34790 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c   cor0 WHERE NULL
347a0 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
347b0 31 37 39 34 0d 0a 32 34 39 36 0d 0a 32 39 32 35  1794..2496..2925
347c0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
347d0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
347e0 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
347f0 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
34800 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
34810 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
34820 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
34830 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
34840 6c 2d 31 31 39 35 0d 0a 53 45 4c 45 43 54 20 63  l-1195..SELECT c
34850 6f 6c 32 20 2f 20 2d 20 63 6f 6c 31 20 2b 20 2d  ol2 / - col1 + -
34860 20 28 20 2d 20 63 6f 6c 30 20 29 20 2a 20 2b 20   ( - col0 ) * + 
34870 2b 20 33 39 20 63 6f 6c 30 20 46 52 4f 4d 20 74  + 39 col0 FROM t
34880 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
34890 45 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a  E NULL IS NULL..
348a0 2d 2d 2d 2d 0d 0a 31 37 39 34 0d 0a 32 34 39 36  ----..1794..2496
348b0 0d 0a 32 39 32 35 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..2925....onlyif
348c0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
348d0 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66  te syntax: DIV f
348e0 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
348f0 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
34900 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 39  owsort label-119
34910 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  6..SELECT DISTIN
34920 43 54 20 2b 20 32 34 20 44 49 56 20 53 55 4d 28  CT + 24 DIV SUM(
34930 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31   DISTINCT - col1
34940 20 29 20 44 49 56 20 2d 20 4d 41 58 28 20 41 4c   ) DIV - MAX( AL
34950 4c 20 2d 20 32 32 20 29 20 41 53 20 63 6f 6c 31  L - 22 ) AS col1
34960 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
34970 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73  r0..----..0....s
34980 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
34990 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
349a0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
349b0 62 65 6c 2d 31 31 39 36 0d 0a 53 45 4c 45 43 54  bel-1196..SELECT
349c0 20 44 49 53 54 49 4e 43 54 20 2b 20 32 34 20 2f   DISTINCT + 24 /
349d0 20 53 55 4d 20 28 20 44 49 53 54 49 4e 43 54 20   SUM ( DISTINCT 
349e0 2d 20 63 6f 6c 31 20 29 20 2f 20 2d 20 4d 41 58  - col1 ) / - MAX
349f0 20 28 20 41 4c 4c 20 2d 20 32 32 20 29 20 41 53   ( ALL - 22 ) AS
34a00 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
34a10 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30  AS cor0..----..0
34a20 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
34a30 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
34a40 49 4e 43 54 20 38 38 20 2b 20 2d 20 63 6f 6c 31  INCT 88 + - col1
34a50 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
34a60 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 37 0d 0a 37 0d  r0..----..67..7.
34a70 0a 38 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  .87....skipif po
34a80 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
34a90 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
34aa0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
34ab0 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
34ac0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
34ad0 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2a 20 2b  .SELECT col0 * +
34ae0 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 32   + col2 * + col2
34af0 20 2a 20 2d 20 63 6f 6c 30 20 63 6f 6c 32 20 46   * - col0 col2 F
34b00 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
34b10 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 31 39 33 36 34  ..----..-1119364
34b20 0d 0a 2d 31 38 39 32 32 35 30 30 0d 0a 2d 36 35  ..-18922500..-65
34b30 35 33 36 30 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  53600....onlyif 
34b40 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
34b50 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
34b60 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
34b70 6f 72 74 20 6c 61 62 65 6c 2d 31 31 39 39 0d 0a  ort label-1199..
34b80 53 45 4c 45 43 54 20 2b 20 43 41 53 54 28 20 4e  SELECT + CAST( N
34b90 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
34ba0 2a 20 2d 20 2d 20 63 6f 6c 30 20 2b 20 63 6f 6c  * - - col0 + col
34bb0 32 20 2f 20 2d 20 31 38 20 46 52 4f 4d 20 74 61  2 / - 18 FROM ta
34bc0 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
34bd0 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
34be0 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
34bf0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
34c00 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
34c10 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 39 39 0d  sort label-1199.
34c20 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54 20 28  .SELECT + CAST (
34c30 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
34c40 20 29 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 2b 20   ) * - - col0 + 
34c50 63 6f 6c 32 20 2f 20 2d 20 31 38 20 46 52 4f 4d  col2 / - 18 FROM
34c60 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
34c70 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
34c80 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .NULL....onlyif 
34c90 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
34ca0 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
34cb0 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
34cc0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 30 30 0d  sort label-1200.
34cd0 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 44  .SELECT + col0 D
34ce0 49 56 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c  IV - col2 AS col
34cf0 32 2c 20 2b 20 28 20 2b 20 36 32 20 29 20 2a 20  2, + ( + 62 ) * 
34d00 2d 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  - + col0 FROM ta
34d10 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
34d20 0d 0a 2d 31 0d 0a 2d 33 39 36 38 0d 0a 2d 31 0d  ..-1..-3968..-1.
34d30 0a 2d 34 36 35 30 0d 0a 2d 32 0d 0a 2d 32 38 35  .-4650..-2..-285
34d40 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  2....skipif mysq
34d50 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
34d60 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
34d70 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 30 30 0d  sort label-1200.
34d80 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 2f  .SELECT + col0 /
34d90 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 2c   - col2 AS col2,
34da0 20 2b 20 28 20 2b 20 36 32 20 29 20 2a 20 2d 20   + ( + 62 ) * - 
34db0 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  + col0 FROM tab2
34dc0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
34dd0 2d 31 0d 0a 2d 33 39 36 38 0d 0a 2d 31 0d 0a 2d  -1..-3968..-1..-
34de0 34 36 35 30 0d 0a 2d 32 0d 0a 2d 32 38 35 32 0d  4650..-2..-2852.
34df0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
34e00 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
34e10 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
34e20 63 6f 72 30 20 57 48 45 52 45 20 2d 20 28 20 2d  cor0 WHERE - ( -
34e30 20 63 6f 6c 31 20 29 20 49 53 20 4e 55 4c 4c 0d   col1 ) IS NULL.
34e40 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
34e50 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
34e60 20 2d 20 2d 20 28 20 2d 20 36 35 20 29 20 46 52   - - ( - 65 ) FR
34e70 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
34e80 0a 2d 2d 2d 2d 0d 0a 2d 36 35 0d 0a 2d 36 35 0d  .----..-65..-65.
34e90 0a 2d 36 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-65....query I 
34ea0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
34eb0 41 4c 4c 20 33 36 20 2a 20 39 39 20 41 53 20 63  ALL 36 * 99 AS c
34ec0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
34ed0 2d 2d 2d 0d 0a 33 35 36 34 0d 0a 33 35 36 34 0d  ---..3564..3564.
34ee0 0a 33 35 36 34 0d 0a 0d 0a 71 75 65 72 79 20 49  .3564....query I
34ef0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
34f00 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57  CT * FROM tab1 W
34f10 48 45 52 45 20 4e 4f 54 20 28 20 4e 4f 54 20 35  HERE NOT ( NOT 5
34f20 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 20 29 0d  0 IS NOT NULL ).
34f30 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
34f40 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61  hashing to c6c0a
34f50 34 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31  4111b36d04dbc811
34f60 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71  a11e4d54cad....q
34f70 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
34f80 53 45 4c 45 43 54 20 31 39 20 46 52 4f 4d 20 74  SELECT 19 FROM t
34f90 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab1 WHERE NOT - 
34fa0 2b 20 37 38 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  + 78 IS NULL..--
34fb0 2d 2d 0d 0a 31 39 0d 0a 31 39 0d 0a 31 39 0d 0a  --..19..19..19..
34fc0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
34fd0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
34fe0 43 54 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 2d 20  CT + col0 * + - 
34ff0 34 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  42 FROM tab0 AS 
35000 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 36 35  cor0..----..-365
35010 34 0d 0a 2d 34 30 37 34 0d 0a 2d 36 33 30 0d 0a  4..-4074..-630..
35020 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
35030 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
35040 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
35050 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 30 37 0d  sort label-1207.
35060 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 4d 49  .SELECT ALL - MI
35070 4e 28 20 2d 20 2b 20 38 30 20 29 20 41 53 20 63  N( - + 80 ) AS c
35080 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol0 FROM tab2..-
35090 2d 2d 2d 0d 0a 38 30 0d 0a 0d 0a 73 6b 69 70 69  ---..80....skipi
350a0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
350b0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
350c0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
350d0 31 32 30 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1207..SELECT ALL
350e0 20 2d 20 4d 49 4e 20 28 20 2d 20 2b 20 38 30 20   - MIN ( - + 80 
350f0 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
35100 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 38 30 0d 0a 0d  ab2..----..80...
35110 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
35120 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
35130 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
35140 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
35150 65 6c 2d 31 32 30 38 0d 0a 53 45 4c 45 43 54 20  el-1208..SELECT 
35160 41 4c 4c 20 2b 20 43 41 53 54 28 20 2d 20 63 6f  ALL + CAST( - co
35170 6c 31 20 41 53 20 53 49 47 4e 45 44 20 29 20 63  l1 AS SIGNED ) c
35180 6f 6c 32 2c 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ol2, col2 FROM t
35190 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 0d 0a  ab1..----..-14..
351a0 39 36 0d 0a 2d 34 37 0d 0a 36 38 0d 0a 2d 35 0d  96..-47..68..-5.
351b0 0a 35 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .59....skipif my
351c0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
351d0 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
351e0 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
351f0 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
35200 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
35210 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
35220 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
35230 6c 61 62 65 6c 2d 31 32 30 38 0d 0a 53 45 4c 45  label-1208..SELE
35240 43 54 20 41 4c 4c 20 2b 20 43 41 53 54 20 28 20  CT ALL + CAST ( 
35250 2d 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45  - col1 AS INTEGE
35260 52 20 29 20 63 6f 6c 32 2c 20 63 6f 6c 32 20 46  R ) col2, col2 F
35270 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
35280 2d 31 34 0d 0a 39 36 0d 0a 2d 34 37 0d 0a 36 38  -14..96..-47..68
35290 0d 0a 2d 35 0d 0a 35 39 0d 0a 0d 0a 6f 6e 6c 79  ..-5..59....only
352a0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
352b0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
352c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
352d0 61 62 65 6c 2d 31 32 30 39 0d 0a 53 45 4c 45 43  abel-1209..SELEC
352e0 54 20 2b 20 28 20 2d 20 4d 41 58 28 20 2d 20 2d  T + ( - MAX( - -
352f0 20 33 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30   3 ) ) FROM tab0
35300 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b  ..----..-3....sk
35310 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
35320 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
35330 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
35340 65 6c 2d 31 32 30 39 0d 0a 53 45 4c 45 43 54 20  el-1209..SELECT 
35350 2b 20 28 20 2d 20 4d 41 58 20 28 20 2d 20 2d 20  + ( - MAX ( - - 
35360 33 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30 0d  3 ) ) FROM tab0.
35370 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 6f 6e 6c  .----..-3....onl
35380 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
35390 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61   syntax: aggrega
353a0 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  te syntax: SIGNE
353b0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
353c0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
353d0 31 32 31 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1210..SELECT ALL
353e0 20 2b 20 2d 20 43 4f 55 4e 54 28 20 43 41 53 54   + - COUNT( CAST
353f0 28 20 63 6f 6c 31 20 41 53 20 53 49 47 4e 45 44  ( col1 AS SIGNED
35400 20 29 20 29 20 2b 20 2d 20 2d 20 43 4f 55 4e 54   ) ) + - - COUNT
35410 28 20 2b 20 63 6f 6c 31 20 29 20 41 53 20 63 6f  ( + col1 ) AS co
35420 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
35430 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  cor0..----..0...
35440 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
35450 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
35460 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
35470 6c 61 62 65 6c 2d 31 32 31 30 0d 0a 53 45 4c 45  label-1210..SELE
35480 43 54 20 41 4c 4c 20 2b 20 2d 20 43 4f 55 4e 54  CT ALL + - COUNT
35490 20 28 20 43 41 53 54 20 28 20 63 6f 6c 31 20 41   ( CAST ( col1 A
354a0 53 20 49 4e 54 45 47 45 52 20 29 20 29 20 2b 20  S INTEGER ) ) + 
354b0 2d 20 2d 20 43 4f 55 4e 54 20 28 20 2b 20 63 6f  - - COUNT ( + co
354c0 6c 31 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  l1 ) AS col1 FRO
354d0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
354e0 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69  ----..0....onlyi
354f0 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
35500 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
35510 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
35520 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 31 31  wsort label-1211
35530 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63  ..SELECT ALL - c
35540 6f 6c 32 20 2b 20 2d 20 43 41 53 54 28 20 4e 55  ol2 + - CAST( NU
35550 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 41  LL AS SIGNED ) A
35560 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
35570 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
35580 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
35590 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
355a0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
355b0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
355c0 72 74 20 6c 61 62 65 6c 2d 31 32 31 31 0d 0a 53  rt label-1211..S
355d0 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32  ELECT ALL - col2
355e0 20 2b 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c   + - CAST ( NULL
355f0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53   AS INTEGER ) AS
35600 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
35610 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
35620 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
35630 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
35640 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
35650 49 4e 43 54 20 2d 20 2d 20 38 30 20 2b 20 2d 20  INCT - - 80 + - 
35660 63 6f 6c 31 20 41 53 20 63 6f 6c 32 2c 20 37 38  col1 AS col2, 78
35670 20 2a 20 2d 20 2b 20 63 6f 6c 31 20 46 52 4f 4d   * - + col1 FROM
35680 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
35690 0d 0a 31 33 0d 0a 2d 35 32 32 36 0d 0a 32 39 0d  ..13..-5226..29.
356a0 0a 2d 33 39 37 38 0d 0a 33 0d 0a 2d 36 30 30 36  .-3978..3..-6006
356b0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
356c0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
356d0 49 4e 43 54 20 2b 20 2d 20 33 33 20 2b 20 2d 20  INCT + - 33 + - 
356e0 63 6f 6c 32 20 2a 20 36 38 20 46 52 4f 4d 20 74  col2 * 68 FROM t
356f0 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab1 cor0..----..
35700 2d 34 30 34 35 0d 0a 2d 34 36 35 37 0d 0a 2d 36  -4045..-4657..-6
35710 35 36 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  561....onlyif my
35720 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
35730 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
35740 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
35750 74 20 6c 61 62 65 6c 2d 31 32 31 34 0d 0a 53 45  t label-1214..SE
35760 4c 45 43 54 20 2d 20 2d 20 32 30 20 2b 20 2b 20  LECT - - 20 + + 
35770 2d 20 28 20 2d 20 2d 20 43 41 53 54 28 20 4e 55  - ( - - CAST( NU
35780 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 29  LL AS SIGNED ) )
35790 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
357a0 72 30 20 57 48 45 52 45 20 28 20 4e 4f 54 20 28  r0 WHERE ( NOT (
357b0 20 39 33 20 2a 20 2d 20 63 6f 6c 31 20 2a 20 28   93 * - col1 * (
357c0 20 2b 20 31 36 20 29 20 49 53 20 4e 55 4c 4c 20   + 16 ) IS NULL 
357d0 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ) )..----..NULL.
357e0 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .NULL..NULL....s
357f0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
35800 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
35810 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
35820 62 65 6c 2d 31 32 31 34 0d 0a 53 45 4c 45 43 54  bel-1214..SELECT
35830 20 2d 20 2d 20 32 30 20 2b 20 2b 20 2d 20 28 20   - - 20 + + - ( 
35840 2d 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  - - CAST ( NULL 
35850 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20 46  AS INTEGER ) ) F
35860 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
35870 20 57 48 45 52 45 20 28 20 4e 4f 54 20 28 20 39   WHERE ( NOT ( 9
35880 33 20 2a 20 2d 20 63 6f 6c 31 20 2a 20 28 20 2b  3 * - col1 * ( +
35890 20 31 36 20 29 20 49 53 20 4e 55 4c 4c 20 29 20   16 ) IS NULL ) 
358a0 29 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  )..----..NULL..N
358b0 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c  ULL..NULL....onl
358c0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
358d0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
358e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
358f0 6c 61 62 65 6c 2d 31 32 31 35 0d 0a 53 45 4c 45  label-1215..SELE
35900 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 28 20  CT ALL + COUNT( 
35910 2a 20 29 20 2b 20 28 20 2b 20 35 30 20 29 20 41  * ) + ( + 50 ) A
35920 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
35930 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
35940 35 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  53....skipif mys
35950 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
35960 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
35970 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 31 35 0d  sort label-1215.
35980 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f  .SELECT ALL + CO
35990 55 4e 54 20 28 20 2a 20 29 20 2b 20 28 20 2b 20  UNT ( * ) + ( + 
359a0 35 30 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  50 ) AS col1 FRO
359b0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
359c0 2d 2d 2d 2d 0d 0a 35 33 0d 0a 0d 0a 6f 6e 6c 79  ----..53....only
359d0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
359e0 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74  syntax: aggregat
359f0 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  e syntax: SIGNED
35a00 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
35a10 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
35a20 32 31 36 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20  216..SELECT + - 
35a30 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2d 20 53  COUNT( * ) * - S
35a40 55 4d 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  UM( DISTINCT col
35a50 30 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  0 ) AS col1 FROM
35a60 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
35a70 45 52 45 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  ERE CAST( NULL A
35a80 53 20 53 49 47 4e 45 44 20 29 20 4e 4f 54 20 42  S SIGNED ) NOT B
35a90 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20  ETWEEN NULL AND 
35aa0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  NULL..----..NULL
35ab0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
35ac0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
35ad0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
35ae0 72 74 20 6c 61 62 65 6c 2d 31 32 31 36 0d 0a 53  rt label-1216..S
35af0 45 4c 45 43 54 20 2b 20 2d 20 43 4f 55 4e 54 20  ELECT + - COUNT 
35b00 28 20 2a 20 29 20 2a 20 2d 20 53 55 4d 20 28 20  ( * ) * - SUM ( 
35b10 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 29 20  DISTINCT col0 ) 
35b20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
35b30 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
35b40 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
35b50 4e 54 45 47 45 52 20 29 20 4e 4f 54 20 42 45 54  NTEGER ) NOT BET
35b60 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e 55  WEEN NULL AND NU
35b70 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  LL..----..NULL..
35b80 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
35b90 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
35ba0 43 54 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74  CT + col0 FROM t
35bb0 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
35bc0 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 42  E NOT NULL NOT B
35bd0 45 54 57 45 45 4e 20 32 34 20 2a 20 2d 20 63 6f  ETWEEN 24 * - co
35be0 6c 30 20 2f 20 36 36 20 2a 20 2b 20 2b 20 36 37  l0 / 66 * + + 67
35bf0 20 41 4e 44 20 2b 20 2d 20 28 20 2b 20 35 33 20   AND + - ( + 53 
35c00 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  )..----....onlyi
35c10 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
35c20 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
35c30 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
35c40 61 62 65 6c 2d 31 32 31 38 0d 0a 53 45 4c 45 43  abel-1218..SELEC
35c50 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 4f 55  T DISTINCT + COU
35c60 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 2c  NT( * ) AS col1,
35c70 20 37 35 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d   75 FROM tab2..-
35c80 2d 2d 2d 0d 0a 33 0d 0a 37 35 0d 0a 0d 0a 73 6b  ---..3..75....sk
35c90 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
35ca0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
35cb0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
35cc0 62 65 6c 2d 31 32 31 38 0d 0a 53 45 4c 45 43 54  bel-1218..SELECT
35cd0 20 44 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e   DISTINCT + COUN
35ce0 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 2c  T ( * ) AS col1,
35cf0 20 37 35 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d   75 FROM tab2..-
35d00 2d 2d 2d 0d 0a 33 0d 0a 37 35 0d 0a 0d 0a 6f 6e  ---..3..75....on
35d10 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
35d20 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
35d30 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
35d40 20 6c 61 62 65 6c 2d 31 32 31 39 0d 0a 53 45 4c   label-1219..SEL
35d50 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 4d  ECT DISTINCT + M
35d60 49 4e 28 20 2b 20 31 39 20 29 20 46 52 4f 4d 20  IN( + 19 ) FROM 
35d70 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 39 0d 0a  tab1..----..19..
35d80 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
35d90 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
35da0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
35db0 20 6c 61 62 65 6c 2d 31 32 31 39 0d 0a 53 45 4c   label-1219..SEL
35dc0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 4d  ECT DISTINCT + M
35dd0 49 4e 20 28 20 2b 20 31 39 20 29 20 46 52 4f 4d  IN ( + 19 ) FROM
35de0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 39 0d   tab1..----..19.
35df0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
35e00 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
35e10 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
35e20 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
35e30 6c 61 62 65 6c 2d 31 32 32 30 0d 0a 53 45 4c 45  label-1220..SELE
35e40 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
35e50 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f  OM tab1 WHERE NO
35e60 54 20 28 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 2b  T ( + + col2 * +
35e70 20 63 6f 6c 32 20 29 20 4e 4f 54 20 49 4e 20 28   col2 ) NOT IN (
35e80 20 2b 20 37 36 2c 20 39 34 20 2d 20 2b 20 2d 20   + 76, 94 - + - 
35e90 43 41 53 54 28 20 63 6f 6c 31 20 41 53 20 53 49  CAST( col1 AS SI
35ea0 47 4e 45 44 20 29 20 2f 20 2b 20 2d 20 33 33 2c  GNED ) / + - 33,
35eb0 20 2b 20 2d 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d   + - col2 )..---
35ec0 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  -....skipif mysq
35ed0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
35ee0 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  le..query III ro
35ef0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 32 30  wsort label-1220
35f00 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
35f10 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48  T * FROM tab1 WH
35f20 45 52 45 20 4e 4f 54 20 28 20 2b 20 2b 20 63 6f  ERE NOT ( + + co
35f30 6c 32 20 2a 20 2b 20 63 6f 6c 32 20 29 20 4e 4f  l2 * + col2 ) NO
35f40 54 20 49 4e 20 28 20 2b 20 37 36 2c 20 39 34 20  T IN ( + 76, 94 
35f50 2d 20 2b 20 2d 20 43 41 53 54 20 28 20 63 6f 6c  - + - CAST ( col
35f60 31 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2f  1 AS INTEGER ) /
35f70 20 2b 20 2d 20 33 33 2c 20 2b 20 2d 20 63 6f 6c   + - 33, + - col
35f80 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  2 )..----....onl
35f90 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
35fa0 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61   syntax: aggrega
35fb0 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  te syntax: SIGNE
35fc0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
35fd0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
35fe0 31 32 32 31 0d 0a 53 45 4c 45 43 54 20 43 41 53  1221..SELECT CAS
35ff0 54 28 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20  T( + COUNT( * ) 
36000 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2b 20  AS SIGNED ) + + 
36010 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20 2d 20  MAX( DISTINCT - 
36020 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 32  col2 ) FROM tab2
36030 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30 0d 0a 0d 0a 73  ..----..-20....s
36040 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
36050 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
36060 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
36070 62 65 6c 2d 31 32 32 31 0d 0a 53 45 4c 45 43 54  bel-1221..SELECT
36080 20 43 41 53 54 20 28 20 2b 20 43 4f 55 4e 54 20   CAST ( + COUNT 
36090 28 20 2a 20 29 20 41 53 20 49 4e 54 45 47 45 52  ( * ) AS INTEGER
360a0 20 29 20 2b 20 2b 20 4d 41 58 20 28 20 44 49 53   ) + + MAX ( DIS
360b0 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 29 20 46  TINCT - col2 ) F
360c0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
360d0 2d 32 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  -20....query I r
360e0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
360f0 49 53 54 49 4e 43 54 20 39 33 20 2a 20 2d 20 2d  ISTINCT 93 * - -
36100 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 32 20 46   col2 + + col2 F
36110 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
36120 35 35 34 36 0d 0a 36 33 39 32 0d 0a 39 30 32 34  5546..6392..9024
36130 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
36140 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
36150 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
36160 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
36170 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
36180 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
36190 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 63 6f 6c  ELECT + col0 col
361a0 32 2c 20 38 20 46 52 4f 4d 20 74 61 62 32 0d 0a  2, 8 FROM tab2..
361b0 2d 2d 2d 2d 0d 0a 34 36 0d 0a 38 0d 0a 36 34 0d  ----..46..8..64.
361c0 0a 38 0d 0a 37 35 0d 0a 38 0d 0a 0d 0a 6f 6e 6c  .8..75..8....onl
361d0 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
361e0 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
361f0 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
36200 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
36210 32 34 0d 0a 53 45 4c 45 43 54 20 2d 20 34 32 20  24..SELECT - 42 
36220 44 49 56 20 2b 20 2b 20 34 36 20 46 52 4f 4d 20  DIV + + 46 FROM 
36230 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
36240 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .0..0..0....skip
36250 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
36260 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
36270 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
36280 2d 31 32 32 34 0d 0a 53 45 4c 45 43 54 20 2d 20  -1224..SELECT - 
36290 34 32 20 2f 20 2b 20 2b 20 34 36 20 46 52 4f 4d  42 / + + 46 FROM
362a0 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab0 cor0..----
362b0 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 6f 6e 6c  ..0..0..0....onl
362c0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
362d0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
362e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
362f0 6c 61 62 65 6c 2d 31 32 32 35 0d 0a 53 45 4c 45  label-1225..SELE
36300 43 54 20 44 49 53 54 49 4e 43 54 20 31 38 20 2b  CT DISTINCT 18 +
36310 20 2b 20 28 20 43 4f 55 4e 54 28 20 2a 20 29 20   + ( COUNT( * ) 
36320 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  ) FROM tab0 AS c
36330 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 0d 0a 0d  or0..----..21...
36340 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
36350 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
36360 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
36370 6c 61 62 65 6c 2d 31 32 32 35 0d 0a 53 45 4c 45  label-1225..SELE
36380 43 54 20 44 49 53 54 49 4e 43 54 20 31 38 20 2b  CT DISTINCT 18 +
36390 20 2b 20 28 20 43 4f 55 4e 54 20 28 20 2a 20 29   + ( COUNT ( * )
363a0 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
363b0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 0d 0a  cor0..----..21..
363c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
363d0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28 20  t..SELECT ALL ( 
363e0 2b 20 2b 20 36 36 20 29 20 2d 20 2b 20 63 6f 6c  + + 66 ) - + col
363f0 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  1 AS col0 FROM t
36400 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
36410 2d 0d 0a 2d 31 35 0d 0a 34 35 0d 0a 36 35 0d 0a  -..-15..45..65..
36420 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
36430 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
36440 43 54 20 2d 20 2d 20 34 33 20 41 53 20 63 6f 6c  CT - - 43 AS col
36450 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
36460 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
36470 61 62 32 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d  ab2 AS cor1..---
36480 2d 0d 0a 34 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -..43....onlyif 
36490 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
364a0 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
364b0 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
364c0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 32 38 0d  sort label-1228.
364d0 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 41  .SELECT + col2 A
364e0 53 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c 32 20 44  S col2, + col2 D
364f0 49 56 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c  IV - col2 AS col
36500 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
36510 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 2d  or0..----..10..-
36520 31 0d 0a 34 37 0d 0a 2d 31 0d 0a 39 39 0d 0a 2d  1..47..-1..99..-
36530 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
36540 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
36550 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
36560 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 32 38 0d  sort label-1228.
36570 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 41  .SELECT + col2 A
36580 53 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c 32 20 2f  S col2, + col2 /
36590 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20   - col2 AS col0 
365a0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
365b0 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 2d 31 0d  0..----..10..-1.
365c0 0a 34 37 0d 0a 2d 31 0d 0a 39 39 0d 0a 2d 31 0d  .47..-1..99..-1.
365d0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
365e0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
365f0 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48  ROM tab2 cor0 WH
36600 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 32 20 2b  ERE NOT - col2 +
36610 20 2d 20 63 6f 6c 31 20 3c 3e 20 4e 55 4c 4c 0d   - col1 <> NULL.
36620 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
36630 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
36640 54 20 41 4c 4c 20 2d 20 2d 20 63 6f 6c 30 2c 20  T ALL - - col0, 
36650 28 20 34 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ( 4 ) AS col1 FR
36660 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
36670 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 34 0d 0a 38 35  .----..51..4..85
36680 0d 0a 34 0d 0a 39 31 0d 0a 34 0d 0a 0d 0a 6f 6e  ..4..91..4....on
36690 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
366a0 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
366b0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
366c0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
366d0 32 33 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  231..SELECT ALL 
366e0 2b 20 34 20 2f 20 2d 20 2b 20 43 41 53 54 28 20  + 4 / - + CAST( 
366f0 2d 20 2b 20 63 6f 6c 31 20 41 53 20 53 49 47 4e  - + col1 AS SIGN
36700 45 44 20 29 20 2b 20 63 6f 6c 32 20 46 52 4f 4d  ED ) + col2 FROM
36710 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
36720 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20 3d 20 4e  ERE NOT col0 = N
36730 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  ULL..----....ski
36740 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
36750 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
36760 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
36770 6c 2d 31 32 33 31 0d 0a 53 45 4c 45 43 54 20 41  l-1231..SELECT A
36780 4c 4c 20 2b 20 34 20 2f 20 2d 20 2b 20 43 41 53  LL + 4 / - + CAS
36790 54 20 28 20 2d 20 2b 20 63 6f 6c 31 20 41 53 20  T ( - + col1 AS 
367a0 49 4e 54 45 47 45 52 20 29 20 2b 20 63 6f 6c 32  INTEGER ) + col2
367b0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
367c0 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  r0 WHERE NOT col
367d0 30 20 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  0 = NULL..----..
367e0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
367f0 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67   CAST syntax: ag
36800 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
36810 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
36820 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
36830 61 62 65 6c 2d 31 32 33 32 0d 0a 53 45 4c 45 43  abel-1232..SELEC
36840 54 20 44 49 53 54 49 4e 43 54 20 2b 20 28 20 2d  T DISTINCT + ( -
36850 20 2d 20 43 41 53 54 28 20 43 4f 55 4e 54 28 20   - CAST( COUNT( 
36860 2a 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20  * ) AS SIGNED ) 
36870 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
36880 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
36890 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..3....skipif m
368a0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
368b0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
368c0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 33  owsort label-123
368d0 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  2..SELECT DISTIN
368e0 43 54 20 2b 20 28 20 2d 20 2d 20 43 41 53 54 20  CT + ( - - CAST 
368f0 28 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53  ( COUNT ( * ) AS
36900 20 49 4e 54 45 47 45 52 20 29 20 29 20 41 53 20   INTEGER ) ) AS 
36910 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
36920 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  S cor0..----..3.
36930 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
36940 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
36950 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
36960 20 57 48 45 52 45 20 4e 4f 54 20 34 38 20 3e 20   WHERE NOT 48 > 
36970 28 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c  ( - col0 + - col
36980 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  1 )..----....onl
36990 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
369a0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
369b0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
369c0 6c 61 62 65 6c 2d 31 32 33 34 0d 0a 53 45 4c 45  label-1234..SELE
369d0 43 54 20 4d 49 4e 28 20 2b 20 63 6f 6c 31 20 29  CT MIN( + col1 )
369e0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
369f0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
36a00 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..1....skipif my
36a10 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
36a20 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
36a30 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 33 34  wsort label-1234
36a40 0d 0a 53 45 4c 45 43 54 20 4d 49 4e 20 28 20 2b  ..SELECT MIN ( +
36a50 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 30 20   col1 ) AS col0 
36a60 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
36a70 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 6f 6e  0..----..1....on
36a80 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
36a90 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
36aa0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
36ab0 74 20 6c 61 62 65 6c 2d 31 32 33 35 0d 0a 53 45  t label-1235..SE
36ac0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
36ad0 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20 2d  COUNT( * ) * + -
36ae0 20 43 4f 55 4e 54 28 20 2a 20 29 2c 20 43 4f 55   COUNT( * ), COU
36af0 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20  NT( * ) AS col1 
36b00 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
36b10 0a 39 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  .9..3....skipif 
36b20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
36b30 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
36b40 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
36b50 32 33 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  235..SELECT DIST
36b60 49 4e 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a  INCT - COUNT ( *
36b70 20 29 20 2a 20 2b 20 2d 20 43 4f 55 4e 54 20 28   ) * + - COUNT (
36b80 20 2a 20 29 2c 20 43 4f 55 4e 54 20 28 20 2a 20   * ), COUNT ( * 
36b90 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
36ba0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 33 0d  ab1..----..9..3.
36bb0 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
36bc0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20  ort..SELECT - - 
36bd0 63 6f 6c 32 20 41 53 20 63 6f 6c 31 2c 20 2b 20  col2 AS col1, + 
36be0 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f  col0 AS col0 FRO
36bf0 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54  M tab0 WHERE NOT
36c00 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c   NULL IS NOT NUL
36c10 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 38 37 0d  L..----..10..87.
36c20 0a 34 37 0d 0a 31 35 0d 0a 39 39 0d 0a 39 37 0d  .47..15..99..97.
36c30 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
36c40 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
36c50 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
36c60 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
36c70 6c 61 62 65 6c 2d 31 32 33 37 0d 0a 53 45 4c 45  label-1237..SELE
36c80 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
36c90 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
36ca0 57 48 45 52 45 20 4e 4f 54 20 43 41 53 54 28 20  WHERE NOT CAST( 
36cb0 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
36cc0 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   <> NULL..----..
36cd0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
36ce0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
36cf0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
36d00 72 74 20 6c 61 62 65 6c 2d 31 32 33 37 0d 0a 53  rt label-1237..S
36d10 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a  ELECT DISTINCT *
36d20 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
36d30 72 30 20 57 48 45 52 45 20 4e 4f 54 20 43 41 53  r0 WHERE NOT CAS
36d40 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
36d50 47 45 52 20 29 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d  GER ) <> NULL..-
36d60 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ---....query III
36d70 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
36d80 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31   ALL * FROM tab1
36d90 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 34 32 20   WHERE NOT + 42 
36da0 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  IS NULL..----..9
36db0 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
36dc0 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64  to c6c0a4111b36d
36dd0 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34  04dbc811a11e4d54
36de0 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  cad....query III
36df0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
36e00 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
36e10 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  cor0 WHERE NULL 
36e20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2d 20 63 6f  NOT BETWEEN - co
36e30 6c 31 20 41 4e 44 20 63 6f 6c 30 0d 0a 2d 2d 2d  l1 AND col0..---
36e40 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
36e50 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
36e60 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e  ntax: DIV for in
36e70 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
36e80 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
36e90 74 20 6c 61 62 65 6c 2d 31 32 34 30 0d 0a 53 45  t label-1240..SE
36ea0 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54  LECT ALL + COUNT
36eb0 28 20 2a 20 29 20 44 49 56 20 2b 20 2d 20 4d 41  ( * ) DIV + - MA
36ec0 58 28 20 37 38 20 29 20 2a 20 2d 20 43 4f 55 4e  X( 78 ) * - COUN
36ed0 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46  T( * ) AS col0 F
36ee0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
36ef0 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69  ..----..0....ski
36f00 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
36f10 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
36f20 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
36f30 6c 2d 31 32 34 30 0d 0a 53 45 4c 45 43 54 20 41  l-1240..SELECT A
36f40 4c 4c 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29  LL + COUNT ( * )
36f50 20 2f 20 2b 20 2d 20 4d 41 58 20 28 20 37 38 20   / + - MAX ( 78 
36f60 29 20 2a 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  ) * - COUNT ( * 
36f70 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
36f80 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
36f90 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -..0....query I 
36fa0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
36fb0 41 4c 4c 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 32  ALL + col2 * + 2
36fc0 30 20 2a 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c  0 * col2 * - col
36fd0 32 20 2b 20 2b 20 37 37 20 2a 20 63 6f 6c 30 20  2 + + 77 * col0 
36fe0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
36ff0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 37 35 30 37  0..----..-127507
37000 32 0d 0a 2d 32 33 39 37 39 38 0d 0a 2d 33 38 39  2..-239798..-389
37010 36 34 36 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49  6465....query II
37020 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
37030 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
37040 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
37050 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20 3c 3d  HERE NOT col2 <=
37060 20 2b 20 37 37 0d 0a 2d 2d 2d 2d 0d 0a 39 37 0d   + 77..----..97.
37070 0a 31 0d 0a 39 39 0d 0a 0d 0a 71 75 65 72 79 20  .1..99....query 
37080 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
37090 54 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30  T + col1 AS col0
370a0 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
370b0 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c   col1 IS NOT NUL
370c0 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 36 37 0d  L..----..51..67.
370d0 0a 37 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  .77....skipif po
370e0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
370f0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
37100 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
37110 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
37120 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
37130 0a 53 45 4c 45 43 54 20 2b 20 31 37 20 63 6f 6c  .SELECT + 17 col
37140 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
37150 2d 0d 0a 31 37 0d 0a 31 37 0d 0a 31 37 0d 0a 0d  -..17..17..17...
37160 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
37170 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43  CAST syntax: DEC
37180 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65  IMAL type: ..que
37190 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
371a0 61 62 65 6c 2d 31 32 34 35 0d 0a 53 45 4c 45 43  abel-1245..SELEC
371b0 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48  T * FROM tab0 WH
371c0 45 52 45 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  ERE CAST( NULL A
371d0 53 20 44 45 43 49 4d 41 4c 20 29 20 49 53 20 4e  S DECIMAL ) IS N
371e0 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  OT NULL..----...
371f0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
37200 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
37210 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
37220 74 20 6c 61 62 65 6c 2d 31 32 34 35 0d 0a 53 45  t label-1245..SE
37230 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
37240 20 57 48 45 52 45 20 43 41 53 54 20 28 20 4e 55   WHERE CAST ( NU
37250 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 49 53 20  LL AS REAL ) IS 
37260 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
37270 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
37280 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67   CAST syntax: ag
37290 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
372a0 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
372b0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
372c0 61 62 65 6c 2d 31 32 34 36 0d 0a 53 45 4c 45 43  abel-1246..SELEC
372d0 54 20 44 49 53 54 49 4e 43 54 20 2b 20 4d 49 4e  T DISTINCT + MIN
372e0 28 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 43  ( DISTINCT - - C
372f0 41 53 54 28 20 2b 20 63 6f 6c 32 20 41 53 20 53  AST( + col2 AS S
37300 49 47 4e 45 44 20 29 20 29 20 41 53 20 63 6f 6c  IGNED ) ) AS col
37310 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
37320 2d 0d 0a 31 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..10....skipif 
37330 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
37340 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
37350 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
37360 34 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  46..SELECT DISTI
37370 4e 43 54 20 2b 20 4d 49 4e 20 28 20 44 49 53 54  NCT + MIN ( DIST
37380 49 4e 43 54 20 2d 20 2d 20 43 41 53 54 20 28 20  INCT - - CAST ( 
37390 2b 20 63 6f 6c 32 20 41 53 20 49 4e 54 45 47 45  + col2 AS INTEGE
373a0 52 20 29 20 29 20 41 53 20 63 6f 6c 30 20 46 52  R ) ) AS col0 FR
373b0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
373c0 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
373d0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
373e0 54 49 4e 43 54 20 35 38 20 2a 20 2d 20 63 6f 6c  TINCT 58 * - col
373f0 30 20 2b 20 2d 20 34 20 41 53 20 63 6f 6c 30 20  0 + - 4 AS col0 
37400 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
37410 0a 2d 32 36 37 32 0d 0a 2d 33 37 31 36 0d 0a 2d  .-2672..-3716..-
37420 34 33 35 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20  4354....query I 
37430 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
37440 2d 20 63 6f 6c 30 20 2d 20 38 34 20 41 53 20 63  - col0 - 84 AS c
37450 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
37460 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37   cor0..----..-17
37470 31 0d 0a 2d 31 38 31 0d 0a 2d 39 39 0d 0a 0d 0a  1..-181..-99....
37480 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
37490 0a 53 45 4c 45 43 54 20 2b 20 37 37 20 2b 20 63  .SELECT + 77 + c
374a0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol0 FROM tab2 co
374b0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 33 0d 0a 31  r0..----..123..1
374c0 34 31 0d 0a 31 35 32 0d 0a 0d 0a 6f 6e 6c 79 69  41..152....onlyi
374d0 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
374e0 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
374f0 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
37500 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 35 30  wsort label-1250
37510 0d 0a 53 45 4c 45 43 54 20 35 38 20 2b 20 36 31  ..SELECT 58 + 61
37520 20 2d 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20   - - CAST( NULL 
37530 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 37 31  AS SIGNED ) + 71
37540 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d   FROM tab1 cor0.
37550 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
37560 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  L..NULL....skipi
37570 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
37580 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
37590 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
375a0 31 32 35 30 0d 0a 53 45 4c 45 43 54 20 35 38 20  1250..SELECT 58 
375b0 2b 20 36 31 20 2d 20 2d 20 43 41 53 54 20 28 20  + 61 - - CAST ( 
375c0 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
375d0 29 20 2b 20 37 31 20 46 52 4f 4d 20 74 61 62 31  ) + 71 FROM tab1
375e0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
375f0 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
37600 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
37610 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
37620 54 20 32 34 20 46 52 4f 4d 20 74 61 62 31 20 57  T 24 FROM tab1 W
37630 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53  HERE NOT NULL IS
37640 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
37650 0a 32 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  .24....query II 
37660 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
37670 44 49 53 54 49 4e 43 54 20 33 30 20 41 53 20 63  DISTINCT 30 AS c
37680 6f 6c 30 2c 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ol0, col0 FROM t
37690 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
376a0 2d 0d 0a 33 30 0d 0a 35 31 0d 0a 33 30 0d 0a 38  -..30..51..30..8
376b0 35 0d 0a 33 30 0d 0a 39 31 0d 0a 0d 0a 71 75 65  5..30..91....que
376c0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
376d0 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
376e0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
376f0 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20 4e 4f  HERE NOT col1 NO
37700 54 20 49 4e 20 28 20 2b 20 63 6f 6c 30 20 29 0d  T IN ( + col0 ).
37710 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
37720 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
37730 20 41 4c 4c 20 2d 20 2b 20 63 6f 6c 31 20 46 52   ALL - + col1 FR
37740 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
37750 57 48 45 52 45 20 32 30 20 2b 20 2d 20 2d 20 63  WHERE 20 + - - c
37760 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ol2 IS NULL..---
37770 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
37780 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d  sort..SELECT + -
37790 20 63 6f 6c 31 20 2a 20 2b 20 2d 20 31 30 20 41   col1 * + - 10 A
377a0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
377b0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
377c0 35 31 30 0d 0a 36 37 30 0d 0a 37 37 30 0d 0a 0d  510..670..770...
377d0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
377e0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
377f0 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 20   FROM tab1 cor0 
37800 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20 4e  WHERE NOT col2 N
37810 4f 54 20 42 45 54 57 45 45 4e 20 2b 20 38 31 20  OT BETWEEN + 81 
37820 41 4e 44 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d  AND - col1..----
37830 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
37840 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
37850 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74  tax: DIV for int
37860 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
37870 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
37880 20 6c 61 62 65 6c 2d 31 32 35 37 0d 0a 53 45 4c   label-1257..SEL
37890 45 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 44  ECT COUNT( * ) D
378a0 49 56 20 31 35 20 41 53 20 63 6f 6c 30 20 46 52  IV 15 AS col0 FR
378b0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
378c0 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .----..0....skip
378d0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
378e0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
378f0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
37900 2d 31 32 35 37 0d 0a 53 45 4c 45 43 54 20 43 4f  -1257..SELECT CO
37910 55 4e 54 20 28 20 2a 20 29 20 2f 20 31 35 20 41  UNT ( * ) / 15 A
37920 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
37930 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
37940 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
37950 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63  sort..SELECT + c
37960 6f 6c 31 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 46  ol1 * + - col2 F
37970 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
37980 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 37 33 0d 0a 2d  ..----..-1173..-
37990 33 30 38 30 0d 0a 2d 33 38 38 36 0d 0a 0d 0a 6f  3080..-3886....o
379a0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
379b0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
379c0 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
379d0 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
379e0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
379f0 6c 2d 31 32 35 39 0d 0a 53 45 4c 45 43 54 20 2b  l-1259..SELECT +
37a00 20 43 4f 55 4e 54 28 20 2a 20 29 20 44 49 56 20   COUNT( * ) DIV 
37a10 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2d 20 2b  - COUNT( * ) - +
37a20 20 32 37 20 2b 20 2b 20 2d 20 43 4f 55 4e 54 28   27 + + - COUNT(
37a30 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f   * ) AS col2 FRO
37a40 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab1 cor0..---
37a50 2d 0d 0a 2d 33 31 0d 0a 0d 0a 73 6b 69 70 69 66  -..-31....skipif
37a60 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
37a70 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
37a80 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
37a90 32 35 39 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f  259..SELECT + CO
37aa0 55 4e 54 20 28 20 2a 20 29 20 2f 20 2d 20 43 4f  UNT ( * ) / - CO
37ab0 55 4e 54 20 28 20 2a 20 29 20 2d 20 2b 20 32 37  UNT ( * ) - + 27
37ac0 20 2b 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a   + + - COUNT ( *
37ad0 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
37ae0 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
37af0 0a 2d 33 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-31....query I 
37b00 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
37b10 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46  - col1 AS col2 F
37b20 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
37b30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c   WHERE NOT ( NUL
37b40 4c 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  L ) IS NOT NULL.
37b50 0a 2d 2d 2d 2d 0d 0a 2d 31 34 0d 0a 2d 34 37 0d  .----..-14..-47.
37b60 0a 2d 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .-5....onlyif my
37b70 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
37b80 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
37b90 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
37ba0 31 32 36 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1261..SELECT ALL
37bb0 20 2b 20 2b 20 43 4f 55 4e 54 28 20 63 6f 6c 30   + + COUNT( col0
37bc0 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
37bd0 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab2 cor0..----.
37be0 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .3....skipif mys
37bf0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
37c00 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
37c10 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 36 31 0d  sort label-1261.
37c20 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20  .SELECT ALL + + 
37c30 43 4f 55 4e 54 20 28 20 63 6f 6c 30 20 29 20 41  COUNT ( col0 ) A
37c40 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
37c50 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   cor0..----..3..
37c60 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
37c70 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
37c80 63 6f 6c 31 20 2a 20 63 6f 6c 32 20 2a 20 2d 20  col1 * col2 * - 
37c90 2b 20 63 6f 6c 30 20 2a 20 2b 20 34 34 20 2b 20  + col0 * + 44 + 
37ca0 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46  + col0 AS col2 F
37cb0 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 63  ROM tab1 WHERE c
37cc0 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ol1 IS NOT NULL.
37cd0 0a 2d 2d 2d 2d 0d 0a 2d 31 31 30 33 32 31 35 0d  .----..-1103215.
37ce0 0a 2d 31 32 37 39 36 36 39 33 0d 0a 2d 33 30 31  .-12796693..-301
37cf0 35 38 38 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  5885....onlyif m
37d00 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
37d10 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65  ax: DECIMAL type
37d20 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
37d30 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 36 33 0d  sort label-1263.
37d40 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 33 39  .SELECT ALL + 39
37d50 20 41 53 20 63 6f 6c 32 2c 20 2d 20 43 41 53 54   AS col2, - CAST
37d60 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41  ( NULL AS DECIMA
37d70 4c 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  L ) AS col0 FROM
37d80 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 39 0d   tab0..----..39.
37d90 0a 4e 55 4c 4c 0d 0a 33 39 0d 0a 4e 55 4c 4c 0d  .NULL..39..NULL.
37da0 0a 33 39 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  .39..NULL....ski
37db0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
37dc0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
37dd0 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
37de0 65 6c 2d 31 32 36 33 0d 0a 53 45 4c 45 43 54 20  el-1263..SELECT 
37df0 41 4c 4c 20 2b 20 33 39 20 41 53 20 63 6f 6c 32  ALL + 39 AS col2
37e00 2c 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  , - CAST ( NULL 
37e10 41 53 20 52 45 41 4c 20 29 20 41 53 20 63 6f 6c  AS REAL ) AS col
37e20 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
37e30 2d 0d 0a 33 39 0d 0a 4e 55 4c 4c 0d 0a 33 39 0d  -..39..NULL..39.
37e40 0a 4e 55 4c 4c 0d 0a 33 39 0d 0a 4e 55 4c 4c 0d  .NULL..39..NULL.
37e50 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
37e60 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
37e70 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
37e80 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 36 34  wsort label-1264
37e90 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54  ..SELECT + COUNT
37ea0 28 20 2b 20 2b 20 63 6f 6c 31 20 29 20 41 53 20  ( + + col1 ) AS 
37eb0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
37ec0 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69  ----..3....skipi
37ed0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
37ee0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
37ef0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
37f00 31 32 36 34 0d 0a 53 45 4c 45 43 54 20 2b 20 43  1264..SELECT + C
37f10 4f 55 4e 54 20 28 20 2b 20 2b 20 63 6f 6c 31 20  OUNT ( + + col1 
37f20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
37f30 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a  ab0..----..3....
37f40 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
37f50 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20  ..SELECT - col2 
37f60 41 53 20 63 6f 6c 30 2c 20 2d 20 63 6f 6c 32 20  AS col0, - col2 
37f70 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
37f80 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 2d 31  0..----..-10..-1
37f90 30 0d 0a 2d 34 37 0d 0a 2d 34 37 0d 0a 2d 39 39  0..-47..-47..-99
37fa0 0d 0a 2d 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-99....query I
37fb0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
37fc0 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  T DISTINCT - col
37fd0 30 20 2b 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 34  0 + + col0 * + 4
37fe0 34 20 41 53 20 63 6f 6c 32 2c 20 2b 20 37 37 20  4 AS col2, + 77 
37ff0 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
38000 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20 28 20 2d 20  NULL NOT IN ( - 
38010 63 6f 6c 32 20 2a 20 2b 20 2d 20 63 6f 6c 30 2c  col2 * + - col0,
38020 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 38 37 20 2a   + col2 + + 87 *
38030 20 36 20 2d 20 2b 20 2d 20 63 6f 6c 30 2c 20 63   6 - + - col0, c
38040 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f  ol0 )..----....o
38050 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
38060 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
38070 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
38080 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
38090 31 32 36 37 0d 0a 53 45 4c 45 43 54 20 44 49 53  1267..SELECT DIS
380a0 54 49 4e 43 54 20 2b 20 32 32 20 2b 20 2d 20 31  TINCT + 22 + - 1
380b0 20 2b 20 2d 20 2b 20 63 6f 6c 31 20 2a 20 2d 20   + - + col1 * - 
380c0 2b 20 39 31 20 2b 20 2d 20 2d 20 43 41 53 54 28  + 91 + - - CAST(
380d0 20 2b 20 39 36 20 41 53 20 53 49 47 4e 45 44 20   + 96 AS SIGNED 
380e0 29 20 2a 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20  ) * + + col2 AS 
380f0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col1 FROM tab2..
38100 2d 2d 2d 2d 0d 0a 31 30 38 36 38 0d 0a 31 31 36  ----..10868..116
38110 38 36 0d 0a 36 38 37 30 0d 0a 0d 0a 73 6b 69 70  86..6870....skip
38120 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
38130 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
38140 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
38150 2d 31 32 36 37 0d 0a 53 45 4c 45 43 54 20 44 49  -1267..SELECT DI
38160 53 54 49 4e 43 54 20 2b 20 32 32 20 2b 20 2d 20  STINCT + 22 + - 
38170 31 20 2b 20 2d 20 2b 20 63 6f 6c 31 20 2a 20 2d  1 + - + col1 * -
38180 20 2b 20 39 31 20 2b 20 2d 20 2d 20 43 41 53 54   + 91 + - - CAST
38190 20 28 20 2b 20 39 36 20 41 53 20 49 4e 54 45 47   ( + 96 AS INTEG
381a0 45 52 20 29 20 2a 20 2b 20 2b 20 63 6f 6c 32 20  ER ) * + + col2 
381b0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
381c0 32 0d 0a 2d 2d 2d 2d 0d 0a 31 30 38 36 38 0d 0a  2..----..10868..
381d0 31 31 36 38 36 0d 0a 36 38 37 30 0d 0a 0d 0a 71  11686..6870....q
381e0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
381f0 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 46 52  SELECT - col1 FR
38200 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
38210 54 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 2b 20 37  T - col1 * + + 7
38220 20 2a 20 2b 20 2b 20 63 6f 6c 30 20 2b 20 2b 20   * + + col0 + + 
38230 38 32 20 2a 20 2d 20 2d 20 35 32 20 49 53 20 4e  82 * - - 52 IS N
38240 4f 54 20 4e 55 4c 4c 20 4f 52 20 4e 4f 54 20 2b  OT NULL OR NOT +
38250 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c   col1 IS NOT NUL
38260 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  L..----....onlyi
38270 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
38280 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65  yntax: aggregate
38290 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
382a0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
382b0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
382c0 36 39 0d 0a 53 45 4c 45 43 54 20 2b 20 37 33 20  69..SELECT + 73 
382d0 2b 20 2d 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c  + - - CAST( NULL
382e0 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2b   AS SIGNED ) + +
382f0 20 4d 49 4e 28 20 2b 20 63 6f 6c 31 20 29 20 41   MIN( + col1 ) A
38300 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
38310 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
38320 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
38330 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
38340 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
38350 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 36  owsort label-126
38360 39 0d 0a 53 45 4c 45 43 54 20 2b 20 37 33 20 2b  9..SELECT + 73 +
38370 20 2d 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c   - - CAST ( NULL
38380 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20   AS INTEGER ) + 
38390 2b 20 4d 49 4e 20 28 20 2b 20 63 6f 6c 31 20 29  + MIN ( + col1 )
383a0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
383b0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
383c0 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..NULL....onlyif
383d0 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
383e0 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
383f0 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
38400 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 37 30 0d  sort label-1270.
38410 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
38420 20 2d 20 63 6f 6c 30 20 44 49 56 20 34 32 20 2b   - col0 DIV 42 +
38430 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74   + - col0 FROM t
38440 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
38450 2d 0d 0a 2d 31 35 0d 0a 2d 38 39 0d 0a 2d 39 39  -..-15..-89..-99
38460 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
38470 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
38480 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
38490 72 74 20 6c 61 62 65 6c 2d 31 32 37 30 0d 0a 53  rt label-1270..S
384a0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
384b0 20 63 6f 6c 30 20 2f 20 34 32 20 2b 20 2b 20 2d   col0 / 42 + + -
384c0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
384d0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
384e0 31 35 0d 0a 2d 38 39 0d 0a 2d 39 39 0d 0a 0d 0a  15..-89..-99....
384f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
38500 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2b  .SELECT - col0 +
38510 20 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   0 FROM tab0 AS 
38520 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d  cor0..----..-15.
38530 0a 2d 38 37 0d 0a 2d 39 37 0d 0a 0d 0a 71 75 65  .-87..-97....que
38540 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
38550 4c 45 43 54 20 41 4c 4c 20 2d 20 36 39 20 46 52  LECT ALL - 69 FR
38560 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45  OM tab0 cor0 WHE
38570 52 45 20 4e 55 4c 4c 20 3c 3d 20 2d 20 33 34 0d  RE NULL <= - 34.
38580 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
38590 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
385a0 20 41 4c 4c 20 2b 20 31 38 20 41 53 20 63 6f 6c   ALL + 18 AS col
385b0 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  0 FROM tab0 cor0
385c0 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31   CROSS JOIN tab1
385d0 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
385e0 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
385f0 20 74 6f 20 62 39 35 62 61 66 61 37 33 33 36 36   to b95bafa73366
38600 36 64 66 33 39 63 35 64 33 66 39 34 37 36 30 64  6df39c5d3f94760d
38610 30 31 30 66 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  010f....onlyif m
38620 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
38630 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
38640 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
38650 72 74 20 6c 61 62 65 6c 2d 31 32 37 34 0d 0a 53  rt label-1274..S
38660 45 4c 45 43 54 20 41 4c 4c 20 43 41 53 54 28 20  ELECT ALL CAST( 
38670 2d 20 32 39 20 41 53 20 53 49 47 4e 45 44 20 29  - 29 AS SIGNED )
38680 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 2c   col1 FROM tab1,
38690 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
386a0 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
386b0 73 68 69 6e 67 20 74 6f 20 30 63 63 39 64 64 61  shing to 0cc9dda
386c0 64 39 33 66 63 37 38 33 30 35 35 35 31 38 61 65  d93fc783055518ae
386d0 34 62 36 62 65 30 35 34 62 0d 0a 0d 0a 73 6b 69  4b6be054b....ski
386e0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
386f0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70  compatible..skip
38700 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
38710 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
38720 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
38730 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
38740 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
38750 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 37 34 0d  sort label-1274.
38760 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41 53 54  .SELECT ALL CAST
38770 20 28 20 2d 20 32 39 20 41 53 20 49 4e 54 45 47   ( - 29 AS INTEG
38780 45 52 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ER ) col1 FROM t
38790 61 62 31 2c 20 74 61 62 32 20 41 53 20 63 6f 72  ab1, tab2 AS cor
387a0 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  0..----..9 value
387b0 73 20 68 61 73 68 69 6e 67 20 74 6f 20 30 63 63  s hashing to 0cc
387c0 39 64 64 61 64 39 33 66 63 37 38 33 30 35 35 35  9ddad93fc7830555
387d0 31 38 61 65 34 62 36 62 65 30 35 34 62 0d 0a 0d  18ae4b6be054b...
387e0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
387f0 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
38800 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
38810 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
38820 62 65 6c 2d 31 32 37 35 0d 0a 53 45 4c 45 43 54  bel-1275..SELECT
38830 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   * FROM tab2 WHE
38840 52 45 20 4e 55 4c 4c 20 3c 3d 20 2b 20 2d 20 28  RE NULL <= + - (
38850 20 2b 20 43 41 53 54 28 20 37 32 20 41 53 20 53   + CAST( 72 AS S
38860 49 47 4e 45 44 20 29 20 29 20 2a 20 2d 20 63 6f  IGNED ) ) * - co
38870 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70  l0..----....skip
38880 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
38890 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
388a0 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62   III rowsort lab
388b0 65 6c 2d 31 32 37 35 0d 0a 53 45 4c 45 43 54 20  el-1275..SELECT 
388c0 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  * FROM tab2 WHER
388d0 45 20 4e 55 4c 4c 20 3c 3d 20 2b 20 2d 20 28 20  E NULL <= + - ( 
388e0 2b 20 43 41 53 54 20 28 20 37 32 20 41 53 20 49  + CAST ( 72 AS I
388f0 4e 54 45 47 45 52 20 29 20 29 20 2a 20 2d 20 63  NTEGER ) ) * - c
38900 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ol0..----....que
38910 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
38920 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 32 20  LECT ALL + col2 
38930 2a 20 2b 20 37 39 20 46 52 4f 4d 20 74 61 62 30  * + 79 FROM tab0
38940 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
38950 33 37 31 33 0d 0a 37 38 32 31 0d 0a 37 39 30 0d  3713..7821..790.
38960 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
38970 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
38980 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
38990 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 37 37  wsort label-1277
389a0 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20  ..SELECT COUNT( 
389b0 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 29 20  DISTINCT col0 ) 
389c0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
389d0 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b  0..----..3....sk
389e0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
389f0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
38a00 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
38a10 65 6c 2d 31 32 37 37 0d 0a 53 45 4c 45 43 54 20  el-1277..SELECT 
38a20 43 4f 55 4e 54 20 28 20 44 49 53 54 49 4e 43 54  COUNT ( DISTINCT
38a30 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62   col0 ) FROM tab
38a40 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
38a50 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .3....query I ro
38a60 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
38a70 4c 20 2b 20 34 32 20 2b 20 28 20 2b 20 63 6f 6c  L + 42 + ( + col
38a80 31 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53  1 ) FROM tab2 AS
38a90 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 39   cor0..----..109
38aa0 0d 0a 31 31 39 0d 0a 39 33 0d 0a 0d 0a 6f 6e 6c  ..119..93....onl
38ab0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
38ac0 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61   syntax: aggrega
38ad0 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  te syntax: SIGNE
38ae0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
38af0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
38b00 31 32 37 39 0d 0a 53 45 4c 45 43 54 20 44 49 53  1279..SELECT DIS
38b10 54 49 4e 43 54 20 2d 20 28 20 2b 20 28 20 2d 20  TINCT - ( + ( - 
38b20 28 20 2b 20 4d 49 4e 28 20 44 49 53 54 49 4e 43  ( + MIN( DISTINC
38b30 54 20 2b 20 63 6f 6c 30 20 29 20 29 20 29 20 29  T + col0 ) ) ) )
38b40 20 2f 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20   / + COUNT( * ) 
38b50 2a 20 2d 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c  * - + CAST( NULL
38b60 20 41 53 20 53 49 47 4e 45 44 20 29 20 2d 20 2d   AS SIGNED ) - -
38b70 20 53 55 4d 28 20 44 49 53 54 49 4e 43 54 20 2d   SUM( DISTINCT -
38b80 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62   col0 ) FROM tab
38b90 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
38ba0 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
38bb0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
38bc0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
38bd0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
38be0 37 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  79..SELECT DISTI
38bf0 4e 43 54 20 2d