sqllogictest
Hex Artifact Content
Not logged in

Artifact 397fa2c205bb9135ba9033e35971692734356a0a:


0000: 68 61 73 68 2d 74 68 72 65 73 68 6f 6c 64 20 38  hash-threshold 8
0010: 0d 0a 0d 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b  ....statement ok
0020: 0d 0a 43 52 45 41 54 45 20 54 41 42 4c 45 20 74  ..CREATE TABLE t
0030: 61 62 30 28 63 6f 6c 30 20 49 4e 54 45 47 45 52  ab0(col0 INTEGER
0040: 2c 20 63 6f 6c 31 20 49 4e 54 45 47 45 52 2c 20  , col1 INTEGER, 
0050: 63 6f 6c 32 20 49 4e 54 45 47 45 52 29 0d 0a 0d  col2 INTEGER)...
0060: 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 43  .statement ok..C
0070: 52 45 41 54 45 20 54 41 42 4c 45 20 74 61 62 31  REATE TABLE tab1
0080: 28 63 6f 6c 30 20 49 4e 54 45 47 45 52 2c 20 63  (col0 INTEGER, c
0090: 6f 6c 31 20 49 4e 54 45 47 45 52 2c 20 63 6f 6c  ol1 INTEGER, col
00a0: 32 20 49 4e 54 45 47 45 52 29 0d 0a 0d 0a 73 74  2 INTEGER)....st
00b0: 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 43 52 45 41  atement ok..CREA
00c0: 54 45 20 54 41 42 4c 45 20 74 61 62 32 28 63 6f  TE TABLE tab2(co
00d0: 6c 30 20 49 4e 54 45 47 45 52 2c 20 63 6f 6c 31  l0 INTEGER, col1
00e0: 20 49 4e 54 45 47 45 52 2c 20 63 6f 6c 32 20 49   INTEGER, col2 I
00f0: 4e 54 45 47 45 52 29 0d 0a 0d 0a 73 74 61 74 65  NTEGER)....state
0100: 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45 52 54 20  ment ok..INSERT 
0110: 49 4e 54 4f 20 74 61 62 30 20 56 41 4c 55 45 53  INTO tab0 VALUES
0120: 28 39 37 2c 31 2c 39 39 29 0d 0a 0d 0a 73 74 61  (97,1,99)....sta
0130: 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45 52  tement ok..INSER
0140: 54 20 49 4e 54 4f 20 74 61 62 30 20 56 41 4c 55  T INTO tab0 VALU
0150: 45 53 28 31 35 2c 38 31 2c 34 37 29 0d 0a 0d 0a  ES(15,81,47)....
0160: 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49 4e  statement ok..IN
0170: 53 45 52 54 20 49 4e 54 4f 20 74 61 62 30 20 56  SERT INTO tab0 V
0180: 41 4c 55 45 53 28 38 37 2c 32 31 2c 31 30 29 0d  ALUES(87,21,10).
0190: 0a 0d 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d  ...statement ok.
01a0: 0a 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 61 62  .INSERT INTO tab
01b0: 31 20 56 41 4c 55 45 53 28 35 31 2c 31 34 2c 39  1 VALUES(51,14,9
01c0: 36 29 0d 0a 0d 0a 73 74 61 74 65 6d 65 6e 74 20  6)....statement 
01d0: 6f 6b 0d 0a 49 4e 53 45 52 54 20 49 4e 54 4f 20  ok..INSERT INTO 
01e0: 74 61 62 31 20 56 41 4c 55 45 53 28 38 35 2c 35  tab1 VALUES(85,5
01f0: 2c 35 39 29 0d 0a 0d 0a 73 74 61 74 65 6d 65 6e  ,59)....statemen
0200: 74 20 6f 6b 0d 0a 49 4e 53 45 52 54 20 49 4e 54  t ok..INSERT INT
0210: 4f 20 74 61 62 31 20 56 41 4c 55 45 53 28 39 31  O tab1 VALUES(91
0220: 2c 34 37 2c 36 38 29 0d 0a 0d 0a 73 74 61 74 65  ,47,68)....state
0230: 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45 52 54 20  ment ok..INSERT 
0240: 49 4e 54 4f 20 74 61 62 32 20 56 41 4c 55 45 53  INTO tab2 VALUES
0250: 28 36 34 2c 37 37 2c 34 30 29 0d 0a 0d 0a 73 74  (64,77,40)....st
0260: 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45  atement ok..INSE
0270: 52 54 20 49 4e 54 4f 20 74 61 62 32 20 56 41 4c  RT INTO tab2 VAL
0280: 55 45 53 28 37 35 2c 36 37 2c 35 38 29 0d 0a 0d  UES(75,67,58)...
0290: 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49  .statement ok..I
02a0: 4e 53 45 52 54 20 49 4e 54 4f 20 74 61 62 32 20  NSERT INTO tab2 
02b0: 56 41 4c 55 45 53 28 34 36 2c 35 31 2c 32 33 29  VALUES(46,51,23)
02c0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
02d0: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
02e0: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
02f0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 30 0d 0a  owsort label-0..
0300: 53 45 4c 45 43 54 20 2d 20 2d 20 43 4f 55 4e 54  SELECT - - COUNT
0310: 28 20 2a 20 29 20 2a 20 2b 20 2b 20 32 20 41 53  ( * ) * + + 2 AS
0320: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
0330: 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
0340: 49 4e 20 74 61 62 32 20 41 53 20 63 6f 72 31 0d  IN tab2 AS cor1.
0350: 0a 2d 2d 2d 2d 0d 0a 31 38 0d 0a 0d 0a 73 6b 69  .----..18....ski
0360: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
0370: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
0380: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
0390: 6c 2d 30 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20  l-0..SELECT - - 
03a0: 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2b 20  COUNT ( * ) * + 
03b0: 2b 20 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  + 2 AS col0 FROM
03c0: 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 43 52   tab0 AS cor0 CR
03d0: 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53  OSS JOIN tab2 AS
03e0: 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 31 38 0d   cor1..----..18.
03f0: 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
0400: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  ort..SELECT + co
0410: 6c 32 20 2b 20 63 6f 6c 30 2c 20 39 33 20 41 53  l2 + col0, 93 AS
0420: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
0430: 0a 2d 2d 2d 2d 0d 0a 31 34 34 0d 0a 39 33 0d 0a  .----..144..93..
0440: 31 34 37 0d 0a 39 33 0d 0a 31 35 39 0d 0a 39 33  147..93..159..93
0450: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
0460: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20  ort..SELECT + - 
0470: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 57  col1 FROM tab2 W
0480: 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20  HERE NOT ( NULL 
0490: 29 20 3e 3d 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d  ) >= ( NULL )..-
04a0: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
04b0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
04c0: 20 30 20 46 52 4f 4d 20 28 20 74 61 62 31 20 63   0 FROM ( tab1 c
04d0: 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
04e0: 61 62 30 20 41 53 20 63 6f 72 31 20 29 0d 0a 2d  ab0 AS cor1 )..-
04f0: 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
0500: 73 68 69 6e 67 20 74 6f 20 38 62 37 35 31 33 36  shing to 8b75136
0510: 62 32 62 35 31 63 37 37 33 34 35 63 30 33 38 30  b2b51c77345c0380
0520: 34 65 63 31 63 64 61 35 63 0d 0a 0d 0a 71 75 65  4ec1cda5c....que
0530: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
0540: 4c 45 43 54 20 2d 20 39 32 20 2a 20 2b 20 36 32  LECT - 92 * + 62
0550: 20 2b 20 2d 20 31 20 46 52 4f 4d 20 28 20 74 61   + - 1 FROM ( ta
0560: 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53  b1 AS cor0 CROSS
0570: 20 4a 4f 49 4e 20 74 61 62 32 20 41 53 20 63 6f   JOIN tab2 AS co
0580: 72 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  r1 )..----..9 va
0590: 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
05a0: 63 39 31 34 38 31 33 61 66 61 34 32 39 66 36 31  c914813afa429f61
05b0: 31 62 34 38 62 35 63 61 63 30 36 33 65 34 66 34  1b48b5cac063e4f4
05c0: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 49 49 49  ....query IIIIII
05d0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
05e0: 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
05f0: 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
0600: 74 61 62 31 20 41 53 20 63 6f 72 31 20 57 48 45  tab1 AS cor1 WHE
0610: 52 45 20 4e 55 4c 4c 20 3d 20 2d 20 35 32 20 2a  RE NULL = - 52 *
0620: 20 2b 20 2b 20 28 20 2d 20 2b 20 31 35 20 29 0d   + + ( - + 15 ).
0630: 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
0640: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
0650: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57  CT * FROM tab0 W
0660: 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 4e  HERE NOT NULL IN
0670: 20 28 20 2b 20 2b 20 63 6f 6c 30 20 29 0d 0a 2d   ( + + col0 )..-
0680: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ---....query III
0690: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
06a0: 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
06b0: 63 6f 72 30 20 57 48 45 52 45 20 2b 20 28 20 63  cor0 WHERE + ( c
06c0: 6f 6c 30 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c  ol0 ) IS NOT NUL
06d0: 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  L..----..9 value
06e0: 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62  s hashing to c4b
06f0: 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36  42765dff94eaaa46
0700: 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d  040e537fb43b7...
0710: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
0720: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
0730: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
0740: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
0750: 6c 2d 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  l-8..SELECT ALL 
0760: 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  + CAST( NULL AS 
0770: 53 49 47 4e 45 44 20 29 20 2f 20 2d 20 2d 20 28  SIGNED ) / - - (
0780: 20 2d 20 63 6f 6c 32 20 29 20 2b 20 2d 20 2b 20   - col2 ) + - + 
0790: 37 34 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  74 AS col1 FROM 
07a0: 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
07b0: 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
07c0: 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
07d0: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
07e0: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
07f0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 0d 0a  owsort label-8..
0800: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 41 53  SELECT ALL + CAS
0810: 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
0820: 47 45 52 20 29 20 2f 20 2d 20 2d 20 28 20 2d 20  GER ) / - - ( - 
0830: 63 6f 6c 32 20 29 20 2b 20 2d 20 2b 20 37 34 20  col2 ) + - + 74 
0840: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
0850: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
0860: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
0870: 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  L....query III r
0880: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
0890: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
08a0: 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e 4f  r0 WHERE NULL NO
08b0: 54 20 49 4e 20 28 20 28 20 2d 20 2d 20 63 6f 6c  T IN ( ( - - col
08c0: 32 20 29 2c 20 2d 20 34 38 20 29 0d 0a 2d 2d 2d  2 ), - 48 )..---
08d0: 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
08e0: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
08f0: 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
0900: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
0910: 6c 61 62 65 6c 2d 31 30 0d 0a 53 45 4c 45 43 54  label-10..SELECT
0920: 20 41 4c 4c 20 2b 20 43 41 53 54 28 20 4e 55 4c   ALL + CAST( NUL
0930: 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20  L AS SIGNED ) + 
0940: 2b 20 28 20 2d 20 63 6f 6c 32 20 29 20 41 53 20  + ( - col2 ) AS 
0950: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
0960: 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c  S cor0 WHERE NUL
0970: 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  L IS NULL..----.
0980: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
0990: 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
09a0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
09b0: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
09c0: 6f 72 74 20 6c 61 62 65 6c 2d 31 30 0d 0a 53 45  ort label-10..SE
09d0: 4c 45 43 54 20 41 4c 4c 20 2b 20 43 41 53 54 20  LECT ALL + CAST 
09e0: 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
09f0: 52 20 29 20 2b 20 2b 20 28 20 2d 20 63 6f 6c 32  R ) + + ( - col2
0a00: 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
0a10: 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
0a20: 52 45 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d  RE NULL IS NULL.
0a30: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
0a40: 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69  L..NULL....onlyi
0a50: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
0a60: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
0a70: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
0a80: 62 65 6c 2d 31 31 0d 0a 53 45 4c 45 43 54 20 41  bel-11..SELECT A
0a90: 4c 4c 20 2d 20 28 20 2d 20 2d 20 35 35 20 29 20  LL - ( - - 55 ) 
0aa0: 2a 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41  * + COUNT( * ) A
0ab0: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
0ac0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
0ad0: 2d 31 36 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -165....skipif m
0ae0: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
0af0: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
0b00: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 0d  owsort label-11.
0b10: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 28 20  .SELECT ALL - ( 
0b20: 2d 20 2d 20 35 35 20 29 20 2a 20 2b 20 43 4f 55  - - 55 ) * + COU
0b30: 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 31  NT ( * ) AS col1
0b40: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
0b50: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 35 0d 0a  r0..----..-165..
0b60: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
0b70: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
0b80: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
0b90: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 0d 0a 53  sort label-12..S
0ba0: 45 4c 45 43 54 20 41 4c 4c 20 2d 20 4d 41 58 28  ELECT ALL - MAX(
0bb0: 20 41 4c 4c 20 2b 20 2b 20 63 6f 6c 31 20 29 20   ALL + + col1 ) 
0bc0: 2a 20 33 38 20 2b 20 2d 20 2d 20 43 4f 55 4e 54  * 38 + - - COUNT
0bd0: 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ( * ) AS col1 FR
0be0: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
0bf0: 0a 2d 2d 2d 2d 0d 0a 2d 31 37 38 33 0d 0a 0d 0a  .----..-1783....
0c00: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
0c10: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
0c20: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
0c30: 61 62 65 6c 2d 31 32 0d 0a 53 45 4c 45 43 54 20  abel-12..SELECT 
0c40: 41 4c 4c 20 2d 20 4d 41 58 20 28 20 41 4c 4c 20  ALL - MAX ( ALL 
0c50: 2b 20 2b 20 63 6f 6c 31 20 29 20 2a 20 33 38 20  + + col1 ) * 38 
0c60: 2b 20 2d 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  + - - COUNT ( * 
0c70: 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
0c80: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
0c90: 2d 0d 0a 2d 31 37 38 33 0d 0a 0d 0a 6f 6e 6c 79  -..-1783....only
0ca0: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
0cb0: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
0cc0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
0cd0: 61 62 65 6c 2d 31 33 0d 0a 53 45 4c 45 43 54 20  abel-13..SELECT 
0ce0: 41 4c 4c 20 2b 20 43 4f 55 4e 54 28 20 2b 20 2b  ALL + COUNT( + +
0cf0: 20 63 6f 6c 31 20 29 20 2b 20 2d 20 39 36 20 46   col1 ) + - 96 F
0d00: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
0d10: 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 33 0d 0a 0d 0a 73  ..----..-93....s
0d20: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
0d30: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
0d40: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
0d50: 62 65 6c 2d 31 33 0d 0a 53 45 4c 45 43 54 20 41  bel-13..SELECT A
0d60: 4c 4c 20 2b 20 43 4f 55 4e 54 20 28 20 2b 20 2b  LL + COUNT ( + +
0d70: 20 63 6f 6c 31 20 29 20 2b 20 2d 20 39 36 20 46   col1 ) + - 96 F
0d80: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
0d90: 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 33 0d 0a 0d 0a 6f  ..----..-93....o
0da0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
0db0: 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
0dc0: 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
0dd0: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
0de0: 2d 31 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  -14..SELECT DIST
0df0: 49 4e 43 54 20 63 6f 6c 30 20 41 53 20 63 6f 6c  INCT col0 AS col
0e00: 31 2c 20 2d 20 63 6f 6c 32 20 44 49 56 20 2b 20  1, - col2 DIV + 
0e10: 37 34 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  74 AS col2 FROM 
0e20: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a  tab1..----..51..
0e30: 2d 31 0d 0a 38 35 0d 0a 30 0d 0a 39 31 0d 0a 30  -1..85..0..91..0
0e40: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
0e50: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
0e60: 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
0e70: 6f 72 74 20 6c 61 62 65 6c 2d 31 34 0d 0a 53 45  ort label-14..SE
0e80: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
0e90: 6c 30 20 41 53 20 63 6f 6c 31 2c 20 2d 20 63 6f  l0 AS col1, - co
0ea0: 6c 32 20 2f 20 2b 20 37 34 20 41 53 20 63 6f 6c  l2 / + 74 AS col
0eb0: 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  2 FROM tab1..---
0ec0: 2d 0d 0a 35 31 0d 0a 2d 31 0d 0a 38 35 0d 0a 30  -..51..-1..85..0
0ed0: 0d 0a 39 31 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69  ..91..0....onlyi
0ee0: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
0ef0: 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
0f00: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
0f10: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 35 0d 0a  wsort label-15..
0f20: 53 45 4c 45 43 54 20 2d 20 43 41 53 54 28 20 2b  SELECT - CAST( +
0f30: 20 63 6f 6c 31 20 41 53 20 53 49 47 4e 45 44 20   col1 AS SIGNED 
0f40: 29 20 2b 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c  ) + + CAST( NULL
0f50: 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20   AS SIGNED ) AS 
0f60: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
0f70: 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
0f80: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
0f90: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
0fa0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
0fb0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
0fc0: 35 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53 54  5..SELECT - CAST
0fd0: 20 28 20 2b 20 63 6f 6c 31 20 41 53 20 49 4e 54   ( + col1 AS INT
0fe0: 45 47 45 52 20 29 20 2b 20 2b 20 43 41 53 54 20  EGER ) + + CAST 
0ff0: 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
1000: 52 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  R ) AS col1 FROM
1010: 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   tab0..----..NUL
1020: 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
1030: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1040: 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2b 20  ..SELECT col0 + 
1050: 28 20 2d 20 33 34 20 29 20 41 53 20 63 6f 6c 32  ( - 34 ) AS col2
1060: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
1070: 0d 0a 31 37 0d 0a 35 31 0d 0a 35 37 0d 0a 0d 0a  ..17..51..57....
1080: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1090: 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2b  .SELECT - col1 +
10a0: 20 2b 20 37 38 20 46 52 4f 4d 20 74 61 62 31 0d   + 78 FROM tab1.
10b0: 0a 2d 2d 2d 2d 0d 0a 33 31 0d 0a 36 34 0d 0a 37  .----..31..64..7
10c0: 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  3....query I row
10d0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 33 37 20  sort..SELECT 37 
10e0: 2b 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30  + + col0 AS col0
10f0: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
1100: 0d 0a 31 32 34 0d 0a 31 33 34 0d 0a 35 32 0d 0a  ..124..134..52..
1110: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1120: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 34 33  t..SELECT ALL 43
1130: 20 2a 20 2d 20 2b 20 63 6f 6c 30 20 41 53 20 63   * - + col0 AS c
1140: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
1150: 2d 2d 2d 0d 0a 2d 31 39 37 38 0d 0a 2d 32 37 35  ---..-1978..-275
1160: 32 0d 0a 2d 33 32 32 35 0d 0a 0d 0a 71 75 65 72  2..-3225....quer
1170: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1180: 45 43 54 20 28 20 2b 20 2d 20 63 6f 6c 32 20 29  ECT ( + - col2 )
1190: 20 2b 20 2d 20 28 20 63 6f 6c 30 20 29 20 41 53   + - ( col0 ) AS
11a0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
11b0: 0a 2d 2d 2d 2d 0d 0a 2d 31 34 34 0d 0a 2d 31 34  .----..-144..-14
11c0: 37 0d 0a 2d 31 35 39 0d 0a 0d 0a 6f 6e 6c 79 69  7..-159....onlyi
11d0: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
11e0: 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
11f0: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20  pe: ..query III 
1200: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 31  rowsort label-21
1210: 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
1220: 74 61 62 32 20 57 48 45 52 45 20 2b 20 63 6f 6c  tab2 WHERE + col
1230: 30 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  0 + CAST( NULL A
1240: 53 20 53 49 47 4e 45 44 20 29 20 49 53 20 4e 55  S SIGNED ) IS NU
1250: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  LL..----..9 valu
1260: 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35  es hashing to 75
1270: 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63  c998aa53ac83218c
1280: 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a  bf2feb962d0a49..
1290: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
12a0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
12b0: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
12c0: 72 74 20 6c 61 62 65 6c 2d 32 31 0d 0a 53 45 4c  rt label-21..SEL
12d0: 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ECT * FROM tab2 
12e0: 57 48 45 52 45 20 2b 20 63 6f 6c 30 20 2b 20 43  WHERE + col0 + C
12f0: 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
1300: 54 45 47 45 52 20 29 20 49 53 20 4e 55 4c 4c 0d  TEGER ) IS NULL.
1310: 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
1320: 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39  hashing to 75c99
1330: 38 61 61 35 33 61 63 38 33 32 31 38 63 62 66 32  8aa53ac83218cbf2
1340: 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 71  feb962d0a49....q
1350: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
1360: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
1370: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
1380: 20 57 48 45 52 45 20 2b 20 63 6f 6c 30 20 2b 20   WHERE + col0 + 
1390: 2b 20 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e 55  + col0 IS NOT NU
13a0: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  LL..----..9 valu
13b0: 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34  es hashing to c4
13c0: 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34  b42765dff94eaaa4
13d0: 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a  6040e537fb43b7..
13e0: 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
13f0: 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
1400: 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
1410: 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
1420: 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
1430: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1440: 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 31 35  CT DISTINCT - 15
1450: 20 2a 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 2b 20   * + col0 + + + 
1460: 63 6f 6c 32 20 2d 20 2b 20 63 6f 6c 31 20 63 6f  col2 - + col1 co
1470: 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
1480: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 31  cor0..----..-131
1490: 36 0d 0a 2d 31 33 35 37 0d 0a 2d 32 35 39 0d 0a  6..-1357..-259..
14a0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
14b0: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
14c0: 43 54 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  CT col2 FROM tab
14d0: 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
14e0: 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  col2 IS NULL..--
14f0: 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
1500: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
1510: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
1520: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
1530: 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f  5..SELECT ALL CO
1540: 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30  UNT( * ) AS col0
1550: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
1560: 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53  r0 WHERE NULL IS
1570: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   NULL..----..3..
1580: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1590: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
15a0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
15b0: 20 6c 61 62 65 6c 2d 32 35 0d 0a 53 45 4c 45 43   label-25..SELEC
15c0: 54 20 41 4c 4c 20 43 4f 55 4e 54 20 28 20 2a 20  T ALL COUNT ( * 
15d0: 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
15e0: 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
15f0: 45 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a  E NULL IS NULL..
1600: 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79  ----..3....query
1610: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
1620: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  LECT * FROM tab1
1630: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28   AS cor0 WHERE (
1640: 20 4e 55 4c 4c 20 29 20 3e 20 2b 20 2d 20 39 34   NULL ) > + - 94
1650: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
1660: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1670: 43 54 20 36 35 20 2a 20 2d 20 2b 20 39 32 20 41  CT 65 * - + 92 A
1680: 53 20 63 6f 6c 32 2c 20 2d 20 63 6f 6c 32 20 46  S col2, - col2 F
1690: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
16a0: 2d 35 39 38 30 0d 0a 2d 31 30 0d 0a 2d 35 39 38  -5980..-10..-598
16b0: 30 0d 0a 2d 34 37 0d 0a 2d 35 39 38 30 0d 0a 2d  0..-47..-5980..-
16c0: 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  99....query I ro
16d0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
16e0: 53 54 49 4e 43 54 20 2b 20 35 32 20 2d 20 63 6f  STINCT + 52 - co
16f0: 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l2 AS col2 FROM 
1700: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 37 0d  tab0..----..-47.
1710: 0a 34 32 0d 0a 35 0d 0a 0d 0a 6f 6e 6c 79 69 66  .42..5....onlyif
1720: 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
1730: 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
1740: 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  n: ..query II ro
1750: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 39 0d 0a  wsort label-29..
1760: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1770: 2b 20 2b 20 63 6f 6c 31 20 44 49 56 20 2d 20 39  + + col1 DIV - 9
1780: 37 2c 20 2b 20 63 6f 6c 32 20 63 6f 6c 32 20 46  7, + col2 col2 F
1790: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
17a0: 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 32 33 0d 0a 30  ..----..0..23..0
17b0: 0d 0a 34 30 0d 0a 30 0d 0a 35 38 0d 0a 0d 0a 73  ..40..0..58....s
17c0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
17d0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
17e0: 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
17f0: 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
1800: 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
1810: 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
1820: 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20  lumns..query II 
1830: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 39  rowsort label-29
1840: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1850: 54 20 2b 20 2b 20 63 6f 6c 31 20 2f 20 2d 20 39  T + + col1 / - 9
1860: 37 2c 20 2b 20 63 6f 6c 32 20 63 6f 6c 32 20 46  7, + col2 col2 F
1870: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
1880: 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 32 33 0d 0a 30  ..----..0..23..0
1890: 0d 0a 34 30 0d 0a 30 0d 0a 35 38 0d 0a 0d 0a 71  ..40..0..58....q
18a0: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
18b0: 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2a  .SELECT - col2 *
18c0: 20 2d 20 38 32 20 41 53 20 63 6f 6c 32 2c 20 2b   - 82 AS col2, +
18d0: 20 37 36 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   76 AS col1 FROM
18e0: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
18f0: 2d 2d 2d 0d 0a 33 38 35 34 0d 0a 37 36 0d 0a 38  ---..3854..76..8
1900: 31 31 38 0d 0a 37 36 0d 0a 38 32 30 0d 0a 37 36  118..76..820..76
1910: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1920: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
1930: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
1940: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 31 0d  owsort label-31.
1950: 0a 53 45 4c 45 43 54 20 4d 41 58 28 20 41 4c 4c  .SELECT MAX( ALL
1960: 20 2b 20 2b 20 33 36 20 29 20 2a 20 2d 20 2d 20   + + 36 ) * - - 
1970: 28 20 4d 49 4e 28 20 41 4c 4c 20 32 30 20 29 20  ( MIN( ALL 20 ) 
1980: 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
1990: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 32 30 0d 0a  or0..----..720..
19a0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
19b0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
19c0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
19d0: 20 6c 61 62 65 6c 2d 33 31 0d 0a 53 45 4c 45 43   label-31..SELEC
19e0: 54 20 4d 41 58 20 28 20 41 4c 4c 20 2b 20 2b 20  T MAX ( ALL + + 
19f0: 33 36 20 29 20 2a 20 2d 20 2d 20 28 20 4d 49 4e  36 ) * - - ( MIN
1a00: 20 28 20 41 4c 4c 20 32 30 20 29 20 29 20 46 52   ( ALL 20 ) ) FR
1a10: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
1a20: 0a 2d 2d 2d 2d 0d 0a 37 32 30 0d 0a 0d 0a 6f 6e  .----..720....on
1a30: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
1a40: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
1a50: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1a60: 20 6c 61 62 65 6c 2d 33 32 0d 0a 53 45 4c 45 43   label-32..SELEC
1a70: 54 20 41 4c 4c 20 2b 20 2d 20 53 55 4d 28 20 2d  T ALL + - SUM( -
1a80: 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30 20   col0 ) AS col0 
1a90: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
1aa0: 30 0d 0a 2d 2d 2d 2d 0d 0a 31 38 35 0d 0a 0d 0a  0..----..185....
1ab0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1ac0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1ad0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1ae0: 61 62 65 6c 2d 33 32 0d 0a 53 45 4c 45 43 54 20  abel-32..SELECT 
1af0: 41 4c 4c 20 2b 20 2d 20 53 55 4d 20 28 20 2d 20  ALL + - SUM ( - 
1b00: 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30 20 46  col0 ) AS col0 F
1b10: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
1b20: 0d 0a 2d 2d 2d 2d 0d 0a 31 38 35 0d 0a 0d 0a 71  ..----..185....q
1b30: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
1b40: 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 41  .SELECT + col1 A
1b50: 53 20 63 6f 6c 31 2c 20 2d 20 63 6f 6c 31 20 2a  S col1, - col1 *
1b60: 20 33 39 20 2b 20 2d 20 63 6f 6c 31 20 2b 20 28   39 + - col1 + (
1b70: 20 63 6f 6c 32 20 29 20 2b 20 2b 20 2b 20 38 32   col2 ) + + + 82
1b80: 20 2b 20 2d 20 63 6f 6c 32 20 2d 20 2d 20 63 6f   + - col2 - - co
1b90: 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
1ba0: 2d 2d 0d 0a 31 0d 0a 31 33 39 0d 0a 32 31 0d 0a  --..1..139..21..
1bb0: 2d 36 37 31 0d 0a 38 31 0d 0a 2d 33 31 34 33 0d  -671..81..-3143.
1bc0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1bd0: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
1be0: 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
1bf0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1c00: 62 65 6c 2d 33 34 0d 0a 53 45 4c 45 43 54 20 44  bel-34..SELECT D
1c10: 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 2a  ISTINCT + col1 *
1c20: 20 2b 20 63 6f 6c 32 20 2f 20 43 41 53 54 28 20   + col2 / CAST( 
1c30: 2b 20 28 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c  + ( + CAST( NULL
1c40: 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20 41   AS SIGNED ) ) A
1c50: 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f  S SIGNED ) AS co
1c60: 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45  l2 FROM tab0 WHE
1c70: 52 45 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d  RE NULL IS NULL.
1c80: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
1c90: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1ca0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1cb0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1cc0: 62 65 6c 2d 33 34 0d 0a 53 45 4c 45 43 54 20 44  bel-34..SELECT D
1cd0: 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 2a  ISTINCT + col1 *
1ce0: 20 2b 20 63 6f 6c 32 20 2f 20 43 41 53 54 20 28   + col2 / CAST (
1cf0: 20 2b 20 28 20 2b 20 43 41 53 54 20 28 20 4e 55   + ( + CAST ( NU
1d00: 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
1d10: 29 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41  ) AS INTEGER ) A
1d20: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
1d30: 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e   WHERE NULL IS N
1d40: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ULL..----..NULL.
1d50: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1d60: 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20  rt..SELECT col1 
1d70: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
1d80: 31 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  1 WHERE NOT NULL
1d90: 20 3c 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   <= NULL..----..
1da0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1db0: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
1dc0: 33 30 20 2a 20 2d 20 63 6f 6c 32 20 41 53 20 63  30 * - col2 AS c
1dd0: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
1de0: 2d 2d 2d 0d 0a 2d 31 37 37 30 0d 0a 2d 32 30 34  ---..-1770..-204
1df0: 30 0d 0a 2d 32 38 38 30 0d 0a 0d 0a 71 75 65 72  0..-2880....quer
1e00: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1e10: 45 43 54 20 2b 20 2d 20 28 20 2d 20 2b 20 28 20  ECT + - ( - + ( 
1e20: 2b 20 63 6f 6c 31 20 29 20 29 20 46 52 4f 4d 20  + col1 ) ) FROM 
1e30: 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
1e40: 0a 31 34 0d 0a 34 37 0d 0a 35 0d 0a 0d 0a 6f 6e  .14..47..5....on
1e50: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
1e60: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
1e70: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1e80: 20 6c 61 62 65 6c 2d 33 38 0d 0a 53 45 4c 45 43   label-38..SELEC
1e90: 54 20 44 49 53 54 49 4e 43 54 20 2b 20 4d 49 4e  T DISTINCT + MIN
1ea0: 28 20 41 4c 4c 20 2b 20 32 33 20 29 20 41 53 20  ( ALL + 23 ) AS 
1eb0: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
1ec0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33  S cor0..----..23
1ed0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1ee0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1ef0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
1f00: 72 74 20 6c 61 62 65 6c 2d 33 38 0d 0a 53 45 4c  rt label-38..SEL
1f10: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 4d  ECT DISTINCT + M
1f20: 49 4e 20 28 20 41 4c 4c 20 2b 20 32 33 20 29 20  IN ( ALL + 23 ) 
1f30: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
1f40: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
1f50: 0a 32 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .23....query I r
1f60: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
1f70: 6f 6c 30 20 2a 20 2d 20 2d 20 63 6f 6c 31 20 2a  ol0 * - - col1 *
1f80: 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52   col0 AS col1 FR
1f90: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
1fa0: 0a 2d 2d 2d 2d 0d 0a 31 30 37 39 31 36 0d 0a 33  .----..107916..3
1fb0: 31 35 33 39 32 0d 0a 33 37 36 38 37 35 0d 0a 0d  15392..376875...
1fc0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1fd0: 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
1fe0: 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
1ff0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2000: 6c 2d 34 30 0d 0a 53 45 4c 45 43 54 20 2b 20 28  l-40..SELECT + (
2010: 20 2b 20 39 20 29 20 44 49 56 20 2b 20 36 39 20   + 9 ) DIV + 69 
2020: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
2030: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
2040: 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .0..0..0....skip
2050: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2060: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2070: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2080: 2d 34 30 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20  -40..SELECT + ( 
2090: 2b 20 39 20 29 20 2f 20 2b 20 36 39 20 41 53 20  + 9 ) / + 69 AS 
20a0: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
20b0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  S cor0..----..0.
20c0: 0a 30 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .0..0....onlyif 
20d0: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
20e0: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
20f0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2100: 6f 72 74 20 6c 61 62 65 6c 2d 34 31 0d 0a 53 45  ort label-41..SE
2110: 4c 45 43 54 20 2d 20 43 41 53 54 28 20 4e 55 4c  LECT - CAST( NUL
2120: 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 63 6f  L AS SIGNED ) co
2130: 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
2140: 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
2150: 74 61 62 31 20 41 53 20 63 6f 72 31 0d 0a 2d 2d  tab1 AS cor1..--
2160: 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
2170: 68 69 6e 67 20 74 6f 20 63 64 37 61 37 39 30 31  hing to cd7a7901
2180: 65 34 37 63 31 35 31 35 35 34 30 34 61 66 66 30  e47c15155404aff0
2190: 64 32 31 36 66 65 30 62 0d 0a 0d 0a 73 6b 69 70  d216fe0b....skip
21a0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
21b0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
21c0: 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
21d0: 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
21e0: 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
21f0: 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
2200: 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
2210: 6f 72 74 20 6c 61 62 65 6c 2d 34 31 0d 0a 53 45  ort label-41..SE
2220: 4c 45 43 54 20 2d 20 43 41 53 54 20 28 20 4e 55  LECT - CAST ( NU
2230: 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
2240: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
2250: 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  S cor0 CROSS JOI
2260: 4e 20 74 61 62 31 20 41 53 20 63 6f 72 31 0d 0a  N tab1 AS cor1..
2270: 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
2280: 61 73 68 69 6e 67 20 74 6f 20 63 64 37 61 37 39  ashing to cd7a79
2290: 30 31 65 34 37 63 31 35 31 35 35 34 30 34 61 66  01e47c15155404af
22a0: 66 30 64 32 31 36 66 65 30 62 0d 0a 0d 0a 71 75  f0d216fe0b....qu
22b0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
22c0: 45 4c 45 43 54 20 36 35 20 2b 20 2d 20 2b 20 63  ELECT 65 + - + c
22d0: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
22e0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36   cor0..----..-16
22f0: 0d 0a 34 34 0d 0a 36 34 0d 0a 0d 0a 6f 6e 6c 79  ..44..64....only
2300: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
2310: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
2320: 79 70 65 3a 20 44 49 56 20 66 6f 72 20 69 6e 74  ype: DIV for int
2330: 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
2340: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2350: 20 6c 61 62 65 6c 2d 34 33 0d 0a 53 45 4c 45 43   label-43..SELEC
2360: 54 20 2b 20 2d 20 63 6f 6c 32 20 44 49 56 20 2d  T + - col2 DIV -
2370: 20 63 6f 6c 30 20 2a 20 2d 20 2d 20 43 41 53 54   col0 * - - CAST
2380: 28 20 2b 20 37 34 20 41 53 20 53 49 47 4e 45 44  ( + 74 AS SIGNED
2390: 20 29 20 2b 20 2d 20 2b 20 63 6f 6c 30 20 2d 20   ) + - + col0 - 
23a0: 63 6f 6c 32 20 2a 20 63 6f 6c 31 20 2b 20 2d 20  col2 * col1 + - 
23b0: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
23c0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
23d0: 32 34 32 0d 0a 2d 33 31 38 34 0d 0a 2d 34 30 31  242..-3184..-401
23e0: 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
23f0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2400: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2410: 6f 72 74 20 6c 61 62 65 6c 2d 34 33 0d 0a 53 45  ort label-43..SE
2420: 4c 45 43 54 20 2b 20 2d 20 63 6f 6c 32 20 2f 20  LECT + - col2 / 
2430: 2d 20 63 6f 6c 30 20 2a 20 2d 20 2d 20 43 41 53  - col0 * - - CAS
2440: 54 20 28 20 2b 20 37 34 20 41 53 20 49 4e 54 45  T ( + 74 AS INTE
2450: 47 45 52 20 29 20 2b 20 2d 20 2b 20 63 6f 6c 30  GER ) + - + col0
2460: 20 2d 20 63 6f 6c 32 20 2a 20 63 6f 6c 31 20 2b   - col2 * col1 +
2470: 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   - col2 FROM tab
2480: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
2490: 0a 2d 31 32 34 32 0d 0a 2d 33 31 38 34 0d 0a 2d  .-1242..-3184..-
24a0: 34 30 31 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  4019....onlyif m
24b0: 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
24c0: 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
24d0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
24e0: 72 74 20 6c 61 62 65 6c 2d 34 34 0d 0a 53 45 4c  rt label-44..SEL
24f0: 45 43 54 20 41 4c 4c 20 2d 20 33 38 20 2b 20 2b  ECT ALL - 38 + +
2500: 20 63 6f 6c 31 20 44 49 56 20 2d 20 38 39 20 41   col1 DIV - 89 A
2510: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
2520: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2530: 2d 33 38 0d 0a 2d 33 38 0d 0a 2d 33 38 0d 0a 0d  -38..-38..-38...
2540: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2550: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2560: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2570: 6c 61 62 65 6c 2d 34 34 0d 0a 53 45 4c 45 43 54  label-44..SELECT
2580: 20 41 4c 4c 20 2d 20 33 38 20 2b 20 2b 20 63 6f   ALL - 38 + + co
2590: 6c 31 20 2f 20 2d 20 38 39 20 41 53 20 63 6f 6c  l1 / - 89 AS col
25a0: 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
25b0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 38 0d 0a  or0..----..-38..
25c0: 2d 33 38 0d 0a 2d 33 38 0d 0a 0d 0a 6f 6e 6c 79  -38..-38....only
25d0: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
25e0: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
25f0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2600: 61 62 65 6c 2d 34 35 0d 0a 53 45 4c 45 43 54 20  abel-45..SELECT 
2610: 41 4c 4c 20 4d 41 58 28 20 2b 20 2d 20 39 37 20  ALL MAX( + - 97 
2620: 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
2630: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 37 0d 0a  or0..----..-97..
2640: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2650: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2660: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2670: 20 6c 61 62 65 6c 2d 34 35 0d 0a 53 45 4c 45 43   label-45..SELEC
2680: 54 20 41 4c 4c 20 4d 41 58 20 28 20 2b 20 2d 20  T ALL MAX ( + - 
2690: 39 37 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41  97 ) FROM tab1 A
26a0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39  S cor0..----..-9
26b0: 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  7....onlyif mysq
26c0: 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
26d0: 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
26e0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
26f0: 6c 61 62 65 6c 2d 34 36 0d 0a 53 45 4c 45 43 54  label-46..SELECT
2700: 20 63 6f 6c 30 20 2b 20 63 6f 6c 30 20 44 49 56   col0 + col0 DIV
2710: 20 28 20 2d 20 2b 20 35 36 20 29 20 41 53 20 63   ( - + 56 ) AS c
2720: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
2730: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d   cor0..----..15.
2740: 0a 38 36 0d 0a 39 36 0d 0a 0d 0a 73 6b 69 70 69  .86..96....skipi
2750: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2760: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2770: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2780: 34 36 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20  46..SELECT col0 
2790: 2b 20 63 6f 6c 30 20 2f 20 28 20 2d 20 2b 20 35  + col0 / ( - + 5
27a0: 36 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  6 ) AS col2 FROM
27b0: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
27c0: 2d 2d 2d 0d 0a 31 35 0d 0a 38 36 0d 0a 39 36 0d  ---..15..86..96.
27d0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
27e0: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
27f0: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
2800: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 37 0d 0a  wsort label-47..
2810: 53 45 4c 45 43 54 20 2d 20 33 33 20 2b 20 2b 20  SELECT - 33 + + 
2820: 2b 20 43 4f 55 4e 54 28 20 41 4c 4c 20 34 35 20  + COUNT( ALL 45 
2830: 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
2840: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
2850: 2d 0d 0a 2d 33 30 0d 0a 0d 0a 73 6b 69 70 69 66  -..-30....skipif
2860: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2870: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2880: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
2890: 37 0d 0a 53 45 4c 45 43 54 20 2d 20 33 33 20 2b  7..SELECT - 33 +
28a0: 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20 41 4c 4c   + + COUNT ( ALL
28b0: 20 34 35 20 29 20 41 53 20 63 6f 6c 30 20 46 52   45 ) AS col0 FR
28c0: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
28d0: 0a 2d 2d 2d 2d 0d 0a 2d 33 30 0d 0a 0d 0a 71 75  .----..-30....qu
28e0: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
28f0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
2900: 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 28 20  OM tab2 WHERE ( 
2910: 4e 4f 54 20 2b 20 36 31 20 2b 20 2d 20 2d 20 63  NOT + 61 + - - c
2920: 6f 6c 31 20 2b 20 2d 20 2d 20 63 6f 6c 32 20 2a  ol1 + - - col2 *
2930: 20 63 6f 6c 32 20 2f 20 38 36 20 2b 20 2d 20 31   col2 / 86 + - 1
2940: 37 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 20 29 0d  7 IS NOT NULL ).
2950: 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
2960: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
2970: 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
2980: 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f  OM tab1 WHERE NO
2990: 54 20 63 6f 6c 30 20 4e 4f 54 20 42 45 54 57 45  T col0 NOT BETWE
29a0: 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2d 20 63 6f  EN NULL AND - co
29b0: 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  l2..----....quer
29c0: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
29d0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
29e0: 30 20 57 48 45 52 45 20 28 20 4e 4f 54 20 28 20  0 WHERE ( NOT ( 
29f0: 63 6f 6c 30 20 29 20 49 53 20 4e 4f 54 20 4e 55  col0 ) IS NOT NU
2a00: 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  LL )..----....on
2a10: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
2a20: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
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 31 0d 0a 53 45 4c 45 43   label-51..SELEC
2a50: 54 20 41 4c 4c 20 4d 41 58 28 20 44 49 53 54 49  T ALL MAX( DISTI
2a60: 4e 43 54 20 2d 20 2d 20 63 6f 6c 30 20 29 20 41  NCT - - col0 ) A
2a70: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
2a80: 0d 0a 2d 2d 2d 2d 0d 0a 39 37 0d 0a 0d 0a 73 6b  ..----..97....sk
2a90: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2aa0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2ab0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2ac0: 65 6c 2d 35 31 0d 0a 53 45 4c 45 43 54 20 41 4c  el-51..SELECT AL
2ad0: 4c 20 4d 41 58 20 28 20 44 49 53 54 49 4e 43 54  L MAX ( DISTINCT
2ae0: 20 2d 20 2d 20 63 6f 6c 30 20 29 20 41 53 20 63   - - col0 ) AS c
2af0: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
2b00: 2d 2d 2d 0d 0a 39 37 0d 0a 0d 0a 71 75 65 72 79  ---..97....query
2b10: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
2b20: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
2b30: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
2b40: 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 34 20  0 WHERE NOT - 4 
2b50: 49 53 20 4e 55 4c 4c 20 4f 52 20 4e 55 4c 4c 20  IS NULL OR NULL 
2b60: 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
2b70: 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
2b80: 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31  ing to c6c0a4111
2b90: 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65  b36d04dbc811a11e
2ba0: 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79  4d54cad....query
2bb0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2bc0: 43 54 20 2b 20 2b 20 63 6f 6c 31 20 41 53 20 63  CT + + col1 AS c
2bd0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
2be0: 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 63 6f   cor0 WHERE ( co
2bf0: 6c 30 20 29 20 3c 3d 20 36 20 2a 20 2d 20 2b 20  l0 ) <= 6 * - + 
2c00: 39 36 20 2a 20 63 6f 6c 32 20 2a 20 2d 20 28 20  96 * col2 * - ( 
2c10: 63 6f 6c 31 20 29 20 2b 20 2d 20 2b 20 63 6f 6c  col1 ) + - + col
2c20: 32 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 34 37 0d  2..----..14..47.
2c30: 0a 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .5....query I ro
2c40: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
2c50: 53 54 49 4e 43 54 20 2b 20 33 36 20 46 52 4f 4d  STINCT + 36 FROM
2c60: 20 74 61 62 30 20 57 48 45 52 45 20 35 35 20 4e   tab0 WHERE 55 N
2c70: 4f 54 20 42 45 54 57 45 45 4e 20 2d 20 2d 20 63  OT BETWEEN - - c
2c80: 6f 6c 30 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d  ol0 AND NULL..--
2c90: 2d 2d 0d 0a 33 36 0d 0a 0d 0a 71 75 65 72 79 20  --..36....query 
2ca0: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
2cb0: 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31  CT DISTINCT col1
2cc0: 20 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 32 20 2b   AS col2, col2 +
2cd0: 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 2d 20 63 6f   + col0 * + - co
2ce0: 6c 32 20 2a 20 2b 20 2b 20 37 34 20 41 53 20 63  l2 * + + 74 AS c
2cf0: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
2d00: 2d 2d 2d 0d 0a 31 34 0d 0a 2d 33 36 32 32 30 38  ---..14..-362208
2d10: 0d 0a 34 37 0d 0a 2d 34 35 37 38 34 34 0d 0a 35  ..47..-457844..5
2d20: 0d 0a 2d 33 37 31 30 35 31 0d 0a 0d 0a 6f 6e 6c  ..-371051....onl
2d30: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
2d40: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
2d50: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2d60: 6c 61 62 65 6c 2d 35 36 0d 0a 53 45 4c 45 43 54  label-56..SELECT
2d70: 20 41 4c 4c 20 2d 20 53 55 4d 28 20 41 4c 4c 20   ALL - SUM( ALL 
2d80: 2d 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 31  - col0 ) AS col1
2d90: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
2da0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 32 37 0d 0a 0d  r0..----..227...
2db0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2dc0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2dd0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2de0: 6c 61 62 65 6c 2d 35 36 0d 0a 53 45 4c 45 43 54  label-56..SELECT
2df0: 20 41 4c 4c 20 2d 20 53 55 4d 20 28 20 41 4c 4c   ALL - SUM ( ALL
2e00: 20 2d 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c   - col0 ) AS col
2e10: 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
2e20: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 32 37 0d 0a  or0..----..227..
2e30: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
2e40: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
2e50: 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45  OM tab0 cor0 WHE
2e60: 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20  RE NOT ( NULL ) 
2e70: 3c 20 2d 20 31 35 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  < - 15..----....
2e80: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
2e90: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2ea0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2eb0: 72 74 20 6c 61 62 65 6c 2d 35 38 0d 0a 53 45 4c  rt label-58..SEL
2ec0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2d  ECT DISTINCT + -
2ed0: 20 33 36 20 2a 20 2d 20 43 4f 55 4e 54 28 20 2a   36 * - COUNT( *
2ee0: 20 29 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72   ) FROM tab0 cor
2ef0: 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 38 0d 0a 0d 0a  0..----..108....
2f00: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2f10: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2f20: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2f30: 61 62 65 6c 2d 35 38 0d 0a 53 45 4c 45 43 54 20  abel-58..SELECT 
2f40: 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 33 36 20  DISTINCT + - 36 
2f50: 2a 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  * - COUNT ( * ) 
2f60: 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a  FROM tab0 cor0..
2f70: 2d 2d 2d 2d 0d 0a 31 30 38 0d 0a 0d 0a 6f 6e 6c  ----..108....onl
2f80: 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
2f90: 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
2fa0: 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
2fb0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 39  rowsort label-59
2fc0: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63  ..SELECT ALL + c
2fd0: 6f 6c 30 20 44 49 56 20 2b 20 28 20 2d 20 37 35  ol0 DIV + ( - 75
2fe0: 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
2ff0: 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab2 cor0..----.
3000: 0a 2d 31 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69  .-1..0..0....ski
3010: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
3020: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
3030: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
3040: 6c 2d 35 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  l-59..SELECT ALL
3050: 20 2b 20 63 6f 6c 30 20 2f 20 2b 20 28 20 2d 20   + col0 / + ( - 
3060: 37 35 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  75 ) AS col2 FRO
3070: 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab2 cor0..---
3080: 2d 0d 0a 2d 31 0d 0a 30 0d 0a 30 0d 0a 0d 0a 6f  -..-1..0..0....o
3090: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
30a0: 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
30b0: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
30c0: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
30d0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
30e0: 6c 2d 36 30 0d 0a 53 45 4c 45 43 54 20 44 49 53  l-60..SELECT DIS
30f0: 54 49 4e 43 54 20 2d 20 37 30 20 2a 20 2d 20 31  TINCT - 70 * - 1
3100: 34 20 2b 20 28 20 2d 20 2b 20 53 55 4d 28 20 2d  4 + ( - + SUM( -
3110: 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
3120: 49 47 4e 45 44 20 29 20 29 20 29 20 41 53 20 63  IGNED ) ) ) AS c
3130: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48  ol2 FROM tab1 WH
3140: 45 52 45 20 63 6f 6c 31 20 2f 20 2b 20 36 20 49  ERE col1 / + 6 I
3150: 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
3160: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
3170: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
3180: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
3190: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
31a0: 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  0..SELECT DISTIN
31b0: 43 54 20 2d 20 37 30 20 2a 20 2d 20 31 34 20 2b  CT - 70 * - 14 +
31c0: 20 28 20 2d 20 2b 20 53 55 4d 20 28 20 2d 20 43   ( - + SUM ( - C
31d0: 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
31e0: 54 45 47 45 52 20 29 20 29 20 29 20 41 53 20 63  TEGER ) ) ) AS c
31f0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48  ol2 FROM tab1 WH
3200: 45 52 45 20 63 6f 6c 31 20 2f 20 2b 20 36 20 49  ERE col1 / + 6 I
3210: 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
3220: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20  ..NULL....query 
3230: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
3240: 54 20 41 4c 4c 20 2b 20 34 30 20 41 53 20 63 6f  T ALL + 40 AS co
3250: 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45  l0 FROM tab0 WHE
3260: 52 45 20 2d 20 35 38 20 49 53 20 4e 55 4c 4c 0d  RE - 58 IS NULL.
3270: 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
3280: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
3290: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57  CT * FROM tab0 W
32a0: 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f  HERE NOT NULL NO
32b0: 54 20 49 4e 20 28 20 31 35 2c 20 63 6f 6c 32 20  T IN ( 15, col2 
32c0: 2b 20 2d 20 2d 20 31 35 20 2a 20 2d 20 63 6f 6c  + - - 15 * - col
32d0: 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  2 )..----....que
32e0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
32f0: 4c 45 43 54 20 63 6f 6c 30 20 2a 20 2d 20 63 6f  LECT col0 * - co
3300: 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45  l0 FROM tab0 WHE
3310: 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 31 20 49 53  RE NOT + col1 IS
3320: 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
3330: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
3340: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
3350: 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
3360: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
3370: 62 65 6c 2d 36 34 0d 0a 53 45 4c 45 43 54 20 2b  bel-64..SELECT +
3380: 20 43 41 53 54 28 20 2b 20 37 20 41 53 20 53 49   CAST( + 7 AS SI
3390: 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62 30  GNED ) FROM tab0
33a0: 0d 0a 2d 2d 2d 2d 0d 0a 37 0d 0a 37 0d 0a 37 0d  ..----..7..7..7.
33b0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
33c0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
33d0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
33e0: 74 20 6c 61 62 65 6c 2d 36 34 0d 0a 53 45 4c 45  t label-64..SELE
33f0: 43 54 20 2b 20 43 41 53 54 20 28 20 2b 20 37 20  CT + CAST ( + 7 
3400: 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f  AS INTEGER ) FRO
3410: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 37 0d  M tab0..----..7.
3420: 0a 37 0d 0a 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .7..7....onlyif 
3430: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
3440: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
3450: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
3460: 6c 2d 36 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  l-65..SELECT ALL
3470: 20 43 4f 55 4e 54 28 20 44 49 53 54 49 4e 43 54   COUNT( DISTINCT
3480: 20 37 35 20 29 20 46 52 4f 4d 20 74 61 62 30 0d   75 ) FROM tab0.
3490: 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 73 6b 69 70  .----..1....skip
34a0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
34b0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
34c0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
34d0: 2d 36 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  -65..SELECT ALL 
34e0: 43 4f 55 4e 54 20 28 20 44 49 53 54 49 4e 43 54  COUNT ( DISTINCT
34f0: 20 37 35 20 29 20 46 52 4f 4d 20 74 61 62 30 0d   75 ) FROM tab0.
3500: 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 71 75 65 72  .----..1....quer
3510: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
3520: 45 43 54 20 2d 20 31 37 20 46 52 4f 4d 20 74 61  ECT - 17 FROM ta
3530: 62 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  b0 WHERE NOT NUL
3540: 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  L IS NULL..----.
3550: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
3560: 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
3570: 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
3580: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
3590: 61 62 65 6c 2d 36 37 0d 0a 53 45 4c 45 43 54 20  abel-67..SELECT 
35a0: 44 49 53 54 49 4e 43 54 20 32 33 2c 20 2b 20 63  DISTINCT 23, + c
35b0: 6f 6c 30 20 44 49 56 20 63 6f 6c 31 20 41 53 20  ol0 DIV col1 AS 
35c0: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col2 FROM tab2..
35d0: 2d 2d 2d 2d 0d 0a 32 33 0d 0a 30 0d 0a 32 33 0d  ----..23..0..23.
35e0: 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .1....skipif mys
35f0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
3600: 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
3610: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 37 0d 0a  wsort label-67..
3620: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
3630: 32 33 2c 20 2b 20 63 6f 6c 30 20 2f 20 63 6f 6c  23, + col0 / col
3640: 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  1 AS col2 FROM t
3650: 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 30  ab2..----..23..0
3660: 0d 0a 32 33 0d 0a 31 0d 0a 0d 0a 71 75 65 72 79  ..23..1....query
3670: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
3680: 43 54 20 2d 20 2d 20 33 39 20 41 53 20 63 6f 6c  CT - - 39 AS col
3690: 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
36a0: 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
36b0: 61 62 32 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d  ab2 AS cor1..---
36c0: 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
36d0: 69 6e 67 20 74 6f 20 35 65 63 63 34 64 33 64 65  ing to 5ecc4d3de
36e0: 36 38 61 65 38 32 38 61 32 64 35 32 32 64 66 66  68ae828a2d522dff
36f0: 38 35 37 31 63 62 66 0d 0a 0d 0a 6f 6e 6c 79 69  8571cbf....onlyi
3700: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
3710: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
3720: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
3730: 62 65 6c 2d 36 39 0d 0a 53 45 4c 45 43 54 20 41  bel-69..SELECT A
3740: 4c 4c 20 4d 41 58 28 20 41 4c 4c 20 2d 20 37 39  LL MAX( ALL - 79
3750: 20 29 20 2b 20 2d 20 2d 20 53 55 4d 28 20 44 49   ) + - - SUM( DI
3760: 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20 29 20  STINCT + col0 ) 
3770: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
3780: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30  S cor0..----..10
3790: 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  6....skipif mysq
37a0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
37b0: 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
37c0: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
37d0: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
37e0: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
37f0: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
3800: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
3810: 65 6c 2d 36 39 0d 0a 53 45 4c 45 43 54 20 41 4c  el-69..SELECT AL
3820: 4c 20 4d 41 58 20 28 20 41 4c 4c 20 2d 20 37 39  L MAX ( ALL - 79
3830: 20 29 20 2b 20 2d 20 2d 20 53 55 4d 20 28 20 44   ) + - - SUM ( D
3840: 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20 29  ISTINCT + col0 )
3850: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
3860: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
3870: 30 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  06....query III 
3880: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
3890: 2a 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  * FROM tab1 cor0
38a0: 20 57 48 45 52 45 20 4e 55 4c 4c 20 3d 20 2d 20   WHERE NULL = - 
38b0: 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 30 0d 0a 2d  col2 * - col0..-
38c0: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
38d0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
38e0: 4c 4c 20 2d 20 36 32 20 2b 20 2d 20 63 6f 6c 32  LL - 62 + - col2
38f0: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
3900: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
3910: 0d 0a 2d 31 30 32 0d 0a 2d 31 32 30 0d 0a 2d 38  ..-102..-120..-8
3920: 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  5....onlyif mysq
3930: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
3940: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
3950: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 32  rowsort label-72
3960: 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 31 32 20  ..SELECT - - 12 
3970: 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41  - + COUNT( * ) A
3980: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
3990: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
39a0: 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
39b0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
39c0: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
39d0: 6f 72 74 20 6c 61 62 65 6c 2d 37 32 0d 0a 53 45  ort label-72..SE
39e0: 4c 45 43 54 20 2d 20 2d 20 31 32 20 2d 20 2b 20  LECT - - 12 - + 
39f0: 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63  COUNT ( * ) AS c
3a00: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
3a10: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a   cor0..----..9..
3a20: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
3a30: 74 0d 0a 53 45 4c 45 43 54 20 37 30 20 2b 20 2d  t..SELECT 70 + -
3a40: 20 63 6f 6c 32 20 2d 20 37 32 20 2a 20 2b 20 63   col2 - 72 * + c
3a50: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
3a60: 2d 2d 2d 0d 0a 2d 31 30 31 0d 0a 2d 31 34 35 32  ---..-101..-1452
3a70: 0d 0a 2d 35 38 30 39 0d 0a 0d 0a 71 75 65 72 79  ..-5809....query
3a80: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
3a90: 43 54 20 38 38 20 2b 20 2d 20 63 6f 6c 32 20 46  CT 88 + - col2 F
3aa0: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
3ab0: 2d 38 0d 0a 32 30 0d 0a 32 39 0d 0a 0d 0a 71 75  -8..20..29....qu
3ac0: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
3ad0: 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
3ae0: 61 62 32 20 57 48 45 52 45 20 2b 20 63 6f 6c 30  ab2 WHERE + col0
3af0: 20 2b 20 2b 20 2b 20 63 6f 6c 30 20 49 53 20 4e   + + + col0 IS N
3b00: 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  OT NULL..----..9
3b10: 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
3b20: 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38  to 75c998aa53ac8
3b30: 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30  3218cbf2feb962d0
3b40: 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  a49....query II 
3b50: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
3b60: 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 41 53  DISTINCT col2 AS
3b70: 20 63 6f 6c 30 2c 20 33 34 20 41 53 20 63 6f 6c   col0, 34 AS col
3b80: 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
3b90: 2d 0d 0a 32 33 0d 0a 33 34 0d 0a 34 30 0d 0a 33  -..23..34..40..3
3ba0: 34 0d 0a 35 38 0d 0a 33 34 0d 0a 0d 0a 6f 6e 6c  4..58..34....onl
3bb0: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
3bc0: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
3bd0: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
3be0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
3bf0: 37 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30  7..SELECT + col0
3c00: 20 2a 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 43 41   * + - col1 * CA
3c10: 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
3c20: 45 44 20 29 20 2b 20 2b 20 63 6f 6c 31 20 41 53  ED ) + + col1 AS
3c30: 20 63 6f 6c 32 2c 20 32 38 20 46 52 4f 4d 20 74   col2, 28 FROM t
3c40: 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab2..----..NULL.
3c50: 0a 32 38 0d 0a 4e 55 4c 4c 0d 0a 32 38 0d 0a 4e  .28..NULL..28..N
3c60: 55 4c 4c 0d 0a 32 38 0d 0a 0d 0a 73 6b 69 70 69  ULL..28....skipi
3c70: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
3c80: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
3c90: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
3ca0: 2d 37 37 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  -77..SELECT + co
3cb0: 6c 30 20 2a 20 2b 20 2d 20 63 6f 6c 31 20 2a 20  l0 * + - col1 * 
3cc0: 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
3cd0: 4e 54 45 47 45 52 20 29 20 2b 20 2b 20 63 6f 6c  NTEGER ) + + col
3ce0: 31 20 41 53 20 63 6f 6c 32 2c 20 32 38 20 46 52  1 AS col2, 28 FR
3cf0: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab2..----..N
3d00: 55 4c 4c 0d 0a 32 38 0d 0a 4e 55 4c 4c 0d 0a 32  ULL..28..NULL..2
3d10: 38 0d 0a 4e 55 4c 4c 0d 0a 32 38 0d 0a 0d 0a 73  8..NULL..28....s
3d20: 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
3d30: 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
3d40: 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
3d50: 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
3d60: 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
3d70: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
3d80: 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 2d 20  DISTINCT col1 - 
3d90: 2b 20 63 6f 6c 31 20 2b 20 33 38 20 63 6f 6c 32  + col1 + 38 col2
3da0: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
3db0: 0d 0a 33 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..38....onlyif m
3dc0: 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
3dd0: 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
3de0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
3df0: 72 74 20 6c 61 62 65 6c 2d 37 39 0d 0a 53 45 4c  rt label-79..SEL
3e00: 45 43 54 20 2b 20 28 20 2b 20 2b 20 63 6f 6c 31  ECT + ( + + col1
3e10: 20 29 20 44 49 56 20 63 6f 6c 31 20 2b 20 2d 20   ) DIV col1 + - 
3e20: 37 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  72 FROM tab1..--
3e30: 2d 2d 0d 0a 2d 37 31 0d 0a 2d 37 31 0d 0a 2d 37  --..-71..-71..-7
3e40: 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
3e50: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
3e60: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
3e70: 6f 72 74 20 6c 61 62 65 6c 2d 37 39 0d 0a 53 45  ort label-79..SE
3e80: 4c 45 43 54 20 2b 20 28 20 2b 20 2b 20 63 6f 6c  LECT + ( + + col
3e90: 31 20 29 20 2f 20 63 6f 6c 31 20 2b 20 2d 20 37  1 ) / col1 + - 7
3ea0: 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  2 FROM tab1..---
3eb0: 2d 0d 0a 2d 37 31 0d 0a 2d 37 31 0d 0a 2d 37 31  -..-71..-71..-71
3ec0: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
3ed0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 33 30  ort..SELECT - 30
3ee0: 20 2b 20 2b 20 35 33 20 46 52 4f 4d 20 74 61 62   + + 53 FROM tab
3ef0: 32 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 32 33 0d  2..----..23..23.
3f00: 0a 32 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .23....onlyif my
3f10: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
3f20: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
3f30: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
3f40: 38 31 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55  81..SELECT + COU
3f50: 4e 54 28 20 2a 20 29 20 2b 20 2d 20 2d 20 31 20  NT( * ) + - - 1 
3f60: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
3f70: 0a 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .4....skipif mys
3f80: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
3f90: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
3fa0: 73 6f 72 74 20 6c 61 62 65 6c 2d 38 31 0d 0a 53  sort label-81..S
3fb0: 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20 28 20  ELECT + COUNT ( 
3fc0: 2a 20 29 20 2b 20 2d 20 2d 20 31 20 46 52 4f 4d  * ) + - - 1 FROM
3fd0: 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 34 0d 0a   tab0..----..4..
3fe0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
3ff0: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
4000: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
4010: 73 6f 72 74 20 6c 61 62 65 6c 2d 38 32 0d 0a 53  sort label-82..S
4020: 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 53 55  ELECT ALL + + SU
4030: 4d 28 20 44 49 53 54 49 4e 43 54 20 2d 20 34 37  M( DISTINCT - 47
4040: 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
4050: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 37 0d  cor0..----..-47.
4060: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
4070: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
4080: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
4090: 74 20 6c 61 62 65 6c 2d 38 32 0d 0a 53 45 4c 45  t label-82..SELE
40a0: 43 54 20 41 4c 4c 20 2b 20 2b 20 53 55 4d 20 28  CT ALL + + SUM (
40b0: 20 44 49 53 54 49 4e 43 54 20 2d 20 34 37 20 29   DISTINCT - 47 )
40c0: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
40d0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 37 0d 0a 0d  r0..----..-47...
40e0: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
40f0: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 33 33  t..SELECT ALL 33
4100: 2c 20 2b 20 32 37 20 41 53 20 63 6f 6c 32 20 46  , + 27 AS col2 F
4110: 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d  ROM tab2 cor0..-
4120: 2d 2d 2d 0d 0a 33 33 0d 0a 32 37 0d 0a 33 33 0d  ---..33..27..33.
4130: 0a 32 37 0d 0a 33 33 0d 0a 32 37 0d 0a 0d 0a 6f  .27..33..27....o
4140: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
4150: 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
4160: 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
4170: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
4180: 38 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  84..SELECT ALL +
4190: 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52   col0 AS col2 FR
41a0: 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f  OM tab1 WHERE NO
41b0: 54 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 43 41 53  T - col0 * - CAS
41c0: 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
41d0: 44 20 29 20 2a 20 2d 20 63 6f 6c 30 20 49 4e 20  D ) * - col0 IN 
41e0: 28 20 63 6f 6c 30 2c 20 2d 20 63 6f 6c 30 20 29  ( col0, - col0 )
41f0: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
4200: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
4210: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
4220: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
4230: 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  4..SELECT ALL + 
4240: 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f  col0 AS col2 FRO
4250: 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54  M tab1 WHERE NOT
4260: 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 43 41 53 54   - col0 * - CAST
4270: 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
4280: 45 52 20 29 20 2a 20 2d 20 63 6f 6c 30 20 49 4e  ER ) * - col0 IN
4290: 20 28 20 63 6f 6c 30 2c 20 2d 20 63 6f 6c 30 20   ( col0, - col0 
42a0: 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  )..----....query
42b0: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
42c0: 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
42d0: 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
42e0: 52 45 20 4e 4f 54 20 32 20 49 53 20 4e 55 4c 4c  RE NOT 2 IS NULL
42f0: 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
4300: 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34   hashing to c4b4
4310: 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30  2765dff94eaaa460
4320: 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a  40e537fb43b7....
4330: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
4340: 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72  AST syntax: aggr
4350: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49  egate syntax: SI
4360: 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
4370: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
4380: 62 65 6c 2d 38 36 0d 0a 53 45 4c 45 43 54 20 44  bel-86..SELECT D
4390: 49 53 54 49 4e 43 54 20 2d 20 37 33 20 2d 20 2d  ISTINCT - 73 - -
43a0: 20 43 41 53 54 28 20 2d 20 43 4f 55 4e 54 28 20   CAST( - COUNT( 
43b0: 2a 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20  * ) AS SIGNED ) 
43c0: 2d 20 2d 20 43 4f 55 4e 54 28 20 41 4c 4c 20 2d  - - COUNT( ALL -
43d0: 20 38 20 29 20 63 6f 6c 31 2c 20 2b 20 4d 41 58   8 ) col1, + MAX
43e0: 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  ( DISTINCT + col
43f0: 32 20 29 20 2b 20 2b 20 31 33 20 41 53 20 63 6f  2 ) + + 13 AS co
4400: 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72  l2 FROM tab2 cor
4410: 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 32 31  0 WHERE NOT - 21
4420: 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
4430: 2d 2d 0d 0a 2d 37 33 0d 0a 4e 55 4c 4c 0d 0a 0d  --..-73..NULL...
4440: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
4450: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
4460: 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
4470: 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
4480: 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
4490: 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
44a0: 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
44b0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
44c0: 38 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  86..SELECT DISTI
44d0: 4e 43 54 20 2d 20 37 33 20 2d 20 2d 20 43 41 53  NCT - 73 - - CAS
44e0: 54 20 28 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  T ( - COUNT ( * 
44f0: 29 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2d  ) AS INTEGER ) -
4500: 20 2d 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20 2d   - COUNT ( ALL -
4510: 20 38 20 29 20 63 6f 6c 31 2c 20 2b 20 4d 41 58   8 ) col1, + MAX
4520: 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f   ( DISTINCT + co
4530: 6c 32 20 29 20 2b 20 2b 20 31 33 20 41 53 20 63  l2 ) + + 13 AS c
4540: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol2 FROM tab2 co
4550: 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 32  r0 WHERE NOT - 2
4560: 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  1 IS NOT NULL..-
4570: 2d 2d 2d 0d 0a 2d 37 33 0d 0a 4e 55 4c 4c 0d 0a  ---..-73..NULL..
4580: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
4590: 74 0d 0a 53 45 4c 45 43 54 20 2b 20 36 39 20 46  t..SELECT + 69 F
45a0: 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 20 57 48  ROM tab1 cor0 WH
45b0: 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20  ERE NOT NULL IS 
45c0: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
45d0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
45e0: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
45f0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
4600: 20 6c 61 62 65 6c 2d 38 38 0d 0a 53 45 4c 45 43   label-88..SELEC
4610: 54 20 44 49 53 54 49 4e 43 54 20 2b 20 28 20 2d  T DISTINCT + ( -
4620: 20 2d 20 4d 49 4e 28 20 41 4c 4c 20 33 33 20 29   - MIN( ALL 33 )
4630: 20 29 20 2a 20 36 34 20 46 52 4f 4d 20 74 61 62   ) * 64 FROM tab
4640: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
4650: 0a 32 31 31 32 0d 0a 0d 0a 73 6b 69 70 69 66 20  .2112....skipif 
4660: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
4670: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
4680: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 38  rowsort label-88
4690: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
46a0: 54 20 2b 20 28 20 2d 20 2d 20 4d 49 4e 20 28 20  T + ( - - MIN ( 
46b0: 41 4c 4c 20 33 33 20 29 20 29 20 2a 20 36 34 20  ALL 33 ) ) * 64 
46c0: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
46d0: 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 31 32 0d 0a 0d  0..----..2112...
46e0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
46f0: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
4700: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
4710: 6f 72 74 20 6c 61 62 65 6c 2d 38 39 0d 0a 53 45  ort label-89..SE
4720: 4c 45 43 54 20 38 35 20 2a 20 2d 20 31 30 20 2b  LECT 85 * - 10 +
4730: 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53   - COUNT( * ) AS
4740: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
4750: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
4760: 38 35 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  853....skipif my
4770: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
4780: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
4790: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 39 0d 0a  wsort label-89..
47a0: 53 45 4c 45 43 54 20 38 35 20 2a 20 2d 20 31 30  SELECT 85 * - 10
47b0: 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29   + - COUNT ( * )
47c0: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
47d0: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
47e0: 0d 0a 2d 38 35 33 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..-853....onlyif
47f0: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
4800: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
4810: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
4820: 65 6c 2d 39 30 0d 0a 53 45 4c 45 43 54 20 44 49  el-90..SELECT DI
4830: 53 54 49 4e 43 54 20 4d 41 58 28 20 2d 20 63 6f  STINCT MAX( - co
4840: 6c 30 20 29 20 2a 20 2b 20 2d 20 32 35 20 41 53  l0 ) * + - 25 AS
4850: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
4860: 0a 2d 2d 2d 2d 0d 0a 31 32 37 35 0d 0a 0d 0a 73  .----..1275....s
4870: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
4880: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
4890: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
48a0: 62 65 6c 2d 39 30 0d 0a 53 45 4c 45 43 54 20 44  bel-90..SELECT D
48b0: 49 53 54 49 4e 43 54 20 4d 41 58 20 28 20 2d 20  ISTINCT MAX ( - 
48c0: 63 6f 6c 30 20 29 20 2a 20 2b 20 2d 20 32 35 20  col0 ) * + - 25 
48d0: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
48e0: 31 0d 0a 2d 2d 2d 2d 0d 0a 31 32 37 35 0d 0a 0d  1..----..1275...
48f0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
4900: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
4910: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
4920: 6f 72 74 20 6c 61 62 65 6c 2d 39 31 0d 0a 53 45  ort label-91..SE
4930: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
4940: 4d 41 58 28 20 2d 20 63 6f 6c 32 20 29 20 41 53  MAX( - col2 ) AS
4950: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
4960: 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 0d 0a 73 6b  .----..-10....sk
4970: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
4980: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
4990: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
49a0: 65 6c 2d 39 31 0d 0a 53 45 4c 45 43 54 20 44 49  el-91..SELECT DI
49b0: 53 54 49 4e 43 54 20 2b 20 4d 41 58 20 28 20 2d  STINCT + MAX ( -
49c0: 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 32 20   col2 ) AS col2 
49d0: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
49e0: 0a 2d 31 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-10....query I 
49f0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
4a00: 2b 20 63 6f 6c 30 20 2a 20 2d 20 2d 20 63 6f 6c  + col0 * - - col
4a10: 32 20 2b 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20  2 + + col0 FROM 
4a20: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 31 30 34  tab2..----..1104
4a30: 0d 0a 32 36 32 34 0d 0a 34 34 32 35 0d 0a 0d 0a  ..2624..4425....
4a40: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
4a50: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
4a60: 20 2b 20 33 30 20 2a 20 33 31 20 41 53 20 63 6f   + 30 * 31 AS co
4a70: 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
4a80: 2d 2d 0d 0a 39 33 30 0d 0a 0d 0a 6f 6e 6c 79 69  --..930....onlyi
4a90: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
4aa0: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
4ab0: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
4ac0: 61 62 65 6c 2d 39 34 0d 0a 53 45 4c 45 43 54 20  abel-94..SELECT 
4ad0: 41 4c 4c 20 2b 20 38 34 2c 20 43 4f 55 4e 54 28  ALL + 84, COUNT(
4ae0: 20 2a 20 29 20 2b 20 2b 20 43 4f 55 4e 54 28 20   * ) + + COUNT( 
4af0: 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  * ) AS col0 FROM
4b00: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 38 34 0d   tab1..----..84.
4b10: 0a 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .6....skipif mys
4b20: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
4b30: 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
4b40: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 34 0d 0a  wsort label-94..
4b50: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 38 34 2c  SELECT ALL + 84,
4b60: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2b   COUNT ( * ) + +
4b70: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
4b80: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col0 FROM tab1..
4b90: 2d 2d 2d 2d 0d 0a 38 34 0d 0a 36 0d 0a 0d 0a 6f  ----..84..6....o
4ba0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
4bb0: 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
4bc0: 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
4bd0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
4be0: 39 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  95..SELECT DISTI
4bf0: 4e 43 54 20 2b 20 2d 20 28 20 2d 20 34 35 20 29  NCT + - ( - 45 )
4c00: 20 2a 20 2d 20 2d 20 43 41 53 54 28 20 2d 20 63   * - - CAST( - c
4c10: 6f 6c 31 20 41 53 20 53 49 47 4e 45 44 20 29 20  ol1 AS SIGNED ) 
4c20: 2b 20 2d 20 2b 20 36 35 20 41 53 20 63 6f 6c 31  + - + 65 AS col1
4c30: 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
4c40: 20 32 20 2b 20 2b 20 63 6f 6c 30 20 49 53 20 4e   2 + + col0 IS N
4c50: 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d  OT NULL..----..-
4c60: 31 30 31 30 0d 0a 2d 31 31 30 0d 0a 2d 33 37 31  1010..-110..-371
4c70: 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
4c80: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
4c90: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
4ca0: 6f 72 74 20 6c 61 62 65 6c 2d 39 35 0d 0a 53 45  ort label-95..SE
4cb0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
4cc0: 2d 20 28 20 2d 20 34 35 20 29 20 2a 20 2d 20 2d  - ( - 45 ) * - -
4cd0: 20 43 41 53 54 20 28 20 2d 20 63 6f 6c 31 20 41   CAST ( - col1 A
4ce0: 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20 2d 20  S INTEGER ) + - 
4cf0: 2b 20 36 35 20 41 53 20 63 6f 6c 31 20 46 52 4f  + 65 AS col1 FRO
4d00: 4d 20 74 61 62 30 20 57 48 45 52 45 20 32 20 2b  M tab0 WHERE 2 +
4d10: 20 2b 20 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e   + col0 IS NOT N
4d20: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 31 30  ULL..----..-1010
4d30: 0d 0a 2d 31 31 30 0d 0a 2d 33 37 31 30 0d 0a 0d  ..-110..-3710...
4d40: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
4d50: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 39 35  t..SELECT ALL 95
4d60: 20 41 53 20 63 6f 6c 32 2c 20 2d 20 33 37 20 46   AS col2, - 37 F
4d70: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
4d80: 39 35 0d 0a 2d 33 37 0d 0a 39 35 0d 0a 2d 33 37  95..-37..95..-37
4d90: 0d 0a 39 35 0d 0a 2d 33 37 0d 0a 0d 0a 71 75 65  ..95..-37....que
4da0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
4db0: 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2a 20 33 30  LECT - col2 * 30
4dc0: 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 20   FROM tab1 cor0 
4dd0: 57 48 45 52 45 20 2b 20 63 6f 6c 32 20 2a 20 63  WHERE + col2 * c
4de0: 6f 6c 32 20 2d 20 2b 20 63 6f 6c 31 20 4e 4f 54  ol2 - + col1 NOT
4df0: 20 42 45 54 57 45 45 4e 20 2b 20 2d 20 63 6f 6c   BETWEEN + - col
4e00: 32 20 2a 20 2b 20 63 6f 6c 30 20 2b 20 63 6f 6c  2 * + col0 + col
4e10: 31 20 2d 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 63  1 - - col1 * + c
4e20: 6f 6c 30 20 41 4e 44 20 63 6f 6c 30 0d 0a 2d 2d  ol0 AND col0..--
4e30: 2d 2d 0d 0a 2d 31 37 37 30 0d 0a 2d 32 30 34 30  --..-1770..-2040
4e40: 0d 0a 2d 32 38 38 30 0d 0a 0d 0a 71 75 65 72 79  ..-2880....query
4e50: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
4e60: 43 54 20 41 4c 4c 20 36 33 20 2b 20 2b 20 63 6f  CT ALL 63 + + co
4e70: 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l0 AS col1 FROM 
4e80: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
4e90: 2d 2d 0d 0a 31 31 34 0d 0a 31 34 38 0d 0a 31 35  --..114..148..15
4ea0: 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  4....query I row
4eb0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63  sort..SELECT + c
4ec0: 6f 6c 30 20 2a 20 2d 20 2d 20 31 35 20 46 52 4f  ol0 * - - 15 FRO
4ed0: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
4ee0: 2d 2d 2d 2d 0d 0a 31 32 37 35 0d 0a 31 33 36 35  ----..1275..1365
4ef0: 0d 0a 37 36 35 0d 0a 0d 0a 71 75 65 72 79 20 49  ..765....query I
4f00: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
4f10: 54 20 34 20 2b 20 2b 20 2b 20 63 6f 6c 31 20 41  T 4 + + + col1 A
4f20: 53 20 63 6f 6c 30 2c 20 2b 20 63 6f 6c 31 20 46  S col0, + col1 F
4f30: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
4f40: 31 38 0d 0a 31 34 0d 0a 35 31 0d 0a 34 37 0d 0a  18..14..51..47..
4f50: 39 0d 0a 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49  9..5....query II
4f60: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
4f70: 20 2b 20 32 39 20 2b 20 2b 20 63 6f 6c 32 20 2b   + 29 + + col2 +
4f80: 20 2d 20 63 6f 6c 31 20 2b 20 39 34 2c 20 39 39   - col1 + 94, 99
4f90: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
4fa0: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
4fb0: 0d 0a 31 31 32 0d 0a 39 39 0d 0a 32 32 31 0d 0a  ..112..99..221..
4fc0: 39 39 0d 0a 38 39 0d 0a 39 39 0d 0a 0d 0a 6f 6e  99..89..99....on
4fd0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
4fe0: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
4ff0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
5000: 20 6c 61 62 65 6c 2d 31 30 32 0d 0a 53 45 4c 45   label-102..SELE
5010: 43 54 20 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20  CT - + COUNT( * 
5020: 29 20 2b 20 2b 20 35 32 20 41 53 20 63 6f 6c 31  ) + + 52 AS col1
5030: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
5040: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 39 0d 0a 0d 0a  r0..----..49....
5050: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
5060: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
5070: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
5080: 61 62 65 6c 2d 31 30 32 0d 0a 53 45 4c 45 43 54  abel-102..SELECT
5090: 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29   - + COUNT ( * )
50a0: 20 2b 20 2b 20 35 32 20 41 53 20 63 6f 6c 31 20   + + 52 AS col1 
50b0: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
50c0: 30 0d 0a 2d 2d 2d 2d 0d 0a 34 39 0d 0a 0d 0a 71  0..----..49....q
50d0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
50e0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
50f0: 2d 20 35 33 20 2a 20 2d 20 38 30 20 2a 20 34 33  - 53 * - 80 * 43
5100: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
5110: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 38 32 33 32 30  r0..----..182320
5120: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
5130: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
5140: 49 4e 43 54 20 2b 20 31 34 20 2b 20 2d 20 63 6f  INCT + 14 + - co
5150: 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l0 AS col2 FROM 
5160: 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
5170: 2d 2d 0d 0a 2d 33 32 0d 0a 2d 35 30 0d 0a 2d 36  --..-32..-50..-6
5180: 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
5190: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
51a0: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
51b0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
51c0: 35 0d 0a 53 45 4c 45 43 54 20 39 36 20 2b 20 2b  5..SELECT 96 + +
51d0: 20 2d 20 43 4f 55 4e 54 28 20 63 6f 6c 30 20 29   - COUNT( col0 )
51e0: 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20   + - COUNT( * ) 
51f0: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
5200: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
5210: 0a 39 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .90....skipif my
5220: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
5230: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
5240: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35 0d  wsort label-105.
5250: 0a 53 45 4c 45 43 54 20 39 36 20 2b 20 2b 20 2d  .SELECT 96 + + -
5260: 20 43 4f 55 4e 54 20 28 20 63 6f 6c 30 20 29 20   COUNT ( col0 ) 
5270: 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  + - COUNT ( * ) 
5280: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
5290: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
52a0: 0a 39 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  .90....query III
52b0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
52c0: 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
52d0: 63 6f 72 30 20 57 48 45 52 45 20 2d 20 63 6f 6c  cor0 WHERE - col
52e0: 31 20 49 4e 20 28 20 2d 20 63 6f 6c 30 2c 20 2d  1 IN ( - col0, -
52f0: 20 63 6f 6c 32 20 2a 20 63 6f 6c 30 2c 20 2d 20   col2 * col0, - 
5300: 2b 20 37 32 2c 20 2b 20 63 6f 6c 30 20 29 0d 0a  + 72, + col0 )..
5310: 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
5320: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
5330: 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
5340: 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
5350: 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
5360: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
5370: 65 6c 2d 31 30 37 0d 0a 53 45 4c 45 43 54 20 41  el-107..SELECT A
5380: 4c 4c 20 2b 20 43 41 53 54 28 20 30 20 41 53 20  LL + CAST( 0 AS 
5390: 53 49 47 4e 45 44 20 29 20 44 49 56 20 2d 20 63  SIGNED ) DIV - c
53a0: 6f 6c 31 20 2d 20 2b 20 2d 20 63 6f 6c 31 20 46  ol1 - + - col1 F
53b0: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
53c0: 35 31 0d 0a 36 37 0d 0a 37 37 0d 0a 0d 0a 73 6b  51..67..77....sk
53d0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
53e0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
53f0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
5400: 65 6c 2d 31 30 37 0d 0a 53 45 4c 45 43 54 20 41  el-107..SELECT A
5410: 4c 4c 20 2b 20 43 41 53 54 20 28 20 30 20 41 53  LL + CAST ( 0 AS
5420: 20 49 4e 54 45 47 45 52 20 29 20 2f 20 2d 20 63   INTEGER ) / - c
5430: 6f 6c 31 20 2d 20 2b 20 2d 20 63 6f 6c 31 20 46  ol1 - + - col1 F
5440: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
5450: 35 31 0d 0a 36 37 0d 0a 37 37 0d 0a 0d 0a 71 75  51..67..77....qu
5460: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
5470: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
5480: 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
5490: 52 45 20 2d 20 2b 20 63 6f 6c 30 20 4e 4f 54 20  RE - + col0 NOT 
54a0: 49 4e 20 28 20 32 33 20 29 0d 0a 2d 2d 2d 2d 0d  IN ( 23 )..----.
54b0: 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
54c0: 67 20 74 6f 20 63 34 62 34 32 37 36 35 64 66 66  g to c4b42765dff
54d0: 39 34 65 61 61 61 34 36 30 34 30 65 35 33 37 66  94eaaa46040e537f
54e0: 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72 79 20 49  b43b7....query I
54f0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
5500: 20 2b 20 28 20 63 6f 6c 30 20 29 20 2d 20 2d 20   + ( col0 ) - - 
5510: 37 35 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  75 AS col1 FROM 
5520: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 32 36 0d  tab1..----..126.
5530: 0a 31 36 30 0d 0a 31 36 36 0d 0a 0d 0a 71 75 65  .160..166....que
5540: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
5550: 4c 45 43 54 20 2d 20 28 20 2b 20 35 39 20 29 20  LECT - ( + 59 ) 
5560: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
5570: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
5580: 0a 2d 35 39 0d 0a 2d 35 39 0d 0a 2d 35 39 0d 0a  .-59..-59..-59..
5590: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
55a0: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
55b0: 2d 20 63 6f 6c 31 20 2a 20 36 37 20 46 52 4f 4d  - col1 * 67 FROM
55c0: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
55d0: 2d 2d 2d 0d 0a 31 34 30 37 0d 0a 35 34 32 37 0d  ---..1407..5427.
55e0: 0a 36 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .67....onlyif my
55f0: 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
5600: 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
5610: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
5620: 74 20 6c 61 62 65 6c 2d 31 31 32 0d 0a 53 45 4c  t label-112..SEL
5630: 45 43 54 20 2d 20 63 6f 6c 31 20 44 49 56 20 2b  ECT - col1 DIV +
5640: 20 2d 20 33 30 20 46 52 4f 4d 20 74 61 62 31 20   - 30 FROM tab1 
5650: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30  AS cor0..----..0
5660: 0d 0a 30 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66  ..0..1....skipif
5670: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
5680: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
5690: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
56a0: 31 32 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  12..SELECT - col
56b0: 31 20 2f 20 2b 20 2d 20 33 30 20 46 52 4f 4d 20  1 / + - 30 FROM 
56c0: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
56d0: 2d 2d 0d 0a 30 0d 0a 30 0d 0a 31 0d 0a 0d 0a 6f  --..0..0..1....o
56e0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
56f0: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
5700: 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
5710: 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
5720: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
5730: 6c 2d 31 31 33 0d 0a 53 45 4c 45 43 54 20 44 49  l-113..SELECT DI
5740: 53 54 49 4e 43 54 20 43 4f 55 4e 54 28 20 2a 20  STINCT COUNT( * 
5750: 29 20 44 49 56 20 2b 20 2b 20 34 32 20 46 52 4f  ) DIV + + 42 FRO
5760: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
5770: 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  ----..0....skipi
5780: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
5790: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
57a0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
57b0: 31 31 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  113..SELECT DIST
57c0: 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29  INCT COUNT ( * )
57d0: 20 2f 20 2b 20 2b 20 34 32 20 46 52 4f 4d 20 74   / + + 42 FROM t
57e0: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
57f0: 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -..0....query I 
5800: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
5810: 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  - col0 FROM tab2
5820: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
5830: 4f 54 20 2b 20 63 6f 6c 30 20 42 45 54 57 45 45  OT + col0 BETWEE
5840: 4e 20 4e 55 4c 4c 20 41 4e 44 20 2b 20 63 6f 6c  N NULL AND + col
5850: 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a 2d 36  2..----..-46..-6
5860: 34 0d 0a 2d 37 35 0d 0a 0d 0a 6f 6e 6c 79 69 66  4..-75....onlyif
5870: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
5880: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
5890: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
58a0: 65 6c 2d 31 31 35 0d 0a 53 45 4c 45 43 54 20 28  el-115..SELECT (
58b0: 20 2b 20 2d 20 4d 41 58 28 20 2d 20 2b 20 28 20   + - MAX( - + ( 
58c0: 33 37 20 29 20 29 20 29 20 46 52 4f 4d 20 74 61  37 ) ) ) FROM ta
58d0: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
58e0: 0d 0a 33 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..37....skipif m
58f0: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
5900: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
5910: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 35  owsort label-115
5920: 0d 0a 53 45 4c 45 43 54 20 28 20 2b 20 2d 20 4d  ..SELECT ( + - M
5930: 41 58 20 28 20 2d 20 2b 20 28 20 33 37 20 29 20  AX ( - + ( 37 ) 
5940: 29 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ) ) FROM tab1 AS
5950: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 37 0d   cor0..----..37.
5960: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
5970: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
5980: 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72   * FROM tab1 cor
5990: 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  0 WHERE NOT NULL
59a0: 20 3e 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 63 6f   > - col1 * + co
59b0: 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  l2..----....quer
59c0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
59d0: 45 43 54 20 2b 20 35 35 20 2a 20 2d 20 28 20 32  ECT + 55 * - ( 2
59e0: 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
59f0: 74 61 62 30 20 63 6f 72 30 20 43 52 4f 53 53 20  tab0 cor0 CROSS 
5a00: 4a 4f 49 4e 20 74 61 62 31 20 41 53 20 63 6f 72  JOIN tab1 AS cor
5a10: 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20  1 WHERE NULL IS 
5a20: 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
5a30: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
5a40: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
5a50: 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  INCT * FROM tab1
5a60: 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20   WHERE NULL NOT 
5a70: 49 4e 20 28 20 2b 20 37 30 20 29 0d 0a 2d 2d 2d  IN ( + 70 )..---
5a80: 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
5a90: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
5aa0: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
5ab0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
5ac0: 39 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 43 4f  9..SELECT - + CO
5ad0: 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 28 20  UNT( * ) FROM ( 
5ae0: 74 61 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f  tab1 AS cor0 CRO
5af0: 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 63 6f 72  SS JOIN tab0 cor
5b00: 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d  1 )..----..-9...
5b10: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
5b20: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
5b30: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
5b40: 6c 61 62 65 6c 2d 31 31 39 0d 0a 53 45 4c 45 43  label-119..SELEC
5b50: 54 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  T - + COUNT ( * 
5b60: 29 20 46 52 4f 4d 20 28 20 74 61 62 31 20 41 53  ) FROM ( tab1 AS
5b70: 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
5b80: 20 74 61 62 30 20 63 6f 72 31 20 29 0d 0a 2d 2d   tab0 cor1 )..--
5b90: 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 71 75 65 72 79 20  --..-9....query 
5ba0: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
5bb0: 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ECT * FROM tab2 
5bc0: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
5bd0: 54 20 2b 20 32 33 20 2a 20 2b 20 31 20 2a 20 2b  T + 23 * + 1 * +
5be0: 20 37 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 63   7 NOT BETWEEN c
5bf0: 6f 6c 31 20 2d 20 2d 20 38 33 20 41 4e 44 20 2b  ol1 - - 83 AND +
5c00: 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 36 39 0d 0a   + col2 + - 69..
5c10: 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
5c20: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
5c30: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
5c40: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
5c50: 2d 31 32 31 0d 0a 53 45 4c 45 43 54 20 2d 20 43  -121..SELECT - C
5c60: 4f 55 4e 54 28 20 2b 20 2d 20 63 6f 6c 30 20 29  OUNT( + - col0 )
5c70: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
5c80: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
5c90: 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..-3....skipif m
5ca0: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
5cb0: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
5cc0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 31  owsort label-121
5cd0: 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54  ..SELECT - COUNT
5ce0: 20 28 20 2b 20 2d 20 63 6f 6c 30 20 29 20 41 53   ( + - col0 ) AS
5cf0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
5d00: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
5d10: 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  3....query II ro
5d20: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
5d30: 53 54 49 4e 43 54 20 2d 20 2b 20 63 6f 6c 32 2c  STINCT - + col2,
5d40: 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52   col2 AS col2 FR
5d50: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
5d60: 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a 32 33 0d 0a  .----..-23..23..
5d70: 2d 34 30 0d 0a 34 30 0d 0a 2d 35 38 0d 0a 35 38  -40..40..-58..58
5d80: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
5d90: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
5da0: 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
5db0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
5dc0: 61 62 65 6c 2d 31 32 33 0d 0a 53 45 4c 45 43 54  abel-123..SELECT
5dd0: 20 2b 20 2d 20 28 20 2b 20 2b 20 39 20 29 20 2a   + - ( + + 9 ) *
5de0: 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 43 41   + + col1 + + CA
5df0: 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
5e00: 45 44 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41  ED ) FROM tab2 A
5e10: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
5e20: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
5e30: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
5e40: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
5e50: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
5e60: 20 6c 61 62 65 6c 2d 31 32 33 0d 0a 53 45 4c 45   label-123..SELE
5e70: 43 54 20 2b 20 2d 20 28 20 2b 20 2b 20 39 20 29  CT + - ( + + 9 )
5e80: 20 2a 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 2b 20   * + + col1 + + 
5e90: 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
5ea0: 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61  NTEGER ) FROM ta
5eb0: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
5ec0: 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
5ed0: 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  LL....query I ro
5ee0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 35 31  wsort..SELECT 51
5ef0: 20 2b 20 2b 20 28 20 28 20 63 6f 6c 30 20 29 20   + + ( ( col0 ) 
5f00: 29 20 2b 20 37 38 20 46 52 4f 4d 20 74 61 62 32  ) + 78 FROM tab2
5f10: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
5f20: 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d  OT NULL IS NULL.
5f30: 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
5f40: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
5f50: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
5f60: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
5f70: 6c 2d 31 32 35 0d 0a 53 45 4c 45 43 54 20 44 49  l-125..SELECT DI
5f80: 53 54 49 4e 43 54 20 2b 20 37 31 20 2a 20 2d 20  STINCT + 71 * - 
5f90: 28 20 2d 20 53 55 4d 28 20 41 4c 4c 20 28 20 2b  ( - SUM( ALL ( +
5fa0: 20 2b 20 32 39 20 29 20 29 20 29 20 46 52 4f 4d   + 29 ) ) ) FROM
5fb0: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
5fc0: 2d 2d 2d 0d 0a 36 31 37 37 0d 0a 0d 0a 73 6b 69  ---..6177....ski
5fd0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
5fe0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
5ff0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
6000: 6c 2d 31 32 35 0d 0a 53 45 4c 45 43 54 20 44 49  l-125..SELECT DI
6010: 53 54 49 4e 43 54 20 2b 20 37 31 20 2a 20 2d 20  STINCT + 71 * - 
6020: 28 20 2d 20 53 55 4d 20 28 20 41 4c 4c 20 28 20  ( - SUM ( ALL ( 
6030: 2b 20 2b 20 32 39 20 29 20 29 20 29 20 46 52 4f  + + 29 ) ) ) FRO
6040: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
6050: 2d 2d 2d 2d 0d 0a 36 31 37 37 0d 0a 0d 0a 6f 6e  ----..6177....on
6060: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
6070: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
6080: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
6090: 20 6c 61 62 65 6c 2d 31 32 36 0d 0a 53 45 4c 45   label-126..SELE
60a0: 43 54 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2b 20  CT - - COUNT( + 
60b0: 2b 20 33 20 29 20 2a 20 2b 20 43 4f 55 4e 54 28  + 3 ) * + COUNT(
60c0: 20 63 6f 6c 32 20 29 20 2a 20 2b 20 28 20 2d 20   col2 ) * + ( - 
60d0: 53 55 4d 28 20 44 49 53 54 49 4e 43 54 20 2b 20  SUM( DISTINCT + 
60e0: 63 6f 6c 32 20 29 20 29 20 46 52 4f 4d 20 74 61  col2 ) ) FROM ta
60f0: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
6100: 0d 0a 2d 31 30 38 39 0d 0a 0d 0a 73 6b 69 70 69  ..-1089....skipi
6110: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
6120: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
6130: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
6140: 31 32 36 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20  126..SELECT - - 
6150: 43 4f 55 4e 54 20 28 20 2b 20 2b 20 33 20 29 20  COUNT ( + + 3 ) 
6160: 2a 20 2b 20 43 4f 55 4e 54 20 28 20 63 6f 6c 32  * + COUNT ( col2
6170: 20 29 20 2a 20 2b 20 28 20 2d 20 53 55 4d 20 28   ) * + ( - SUM (
6180: 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32   DISTINCT + col2
6190: 20 29 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41   ) ) FROM tab2 A
61a0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
61b0: 30 38 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  089....query I r
61c0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
61d0: 49 53 54 49 4e 43 54 20 31 37 20 41 53 20 63 6f  ISTINCT 17 AS co
61e0: 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
61f0: 2d 2d 0d 0a 31 37 0d 0a 0d 0a 71 75 65 72 79 20  --..17....query 
6200: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
6210: 43 54 20 2b 20 38 35 20 2a 20 2b 20 2d 20 63 6f  CT + 85 * + - co
6220: 6c 31 20 41 53 20 63 6f 6c 31 2c 20 2b 20 30 20  l1 AS col1, + 0 
6230: 2b 20 2d 20 39 37 20 41 53 20 63 6f 6c 30 20 46  + - 97 AS col0 F
6240: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
6250: 2d 34 33 33 35 0d 0a 2d 39 37 0d 0a 2d 35 36 39  -4335..-97..-569
6260: 35 0d 0a 2d 39 37 0d 0a 2d 36 35 34 35 0d 0a 2d  5..-97..-6545..-
6270: 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  97....onlyif mys
6280: 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
6290: 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
62a0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
62b0: 20 6c 61 62 65 6c 2d 31 32 39 0d 0a 53 45 4c 45   label-129..SELE
62c0: 43 54 20 28 20 2b 20 34 30 20 29 20 44 49 56 20  CT ( + 40 ) DIV 
62d0: 2d 20 2d 20 31 38 20 46 52 4f 4d 20 74 61 62 31  - - 18 FROM tab1
62e0: 0d 0a 2d 2d 2d 2d 0d 0a 32 0d 0a 32 0d 0a 32 0d  ..----..2..2..2.
62f0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
6300: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
6310: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
6320: 74 20 6c 61 62 65 6c 2d 31 32 39 0d 0a 53 45 4c  t label-129..SEL
6330: 45 43 54 20 28 20 2b 20 34 30 20 29 20 2f 20 2d  ECT ( + 40 ) / -
6340: 20 2d 20 31 38 20 46 52 4f 4d 20 74 61 62 31 0d   - 18 FROM tab1.
6350: 0a 2d 2d 2d 2d 0d 0a 32 0d 0a 32 0d 0a 32 0d 0a  .----..2..2..2..
6360: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
6370: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
6380: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
6390: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 33 30 0d 0a  sort label-130..
63a0: 53 45 4c 45 43 54 20 2d 20 35 32 20 2a 20 36 38  SELECT - 52 * 68
63b0: 20 2a 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52   * COUNT( * ) FR
63c0: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
63d0: 31 30 36 30 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  10608....skipif 
63e0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
63f0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
6400: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 33  rowsort label-13
6410: 30 0d 0a 53 45 4c 45 43 54 20 2d 20 35 32 20 2a  0..SELECT - 52 *
6420: 20 36 38 20 2a 20 43 4f 55 4e 54 20 28 20 2a 20   68 * COUNT ( * 
6430: 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
6440: 2d 0d 0a 2d 31 30 36 30 38 0d 0a 0d 0a 71 75 65  -..-10608....que
6450: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
6460: 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20  LECT ALL - col2 
6470: 2a 20 2d 20 63 6f 6c 31 20 2a 20 63 6f 6c 31 20  * - col1 * col1 
6480: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
6490: 32 0d 0a 2d 2d 2d 2d 0d 0a 32 33 37 31 36 30 0d  2..----..237160.
64a0: 0a 32 36 30 33 36 32 0d 0a 35 39 38 32 33 0d 0a  .260362..59823..
64b0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
64c0: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
64d0: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
64e0: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 33 32 0d 0a  sort label-132..
64f0: 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28 20  SELECT + COUNT( 
6500: 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 29 20  DISTINCT col0 ) 
6510: 2a 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  * + - COUNT( * )
6520: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
6530: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a  b2..----..-9....
6540: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
6550: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
6560: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
6570: 61 62 65 6c 2d 31 33 32 0d 0a 53 45 4c 45 43 54  abel-132..SELECT
6580: 20 2b 20 43 4f 55 4e 54 20 28 20 44 49 53 54 49   + COUNT ( DISTI
6590: 4e 43 54 20 63 6f 6c 30 20 29 20 2a 20 2b 20 2d  NCT col0 ) * + -
65a0: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
65b0: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col2 FROM tab2..
65c0: 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 6f 6e 6c 79  ----..-9....only
65d0: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
65e0: 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20  syntax: DECIMAL 
65f0: 74 79 70 65 3a 20 44 49 56 20 66 6f 72 20 69 6e  type: DIV for in
6600: 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
6610: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
6620: 72 74 20 6c 61 62 65 6c 2d 31 33 33 0d 0a 53 45  rt label-133..SE
6630: 4c 45 43 54 20 2d 20 37 39 20 2a 20 2d 20 2b 20  LECT - 79 * - + 
6640: 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44 45  CAST( NULL AS DE
6650: 43 49 4d 41 4c 20 29 2c 20 36 20 2b 20 2b 20 28  CIMAL ), 6 + + (
6660: 20 2d 20 63 6f 6c 30 20 29 20 44 49 56 20 2b 20   - col0 ) DIV + 
6670: 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46  - col1 AS col0 F
6680: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
6690: 4e 55 4c 4c 0d 0a 32 33 0d 0a 4e 55 4c 4c 0d 0a  NULL..23..NULL..
66a0: 37 0d 0a 4e 55 4c 4c 0d 0a 39 0d 0a 0d 0a 73 6b  7..NULL..9....sk
66b0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
66c0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
66d0: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
66e0: 62 65 6c 2d 31 33 33 0d 0a 53 45 4c 45 43 54 20  bel-133..SELECT 
66f0: 2d 20 37 39 20 2a 20 2d 20 2b 20 43 41 53 54 20  - 79 * - + CAST 
6700: 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29  ( NULL AS REAL )
6710: 2c 20 36 20 2b 20 2b 20 28 20 2d 20 63 6f 6c 30  , 6 + + ( - col0
6720: 20 29 20 2f 20 2b 20 2d 20 63 6f 6c 31 20 41 53   ) / + - col1 AS
6730: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
6740: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 32 33 0d  .----..NULL..23.
6750: 0a 4e 55 4c 4c 0d 0a 37 0d 0a 4e 55 4c 4c 0d 0a  .NULL..7..NULL..
6760: 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  9....onlyif mysq
6770: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
6780: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
6790: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 33  rowsort label-13
67a0: 34 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28  4..SELECT COUNT(
67b0: 20 2d 20 63 6f 6c 30 20 29 20 63 6f 6c 32 20 46   - col0 ) col2 F
67c0: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
67d0: 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
67e0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
67f0: 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
6800: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
6810: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
6820: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
6830: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
6840: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
6850: 65 6c 2d 31 33 34 0d 0a 53 45 4c 45 43 54 20 43  el-134..SELECT C
6860: 4f 55 4e 54 20 28 20 2d 20 63 6f 6c 30 20 29 20  OUNT ( - col0 ) 
6870: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col2 FROM tab1..
6880: 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69  ----..3....onlyi
6890: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
68a0: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
68b0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
68c0: 62 65 6c 2d 31 33 35 0d 0a 53 45 4c 45 43 54 20  bel-135..SELECT 
68d0: 41 4c 4c 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b  ALL COUNT( * ) +
68e0: 20 2b 20 34 38 20 46 52 4f 4d 20 74 61 62 30 0d   + 48 FROM tab0.
68f0: 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 0d 0a 73 6b 69  .----..51....ski
6900: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
6910: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
6920: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
6930: 6c 2d 31 33 35 0d 0a 53 45 4c 45 43 54 20 41 4c  l-135..SELECT AL
6940: 4c 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20  L COUNT ( * ) + 
6950: 2b 20 34 38 20 46 52 4f 4d 20 74 61 62 30 0d 0a  + 48 FROM tab0..
6960: 2d 2d 2d 2d 0d 0a 35 31 0d 0a 0d 0a 71 75 65 72  ----..51....quer
6970: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
6980: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
6990: 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
69a0: 2b 20 28 20 2b 20 2b 20 63 6f 6c 31 20 29 20 4e  + ( + + col1 ) N
69b0: 4f 54 20 42 45 54 57 45 45 4e 20 28 20 63 6f 6c  OT BETWEEN ( col
69c0: 31 20 29 20 2a 20 2d 20 2b 20 32 20 41 4e 44 20  1 ) * - + 2 AND 
69d0: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
69e0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
69f0: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
6a00: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
6a10: 20 6c 61 62 65 6c 2d 31 33 37 0d 0a 53 45 4c 45   label-137..SELE
6a20: 43 54 20 41 4c 4c 20 2d 20 2d 20 33 30 20 2a 20  CT ALL - - 30 * 
6a30: 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  + + COUNT( * ) F
6a40: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
6a50: 0d 0a 2d 2d 2d 2d 0d 0a 39 30 0d 0a 0d 0a 73 6b  ..----..90....sk
6a60: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
6a70: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
6a80: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
6a90: 65 6c 2d 31 33 37 0d 0a 53 45 4c 45 43 54 20 41  el-137..SELECT A
6aa0: 4c 4c 20 2d 20 2d 20 33 30 20 2a 20 2b 20 2b 20  LL - - 30 * + + 
6ab0: 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d  COUNT ( * ) FROM
6ac0: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
6ad0: 2d 2d 2d 0d 0a 39 30 0d 0a 0d 0a 6f 6e 6c 79 69  ---..90....onlyi
6ae0: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
6af0: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
6b00: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
6b10: 62 65 6c 2d 31 33 38 0d 0a 53 45 4c 45 43 54 20  bel-138..SELECT 
6b20: 41 4c 4c 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  ALL - COUNT( * )
6b30: 20 2b 20 2b 20 53 55 4d 28 20 44 49 53 54 49 4e   + + SUM( DISTIN
6b40: 43 54 20 2b 20 2d 20 28 20 2d 20 63 6f 6c 31 20  CT + - ( - col1 
6b50: 29 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ) ) AS col2 FROM
6b60: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
6b70: 2d 2d 2d 0d 0a 31 30 30 0d 0a 0d 0a 73 6b 69 70  ---..100....skip
6b80: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
6b90: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
6ba0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
6bb0: 2d 31 33 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -138..SELECT ALL
6bc0: 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b   - COUNT ( * ) +
6bd0: 20 2b 20 53 55 4d 20 28 20 44 49 53 54 49 4e 43   + SUM ( DISTINC
6be0: 54 20 2b 20 2d 20 28 20 2d 20 63 6f 6c 31 20 29  T + - ( - col1 )
6bf0: 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
6c00: 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
6c10: 2d 2d 0d 0a 31 30 30 0d 0a 0d 0a 71 75 65 72 79  --..100....query
6c20: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
6c30: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
6c40: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
6c50: 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  0 WHERE NOT NULL
6c60: 20 3e 3d 20 2b 20 39 39 20 2b 20 2d 20 36 0d 0a   >= + 99 + - 6..
6c70: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
6c80: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
6c90: 2b 20 28 20 31 32 20 29 20 41 53 20 63 6f 6c 32  + ( 12 ) AS col2
6ca0: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
6cb0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 0d 0a 31 32  r0..----..12..12
6cc0: 0d 0a 31 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..12....onlyif m
6cd0: 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
6ce0: 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
6cf0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
6d00: 72 74 20 6c 61 62 65 6c 2d 31 34 31 0d 0a 53 45  rt label-141..SE
6d10: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
6d20: 2b 20 63 6f 6c 31 20 44 49 56 20 2b 20 2b 20 63  + col1 DIV + + c
6d30: 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol0 AS col2 FROM
6d40: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
6d50: 2d 2d 2d 0d 0a 30 0d 0a 35 0d 0a 0d 0a 73 6b 69  ---..0..5....ski
6d60: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
6d70: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
6d80: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
6d90: 6c 2d 31 34 31 0d 0a 53 45 4c 45 43 54 20 44 49  l-141..SELECT DI
6da0: 53 54 49 4e 43 54 20 2b 20 2b 20 63 6f 6c 31 20  STINCT + + col1 
6db0: 2f 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f  / + + col0 AS co
6dc0: 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
6dd0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 35  cor0..----..0..5
6de0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
6df0: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
6e00: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
6e10: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 34 32  owsort label-142
6e20: 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54  ..SELECT + COUNT
6e30: 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ( * ) AS col2 FR
6e40: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
6e50: 57 48 45 52 45 20 2b 20 63 6f 6c 32 20 2a 20 63  WHERE + col2 * c
6e60: 6f 6c 32 20 2f 20 2b 20 2b 20 63 6f 6c 32 20 49  ol2 / + + col2 I
6e70: 4e 20 28 20 2d 20 2b 20 63 6f 6c 32 20 2b 20 2b  N ( - + col2 + +
6e80: 20 2b 20 63 6f 6c 32 20 2d 20 2b 20 2d 20 63 6f   + col2 - + - co
6e90: 6c 30 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d  l0 + col1 )..---
6ea0: 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..0....skipif m
6eb0: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
6ec0: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
6ed0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 34 32  owsort label-142
6ee0: 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54  ..SELECT + COUNT
6ef0: 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46   ( * ) AS col2 F
6f00: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
6f10: 20 57 48 45 52 45 20 2b 20 63 6f 6c 32 20 2a 20   WHERE + col2 * 
6f20: 63 6f 6c 32 20 2f 20 2b 20 2b 20 63 6f 6c 32 20  col2 / + + col2 
6f30: 49 4e 20 28 20 2d 20 2b 20 63 6f 6c 32 20 2b 20  IN ( - + col2 + 
6f40: 2b 20 2b 20 63 6f 6c 32 20 2d 20 2b 20 2d 20 63  + + col2 - + - c
6f50: 6f 6c 30 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d  ol0 + col1 )..--
6f60: 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  --..0....onlyif 
6f70: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
6f80: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
6f90: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
6fa0: 6c 2d 31 34 33 0d 0a 53 45 4c 45 43 54 20 2b 20  l-143..SELECT + 
6fb0: 2b 20 37 32 20 2d 20 2d 20 43 4f 55 4e 54 28 20  + 72 - - COUNT( 
6fc0: 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  * ) FROM tab2 co
6fd0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 35 0d 0a 0d 0a  r0..----..75....
6fe0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
6ff0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
7000: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
7010: 61 62 65 6c 2d 31 34 33 0d 0a 53 45 4c 45 43 54  abel-143..SELECT
7020: 20 2b 20 2b 20 37 32 20 2d 20 2d 20 43 4f 55 4e   + + 72 - - COUN
7030: 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  T ( * ) FROM tab
7040: 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 35  2 cor0..----..75
7050: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
7060: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 39 39  ort..SELECT + 99
7070: 20 2a 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 2d 20   * - col2 * - - 
7080: 63 6f 6c 30 20 2b 20 28 20 2d 20 63 6f 6c 31 20  col0 + ( - col1 
7090: 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
70a0: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
70b0: 2d 0d 0a 2d 36 39 38 37 36 0d 0a 2d 38 36 31 35  -..-69876..-8615
70c0: 31 0d 0a 2d 39 35 30 36 39 38 0d 0a 0d 0a 71 75  1..-950698....qu
70d0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
70e0: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
70f0: 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 2d 20 39 33   - col0 * + - 93
7100: 20 2d 20 2b 20 63 6f 6c 31 20 2b 20 63 6f 6c 32   - + col1 + col2
7110: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
7120: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
7130: 0d 0a 2d 34 36 36 31 0d 0a 2d 37 38 35 31 0d 0a  ..-4661..-7851..
7140: 2d 38 34 34 32 0d 0a 0d 0a 71 75 65 72 79 20 49  -8442....query I
7150: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
7160: 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 2d   DISTINCT col1 -
7170: 20 38 39 20 46 52 4f 4d 20 74 61 62 30 20 41 53   89 FROM tab0 AS
7180: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 38   cor0..----..-68
7190: 0d 0a 2d 38 0d 0a 2d 38 38 0d 0a 0d 0a 6f 6e 6c  ..-8..-88....onl
71a0: 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
71b0: 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
71c0: 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
71d0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 34  rowsort label-14
71e0: 37 0d 0a 53 45 4c 45 43 54 20 38 20 44 49 56 20  7..SELECT 8 DIV 
71f0: 28 20 2d 20 32 31 20 29 20 2b 20 63 6f 6c 31 20  ( - 21 ) + col1 
7200: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
7210: 32 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 36 37 0d  2..----..51..67.
7220: 0a 37 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .77....skipif my
7230: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
7240: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
7250: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 34 37 0d  wsort label-147.
7260: 0a 53 45 4c 45 43 54 20 38 20 2f 20 28 20 2d 20  .SELECT 8 / ( - 
7270: 32 31 20 29 20 2b 20 63 6f 6c 31 20 41 53 20 63  21 ) + col1 AS c
7280: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
7290: 2d 2d 2d 0d 0a 35 31 0d 0a 36 37 0d 0a 37 37 0d  ---..51..67..77.
72a0: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
72b0: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
72c0: 20 63 6f 6c 32 20 2b 20 2b 20 2b 20 37 35 20 46   col2 + + + 75 F
72d0: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
72e0: 2d 32 34 0d 0a 32 38 0d 0a 36 35 0d 0a 0d 0a 6f  -24..28..65....o
72f0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
7300: 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
7310: 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
7320: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
7330: 2d 31 34 39 0d 0a 53 45 4c 45 43 54 20 2b 20 63  -149..SELECT + c
7340: 6f 6c 32 20 2b 20 2d 20 2b 20 63 6f 6c 31 20 41  ol2 + - + col1 A
7350: 53 20 63 6f 6c 32 2c 20 2d 20 43 41 53 54 28 20  S col2, - CAST( 
7360: 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
7370: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
7380: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 31 0d 0a 4e 55  b1..----..21..NU
7390: 4c 4c 0d 0a 35 34 0d 0a 4e 55 4c 4c 0d 0a 38 32  LL..54..NULL..82
73a0: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
73b0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
73c0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
73d0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
73e0: 31 34 39 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  149..SELECT + co
73f0: 6c 32 20 2b 20 2d 20 2b 20 63 6f 6c 31 20 41 53  l2 + - + col1 AS
7400: 20 63 6f 6c 32 2c 20 2d 20 43 41 53 54 20 28 20   col2, - CAST ( 
7410: 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
7420: 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
7430: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 31 0d 0a 4e  ab1..----..21..N
7440: 55 4c 4c 0d 0a 35 34 0d 0a 4e 55 4c 4c 0d 0a 38  ULL..54..NULL..8
7450: 32 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69  2..NULL....onlyi
7460: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
7470: 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
7480: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
7490: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 35 30 0d  wsort label-150.
74a0: 0a 53 45 4c 45 43 54 20 2b 20 28 20 2b 20 34 31  .SELECT + ( + 41
74b0: 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45   ) FROM tab1 WHE
74c0: 52 45 20 2d 20 43 41 53 54 28 20 2b 20 2b 20 39  RE - CAST( + + 9
74d0: 35 20 41 53 20 53 49 47 4e 45 44 20 29 20 3d 20  5 AS SIGNED ) = 
74e0: 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a  ( NULL )..----..
74f0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
7500: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
7510: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
7520: 20 6c 61 62 65 6c 2d 31 35 30 0d 0a 53 45 4c 45   label-150..SELE
7530: 43 54 20 2b 20 28 20 2b 20 34 31 20 29 20 46 52  CT + ( + 41 ) FR
7540: 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 2d 20  OM tab1 WHERE - 
7550: 43 41 53 54 20 28 20 2b 20 2b 20 39 35 20 41 53  CAST ( + + 95 AS
7560: 20 49 4e 54 45 47 45 52 20 29 20 3d 20 28 20 4e   INTEGER ) = ( N
7570: 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f  ULL )..----....o
7580: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
7590: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
75a0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
75b0: 74 20 6c 61 62 65 6c 2d 31 35 31 0d 0a 53 45 4c  t label-151..SEL
75c0: 45 43 54 20 28 20 28 20 2b 20 43 4f 55 4e 54 28  ECT ( ( + COUNT(
75d0: 20 2a 20 29 20 29 20 29 20 2b 20 37 39 20 41 53   * ) ) ) + 79 AS
75e0: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
75f0: 0a 2d 2d 2d 2d 0d 0a 38 32 0d 0a 0d 0a 73 6b 69  .----..82....ski
7600: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
7610: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
7620: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
7630: 6c 2d 31 35 31 0d 0a 53 45 4c 45 43 54 20 28 20  l-151..SELECT ( 
7640: 28 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ( + COUNT ( * ) 
7650: 29 20 29 20 2b 20 37 39 20 41 53 20 63 6f 6c 30  ) ) + 79 AS col0
7660: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
7670: 0d 0a 38 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..82....onlyif m
7680: 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
7690: 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
76a0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
76b0: 72 74 20 6c 61 62 65 6c 2d 31 35 32 0d 0a 53 45  rt label-152..SE
76c0: 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20 44 49  LECT ALL col2 DI
76d0: 56 20 2b 20 31 35 20 2d 20 2b 20 36 31 20 41 53  V + 15 - + 61 AS
76e0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d   col2 FROM tab2.
76f0: 0a 2d 2d 2d 2d 0d 0a 2d 35 38 0d 0a 2d 35 39 0d  .----..-58..-59.
7700: 0a 2d 36 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-60....skipif m
7710: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
7720: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
7730: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 35 32  owsort label-152
7740: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c  ..SELECT ALL col
7750: 32 20 2f 20 2b 20 31 35 20 2d 20 2b 20 36 31 20  2 / + 15 - + 61 
7760: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
7770: 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 38 0d 0a 2d 35  2..----..-58..-5
7780: 39 0d 0a 2d 36 30 0d 0a 0d 0a 71 75 65 72 79 20  9..-60....query 
7790: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
77a0: 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 2a 20 2d  T ALL - col2 * -
77b0: 20 35 30 20 2a 20 63 6f 6c 31 20 46 52 4f 4d 20   50 * col1 FROM 
77c0: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 37 35  tab1..----..1475
77d0: 30 0d 0a 31 35 39 38 30 30 0d 0a 36 37 32 30 30  0..159800..67200
77e0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
77f0: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
7800: 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
7810: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
7820: 20 6c 61 62 65 6c 2d 31 35 34 0d 0a 53 45 4c 45   label-154..SELE
7830: 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
7840: 62 32 20 57 48 45 52 45 20 4e 55 4c 4c 20 42 45  b2 WHERE NULL BE
7850: 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 43  TWEEN NULL AND C
7860: 41 53 54 28 20 63 6f 6c 31 20 41 53 20 53 49 47  AST( col1 AS SIG
7870: 4e 45 44 20 29 20 2a 20 32 37 0d 0a 2d 2d 2d 2d  NED ) * 27..----
7880: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
7890: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
78a0: 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  e..query III row
78b0: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 35 34 0d 0a  sort label-154..
78c0: 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
78d0: 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 55 4c  M tab2 WHERE NUL
78e0: 4c 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41  L BETWEEN NULL A
78f0: 4e 44 20 43 41 53 54 20 28 20 63 6f 6c 31 20 41  ND CAST ( col1 A
7900: 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 32 37  S INTEGER ) * 27
7910: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
7920: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
7930: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
7940: 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72  e: ..query III r
7950: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 35 35  owsort label-155
7960: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
7970: 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48  T * FROM tab0 WH
7980: 45 52 45 20 4e 4f 54 20 28 20 4e 4f 54 20 43 41  ERE NOT ( NOT CA
7990: 53 54 28 20 63 6f 6c 31 20 41 53 20 53 49 47 4e  ST( col1 AS SIGN
79a0: 45 44 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  ED ) IS NOT NULL
79b0: 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75   )..----..9 valu
79c0: 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34  es hashing to c4
79d0: 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34  b42765dff94eaaa4
79e0: 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a  6040e537fb43b7..
79f0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
7a00: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
7a10: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
7a20: 72 74 20 6c 61 62 65 6c 2d 31 35 35 0d 0a 53 45  rt label-155..SE
7a30: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
7a40: 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
7a50: 4e 4f 54 20 28 20 4e 4f 54 20 43 41 53 54 20 28  NOT ( NOT CAST (
7a60: 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45 52   col1 AS INTEGER
7a70: 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 20 29   ) IS NOT NULL )
7a80: 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
7a90: 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34   hashing to c4b4
7aa0: 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30  2765dff94eaaa460
7ab0: 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a  40e537fb43b7....
7ac0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
7ad0: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
7ae0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
7af0: 72 74 20 6c 61 62 65 6c 2d 31 35 36 0d 0a 53 45  rt label-156..SE
7b00: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
7b10: 4d 49 4e 28 20 41 4c 4c 20 63 6f 6c 30 20 29 20  MIN( ALL col0 ) 
7b20: 2a 20 37 34 20 46 52 4f 4d 20 74 61 62 32 0d 0a  * 74 FROM tab2..
7b30: 2d 2d 2d 2d 0d 0a 33 34 30 34 0d 0a 0d 0a 73 6b  ----..3404....sk
7b40: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
7b50: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
7b60: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
7b70: 65 6c 2d 31 35 36 0d 0a 53 45 4c 45 43 54 20 44  el-156..SELECT D
7b80: 49 53 54 49 4e 43 54 20 2b 20 4d 49 4e 20 28 20  ISTINCT + MIN ( 
7b90: 41 4c 4c 20 63 6f 6c 30 20 29 20 2a 20 37 34 20  ALL col0 ) * 74 
7ba0: 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
7bb0: 0a 33 34 30 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .3404....onlyif 
7bc0: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
7bd0: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
7be0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
7bf0: 6c 2d 31 35 37 0d 0a 53 45 4c 45 43 54 20 2d 20  l-157..SELECT - 
7c00: 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  + COUNT( * ) AS 
7c10: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
7c20: 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
7c30: 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c   col2 IS NOT NUL
7c40: 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b  L..----..0....sk
7c50: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
7c60: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
7c70: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
7c80: 65 6c 2d 31 35 37 0d 0a 53 45 4c 45 43 54 20 2d  el-157..SELECT -
7c90: 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41   + COUNT ( * ) A
7ca0: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
7cb0: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
7cc0: 4f 54 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e  OT col2 IS NOT N
7cd0: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  ULL..----..0....
7ce0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
7cf0: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
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 35 38 0d 0a 53 45  rt label-158..SE
7d20: 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 4d 41 58  LECT ALL - - MAX
7d30: 28 20 41 4c 4c 20 2b 20 2d 20 63 6f 6c 31 20 29  ( ALL + - col1 )
7d40: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
7d50: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
7d60: 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  5....skipif mysq
7d70: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
7d80: 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
7d90: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
7da0: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
7db0: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
7dc0: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
7dd0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
7de0: 65 6c 2d 31 35 38 0d 0a 53 45 4c 45 43 54 20 41  el-158..SELECT A
7df0: 4c 4c 20 2d 20 2d 20 4d 41 58 20 28 20 41 4c 4c  LL - - MAX ( ALL
7e00: 20 2b 20 2d 20 63 6f 6c 31 20 29 20 63 6f 6c 30   + - col1 ) col0
7e10: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
7e20: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 0d 0a 0d 0a  r0..----..-5....
7e30: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
7e40: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
7e50: 20 2d 20 2d 20 28 20 34 39 20 29 20 46 52 4f 4d   - - ( 49 ) FROM
7e60: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
7e70: 2d 2d 2d 0d 0a 34 39 0d 0a 0d 0a 71 75 65 72 79  ---..49....query
7e80: 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
7e90: 45 43 54 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31  ECT col0 AS col1
7ea0: 2c 20 36 30 20 2b 20 2d 20 2b 20 63 6f 6c 31 20  , 60 + - + col1 
7eb0: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
7ec0: 0a 31 35 0d 0a 2d 32 31 0d 0a 38 37 0d 0a 33 39  .15..-21..87..39
7ed0: 0d 0a 39 37 0d 0a 35 39 0d 0a 0d 0a 71 75 65 72  ..97..59....quer
7ee0: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
7ef0: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a  ELECT DISTINCT *
7f00: 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
7f10: 20 4e 55 4c 4c 20 3e 3d 20 63 6f 6c 32 0d 0a 2d   NULL >= col2..-
7f20: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
7f30: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
7f40: 49 53 54 49 4e 43 54 20 2d 20 35 38 20 41 53 20  ISTINCT - 58 AS 
7f50: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
7f60: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  S cor0..----..-5
7f70: 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  8....query I row
7f80: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63  sort..SELECT - c
7f90: 6f 6c 30 20 2a 20 2d 20 28 20 2b 20 2b 20 63 6f  ol0 * - ( + + co
7fa0: 6c 32 20 29 20 2b 20 2d 20 35 30 20 41 53 20 63  l2 ) + - 50 AS c
7fb0: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
7fc0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 30   cor0..----..100
7fd0: 38 0d 0a 32 35 31 30 0d 0a 34 33 30 30 0d 0a 0d  8..2510..4300...
7fe0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
7ff0: 0d 0a 53 45 4c 45 43 54 20 35 34 20 2b 20 2d 20  ..SELECT 54 + - 
8000: 36 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  62 FROM tab2..--
8010: 2d 2d 0d 0a 2d 38 0d 0a 2d 38 0d 0a 2d 38 0d 0a  --..-8..-8..-8..
8020: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
8030: 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32  t..SELECT + col2
8040: 20 2a 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 2d 20   * + + col1 + - 
8050: 38 36 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  86 FROM tab0..--
8060: 2d 2d 0d 0a 31 32 34 0d 0a 31 33 0d 0a 33 37 32  --..124..13..372
8070: 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  1....query I row
8080: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
8090: 31 20 2b 20 2d 20 28 20 63 6f 6c 30 20 29 20 46  1 + - ( col0 ) F
80a0: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
80b0: 2d 38 0d 0a 31 33 0d 0a 35 0d 0a 0d 0a 6f 6e 6c  -8..13..5....onl
80c0: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
80d0: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
80e0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
80f0: 6c 61 62 65 6c 2d 31 36 37 0d 0a 53 45 4c 45 43  label-167..SELEC
8100: 54 20 44 49 53 54 49 4e 43 54 20 4d 41 58 28 20  T DISTINCT MAX( 
8110: 2b 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63 6f  + + col0 ) AS co
8120: 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l0 FROM tab1..--
8130: 2d 2d 0d 0a 39 31 0d 0a 0d 0a 73 6b 69 70 69 66  --..91....skipif
8140: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
8150: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
8160: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
8170: 36 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  67..SELECT DISTI
8180: 4e 43 54 20 4d 41 58 20 28 20 2b 20 2b 20 63 6f  NCT MAX ( + + co
8190: 6c 30 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  l0 ) AS col0 FRO
81a0: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 39 31  M tab1..----..91
81b0: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
81c0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
81d0: 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 32 20 2a 20  col0 * - col2 * 
81e0: 2b 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 30 20  + col0 * - col0 
81f0: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
8200: 0a 31 35 38 36 32 35 0d 0a 36 35 38 35 30 33 30  .158625..6585030
8210: 0d 0a 39 30 33 35 34 36 32 37 0d 0a 0d 0a 71 75  ..90354627....qu
8220: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
8230: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
8240: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
8250: 57 48 45 52 45 20 28 20 2b 20 2b 20 63 6f 6c 30  WHERE ( + + col0
8260: 20 29 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2d   ) NOT BETWEEN -
8270: 20 2b 20 35 37 20 41 4e 44 20 4e 55 4c 4c 0d 0a   + 57 AND NULL..
8280: 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  ----....skipif p
8290: 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
82a0: 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
82b0: 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
82c0: 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
82d0: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
82e0: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
82f0: 2b 20 63 6f 6c 31 2c 20 2d 20 37 30 20 63 6f 6c  + col1, - 70 col
8300: 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
8310: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 0d 0a  or0..----..-14..
8320: 2d 37 30 0d 0a 2d 34 37 0d 0a 2d 37 30 0d 0a 2d  -70..-47..-70..-
8330: 35 0d 0a 2d 37 30 0d 0a 0d 0a 71 75 65 72 79 20  5..-70....query 
8340: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
8350: 54 20 44 49 53 54 49 4e 43 54 20 2d 20 38 20 2b  T DISTINCT - 8 +
8360: 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   - col2 FROM tab
8370: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
8380: 0a 2d 31 30 34 0d 0a 2d 36 37 0d 0a 2d 37 36 0d  .-104..-67..-76.
8390: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
83a0: 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 63  rt..SELECT - + c
83b0: 6f 6c 30 20 2a 20 2b 20 2b 20 63 6f 6c 30 20 2d  ol0 * + + col0 -
83c0: 20 2d 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74   - - col0 FROM t
83d0: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
83e0: 2d 0d 0a 2d 32 34 30 0d 0a 2d 37 36 35 36 0d 0a  -..-240..-7656..
83f0: 2d 39 35 30 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -9506....onlyif 
8400: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
8410: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
8420: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
8430: 6c 2d 31 37 33 0d 0a 53 45 4c 45 43 54 20 2d 20  l-173..SELECT - 
8440: 2b 20 28 20 2d 20 2d 20 4d 49 4e 28 20 41 4c 4c  + ( - - MIN( ALL
8450: 20 2b 20 2d 20 63 6f 6c 31 20 29 20 29 20 46 52   + - col1 ) ) FR
8460: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
8470: 0a 2d 2d 2d 2d 0d 0a 37 37 0d 0a 0d 0a 73 6b 69  .----..77....ski
8480: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
8490: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
84a0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
84b0: 6c 2d 31 37 33 0d 0a 53 45 4c 45 43 54 20 2d 20  l-173..SELECT - 
84c0: 2b 20 28 20 2d 20 2d 20 4d 49 4e 20 28 20 41 4c  + ( - - MIN ( AL
84d0: 4c 20 2b 20 2d 20 63 6f 6c 31 20 29 20 29 20 46  L + - col1 ) ) F
84e0: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
84f0: 0d 0a 2d 2d 2d 2d 0d 0a 37 37 0d 0a 0d 0a 71 75  ..----..77....qu
8500: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
8510: 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 30  ELECT ALL - col0
8520: 20 2b 20 2b 20 2b 20 37 32 20 2a 20 2b 20 63 6f   + + + 72 * + co
8530: 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
8540: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35 0d  cor0..----..-25.
8550: 0a 31 34 32 35 0d 0a 35 38 31 37 0d 0a 0d 0a 71  .1425..5817....q
8560: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
8570: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
8580: 2b 20 33 39 20 2d 20 2d 20 2b 20 63 6f 6c 31 20  + 39 - - + col1 
8590: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
85a0: 30 0d 0a 2d 2d 2d 2d 0d 0a 34 34 0d 0a 35 33 0d  0..----..44..53.
85b0: 0a 38 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .86....query I r
85c0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
85d0: 4c 4c 20 2d 20 28 20 2d 20 63 6f 6c 32 20 29 20  LL - ( - col2 ) 
85e0: 2a 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c  * + col1 + - col
85f0: 31 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 2b 20 63  1 + col0 * - + c
8600: 6f 6c 31 20 2b 20 2b 20 63 6f 6c 30 20 2b 20 2b  ol1 + + col0 + +
8610: 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 30   + col0 * - col0
8620: 20 2b 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20 63   + + + col0 AS c
8630: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
8640: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 32   cor0..----..-32
8650: 34 38 0d 0a 2d 35 38 39 33 0d 0a 2d 36 36 38 31  48..-5893..-6681
8660: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
8670: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63  sort..SELECT + c
8680: 6f 6c 31 20 41 53 20 63 6f 6c 31 2c 20 63 6f 6c  ol1 AS col1, col
8690: 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  2 AS col2 FROM t
86a0: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
86b0: 2d 0d 0a 35 31 0d 0a 32 33 0d 0a 36 37 0d 0a 35  -..51..23..67..5
86c0: 38 0d 0a 37 37 0d 0a 34 30 0d 0a 0d 0a 6f 6e 6c  8..77..40....onl
86d0: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
86e0: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
86f0: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
8700: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
8710: 37 38 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 28  78..SELECT CAST(
8720: 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
8730: 29 20 2d 20 63 6f 6c 32 2c 20 39 34 20 41 53 20  ) - col2, 94 AS 
8740: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
8750: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
8760: 4c 4c 0d 0a 39 34 0d 0a 4e 55 4c 4c 0d 0a 39 34  LL..94..NULL..94
8770: 0d 0a 4e 55 4c 4c 0d 0a 39 34 0d 0a 0d 0a 73 6b  ..NULL..94....sk
8780: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
8790: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
87a0: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
87b0: 62 65 6c 2d 31 37 38 0d 0a 53 45 4c 45 43 54 20  bel-178..SELECT 
87c0: 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
87d0: 4e 54 45 47 45 52 20 29 20 2d 20 63 6f 6c 32 2c  NTEGER ) - col2,
87e0: 20 39 34 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   94 AS col1 FROM
87f0: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
8800: 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 39 34 0d 0a 4e  ---..NULL..94..N
8810: 55 4c 4c 0d 0a 39 34 0d 0a 4e 55 4c 4c 0d 0a 39  ULL..94..NULL..9
8820: 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  4....onlyif mysq
8830: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
8840: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
8850: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37  rowsort label-17
8860: 39 0d 0a 53 45 4c 45 43 54 20 2b 20 32 39 20 2a  9..SELECT + 29 *
8870: 20 2d 20 53 55 4d 28 20 44 49 53 54 49 4e 43 54   - SUM( DISTINCT
8880: 20 2b 20 34 37 20 29 20 2b 20 39 39 20 46 52 4f   + 47 ) + 99 FRO
8890: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 43  M tab2 AS cor0 C
88a0: 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20 63  ROSS JOIN tab1 c
88b0: 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 36 34  or1..----..-1264
88c0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
88d0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
88e0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
88f0: 72 74 20 6c 61 62 65 6c 2d 31 37 39 0d 0a 53 45  rt label-179..SE
8900: 4c 45 43 54 20 2b 20 32 39 20 2a 20 2d 20 53 55  LECT + 29 * - SU
8910: 4d 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20 34  M ( DISTINCT + 4
8920: 37 20 29 20 2b 20 39 39 20 46 52 4f 4d 20 74 61  7 ) + 99 FROM ta
8930: 62 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53  b2 AS cor0 CROSS
8940: 20 4a 4f 49 4e 20 74 61 62 31 20 63 6f 72 31 0d   JOIN tab1 cor1.
8950: 0a 2d 2d 2d 2d 0d 0a 2d 31 32 36 34 0d 0a 0d 0a  .----..-1264....
8960: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
8970: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
8980: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
8990: 72 74 20 6c 61 62 65 6c 2d 31 38 30 0d 0a 53 45  rt label-180..SE
89a0: 4c 45 43 54 20 2d 20 2b 20 28 20 36 32 20 29 20  LECT - + ( 62 ) 
89b0: 2b 20 2d 20 28 20 2d 20 39 30 20 29 20 2b 20 2d  + - ( - 90 ) + -
89c0: 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2d 20   COUNT( * ) * - 
89d0: 2d 20 53 55 4d 28 20 41 4c 4c 20 2d 20 63 6f 6c  - SUM( ALL - col
89e0: 30 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  0 ) col2 FROM ta
89f0: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
8a00: 0d 0a 37 30 39 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..709....skipif 
8a10: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
8a20: 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70  atible..skipif p
8a30: 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
8a40: 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
8a50: 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
8a60: 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
8a70: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
8a80: 20 6c 61 62 65 6c 2d 31 38 30 0d 0a 53 45 4c 45   label-180..SELE
8a90: 43 54 20 2d 20 2b 20 28 20 36 32 20 29 20 2b 20  CT - + ( 62 ) + 
8aa0: 2d 20 28 20 2d 20 39 30 20 29 20 2b 20 2d 20 43  - ( - 90 ) + - C
8ab0: 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20 2d  OUNT ( * ) * - -
8ac0: 20 53 55 4d 20 28 20 41 4c 4c 20 2d 20 63 6f 6c   SUM ( ALL - col
8ad0: 30 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  0 ) col2 FROM ta
8ae0: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
8af0: 0d 0a 37 30 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..709....onlyif 
8b00: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
8b10: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
8b20: 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
8b30: 65 6c 2d 31 38 31 0d 0a 53 45 4c 45 43 54 20 41  el-181..SELECT A
8b40: 4c 4c 20 53 55 4d 28 20 44 49 53 54 49 4e 43 54  LL SUM( DISTINCT
8b50: 20 2b 20 32 30 20 29 20 2a 20 2d 20 43 4f 55 4e   + 20 ) * - COUN
8b60: 54 28 20 2a 20 29 20 2b 20 2b 20 53 55 4d 28 20  T( * ) + + SUM( 
8b70: 2d 20 38 20 29 2c 20 39 35 20 63 6f 6c 32 20 46  - 8 ), 95 col2 F
8b80: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
8b90: 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 34 0d 0a 39 35 0d  ..----..-84..95.
8ba0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
8bb0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
8bc0: 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
8bd0: 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
8be0: 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
8bf0: 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
8c00: 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
8c10: 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
8c20: 6c 2d 31 38 31 0d 0a 53 45 4c 45 43 54 20 41 4c  l-181..SELECT AL
8c30: 4c 20 53 55 4d 20 28 20 44 49 53 54 49 4e 43 54  L SUM ( DISTINCT
8c40: 20 2b 20 32 30 20 29 20 2a 20 2d 20 43 4f 55 4e   + 20 ) * - COUN
8c50: 54 20 28 20 2a 20 29 20 2b 20 2b 20 53 55 4d 20  T ( * ) + + SUM 
8c60: 28 20 2d 20 38 20 29 2c 20 39 35 20 63 6f 6c 32  ( - 8 ), 95 col2
8c70: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
8c80: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 34 0d 0a 39  r0..----..-84..9
8c90: 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  5....onlyif mysq
8ca0: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
8cb0: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
8cc0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 38  rowsort label-18
8cd0: 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  2..SELECT DISTIN
8ce0: 43 54 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20  CT + - COUNT( * 
8cf0: 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  ) col1 FROM tab1
8d00: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 63   AS cor0 WHERE c
8d10: 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ol0 IS NULL..---
8d20: 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..0....skipif m
8d30: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
8d40: 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
8d50: 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
8d60: 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
8d70: 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
8d80: 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
8d90: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
8da0: 6c 61 62 65 6c 2d 31 38 32 0d 0a 53 45 4c 45 43  label-182..SELEC
8db0: 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 43  T DISTINCT + - C
8dc0: 4f 55 4e 54 20 28 20 2a 20 29 20 63 6f 6c 31 20  OUNT ( * ) col1 
8dd0: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
8de0: 30 20 57 48 45 52 45 20 63 6f 6c 30 20 49 53 20  0 WHERE col0 IS 
8df0: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  NULL..----..0...
8e00: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
8e10: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
8e20: 54 20 2d 20 37 35 20 2b 20 2b 20 37 20 46 52 4f  T - 75 + + 7 FRO
8e30: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
8e40: 2d 2d 2d 2d 0d 0a 2d 36 38 0d 0a 0d 0a 71 75 65  ----..-68....que
8e50: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
8e60: 4c 45 43 54 20 2b 20 2b 20 63 6f 6c 31 20 46 52  LECT + + col1 FR
8e70: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
8e80: 57 48 45 52 45 20 63 6f 6c 30 20 3d 20 4e 55 4c  WHERE col0 = NUL
8e90: 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
8ea0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
8eb0: 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 35 39  CT DISTINCT + 59
8ec0: 20 2a 20 2d 20 2d 20 28 20 2b 20 2d 20 28 20 2b   * - - ( + - ( +
8ed0: 20 39 31 20 29 20 29 20 41 53 20 63 6f 6c 32 20   91 ) ) AS col2 
8ee0: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
8ef0: 0a 2d 35 33 36 39 0d 0a 0d 0a 6f 6e 6c 79 69 66  .-5369....onlyif
8f00: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
8f10: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
8f20: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
8f30: 65 6c 2d 31 38 36 0d 0a 53 45 4c 45 43 54 20 44  el-186..SELECT D
8f40: 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 28 20 2a  ISTINCT COUNT( *
8f50: 20 29 20 2a 20 2b 20 39 33 20 46 52 4f 4d 20 74   ) * + 93 FROM t
8f60: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 37 39 0d 0a  ab0..----..279..
8f70: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
8f80: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
8f90: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
8fa0: 20 6c 61 62 65 6c 2d 31 38 36 0d 0a 53 45 4c 45   label-186..SELE
8fb0: 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e  CT DISTINCT COUN
8fc0: 54 20 28 20 2a 20 29 20 2a 20 2b 20 39 33 20 46  T ( * ) * + 93 F
8fd0: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
8fe0: 32 37 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  279....onlyif my
8ff0: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
9000: 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e  x: aggregate syn
9010: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
9020: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
9030: 6f 72 74 20 6c 61 62 65 6c 2d 31 38 37 0d 0a 53  ort label-187..S
9040: 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 41 53 54  ELECT ALL - CAST
9050: 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
9060: 20 29 20 2a 20 2b 20 4d 49 4e 28 20 2d 20 63 6f   ) * + MIN( - co
9070: 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a  l1 ) FROM tab1..
9080: 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  ----..NULL....sk
9090: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
90a0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
90b0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
90c0: 65 6c 2d 31 38 37 0d 0a 53 45 4c 45 43 54 20 41  el-187..SELECT A
90d0: 4c 4c 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c  LL - CAST ( NULL
90e0: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20   AS INTEGER ) * 
90f0: 2b 20 4d 49 4e 20 28 20 2d 20 63 6f 6c 31 20 29  + MIN ( - col1 )
9100: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
9110: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20  ..NULL....query 
9120: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
9130: 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ECT * FROM tab2 
9140: 57 48 45 52 45 20 4e 4f 54 20 2d 20 2b 20 63 6f  WHERE NOT - + co
9150: 6c 32 20 3c 3d 20 2b 20 63 6f 6c 30 0d 0a 2d 2d  l2 <= + col0..--
9160: 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
9170: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
9180: 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20 41 53  STINCT + col0 AS
9190: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
91a0: 57 48 45 52 45 20 4e 55 4c 4c 20 42 45 54 57 45  WHERE NULL BETWE
91b0: 45 4e 20 2b 20 63 6f 6c 30 20 41 4e 44 20 2b 20  EN + col0 AND + 
91c0: 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  col0..----....on
91d0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
91e0: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
91f0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
9200: 20 6c 61 62 65 6c 2d 31 39 30 0d 0a 53 45 4c 45   label-190..SELE
9210: 43 54 20 41 4c 4c 20 2b 20 53 55 4d 28 20 63 6f  CT ALL + SUM( co
9220: 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57  l1 ) FROM tab1 W
9230: 48 45 52 45 20 2d 20 63 6f 6c 31 20 2d 20 63 6f  HERE - col1 - co
9240: 6c 30 20 2d 20 2b 20 2d 20 36 39 20 2b 20 63 6f  l0 - + - 69 + co
9250: 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l2 IS NULL..----
9260: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
9270: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
9280: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
9290: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
92a0: 39 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  90..SELECT ALL +
92b0: 20 53 55 4d 20 28 20 63 6f 6c 31 20 29 20 46 52   SUM ( col1 ) FR
92c0: 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 2d 20  OM tab1 WHERE - 
92d0: 63 6f 6c 31 20 2d 20 63 6f 6c 30 20 2d 20 2b 20  col1 - col0 - + 
92e0: 2d 20 36 39 20 2b 20 63 6f 6c 32 20 49 53 20 4e  - 69 + col2 IS N
92f0: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ULL..----..NULL.
9300: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
9310: 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 2d  rt..SELECT + ( -
9320: 20 28 20 2b 20 32 30 20 29 20 29 20 41 53 20 63   ( + 20 ) ) AS c
9330: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
9340: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30   cor0..----..-20
9350: 0d 0a 2d 32 30 0d 0a 2d 32 30 0d 0a 0d 0a 73 6b  ..-20..-20....sk
9360: 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
9370: 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
9380: 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
9390: 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
93a0: 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
93b0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
93c0: 49 53 54 49 4e 43 54 20 2d 20 33 35 20 2a 20 2d  ISTINCT - 35 * -
93d0: 20 63 6f 6c 32 20 2a 20 2b 20 28 20 63 6f 6c 30   col2 * + ( col0
93e0: 20 29 20 2b 20 2b 20 63 6f 6c 30 20 63 6f 6c 31   ) + + col0 col1
93f0: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
9400: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 32 33 32 35  r0..----..152325
9410: 0d 0a 33 37 30 37 36 0d 0a 38 39 36 36 34 0d 0a  ..37076..89664..
9420: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
9430: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
9440: 4e 43 54 20 63 6f 6c 32 2c 20 2d 20 63 6f 6c 31  NCT col2, - col1
9450: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
9460: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 2d 35  r0..----..59..-5
9470: 0d 0a 36 38 0d 0a 2d 34 37 0d 0a 39 36 0d 0a 2d  ..68..-47..96..-
9480: 31 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  14....query I ro
9490: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
94a0: 2d 20 31 31 20 2b 20 2d 20 31 35 20 46 52 4f 4d  - 11 + - 15 FROM
94b0: 20 74 61 62 30 20 63 6f 72 30 20 57 48 45 52 45   tab0 cor0 WHERE
94c0: 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 3c 3d   NOT ( NULL ) <=
94d0: 20 2d 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d   - - col1..----.
94e0: 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
94f0: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
9500: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
9510: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
9520: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
9530: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
9540: 45 43 54 20 2b 20 33 33 20 63 6f 6c 31 20 46 52  ECT + 33 col1 FR
9550: 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f  OM tab1 WHERE NO
9560: 54 20 28 20 4e 55 4c 4c 20 29 20 42 45 54 57 45  T ( NULL ) BETWE
9570: 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c  EN NULL AND NULL
9580: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
9590: 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
95a0: 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
95b0: 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
95c0: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 39 36 0d 0a  sort label-196..
95d0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
95e0: 2d 20 63 6f 6c 31 20 44 49 56 20 2b 20 2d 20 63  - col1 DIV + - c
95f0: 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol2 AS col0 FROM
9600: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   tab1..----..0..
9610: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
9620: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
9630: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
9640: 20 6c 61 62 65 6c 2d 31 39 36 0d 0a 53 45 4c 45   label-196..SELE
9650: 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f  CT DISTINCT - co
9660: 6c 31 20 2f 20 2b 20 2d 20 63 6f 6c 32 20 41 53  l1 / + - col2 AS
9670: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
9680: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72  .----..0....quer
9690: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
96a0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
96b0: 30 20 57 48 45 52 45 20 4e 4f 54 20 32 34 20 4e  0 WHERE NOT 24 N
96c0: 4f 54 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20  OT BETWEEN NULL 
96d0: 41 4e 44 20 2b 20 39 31 20 2d 20 2d 20 2d 20 63  AND + 91 - - - c
96e0: 6f 6c 32 20 2a 20 31 0d 0a 2d 2d 2d 2d 0d 0a 0d  ol2 * 1..----...
96f0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
9700: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
9710: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
9720: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
9730: 6c 2d 31 39 38 0d 0a 53 45 4c 45 43 54 20 41 4c  l-198..SELECT AL
9740: 4c 20 2b 20 43 41 53 54 28 20 2b 20 38 39 20 41  L + CAST( + 89 A
9750: 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2d 20 2d  S SIGNED ) + - -
9760: 20 63 6f 6c 31 20 2b 20 2d 20 2b 20 31 32 20 46   col1 + - + 12 F
9770: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
9780: 0d 0a 2d 2d 2d 2d 0d 0a 31 32 34 0d 0a 38 32 0d  ..----..124..82.
9790: 0a 39 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .91....skipif my
97a0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
97b0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
97c0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 39 38 0d  wsort label-198.
97d0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 41  .SELECT ALL + CA
97e0: 53 54 20 28 20 2b 20 38 39 20 41 53 20 49 4e 54  ST ( + 89 AS INT
97f0: 45 47 45 52 20 29 20 2b 20 2d 20 2d 20 63 6f 6c  EGER ) + - - col
9800: 31 20 2b 20 2d 20 2b 20 31 32 20 46 52 4f 4d 20  1 + - + 12 FROM 
9810: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
9820: 2d 2d 0d 0a 31 32 34 0d 0a 38 32 0d 0a 39 31 0d  --..124..82..91.
9830: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
9840: 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c  rt..SELECT + col
9850: 31 20 2a 20 2b 20 2d 20 63 6f 6c 30 20 2b 20 2d  1 * + - col0 + -
9860: 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   - col1 FROM tab
9870: 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
9880: 4e 4f 54 20 2b 20 63 6f 6c 31 20 49 53 20 4e 55  NOT + col1 IS NU
9890: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 33 34 0d  LL..----..-1134.
98a0: 0a 2d 31 38 30 36 0d 0a 2d 39 36 0d 0a 0d 0a 6f  .-1806..-96....o
98b0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
98c0: 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
98d0: 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
98e0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
98f0: 32 30 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  200..SELECT ALL 
9900: 2d 20 33 31 20 2b 20 2b 20 63 6f 6c 30 20 2b 20  - 31 + + col0 + 
9910: 2b 20 36 33 20 2d 20 2b 20 28 20 2d 20 63 6f 6c  + 63 - + ( - col
9920: 31 20 29 20 2a 20 2d 20 35 36 20 2b 20 2b 20 28  1 ) * - 56 + + (
9930: 20 2d 20 2b 20 63 6f 6c 30 20 29 20 2a 20 2b 20   - + col0 ) * + 
9940: 43 41 53 54 28 20 2b 20 63 6f 6c 31 20 41 53 20  CAST( + col1 AS 
9950: 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61  SIGNED ) FROM ta
9960: 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b2 cor0..----..-
9970: 35 31 32 34 0d 0a 2d 38 36 37 30 0d 0a 2d 39 31  5124..-8670..-91
9980: 34 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  44....skipif mys
9990: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
99a0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
99b0: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 30 30 0d 0a  sort label-200..
99c0: 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 33 31 20  SELECT ALL - 31 
99d0: 2b 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 36 33 20  + + col0 + + 63 
99e0: 2d 20 2b 20 28 20 2d 20 63 6f 6c 31 20 29 20 2a  - + ( - col1 ) *
99f0: 20 2d 20 35 36 20 2b 20 2b 20 28 20 2d 20 2b 20   - 56 + + ( - + 
9a00: 63 6f 6c 30 20 29 20 2a 20 2b 20 43 41 53 54 20  col0 ) * + CAST 
9a10: 28 20 2b 20 63 6f 6c 31 20 41 53 20 49 4e 54 45  ( + col1 AS INTE
9a20: 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 32 20  GER ) FROM tab2 
9a30: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 32  cor0..----..-512
9a40: 34 0d 0a 2d 38 36 37 30 0d 0a 2d 39 31 34 34 0d  4..-8670..-9144.
9a50: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
9a60: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
9a70: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
9a80: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 30 31 0d  wsort label-201.
9a90: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
9aa0: 20 2d 20 4d 49 4e 28 20 2b 20 28 20 2d 20 63 6f   - MIN( + ( - co
9ab0: 6c 32 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31  l2 ) ) FROM tab1
9ac0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
9ad0: 39 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  96....skipif mys
9ae0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
9af0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
9b00: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 30 31 0d 0a  sort label-201..
9b10: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
9b20: 2d 20 4d 49 4e 20 28 20 2b 20 28 20 2d 20 63 6f  - MIN ( + ( - co
9b30: 6c 32 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31  l2 ) ) FROM tab1
9b40: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
9b50: 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  96....onlyif mys
9b60: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
9b70: 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69  yntax: DIV for i
9b80: 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
9b90: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
9ba0: 72 74 20 6c 61 62 65 6c 2d 32 30 32 0d 0a 53 45  rt label-202..SE
9bb0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f  LECT DISTINCT CO
9bc0: 55 4e 54 28 20 2a 20 29 20 44 49 56 20 2b 20 2b  UNT( * ) DIV + +
9bd0: 20 31 37 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   17 AS col1 FROM
9be0: 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
9bf0: 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20  ERE NOT NULL IS 
9c00: 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
9c10: 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
9c20: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
9c30: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
9c40: 6f 72 74 20 6c 61 62 65 6c 2d 32 30 32 0d 0a 53  ort label-202..S
9c50: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43  ELECT DISTINCT C
9c60: 4f 55 4e 54 20 28 20 2a 20 29 20 2f 20 2b 20 2b  OUNT ( * ) / + +
9c70: 20 31 37 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   17 AS col1 FROM
9c80: 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
9c90: 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20  ERE NOT NULL IS 
9ca0: 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
9cb0: 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
9cc0: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
9cd0: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
9ce0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 30  rowsort label-20
9cf0: 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  3..SELECT ALL - 
9d00: 53 55 4d 28 20 2d 20 63 6f 6c 30 20 29 20 41 53  SUM( - col0 ) AS
9d10: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
9d20: 0a 2d 2d 2d 2d 0d 0a 32 32 37 0d 0a 0d 0a 73 6b  .----..227....sk
9d30: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
9d40: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
9d50: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
9d60: 65 6c 2d 32 30 33 0d 0a 53 45 4c 45 43 54 20 41  el-203..SELECT A
9d70: 4c 4c 20 2d 20 53 55 4d 20 28 20 2d 20 63 6f 6c  LL - SUM ( - col
9d80: 30 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  0 ) AS col1 FROM
9d90: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 32 37   tab1..----..227
9da0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
9db0: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
9dc0: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
9dd0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 30 34  owsort label-204
9de0: 0d 0a 53 45 4c 45 43 54 20 37 31 20 2b 20 2d 20  ..SELECT 71 + - 
9df0: 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20  COUNT( * ) FROM 
9e00: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 36 38 0d 0a  tab1..----..68..
9e10: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
9e20: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
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 30 34 0d 0a 53 45 4c 45   label-204..SELE
9e50: 43 54 20 37 31 20 2b 20 2d 20 43 4f 55 4e 54 20  CT 71 + - COUNT 
9e60: 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 0d  ( * ) FROM tab1.
9e70: 0a 2d 2d 2d 2d 0d 0a 36 38 0d 0a 0d 0a 71 75 65  .----..68....que
9e80: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
9e90: 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2b 20 2b 20  LECT - col1 + + 
9ea0: 63 6f 6c 30 20 2a 20 2b 20 35 35 20 2a 20 2b 20  col0 * + 55 * + 
9eb0: 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f  col0 AS col0 FRO
9ec0: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 31  M tab2..----..11
9ed0: 36 33 32 39 0d 0a 32 32 35 32 30 33 0d 0a 33 30  6329..225203..30
9ee0: 39 33 30 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  9308....onlyif m
9ef0: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
9f00: 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
9f10: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
9f20: 72 74 20 6c 61 62 65 6c 2d 32 30 36 0d 0a 53 45  rt label-206..SE
9f30: 4c 45 43 54 20 2d 20 2d 20 43 41 53 54 28 20 2b  LECT - - CAST( +
9f40: 20 2b 20 39 37 20 41 53 20 53 49 47 4e 45 44 20   + 97 AS SIGNED 
9f50: 29 20 2b 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 2b  ) + + - col1 * +
9f60: 20 2d 20 28 20 2d 20 28 20 2d 20 28 20 2d 20 2d   - ( - ( - ( - -
9f70: 20 63 6f 6c 32 20 29 20 29 20 29 20 41 53 20 63   col2 ) ) ) AS c
9f80: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
9f90: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 36   cor0..----..196
9fa0: 0d 0a 33 30 37 0d 0a 33 39 30 34 0d 0a 0d 0a 73  ..307..3904....s
9fb0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
9fc0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
9fd0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
9fe0: 62 65 6c 2d 32 30 36 0d 0a 53 45 4c 45 43 54 20  bel-206..SELECT 
9ff0: 2d 20 2d 20 43 41 53 54 20 28 20 2b 20 2b 20 39  - - CAST ( + + 9
a000: 37 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b  7 AS INTEGER ) +
a010: 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 2d 20   + - col1 * + - 
a020: 28 20 2d 20 28 20 2d 20 28 20 2d 20 2d 20 63 6f  ( - ( - ( - - co
a030: 6c 32 20 29 20 29 20 29 20 41 53 20 63 6f 6c 31  l2 ) ) ) AS col1
a040: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
a050: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 36 0d 0a 33  r0..----..196..3
a060: 30 37 0d 0a 33 39 30 34 0d 0a 0d 0a 71 75 65 72  07..3904....quer
a070: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
a080: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
a090: 31 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e  1 cor0 WHERE ( N
a0a0: 55 4c 4c 20 29 20 3c 20 2b 20 2d 20 63 6f 6c 30  ULL ) < + - col0
a0b0: 20 2a 20 63 6f 6c 31 20 2a 20 2b 20 2d 20 63 6f   * col1 * + - co
a0c0: 6c 30 20 2a 20 2b 20 39 37 20 2a 20 2b 20 2d 20  l0 * + 97 * + - 
a0d0: 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  col2..----....qu
a0e0: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
a0f0: 53 45 4c 45 43 54 20 2b 20 31 34 20 41 53 20 63  SELECT + 14 AS c
a100: 6f 6c 32 2c 20 28 20 2b 20 63 6f 6c 30 20 29 20  ol2, ( + col0 ) 
a110: 2a 20 2d 20 35 20 2b 20 2d 20 63 6f 6c 30 20 46  * - 5 + - col0 F
a120: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
a130: 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 2d 35 32 32  ..----..14..-522
a140: 0d 0a 31 34 0d 0a 2d 35 38 32 0d 0a 31 34 0d 0a  ..14..-582..14..
a150: 2d 39 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -90....onlyif my
a160: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
a170: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
a180: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
a190: 32 30 39 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 41  209..SELECT + MA
a1a0: 58 28 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 29 20  X( ALL - col2 ) 
a1b0: 2a 20 28 20 31 38 20 29 20 41 53 20 63 6f 6c 32  * ( 18 ) AS col2
a1c0: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
a1d0: 0d 0a 2d 34 31 34 0d 0a 0d 0a 73 6b 69 70 69 66  ..-414....skipif
a1e0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
a1f0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
a200: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
a210: 30 39 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 41 58  09..SELECT + MAX
a220: 20 28 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 29 20   ( ALL - col2 ) 
a230: 2a 20 28 20 31 38 20 29 20 41 53 20 63 6f 6c 32  * ( 18 ) AS col2
a240: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
a250: 0d 0a 2d 34 31 34 0d 0a 0d 0a 71 75 65 72 79 20  ..-414....query 
a260: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
a270: 54 20 44 49 53 54 49 4e 43 54 20 2b 20 34 39 20  T DISTINCT + 49 
a280: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
a290: 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62  0 CROSS JOIN tab
a2a0: 32 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 34 39  2 cor1..----..49
a2b0: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
a2c0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
a2d0: 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
a2e0: 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
a2f0: 20 4e 4f 54 20 4e 55 4c 4c 20 3d 20 2b 20 63 6f   NOT NULL = + co
a300: 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70  l2..----....skip
a310: 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
a320: 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
a330: 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
a340: 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
a350: 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
a360: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
a370: 54 49 4e 43 54 20 2d 20 2b 20 28 20 33 31 20 29  TINCT - + ( 31 )
a380: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
a390: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
a3a0: 33 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  31....skipif pos
a3b0: 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
a3c0: 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
a3d0: 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
a3e0: 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
a3f0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
a400: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
a410: 2b 20 36 38 20 2a 20 2d 20 35 39 20 2a 20 2b 20  + 68 * - 59 * + 
a420: 28 20 2b 20 63 6f 6c 32 20 29 20 63 6f 6c 32 20  ( + col2 ) col2 
a430: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
a440: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 36 37 30 38  0..----..-236708
a450: 0d 0a 2d 32 37 32 38 31 36 0d 0a 2d 33 38 35 31  ..-272816..-3851
a460: 35 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  52....query I ro
a470: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
a480: 28 20 2d 20 34 36 20 29 20 46 52 4f 4d 20 74 61  ( - 46 ) FROM ta
a490: 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
a4a0: 20 4e 4f 54 20 4e 55 4c 4c 20 3c 3d 20 35 34 20   NOT NULL <= 54 
a4b0: 2d 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 2b 20 63  - - col0 * + + c
a4c0: 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ol1..----....que
a4d0: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
a4e0: 45 4c 45 43 54 20 63 6f 6c 31 2c 20 2b 20 63 6f  ELECT col1, + co
a4f0: 6c 30 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20 63  l0 + + col0 AS c
a500: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  ol1 FROM tab1 co
a510: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 31 30  r0..----..14..10
a520: 32 0d 0a 34 37 0d 0a 31 38 32 0d 0a 35 0d 0a 31  2..47..182..5..1
a530: 37 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  70....skipif pos
a540: 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
a550: 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
a560: 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
a570: 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
a580: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
a590: 53 45 4c 45 43 54 20 2b 20 33 39 20 63 6f 6c 31  SELECT + 39 col1
a5a0: 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d   FROM tab0 cor0.
a5b0: 0a 2d 2d 2d 2d 0d 0a 33 39 0d 0a 33 39 0d 0a 33  .----..39..39..3
a5c0: 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  9....query I row
a5d0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63  sort..SELECT + c
a5e0: 6f 6c 30 20 2a 20 36 20 41 53 20 63 6f 6c 32 20  ol0 * 6 AS col2 
a5f0: 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a  FROM tab1 cor0..
a600: 2d 2d 2d 2d 0d 0a 33 30 36 0d 0a 35 31 30 0d 0a  ----..306..510..
a610: 35 34 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  546....onlyif my
a620: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
a630: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
a640: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
a650: 72 74 20 6c 61 62 65 6c 2d 32 31 38 0d 0a 53 45  rt label-218..SE
a660: 4c 45 43 54 20 43 41 53 54 28 20 4e 55 4c 4c 20  LECT CAST( NULL 
a670: 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63  AS SIGNED ) AS c
a680: 6f 6c 32 2c 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ol2, col0 FROM t
a690: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
a6a0: 2d 0d 0a 4e 55 4c 4c 0d 0a 34 36 0d 0a 4e 55 4c  -..NULL..46..NUL
a6b0: 4c 0d 0a 36 34 0d 0a 4e 55 4c 4c 0d 0a 37 35 0d  L..64..NULL..75.
a6c0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
a6d0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
a6e0: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
a6f0: 72 74 20 6c 61 62 65 6c 2d 32 31 38 0d 0a 53 45  rt label-218..SE
a700: 4c 45 43 54 20 43 41 53 54 20 28 20 4e 55 4c 4c  LECT CAST ( NULL
a710: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53   AS INTEGER ) AS
a720: 20 63 6f 6c 32 2c 20 63 6f 6c 30 20 46 52 4f 4d   col2, col0 FROM
a730: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
a740: 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 34 36 0d 0a 4e  ---..NULL..46..N
a750: 55 4c 4c 0d 0a 36 34 0d 0a 4e 55 4c 4c 0d 0a 37  ULL..64..NULL..7
a760: 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  5....onlyif mysq
a770: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
a780: 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d   DECIMAL type: .
a790: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
a7a0: 72 74 20 6c 61 62 65 6c 2d 32 31 39 0d 0a 53 45  rt label-219..SE
a7b0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
a7c0: 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
a7d0: 42 45 54 57 45 45 4e 20 2b 20 43 41 53 54 28 20  BETWEEN + CAST( 
a7e0: 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20  NULL AS DECIMAL 
a7f0: 29 20 41 4e 44 20 2b 20 39 34 20 2b 20 63 6f 6c  ) AND + 94 + col
a800: 30 20 2b 20 2d 20 2d 20 63 6f 6c 32 0d 0a 2d 2d  0 + - - col2..--
a810: 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
a820: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
a830: 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72  ble..query III r
a840: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 31 39  owsort label-219
a850: 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
a860: 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  tab0 WHERE NOT N
a870: 55 4c 4c 20 42 45 54 57 45 45 4e 20 2b 20 43 41  ULL BETWEEN + CA
a880: 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41  ST ( NULL AS REA
a890: 4c 20 29 20 41 4e 44 20 2b 20 39 34 20 2b 20 63  L ) AND + 94 + c
a8a0: 6f 6c 30 20 2b 20 2d 20 2d 20 63 6f 6c 32 0d 0a  ol0 + - - col2..
a8b0: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
a8c0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
a8d0: 41 4c 4c 20 31 36 20 2a 20 63 6f 6c 32 20 41 53  ALL 16 * col2 AS
a8e0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
a8f0: 0a 2d 2d 2d 2d 0d 0a 33 36 38 0d 0a 36 34 30 0d  .----..368..640.
a900: 0a 39 32 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .928....query I 
a910: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
a920: 44 49 53 54 49 4e 43 54 20 2d 20 31 36 20 2a 20  DISTINCT - 16 * 
a930: 2d 20 39 32 20 41 53 20 63 6f 6c 31 20 46 52 4f  - 92 AS col1 FRO
a940: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 34  M tab2..----..14
a950: 37 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  72....query I ro
a960: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 31 33  wsort..SELECT 13
a970: 20 2b 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74   + + col0 FROM t
a980: 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  ab2 WHERE NOT + 
a990: 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col0 IS NOT NULL
a9a0: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
a9b0: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
a9c0: 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79  ntax: DECIMAL ty
a9d0: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
a9e0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 32 33 0d  wsort label-223.
a9f0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
aa00: 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 30 20 2b   col0 * - col0 +
aa10: 20 43 41 53 54 28 20 28 20 2b 20 28 20 63 6f 6c   CAST( ( + ( col
aa20: 30 20 29 20 29 20 41 53 20 44 45 43 49 4d 41 4c  0 ) ) AS DECIMAL
aa30: 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
aa40: 74 61 62 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  tab0 WHERE NULL 
aa50: 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
aa60: 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  -....skipif mysq
aa70: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
aa80: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
aa90: 6f 72 74 20 6c 61 62 65 6c 2d 32 32 33 0d 0a 53  ort label-223..S
aaa0: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
aab0: 6f 6c 30 20 2a 20 2d 20 63 6f 6c 30 20 2b 20 43  ol0 * - col0 + C
aac0: 41 53 54 20 28 20 28 20 2b 20 28 20 63 6f 6c 30  AST ( ( + ( col0
aad0: 20 29 20 29 20 41 53 20 52 45 41 4c 20 29 20 41   ) ) AS REAL ) A
aae0: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
aaf0: 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e   WHERE NULL IS N
ab00: 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  OT NULL..----...
ab10: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
ab20: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
ab30: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
ab40: 6f 72 74 20 6c 61 62 65 6c 2d 32 32 34 0d 0a 53  ort label-224..S
ab50: 45 4c 45 43 54 20 41 4c 4c 20 28 20 2b 20 53 55  ELECT ALL ( + SU
ab60: 4d 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f  M( DISTINCT + co
ab70: 6c 32 20 29 20 29 20 41 53 20 63 6f 6c 32 20 46  l2 ) ) AS col2 F
ab80: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
ab90: 31 35 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  156....skipif my
aba0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
abb0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
abc0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 32 34 0d  wsort label-224.
abd0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28 20 2b 20  .SELECT ALL ( + 
abe0: 53 55 4d 20 28 20 44 49 53 54 49 4e 43 54 20 2b  SUM ( DISTINCT +
abf0: 20 63 6f 6c 32 20 29 20 29 20 41 53 20 63 6f 6c   col2 ) ) AS col
ac00: 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
ac10: 2d 0d 0a 31 35 36 0d 0a 0d 0a 6f 6e 6c 79 69 66  -..156....onlyif
ac20: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
ac30: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
ac40: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
ac50: 65 6c 2d 32 32 35 0d 0a 53 45 4c 45 43 54 20 41  el-225..SELECT A
ac60: 4c 4c 20 28 20 2b 20 2d 20 28 20 2b 20 43 4f 55  LL ( + - ( + COU
ac70: 4e 54 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63  NT( DISTINCT + c
ac80: 6f 6c 30 20 29 20 29 20 29 20 2a 20 2b 20 4d 49  ol0 ) ) ) * + MI
ac90: 4e 28 20 2b 20 63 6f 6c 31 20 29 20 41 53 20 63  N( + col1 ) AS c
aca0: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol0 FROM tab0..-
acb0: 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69  ---..-3....skipi
acc0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
acd0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
ace0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
acf0: 32 32 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  225..SELECT ALL 
ad00: 28 20 2b 20 2d 20 28 20 2b 20 43 4f 55 4e 54 20  ( + - ( + COUNT 
ad10: 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  ( DISTINCT + col
ad20: 30 20 29 20 29 20 29 20 2a 20 2b 20 4d 49 4e 20  0 ) ) ) * + MIN 
ad30: 28 20 2b 20 63 6f 6c 31 20 29 20 41 53 20 63 6f  ( + col1 ) AS co
ad40: 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
ad50: 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79 20  --..-3....query 
ad60: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
ad70: 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  T DISTINCT + col
ad80: 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  2 FROM tab1 WHER
ad90: 45 20 4e 4f 54 20 35 35 20 2a 20 2b 20 2d 20 33  E NOT 55 * + - 3
ada0: 37 20 2b 20 28 20 2b 20 2d 20 63 6f 6c 31 20 29  7 + ( + - col1 )
adb0: 20 3c 3e 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c   <> col2 + - col
adc0: 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  1..----....query
add0: 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
ade0: 45 43 54 20 41 4c 4c 20 2d 20 28 20 38 32 20 29  ECT ALL - ( 82 )
adf0: 20 2a 20 39 38 20 2a 20 2b 20 63 6f 6c 30 20 2a   * 98 * + col0 *
ae00: 20 2d 20 63 6f 6c 30 2c 20 2b 20 63 6f 6c 32 20   - col0, + col2 
ae10: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
ae20: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
ae30: 0a 31 38 30 38 31 30 30 0d 0a 34 37 0d 0a 36 30  .1808100..47..60
ae40: 38 32 34 34 38 34 0d 0a 31 30 0d 0a 37 35 36 31  824484..10..7561
ae50: 30 37 32 34 0d 0a 39 39 0d 0a 0d 0a 6f 6e 6c 79  0724..99....only
ae60: 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
ae70: 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
ae80: 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
ae90: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 32 38  owsort label-228
aea0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
aeb0: 54 20 63 6f 6c 32 20 44 49 56 20 2d 20 63 6f 6c  T col2 DIV - col
aec0: 31 20 2b 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f  1 + + col1 AS co
aed0: 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
aee0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a  cor0..----..51..
aef0: 36 37 0d 0a 37 37 0d 0a 0d 0a 73 6b 69 70 69 66  67..77....skipif
af00: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
af10: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
af20: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
af30: 32 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  28..SELECT DISTI
af40: 4e 43 54 20 63 6f 6c 32 20 2f 20 2d 20 63 6f 6c  NCT col2 / - col
af50: 31 20 2b 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f  1 + + col1 AS co
af60: 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
af70: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a  cor0..----..51..
af80: 36 37 0d 0a 37 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  67..77....onlyif
af90: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
afa0: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
afb0: 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
afc0: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 32 39 0d 0a  sort label-229..
afd0: 53 45 4c 45 43 54 20 63 6f 6c 30 20 2d 20 2b 20  SELECT col0 - + 
afe0: 2b 20 28 20 2b 20 63 6f 6c 30 20 29 20 46 52 4f  + ( + col0 ) FRO
aff0: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
b000: 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20 4e 4f  HERE NOT col0 NO
b010: 54 20 42 45 54 57 45 45 4e 20 28 20 2d 20 28 20  T BETWEEN ( - ( 
b020: 2b 20 43 41 53 54 28 20 2b 20 2d 20 63 6f 6c 31  + CAST( + - col1
b030: 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20 2a   AS SIGNED ) ) *
b040: 20 2d 20 63 6f 6c 31 20 29 20 41 4e 44 20 28 20   - col1 ) AND ( 
b050: 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  NULL )..----....
b060: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
b070: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
b080: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
b090: 61 62 65 6c 2d 32 32 39 0d 0a 53 45 4c 45 43 54  abel-229..SELECT
b0a0: 20 63 6f 6c 30 20 2d 20 2b 20 2b 20 28 20 2b 20   col0 - + + ( + 
b0b0: 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 32  col0 ) FROM tab2
b0c0: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
b0d0: 4f 54 20 63 6f 6c 30 20 4e 4f 54 20 42 45 54 57  OT col0 NOT BETW
b0e0: 45 45 4e 20 28 20 2d 20 28 20 2b 20 43 41 53 54  EEN ( - ( + CAST
b0f0: 20 28 20 2b 20 2d 20 63 6f 6c 31 20 41 53 20 49   ( + - col1 AS I
b100: 4e 54 45 47 45 52 20 29 20 29 20 2a 20 2d 20 63  NTEGER ) ) * - c
b110: 6f 6c 31 20 29 20 41 4e 44 20 28 20 4e 55 4c 4c  ol1 ) AND ( NULL
b120: 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70   )..----....skip
b130: 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
b140: 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
b150: 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
b160: 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
b170: 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
b180: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63  sort..SELECT + c
b190: 6f 6c 32 20 2a 20 32 38 20 63 6f 6c 32 20 46 52  ol2 * 28 col2 FR
b1a0: 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d  OM tab1 cor0..--
b1b0: 2d 2d 0d 0a 31 36 35 32 0d 0a 31 39 30 34 0d 0a  --..1652..1904..
b1c0: 32 36 38 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49  2688....query II
b1d0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
b1e0: 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 2c 20 31   col1 AS col2, 1
b1f0: 37 20 2a 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  7 * col2 FROM ta
b200: 62 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e  b0 WHERE NOT ( N
b210: 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 20  OT NULL IS NULL 
b220: 29 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31 36 38 33  )..----..1..1683
b230: 0d 0a 32 31 0d 0a 31 37 30 0d 0a 38 31 0d 0a 37  ..21..170..81..7
b240: 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  99....query I ro
b250: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
b260: 28 20 2d 20 63 6f 6c 32 20 29 20 2b 20 63 6f 6c  ( - col2 ) + col
b270: 32 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c  2 + col1 + + col
b280: 32 20 2a 20 2d 20 38 32 20 41 53 20 63 6f 6c 30  2 * - 82 AS col0
b290: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
b2a0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 37 37 33 0d  r0..----..-3773.
b2b0: 0a 2d 37 39 39 0d 0a 2d 38 31 31 37 0d 0a 0d 0a  .-799..-8117....
b2c0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
b2d0: 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
b2e0: 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
b2f0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
b300: 2d 32 33 33 0d 0a 53 45 4c 45 43 54 20 44 49 53  -233..SELECT DIS
b310: 54 49 4e 43 54 20 2b 20 33 34 20 44 49 56 20 2d  TINCT + 34 DIV -
b320: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
b330: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
b340: 33 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  3..0....skipif m
b350: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
b360: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
b370: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 33 33  owsort label-233
b380: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
b390: 54 20 2b 20 33 34 20 2f 20 2d 20 63 6f 6c 32 20  T + 34 / - col2 
b3a0: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
b3b0: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 30 0d 0a  0..----..-3..0..
b3c0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
b3d0: 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
b3e0: 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
b3f0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
b400: 65 6c 2d 32 33 34 0d 0a 53 45 4c 45 43 54 20 44  el-234..SELECT D
b410: 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 44  ISTINCT - col2 D
b420: 49 56 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 31  IV col1 + + col1
b430: 20 2a 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20 63   * + + col2 AS c
b440: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
b450: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   cor0..----..0..
b460: 32 31 30 0d 0a 33 38 30 37 0d 0a 0d 0a 73 6b 69  210..3807....ski
b470: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
b480: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
b490: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
b4a0: 6c 2d 32 33 34 0d 0a 53 45 4c 45 43 54 20 44 49  l-234..SELECT DI
b4b0: 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 2f 20  STINCT - col2 / 
b4c0: 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 31 20 2a 20  col1 + + col1 * 
b4d0: 2b 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32  + + col2 AS col2
b4e0: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
b4f0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 32 31 30  r0..----..0..210
b500: 0d 0a 33 38 30 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..3807....onlyif
b510: 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
b520: 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
b530: 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  n: ..query II ro
b540: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 33 35 0d  wsort label-235.
b550: 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2b 20 2d  .SELECT col0 + -
b560: 20 63 6f 6c 30 20 44 49 56 20 2d 20 63 6f 6c 32   col0 DIV - col2
b570: 20 2b 20 39 31 2c 20 2b 20 39 38 20 2d 20 63 6f   + 91, + 98 - co
b580: 6c 30 20 2b 20 33 33 20 2a 20 2b 20 31 39 20 41  l0 + 33 * + 19 A
b590: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
b5a0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
b5b0: 31 30 36 0d 0a 37 31 30 0d 0a 31 38 36 0d 0a 36  106..710..186..6
b5c0: 33 38 0d 0a 31 38 38 0d 0a 36 32 38 0d 0a 0d 0a  38..188..628....
b5d0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
b5e0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
b5f0: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
b600: 6c 61 62 65 6c 2d 32 33 35 0d 0a 53 45 4c 45 43  label-235..SELEC
b610: 54 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 30 20  T col0 + - col0 
b620: 2f 20 2d 20 63 6f 6c 32 20 2b 20 39 31 2c 20 2b  / - col2 + 91, +
b630: 20 39 38 20 2d 20 63 6f 6c 30 20 2b 20 33 33 20   98 - col0 + 33 
b640: 2a 20 2b 20 31 39 20 41 53 20 63 6f 6c 31 20 46  * + 19 AS col1 F
b650: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
b660: 0d 0a 2d 2d 2d 2d 0d 0a 31 30 36 0d 0a 37 31 30  ..----..106..710
b670: 0d 0a 31 38 36 0d 0a 36 33 38 0d 0a 31 38 38 0d  ..186..638..188.
b680: 0a 36 32 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .628....onlyif m
b690: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
b6a0: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
b6b0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
b6c0: 2d 32 33 36 0d 0a 53 45 4c 45 43 54 20 2b 20 4d  -236..SELECT + M
b6d0: 41 58 28 20 2d 20 2d 20 63 6f 6c 30 20 29 20 2b  AX( - - col0 ) +
b6e0: 20 2b 20 43 4f 55 4e 54 28 20 32 38 20 29 20 2a   + COUNT( 28 ) *
b6f0: 20 4d 49 4e 28 20 41 4c 4c 20 2b 20 36 20 29 20   MIN( ALL + 6 ) 
b700: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
b710: 30 0d 0a 2d 2d 2d 2d 0d 0a 39 33 0d 0a 0d 0a 73  0..----..93....s
b720: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
b730: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
b740: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
b750: 62 65 6c 2d 32 33 36 0d 0a 53 45 4c 45 43 54 20  bel-236..SELECT 
b760: 2b 20 4d 41 58 20 28 20 2d 20 2d 20 63 6f 6c 30  + MAX ( - - col0
b770: 20 29 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20 32   ) + + COUNT ( 2
b780: 38 20 29 20 2a 20 4d 49 4e 20 28 20 41 4c 4c 20  8 ) * MIN ( ALL 
b790: 2b 20 36 20 29 20 46 52 4f 4d 20 74 61 62 32 20  + 6 ) FROM tab2 
b7a0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39  AS cor0..----..9
b7b0: 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  3....query I row
b7c0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
b7d0: 54 49 4e 43 54 20 63 6f 6c 30 20 2a 20 2d 20 2b  TINCT col0 * - +
b7e0: 20 63 6f 6c 32 20 2b 20 63 6f 6c 31 20 2b 20 2d   col2 + col1 + -
b7f0: 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52   col0 AS col2 FR
b800: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
b810: 0a 2d 2d 2d 2d 0d 0a 2d 36 33 39 0d 0a 2d 39 33  .----..-639..-93
b820: 36 0d 0a 2d 39 36 39 39 0d 0a 0d 0a 73 6b 69 70  6..-9699....skip
b830: 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
b840: 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
b850: 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
b860: 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
b870: 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  mns..query II ro
b880: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
b890: 53 54 49 4e 43 54 20 41 56 47 20 28 20 41 4c 4c  STINCT AVG ( ALL
b8a0: 20 2b 20 33 33 20 29 20 63 6f 6c 30 2c 20 2d 20   + 33 ) col0, - 
b8b0: 32 33 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  23 AS col2 FROM 
b8c0: 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
b8d0: 52 45 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e  RE NULL IS NOT N
b8e0: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ULL..----..NULL.
b8f0: 0a 2d 32 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-23....onlyif m
b900: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
b910: 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
b920: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
b930: 72 74 20 6c 61 62 65 6c 2d 32 33 39 0d 0a 53 45  rt label-239..SE
b940: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
b950: 43 41 53 54 28 20 2b 20 63 6f 6c 31 20 41 53 20  CAST( + col1 AS 
b960: 53 49 47 4e 45 44 20 29 20 63 6f 6c 30 20 46 52  SIGNED ) col0 FR
b970: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
b980: 0a 2d 2d 2d 2d 0d 0a 2d 31 34 0d 0a 2d 34 37 0d  .----..-14..-47.
b990: 0a 2d 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .-5....skipif my
b9a0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
b9b0: 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
b9c0: 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
b9d0: 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
b9e0: 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
b9f0: 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
ba00: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
ba10: 61 62 65 6c 2d 32 33 39 0d 0a 53 45 4c 45 43 54  abel-239..SELECT
ba20: 20 44 49 53 54 49 4e 43 54 20 2d 20 43 41 53 54   DISTINCT - CAST
ba30: 20 28 20 2b 20 63 6f 6c 31 20 41 53 20 49 4e 54   ( + col1 AS INT
ba40: 45 47 45 52 20 29 20 63 6f 6c 30 20 46 52 4f 4d  EGER ) col0 FROM
ba50: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
ba60: 2d 2d 2d 0d 0a 2d 31 34 0d 0a 2d 34 37 0d 0a 2d  ---..-14..-47..-
ba70: 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  5....query I row
ba80: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 39 32 20  sort..SELECT 92 
ba90: 2b 20 2d 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20  + - - col2 FROM 
baa0: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 35 31 0d  tab1..----..151.
bab0: 0a 31 36 30 0d 0a 31 38 38 0d 0a 0d 0a 71 75 65  .160..188....que
bac0: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
bad0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
bae0: 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  * FROM tab2 WHER
baf0: 45 20 4e 55 4c 4c 20 3d 20 2b 20 2d 20 35 32 0d  E NULL = + - 52.
bb00: 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
bb10: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
bb20: 54 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 31 38 2c  T - col2 + - 18,
bb30: 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20   + col1 AS col1 
bb40: 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
bb50: 0a 2d 34 31 0d 0a 35 31 0d 0a 2d 35 38 0d 0a 37  .-41..51..-58..7
bb60: 37 0d 0a 2d 37 36 0d 0a 36 37 0d 0a 0d 0a 73 6b  7..-76..67....sk
bb70: 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
bb80: 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
bb90: 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
bba0: 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
bbb0: 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
bbc0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
bbd0: 20 63 6f 6c 31 20 63 6f 6c 32 20 46 52 4f 4d 20   col1 col2 FROM 
bbe0: 74 61 62 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  tab0 WHERE NULL 
bbf0: 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d  IS NULL..----..-
bc00: 31 0d 0a 2d 32 31 0d 0a 2d 38 31 0d 0a 0d 0a 71  1..-21..-81....q
bc10: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
bc20: 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
bc30: 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
bc40: 52 45 20 63 6f 6c 30 20 42 45 54 57 45 45 4e 20  RE col0 BETWEEN 
bc50: 2d 20 36 38 20 2b 20 2b 20 28 20 2d 20 32 34 20  - 68 + + ( - 24 
bc60: 29 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  ) AND NULL..----
bc70: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
bc80: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  ort..SELECT - co
bc90: 6c 31 20 2d 20 2b 20 2b 20 63 6f 6c 32 20 41 53  l1 - + + col2 AS
bca0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
bcb0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
bcc0: 31 31 30 0d 0a 2d 31 31 35 0d 0a 2d 36 34 0d 0a  110..-115..-64..
bcd0: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
bce0: 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  rt..SELECT - col
bcf0: 32 20 41 53 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c  2 AS col2, + col
bd00: 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  2 AS col2 FROM t
bd10: 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
bd20: 45 20 2b 20 63 6f 6c 32 20 42 45 54 57 45 45 4e  E + col2 BETWEEN
bd30: 20 63 6f 6c 32 20 41 4e 44 20 4e 55 4c 4c 0d 0a   col2 AND NULL..
bd40: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
bd50: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
bd60: 2d 20 31 32 20 2d 20 2d 20 63 6f 6c 31 20 41 53  - 12 - - col1 AS
bd70: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
bd80: 57 48 45 52 45 20 2b 20 63 6f 6c 31 20 49 53 20  WHERE + col1 IS 
bd90: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
bda0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
bdb0: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 39  ELECT DISTINCT 9
bdc0: 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  1 AS col2 FROM t
bdd0: 61 62 30 20 41 53 20 63 6f 72 30 20 43 52 4f 53  ab0 AS cor0 CROS
bde0: 53 20 4a 4f 49 4e 20 74 61 62 32 20 63 6f 72 31  S JOIN tab2 cor1
bdf0: 0d 0a 2d 2d 2d 2d 0d 0a 39 31 0d 0a 0d 0a 71 75  ..----..91....qu
be00: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
be10: 45 4c 45 43 54 20 2b 20 28 20 2b 20 34 34 20 29  ELECT + ( + 44 )
be20: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 28 20   AS col1 FROM ( 
be30: 74 61 62 30 20 41 53 20 63 6f 72 30 20 43 52 4f  tab0 AS cor0 CRO
be40: 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20  SS JOIN tab0 AS 
be50: 63 6f 72 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20  cor1 )..----..9 
be60: 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
be70: 6f 20 61 62 32 62 63 32 62 39 66 38 62 61 61 33  o ab2bc2b9f8baa3
be80: 30 30 64 66 37 37 35 35 65 35 39 38 30 61 33 31  00df7755e5980a31
be90: 39 64 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  9d....query I ro
bea0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
beb0: 34 37 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  47 AS col2 FROM 
bec0: 74 61 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f  tab1 AS cor0 CRO
bed0: 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20  SS JOIN tab0 AS 
bee0: 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  cor1..----..9 va
bef0: 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
bf00: 36 39 34 32 61 30 64 39 35 35 38 32 37 37 61 66  6942a0d9558277af
bf10: 64 30 64 30 30 34 30 38 64 36 35 63 66 35 61 61  d0d00408d65cf5aa
bf20: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
bf30: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
bf40: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
bf50: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 35 31  owsort label-251
bf60: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b  ..SELECT ALL - +
bf70: 20 43 4f 55 4e 54 28 20 44 49 53 54 49 4e 43 54   COUNT( DISTINCT
bf80: 20 35 33 20 29 20 41 53 20 63 6f 6c 32 20 46 52   53 ) AS col2 FR
bf90: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
bfa0: 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 73 6b 69  .----..-1....ski
bfb0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
bfc0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
bfd0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
bfe0: 6c 2d 32 35 31 0d 0a 53 45 4c 45 43 54 20 41 4c  l-251..SELECT AL
bff0: 4c 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 44 49  L - + COUNT ( DI
c000: 53 54 49 4e 43 54 20 35 33 20 29 20 41 53 20 63  STINCT 53 ) AS c
c010: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
c020: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d   cor0..----..-1.
c030: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
c040: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61  # CAST syntax: a
c050: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
c060: 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
c070: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
c080: 6c 61 62 65 6c 2d 32 35 32 0d 0a 53 45 4c 45 43  label-252..SELEC
c090: 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43 41 53  T DISTINCT - CAS
c0a0: 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
c0b0: 44 20 29 20 2a 20 2b 20 53 55 4d 28 20 44 49 53  D ) * + SUM( DIS
c0c0: 54 49 4e 43 54 20 2d 20 2b 20 63 6f 6c 30 20 29  TINCT - + col0 )
c0d0: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
c0e0: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
c0f0: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
c100: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
c110: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
c120: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
c130: 35 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  52..SELECT DISTI
c140: 4e 43 54 20 2d 20 43 41 53 54 20 28 20 4e 55 4c  NCT - CAST ( NUL
c150: 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a  L AS INTEGER ) *
c160: 20 2b 20 53 55 4d 20 28 20 44 49 53 54 49 4e 43   + SUM ( DISTINC
c170: 54 20 2d 20 2b 20 63 6f 6c 30 20 29 20 41 53 20  T - + col0 ) AS 
c180: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
c190: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
c1a0: 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  LL....query I ro
c1b0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
c1c0: 4c 20 63 6f 6c 30 20 2a 20 2b 20 37 38 20 46 52  L col0 * + 78 FR
c1d0: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
c1e0: 0a 2d 2d 2d 2d 0d 0a 33 35 38 38 0d 0a 34 39 39  .----..3588..499
c1f0: 32 0d 0a 35 38 35 30 0d 0a 0d 0a 71 75 65 72 79  2..5850....query
c200: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
c210: 43 54 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20 63  CT + + col2 AS c
c220: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  ol1 FROM tab0 co
c230: 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 34  r0 WHERE NOT + 4
c240: 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  1 IS NOT NULL..-
c250: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
c260: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
c270: 49 53 54 49 4e 43 54 20 2b 20 2d 20 63 6f 6c 32  ISTINCT + - col2
c280: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
c290: 62 31 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  b1 WHERE NOT NUL
c2a0: 4c 20 3e 3d 20 63 6f 6c 31 20 2f 20 2d 20 63 6f  L >= col1 / - co
c2b0: 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  l1..----....only
c2c0: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
c2d0: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
c2e0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
c2f0: 61 62 65 6c 2d 32 35 36 0d 0a 53 45 4c 45 43 54  abel-256..SELECT
c300: 20 41 4c 4c 20 4d 49 4e 28 20 2d 20 2d 20 31 35   ALL MIN( - - 15
c310: 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
c320: 2d 2d 0d 0a 31 35 0d 0a 0d 0a 73 6b 69 70 69 66  --..15....skipif
c330: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
c340: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
c350: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
c360: 35 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 4d  56..SELECT ALL M
c370: 49 4e 20 28 20 2d 20 2d 20 31 35 20 29 20 46 52  IN ( - - 15 ) FR
c380: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
c390: 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  5....query I row
c3a0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
c3b0: 20 28 20 2b 20 32 32 20 29 20 46 52 4f 4d 20 74   ( + 22 ) FROM t
c3c0: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 32 0d 0a 32  ab1..----..22..2
c3d0: 32 0d 0a 32 32 0d 0a 0d 0a 71 75 65 72 79 20 49  2..22....query I
c3e0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
c3f0: 20 2b 20 36 33 20 2a 20 63 6f 6c 32 20 2a 20 2d   + 63 * col2 * -
c400: 20 28 20 2d 20 2d 20 63 6f 6c 30 20 29 20 2d 20   ( - - col0 ) - 
c410: 2d 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 39 38 20  - + col1 + + 98 
c420: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
c430: 32 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2d 20  2 WHERE NOT ( - 
c440: 39 34 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  94 ) IS NOT NULL
c450: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
c460: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
c470: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
c480: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
c490: 62 65 6c 2d 32 35 39 0d 0a 53 45 4c 45 43 54 20  bel-259..SELECT 
c4a0: 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 28 20  DISTINCT COUNT( 
c4b0: 2a 20 29 20 41 53 20 63 6f 6c 31 2c 20 31 39 20  * ) AS col1, 19 
c4c0: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
c4d0: 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 31 39 0d 0a  0..----..3..19..
c4e0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
c4f0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
c500: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
c510: 74 20 6c 61 62 65 6c 2d 32 35 39 0d 0a 53 45 4c  t label-259..SEL
c520: 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55  ECT DISTINCT COU
c530: 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 31  NT ( * ) AS col1
c540: 2c 20 31 39 20 41 53 20 63 6f 6c 31 20 46 52 4f  , 19 AS col1 FRO
c550: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  M tab0..----..3.
c560: 0a 31 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  .19....query II 
c570: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
c580: 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 2c 20  - col1 AS col1, 
c590: 63 6f 6c 31 20 2a 20 63 6f 6c 32 20 41 53 20 63  col1 * col2 AS c
c5a0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
c5b0: 2d 2d 2d 0d 0a 2d 35 31 0d 0a 31 31 37 33 0d 0a  ---..-51..1173..
c5c0: 2d 36 37 0d 0a 33 38 38 36 0d 0a 2d 37 37 0d 0a  -67..3886..-77..
c5d0: 33 30 38 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  3080....skipif p
c5e0: 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
c5f0: 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
c600: 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
c610: 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
c620: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
c630: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b  ..SELECT ALL - +
c640: 20 63 6f 6c 30 20 63 6f 6c 30 20 46 52 4f 4d 20   col0 col0 FROM 
c650: 74 61 62 31 20 57 48 45 52 45 20 2d 20 34 31 20  tab1 WHERE - 41 
c660: 2f 20 2b 20 28 20 2b 20 36 37 20 29 20 49 53 20  / + ( + 67 ) IS 
c670: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
c680: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
c690: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
c6a0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
c6b0: 20 6c 61 62 65 6c 2d 32 36 32 0d 0a 53 45 4c 45   label-262..SELE
c6c0: 43 54 20 41 4c 4c 20 36 30 20 2a 20 2d 20 2b 20  CT ALL 60 * - + 
c6d0: 4d 41 58 28 20 37 33 20 29 20 41 53 20 63 6f 6c  MAX( 73 ) AS col
c6e0: 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
c6f0: 2d 0d 0a 2d 34 33 38 30 0d 0a 0d 0a 73 6b 69 70  -..-4380....skip
c700: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
c710: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
c720: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
c730: 2d 32 36 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -262..SELECT ALL
c740: 20 36 30 20 2a 20 2d 20 2b 20 4d 41 58 20 28 20   60 * - + MAX ( 
c750: 37 33 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  73 ) AS col2 FRO
c760: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34  M tab0..----..-4
c770: 33 38 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  380....query I r
c780: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
c790: 49 53 54 49 4e 43 54 20 2b 20 2d 20 63 6f 6c 31  ISTINCT + - col1
c7a0: 20 2a 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 2d 20   * + + col2 * - 
c7b0: 38 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  80 AS col1 FROM 
c7c0: 74 61 62 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  tab0 WHERE NULL 
c7d0: 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
c7e0: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
c7f0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
c800: 54 49 4e 43 54 20 28 20 2d 20 2d 20 31 30 20 29  TINCT ( - - 10 )
c810: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
c820: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 0d 0a  b0..----..10....
c830: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
c840: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 34 37 20 2a  .SELECT ALL 47 *
c850: 20 2b 20 2b 20 39 32 20 41 53 20 63 6f 6c 32 20   + + 92 AS col2 
c860: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
c870: 30 0d 0a 2d 2d 2d 2d 0d 0a 34 33 32 34 0d 0a 34  0..----..4324..4
c880: 33 32 34 0d 0a 34 33 32 34 0d 0a 0d 0a 71 75 65  324..4324....que
c890: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
c8a0: 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 46 52  LECT ALL col0 FR
c8b0: 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48 45  OM tab2 cor0 WHE
c8c0: 52 45 20 2b 20 63 6f 6c 32 20 49 53 20 4e 4f 54  RE + col2 IS NOT
c8d0: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d   NULL..----..46.
c8e0: 0a 36 34 0d 0a 37 35 0d 0a 0d 0a 71 75 65 72 79  .64..75....query
c8f0: 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
c900: 45 43 54 20 41 4c 4c 20 2d 20 31 38 20 41 53 20  ECT ALL - 18 AS 
c910: 63 6f 6c 32 2c 20 2d 20 63 6f 6c 31 20 41 53 20  col2, - col1 AS 
c920: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 63  col2 FROM tab0 c
c930: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38 0d 0a  or0..----..-18..
c940: 2d 31 0d 0a 2d 31 38 0d 0a 2d 32 31 0d 0a 2d 31  -1..-18..-21..-1
c950: 38 0d 0a 2d 38 31 0d 0a 0d 0a 71 75 65 72 79 20  8..-81....query 
c960: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
c970: 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
c980: 57 48 45 52 45 20 4e 4f 54 20 2d 20 2b 20 63 6f  WHERE NOT - + co
c990: 6c 30 20 2f 20 2d 20 31 35 20 2d 20 2d 20 63 6f  l0 / - 15 - - co
c9a0: 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l0 IS NULL..----
c9b0: 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
c9c0: 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35 64 66  ng to c4b42765df
c9d0: 66 39 34 65 61 61 61 34 36 30 34 30 65 35 33 37  f94eaaa46040e537
c9e0: 66 62 34 33 62 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  fb43b7....onlyif
c9f0: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
ca00: 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66  te syntax: DIV f
ca10: 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
ca20: 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
ca30: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 36 39  owsort label-269
ca40: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
ca50: 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 44  T + COUNT( * ) D
ca60: 49 56 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53  IV COUNT( * ) AS
ca70: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
ca80: 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
ca90: 49 4e 20 74 61 62 31 20 41 53 20 63 6f 72 31 0d  IN tab1 AS cor1.
caa0: 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 73 6b 69 70  .----..1....skip
cab0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
cac0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
cad0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
cae0: 2d 32 36 39 0d 0a 53 45 4c 45 43 54 20 44 49 53  -269..SELECT DIS
caf0: 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54 20 28 20  TINCT + COUNT ( 
cb00: 2a 20 29 20 2f 20 43 4f 55 4e 54 20 28 20 2a 20  * ) / COUNT ( * 
cb10: 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
cb20: 61 62 30 20 41 53 20 63 6f 72 30 20 43 52 4f 53  ab0 AS cor0 CROS
cb30: 53 20 4a 4f 49 4e 20 74 61 62 31 20 41 53 20 63  S JOIN tab1 AS c
cb40: 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a  or1..----..1....
cb50: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
cb60: 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
cb70: 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
cb80: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
cb90: 2d 32 37 30 0d 0a 53 45 4c 45 43 54 20 28 20 2b  -270..SELECT ( +
cba0: 20 33 33 20 29 20 44 49 56 20 2b 20 63 6f 6c 32   33 ) DIV + col2
cbb0: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
cbc0: 0d 0a 30 0d 0a 30 0d 0a 31 0d 0a 0d 0a 73 6b 69  ..0..0..1....ski
cbd0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
cbe0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
cbf0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
cc00: 6c 2d 32 37 30 0d 0a 53 45 4c 45 43 54 20 28 20  l-270..SELECT ( 
cc10: 2b 20 33 33 20 29 20 2f 20 2b 20 63 6f 6c 32 20  + 33 ) / + col2 
cc20: 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
cc30: 0a 30 0d 0a 30 0d 0a 31 0d 0a 0d 0a 6f 6e 6c 79  .0..0..1....only
cc40: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
cc50: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
cc60: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
cc70: 61 62 65 6c 2d 32 37 31 0d 0a 53 45 4c 45 43 54  abel-271..SELECT
cc80: 20 4d 49 4e 28 20 2b 20 2d 20 35 34 20 29 20 46   MIN( + - 54 ) F
cc90: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
cca0: 2d 35 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -54....skipif my
ccb0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
ccc0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
ccd0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 37 31 0d  wsort label-271.
cce0: 0a 53 45 4c 45 43 54 20 4d 49 4e 20 28 20 2b 20  .SELECT MIN ( + 
ccf0: 2d 20 35 34 20 29 20 46 52 4f 4d 20 74 61 62 30  - 54 ) FROM tab0
cd00: 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 34 0d 0a 0d 0a 71  ..----..-54....q
cd10: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
cd20: 53 45 4c 45 43 54 20 32 37 20 2a 20 2b 20 39 32  SELECT 27 * + 92
cd30: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
cd40: 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
cd50: 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 31 20 2b   col1 * - col1 +
cd60: 20 2d 20 63 6f 6c 32 20 2d 20 63 6f 6c 31 20 4e   - col2 - col1 N
cd70: 4f 54 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20  OT BETWEEN NULL 
cd80: 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  AND NULL..----..
cd90: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
cda0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
cdb0: 4f 4d 20 74 61 62 31 20 63 6f 72 30 20 57 48 45  OM tab1 cor0 WHE
cdc0: 52 45 20 28 20 4e 4f 54 20 4e 55 4c 4c 20 49 53  RE ( NOT NULL IS
cdd0: 20 4e 4f 54 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d   NOT NULL )..---
cde0: 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
cdf0: 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31  ing to c6c0a4111
ce00: 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65  b36d04dbc811a11e
ce10: 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79  4d54cad....query
ce20: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
ce30: 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20  CT DISTINCT - - 
ce40: 28 20 2b 20 63 6f 6c 32 20 29 20 41 53 20 63 6f  ( + col2 ) AS co
ce50: 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
ce60: 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e 55 4c  cor0 WHERE ( NUL
ce70: 4c 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  L ) IS NOT NULL.
ce80: 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
ce90: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
cea0: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41  CT * FROM tab2 A
ceb0: 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20 63  S cor0 WHERE - c
cec0: 6f 6c 32 20 2a 20 2b 20 63 6f 6c 31 20 2a 20 2d  ol2 * + col1 * -
ced0: 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d   col2 IS NULL..-
cee0: 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
cef0: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
cf00: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
cf10: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
cf20: 72 74 20 6c 61 62 65 6c 2d 32 37 36 0d 0a 53 45  rt label-276..SE
cf30: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
cf40: 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
cf50: 47 4e 45 44 20 29 20 2b 20 2d 20 63 6f 6c 31 20  GNED ) + - col1 
cf60: 2f 20 2b 20 63 6f 6c 30 20 63 6f 6c 31 2c 20 2b  / + col0 col1, +
cf70: 20 32 30 20 2a 20 2d 20 36 31 20 2b 20 2b 20 2b   20 * - 61 + + +
cf80: 20 28 20 2b 20 2d 20 28 20 2d 20 2d 20 32 33 20   ( + - ( - - 23 
cf90: 29 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ) ) AS col2 FROM
cfa0: 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
cfb0: 0d 0a 4e 55 4c 4c 0d 0a 2d 31 32 34 33 0d 0a 0d  ..NULL..-1243...
cfc0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
cfd0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
cfe0: 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
cff0: 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
d000: 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
d010: 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
d020: 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
d030: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
d040: 32 37 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  276..SELECT DIST
d050: 49 4e 43 54 20 2d 20 43 41 53 54 20 28 20 4e 55  INCT - CAST ( NU
d060: 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
d070: 2b 20 2d 20 63 6f 6c 31 20 2f 20 2b 20 63 6f 6c  + - col1 / + col
d080: 30 20 63 6f 6c 31 2c 20 2b 20 32 30 20 2a 20 2d  0 col1, + 20 * -
d090: 20 36 31 20 2b 20 2b 20 2b 20 28 20 2b 20 2d 20   61 + + + ( + - 
d0a0: 28 20 2d 20 2d 20 32 33 20 29 20 29 20 41 53 20  ( - - 23 ) ) AS 
d0b0: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 63  col2 FROM tab1 c
d0c0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
d0d0: 0a 2d 31 32 34 33 0d 0a 0d 0a 6f 6e 6c 79 69 66  .-1243....onlyif
d0e0: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
d0f0: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
d100: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
d110: 65 6c 2d 32 37 37 0d 0a 53 45 4c 45 43 54 20 2d  el-277..SELECT -
d120: 20 2d 20 4d 41 58 28 20 41 4c 4c 20 2d 20 63 6f   - MAX( ALL - co
d130: 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41  l0 ) FROM tab0 A
d140: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
d150: 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  5....skipif mysq
d160: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
d170: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
d180: 6f 72 74 20 6c 61 62 65 6c 2d 32 37 37 0d 0a 53  ort label-277..S
d190: 45 4c 45 43 54 20 2d 20 2d 20 4d 41 58 20 28 20  ELECT - - MAX ( 
d1a0: 41 4c 4c 20 2d 20 63 6f 6c 30 20 29 20 46 52 4f  ALL - col0 ) FRO
d1b0: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
d1c0: 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 0d 0a 6f 6e 6c  ----..-15....onl
d1d0: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
d1e0: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
d1f0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
d200: 6c 61 62 65 6c 2d 32 37 38 0d 0a 53 45 4c 45 43  label-278..SELEC
d210: 54 20 41 4c 4c 20 39 30 20 2b 20 2d 20 43 4f 55  T ALL 90 + - COU
d220: 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  NT( * ) FROM tab
d230: 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
d240: 4e 55 4c 4c 20 3e 3d 20 2b 20 36 0d 0a 2d 2d 2d  NULL >= + 6..---
d250: 2d 0d 0a 39 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..90....skipif 
d260: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
d270: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
d280: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 37  rowsort label-27
d290: 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 39 30  8..SELECT ALL 90
d2a0: 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29   + - COUNT ( * )
d2b0: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
d2c0: 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 3e 3d  r0 WHERE NULL >=
d2d0: 20 2b 20 36 0d 0a 2d 2d 2d 2d 0d 0a 39 30 0d 0a   + 6..----..90..
d2e0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
d2f0: 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32  t..SELECT - col2
d300: 20 2a 20 2b 20 34 30 20 2d 20 2d 20 63 6f 6c 32   * + 40 - - col2
d310: 20 2a 20 2d 20 2b 20 63 6f 6c 31 20 41 53 20 63   * - + col1 AS c
d320: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  ol0 FROM tab0 co
d330: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 30 35 39 0d  r0..----..-4059.
d340: 0a 2d 35 36 38 37 0d 0a 2d 36 31 30 0d 0a 0d 0a  .-5687..-610....
d350: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
d360: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
d370: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
d380: 72 74 20 6c 61 62 65 6c 2d 32 38 30 0d 0a 53 45  rt label-280..SE
d390: 4c 45 43 54 20 41 4c 4c 20 37 39 20 2d 20 43 4f  LECT ALL 79 - CO
d3a0: 55 4e 54 28 20 2a 20 29 20 2b 20 2b 20 36 31 20  UNT( * ) + + 61 
d3b0: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
d3c0: 32 0d 0a 2d 2d 2d 2d 0d 0a 31 33 37 0d 0a 0d 0a  2..----..137....
d3d0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
d3e0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
d3f0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
d400: 61 62 65 6c 2d 32 38 30 0d 0a 53 45 4c 45 43 54  abel-280..SELECT
d410: 20 41 4c 4c 20 37 39 20 2d 20 43 4f 55 4e 54 20   ALL 79 - COUNT 
d420: 28 20 2a 20 29 20 2b 20 2b 20 36 31 20 41 53 20  ( * ) + + 61 AS 
d430: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col1 FROM tab2..
d440: 2d 2d 2d 2d 0d 0a 31 33 37 0d 0a 0d 0a 71 75 65  ----..137....que
d450: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
d460: 4c 45 43 54 20 35 33 20 2b 20 2b 20 63 6f 6c 32  LECT 53 + + col2
d470: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
d480: 0d 0a 31 31 31 0d 0a 37 36 0d 0a 39 33 0d 0a 0d  ..111..76..93...
d490: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
d4a0: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
d4b0: 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
d4c0: 20 4e 4f 54 20 2b 20 63 6f 6c 32 20 3e 3d 20 4e   NOT + col2 >= N
d4d0: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
d4e0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
d4f0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 33 33  LECT DISTINCT 33
d500: 20 2a 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c   * + col1 AS col
d510: 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
d520: 2d 0d 0a 32 36 37 33 0d 0a 33 33 0d 0a 36 39 33  -..2673..33..693
d530: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
d540: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
d550: 49 4e 43 54 20 2b 20 63 6f 6c 31 20 2d 20 2d 20  INCT + col1 - - 
d560: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 57  col2 FROM tab0 W
d570: 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3e 3d  HERE NOT NULL >=
d580: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   NULL..----....o
d590: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
d5a0: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
d5b0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
d5c0: 74 20 6c 61 62 65 6c 2d 32 38 35 0d 0a 53 45 4c  t label-285..SEL
d5d0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55  ECT DISTINCT COU
d5e0: 4e 54 28 20 41 4c 4c 20 2b 20 38 33 20 29 20 41  NT( ALL + 83 ) A
d5f0: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
d600: 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69  ..----..3....ski
d610: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
d620: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
d630: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
d640: 6c 2d 32 38 35 0d 0a 53 45 4c 45 43 54 20 44 49  l-285..SELECT DI
d650: 53 54 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 41  STINCT COUNT ( A
d660: 4c 4c 20 2b 20 38 33 20 29 20 41 53 20 63 6f 6c  LL + 83 ) AS col
d670: 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
d680: 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -..3....query I 
d690: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
d6a0: 41 4c 4c 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31  ALL col0 AS col1
d6b0: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
d6c0: 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  r0 WHERE NOT col
d6d0: 32 20 3d 20 2d 20 2b 20 63 6f 6c 30 0d 0a 2d 2d  2 = - + col0..--
d6e0: 2d 2d 0d 0a 35 31 0d 0a 38 35 0d 0a 39 31 0d 0a  --..51..85..91..
d6f0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
d700: 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 31 32  t..SELECT - - 12
d710: 20 2b 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74   + + col2 FROM t
d720: 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
d730: 45 20 28 20 4e 55 4c 4c 20 29 20 49 53 20 4e 55  E ( NULL ) IS NU
d740: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 31 31 0d 0a 32  LL..----..111..2
d750: 32 0d 0a 35 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  2..59....onlyif 
d760: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
d770: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
d780: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
d790: 6c 2d 32 38 38 0d 0a 53 45 4c 45 43 54 20 41 4c  l-288..SELECT AL
d7a0: 4c 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2d  L COUNT( * ) * -
d7b0: 20 2b 20 28 20 2b 20 43 4f 55 4e 54 28 20 2d 20   + ( + COUNT( - 
d7c0: 2b 20 63 6f 6c 30 20 29 20 29 20 41 53 20 63 6f  + col0 ) ) AS co
d7d0: 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l0 FROM tab2..--
d7e0: 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 73 6b 69 70 69 66  --..-9....skipif
d7f0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
d800: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
d810: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
d820: 38 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43  88..SELECT ALL C
d830: 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20 2b  OUNT ( * ) * - +
d840: 20 28 20 2b 20 43 4f 55 4e 54 20 28 20 2d 20 2b   ( + COUNT ( - +
d850: 20 63 6f 6c 30 20 29 20 29 20 41 53 20 63 6f 6c   col0 ) ) AS col
d860: 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
d870: 2d 0d 0a 2d 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -..-9....onlyif 
d880: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
d890: 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70  tax: DECIMAL typ
d8a0: 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
d8b0: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38 39 0d 0a  sort label-289..
d8c0: 53 45 4c 45 43 54 20 2d 20 2b 20 63 6f 6c 32 20  SELECT - + col2 
d8d0: 2a 20 31 37 20 2a 20 2b 20 34 31 20 46 52 4f 4d  * 17 * + 41 FROM
d8e0: 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
d8f0: 45 52 45 20 4e 4f 54 20 2b 20 43 41 53 54 28 20  ERE NOT + CAST( 
d900: 2d 20 2d 20 36 35 20 41 53 20 44 45 43 49 4d 41  - - 65 AS DECIMA
d910: 4c 20 29 20 2b 20 2b 20 63 6f 6c 30 20 2f 20 2d  L ) + + col0 / -
d920: 20 2d 20 63 6f 6c 32 20 2d 20 63 6f 6c 31 20 2b   - col2 - col1 +
d930: 20 2b 20 2d 20 63 6f 6c 30 20 2f 20 2d 20 63 6f   + - col0 / - co
d940: 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l2 IS NULL..----
d950: 0d 0a 2d 34 31 31 32 33 0d 0a 2d 34 37 33 39 36  ..-41123..-47396
d960: 0d 0a 2d 36 36 39 31 32 0d 0a 0d 0a 73 6b 69 70  ..-66912....skip
d970: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
d980: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
d990: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
d9a0: 2d 32 38 39 0d 0a 53 45 4c 45 43 54 20 2d 20 2b  -289..SELECT - +
d9b0: 20 63 6f 6c 32 20 2a 20 31 37 20 2a 20 2b 20 34   col2 * 17 * + 4
d9c0: 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
d9d0: 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  or0 WHERE NOT + 
d9e0: 43 41 53 54 20 28 20 2d 20 2d 20 36 35 20 41 53  CAST ( - - 65 AS
d9f0: 20 52 45 41 4c 20 29 20 2b 20 2b 20 63 6f 6c 30   REAL ) + + col0
da00: 20 2f 20 2d 20 2d 20 63 6f 6c 32 20 2d 20 63 6f   / - - col2 - co
da10: 6c 31 20 2b 20 2b 20 2d 20 63 6f 6c 30 20 2f 20  l1 + + - col0 / 
da20: 2d 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a  - col2 IS NULL..
da30: 2d 2d 2d 2d 0d 0a 2d 34 31 31 32 33 0d 0a 2d 34  ----..-41123..-4
da40: 37 33 39 36 0d 0a 2d 36 36 39 31 32 0d 0a 0d 0a  7396..-66912....
da50: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
da60: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
da70: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
da80: 72 74 20 6c 61 62 65 6c 2d 32 39 30 0d 0a 53 45  rt label-290..SE
da90: 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28 20 2b 20  LECT - COUNT( + 
daa0: 33 39 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41  39 ) FROM tab1 A
dab0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  S cor0..----..-3
dac0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
dad0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
dae0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
daf0: 72 74 20 6c 61 62 65 6c 2d 32 39 30 0d 0a 53 45  rt label-290..SE
db00: 4c 45 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2b  LECT - COUNT ( +
db10: 20 33 39 20 29 20 46 52 4f 4d 20 74 61 62 31 20   39 ) FROM tab1 
db20: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
db30: 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
db40: 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
db50: 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
db60: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
db70: 6c 61 62 65 6c 2d 32 39 31 0d 0a 53 45 4c 45 43  label-291..SELEC
db80: 54 20 2b 20 2b 20 39 39 20 2a 20 63 6f 6c 31 20  T + + 99 * col1 
db90: 44 49 56 20 38 31 20 41 53 20 63 6f 6c 30 20 46  DIV 81 AS col0 F
dba0: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
dbb0: 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 32 35 0d 0a 39  ..----..1..25..9
dbc0: 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
dbd0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
dbe0: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
dbf0: 6f 72 74 20 6c 61 62 65 6c 2d 32 39 31 0d 0a 53  ort label-291..S
dc00: 45 4c 45 43 54 20 2b 20 2b 20 39 39 20 2a 20 63  ELECT + + 99 * c
dc10: 6f 6c 31 20 2f 20 38 31 20 41 53 20 63 6f 6c 30  ol1 / 81 AS col0
dc20: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
dc30: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 32 35 0d  r0..----..1..25.
dc40: 0a 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .99....onlyif my
dc50: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
dc60: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
dc70: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
dc80: 2d 32 39 32 0d 0a 53 45 4c 45 43 54 20 38 37 20  -292..SELECT 87 
dc90: 41 53 20 63 6f 6c 31 2c 20 43 4f 55 4e 54 28 20  AS col1, COUNT( 
dca0: 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  * ) FROM tab0 AS
dcb0: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
dcc0: 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  NULL IS NULL..--
dcd0: 2d 2d 0d 0a 38 37 0d 0a 30 0d 0a 0d 0a 73 6b 69  --..87..0....ski
dce0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
dcf0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
dd00: 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
dd10: 65 6c 2d 32 39 32 0d 0a 53 45 4c 45 43 54 20 38  el-292..SELECT 8
dd20: 37 20 41 53 20 63 6f 6c 31 2c 20 43 4f 55 4e 54  7 AS col1, COUNT
dd30: 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30   ( * ) FROM tab0
dd40: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
dd50: 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d  OT NULL IS NULL.
dd60: 0a 2d 2d 2d 2d 0d 0a 38 37 0d 0a 30 0d 0a 0d 0a  .----..87..0....
dd70: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
dd80: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
dd90: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
dda0: 72 74 20 6c 61 62 65 6c 2d 32 39 33 0d 0a 53 45  rt label-293..SE
ddb0: 4c 45 43 54 20 2b 20 2d 20 4d 41 58 28 20 41 4c  LECT + - MAX( AL
ddc0: 4c 20 2b 20 31 32 20 29 20 41 53 20 63 6f 6c 32  L + 12 ) AS col2
ddd0: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
dde0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 0d 0a 0d  r0..----..-12...
ddf0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
de00: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
de10: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
de20: 6c 61 62 65 6c 2d 32 39 33 0d 0a 53 45 4c 45 43  label-293..SELEC
de30: 54 20 2b 20 2d 20 4d 41 58 20 28 20 41 4c 4c 20  T + - MAX ( ALL 
de40: 2b 20 31 32 20 29 20 41 53 20 63 6f 6c 32 20 46  + 12 ) AS col2 F
de50: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
de60: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 0d 0a 0d 0a 71  ..----..-12....q
de70: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
de80: 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 63  SELECT ALL - + c
de90: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 57 48  ol0 FROM tab2 WH
dea0: 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20  ERE NOT NULL IS 
deb0: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b  NULL..----....sk
dec0: 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
ded0: 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
dee0: 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
def0: 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
df00: 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
df10: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 28  owsort..SELECT (
df20: 20 2b 20 32 39 20 29 20 2a 20 2d 20 37 36 20 63   + 29 ) * - 76 c
df30: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
df40: 2d 2d 2d 0d 0a 2d 32 32 30 34 0d 0a 2d 32 32 30  ---..-2204..-220
df50: 34 0d 0a 2d 32 32 30 34 0d 0a 0d 0a 71 75 65 72  4..-2204....quer
df60: 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
df70: 4c 45 43 54 20 63 6f 6c 31 20 41 53 20 63 6f 6c  LECT col1 AS col
df80: 32 2c 20 32 38 20 46 52 4f 4d 20 74 61 62 32 0d  2, 28 FROM tab2.
df90: 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 32 38 0d 0a 36  .----..51..28..6
dfa0: 37 0d 0a 32 38 0d 0a 37 37 0d 0a 32 38 0d 0a 0d  7..28..77..28...
dfb0: 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
dfc0: 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
dfd0: 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
dfe0: 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
dff0: 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
e000: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
e010: 43 54 20 2d 20 63 6f 6c 32 20 63 6f 6c 31 2c 20  CT - col2 col1, 
e020: 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  + col2 FROM tab2
e030: 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a 32 33 0d  ..----..-23..23.
e040: 0a 2d 34 30 0d 0a 34 30 0d 0a 2d 35 38 0d 0a 35  .-40..40..-58..5
e050: 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  8....query I row
e060: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 32  sort..SELECT - 2
e070: 32 20 2b 20 2d 20 35 33 20 2b 20 2b 20 2b 20 63  2 + - 53 + + + c
e080: 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol1 AS col2 FROM
e090: 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20   tab2 WHERE NOT 
e0a0: 4e 55 4c 4c 20 3e 20 2d 20 63 6f 6c 30 0d 0a 2d  NULL > - col0..-
e0b0: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ---....query III
e0c0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
e0d0: 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
e0e0: 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20  RE NOT NULL NOT 
e0f0: 42 45 54 57 45 45 4e 20 63 6f 6c 30 20 2f 20 2d  BETWEEN col0 / -
e100: 20 63 6f 6c 32 20 2a 20 63 6f 6c 32 20 2f 20 2b   col2 * col2 / +
e110: 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 31 20 2b   col2 + + col1 +
e120: 20 31 20 2a 20 2d 20 2b 20 33 31 20 41 4e 44 20   1 * - + 31 AND 
e130: 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  col2..----....on
e140: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
e150: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
e160: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
e170: 20 6c 61 62 65 6c 2d 33 30 30 0d 0a 53 45 4c 45   label-300..SELE
e180: 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20  CT - COUNT( * ) 
e190: 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  + - COUNT( * ) F
e1a0: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
e1b0: 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
e1c0: 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30  IS NULL..----..0
e1d0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
e1e0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
e1f0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
e200: 72 74 20 6c 61 62 65 6c 2d 33 30 30 0d 0a 53 45  rt label-300..SE
e210: 4c 45 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a  LECT - COUNT ( *
e220: 20 29 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a   ) + - COUNT ( *
e230: 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
e240: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  cor0 WHERE NOT N
e250: 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ULL IS NULL..---
e260: 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -..0....query I 
e270: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
e280: 41 4c 4c 20 2b 20 2d 20 33 39 20 2b 20 63 6f 6c  ALL + - 39 + col
e290: 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  0 AS col2 FROM t
e2a0: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
e2b0: 2d 0d 0a 2d 32 34 0d 0a 34 38 0d 0a 35 38 0d 0a  -..-24..48..58..
e2c0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
e2d0: 74 0d 0a 53 45 4c 45 43 54 20 28 20 2b 20 36 20  t..SELECT ( + 6 
e2e0: 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
e2f0: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
e300: 2d 0d 0a 36 0d 0a 36 0d 0a 36 0d 0a 0d 0a 71 75  -..6..6..6....qu
e310: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
e320: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 31 33 2c  SELECT ALL + 13,
e330: 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20   + col1 AS col0 
e340: 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
e350: 0a 31 33 0d 0a 35 31 0d 0a 31 33 0d 0a 36 37 0d  .13..51..13..67.
e360: 0a 31 33 0d 0a 37 37 0d 0a 0d 0a 71 75 65 72 79  .13..77....query
e370: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
e380: 43 54 20 2b 20 28 20 63 6f 6c 32 20 29 20 41 53  CT + ( col2 ) AS
e390: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
e3a0: 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 4f  WHERE NULL IS NO
e3b0: 54 20 4e 55 4c 4c 20 4f 52 20 4e 4f 54 20 4e 55  T NULL OR NOT NU
e3c0: 4c 4c 20 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  LL > NULL..----.
e3d0: 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
e3e0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
e3f0: 49 4e 43 54 20 2d 20 63 6f 6c 32 20 41 53 20 63  INCT - col2 AS c
e400: 6f 6c 32 2c 20 2d 20 28 20 2d 20 63 6f 6c 30 20  ol2, - ( - col0 
e410: 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
e420: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a  ab0..----..-10..
e430: 38 37 0d 0a 2d 34 37 0d 0a 31 35 0d 0a 2d 39 39  87..-47..15..-99
e440: 0d 0a 39 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..97....query I 
e450: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
e460: 41 4c 4c 20 2b 20 34 33 20 2a 20 2d 20 2d 20 63  ALL + 43 * - - c
e470: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
e480: 2d 2d 2d 0d 0a 32 30 32 31 0d 0a 34 32 35 37 0d  ---..2021..4257.
e490: 0a 34 33 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .430....onlyif m
e4a0: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
e4b0: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
e4c0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
e4d0: 2d 33 30 37 0d 0a 53 45 4c 45 43 54 20 2b 20 2b  -307..SELECT + +
e4e0: 20 37 38 20 2b 20 2b 20 2b 20 37 30 20 2a 20 2b   78 + + + 70 * +
e4f0: 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20   + COUNT( * ) + 
e500: 2b 20 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  + 2 FROM tab0 AS
e510: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 39 30   cor0..----..290
e520: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
e530: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
e540: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
e550: 72 74 20 6c 61 62 65 6c 2d 33 30 37 0d 0a 53 45  rt label-307..SE
e560: 4c 45 43 54 20 2b 20 2b 20 37 38 20 2b 20 2b 20  LECT + + 78 + + 
e570: 2b 20 37 30 20 2a 20 2b 20 2b 20 43 4f 55 4e 54  + 70 * + + COUNT
e580: 20 28 20 2a 20 29 20 2b 20 2b 20 32 20 46 52 4f   ( * ) + + 2 FRO
e590: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
e5a0: 2d 2d 2d 2d 0d 0a 32 39 30 0d 0a 0d 0a 71 75 65  ----..290....que
e5b0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
e5c0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
e5d0: 6c 32 20 2a 20 2d 20 2d 20 63 6f 6c 32 20 2a 20  l2 * - - col2 * 
e5e0: 2d 20 2b 20 30 20 46 52 4f 4d 20 74 61 62 32 20  - + 0 FROM tab2 
e5f0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  cor0..----..0...
e600: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
e610: 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20  ..SELECT - col1 
e620: 2b 20 2b 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20  + + + col0 FROM 
e630: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
e640: 2d 2d 0d 0a 33 37 0d 0a 34 34 0d 0a 38 30 0d 0a  --..37..44..80..
e650: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
e660: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
e670: 4f 4d 20 74 61 62 31 20 63 6f 72 30 20 57 48 45  OM tab1 cor0 WHE
e680: 52 45 20 34 38 20 2f 20 2d 20 2d 20 63 6f 6c 30  RE 48 / - - col0
e690: 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
e6a0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
e6b0: 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 39 20  t..SELECT + + 9 
e6c0: 2b 20 2b 20 2b 20 28 20 2b 20 34 38 20 29 20 46  + + + ( + 48 ) F
e6d0: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
e6e0: 0d 0a 2d 2d 2d 2d 0d 0a 35 37 0d 0a 35 37 0d 0a  ..----..57..57..
e6f0: 35 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  57....skipif pos
e700: 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
e710: 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
e720: 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
e730: 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
e740: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
e750: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
e760: 20 2d 20 36 37 20 2a 20 2b 20 63 6f 6c 32 20 2b   - 67 * + col2 +
e770: 20 2d 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 63 6f   - - col1 + + co
e780: 6c 31 2c 20 63 6f 6c 32 20 2a 20 2d 20 28 20 2b  l1, col2 * - ( +
e790: 20 2d 20 37 35 20 29 20 63 6f 6c 31 20 46 52 4f   - 75 ) col1 FRO
e7a0: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
e7b0: 2d 2d 2d 2d 0d 0a 2d 32 39 38 37 0d 0a 33 35 32  ----..-2987..352
e7c0: 35 0d 0a 2d 36 32 38 0d 0a 37 35 30 0d 0a 2d 36  5..-628..750..-6
e7d0: 36 33 31 0d 0a 37 34 32 35 0d 0a 0d 0a 71 75 65  631..7425....que
e7e0: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
e7f0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
e800: 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  * FROM tab0 AS c
e810: 6f 72 30 20 57 48 45 52 45 20 2d 20 63 6f 6c 30  or0 WHERE - col0
e820: 20 2a 20 2b 20 39 39 20 49 53 20 4e 55 4c 4c 0d   * + 99 IS NULL.
e830: 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
e840: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
e850: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
e860: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
e870: 6c 2d 33 31 34 0d 0a 53 45 4c 45 43 54 20 44 49  l-314..SELECT DI
e880: 53 54 49 4e 43 54 20 43 4f 55 4e 54 28 20 2a 20  STINCT COUNT( * 
e890: 29 20 2d 20 2b 20 2b 20 39 36 20 2d 20 2d 20 33  ) - + + 96 - - 3
e8a0: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
e8b0: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
e8c0: 0d 0a 2d 39 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-90....skipif 
e8d0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
e8e0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
e8f0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 31  rowsort label-31
e900: 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  4..SELECT DISTIN
e910: 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2d  CT COUNT ( * ) -
e920: 20 2b 20 2b 20 39 36 20 2d 20 2d 20 33 20 41 53   + + 96 - - 3 AS
e930: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
e940: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
e950: 39 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  90....onlyif mys
e960: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
e970: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
e980: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
e990: 31 35 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 41 58  15..SELECT + MAX
e9a0: 28 20 2b 20 2b 20 36 38 20 29 20 41 53 20 63 6f  ( + + 68 ) AS co
e9b0: 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
e9c0: 2d 2d 0d 0a 36 38 0d 0a 0d 0a 73 6b 69 70 69 66  --..68....skipif
e9d0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
e9e0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
e9f0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
ea00: 31 35 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 41 58  15..SELECT + MAX
ea10: 20 28 20 2b 20 2b 20 36 38 20 29 20 41 53 20 63   ( + + 68 ) AS c
ea20: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol0 FROM tab0..-
ea30: 2d 2d 2d 0d 0a 36 38 0d 0a 0d 0a 71 75 65 72 79  ---..68....query
ea40: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
ea50: 43 54 20 41 4c 4c 20 2d 20 38 32 20 2a 20 2d 20  CT ALL - 82 * - 
ea60: 63 6f 6c 31 20 2a 20 2d 20 2d 20 33 37 20 41 53  col1 * - - 37 AS
ea70: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d   col2 FROM tab2.
ea80: 0a 2d 2d 2d 2d 0d 0a 31 35 34 37 33 34 0d 0a 32  .----..154734..2
ea90: 30 33 32 37 38 0d 0a 32 33 33 36 31 38 0d 0a 0d  03278..233618...
eaa0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
eab0: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28 20 2d  ..SELECT ALL ( -
eac0: 20 2b 20 28 20 2b 20 63 6f 6c 31 20 29 20 29 20   + ( + col1 ) ) 
ead0: 2d 20 2b 20 39 36 20 46 52 4f 4d 20 74 61 62 32  - + 96 FROM tab2
eae0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 37 0d 0a 2d 31  ..----..-147..-1
eaf0: 36 33 0d 0a 2d 31 37 33 0d 0a 0d 0a 71 75 65 72  63..-173....quer
eb00: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
eb10: 45 43 54 20 41 4c 4c 20 2d 20 28 20 2b 20 2b 20  ECT ALL - ( + + 
eb20: 63 6f 6c 32 20 29 20 2a 20 2b 20 36 37 20 2a 20  col2 ) * + 67 * 
eb30: 2b 20 34 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  + 40 FROM tab0..
eb40: 2d 2d 2d 2d 0d 0a 2d 31 32 35 39 36 30 0d 0a 2d  ----..-125960..-
eb50: 32 36 35 33 32 30 0d 0a 2d 32 36 38 30 30 0d 0a  265320..-26800..
eb60: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
eb70: 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
eb80: 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
eb90: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
eba0: 65 6c 2d 33 31 39 0d 0a 53 45 4c 45 43 54 20 43  el-319..SELECT C
ebb0: 41 53 54 28 20 31 38 20 41 53 20 53 49 47 4e 45  AST( 18 AS SIGNE
ebc0: 44 20 29 20 2d 20 2b 20 36 37 20 2b 20 37 35 20  D ) - + 67 + 75 
ebd0: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
ebe0: 30 0d 0a 2d 2d 2d 2d 0d 0a 32 36 0d 0a 32 36 0d  0..----..26..26.
ebf0: 0a 32 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .26....skipif my
ec00: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
ec10: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
ec20: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 31 39 0d  wsort label-319.
ec30: 0a 53 45 4c 45 43 54 20 43 41 53 54 20 28 20 31  .SELECT CAST ( 1
ec40: 38 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2d  8 AS INTEGER ) -
ec50: 20 2b 20 36 37 20 2b 20 37 35 20 41 53 20 63 6f   + 67 + 75 AS co
ec60: 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
ec70: 2d 2d 0d 0a 32 36 0d 0a 32 36 0d 0a 32 36 0d 0a  --..26..26..26..
ec80: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
ec90: 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31  t..SELECT - col1
eca0: 20 2d 20 2b 20 2d 20 38 39 20 46 52 4f 4d 20 74   - + - 89 FROM t
ecb0: 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab1 cor0..----..
ecc0: 34 32 0d 0a 37 35 0d 0a 38 34 0d 0a 0d 0a 71 75  42..75..84....qu
ecd0: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
ece0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
ecf0: 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
ed00: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b  cor0 WHERE NOT +
ed10: 20 33 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a   3 IS NOT NULL..
ed20: 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
ed30: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
ed40: 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72   syntax: DIV for
ed50: 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
ed60: 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
ed70: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 32 32 0d 0a  sort label-322..
ed80: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
ed90: 2b 20 39 35 20 44 49 56 20 4d 41 58 28 20 2d 20  + 95 DIV MAX( - 
eda0: 2b 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61  + col0 ) FROM ta
edb0: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
edc0: 0d 0a 2d 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..-2....skipif m
edd0: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
ede0: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
edf0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 32 32  owsort label-322
ee00: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
ee10: 54 20 2b 20 39 35 20 2f 20 4d 41 58 20 28 20 2d  T + 95 / MAX ( -
ee20: 20 2b 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74   + col0 ) FROM t
ee30: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
ee40: 2d 0d 0a 2d 32 0d 0a 0d 0a 71 75 65 72 79 20 49  -..-2....query I
ee50: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
ee60: 20 2b 20 2d 20 33 31 20 2a 20 2d 20 63 6f 6c 31   + - 31 * - col1
ee70: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
ee80: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 35 31 31 0d 0a  r0..----..2511..
ee90: 33 31 0d 0a 36 35 31 0d 0a 0d 0a 6f 6e 6c 79 69  31..651....onlyi
eea0: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
eeb0: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
eec0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
eed0: 62 65 6c 2d 33 32 34 0d 0a 53 45 4c 45 43 54 20  bel-324..SELECT 
eee0: 44 49 53 54 49 4e 43 54 20 53 55 4d 28 20 44 49  DISTINCT SUM( DI
eef0: 53 54 49 4e 43 54 20 2d 20 2b 20 63 6f 6c 30 20  STINCT - + col0 
ef00: 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  ) FROM tab2..---
ef10: 2d 0d 0a 2d 31 38 35 0d 0a 0d 0a 73 6b 69 70 69  -..-185....skipi
ef20: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
ef30: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
ef40: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
ef50: 33 32 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  324..SELECT DIST
ef60: 49 4e 43 54 20 53 55 4d 20 28 20 44 49 53 54 49  INCT SUM ( DISTI
ef70: 4e 43 54 20 2d 20 2b 20 63 6f 6c 30 20 29 20 46  NCT - + col0 ) F
ef80: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
ef90: 2d 31 38 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49  -185....query II
efa0: 49 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  IIII rowsort..SE
efb0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
efc0: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
efd0: 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62  0 CROSS JOIN tab
efe0: 30 20 41 53 20 63 6f 72 31 20 57 48 45 52 45 20  0 AS cor1 WHERE 
eff0: 4e 4f 54 20 4e 55 4c 4c 20 49 4e 20 28 20 33 35  NOT NULL IN ( 35
f000: 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72   )..----....quer
f010: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
f020: 45 43 54 20 41 4c 4c 20 2b 20 2d 20 63 6f 6c 32  ECT ALL + - col2
f030: 20 2a 20 2d 20 28 20 63 6f 6c 31 20 29 20 46 52   * - ( col1 ) FR
f040: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
f050: 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 3c 20 2d  WHERE ( NULL < -
f060: 20 2b 20 31 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   + 12 )..----...
f070: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
f080: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
f090: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
f0a0: 6f 72 74 20 6c 61 62 65 6c 2d 33 32 37 0d 0a 53  ort label-327..S
f0b0: 45 4c 45 43 54 20 41 4c 4c 20 2b 20 53 55 4d 28  ELECT ALL + SUM(
f0c0: 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c   + col0 ) AS col
f0d0: 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
f0e0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 39 0d 0a  or0..----..199..
f0f0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
f100: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
f110: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
f120: 20 6c 61 62 65 6c 2d 33 32 37 0d 0a 53 45 4c 45   label-327..SELE
f130: 43 54 20 41 4c 4c 20 2b 20 53 55 4d 20 28 20 2b  CT ALL + SUM ( +
f140: 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30 20   col0 ) AS col0 
f150: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
f160: 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 39 0d 0a 0d 0a  0..----..199....
f170: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
f180: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
f190: 54 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f  T + + col0 AS co
f1a0: 6c 31 2c 20 2b 20 38 34 20 46 52 4f 4d 20 74 61  l1, + 84 FROM ta
f1b0: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
f1c0: 0d 0a 35 31 0d 0a 38 34 0d 0a 38 35 0d 0a 38 34  ..51..84..85..84
f1d0: 0d 0a 39 31 0d 0a 38 34 0d 0a 0d 0a 6f 6e 6c 79  ..91..84....only
f1e0: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
f1f0: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
f200: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
f210: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 32 39  owsort label-329
f220: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d  ..SELECT ALL - -
f230: 20 43 41 53 54 28 20 2b 20 63 6f 6c 32 20 41 53   CAST( + col2 AS
f240: 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74   SIGNED ) FROM t
f250: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
f260: 2d 0d 0a 32 33 0d 0a 34 30 0d 0a 35 38 0d 0a 0d  -..23..40..58...
f270: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
f280: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
f290: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
f2a0: 6c 61 62 65 6c 2d 33 32 39 0d 0a 53 45 4c 45 43  label-329..SELEC
f2b0: 54 20 41 4c 4c 20 2d 20 2d 20 43 41 53 54 20 28  T ALL - - CAST (
f2c0: 20 2b 20 63 6f 6c 32 20 41 53 20 49 4e 54 45 47   + col2 AS INTEG
f2d0: 45 52 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41  ER ) FROM tab2 A
f2e0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33  S cor0..----..23
f2f0: 0d 0a 34 30 0d 0a 35 38 0d 0a 0d 0a 6f 6e 6c 79  ..40..58....only
f300: 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
f310: 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
f320: 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
f330: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 33 30  owsort label-330
f340: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
f350: 54 20 2d 20 63 6f 6c 32 20 44 49 56 20 2b 20 2d  T - col2 DIV + -
f360: 20 28 20 2b 20 2d 20 63 6f 6c 30 20 29 20 46 52   ( + - col0 ) FR
f370: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
f380: 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 33 0d 0a 30  .----..-1..-3..0
f390: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
f3a0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
f3b0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
f3c0: 72 74 20 6c 61 62 65 6c 2d 33 33 30 0d 0a 53 45  rt label-330..SE
f3d0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
f3e0: 63 6f 6c 32 20 2f 20 2b 20 2d 20 28 20 2b 20 2d  col2 / + - ( + -
f3f0: 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62   col0 ) FROM tab
f400: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
f410: 0a 2d 31 0d 0a 2d 33 0d 0a 30 0d 0a 0d 0a 71 75  .-1..-3..0....qu
f420: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
f430: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
f440: 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   * FROM tab1 AS 
f450: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63  cor0 WHERE NOT c
f460: 6f 6c 31 20 2f 20 2d 20 2b 20 36 32 20 3c 3d 20  ol1 / - + 62 <= 
f470: 2b 20 2d 20 36 30 20 2b 20 2d 20 2d 20 38 33 20  + - 60 + - - 83 
f480: 2b 20 2d 20 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d  + - - col2..----
f490: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
f4a0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
f4b0: 20 2d 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 34 38   - + col2 + + 48
f4c0: 20 2a 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 63 6f   * - col1 * + co
f4d0: 6c 30 20 2f 20 2d 20 2d 20 63 6f 6c 31 2c 20 33  l0 / - - col1, 3
f4e0: 37 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  7 AS col1 FROM t
f4f0: 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
f500: 45 20 4e 4f 54 20 2b 20 38 34 20 2b 20 33 32 20  E NOT + 84 + 32 
f510: 2b 20 63 6f 6c 32 20 2b 20 31 37 20 4e 4f 54 20  + col2 + 17 NOT 
f520: 42 45 54 57 45 45 4e 20 2b 20 63 6f 6c 30 20 41  BETWEEN + col0 A
f530: 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  ND NULL..----...
f540: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
f550: 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
f560: 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
f570: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
f580: 6c 2d 33 33 33 0d 0a 53 45 4c 45 43 54 20 2b 20  l-333..SELECT + 
f590: 63 6f 6c 31 20 44 49 56 20 2b 20 35 36 20 41 53  col1 DIV + 56 AS
f5a0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
f5b0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30  cor0..----..0..0
f5c0: 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
f5d0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
f5e0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
f5f0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 33 33 0d  wsort label-333.
f600: 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2f  .SELECT + col1 /
f610: 20 2b 20 35 36 20 41 53 20 63 6f 6c 32 20 46 52   + 56 AS col2 FR
f620: 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d  OM tab1 cor0..--
f630: 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 6f  --..0..0..0....o
f640: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
f650: 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
f660: 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
f670: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
f680: 33 33 34 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32  334..SELECT col2
f690: 20 44 49 56 20 39 37 20 41 53 20 63 6f 6c 32 20   DIV 97 AS col2 
f6a0: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
f6b0: 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .0..0..0....skip
f6c0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
f6d0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
f6e0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
f6f0: 2d 33 33 34 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  -334..SELECT col
f700: 32 20 2f 20 39 37 20 41 53 20 63 6f 6c 32 20 46  2 / 97 AS col2 F
f710: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
f720: 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69  0..0..0....onlyi
f730: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
f740: 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65  yntax: aggregate
f750: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
f760: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
f770: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 33  rowsort label-33
f780: 35 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28  5..SELECT COUNT(
f790: 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
f7a0: 49 47 4e 45 44 20 29 20 29 20 41 53 20 63 6f 6c  IGNED ) ) AS col
f7b0: 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
f7c0: 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..0....skipif m
f7d0: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
f7e0: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
f7f0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 33 35  owsort label-335
f800: 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28  ..SELECT COUNT (
f810: 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
f820: 49 4e 54 45 47 45 52 20 29 20 29 20 41 53 20 63  INTEGER ) ) AS c
f830: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
f840: 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ---..0....onlyif
f850: 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
f860: 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
f870: 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
f880: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 33 36 0d 0a  sort label-336..
f890: 53 45 4c 45 43 54 20 34 37 20 44 49 56 20 31 31  SELECT 47 DIV 11
f8a0: 20 44 49 56 20 2d 20 63 6f 6c 31 20 2a 20 2d 20   DIV - col1 * - 
f8b0: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col1 FROM tab1..
f8c0: 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d  ----..0..0..0...
f8d0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
f8e0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
f8f0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
f900: 6c 61 62 65 6c 2d 33 33 36 0d 0a 53 45 4c 45 43  label-336..SELEC
f910: 54 20 34 37 20 2f 20 31 31 20 2f 20 2d 20 63 6f  T 47 / 11 / - co
f920: 6c 31 20 2a 20 2d 20 63 6f 6c 31 20 46 52 4f 4d  l1 * - col1 FROM
f930: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   tab1..----..0..
f940: 30 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49  0..0....query II
f950: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
f960: 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
f970: 31 20 57 48 45 52 45 20 2d 20 63 6f 6c 31 20 2a  1 WHERE - col1 *
f980: 20 38 32 20 3c 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d   82 < col2..----
f990: 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
f9a0: 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31 62  ng to c6c0a4111b
f9b0: 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65 34  36d04dbc811a11e4
f9c0: 64 35 34 63 61 64 0d 0a 0d 0a 6f 6e 6c 79 69 66  d54cad....onlyif
f9d0: 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
f9e0: 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
f9f0: 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
fa00: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 33 38 0d 0a  sort label-338..
fa10: 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 44 49  SELECT - col0 DI
fa20: 56 20 2d 20 32 30 20 41 53 20 63 6f 6c 31 20 46  V - 20 AS col1 F
fa30: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
fa40: 32 0d 0a 34 0d 0a 34 0d 0a 0d 0a 73 6b 69 70 69  2..4..4....skipi
fa50: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
fa60: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
fa70: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
fa80: 33 33 38 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  338..SELECT - co
fa90: 6c 30 20 2f 20 2d 20 32 30 20 41 53 20 63 6f 6c  l0 / - 20 AS col
faa0: 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
fab0: 2d 0d 0a 32 0d 0a 34 0d 0a 34 0d 0a 0d 0a 71 75  -..2..4..4....qu
fac0: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
fad0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
fae0: 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45   * FROM tab1 WHE
faf0: 52 45 20 4e 4f 54 20 63 6f 6c 30 20 42 45 54 57  RE NOT col0 BETW
fb00: 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c  EEN NULL AND NUL
fb10: 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
fb20: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
fb30: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
fb40: 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
fb50: 4e 55 4c 4c 20 3c 3d 20 2b 20 63 6f 6c 30 0d 0a  NULL <= + col0..
fb60: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
fb70: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
fb80: 39 35 20 2a 20 63 6f 6c 31 20 41 53 20 63 6f 6c  95 * col1 AS col
fb90: 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
fba0: 2d 0d 0a 34 38 34 35 0d 0a 36 33 36 35 0d 0a 37  -..4845..6365..7
fbb0: 33 31 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  315....skipif po
fbc0: 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
fbd0: 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
fbe0: 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
fbf0: 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
fc00: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
fc10: 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2b 20 2b  .SELECT col2 + +
fc20: 20 2b 20 28 20 2b 20 63 6f 6c 32 20 29 20 63 6f   + ( + col2 ) co
fc30: 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
fc40: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 38 0d  cor0..----..118.
fc50: 0a 31 33 36 0d 0a 31 39 32 0d 0a 0d 0a 6f 6e 6c  .136..192....onl
fc60: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
fc70: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
fc80: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
fc90: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 34  rowsort label-34
fca0: 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  3..SELECT DISTIN
fcb0: 43 54 20 41 56 47 20 28 20 43 41 53 54 28 20 4e  CT AVG ( CAST( N
fcc0: 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
fcd0: 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
fce0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
fcf0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
fd00: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
fd10: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
fd20: 74 20 6c 61 62 65 6c 2d 33 34 33 0d 0a 53 45 4c  t label-343..SEL
fd30: 45 43 54 20 44 49 53 54 49 4e 43 54 20 41 56 47  ECT DISTINCT AVG
fd40: 20 28 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   ( CAST ( NULL A
fd50: 53 20 49 4e 54 45 47 45 52 20 29 20 29 20 46 52  S INTEGER ) ) FR
fd60: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
fd70: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  .----..NULL....q
fd80: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
fd90: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
fda0: 2d 20 31 32 20 2a 20 2b 20 63 6f 6c 31 20 41 53  - 12 * + col1 AS
fdb0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
fdc0: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
fdd0: 54 20 63 6f 6c 32 20 2a 20 2b 20 39 39 20 3c 20  T col2 * + 99 < 
fde0: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
fdf0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
fe00: 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
fe10: 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
fe20: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
fe30: 34 35 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20 35  45..SELECT - ( 5
fe40: 36 20 29 20 44 49 56 20 2b 20 2d 20 63 6f 6c 32  6 ) DIV + - col2
fe50: 20 2a 20 2d 20 33 34 20 46 52 4f 4d 20 74 61 62   * - 34 FROM tab
fe60: 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30  1..----..0..0..0
fe70: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
fe80: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
fe90: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
fea0: 72 74 20 6c 61 62 65 6c 2d 33 34 35 0d 0a 53 45  rt label-345..SE
feb0: 4c 45 43 54 20 2d 20 28 20 35 36 20 29 20 2f 20  LECT - ( 56 ) / 
fec0: 2b 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 33 34 20  + - col2 * - 34 
fed0: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
fee0: 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .0..0..0....skip
fef0: 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
ff00: 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
ff10: 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
ff20: 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
ff30: 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
ff40: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d  sort..SELECT + -
ff50: 20 33 35 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   35 col1 FROM ta
ff60: 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53  b1 AS cor0 CROSS
ff70: 20 4a 4f 49 4e 20 74 61 62 30 20 63 6f 72 31 0d   JOIN tab0 cor1.
ff80: 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
ff90: 68 61 73 68 69 6e 67 20 74 6f 20 63 31 32 65 38  hashing to c12e8
ffa0: 62 64 64 36 38 37 63 39 30 34 30 61 35 36 30 30  bdd687c9040a5600
ffb0: 64 61 62 33 62 36 61 64 66 35 62 0d 0a 0d 0a 6f  dab3b6adf5b....o
ffc0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
ffd0: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
ffe0: 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
fff0: 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
10000 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
10010 6c 2d 33 34 37 0d 0a 53 45 4c 45 43 54 20 2b 20  l-347..SELECT + 
10020 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 44 49 56  - COUNT( * ) DIV
10030 20 2d 20 37 38 20 46 52 4f 4d 20 74 61 62 32 20   - 78 FROM tab2 
10040 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
10050 49 4e 20 74 61 62 30 20 41 53 20 63 6f 72 31 0d  IN tab0 AS cor1.
10060 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .----..0....skip
10070 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
10080 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
10090 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
100a0 2d 33 34 37 0d 0a 53 45 4c 45 43 54 20 2b 20 2d  -347..SELECT + -
100b0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2f 20 2d   COUNT ( * ) / -
100c0 20 37 38 20 46 52 4f 4d 20 74 61 62 32 20 41 53   78 FROM tab2 AS
100d0 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
100e0 20 74 61 62 30 20 41 53 20 63 6f 72 31 0d 0a 2d   tab0 AS cor1..-
100f0 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ---..0....onlyif
10100 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
10110 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
10120 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
10130 65 6c 2d 33 34 38 0d 0a 53 45 4c 45 43 54 20 2b  el-348..SELECT +
10140 20 28 20 53 55 4d 28 20 2b 20 2b 20 63 6f 6c 30   ( SUM( + + col0
10150 20 29 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f   ) ) AS col2 FRO
10160 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 38  M tab2..----..18
10170 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  5....skipif mysq
10180 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
10190 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
101a0 6f 72 74 20 6c 61 62 65 6c 2d 33 34 38 0d 0a 53  ort label-348..S
101b0 45 4c 45 43 54 20 2b 20 28 20 53 55 4d 20 28 20  ELECT + ( SUM ( 
101c0 2b 20 2b 20 63 6f 6c 30 20 29 20 29 20 41 53 20  + + col0 ) ) AS 
101d0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col2 FROM tab2..
101e0 2d 2d 2d 2d 0d 0a 31 38 35 0d 0a 0d 0a 71 75 65  ----..185....que
101f0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
10200 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
10210 39 31 20 2b 20 2b 20 63 6f 6c 30 20 2a 20 28 20  91 + + col0 * ( 
10220 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 32 20 46  col2 ) AS col2 F
10230 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
10240 0d 0a 2d 2d 2d 2d 0d 0a 32 34 36 39 0d 0a 34 32  ..----..2469..42
10250 35 39 0d 0a 39 36 37 0d 0a 0d 0a 71 75 65 72 79  59..967....query
10260 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
10270 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
10280 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28   AS cor0 WHERE (
10290 20 2b 20 28 20 2d 20 63 6f 6c 30 20 29 20 29 20   + ( - col0 ) ) 
102a0 2a 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55  * col2 IS NOT NU
102b0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  LL..----..9 valu
102c0 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34  es hashing to c4
102d0 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34  b42765dff94eaaa4
102e0 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a  6040e537fb43b7..
102f0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
10300 74 0d 0a 53 45 4c 45 43 54 20 28 20 2d 20 2d 20  t..SELECT ( - - 
10310 33 30 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41  30 ) FROM tab1 A
10320 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c  S cor0 WHERE NUL
10330 4c 20 3c 3e 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d  L <> col0..----.
10340 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
10350 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
10360 20 31 38 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 63   18 + col1 + - c
10370 6f 6c 30 20 2a 20 2d 20 2d 20 63 6f 6c 31 20 46  ol0 * - - col1 F
10380 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
10390 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 32 34 38 0d 0a 2d  ..----..-4248..-
103a0 34 33 38 0d 0a 2d 37 31 38 0d 0a 0d 0a 71 75 65  438..-718....que
103b0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
103c0 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20  LECT ALL - col2 
103d0 2b 20 2d 20 37 33 20 41 53 20 63 6f 6c 31 20 46  + - 73 AS col1 F
103e0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
103f0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 33 0d 0a 2d 31  ..----..-113..-1
10400 33 31 0d 0a 2d 39 36 0d 0a 0d 0a 6f 6e 6c 79 69  31..-96....onlyi
10410 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
10420 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20  ate syntax: DIV 
10430 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
10440 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
10450 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 35  rowsort label-35
10460 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f  4..SELECT ALL CO
10470 55 4e 54 28 20 2a 20 29 20 44 49 56 20 43 4f 55  UNT( * ) DIV COU
10480 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20  NT( * ) AS col0 
10490 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
104a0 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .1....skipif mys
104b0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
104c0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
104d0 73 6f 72 74 20 6c 61 62 65 6c 2d 33 35 34 0d 0a  sort label-354..
104e0 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54  SELECT ALL COUNT
104f0 20 28 20 2a 20 29 20 2f 20 43 4f 55 4e 54 20 28   ( * ) / COUNT (
10500 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f   * ) AS col0 FRO
10510 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d  M tab0..----..1.
10520 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
10530 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
10540 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
10550 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
10560 61 62 65 6c 2d 33 35 35 0d 0a 53 45 4c 45 43 54  abel-355..SELECT
10570 20 41 4c 4c 20 2b 20 33 34 20 2a 20 2b 20 2d 20   ALL + 34 * + - 
10580 35 37 20 2a 20 2d 20 63 6f 6c 30 20 44 49 56 20  57 * - col0 DIV 
10590 2d 20 63 6f 6c 30 20 2d 20 2d 20 2d 20 63 6f 6c  - col0 - - - col
105a0 32 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31  2 + col0 AS col1
105b0 2c 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c  , + col1 * + col
105c0 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  1 AS col1 FROM t
105d0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 31 32  ab1..----..-1912
105e0 0d 0a 32 35 0d 0a 2d 31 39 31 35 0d 0a 32 32 30  ..25..-1915..220
105f0 39 0d 0a 2d 31 39 38 33 0d 0a 31 39 36 0d 0a 0d  9..-1983..196...
10600 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
10610 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
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 35 35 0d 0a 53 45 4c 45   label-355..SELE
10640 43 54 20 41 4c 4c 20 2b 20 33 34 20 2a 20 2b 20  CT ALL + 34 * + 
10650 2d 20 35 37 20 2a 20 2d 20 63 6f 6c 30 20 2f 20  - 57 * - col0 / 
10660 2d 20 63 6f 6c 30 20 2d 20 2d 20 2d 20 63 6f 6c  - col0 - - - col
10670 32 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31  2 + col0 AS col1
10680 2c 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c  , + col1 * + col
10690 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  1 AS col1 FROM t
106a0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 31 32  ab1..----..-1912
106b0 0d 0a 32 35 0d 0a 2d 31 39 31 35 0d 0a 32 32 30  ..25..-1915..220
106c0 39 0d 0a 2d 31 39 38 33 0d 0a 31 39 36 0d 0a 0d  9..-1983..196...
106d0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
106e0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
106f0 43 54 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 2c  CT col1 AS col1,
10700 20 2d 20 28 20 2d 20 63 6f 6c 31 20 29 20 46 52   - ( - col1 ) FR
10710 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab1..----..1
10720 34 0d 0a 31 34 0d 0a 34 37 0d 0a 34 37 0d 0a 35  4..14..47..47..5
10730 0d 0a 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..5....onlyif my
10740 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
10750 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
10760 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
10770 33 35 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  357..SELECT DIST
10780 49 4e 43 54 20 53 55 4d 28 20 2d 20 63 6f 6c 30  INCT SUM( - col0
10790 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
107a0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
107b0 2d 2d 0d 0a 2d 32 32 37 0d 0a 0d 0a 73 6b 69 70  --..-227....skip
107c0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
107d0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
107e0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
107f0 2d 33 35 37 0d 0a 53 45 4c 45 43 54 20 44 49 53  -357..SELECT DIS
10800 54 49 4e 43 54 20 53 55 4d 20 28 20 2d 20 63 6f  TINCT SUM ( - co
10810 6c 30 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  l0 ) AS col0 FRO
10820 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
10830 2d 2d 2d 2d 0d 0a 2d 32 32 37 0d 0a 0d 0a 6f 6e  ----..-227....on
10840 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
10850 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
10860 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
10870 20 6c 61 62 65 6c 2d 33 35 38 0d 0a 53 45 4c 45   label-358..SELE
10880 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20  CT DISTINCT - - 
10890 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2d 20 4d  COUNT( * ) * - M
108a0 41 58 28 20 41 4c 4c 20 2b 20 2d 20 63 6f 6c 30  AX( ALL + - col0
108b0 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
108c0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
108d0 2d 2d 0d 0a 31 33 38 0d 0a 0d 0a 73 6b 69 70 69  --..138....skipi
108e0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
108f0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
10900 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
10910 33 35 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  358..SELECT DIST
10920 49 4e 43 54 20 2d 20 2d 20 43 4f 55 4e 54 20 28  INCT - - COUNT (
10930 20 2a 20 29 20 2a 20 2d 20 4d 41 58 20 28 20 41   * ) * - MAX ( A
10940 4c 4c 20 2b 20 2d 20 63 6f 6c 30 20 29 20 41 53  LL + - col0 ) AS
10950 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
10960 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
10970 33 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  38....onlyif mys
10980 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
10990 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
109a0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
109b0 20 6c 61 62 65 6c 2d 33 35 39 0d 0a 53 45 4c 45   label-359..SELE
109c0 43 54 20 37 30 20 44 49 56 20 63 6f 6c 32 20 46  CT 70 DIV col2 F
109d0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
109e0 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31 0d 0a 31 0d  ..----..0..1..1.
109f0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
10a00 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
10a10 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
10a20 74 20 6c 61 62 65 6c 2d 33 35 39 0d 0a 53 45 4c  t label-359..SEL
10a30 45 43 54 20 37 30 20 2f 20 63 6f 6c 32 20 46 52  ECT 70 / col2 FR
10a40 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
10a50 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31 0d 0a 31 0d 0a  .----..0..1..1..
10a60 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
10a70 74 0d 0a 53 45 4c 45 43 54 20 2d 20 38 33 20 2a  t..SELECT - 83 *
10a80 20 2b 20 2d 20 36 38 20 2b 20 2d 20 36 32 20 46   + - 68 + - 62 F
10a90 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d  ROM tab1 cor0..-
10aa0 2d 2d 2d 0d 0a 35 35 38 32 0d 0a 35 35 38 32 0d  ---..5582..5582.
10ab0 0a 35 35 38 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .5582....onlyif 
10ac0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
10ad0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
10ae0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
10af0 6c 2d 33 36 31 0d 0a 53 45 4c 45 43 54 20 44 49  l-361..SELECT DI
10b00 53 54 49 4e 43 54 20 2d 20 53 55 4d 28 20 2b 20  STINCT - SUM( + 
10b10 38 37 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57  87 ) FROM tab1 W
10b20 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 4f 54  HERE NULL IS NOT
10b30 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   NULL..----..NUL
10b40 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
10b50 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
10b60 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
10b70 6f 72 74 20 6c 61 62 65 6c 2d 33 36 31 0d 0a 53  ort label-361..S
10b80 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
10b90 20 53 55 4d 20 28 20 2b 20 38 37 20 29 20 46 52   SUM ( + 87 ) FR
10ba0 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 55  OM tab1 WHERE NU
10bb0 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  LL IS NOT NULL..
10bc0 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  ----..NULL....qu
10bd0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
10be0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 39  ELECT DISTINCT 9
10bf0 39 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  9 AS col2 FROM t
10c00 61 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f 53  ab1 AS cor0 CROS
10c10 53 20 4a 4f 49 4e 20 74 61 62 30 20 63 6f 72 31  S JOIN tab0 cor1
10c20 0d 0a 2d 2d 2d 2d 0d 0a 39 39 0d 0a 0d 0a 71 75  ..----..99....qu
10c30 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
10c40 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 38 34  ELECT ALL + - 84
10c50 20 2a 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 63 6f   * + col1 + - co
10c60 6c 30 20 2b 20 28 20 2d 20 2b 20 63 6f 6c 30 20  l0 + ( - + col0 
10c70 29 20 2b 20 2b 20 28 20 63 6f 6c 31 20 29 20 2b  ) + + ( col1 ) +
10c80 20 2b 20 36 33 20 46 52 4f 4d 20 74 61 62 30 20   + 63 FROM tab0 
10c90 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
10ca0 31 38 35 34 0d 0a 2d 32 31 34 0d 0a 2d 36 36 39  1854..-214..-669
10cb0 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  0....query II ro
10cc0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
10cd0 53 54 49 4e 43 54 20 2d 20 32 34 20 2a 20 2d 20  STINCT - 24 * - 
10ce0 28 20 2d 20 2b 20 63 6f 6c 31 20 29 20 41 53 20  ( - + col1 ) AS 
10cf0 63 6f 6c 31 2c 20 2b 20 34 39 20 46 52 4f 4d 20  col1, + 49 FROM 
10d00 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
10d10 2d 2d 0d 0a 2d 31 32 32 34 0d 0a 34 39 0d 0a 2d  --..-1224..49..-
10d20 31 36 30 38 0d 0a 34 39 0d 0a 2d 31 38 34 38 0d  1608..49..-1848.
10d30 0a 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .49....query I r
10d40 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 36  owsort..SELECT 6
10d50 34 20 2b 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f  4 + - col0 AS co
10d60 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
10d70 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 0d  cor0..----..-21.
10d80 0a 2d 32 37 0d 0a 31 33 0d 0a 0d 0a 6f 6e 6c 79  .-27..13....only
10d90 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
10da0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
10db0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
10dc0 6c 61 62 65 6c 2d 33 36 36 0d 0a 53 45 4c 45 43  label-366..SELEC
10dd0 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 28 20 2b  T ALL - COUNT( +
10de0 20 2d 20 63 6f 6c 32 20 29 2c 20 2d 20 43 4f 55   - col2 ), - COU
10df0 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20  NT( * ) AS col0 
10e00 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
10e10 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 2d 33 0d  0..----..-3..-3.
10e20 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
10e30 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
10e40 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
10e50 72 74 20 6c 61 62 65 6c 2d 33 36 36 0d 0a 53 45  rt label-366..SE
10e60 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54  LECT ALL - COUNT
10e70 20 28 20 2b 20 2d 20 63 6f 6c 32 20 29 2c 20 2d   ( + - col2 ), -
10e80 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
10e90 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
10ea0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  S cor0..----..-3
10eb0 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..-3....query II
10ec0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
10ed0 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48  T * FROM tab1 WH
10ee0 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 4e  ERE NOT ( NULL N
10ef0 4f 54 20 49 4e 20 28 20 32 31 20 2a 20 63 6f 6c  OT IN ( 21 * col
10f00 32 2c 20 2b 20 63 6f 6c 32 20 29 20 29 0d 0a 2d  2, + col2 ) )..-
10f10 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
10f20 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
10f30 6f 6c 30 20 2b 20 2d 20 35 34 20 46 52 4f 4d 20  ol0 + - 54 FROM 
10f40 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a  tab1..----..-3..
10f50 33 31 0d 0a 33 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  31..37....onlyif
10f60 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
10f70 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
10f80 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72  n: ..query III r
10f90 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 36 39  owsort label-369
10fa0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63  ..SELECT ALL - c
10fb0 6f 6c 30 20 44 49 56 20 2d 20 28 20 2d 20 2b 20  ol0 DIV - ( - + 
10fc0 39 20 29 2c 20 32 31 20 41 53 20 63 6f 6c 32 2c  9 ), 21 AS col2,
10fd0 20 2b 20 33 30 20 41 53 20 63 6f 6c 31 20 46 52   + 30 AS col1 FR
10fe0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 39  OM tab2..----..9
10ff0 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
11000 74 6f 20 62 62 35 31 66 37 32 39 33 38 37 36 35  to bb51f72938765
11010 62 34 61 32 36 64 64 63 63 30 65 39 62 38 33 38  b4a26ddcc0e9b838
11020 64 65 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  de1....skipif my
11030 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
11040 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20  ible..query III 
11050 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 36  rowsort label-36
11060 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  9..SELECT ALL - 
11070 63 6f 6c 30 20 2f 20 2d 20 28 20 2d 20 2b 20 39  col0 / - ( - + 9
11080 20 29 2c 20 32 31 20 41 53 20 63 6f 6c 32 2c 20   ), 21 AS col2, 
11090 2b 20 33 30 20 41 53 20 63 6f 6c 31 20 46 52 4f  + 30 AS col1 FRO
110a0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20  M tab2..----..9 
110b0 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
110c0 6f 20 62 62 35 31 66 37 32 39 33 38 37 36 35 62  o bb51f72938765b
110d0 34 61 32 36 64 64 63 63 30 65 39 62 38 33 38 64  4a26ddcc0e9b838d
110e0 65 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  e1....onlyif mys
110f0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
11100 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69  yntax: DIV for i
11110 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
11120 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
11130 72 74 20 6c 61 62 65 6c 2d 33 37 30 0d 0a 53 45  rt label-370..SE
11140 4c 45 43 54 20 38 35 20 44 49 56 20 2b 20 28 20  LECT 85 DIV + ( 
11150 2d 20 4d 49 4e 28 20 36 39 20 29 20 29 20 46 52  - MIN( 69 ) ) FR
11160 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
11170 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
11180 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
11190 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
111a0 6f 72 74 20 6c 61 62 65 6c 2d 33 37 30 0d 0a 53  ort label-370..S
111b0 45 4c 45 43 54 20 38 35 20 2f 20 2b 20 28 20 2d  ELECT 85 / + ( -
111c0 20 4d 49 4e 20 28 20 36 39 20 29 20 29 20 46 52   MIN ( 69 ) ) FR
111d0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
111e0 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
111f0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
11200 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49  ntax: ..query II
11210 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
11220 37 31 0d 0a 53 45 4c 45 43 54 20 2d 20 35 35 20  71..SELECT - 55 
11230 2a 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2b  * COUNT( * ) * +
11240 20 2b 20 32 30 20 2d 20 2b 20 43 4f 55 4e 54 28   + 20 - + COUNT(
11250 20 2a 20 29 20 41 53 20 63 6f 6c 30 2c 20 39 34   * ) AS col0, 94
11260 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
11270 57 48 45 52 45 20 28 20 2b 20 63 6f 6c 31 20 2b  WHERE ( + col1 +
11280 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c 20 29 0d   col0 IS NULL ).
11290 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 39 34 0d 0a 0d 0a  .----..0..94....
112a0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
112b0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73  ot compatible..s
112c0 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
112d0 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
112e0 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
112f0 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
11300 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49  olumns..query II
11310 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
11320 37 31 0d 0a 53 45 4c 45 43 54 20 2d 20 35 35 20  71..SELECT - 55 
11330 2a 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20  * COUNT ( * ) * 
11340 2b 20 2b 20 32 30 20 2d 20 2b 20 43 4f 55 4e 54  + + 20 - + COUNT
11350 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 2c 20   ( * ) AS col0, 
11360 39 34 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  94 col1 FROM tab
11370 30 20 57 48 45 52 45 20 28 20 2b 20 63 6f 6c 31  0 WHERE ( + col1
11380 20 2b 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c 20   + col0 IS NULL 
11390 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 39 34 0d 0a  )..----..0..94..
113a0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
113b0 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
113c0 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
113d0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
113e0 62 65 6c 2d 33 37 32 0d 0a 53 45 4c 45 43 54 20  bel-372..SELECT 
113f0 41 4c 4c 20 28 20 2d 20 63 6f 6c 32 20 29 20 44  ALL ( - col2 ) D
11400 49 56 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 2c  IV col0 AS col1,
11410 20 63 6f 6c 30 20 2a 20 63 6f 6c 30 20 2b 20 2b   col0 * col0 + +
11420 20 2d 20 35 37 20 41 53 20 63 6f 6c 31 20 46 52   - 57 AS col1 FR
11430 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30  OM tab2..----..0
11440 0d 0a 32 30 35 39 0d 0a 30 0d 0a 34 30 33 39 0d  ..2059..0..4039.
11450 0a 30 0d 0a 35 35 36 38 0d 0a 0d 0a 73 6b 69 70  .0..5568....skip
11460 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
11470 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
11480 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
11490 6c 2d 33 37 32 0d 0a 53 45 4c 45 43 54 20 41 4c  l-372..SELECT AL
114a0 4c 20 28 20 2d 20 63 6f 6c 32 20 29 20 2f 20 63  L ( - col2 ) / c
114b0 6f 6c 30 20 41 53 20 63 6f 6c 31 2c 20 63 6f 6c  ol0 AS col1, col
114c0 30 20 2a 20 63 6f 6c 30 20 2b 20 2b 20 2d 20 35  0 * col0 + + - 5
114d0 37 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  7 AS col1 FROM t
114e0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 32 30  ab2..----..0..20
114f0 35 39 0d 0a 30 0d 0a 34 30 33 39 0d 0a 30 0d 0a  59..0..4039..0..
11500 35 35 36 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  5568....onlyif m
11510 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
11520 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
11530 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
11540 2d 33 37 33 0d 0a 53 45 4c 45 43 54 20 44 49 53  -373..SELECT DIS
11550 54 49 4e 43 54 20 2d 20 33 37 20 2b 20 2b 20 2d  TINCT - 37 + + -
11560 20 36 37 20 2a 20 2b 20 2b 20 43 4f 55 4e 54 28   67 * + + COUNT(
11570 20 2a 20 29 20 2b 20 2d 20 33 39 20 41 53 20 63   * ) + - 39 AS c
11580 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol2 FROM tab1..-
11590 2d 2d 2d 0d 0a 2d 32 37 37 0d 0a 0d 0a 73 6b 69  ---..-277....ski
115a0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
115b0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
115c0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
115d0 6c 2d 33 37 33 0d 0a 53 45 4c 45 43 54 20 44 49  l-373..SELECT DI
115e0 53 54 49 4e 43 54 20 2d 20 33 37 20 2b 20 2b 20  STINCT - 37 + + 
115f0 2d 20 36 37 20 2a 20 2b 20 2b 20 43 4f 55 4e 54  - 67 * + + COUNT
11600 20 28 20 2a 20 29 20 2b 20 2d 20 33 39 20 41 53   ( * ) + - 39 AS
11610 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
11620 0a 2d 2d 2d 2d 0d 0a 2d 32 37 37 0d 0a 0d 0a 71  .----..-277....q
11630 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
11640 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c  SELECT ALL - col
11650 32 20 2b 20 2b 20 2b 20 63 6f 6c 30 20 46 52 4f  2 + + + col0 FRO
11660 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
11670 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 2d 33 32 0d 0a 37  ----..-2..-32..7
11680 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  7....query I row
11690 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
116a0 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 31 20 2b   col2 * - col1 +
116b0 20 63 6f 6c 31 20 2b 20 2b 20 34 36 20 41 53 20   col1 + + 46 AS 
116c0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
116d0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
116e0 32 38 34 0d 0a 2d 32 34 34 0d 0a 2d 33 31 30 33  284..-244..-3103
116f0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
11700 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
11710 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53  L * FROM tab2 AS
11720 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 38 37   cor0 WHERE + 87
11730 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
11740 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
11750 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61  hing to 75c998aa
11760 35 33 61 63 38 33 32 31 38 63 62 66 32 66 65 62  53ac83218cbf2feb
11770 39 36 32 64 30 61 34 39 0d 0a 0d 0a 71 75 65 72  962d0a49....quer
11780 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
11790 4c 45 43 54 20 2d 20 2d 20 39 36 2c 20 63 6f 6c  LECT - - 96, col
117a0 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
117b0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 36 0d 0a 31  or0..----..96..1
117c0 30 0d 0a 39 36 0d 0a 34 37 0d 0a 39 36 0d 0a 39  0..96..47..96..9
117d0 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  9....query I row
117e0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63  sort..SELECT + c
117f0 6f 6c 31 20 2a 20 2d 20 2b 20 63 6f 6c 32 20 2b  ol1 * - + col2 +
11800 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52   col0 AS col2 FR
11810 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
11820 57 48 45 52 45 20 63 6f 6c 31 20 42 45 54 57 45  WHERE col1 BETWE
11830 45 4e 20 2b 20 63 6f 6c 32 20 2d 20 2b 20 2b 20  EN + col2 - + + 
11840 34 38 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d  48 AND NULL..---
11850 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
11860 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
11870 20 2d 20 63 6f 6c 30 20 2f 20 39 39 20 2b 20 2b   - col0 / 99 + +
11880 20 63 6f 6c 30 20 2f 20 63 6f 6c 32 20 46 52 4f   col0 / col2 FRO
11890 4d 20 74 61 62 30 20 57 48 45 52 45 20 35 31 20  M tab0 WHERE 51 
118a0 3e 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d  > ( NULL )..----
118b0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
118c0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31  ort..SELECT col1
118d0 20 2a 20 2d 20 36 39 20 2b 20 2b 20 63 6f 6c 32   * - 69 + + col2
118e0 20 2a 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   * col0 FROM tab
118f0 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 34 36 31 0d 0a  2..----..-2461..
11900 2d 32 37 33 0d 0a 2d 32 37 35 33 0d 0a 0d 0a 71  -273..-2753....q
11910 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
11920 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
11930 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 63  tab0 WHERE NOT c
11940 6f 6c 30 20 2b 20 63 6f 6c 32 20 49 53 20 4e 55  ol0 + col2 IS NU
11950 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  LL..----..9 valu
11960 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34  es hashing to c4
11970 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34  b42765dff94eaaa4
11980 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a  6040e537fb43b7..
11990 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
119a0 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30  t..SELECT + col0
119b0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
119c0 62 31 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  b1 WHERE NOT NUL
119d0 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  L IS NULL..----.
119e0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
119f0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
11a00 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 2b  ROM tab2 WHERE +
11a10 20 63 6f 6c 32 20 2b 20 2b 20 34 31 20 49 53 20   col2 + + 41 IS 
11a20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
11a30 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
11a40 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63   to 75c998aa53ac
11a50 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64  83218cbf2feb962d
11a60 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20  0a49....query I 
11a70 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
11a80 2d 20 34 37 20 2f 20 2b 20 63 6f 6c 31 20 46 52  - 47 / + col1 FR
11a90 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 55  OM tab1 WHERE NU
11aa0 4c 4c 20 3e 20 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d  LL > + col2..---
11ab0 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
11ac0 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
11ad0 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
11ae0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
11af0 6c 61 62 65 6c 2d 33 38 35 0d 0a 53 45 4c 45 43  label-385..SELEC
11b00 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  T DISTINCT - col
11b10 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  0 AS col0 FROM t
11b20 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab0 WHERE NOT - 
11b30 63 6f 6c 31 20 2f 20 43 41 53 54 28 20 4e 55 4c  col1 / CAST( NUL
11b40 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 3e 20  L AS SIGNED ) > 
11b50 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
11b60 47 4e 45 44 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  GNED )..----....
11b70 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
11b80 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
11b90 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
11ba0 61 62 65 6c 2d 33 38 35 0d 0a 53 45 4c 45 43 54  abel-385..SELECT
11bb0 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30   DISTINCT - col0
11bc0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
11bd0 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63  b0 WHERE NOT - c
11be0 6f 6c 31 20 2f 20 43 41 53 54 20 28 20 4e 55 4c  ol1 / CAST ( NUL
11bf0 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 3e  L AS INTEGER ) >
11c00 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
11c10 49 4e 54 45 47 45 52 20 29 0d 0a 2d 2d 2d 2d 0d  INTEGER )..----.
11c20 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
11c30 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
11c40 4e 43 54 20 2b 20 38 34 20 2a 20 38 39 20 41 53  NCT + 84 * 89 AS
11c50 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
11c60 0a 2d 2d 2d 2d 0d 0a 37 34 37 36 0d 0a 0d 0a 73  .----..7476....s
11c70 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
11c80 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
11c90 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
11ca0 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
11cb0 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
11cc0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
11cd0 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 2a 20  DISTINCT col1 * 
11ce0 36 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  6 col0 FROM tab1
11cf0 0d 0a 2d 2d 2d 2d 0d 0a 32 38 32 0d 0a 33 30 0d  ..----..282..30.
11d00 0a 38 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .84....onlyif my
11d10 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
11d20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
11d30 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
11d40 33 38 38 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e  388..SELECT COUN
11d50 54 28 20 2a 20 29 20 2b 20 35 33 20 46 52 4f 4d  T( * ) + 53 FROM
11d60 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 36 0d   tab2..----..56.
11d70 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
11d80 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
11d90 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
11da0 74 20 6c 61 62 65 6c 2d 33 38 38 0d 0a 53 45 4c  t label-388..SEL
11db0 45 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ECT COUNT ( * ) 
11dc0 2b 20 35 33 20 46 52 4f 4d 20 74 61 62 32 0d 0a  + 53 FROM tab2..
11dd0 2d 2d 2d 2d 0d 0a 35 36 0d 0a 0d 0a 71 75 65 72  ----..56....quer
11de0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
11df0 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
11e00 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 32 31  0 WHERE NOT - 21
11e10 20 3e 20 63 6f 6c 30 20 2d 20 2d 20 63 6f 6c 32   > col0 - - col2
11e20 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
11e30 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34   hashing to c4b4
11e40 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30  2765dff94eaaa460
11e50 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a  40e537fb43b7....
11e60 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
11e70 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
11e80 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
11e90 4e 4f 54 20 2b 20 37 37 20 2a 20 63 6f 6c 32 20  NOT + 77 * col2 
11ea0 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  IS NULL..----..9
11eb0 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
11ec0 74 6f 20 63 34 62 34 32 37 36 35 64 66 66 39 34  to c4b42765dff94
11ed0 65 61 61 61 34 36 30 34 30 65 35 33 37 66 62 34  eaaa46040e537fb4
11ee0 33 62 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  3b7....query I r
11ef0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 33  owsort..SELECT 3
11f00 36 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  6 FROM tab2 WHER
11f10 45 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20 28  E NULL BETWEEN (
11f20 20 2d 20 63 6f 6c 32 20 29 20 41 4e 44 20 28 20   - col2 ) AND ( 
11f30 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  NULL )..----....
11f40 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
11f50 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32  .SELECT ALL col2
11f60 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
11f70 20 4e 4f 54 20 2d 20 63 6f 6c 31 20 49 53 20 4e   NOT - col1 IS N
11f80 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 34  ULL..----..10..4
11f90 37 0d 0a 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49  7..99....query I
11fa0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
11fb0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57  CT * FROM tab0 W
11fc0 48 45 52 45 20 4e 4f 54 20 31 38 20 2b 20 63 6f  HERE NOT 18 + co
11fd0 6c 32 20 3e 3d 20 28 20 2d 20 63 6f 6c 31 20 29  l2 >= ( - col1 )
11fe0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
11ff0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
12000 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
12010 65 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67  e: DIV for integ
12020 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
12030 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
12040 61 62 65 6c 2d 33 39 34 0d 0a 53 45 4c 45 43 54  abel-394..SELECT
12050 20 2b 20 43 41 53 54 28 20 2d 20 63 6f 6c 30 20   + CAST( - col0 
12060 41 53 20 53 49 47 4e 45 44 20 29 20 44 49 56 20  AS SIGNED ) DIV 
12070 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46  - col2 AS col2 F
12080 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
12090 31 0d 0a 31 0d 0a 32 0d 0a 0d 0a 73 6b 69 70 69  1..1..2....skipi
120a0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
120b0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
120c0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
120d0 33 39 34 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41  394..SELECT + CA
120e0 53 54 20 28 20 2d 20 63 6f 6c 30 20 41 53 20 49  ST ( - col0 AS I
120f0 4e 54 45 47 45 52 20 29 20 2f 20 2d 20 63 6f 6c  NTEGER ) / - col
12100 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  2 AS col2 FROM t
12110 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31 0d  ab2..----..1..1.
12120 0a 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .2....onlyif mys
12130 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
12140 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69  yntax: DIV for i
12150 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
12160 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
12170 72 74 20 6c 61 62 65 6c 2d 33 39 35 0d 0a 53 45  rt label-395..SE
12180 4c 45 43 54 20 2d 20 37 37 20 44 49 56 20 28 20  LECT - 77 DIV ( 
12190 2b 20 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20  + MAX( DISTINCT 
121a0 2d 20 63 6f 6c 31 20 29 20 29 20 41 53 20 63 6f  - col1 ) ) AS co
121b0 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
121c0 2d 2d 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..1....skipif 
121d0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
121e0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
121f0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39  rowsort label-39
12200 35 0d 0a 53 45 4c 45 43 54 20 2d 20 37 37 20 2f  5..SELECT - 77 /
12210 20 28 20 2b 20 4d 41 58 20 28 20 44 49 53 54 49   ( + MAX ( DISTI
12220 4e 43 54 20 2d 20 63 6f 6c 31 20 29 20 29 20 41  NCT - col1 ) ) A
12230 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
12240 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 6f 6e 6c  ..----..1....onl
12250 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
12260 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
12270 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
12280 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39  rowsort label-39
12290 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f  6..SELECT ALL co
122a0 6c 30 20 44 49 56 20 2b 20 63 6f 6c 30 20 41 53  l0 DIV + col0 AS
122b0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
122c0 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31 0d 0a 31 0d 0a  .----..1..1..1..
122d0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
122e0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
122f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
12300 20 6c 61 62 65 6c 2d 33 39 36 0d 0a 53 45 4c 45   label-396..SELE
12310 43 54 20 41 4c 4c 20 63 6f 6c 30 20 2f 20 2b 20  CT ALL col0 / + 
12320 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f  col0 AS col0 FRO
12330 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 0d  M tab2..----..1.
12340 0a 31 0d 0a 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .1..1....onlyif 
12350 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
12360 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
12370 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
12380 6c 2d 33 39 37 0d 0a 53 45 4c 45 43 54 20 44 49  l-397..SELECT DI
12390 53 54 49 4e 43 54 20 43 4f 55 4e 54 28 20 2a 20  STINCT COUNT( * 
123a0 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
123b0 61 62 31 20 57 48 45 52 45 20 2d 20 63 6f 6c 30  ab1 WHERE - col0
123c0 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e   BETWEEN NULL AN
123d0 44 20 2d 20 36 36 20 2a 20 63 6f 6c 31 0d 0a 2d  D - 66 * col1..-
123e0 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  ---..0....skipif
123f0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
12400 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
12410 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
12420 39 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  97..SELECT DISTI
12430 4e 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  NCT COUNT ( * ) 
12440 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
12450 31 20 57 48 45 52 45 20 2d 20 63 6f 6c 30 20 42  1 WHERE - col0 B
12460 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20  ETWEEN NULL AND 
12470 2d 20 36 36 20 2a 20 63 6f 6c 31 0d 0a 2d 2d 2d  - 66 * col1..---
12480 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -..0....query I 
12490 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
124a0 41 4c 4c 20 2b 20 34 30 20 2b 20 2d 20 63 6f 6c  ALL + 40 + - col
124b0 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  1 AS col0 FROM t
124c0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 0d 0a 32  ab1..----..-7..2
124d0 36 0d 0a 33 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  6..35....onlyif 
124e0 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
124f0 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73  tax: aggregate s
12500 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
12510 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
12520 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39 39 0d  wsort label-399.
12530 0a 53 45 4c 45 43 54 20 4d 41 58 28 20 44 49 53  .SELECT MAX( DIS
12540 54 49 4e 43 54 20 43 41 53 54 28 20 63 6f 6c 32  TINCT CAST( col2
12550 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20 46   AS SIGNED ) ) F
12560 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
12570 35 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  58....skipif mys
12580 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
12590 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
125a0 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39 39 0d 0a  sort label-399..
125b0 53 45 4c 45 43 54 20 4d 41 58 20 28 20 44 49 53  SELECT MAX ( DIS
125c0 54 49 4e 43 54 20 43 41 53 54 20 28 20 63 6f 6c  TINCT CAST ( col
125d0 32 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29  2 AS INTEGER ) )
125e0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
125f0 0d 0a 35 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..58....query I 
12600 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
12610 41 4c 4c 20 2d 20 63 6f 6c 32 20 2d 20 2d 20 63  ALL - col2 - - c
12620 6f 6c 32 20 2a 20 2d 20 63 6f 6c 32 20 46 52 4f  ol2 * - col2 FRO
12630 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  M tab1..----..-3
12640 35 34 30 0d 0a 2d 34 36 39 32 0d 0a 2d 39 33 31  540..-4692..-931
12650 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  2....query I row
12660 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
12670 54 49 4e 43 54 20 2b 20 28 20 2b 20 33 36 20 29  TINCT + ( + 36 )
12680 20 2b 20 35 31 20 46 52 4f 4d 20 74 61 62 30 0d   + 51 FROM tab0.
12690 0a 2d 2d 2d 2d 0d 0a 38 37 0d 0a 0d 0a 6f 6e 6c  .----..87....onl
126a0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
126b0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
126c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
126d0 6c 61 62 65 6c 2d 34 30 32 0d 0a 53 45 4c 45 43  label-402..SELEC
126e0 54 20 41 4c 4c 20 4d 41 58 28 20 2d 20 36 39 20  T ALL MAX( - 69 
126f0 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  ) FROM tab2 AS c
12700 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 39 0d 0a  or0..----..-69..
12710 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
12720 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
12730 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
12740 20 6c 61 62 65 6c 2d 34 30 32 0d 0a 53 45 4c 45   label-402..SELE
12750 43 54 20 41 4c 4c 20 4d 41 58 20 28 20 2d 20 36  CT ALL MAX ( - 6
12760 39 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53  9 ) FROM tab2 AS
12770 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 39   cor0..----..-69
12780 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
12790 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
127a0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
127b0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 30 33  owsort label-403
127c0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
127d0 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  T COUNT( * ) AS 
127e0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 63  col1 FROM tab2 c
127f0 6f 72 30 20 57 48 45 52 45 20 28 20 2b 20 28 20  or0 WHERE ( + ( 
12800 2b 20 28 20 63 6f 6c 32 20 29 20 29 20 29 20 42  + ( col2 ) ) ) B
12810 45 54 57 45 45 4e 20 31 32 20 41 4e 44 20 28 20  ETWEEN 12 AND ( 
12820 63 6f 6c 30 20 2b 20 2b 20 28 20 2b 20 32 36 20  col0 + + ( + 26 
12830 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a  ) )..----..3....
12840 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
12850 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
12860 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
12870 61 62 65 6c 2d 34 30 33 0d 0a 53 45 4c 45 43 54  abel-403..SELECT
12880 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 20   DISTINCT COUNT 
12890 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ( * ) AS col1 FR
128a0 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48 45  OM tab2 cor0 WHE
128b0 52 45 20 28 20 2b 20 28 20 2b 20 28 20 63 6f 6c  RE ( + ( + ( col
128c0 32 20 29 20 29 20 29 20 42 45 54 57 45 45 4e 20  2 ) ) ) BETWEEN 
128d0 31 32 20 41 4e 44 20 28 20 63 6f 6c 30 20 2b 20  12 AND ( col0 + 
128e0 2b 20 28 20 2b 20 32 36 20 29 20 29 0d 0a 2d 2d  + ( + 26 ) )..--
128f0 2d 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  --..3....onlyif 
12900 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
12910 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
12920 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
12930 6f 72 74 20 6c 61 62 65 6c 2d 34 30 34 0d 0a 53  ort label-404..S
12940 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 44 49 56  ELECT - col1 DIV
12950 20 2d 20 63 6f 6c 31 20 63 6f 6c 32 20 46 52 4f   - col1 col2 FRO
12960 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
12970 2d 2d 2d 2d 0d 0a 31 0d 0a 31 0d 0a 31 0d 0a 0d  ----..1..1..1...
12980 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
12990 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
129a0 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
129b0 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
129c0 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
129d0 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
129e0 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
129f0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
12a00 30 34 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  04..SELECT - col
12a10 31 20 2f 20 2d 20 63 6f 6c 31 20 63 6f 6c 32 20  1 / - col1 col2 
12a20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
12a30 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31 0d 0a 31  0..----..1..1..1
12a40 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
12a50 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
12a60 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
12a70 4e 4f 54 20 28 20 31 32 20 2b 20 63 6f 6c 31 20  NOT ( 12 + col1 
12a80 2a 20 2b 20 63 6f 6c 31 20 29 20 49 53 20 4e 4f  * + col1 ) IS NO
12a90 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  T NULL..----....
12aa0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
12ab0 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
12ac0 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
12ad0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
12ae0 2d 34 30 36 0d 0a 53 45 4c 45 43 54 20 44 49 53  -406..SELECT DIS
12af0 54 49 4e 43 54 20 63 6f 6c 30 20 44 49 56 20 2b  TINCT col0 DIV +
12b00 20 33 37 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   37 AS col1 FROM
12b10 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   tab0..----..0..
12b20 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  2....skipif mysq
12b30 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
12b40 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
12b50 6f 72 74 20 6c 61 62 65 6c 2d 34 30 36 0d 0a 53  ort label-406..S
12b60 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
12b70 6f 6c 30 20 2f 20 2b 20 33 37 20 41 53 20 63 6f  ol0 / + 37 AS co
12b80 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l1 FROM tab0..--
12b90 2d 2d 0d 0a 30 0d 0a 32 0d 0a 0d 0a 71 75 65 72  --..0..2....quer
12ba0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
12bb0 45 43 54 20 39 38 20 46 52 4f 4d 20 74 61 62 30  ECT 98 FROM tab0
12bc0 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a   AS cor0 CROSS J
12bd0 4f 49 4e 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  OIN tab2..----..
12be0 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
12bf0 20 74 6f 20 66 39 64 65 65 38 63 32 31 31 31 36   to f9dee8c21116
12c00 66 31 61 65 64 36 34 61 63 35 31 36 30 65 31 39  f1aed64ac5160e19
12c10 30 38 30 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49  0809....query II
12c20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
12c30 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
12c40 32 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c  2 cor0 WHERE NUL
12c50 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2d 20  L NOT BETWEEN - 
12c60 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 30 20 41 4e  col2 * - col0 AN
12c70 44 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d  D ( NULL )..----
12c80 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
12c90 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
12ca0 2d 20 63 6f 6c 30 20 2b 20 33 36 20 46 52 4f 4d  - col0 + 36 FROM
12cb0 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
12cc0 0d 0a 2d 31 30 0d 0a 2d 32 38 0d 0a 2d 33 39 0d  ..-10..-28..-39.
12cd0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
12ce0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61  # CAST syntax: a
12cf0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
12d00 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
12d10 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
12d20 6c 61 62 65 6c 2d 34 31 30 0d 0a 53 45 4c 45 43  label-410..SELEC
12d30 54 20 53 55 4d 28 20 41 4c 4c 20 2d 20 43 41 53  T SUM( ALL - CAS
12d40 54 28 20 36 38 20 41 53 20 53 49 47 4e 45 44 20  T( 68 AS SIGNED 
12d50 29 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ) ) AS col0 FROM
12d60 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
12d70 0d 0a 2d 32 30 34 0d 0a 0d 0a 73 6b 69 70 69 66  ..-204....skipif
12d80 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
12d90 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
12da0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
12db0 31 30 0d 0a 53 45 4c 45 43 54 20 53 55 4d 20 28  10..SELECT SUM (
12dc0 20 41 4c 4c 20 2d 20 43 41 53 54 20 28 20 36 38   ALL - CAST ( 68
12dd0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20   AS INTEGER ) ) 
12de0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
12df0 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  2 cor0..----..-2
12e00 30 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  04....query III 
12e10 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
12e20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  * FROM tab2 AS c
12e30 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20  or0 WHERE NOT ( 
12e40 4e 55 4c 4c 20 29 20 3e 3d 20 28 20 2d 20 63 6f  NULL ) >= ( - co
12e50 6c 31 20 2a 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d  l1 * col2 )..---
12e60 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  -....query III r
12e70 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
12e80 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
12e90 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2b  r0 WHERE NOT ( +
12ea0 20 63 6f 6c 32 20 2a 20 36 35 20 2d 20 63 6f 6c   col2 * 65 - col
12eb0 31 20 29 20 3e 20 2d 20 63 6f 6c 32 0d 0a 2d 2d  1 ) > - col2..--
12ec0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
12ed0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
12ee0 4c 20 28 20 2b 20 2b 20 36 33 20 29 20 2a 20 63  L ( + + 63 ) * c
12ef0 6f 6c 31 20 2b 20 2d 20 63 6f 6c 32 20 46 52 4f  ol1 + - col2 FRO
12f00 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 31  M tab2..----..31
12f10 39 30 0d 0a 34 31 36 33 0d 0a 34 38 31 31 0d 0a  90..4163..4811..
12f20 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
12f30 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
12f40 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
12f50 73 6f 72 74 20 6c 61 62 65 6c 2d 34 31 34 0d 0a  sort label-414..
12f60 53 45 4c 45 43 54 20 31 33 20 2a 20 53 55 4d 28  SELECT 13 * SUM(
12f70 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 29 20 41 53   ALL - col2 ) AS
12f80 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
12f90 0a 2d 2d 2d 2d 0d 0a 2d 32 38 39 39 0d 0a 0d 0a  .----..-2899....
12fa0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
12fb0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
12fc0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
12fd0 61 62 65 6c 2d 34 31 34 0d 0a 53 45 4c 45 43 54  abel-414..SELECT
12fe0 20 31 33 20 2a 20 53 55 4d 20 28 20 41 4c 4c 20   13 * SUM ( ALL 
12ff0 2d 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 31  - col2 ) AS col1
13000 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
13010 0d 0a 2d 32 38 39 39 0d 0a 0d 0a 6f 6e 6c 79 69  ..-2899....onlyi
13020 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
13030 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
13040 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
13050 62 65 6c 2d 34 31 35 0d 0a 53 45 4c 45 43 54 20  bel-415..SELECT 
13060 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20  COUNT( * ) FROM 
13070 74 61 62 32 20 57 48 45 52 45 20 37 20 2b 20 37  tab2 WHERE 7 + 7
13080 34 20 49 4e 20 28 20 38 20 2a 20 32 37 20 29 0d  4 IN ( 8 * 27 ).
13090 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .----..0....skip
130a0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
130b0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
130c0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
130d0 2d 34 31 35 0d 0a 53 45 4c 45 43 54 20 43 4f 55  -415..SELECT COU
130e0 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  NT ( * ) FROM ta
130f0 62 32 20 57 48 45 52 45 20 37 20 2b 20 37 34 20  b2 WHERE 7 + 74 
13100 49 4e 20 28 20 38 20 2a 20 32 37 20 29 0d 0a 2d  IN ( 8 * 27 )..-
13110 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ---..0....onlyif
13120 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
13130 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20  ntax: aggregate 
13140 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
13150 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
13160 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 31 36  owsort label-416
13170 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 4d 49 4e  ..SELECT ALL MIN
13180 28 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  ( CAST( NULL AS 
13190 53 49 47 4e 45 44 20 29 20 29 20 46 52 4f 4d 20  SIGNED ) ) FROM 
131a0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab0..----..NULL
131b0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
131c0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
131d0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
131e0 72 74 20 6c 61 62 65 6c 2d 34 31 36 0d 0a 53 45  rt label-416..SE
131f0 4c 45 43 54 20 41 4c 4c 20 4d 49 4e 20 28 20 43  LECT ALL MIN ( C
13200 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
13210 54 45 47 45 52 20 29 20 29 20 46 52 4f 4d 20 74  TEGER ) ) FROM t
13220 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab0..----..NULL.
13230 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
13240 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
13250 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
13260 32 20 57 48 45 52 45 20 63 6f 6c 31 20 2b 20 32  2 WHERE col1 + 2
13270 20 2a 20 63 6f 6c 32 20 42 45 54 57 45 45 4e 20   * col2 BETWEEN 
13280 2d 20 63 6f 6c 30 20 2b 20 31 30 20 2a 20 2d 20  - col0 + 10 * - 
13290 63 6f 6c 30 20 41 4e 44 20 33 30 20 2a 20 31 34  col0 AND 30 * 14
132a0 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
132b0 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39   hashing to 75c9
132c0 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62 66  98aa53ac83218cbf
132d0 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a  2feb962d0a49....
132e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
132f0 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2b  .SELECT - col2 +
13300 20 35 37 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   57 AS col1 FROM
13310 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31   tab1..----..-11
13320 0d 0a 2d 32 0d 0a 2d 33 39 0d 0a 0d 0a 6f 6e 6c  ..-2..-39....onl
13330 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
13340 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
13350 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
13360 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 31  rowsort label-41
13370 39 0d 0a 53 45 4c 45 43 54 20 2b 20 38 20 44 49  9..SELECT + 8 DI
13380 56 20 2d 20 38 32 20 2b 20 63 6f 6c 31 20 2b 20  V - 82 + col1 + 
13390 35 39 20 44 49 56 20 63 6f 6c 32 20 41 53 20 63  59 DIV col2 AS c
133a0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
133b0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 33 0d   cor0..----..53.
133c0 0a 36 38 0d 0a 37 38 0d 0a 0d 0a 73 6b 69 70 69  .68..78....skipi
133d0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
133e0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
133f0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
13400 34 31 39 0d 0a 53 45 4c 45 43 54 20 2b 20 38 20  419..SELECT + 8 
13410 2f 20 2d 20 38 32 20 2b 20 63 6f 6c 31 20 2b 20  / - 82 + col1 + 
13420 35 39 20 2f 20 63 6f 6c 32 20 41 53 20 63 6f 6c  59 / col2 AS col
13430 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
13440 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 33 0d 0a 36  or0..----..53..6
13450 38 0d 0a 37 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  8..78....onlyif 
13460 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
13470 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
13480 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
13490 6c 2d 34 32 30 0d 0a 53 45 4c 45 43 54 20 2b 20  l-420..SELECT + 
134a0 53 55 4d 28 20 44 49 53 54 49 4e 43 54 20 63 6f  SUM( DISTINCT co
134b0 6c 30 20 29 20 2f 20 36 30 20 63 6f 6c 30 20 46  l0 ) / 60 col0 F
134c0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
134d0 20 57 48 45 52 45 20 4e 55 4c 4c 20 42 45 54 57   WHERE NULL BETW
134e0 45 45 4e 20 63 6f 6c 32 20 41 4e 44 20 36 36 0d  EEN col2 AND 66.
134f0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
13500 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
13510 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
13520 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
13530 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
13540 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
13550 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
13560 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
13570 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 32 30  owsort label-420
13580 0d 0a 53 45 4c 45 43 54 20 2b 20 53 55 4d 20 28  ..SELECT + SUM (
13590 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 29   DISTINCT col0 )
135a0 20 2f 20 36 30 20 63 6f 6c 30 20 46 52 4f 4d 20   / 60 col0 FROM 
135b0 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
135c0 52 45 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20  RE NULL BETWEEN 
135d0 63 6f 6c 32 20 41 4e 44 20 36 36 0d 0a 2d 2d 2d  col2 AND 66..---
135e0 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79  -..NULL....query
135f0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
13600 43 54 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c  CT + col1 AS col
13610 31 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  1 FROM tab1 cor0
13620 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e   WHERE NULL IS N
13630 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  OT NULL..----...
13640 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
13650 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 37  ..SELECT ALL + 7
13660 33 20 2b 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 28  3 + - col2 * + (
13670 20 2d 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c   - col1 ) AS col
13680 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
13690 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 31 37 0d  or0..----..1417.
136a0 0a 33 32 36 39 0d 0a 33 36 38 0d 0a 0d 0a 71 75  .3269..368....qu
136b0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
136c0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
136d0 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
136e0 63 6f 72 30 20 57 48 45 52 45 20 34 31 20 3c 3e  cor0 WHERE 41 <>
136f0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
13700 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
13710 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20  SELECT ALL col2 
13720 2b 20 2b 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20  + + - col1 FROM 
13730 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
13740 2d 2d 0d 0a 32 31 0d 0a 35 34 0d 0a 38 32 0d 0a  --..21..54..82..
13750 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
13760 74 0d 0a 53 45 4c 45 43 54 20 35 38 20 46 52 4f  t..SELECT 58 FRO
13770 4d 20 74 61 62 32 20 57 48 45 52 45 20 36 32 20  M tab2 WHERE 62 
13780 2a 20 2d 20 35 35 20 49 53 20 4e 4f 54 20 4e 55  * - 55 IS NOT NU
13790 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 38 0d 0a 35 38  LL..----..58..58
137a0 0d 0a 35 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..58....query I 
137b0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
137c0 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 31 20 46 52  col1 + + col1 FR
137d0 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 2d 20  OM tab1 WHERE - 
137e0 2b 20 63 6f 6c 32 20 2b 20 63 6f 6c 30 20 2a 20  + col2 + col0 * 
137f0 33 32 20 49 4e 20 28 20 36 39 20 29 0d 0a 2d 2d  32 IN ( 69 )..--
13800 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
13810 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
13820 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f  col0 AS col1 FRO
13830 4d 20 74 61 62 30 20 57 48 45 52 45 20 36 30 20  M tab0 WHERE 60 
13840 49 4e 20 28 20 38 32 20 2a 20 63 6f 6c 31 20 29  IN ( 82 * col1 )
13850 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
13860 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
13870 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
13880 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 28 20  ab2 WHERE NOT ( 
13890 2d 20 63 6f 6c 32 20 29 20 3e 20 4e 55 4c 4c 0d  - col2 ) > NULL.
138a0 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
138b0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
138c0 20 44 49 53 54 49 4e 43 54 20 2d 20 38 34 20 46   DISTINCT - 84 F
138d0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
138e0 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32   CROSS JOIN tab2
138f0 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
13900 2d 38 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -84....onlyif my
13910 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
13920 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20  syntax: DIV for 
13930 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
13940 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
13950 6f 72 74 20 6c 61 62 65 6c 2d 34 33 30 0d 0a 53  ort label-430..S
13960 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 4d  ELECT DISTINCT M
13970 41 58 28 20 63 6f 6c 31 20 29 20 2b 20 2b 20 43  AX( col1 ) + + C
13980 4f 55 4e 54 28 20 2a 20 29 20 44 49 56 20 38 38  OUNT( * ) DIV 88
13990 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
139a0 0a 2d 2d 2d 2d 0d 0a 37 37 0d 0a 0d 0a 73 6b 69  .----..77....ski
139b0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
139c0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70  compatible..skip
139d0 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
139e0 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
139f0 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
13a00 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
13a10 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
13a20 73 6f 72 74 20 6c 61 62 65 6c 2d 34 33 30 0d 0a  sort label-430..
13a30 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
13a40 4d 41 58 20 28 20 63 6f 6c 31 20 29 20 2b 20 2b  MAX ( col1 ) + +
13a50 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2f 20 38   COUNT ( * ) / 8
13a60 38 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  8 col0 FROM tab2
13a70 0d 0a 2d 2d 2d 2d 0d 0a 37 37 0d 0a 0d 0a 6f 6e  ..----..77....on
13a80 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
13a90 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41  T syntax: DECIMA
13aa0 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  L type: ..query 
13ab0 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
13ac0 6c 2d 34 33 31 0d 0a 53 45 4c 45 43 54 20 44 49  l-431..SELECT DI
13ad0 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
13ae0 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 2d  b0 WHERE NOT - -
13af0 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44   CAST( NULL AS D
13b00 45 43 49 4d 41 4c 20 29 20 49 53 20 4e 4f 54 20  ECIMAL ) IS NOT 
13b10 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  NULL..----..9 va
13b20 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
13b30 63 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61  c4b42765dff94eaa
13b40 61 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37  a46040e537fb43b7
13b50 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
13b60 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
13b70 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  e..query III row
13b80 73 6f 72 74 20 6c 61 62 65 6c 2d 34 33 31 0d 0a  sort label-431..
13b90 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
13ba0 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
13bb0 45 20 4e 4f 54 20 2d 20 2d 20 43 41 53 54 20 28  E NOT - - CAST (
13bc0 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20   NULL AS REAL ) 
13bd0 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
13be0 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
13bf0 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35 64  ing to c4b42765d
13c00 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35 33  ff94eaaa46040e53
13c10 37 66 62 34 33 62 37 0d 0a 0d 0a 73 6b 69 70 69  7fb43b7....skipi
13c20 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
13c30 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
13c40 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
13c50 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
13c60 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
13c70 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
13c80 49 4e 43 54 20 2d 20 28 20 2d 20 28 20 2b 20 63  INCT - ( - ( + c
13c90 6f 6c 31 20 29 20 29 20 63 6f 6c 31 20 46 52 4f  ol1 ) ) col1 FRO
13ca0 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab2 cor0..---
13cb0 2d 0d 0a 35 31 0d 0a 36 37 0d 0a 37 37 0d 0a 0d  -..51..67..77...
13cc0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
13cd0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
13ce0 54 20 33 35 20 2a 20 2b 20 63 6f 6c 31 20 46 52  T 35 * + col1 FR
13cf0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
13d00 57 48 45 52 45 20 4e 4f 54 20 2b 20 36 31 20 3e  WHERE NOT + 61 >
13d10 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d   ( NULL )..----.
13d20 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
13d30 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61  # CAST syntax: a
13d40 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
13d50 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
13d60 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
13d70 6c 61 62 65 6c 2d 34 33 34 0d 0a 53 45 4c 45 43  label-434..SELEC
13d80 54 20 2b 20 43 4f 55 4e 54 28 20 2b 20 43 41 53  T + COUNT( + CAS
13d90 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
13da0 44 20 29 20 29 20 2a 20 2d 20 36 20 46 52 4f 4d  D ) ) * - 6 FROM
13db0 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
13dc0 45 52 45 20 4e 55 4c 4c 20 3e 20 63 6f 6c 32 0d  ERE NULL > col2.
13dd0 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .----..0....skip
13de0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
13df0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
13e00 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
13e10 2d 34 33 34 0d 0a 53 45 4c 45 43 54 20 2b 20 43  -434..SELECT + C
13e20 4f 55 4e 54 20 28 20 2b 20 43 41 53 54 20 28 20  OUNT ( + CAST ( 
13e30 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
13e40 29 20 29 20 2a 20 2d 20 36 20 46 52 4f 4d 20 74  ) ) * - 6 FROM t
13e50 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
13e60 45 20 4e 55 4c 4c 20 3e 20 63 6f 6c 32 0d 0a 2d  E NULL > col2..-
13e70 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ---..0....onlyif
13e80 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
13e90 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79  ntax: DECIMAL ty
13ea0 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
13eb0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 33 35 0d  wsort label-435.
13ec0 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2a 20 2d  .SELECT col1 * -
13ed0 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44   CAST( NULL AS D
13ee0 45 43 49 4d 41 4c 20 29 20 2b 20 39 36 20 41 53  ECIMAL ) + 96 AS
13ef0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
13f00 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
13f10 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
13f20 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
13f30 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
13f40 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
13f50 74 20 6c 61 62 65 6c 2d 34 33 35 0d 0a 53 45 4c  t label-435..SEL
13f60 45 43 54 20 63 6f 6c 31 20 2a 20 2d 20 43 41 53  ECT col1 * - CAS
13f70 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c  T ( NULL AS REAL
13f80 20 29 20 2b 20 39 36 20 41 53 20 63 6f 6c 31 20   ) + 96 AS col1 
13f90 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
13fa0 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  0..----..NULL..N
13fb0 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65  ULL..NULL....que
13fc0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
13fd0 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
13fe0 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
13ff0 20 2b 20 38 36 20 49 53 20 4e 55 4c 4c 0d 0a 2d   + 86 IS NULL..-
14000 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
14010 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
14020 4c 4c 20 2b 20 36 34 20 2b 20 2d 20 63 6f 6c 30  LL + 64 + - col0
14030 20 2a 20 2b 20 2d 20 63 6f 6c 30 20 41 53 20 63   * + - col0 AS c
14040 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  ol1 FROM tab0 co
14050 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 38 39 0d 0a 37  r0..----..289..7
14060 36 33 33 0d 0a 39 34 37 33 0d 0a 0d 0a 6f 6e 6c  633..9473....onl
14070 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
14080 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
14090 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
140a0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
140b0 33 38 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20  38..SELECT col1 
140c0 2a 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  * CAST( NULL AS 
140d0 53 49 47 4e 45 44 20 29 20 63 6f 6c 30 2c 20 2d  SIGNED ) col0, -
140e0 20 34 38 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   48 AS col1 FROM
140f0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   tab0..----..NUL
14100 4c 0d 0a 2d 34 38 0d 0a 4e 55 4c 4c 0d 0a 2d 34  L..-48..NULL..-4
14110 38 0d 0a 4e 55 4c 4c 0d 0a 2d 34 38 0d 0a 0d 0a  8..NULL..-48....
14120 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
14130 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73  ot compatible..s
14140 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
14150 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
14160 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
14170 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
14180 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49  olumns..query II
14190 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
141a0 33 38 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20  38..SELECT col1 
141b0 2a 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  * CAST ( NULL AS
141c0 20 49 4e 54 45 47 45 52 20 29 20 63 6f 6c 30 2c   INTEGER ) col0,
141d0 20 2d 20 34 38 20 41 53 20 63 6f 6c 31 20 46 52   - 48 AS col1 FR
141e0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab0..----..N
141f0 55 4c 4c 0d 0a 2d 34 38 0d 0a 4e 55 4c 4c 0d 0a  ULL..-48..NULL..
14200 2d 34 38 0d 0a 4e 55 4c 4c 0d 0a 2d 34 38 0d 0a  -48..NULL..-48..
14210 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
14220 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
14230 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
14240 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
14250 62 65 6c 2d 34 33 39 0d 0a 53 45 4c 45 43 54 20  bel-439..SELECT 
14260 2d 20 28 20 2d 20 63 6f 6c 31 20 29 20 41 53 20  - ( - col1 ) AS 
14270 63 6f 6c 31 2c 20 63 6f 6c 32 20 2d 20 43 41 53  col1, col2 - CAS
14280 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
14290 44 20 29 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f  D ) + - col0 FRO
142a0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d  M tab0..----..1.
142b0 0a 4e 55 4c 4c 0d 0a 32 31 0d 0a 4e 55 4c 4c 0d  .NULL..21..NULL.
142c0 0a 38 31 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  .81..NULL....ski
142d0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
142e0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
142f0 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
14300 65 6c 2d 34 33 39 0d 0a 53 45 4c 45 43 54 20 2d  el-439..SELECT -
14310 20 28 20 2d 20 63 6f 6c 31 20 29 20 41 53 20 63   ( - col1 ) AS c
14320 6f 6c 31 2c 20 63 6f 6c 32 20 2d 20 43 41 53 54  ol1, col2 - CAST
14330 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
14340 45 52 20 29 20 2b 20 2d 20 63 6f 6c 30 20 46 52  ER ) + - col0 FR
14350 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
14360 0d 0a 4e 55 4c 4c 0d 0a 32 31 0d 0a 4e 55 4c 4c  ..NULL..21..NULL
14370 0d 0a 38 31 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  ..81..NULL....qu
14380 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
14390 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
143a0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
143b0 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20 2b  WHERE NOT col0 +
143c0 20 2b 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d   + col2 IS NULL.
143d0 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
143e0 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39  hashing to 75c99
143f0 38 61 61 35 33 61 63 38 33 32 31 38 63 62 66 32  8aa53ac83218cbf2
14400 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 71  feb962d0a49....q
14410 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
14420 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
14430 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
14440 52 45 20 4e 4f 54 20 28 20 2d 20 63 6f 6c 30 20  RE NOT ( - col0 
14450 2b 20 63 6f 6c 30 20 29 20 3c 3e 20 4e 55 4c 4c  + col0 ) <> NULL
14460 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
14470 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
14480 54 20 2b 20 39 39 20 2a 20 2d 20 38 34 20 41 53  T + 99 * - 84 AS
14490 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
144a0 0a 2d 2d 2d 2d 0d 0a 2d 38 33 31 36 0d 0a 2d 38  .----..-8316..-8
144b0 33 31 36 0d 0a 2d 38 33 31 36 0d 0a 0d 0a 71 75  316..-8316....qu
144c0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
144d0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
144e0 20 32 36 20 46 52 4f 4d 20 74 61 62 30 20 57 48   26 FROM tab0 WH
144f0 45 52 45 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e  ERE NULL BETWEEN
14500 20 4e 55 4c 4c 20 41 4e 44 20 28 20 2d 20 63 6f   NULL AND ( - co
14510 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  l1 )..----....qu
14520 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
14530 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
14540 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab1 WHERE NOT - 
14550 63 6f 6c 31 20 3e 3d 20 2d 20 63 6f 6c 32 20 2a  col1 >= - col2 *
14560 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d   + col1..----...
14570 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
14580 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
14590 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
145a0 6f 72 74 20 6c 61 62 65 6c 2d 34 34 35 0d 0a 53  ort label-445..S
145b0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43  ELECT DISTINCT C
145c0 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c  OUNT( * ) AS col
145d0 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
145e0 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e  or0 WHERE NULL N
145f0 4f 54 20 42 45 54 57 45 45 4e 20 28 20 2b 20 34  OT BETWEEN ( + 4
14600 35 20 29 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d  5 ) AND NULL..--
14610 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..0....skipif 
14620 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
14630 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
14640 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 34  rowsort label-44
14650 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  5..SELECT DISTIN
14660 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41  CT COUNT ( * ) A
14670 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
14680 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
14690 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  ULL NOT BETWEEN 
146a0 28 20 2b 20 34 35 20 29 20 41 4e 44 20 4e 55 4c  ( + 45 ) AND NUL
146b0 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e  L..----..0....on
146c0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
146d0 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
146e0 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
146f0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
14700 34 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  46..SELECT ALL +
14710 20 2b 20 63 6f 6c 30 20 44 49 56 20 2b 20 2d 20   + col0 DIV + - 
14720 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 63  col0 FROM tab0 c
14730 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d  or0..----..-1..-
14740 31 0d 0a 2d 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  1..-1....skipif 
14750 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
14760 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
14770 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 34  rowsort label-44
14780 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  6..SELECT ALL + 
14790 2b 20 63 6f 6c 30 20 2f 20 2b 20 2d 20 63 6f 6c  + col0 / + - col
147a0 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  0 FROM tab0 cor0
147b0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 31 0d 0a  ..----..-1..-1..
147c0 2d 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  -1....query I ro
147d0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
147e0 63 6f 6c 30 20 2b 20 2d 20 2b 20 34 31 20 41 53  col0 + - + 41 AS
147f0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
14800 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
14810 31 30 35 0d 0a 2d 31 31 36 0d 0a 2d 38 37 0d 0a  105..-116..-87..
14820 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
14830 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 35 35  t..SELECT - + 55
14840 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20   + col2 AS col0 
14850 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
14860 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 2d 33  0..----..-15..-3
14870 32 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  2..3....skipif p
14880 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
14890 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
148a0 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
148b0 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
148c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
148d0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
148e0 54 20 2b 20 36 35 20 2b 20 63 6f 6c 32 20 63 6f  T + 65 + col2 co
148f0 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
14900 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 35 0d  cor0..----..105.
14910 0a 31 32 33 0d 0a 38 38 0d 0a 0d 0a 71 75 65 72  .123..88....quer
14920 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
14930 45 43 54 20 2d 20 28 20 2d 20 63 6f 6c 32 20 29  ECT - ( - col2 )
14940 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
14950 72 30 20 57 48 45 52 45 20 63 6f 6c 32 20 2a 20  r0 WHERE col2 * 
14960 2b 20 2d 20 35 30 20 2b 20 2b 20 63 6f 6c 30 20  + - 50 + + col0 
14970 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
14980 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
14990 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 2b 20 28  ..SELECT + ( + (
149a0 20 2b 20 2b 20 35 30 20 29 20 29 20 2b 20 63 6f   + + 50 ) ) + co
149b0 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l2 FROM tab0 cor
149c0 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 39 0d 0a 36 30  0..----..149..60
149d0 0d 0a 39 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..97....query II
149e0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
149f0 20 2d 20 63 6f 6c 30 2c 20 63 6f 6c 32 20 41 53   - col0, col2 AS
14a00 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d   col2 FROM tab2.
14a10 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a 32 33 0d 0a  .----..-46..23..
14a20 2d 36 34 0d 0a 34 30 0d 0a 2d 37 35 0d 0a 35 38  -64..40..-75..58
14a30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
14a40 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
14a50 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
14a60 28 20 2b 20 32 33 20 42 45 54 57 45 45 4e 20 2d  ( + 23 BETWEEN -
14a70 20 2d 20 63 6f 6c 32 20 41 4e 44 20 63 6f 6c 31   - col2 AND col1
14a80 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72   )..----....quer
14a90 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
14aa0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a  ELECT DISTINCT *
14ab0 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
14ac0 20 4e 4f 54 20 28 20 4e 4f 54 20 28 20 63 6f 6c   NOT ( NOT ( col
14ad0 32 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 20  2 ) IS NOT NULL 
14ae0 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  )..----..9 value
14af0 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62  s hashing to c4b
14b00 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36  42765dff94eaaa46
14b10 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d  040e537fb43b7...
14b20 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
14b30 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
14b40 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
14b50 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
14b60 62 65 6c 2d 34 35 35 0d 0a 53 45 4c 45 43 54 20  bel-455..SELECT 
14b70 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
14b80 45 20 28 20 4e 4f 54 20 28 20 28 20 63 6f 6c 31  E ( NOT ( ( col1
14b90 20 29 20 2f 20 43 41 53 54 28 20 63 6f 6c 32 20   ) / CAST( col2 
14ba0 2b 20 2b 20 63 6f 6c 32 20 41 53 20 53 49 47 4e  + + col2 AS SIGN
14bb0 45 44 20 29 20 4e 4f 54 20 42 45 54 57 45 45 4e  ED ) NOT BETWEEN
14bc0 20 28 20 33 39 20 29 20 41 4e 44 20 2d 20 28 20   ( 39 ) AND - ( 
14bd0 2d 20 63 6f 6c 30 20 29 20 29 20 29 0d 0a 2d 2d  - col0 ) ) )..--
14be0 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
14bf0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
14c00 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72  ble..query III r
14c10 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 35 35  owsort label-455
14c20 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
14c30 74 61 62 30 20 57 48 45 52 45 20 28 20 4e 4f 54  tab0 WHERE ( NOT
14c40 20 28 20 28 20 63 6f 6c 31 20 29 20 2f 20 43 41   ( ( col1 ) / CA
14c50 53 54 20 28 20 63 6f 6c 32 20 2b 20 2b 20 63 6f  ST ( col2 + + co
14c60 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  l2 AS INTEGER ) 
14c70 4e 4f 54 20 42 45 54 57 45 45 4e 20 28 20 33 39  NOT BETWEEN ( 39
14c80 20 29 20 41 4e 44 20 2d 20 28 20 2d 20 63 6f 6c   ) AND - ( - col
14c90 30 20 29 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d  0 ) ) )..----...
14ca0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
14cb0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
14cc0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
14cd0 6f 72 74 20 6c 61 62 65 6c 2d 34 35 36 0d 0a 53  ort label-456..S
14ce0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43  ELECT DISTINCT C
14cf0 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2d 20 43 4f  OUNT( * ) * - CO
14d00 55 4e 54 28 20 44 49 53 54 49 4e 43 54 20 2b 20  UNT( DISTINCT + 
14d10 32 32 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a  22 ) FROM tab0..
14d20 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70  ----..-3....skip
14d30 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
14d40 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
14d50 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
14d60 2d 34 35 36 0d 0a 53 45 4c 45 43 54 20 44 49 53  -456..SELECT DIS
14d70 54 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 2a 20  TINCT COUNT ( * 
14d80 29 20 2a 20 2d 20 43 4f 55 4e 54 20 28 20 44 49  ) * - COUNT ( DI
14d90 53 54 49 4e 43 54 20 2b 20 32 32 20 29 20 46 52  STINCT + 22 ) FR
14da0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
14db0 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  3....query I row
14dc0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63  sort..SELECT - c
14dd0 6f 6c 30 20 2a 20 2b 20 28 20 2d 20 63 6f 6c 30  ol0 * + ( - col0
14de0 20 29 20 2a 20 2d 20 63 6f 6c 32 20 41 53 20 63   ) * - col2 AS c
14df0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol0 FROM tab0..-
14e00 2d 2d 2d 0d 0a 2d 31 30 35 37 35 0d 0a 2d 37 35  ---..-10575..-75
14e10 36 39 30 0d 0a 2d 39 33 31 34 39 31 0d 0a 0d 0a  690..-931491....
14e20 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
14e30 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
14e40 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
14e50 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
14e60 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
14e70 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
14e80 54 20 38 32 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c  T 82 col1, + col
14e90 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
14ea0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 32 0d 0a 31  or0..----..82..1
14eb0 35 0d 0a 38 32 0d 0a 38 37 0d 0a 38 32 0d 0a 39  5..82..87..82..9
14ec0 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  7....query III r
14ed0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
14ee0 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
14ef0 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
14f00 45 20 28 20 2b 20 63 6f 6c 30 20 2b 20 63 6f 6c  E ( + col0 + col
14f10 30 20 2b 20 2d 20 28 20 2d 20 63 6f 6c 31 20 29  0 + - ( - col1 )
14f20 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d   ) IS NULL..----
14f30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
14f40 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
14f50 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
14f60 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
14f70 61 62 65 6c 2d 34 36 30 0d 0a 53 45 4c 45 43 54  abel-460..SELECT
14f80 20 41 4c 4c 20 2b 20 2d 20 43 41 53 54 28 20 4e   ALL + - CAST( N
14f90 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
14fa0 2a 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c  * + col2 * + col
14fb0 32 20 2a 20 2b 20 2d 20 63 6f 6c 30 20 2b 20 63  2 * + - col0 + c
14fc0 6f 6c 31 20 2a 20 2b 20 63 6f 6c 30 20 2b 20 43  ol1 * + col0 + C
14fd0 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
14fe0 4e 45 44 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20  NED ) col0 FROM 
14ff0 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
15000 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
15010 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
15020 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
15030 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
15040 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
15050 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
15060 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
15070 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
15080 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
15090 6c 61 62 65 6c 2d 34 36 30 0d 0a 53 45 4c 45 43  label-460..SELEC
150a0 54 20 41 4c 4c 20 2b 20 2d 20 43 41 53 54 20 28  T ALL + - CAST (
150b0 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
150c0 20 29 20 2a 20 2b 20 63 6f 6c 32 20 2a 20 2b 20   ) * + col2 * + 
150d0 63 6f 6c 32 20 2a 20 2b 20 2d 20 63 6f 6c 30 20  col2 * + - col0 
150e0 2b 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 30 20  + col1 * + col0 
150f0 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
15100 20 49 4e 54 45 47 45 52 20 29 20 63 6f 6c 30 20   INTEGER ) col0 
15110 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
15120 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  0..----..NULL..N
15130 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65  ULL..NULL....que
15140 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
15150 4c 45 43 54 20 2b 20 2b 20 28 20 2b 20 32 20 29  LECT + + ( + 2 )
15160 20 46 52 4f 4d 20 28 20 74 61 62 32 20 41 53 20   FROM ( tab2 AS 
15170 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
15180 74 61 62 30 20 41 53 20 63 6f 72 31 20 29 0d 0a  tab0 AS cor1 )..
15190 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
151a0 61 73 68 69 6e 67 20 74 6f 20 38 34 64 62 66 61  ashing to 84dbfa
151b0 66 39 62 63 31 37 64 64 30 39 37 66 31 35 62 63  f9bc17dd097f15bc
151c0 33 36 62 34 31 38 36 32 36 31 0d 0a 0d 0a 71 75  36b4186261....qu
151d0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
151e0 45 4c 45 43 54 20 2d 20 28 20 2d 20 2b 20 63 6f  ELECT - ( - + co
151f0 6c 31 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  l1 ) AS col2 FRO
15200 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
15210 2d 2d 2d 2d 0d 0a 35 31 0d 0a 36 37 0d 0a 37 37  ----..51..67..77
15220 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
15230 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
15240 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
15250 30 20 57 48 45 52 45 20 28 20 2b 20 28 20 63 6f  0 WHERE ( + ( co
15260 6c 32 20 29 20 2b 20 2d 20 63 6f 6c 31 20 2a 20  l2 ) + - col1 * 
15270 63 6f 6c 30 20 29 20 3d 20 28 20 2d 20 31 38 20  col0 ) = ( - 18 
15280 2b 20 2b 20 38 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a  + + 82 )..----..
15290 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
152a0 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2b  t..SELECT col0 +
152b0 20 2b 20 33 35 20 46 52 4f 4d 20 74 61 62 31 20   + 35 FROM tab1 
152c0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
152d0 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a  T NULL IS NULL..
152e0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
152f0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
15300 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
15310 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
15320 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 42 45  HERE NOT NULL BE
15330 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2b  TWEEN NULL AND +
15340 20 39 34 20 2a 20 63 6f 6c 31 20 2a 20 2d 20 63   94 * col1 * - c
15350 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ol0..----....que
15360 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
15370 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
15380 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
15390 20 4e 4f 54 20 28 20 2b 20 63 6f 6c 31 20 2f 20   NOT ( + col1 / 
153a0 2d 20 34 20 2a 20 2d 20 63 6f 6c 30 20 29 20 49  - 4 * - col0 ) I
153b0 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
153c0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
153d0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
153e0 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74  tax: DIV for int
153f0 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
15400 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
15410 20 6c 61 62 65 6c 2d 34 36 37 0d 0a 53 45 4c 45   label-467..SELE
15420 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 28 20  CT ALL - COUNT( 
15430 2a 20 29 20 44 49 56 20 37 31 20 63 6f 6c 32 20  * ) DIV 71 col2 
15440 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
15450 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b  0..----..0....sk
15460 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
15470 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69   compatible..ski
15480 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
15490 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
154a0 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
154b0 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
154c0 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
154d0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 36 37 0d  wsort label-467.
154e0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f  .SELECT ALL - CO
154f0 55 4e 54 20 28 20 2a 20 29 20 2f 20 37 31 20 63  UNT ( * ) / 71 c
15500 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
15510 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   cor0..----..0..
15520 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
15530 74 0d 0a 53 45 4c 45 43 54 20 2d 20 38 33 20 41  t..SELECT - 83 A
15540 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
15550 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 33   cor0..----..-83
15560 0d 0a 2d 38 33 0d 0a 2d 38 33 0d 0a 0d 0a 71 75  ..-83..-83....qu
15570 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
15580 45 4c 45 43 54 20 2d 20 37 37 20 2b 20 2d 20 2b  ELECT - 77 + - +
15590 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 30 20 41   col1 * + col0 A
155a0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
155b0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
155c0 4f 54 20 28 20 2d 20 39 30 20 49 53 20 4e 55 4c  OT ( - 90 IS NUL
155d0 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 39 32  L )..----..-1292
155e0 0d 0a 2d 31 37 34 0d 0a 2d 31 39 30 34 0d 0a 0d  ..-174..-1904...
155f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
15600 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 32 37 20  ..SELECT + + 27 
15610 2a 20 28 20 2b 20 63 6f 6c 31 20 29 20 46 52 4f  * ( + col1 ) FRO
15620 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
15630 2d 0d 0a 32 31 38 37 0d 0a 32 37 0d 0a 35 36 37  -..2187..27..567
15640 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
15650 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
15660 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
15670 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
15680 61 62 65 6c 2d 34 37 31 0d 0a 53 45 4c 45 43 54  abel-471..SELECT
15690 20 41 4c 4c 20 2d 20 39 37 20 2a 20 2d 20 63 6f   ALL - 97 * - co
156a0 6c 31 20 2b 20 2b 20 2d 20 63 6f 6c 32 20 2d 20  l1 + + - col2 - 
156b0 2b 20 63 6f 6c 30 20 44 49 56 20 2d 20 2d 20 63  + col0 DIV - - c
156c0 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol2 AS col2 FROM
156d0 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
156e0 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c  ERE NULL IS NULL
156f0 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 32 30 31 39  ..----..-2..2019
15700 0d 0a 37 38 31 30 0d 0a 0d 0a 73 6b 69 70 69 66  ..7810....skipif
15710 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
15720 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
15730 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
15740 37 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  71..SELECT ALL -
15750 20 39 37 20 2a 20 2d 20 63 6f 6c 31 20 2b 20 2b   97 * - col1 + +
15760 20 2d 20 63 6f 6c 32 20 2d 20 2b 20 63 6f 6c 30   - col2 - + col0
15770 20 2f 20 2d 20 2d 20 63 6f 6c 32 20 41 53 20 63   / - - col2 AS c
15780 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
15790 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c   cor0 WHERE NULL
157a0 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
157b0 2d 32 0d 0a 32 30 31 39 0d 0a 37 38 31 30 0d 0a  -2..2019..7810..
157c0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
157d0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
157e0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
157f0 73 6f 72 74 20 6c 61 62 65 6c 2d 34 37 32 0d 0a  sort label-472..
15800 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28 20  SELECT - COUNT( 
15810 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53  * ) FROM tab2 AS
15820 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
15830 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  NULL IS NULL..--
15840 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..0....skipif 
15850 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
15860 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
15870 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 37  rowsort label-47
15880 32 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e  2..SELECT - COUN
15890 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  T ( * ) FROM tab
158a0 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
158b0 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c  NOT NULL IS NULL
158c0 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65  ..----..0....que
158d0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
158e0 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
158f0 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54  M tab0 WHERE NOT
15900 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20 2b 20   NULL BETWEEN + 
15910 2d 20 63 6f 6c 32 20 41 4e 44 20 2d 20 63 6f 6c  - col2 AND - col
15920 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  0..----....onlyi
15930 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
15940 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
15950 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
15960 62 65 6c 2d 34 37 34 0d 0a 53 45 4c 45 43 54 20  bel-474..SELECT 
15970 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20 2b 20  MAX( DISTINCT + 
15980 31 32 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  12 ) AS col1 FRO
15990 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32  M tab0..----..12
159a0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
159b0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
159c0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
159d0 72 74 20 6c 61 62 65 6c 2d 34 37 34 0d 0a 53 45  rt label-474..SE
159e0 4c 45 43 54 20 4d 41 58 20 28 20 44 49 53 54 49  LECT MAX ( DISTI
159f0 4e 43 54 20 2b 20 31 32 20 29 20 41 53 20 63 6f  NCT + 12 ) AS co
15a00 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l1 FROM tab0..--
15a10 2d 2d 0d 0a 31 32 0d 0a 0d 0a 6f 6e 6c 79 69 66  --..12....onlyif
15a20 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
15a30 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79  ntax: DECIMAL ty
15a40 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72  pe: ..query II r
15a50 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 37 35  owsort label-475
15a60 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20  ..SELECT + col1 
15a70 41 53 20 63 6f 6c 31 2c 20 43 41 53 54 28 20 4e  AS col1, CAST( N
15a80 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29  ULL AS DECIMAL )
15a90 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
15aa0 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35  b2 cor0..----..5
15ab0 31 0d 0a 4e 55 4c 4c 0d 0a 36 37 0d 0a 4e 55 4c  1..NULL..67..NUL
15ac0 4c 0d 0a 37 37 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  L..77..NULL....s
15ad0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
15ae0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
15af0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
15b00 61 62 65 6c 2d 34 37 35 0d 0a 53 45 4c 45 43 54  abel-475..SELECT
15b10 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 2c   + col1 AS col1,
15b20 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
15b30 52 45 41 4c 20 29 20 41 53 20 63 6f 6c 31 20 46  REAL ) AS col1 F
15b40 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d  ROM tab2 cor0..-
15b50 2d 2d 2d 0d 0a 35 31 0d 0a 4e 55 4c 4c 0d 0a 36  ---..51..NULL..6
15b60 37 0d 0a 4e 55 4c 4c 0d 0a 37 37 0d 0a 4e 55 4c  7..NULL..77..NUL
15b70 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  L....onlyif mysq
15b80 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
15b90 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
15ba0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
15bb0 20 6c 61 62 65 6c 2d 34 37 36 0d 0a 53 45 4c 45   label-476..SELE
15bc0 43 54 20 41 4c 4c 20 2d 20 2b 20 63 6f 6c 31 2c  CT ALL - + col1,
15bd0 20 2d 20 63 6f 6c 30 20 2f 20 43 41 53 54 28 20   - col0 / CAST( 
15be0 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
15bf0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
15c00 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
15c10 0d 0a 2d 31 0d 0a 4e 55 4c 4c 0d 0a 2d 32 31 0d  ..-1..NULL..-21.
15c20 0a 4e 55 4c 4c 0d 0a 2d 38 31 0d 0a 4e 55 4c 4c  .NULL..-81..NULL
15c30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
15c40 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
15c50 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
15c60 6f 72 74 20 6c 61 62 65 6c 2d 34 37 36 0d 0a 53  ort label-476..S
15c70 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 63 6f  ELECT ALL - + co
15c80 6c 31 2c 20 2d 20 63 6f 6c 30 20 2f 20 43 41 53  l1, - col0 / CAS
15c90 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
15ca0 47 45 52 20 29 20 41 53 20 63 6f 6c 30 20 46 52  GER ) AS col0 FR
15cb0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
15cc0 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 4e 55 4c 4c 0d  .----..-1..NULL.
15cd0 0a 2d 32 31 0d 0a 4e 55 4c 4c 0d 0a 2d 38 31 0d  .-21..NULL..-81.
15ce0 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .NULL....onlyif 
15cf0 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
15d00 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73  tax: aggregate s
15d10 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
15d20 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
15d30 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 37 37 0d  wsort label-477.
15d40 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
15d50 20 2b 20 43 4f 55 4e 54 28 20 43 41 53 54 28 20   + COUNT( CAST( 
15d60 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
15d70 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
15d80 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
15d90 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..0....skipif 
15da0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
15db0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
15dc0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 37  rowsort label-47
15dd0 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  7..SELECT DISTIN
15de0 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 43 41 53  CT + COUNT ( CAS
15df0 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
15e00 47 45 52 20 29 20 29 20 41 53 20 63 6f 6c 30 20  GER ) ) AS col0 
15e10 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
15e20 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e  0..----..0....on
15e30 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
15e40 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
15e50 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
15e60 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
15e70 37 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  78..SELECT ALL +
15e80 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 43 41 53 54   + col1 * + CAST
15e90 28 20 2d 20 2b 20 36 33 20 41 53 20 53 49 47 4e  ( - + 63 AS SIGN
15ea0 45 44 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41  ED ) FROM tab1 A
15eb0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
15ec0 20 2b 20 28 20 2d 20 63 6f 6c 32 20 29 20 2b 20   + ( - col2 ) + 
15ed0 2b 20 2b 20 63 6f 6c 32 20 4e 4f 54 20 42 45 54  + + col2 NOT BET
15ee0 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2d 20  WEEN NULL AND - 
15ef0 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b  col0..----....sk
15f00 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
15f10 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
15f20 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
15f30 65 6c 2d 34 37 38 0d 0a 53 45 4c 45 43 54 20 41  el-478..SELECT A
15f40 4c 4c 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 2b 20  LL + + col1 * + 
15f50 43 41 53 54 20 28 20 2d 20 2b 20 36 33 20 41 53  CAST ( - + 63 AS
15f60 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20   INTEGER ) FROM 
15f70 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
15f80 52 45 20 4e 4f 54 20 2b 20 28 20 2d 20 63 6f 6c  RE NOT + ( - col
15f90 32 20 29 20 2b 20 2b 20 2b 20 63 6f 6c 32 20 4e  2 ) + + + col2 N
15fa0 4f 54 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20  OT BETWEEN NULL 
15fb0 41 4e 44 20 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d  AND - col0..----
15fc0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
15fd0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
15fe0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
15ff0 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
16000 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
16010 20 6c 61 62 65 6c 2d 34 37 39 0d 0a 53 45 4c 45   label-479..SELE
16020 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20  CT COUNT( * ) + 
16030 2b 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  + - CAST( NULL A
16040 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f  S SIGNED ) AS co
16050 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l1 FROM tab0..--
16060 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
16070 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
16080 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
16090 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
160a0 2d 34 37 39 0d 0a 53 45 4c 45 43 54 20 43 4f 55  -479..SELECT COU
160b0 4e 54 20 28 20 2a 20 29 20 2b 20 2b 20 2d 20 43  NT ( * ) + + - C
160c0 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
160d0 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 31 20  TEGER ) AS col1 
160e0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
160f0 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
16100 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
16110 20 39 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53   92 FROM tab2 AS
16120 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
16130 20 74 61 62 31 20 41 53 20 63 6f 72 31 0d 0a 2d   tab1 AS cor1..-
16140 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
16150 73 68 69 6e 67 20 74 6f 20 35 31 36 66 61 34 35  shing to 516fa45
16160 63 38 62 30 36 66 39 66 36 37 64 36 65 35 30 30  c8b06f9f67d6e500
16170 62 66 64 34 33 35 63 31 61 0d 0a 0d 0a 71 75 65  bfd435c1a....que
16180 72 79 20 49 49 49 49 49 49 20 72 6f 77 73 6f 72  ry IIIIII rowsor
16190 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
161a0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41  CT * FROM tab1 A
161b0 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  S cor0 CROSS JOI
161c0 4e 20 74 61 62 31 20 41 53 20 63 6f 72 31 20 57  N tab1 AS cor1 W
161d0 48 45 52 45 20 4e 55 4c 4c 20 42 45 54 57 45 45  HERE NULL BETWEE
161e0 4e 20 4e 55 4c 4c 20 41 4e 44 20 2d 20 33 31 0d  N NULL AND - 31.
161f0 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
16200 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
16210 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
16220 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  : ..query III ro
16230 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 38 32 0d  wsort label-482.
16240 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
16250 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
16260 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28  cor0 WHERE NOT (
16270 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 30 20 29   col0 * - col0 )
16280 20 3d 20 43 41 53 54 28 20 2d 20 63 6f 6c 31 20   = CAST( - col1 
16290 41 53 20 53 49 47 4e 45 44 20 29 0d 0a 2d 2d 2d  AS SIGNED )..---
162a0 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
162b0 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35 64  ing to c4b42765d
162c0 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35 33  ff94eaaa46040e53
162d0 37 66 62 34 33 62 37 0d 0a 0d 0a 73 6b 69 70 69  7fb43b7....skipi
162e0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
162f0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
16300 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
16310 6c 2d 34 38 32 0d 0a 53 45 4c 45 43 54 20 44 49  l-482..SELECT DI
16320 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
16330 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
16340 20 4e 4f 54 20 28 20 63 6f 6c 30 20 2a 20 2d 20   NOT ( col0 * - 
16350 63 6f 6c 30 20 29 20 3d 20 43 41 53 54 20 28 20  col0 ) = CAST ( 
16360 2d 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45  - col1 AS INTEGE
16370 52 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  R )..----..9 val
16380 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
16390 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61  4b42765dff94eaaa
163a0 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d  46040e537fb43b7.
163b0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
163c0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61  # CAST syntax: a
163d0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
163e0 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
163f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
16400 6c 61 62 65 6c 2d 34 38 33 0d 0a 53 45 4c 45 43  label-483..SELEC
16410 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20 2a 20 29  T ALL COUNT( * )
16420 20 2a 20 38 39 20 2a 20 2d 20 43 41 53 54 28 20   * 89 * - CAST( 
16430 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
16440 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
16450 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
16460 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
16470 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
16480 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
16490 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
164a0 38 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43  83..SELECT ALL C
164b0 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 38 39 20  OUNT ( * ) * 89 
164c0 2a 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  * - CAST ( NULL 
164d0 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20  AS INTEGER ) AS 
164e0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
164f0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
16500 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  LL....onlyif mys
16510 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
16520 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
16530 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
16540 20 6c 61 62 65 6c 2d 34 38 34 0d 0a 53 45 4c 45   label-484..SELE
16550 43 54 20 41 4c 4c 20 63 6f 6c 30 20 2b 20 2d 20  CT ALL col0 + - 
16560 34 31 20 2b 20 2b 20 2d 20 63 6f 6c 32 20 2a 20  41 + + - col2 * 
16570 63 6f 6c 32 20 2b 20 2d 20 2d 20 43 41 53 54 28  col2 + - - CAST(
16580 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
16590 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
165a0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
165b0 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .NULL..NULL....s
165c0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
165d0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
165e0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
165f0 62 65 6c 2d 34 38 34 0d 0a 53 45 4c 45 43 54 20  bel-484..SELECT 
16600 41 4c 4c 20 63 6f 6c 30 20 2b 20 2d 20 34 31 20  ALL col0 + - 41 
16610 2b 20 2b 20 2d 20 63 6f 6c 32 20 2a 20 63 6f 6c  + + - col2 * col
16620 32 20 2b 20 2d 20 2d 20 43 41 53 54 20 28 20 4e  2 + - - CAST ( N
16630 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
16640 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
16650 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
16660 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e  NULL..NULL....on
16670 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
16680 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
16690 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
166a0 20 6c 61 62 65 6c 2d 34 38 35 0d 0a 53 45 4c 45   label-485..SELE
166b0 43 54 20 2b 20 2b 20 28 20 2b 20 43 4f 55 4e 54  CT + + ( + COUNT
166c0 28 20 2a 20 29 20 29 20 41 53 20 63 6f 6c 31 20  ( * ) ) AS col1 
166d0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
166e0 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b  0..----..3....sk
166f0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
16700 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
16710 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
16720 65 6c 2d 34 38 35 0d 0a 53 45 4c 45 43 54 20 2b  el-485..SELECT +
16730 20 2b 20 28 20 2b 20 43 4f 55 4e 54 20 28 20 2a   + ( + COUNT ( *
16740 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   ) ) AS col1 FRO
16750 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
16760 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69  ----..3....onlyi
16770 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
16780 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
16790 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
167a0 62 65 6c 2d 34 38 36 0d 0a 53 45 4c 45 43 54 20  bel-486..SELECT 
167b0 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  + COUNT( * ) AS 
167c0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
167d0 53 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c  S cor0 WHERE col
167e0 30 20 4e 4f 54 20 49 4e 20 28 20 2d 20 28 20 2b  0 NOT IN ( - ( +
167f0 20 63 6f 6c 30 20 29 20 29 0d 0a 2d 2d 2d 2d 0d   col0 ) )..----.
16800 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .3....skipif mys
16810 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
16820 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
16830 73 6f 72 74 20 6c 61 62 65 6c 2d 34 38 36 0d 0a  sort label-486..
16840 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20 28  SELECT + COUNT (
16850 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f   * ) AS col2 FRO
16860 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
16870 48 45 52 45 20 63 6f 6c 30 20 4e 4f 54 20 49 4e  HERE col0 NOT IN
16880 20 28 20 2d 20 28 20 2b 20 63 6f 6c 30 20 29 20   ( - ( + col0 ) 
16890 29 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75  )..----..3....qu
168a0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
168b0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
168c0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
168d0 57 48 45 52 45 20 4e 55 4c 4c 20 42 45 54 57 45  WHERE NULL BETWE
168e0 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 31 39 20 2f  EN NULL AND 19 /
168f0 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 2d 20 63 6f   - col2 * + - co
16900 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  l0..----....quer
16910 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
16920 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
16930 31 20 57 48 45 52 45 20 2d 20 2b 20 63 6f 6c 31  1 WHERE - + col1
16940 20 2d 20 2b 20 2b 20 35 36 20 49 53 20 4e 55 4c   - + + 56 IS NUL
16950 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
16960 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
16970 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32  CT DISTINCT col2
16980 20 2a 20 2d 20 63 6f 6c 30 20 2b 20 63 6f 6c 32   * - col0 + col2
16990 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20   + col0 AS col1 
169a0 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
169b0 0a 2d 34 37 34 39 0d 0a 2d 34 38 37 31 0d 0a 2d  .-4749..-4871..-
169c0 36 30 32 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20  6029....query I 
169d0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
169e0 2d 20 39 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  - 9 AS col1 FROM
169f0 20 74 61 62 31 20 57 48 45 52 45 20 2b 20 31 37   tab1 WHERE + 17
16a00 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   <> NULL..----..
16a10 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
16a20 74 0d 0a 53 45 4c 45 43 54 20 2b 20 38 31 20 2b  t..SELECT + 81 +
16a30 20 2b 20 28 20 2d 20 63 6f 6c 30 20 29 20 2b 20   + ( - col0 ) + 
16a40 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46  - col2 AS col2 F
16a50 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
16a60 2d 36 33 0d 0a 2d 36 36 0d 0a 2d 37 38 0d 0a 0d  -63..-66..-78...
16a70 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
16a80 0d 0a 53 45 4c 45 43 54 20 2d 20 34 37 20 2b 20  ..SELECT - 47 + 
16a90 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  + - col0 FROM ta
16aa0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 32 0d 0a  b1..----..-132..
16ab0 2d 31 33 38 0d 0a 2d 39 38 0d 0a 0d 0a 6f 6e 6c  -138..-98....onl
16ac0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
16ad0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
16ae0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
16af0 6c 61 62 65 6c 2d 34 39 33 0d 0a 53 45 4c 45 43  label-493..SELEC
16b00 54 20 35 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a  T 5 + + COUNT( *
16b10 20 29 20 2a 20 32 37 20 46 52 4f 4d 20 74 61 62   ) * 27 FROM tab
16b20 30 0d 0a 2d 2d 2d 2d 0d 0a 38 36 0d 0a 0d 0a 73  0..----..86....s
16b30 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
16b40 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
16b50 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
16b60 62 65 6c 2d 34 39 33 0d 0a 53 45 4c 45 43 54 20  bel-493..SELECT 
16b70 35 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  5 + + COUNT ( * 
16b80 29 20 2a 20 32 37 20 46 52 4f 4d 20 74 61 62 30  ) * 27 FROM tab0
16b90 0d 0a 2d 2d 2d 2d 0d 0a 38 36 0d 0a 0d 0a 71 75  ..----..86....qu
16ba0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
16bb0 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2b 20 2d  ELECT + col2 + -
16bc0 20 35 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d   5 FROM tab2..--
16bd0 2d 2d 0d 0a 31 38 0d 0a 33 35 0d 0a 35 33 0d 0a  --..18..35..53..
16be0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
16bf0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
16c00 63 6f 6c 30 20 2a 20 36 38 20 41 53 20 63 6f 6c  col0 * 68 AS col
16c10 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
16c20 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 32 30  or0..----..-1020
16c30 0d 0a 2d 35 39 31 36 0d 0a 2d 36 35 39 36 0d 0a  ..-5916..-6596..
16c40 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
16c50 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
16c60 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  x: ..query II ro
16c70 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 39 36 0d  wsort label-496.
16c80 0a 53 45 4c 45 43 54 20 31 20 41 53 20 63 6f 6c  .SELECT 1 AS col
16c90 30 2c 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20  0, + COUNT( * ) 
16ca0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
16cb0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
16cc0 0a 31 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  .1..3....skipif 
16cd0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
16ce0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
16cf0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
16d00 39 36 0d 0a 53 45 4c 45 43 54 20 31 20 41 53 20  96..SELECT 1 AS 
16d10 63 6f 6c 30 2c 20 2b 20 43 4f 55 4e 54 20 28 20  col0, + COUNT ( 
16d20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  * ) AS col0 FROM
16d30 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
16d40 2d 2d 2d 0d 0a 31 0d 0a 33 0d 0a 0d 0a 73 6b 69  ---..1..3....ski
16d50 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
16d60 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
16d70 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
16d80 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
16d90 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72  umns..query II r
16da0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
16db0 20 63 6f 6c 30 20 63 6f 6c 32 2c 20 63 6f 6c 31   col0 col2, col1
16dc0 20 2a 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   * col0 FROM tab
16dd0 31 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 37 31 34  1..----..51..714
16de0 0d 0a 38 35 0d 0a 34 32 35 0d 0a 39 31 0d 0a 34  ..85..425..91..4
16df0 32 37 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  277....onlyif my
16e00 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
16e10 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
16e20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
16e30 2d 34 39 38 0d 0a 53 45 4c 45 43 54 20 4d 41 58  -498..SELECT MAX
16e40 28 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 29 2c 20  ( ALL - col0 ), 
16e50 4d 49 4e 28 20 2b 20 63 6f 6c 30 20 29 20 41 53  MIN( + col0 ) AS
16e60 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
16e70 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 35 31 0d 0a  .----..-51..51..
16e80 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
16e90 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
16ea0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
16eb0 74 20 6c 61 62 65 6c 2d 34 39 38 0d 0a 53 45 4c  t label-498..SEL
16ec0 45 43 54 20 4d 41 58 20 28 20 41 4c 4c 20 2d 20  ECT MAX ( ALL - 
16ed0 63 6f 6c 30 20 29 2c 20 4d 49 4e 20 28 20 2b 20  col0 ), MIN ( + 
16ee0 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 31 20 46  col0 ) AS col1 F
16ef0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
16f00 2d 35 31 0d 0a 35 31 0d 0a 0d 0a 6f 6e 6c 79 69  -51..51....onlyi
16f10 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
16f20 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20  ate syntax: DIV 
16f30 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
16f40 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
16f50 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 39  rowsort label-49
16f60 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  9..SELECT DISTIN
16f70 43 54 20 4d 49 4e 28 20 41 4c 4c 20 2d 20 63 6f  CT MIN( ALL - co
16f80 6c 32 20 29 20 44 49 56 20 2b 20 39 20 2b 20 2d  l2 ) DIV + 9 + -
16f90 20 39 39 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29   99 + COUNT( * )
16fa0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
16fb0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 32 0d 0a  b2..----..-102..
16fc0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
16fd0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
16fe0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
16ff0 20 6c 61 62 65 6c 2d 34 39 39 0d 0a 53 45 4c 45   label-499..SELE
17000 43 54 20 44 49 53 54 49 4e 43 54 20 4d 49 4e 20  CT DISTINCT MIN 
17010 28 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 29 20 2f  ( ALL - col2 ) /
17020 20 2b 20 39 20 2b 20 2d 20 39 39 20 2b 20 43 4f   + 9 + - 99 + CO
17030 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c  UNT ( * ) AS col
17040 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
17050 2d 0d 0a 2d 31 30 32 0d 0a 0d 0a 71 75 65 72 79  -..-102....query
17060 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
17070 43 54 20 41 4c 4c 20 63 6f 6c 32 20 2a 20 2b 20  CT ALL col2 * + 
17080 35 38 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  58 FROM tab0..--
17090 2d 2d 0d 0a 32 37 32 36 0d 0a 35 37 34 32 0d 0a  --..2726..5742..
170a0 35 38 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  580....query I r
170b0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
170c0 6f 6c 31 20 2d 20 2b 20 33 39 20 41 53 20 63 6f  ol1 - + 39 AS co
170d0 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l2 FROM tab1..--
170e0 2d 2d 0d 0a 2d 32 35 0d 0a 2d 33 34 0d 0a 38 0d  --..-25..-34..8.
170f0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
17100 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
17110 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
17120 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
17130 62 65 6c 2d 35 30 32 0d 0a 53 45 4c 45 43 54 20  bel-502..SELECT 
17140 41 4c 4c 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c  ALL + CAST( NULL
17150 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f   AS SIGNED ) FRO
17160 4d 20 74 61 62 31 20 57 48 45 52 45 20 2b 20 32  M tab1 WHERE + 2
17170 30 20 4e 4f 54 20 49 4e 20 28 20 2d 20 63 6f 6c  0 NOT IN ( - col
17180 31 2c 20 2d 20 37 30 20 29 0d 0a 2d 2d 2d 2d 0d  1, - 70 )..----.
17190 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
171a0 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
171b0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
171c0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
171d0 6f 72 74 20 6c 61 62 65 6c 2d 35 30 32 0d 0a 53  ort label-502..S
171e0 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 41 53 54  ELECT ALL + CAST
171f0 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
17200 45 52 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57  ER ) FROM tab1 W
17210 48 45 52 45 20 2b 20 32 30 20 4e 4f 54 20 49 4e  HERE + 20 NOT IN
17220 20 28 20 2d 20 63 6f 6c 31 2c 20 2d 20 37 30 20   ( - col1, - 70 
17230 29 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  )..----..NULL..N
17240 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c  ULL..NULL....onl
17250 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
17260 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
17270 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
17280 6c 61 62 65 6c 2d 35 30 33 0d 0a 53 45 4c 45 43  label-503..SELEC
17290 54 20 2b 20 2b 20 28 20 2b 20 43 4f 55 4e 54 28  T + + ( + COUNT(
172a0 20 2a 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31   * ) ) FROM tab1
172b0 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a   AS cor0 CROSS J
172c0 4f 49 4e 20 74 61 62 32 20 41 53 20 63 6f 72 31  OIN tab2 AS cor1
172d0 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 73 6b 69  ..----..9....ski
172e0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
172f0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
17300 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
17310 6c 2d 35 30 33 0d 0a 53 45 4c 45 43 54 20 2b 20  l-503..SELECT + 
17320 2b 20 28 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  + ( + COUNT ( * 
17330 29 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ) ) FROM tab1 AS
17340 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
17350 20 74 61 62 32 20 41 53 20 63 6f 72 31 0d 0a 2d   tab2 AS cor1..-
17360 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 6f 6e 6c 79 69 66  ---..9....onlyif
17370 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
17380 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
17390 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  e: ..query II ro
173a0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 30 34 0d  wsort label-504.
173b0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
173c0 20 2d 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c   - - col1 AS col
173d0 30 2c 20 43 41 53 54 28 20 32 30 20 41 53 20 53  0, CAST( 20 AS S
173e0 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 30 20  IGNED ) AS col0 
173f0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
17400 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 32 30 0d 0a  0..----..1..20..
17410 32 31 0d 0a 32 30 0d 0a 38 31 0d 0a 32 30 0d 0a  21..20..81..20..
17420 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
17430 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
17440 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
17450 74 20 6c 61 62 65 6c 2d 35 30 34 0d 0a 53 45 4c  t label-504..SEL
17460 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2d  ECT DISTINCT - -
17470 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 2c 20 43   col1 AS col0, C
17480 41 53 54 20 28 20 32 30 20 41 53 20 49 4e 54 45  AST ( 20 AS INTE
17490 47 45 52 20 29 20 41 53 20 63 6f 6c 30 20 46 52  GER ) AS col0 FR
174a0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
174b0 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 32 30 0d 0a 32 31  .----..1..20..21
174c0 0d 0a 32 30 0d 0a 38 31 0d 0a 32 30 0d 0a 0d 0a  ..20..81..20....
174d0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
174e0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
174f0 54 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31  T + col1 AS col1
17500 2c 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  , - col0 FROM ta
17510 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
17520 0d 0a 35 31 0d 0a 2d 34 36 0d 0a 36 37 0d 0a 2d  ..51..-46..67..-
17530 37 35 0d 0a 37 37 0d 0a 2d 36 34 0d 0a 0d 0a 71  75..77..-64....q
17540 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
17550 53 45 4c 45 43 54 20 2d 20 2b 20 63 6f 6c 32 20  SELECT - + col2 
17560 2a 20 2b 20 2d 20 35 36 20 41 53 20 63 6f 6c 30  * + - 56 AS col0
17570 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
17580 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 38 38 0d 0a  r0..----..1288..
17590 32 32 34 30 0d 0a 33 32 34 38 0d 0a 0d 0a 71 75  2240..3248....qu
175a0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
175b0 45 4c 45 43 54 20 2b 20 2d 20 35 31 20 2a 20 2d  ELECT + - 51 * -
175c0 20 31 39 20 46 52 4f 4d 20 74 61 62 30 20 63 6f   19 FROM tab0 co
175d0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 36 39 0d 0a 39  r0..----..969..9
175e0 36 39 0d 0a 39 36 39 0d 0a 0d 0a 71 75 65 72 79  69..969....query
175f0 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
17600 45 43 54 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 63  ECT + col2 * - c
17610 6f 6c 30 20 41 53 20 63 6f 6c 30 2c 20 32 38 20  ol0 AS col0, 28 
17620 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
17630 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 30 35 0d 0a 32  0..----..-705..2
17640 38 0d 0a 2d 38 37 30 0d 0a 32 38 0d 0a 2d 39 36  8..-870..28..-96
17650 30 33 0d 0a 32 38 0d 0a 0d 0a 71 75 65 72 79 20  03..28....query 
17660 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
17670 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ECT * FROM tab2 
17680 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 30  WHERE NOT - col0
17690 20 3e 20 38 34 20 2a 20 2d 20 63 6f 6c 30 0d 0a   > 84 * - col0..
176a0 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
176b0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
176c0 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
176d0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
176e0 72 74 20 6c 61 62 65 6c 2d 35 31 30 0d 0a 53 45  rt label-510..SE
176f0 4c 45 43 54 20 2b 20 2b 20 36 31 20 2d 20 2d 20  LECT + + 61 - - 
17700 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
17710 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 30 20 46  GNED ) AS col0 F
17720 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
17730 4f 54 20 31 33 20 2f 20 63 6f 6c 30 20 2f 20 2b  OT 13 / col0 / +
17740 20 63 6f 6c 31 20 2b 20 63 6f 6c 31 20 3e 20 63   col1 + col1 > c
17750 6f 6c 31 20 2a 20 37 36 20 2d 20 2d 20 63 6f 6c  ol1 * 76 - - col
17760 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  1..----..NULL..N
17770 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ULL..NULL....ski
17780 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
17790 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
177a0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
177b0 6c 2d 35 31 30 0d 0a 53 45 4c 45 43 54 20 2b 20  l-510..SELECT + 
177c0 2b 20 36 31 20 2d 20 2d 20 43 41 53 54 20 28 20  + 61 - - CAST ( 
177d0 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
177e0 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
177f0 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 31 33  ab0 WHERE NOT 13
17800 20 2f 20 63 6f 6c 30 20 2f 20 2b 20 63 6f 6c 31   / col0 / + col1
17810 20 2b 20 63 6f 6c 31 20 3e 20 63 6f 6c 31 20 2a   + col1 > col1 *
17820 20 37 36 20 2d 20 2d 20 63 6f 6c 31 0d 0a 2d 2d   76 - - col1..--
17830 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
17840 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  NULL....skipif p
17850 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
17860 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
17870 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
17880 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
17890 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
178a0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 38 31 20  ..SELECT ALL 81 
178b0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
178c0 2d 2d 2d 2d 0d 0a 38 31 0d 0a 38 31 0d 0a 38 31  ----..81..81..81
178d0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
178e0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
178f0 49 4e 43 54 20 63 6f 6c 31 20 41 53 20 63 6f 6c  INCT col1 AS col
17900 31 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  1 FROM tab2 WHER
17910 45 20 2d 20 37 31 20 49 53 20 4e 4f 54 20 4e 55  E - 71 IS NOT NU
17920 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 36 37  LL..----..51..67
17930 0d 0a 37 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..77....query II
17940 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
17950 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
17960 30 20 57 48 45 52 45 20 2b 20 38 34 20 3e 20 2d  0 WHERE + 84 > -
17970 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   col2..----..9 v
17980 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
17990 20 63 34 62 34 32 37 36 35 64 66 66 39 34 65 61   c4b42765dff94ea
179a0 61 61 34 36 30 34 30 65 35 33 37 66 62 34 33 62  aa46040e537fb43b
179b0 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  7....onlyif mysq
179c0 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
179d0 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
179e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
179f0 6c 61 62 65 6c 2d 35 31 34 0d 0a 53 45 4c 45 43  label-514..SELEC
17a00 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 63  T DISTINCT + - c
17a10 6f 6c 31 20 2a 20 2b 20 2b 20 28 20 2b 20 43 41  ol1 * + + ( + CA
17a20 53 54 28 20 2b 20 35 38 20 41 53 20 53 49 47 4e  ST( + 58 AS SIGN
17a30 45 44 20 29 20 29 20 2b 20 2b 20 63 6f 6c 31 20  ED ) ) + + col1 
17a40 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
17a50 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
17a60 0a 2d 32 39 30 37 0d 0a 2d 33 38 31 39 0d 0a 2d  .-2907..-3819..-
17a70 34 33 38 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  4389....skipif m
17a80 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
17a90 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
17aa0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 31 34  owsort label-514
17ab0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
17ac0 54 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 2b  T + - col1 * + +
17ad0 20 28 20 2b 20 43 41 53 54 20 28 20 2b 20 35 38   ( + CAST ( + 58
17ae0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20   AS INTEGER ) ) 
17af0 2b 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32  + + col1 AS col2
17b00 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
17b10 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 39 30 37 0d  r0..----..-2907.
17b20 0a 2d 33 38 31 39 0d 0a 2d 34 33 38 39 0d 0a 0d  .-3819..-4389...
17b30 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
17b40 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
17b50 54 20 2b 20 35 31 20 2b 20 2b 20 63 6f 6c 32 20  T + 51 + + col2 
17b60 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
17b70 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
17b80 0a 31 30 39 0d 0a 37 34 0d 0a 39 31 0d 0a 0d 0a  .109..74..91....
17b90 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
17ba0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
17bb0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
17bc0 72 74 20 6c 61 62 65 6c 2d 35 31 36 0d 0a 53 45  rt label-516..SE
17bd0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f  LECT DISTINCT CO
17be0 55 4e 54 28 20 2a 20 29 20 2b 20 2d 20 2d 20 33  UNT( * ) + - - 3
17bf0 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
17c00 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
17c10 61 62 31 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d  ab1 AS cor1..---
17c20 2d 0d 0a 33 39 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..39....skipif 
17c30 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
17c40 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
17c50 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 31  rowsort label-51
17c60 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  6..SELECT DISTIN
17c70 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b  CT COUNT ( * ) +
17c80 20 2d 20 2d 20 33 30 20 46 52 4f 4d 20 74 61 62   - - 30 FROM tab
17c90 30 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  0 AS cor0 CROSS 
17ca0 4a 4f 49 4e 20 74 61 62 31 20 41 53 20 63 6f 72  JOIN tab1 AS cor
17cb0 31 0d 0a 2d 2d 2d 2d 0d 0a 33 39 0d 0a 0d 0a 71  1..----..39....q
17cc0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
17cd0 53 45 4c 45 43 54 20 2b 20 37 38 20 2b 20 2d 20  SELECT + 78 + - 
17ce0 36 20 2a 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 63  6 * + col1 + - c
17cf0 6f 6c 31 20 2b 20 2b 20 32 34 20 46 52 4f 4d 20  ol1 + + 24 FROM 
17d00 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32 37  tab1..----..-227
17d10 0d 0a 34 0d 0a 36 37 0d 0a 0d 0a 6f 6e 6c 79 69  ..4..67....onlyi
17d20 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
17d30 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74  yntax: DECIMAL t
17d40 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49  ype: ..query III
17d50 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
17d60 31 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  18..SELECT DISTI
17d70 4e 43 54 20 2d 20 63 6f 6c 30 2c 20 2d 20 63 6f  NCT - col0, - co
17d80 6c 31 2c 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c  l1, + CAST( NULL
17d90 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20 46 52   AS DECIMAL ) FR
17da0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
17db0 57 48 45 52 45 20 4e 55 4c 4c 20 3c 20 63 6f 6c  WHERE NULL < col
17dc0 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  2..----....skipi
17dd0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
17de0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
17df0 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
17e00 6c 2d 35 31 38 0d 0a 53 45 4c 45 43 54 20 44 49  l-518..SELECT DI
17e10 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 2c 20 2d  STINCT - col0, -
17e20 20 63 6f 6c 31 2c 20 2b 20 43 41 53 54 20 28 20   col1, + CAST ( 
17e30 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 46  NULL AS REAL ) F
17e40 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
17e50 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c 20 63 6f   WHERE NULL < co
17e60 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  l2..----....quer
17e70 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
17e80 45 43 54 20 32 20 41 53 20 63 6f 6c 30 20 46 52  ECT 2 AS col0 FR
17e90 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
17ea0 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 55  WHERE NULL IS NU
17eb0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 0d 0a 32 0d 0a  LL..----..2..2..
17ec0 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  2....query I row
17ed0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63  sort..SELECT - c
17ee0 6f 6c 31 20 2b 20 2b 20 2b 20 63 6f 6c 31 20 46  ol1 + + + col1 F
17ef0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
17f00 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d  ..----..0..0..0.
17f10 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
17f20 72 74 0d 0a 53 45 4c 45 43 54 20 34 36 20 2b 20  rt..SELECT 46 + 
17f30 63 6f 6c 32 20 2d 20 2b 20 63 6f 6c 31 20 46 52  col2 - + col1 FR
17f40 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
17f50 0a 2d 2d 2d 2d 0d 0a 31 30 30 0d 0a 31 32 38 0d  .----..100..128.
17f60 0a 36 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .67....query I r
17f70 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
17f80 20 28 20 2d 20 63 6f 6c 30 20 29 20 2b 20 2b 20   ( - col0 ) + + 
17f90 28 20 38 33 20 29 20 46 52 4f 4d 20 74 61 62 31  ( 83 ) FROM tab1
17fa0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 0d   cor0..----..-2.
17fb0 0a 2d 38 0d 0a 33 32 0d 0a 0d 0a 71 75 65 72 79  .-8..32....query
17fc0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
17fd0 43 54 20 2b 20 63 6f 6c 31 20 2b 20 63 6f 6c 32  CT + col1 + col2
17fe0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
17ff0 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
18000 20 4e 55 4c 4c 20 3c 3d 20 2d 20 31 37 0d 0a 2d   NULL <= - 17..-
18010 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
18020 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
18030 4c 4c 20 2d 20 2d 20 34 37 20 2a 20 32 39 20 46  LL - - 47 * 29 F
18040 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
18050 0d 0a 2d 2d 2d 2d 0d 0a 31 33 36 33 0d 0a 31 33  ..----..1363..13
18060 36 33 0d 0a 31 33 36 33 0d 0a 0d 0a 6f 6e 6c 79  63..1363....only
18070 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
18080 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
18090 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
180a0 61 62 65 6c 2d 35 32 35 0d 0a 53 45 4c 45 43 54  abel-525..SELECT
180b0 20 41 4c 4c 20 34 33 20 2b 20 2d 20 43 4f 55 4e   ALL 43 + - COUN
180c0 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32  T( * ) FROM tab2
180d0 0d 0a 2d 2d 2d 2d 0d 0a 34 30 0d 0a 0d 0a 73 6b  ..----..40....sk
180e0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
180f0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
18100 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
18110 65 6c 2d 35 32 35 0d 0a 53 45 4c 45 43 54 20 41  el-525..SELECT A
18120 4c 4c 20 34 33 20 2b 20 2d 20 43 4f 55 4e 54 20  LL 43 + - COUNT 
18130 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 0d  ( * ) FROM tab2.
18140 0a 2d 2d 2d 2d 0d 0a 34 30 0d 0a 0d 0a 71 75 65  .----..40....que
18150 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
18160 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20  LECT ALL - col0 
18170 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
18180 28 20 2d 20 2b 20 63 6f 6c 30 20 2f 20 35 31 20  ( - + col0 / 51 
18190 29 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e 55  ) NOT BETWEEN NU
181a0 4c 4c 20 41 4e 44 20 63 6f 6c 30 20 2a 20 63 6f  LL AND col0 * co
181b0 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  l0..----....quer
181c0 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
181d0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
181e0 32 31 20 2a 20 2d 20 2b 20 33 32 2c 20 63 6f 6c  21 * - + 32, col
181f0 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
18200 2d 0d 0a 2d 36 37 32 0d 0a 31 0d 0a 2d 36 37 32  -..-672..1..-672
18210 0d 0a 32 31 0d 0a 2d 36 37 32 0d 0a 38 31 0d 0a  ..21..-672..81..
18220 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
18230 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2a  t..SELECT col1 *
18240 20 2d 20 39 35 20 46 52 4f 4d 20 74 61 62 30 0d   - 95 FROM tab0.
18250 0a 2d 2d 2d 2d 0d 0a 2d 31 39 39 35 0d 0a 2d 37  .----..-1995..-7
18260 36 39 35 0d 0a 2d 39 35 0d 0a 0d 0a 71 75 65 72  695..-95....quer
18270 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
18280 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2a 20 2d  ECT ALL col1 * -
18290 20 32 38 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d   28 FROM tab0..-
182a0 2d 2d 2d 0d 0a 2d 32 32 36 38 0d 0a 2d 32 38 0d  ---..-2268..-28.
182b0 0a 2d 35 38 38 0d 0a 0d 0a 71 75 65 72 79 20 49  .-588....query I
182c0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
182d0 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 2a 20 2d 20   ALL - col1 * - 
182e0 32 36 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  26 FROM tab0..--
182f0 2d 2d 0d 0a 32 31 30 36 0d 0a 32 36 0d 0a 35 34  --..2106..26..54
18300 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
18310 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
18320 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
18330 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 33  rowsort label-53
18340 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  1..SELECT DISTIN
18350 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53  CT COUNT( * ) AS
18360 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
18370 57 48 45 52 45 20 63 6f 6c 31 20 49 53 20 4e 55  WHERE col1 IS NU
18380 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73  LL..----..0....s
18390 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
183a0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
183b0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
183c0 62 65 6c 2d 35 33 31 0d 0a 53 45 4c 45 43 54 20  bel-531..SELECT 
183d0 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 20 28  DISTINCT COUNT (
183e0 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   * ) AS col1 FRO
183f0 4d 20 74 61 62 31 20 57 48 45 52 45 20 63 6f 6c  M tab1 WHERE col
18400 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  1 IS NULL..----.
18410 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  .0....skipif pos
18420 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
18430 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
18440 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
18450 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
18460 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
18470 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2a  .SELECT - col0 *
18480 20 39 34 20 2a 20 2b 20 2b 20 38 36 20 63 6f 6c   94 * + + 86 col
18490 30 2c 20 2d 20 63 6f 6c 30 20 2b 20 33 30 20 2a  0, - col0 + 30 *
184a0 20 33 35 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   35 AS col1 FROM
184b0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32   tab0..----..-12
184c0 31 32 36 30 0d 0a 31 30 33 35 0d 0a 2d 37 30 33  1260..1035..-703
184d0 33 30 38 0d 0a 39 36 33 0d 0a 2d 37 38 34 31 34  308..963..-78414
184e0 38 0d 0a 39 35 33 0d 0a 0d 0a 6f 6e 6c 79 69 66  8..953....onlyif
184f0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
18500 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
18510 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
18520 65 6c 2d 35 33 33 0d 0a 53 45 4c 45 43 54 20 2b  el-533..SELECT +
18530 20 4d 41 58 28 20 41 4c 4c 20 2d 20 2b 20 35 30   MAX( ALL - + 50
18540 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
18550 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 30 0d  tab1..----..-50.
18560 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
18570 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
18580 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
18590 74 20 6c 61 62 65 6c 2d 35 33 33 0d 0a 53 45 4c  t label-533..SEL
185a0 45 43 54 20 2b 20 4d 41 58 20 28 20 41 4c 4c 20  ECT + MAX ( ALL 
185b0 2d 20 2b 20 35 30 20 29 20 41 53 20 63 6f 6c 30  - + 50 ) AS col0
185c0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
185d0 0d 0a 2d 35 30 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-50....query I
185e0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
185f0 54 20 2d 20 37 31 20 41 53 20 63 6f 6c 32 2c 20  T - 71 AS col2, 
18600 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  - col1 FROM tab2
18610 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
18620 2d 37 31 0d 0a 2d 35 31 0d 0a 2d 37 31 0d 0a 2d  -71..-51..-71..-
18630 36 37 0d 0a 2d 37 31 0d 0a 2d 37 37 0d 0a 0d 0a  67..-71..-77....
18640 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
18650 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
18660 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
18670 6f 72 74 20 6c 61 62 65 6c 2d 35 33 35 0d 0a 53  ort label-535..S
18680 45 4c 45 43 54 20 2b 20 33 35 20 41 53 20 63 6f  ELECT + 35 AS co
18690 6c 31 2c 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  l1, - COUNT( * )
186a0 20 2a 20 2d 20 37 34 20 46 52 4f 4d 20 74 61 62   * - 74 FROM tab
186b0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
186c0 0a 33 35 0d 0a 32 32 32 0d 0a 0d 0a 73 6b 69 70  .35..222....skip
186d0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
186e0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
186f0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
18700 6c 2d 35 33 35 0d 0a 53 45 4c 45 43 54 20 2b 20  l-535..SELECT + 
18710 33 35 20 41 53 20 63 6f 6c 31 2c 20 2d 20 43 4f  35 AS col1, - CO
18720 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20 37 34  UNT ( * ) * - 74
18730 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
18740 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 35 0d 0a 32 32  r0..----..35..22
18750 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  2....query I row
18760 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 37  sort..SELECT - 7
18770 20 2a 20 2b 20 36 31 20 46 52 4f 4d 20 74 61 62   * + 61 FROM tab
18780 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
18790 0a 2d 34 32 37 0d 0a 2d 34 32 37 0d 0a 2d 34 32  .-427..-427..-42
187a0 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  7....onlyif mysq
187b0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
187c0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
187d0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 33  rowsort label-53
187e0 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  7..SELECT DISTIN
187f0 43 54 20 2d 20 53 55 4d 28 20 41 4c 4c 20 2b 20  CT - SUM( ALL + 
18800 36 35 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41  65 ) FROM tab0 A
18810 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
18820 20 28 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 2b 20   ( - col1 * - + 
18830 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 32 20 2b 20  col2 * - col2 + 
18840 2d 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 2b 20 63  - + col0 + + + c
18850 6f 6c 30 20 29 20 3d 20 63 6f 6c 32 0d 0a 2d 2d  ol0 ) = col2..--
18860 2d 2d 0d 0a 2d 31 39 35 0d 0a 0d 0a 73 6b 69 70  --..-195....skip
18870 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
18880 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
18890 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
188a0 2d 35 33 37 0d 0a 53 45 4c 45 43 54 20 44 49 53  -537..SELECT DIS
188b0 54 49 4e 43 54 20 2d 20 53 55 4d 20 28 20 41 4c  TINCT - SUM ( AL
188c0 4c 20 2b 20 36 35 20 29 20 46 52 4f 4d 20 74 61  L + 65 ) FROM ta
188d0 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
188e0 20 4e 4f 54 20 28 20 2d 20 63 6f 6c 31 20 2a 20   NOT ( - col1 * 
188f0 2d 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c  - + col2 * - col
18900 32 20 2b 20 2d 20 2b 20 63 6f 6c 30 20 2b 20 2b  2 + - + col0 + +
18910 20 2b 20 63 6f 6c 30 20 29 20 3d 20 63 6f 6c 32   + col0 ) = col2
18920 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 35 0d 0a 0d 0a  ..----..-195....
18930 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
18940 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
18950 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
18960 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29  ERE NOT ( NULL )
18970 20 3e 3d 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 39   >= + col0 * + 9
18980 35 20 2b 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d  5 + + col0..----
18990 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
189a0 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
189b0 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
189c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
189d0 61 62 65 6c 2d 35 33 39 0d 0a 53 45 4c 45 43 54  abel-539..SELECT
189e0 20 41 4c 4c 20 39 32 20 44 49 56 20 2d 20 63 6f   ALL 92 DIV - co
189f0 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
18a00 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a  cor0..----..-1..
18a10 2d 32 0d 0a 2d 34 0d 0a 0d 0a 73 6b 69 70 69 66  -2..-4....skipif
18a20 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
18a30 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
18a40 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
18a50 33 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 39  39..SELECT ALL 9
18a60 32 20 2f 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20  2 / - col2 FROM 
18a70 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
18a80 2d 2d 0d 0a 2d 31 0d 0a 2d 32 0d 0a 2d 34 0d 0a  --..-1..-2..-4..
18a90 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
18aa0 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2a  t..SELECT col2 *
18ab0 20 63 6f 6c 30 20 2a 20 63 6f 6c 30 20 2d 20 63   col0 * col0 - c
18ac0 6f 6c 30 20 2a 20 63 6f 6c 30 20 41 53 20 63 6f  ol0 * col0 AS co
18ad0 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
18ae0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28  cor0 WHERE NOT (
18af0 20 4e 55 4c 4c 20 29 20 3c 20 28 20 2b 20 28 20   NULL ) < ( + ( 
18b00 63 6f 6c 32 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a  col2 ) )..----..
18b10 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
18b20 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
18b30 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
18b40 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
18b50 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
18b60 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
18b70 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 31 35  CT DISTINCT - 15
18b80 20 2a 20 2b 20 2b 20 63 6f 6c 32 20 63 6f 6c 30   * + + col2 col0
18b90 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
18ba0 0d 0a 2d 31 34 38 35 0d 0a 2d 31 35 30 0d 0a 2d  ..-1485..-150..-
18bb0 37 30 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  705....onlyif my
18bc0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
18bd0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
18be0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
18bf0 35 34 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  542..SELECT ALL 
18c00 2b 20 4d 49 4e 28 20 41 4c 4c 20 2b 20 63 6f 6c  + MIN( ALL + col
18c10 32 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  2 ) AS col1 FROM
18c20 20 74 61 62 30 20 57 48 45 52 45 20 63 6f 6c 30   tab0 WHERE col0
18c30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
18c40 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
18c50 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
18c60 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
18c70 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 34 32  owsort label-542
18c80 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d  ..SELECT ALL + M
18c90 49 4e 20 28 20 41 4c 4c 20 2b 20 63 6f 6c 32 20  IN ( ALL + col2 
18ca0 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
18cb0 61 62 30 20 57 48 45 52 45 20 63 6f 6c 30 20 49  ab0 WHERE col0 I
18cc0 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S NULL..----..NU
18cd0 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  LL....query I ro
18ce0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
18cf0 53 54 49 4e 43 54 20 63 6f 6c 31 20 2a 20 2b 20  STINCT col1 * + 
18d00 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 32 20 46 52  col0 * + col2 FR
18d10 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
18d20 38 32 37 30 0d 0a 35 37 31 30 35 0d 0a 39 36 30  8270..57105..960
18d30 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  3....query III r
18d40 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
18d50 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
18d60 20 4e 4f 54 20 36 39 20 2b 20 2d 20 36 38 20 2f   NOT 69 + - 68 /
18d70 20 2b 20 2b 20 39 35 20 49 53 20 4e 55 4c 4c 0d   + + 95 IS NULL.
18d80 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
18d90 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39  hashing to 75c99
18da0 38 61 61 35 33 61 63 38 33 32 31 38 63 62 66 32  8aa53ac83218cbf2
18db0 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 6f  feb962d0a49....o
18dc0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
18dd0 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
18de0 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
18df0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
18e00 35 34 35 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31  545..SELECT col1
18e10 20 44 49 56 20 2b 20 37 33 20 41 53 20 63 6f 6c   DIV + 73 AS col
18e20 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  2 FROM tab1..---
18e30 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b  -..0..0..0....sk
18e40 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
18e50 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
18e60 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
18e70 65 6c 2d 35 34 35 0d 0a 53 45 4c 45 43 54 20 63  el-545..SELECT c
18e80 6f 6c 31 20 2f 20 2b 20 37 33 20 41 53 20 63 6f  ol1 / + 73 AS co
18e90 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l2 FROM tab1..--
18ea0 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 6f  --..0..0..0....o
18eb0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
18ec0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
18ed0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
18ee0 74 20 6c 61 62 65 6c 2d 35 34 36 0d 0a 53 45 4c  t label-546..SEL
18ef0 45 43 54 20 2b 20 4d 49 4e 28 20 41 4c 4c 20 2d  ECT + MIN( ALL -
18f00 20 63 6f 6c 32 20 29 20 2a 20 2b 20 36 36 20 46   col2 ) * + 66 F
18f10 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
18f20 2d 33 38 32 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  -3828....skipif 
18f30 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
18f40 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
18f50 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 34  rowsort label-54
18f60 36 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 49 4e 20  6..SELECT + MIN 
18f70 28 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 29 20 2a  ( ALL - col2 ) *
18f80 20 2b 20 36 36 20 46 52 4f 4d 20 74 61 62 32 0d   + 66 FROM tab2.
18f90 0a 2d 2d 2d 2d 0d 0a 2d 33 38 32 38 0d 0a 0d 0a  .----..-3828....
18fa0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
18fb0 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
18fc0 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
18fd0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
18fe0 2d 35 34 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -547..SELECT ALL
18ff0 20 33 37 20 44 49 56 20 2b 20 2b 20 63 6f 6c 31   37 DIV + + col1
19000 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
19010 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a  .----..0..0..0..
19020 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
19030 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
19040 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
19050 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
19060 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
19070 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
19080 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
19090 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
190a0 35 34 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  547..SELECT ALL 
190b0 33 37 20 2f 20 2b 20 2b 20 63 6f 6c 31 20 63 6f  37 / + + col1 co
190c0 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
190d0 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 71  --..0..0..0....q
190e0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
190f0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
19100 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  T * FROM tab2 WH
19110 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 42 45 54  ERE NOT NULL BET
19120 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2d 20  WEEN NULL AND - 
19130 35 34 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  54..----....only
19140 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
19150 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
19160 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
19170 6c 61 62 65 6c 2d 35 34 39 0d 0a 53 45 4c 45 43  label-549..SELEC
19180 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 2c 20  T + COUNT( * ), 
19190 37 38 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  78 AS col2 FROM 
191a0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 37  tab2..----..3..7
191b0 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  8....skipif mysq
191c0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
191d0 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
191e0 73 6f 72 74 20 6c 61 62 65 6c 2d 35 34 39 0d 0a  sort label-549..
191f0 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20 28  SELECT + COUNT (
19200 20 2a 20 29 2c 20 37 38 20 41 53 20 63 6f 6c 32   * ), 78 AS col2
19210 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
19220 0d 0a 33 0d 0a 37 38 0d 0a 0d 0a 71 75 65 72 79  ..3..78....query
19230 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
19240 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
19250 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
19260 30 20 57 48 45 52 45 20 2d 20 37 30 20 4e 4f 54  0 WHERE - 70 NOT
19270 20 42 45 54 57 45 45 4e 20 2d 20 36 35 20 2a 20   BETWEEN - 65 * 
19280 2b 20 63 6f 6c 32 20 41 4e 44 20 2d 20 2d 20 63  + col2 AND - - c
19290 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ol1..----....que
192a0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
192b0 4c 45 43 54 20 2b 20 28 20 2d 20 41 56 47 20 28  LECT + ( - AVG (
192c0 20 63 6f 6c 31 20 29 20 29 20 46 52 4f 4d 20 74   col1 ) ) FROM t
192d0 61 62 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e  ab1 WHERE NULL N
192e0 4f 54 20 42 45 54 57 45 45 4e 20 2d 20 63 6f 6c  OT BETWEEN - col
192f0 30 20 41 4e 44 20 2b 20 63 6f 6c 32 20 2a 20 2b  0 AND + col2 * +
19300 20 2d 20 38 30 20 2b 20 63 6f 6c 31 0d 0a 2d 2d   - 80 + col1..--
19310 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79  --..NULL....only
19320 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
19330 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74  syntax: aggregat
19340 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  e syntax: SIGNED
19350 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
19360 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
19370 35 32 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53  52..SELECT + CAS
19380 54 28 20 4d 41 58 28 20 2d 20 28 20 2b 20 63 6f  T( MAX( - ( + co
19390 6c 32 20 29 20 29 20 41 53 20 53 49 47 4e 45 44  l2 ) ) AS SIGNED
193a0 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
193b0 2d 2d 0d 0a 2d 31 30 0d 0a 0d 0a 73 6b 69 70 69  --..-10....skipi
193c0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
193d0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
193e0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
193f0 35 35 32 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41  552..SELECT + CA
19400 53 54 20 28 20 4d 41 58 20 28 20 2d 20 28 20 2b  ST ( MAX ( - ( +
19410 20 63 6f 6c 32 20 29 20 29 20 41 53 20 49 4e 54   col2 ) ) AS INT
19420 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 30  EGER ) FROM tab0
19430 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 0d 0a 6f  ..----..-10....o
19440 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
19450 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
19460 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
19470 74 20 6c 61 62 65 6c 2d 35 35 33 0d 0a 53 45 4c  t label-553..SEL
19480 45 43 54 20 41 4c 4c 20 2d 20 28 20 2d 20 43 4f  ECT ALL - ( - CO
19490 55 4e 54 28 20 2a 20 29 20 29 20 63 6f 6c 31 20  UNT( * ) ) col1 
194a0 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 43  FROM tab2 cor0 C
194b0 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20 41  ROSS JOIN tab1 A
194c0 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 0d  S cor1..----..9.
194d0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
194e0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
194f0 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
19500 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
19510 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
19520 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
19530 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
19540 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
19550 2d 35 35 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -553..SELECT ALL
19560 20 2d 20 28 20 2d 20 43 4f 55 4e 54 20 28 20 2a   - ( - COUNT ( *
19570 20 29 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74   ) ) col1 FROM t
19580 61 62 32 20 63 6f 72 30 20 43 52 4f 53 53 20 4a  ab2 cor0 CROSS J
19590 4f 49 4e 20 74 61 62 31 20 41 53 20 63 6f 72 31  OIN tab1 AS cor1
195a0 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 71 75 65  ..----..9....que
195b0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
195c0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
195d0 2b 20 34 39 20 2b 20 2d 20 63 6f 6c 31 20 46 52  + 49 + - col1 FR
195e0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
195f0 0a 2d 2d 2d 2d 0d 0a 2d 35 34 0d 0a 2d 36 33 0d  .----..-54..-63.
19600 0a 2d 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-96....onlyif m
19610 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
19620 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
19630 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
19640 2d 35 35 35 0d 0a 53 45 4c 45 43 54 20 44 49 53  -555..SELECT DIS
19650 54 49 4e 43 54 20 2b 20 53 55 4d 28 20 63 6f 6c  TINCT + SUM( col
19660 32 20 29 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  2 ) FROM tab1 co
19670 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 32 33 0d 0a 0d  r0..----..223...
19680 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
19690 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
196a0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
196b0 6c 61 62 65 6c 2d 35 35 35 0d 0a 53 45 4c 45 43  label-555..SELEC
196c0 54 20 44 49 53 54 49 4e 43 54 20 2b 20 53 55 4d  T DISTINCT + SUM
196d0 20 28 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74   ( col2 ) FROM t
196e0 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab1 cor0..----..
196f0 32 32 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  223....query III
19700 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
19710 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
19720 20 74 61 62 30 20 63 6f 72 30 20 57 48 45 52 45   tab0 cor0 WHERE
19730 20 4e 55 4c 4c 20 3c 3e 20 28 20 4e 55 4c 4c 20   NULL <> ( NULL 
19740 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  )..----....query
19750 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
19760 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 2b 20  CT ALL - col1 + 
19770 2d 20 35 36 20 2d 20 2b 20 37 31 20 46 52 4f 4d  - 56 - + 71 FROM
19780 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
19790 2d 2d 2d 0d 0a 2d 31 37 38 0d 0a 2d 31 39 34 0d  ---..-178..-194.
197a0 0a 2d 32 30 34 0d 0a 0d 0a 73 6b 69 70 69 66 20  .-204....skipif 
197b0 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
197c0 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
197d0 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
197e0 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
197f0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
19800 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20  rt..SELECT col2 
19810 2a 20 2d 20 63 6f 6c 30 2c 20 2d 20 38 31 20 2a  * - col0, - 81 *
19820 20 2b 20 2d 20 63 6f 6c 31 20 2d 20 63 6f 6c 32   + - col1 - col2
19830 20 2d 20 2b 20 2b 20 63 6f 6c 32 20 63 6f 6c 32   - + + col2 col2
19840 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
19850 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 3e 3d  r0 WHERE NULL >=
19860 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
19870 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
19880 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
19890 2d 20 2d 20 28 20 2b 20 2d 20 63 6f 6c 31 20 29  - - ( + - col1 )
198a0 20 2b 20 2d 20 2b 20 63 6f 6c 32 20 41 53 20 63   + - + col2 AS c
198b0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
198c0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30   cor0..----..-10
198d0 30 0d 0a 2d 31 32 38 0d 0a 2d 33 31 0d 0a 0d 0a  0..-128..-31....
198e0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
198f0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
19900 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
19910 72 74 20 6c 61 62 65 6c 2d 35 36 30 0d 0a 53 45  rt label-560..SE
19920 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20  LECT COUNT( * ) 
19930 2d 20 2b 20 2d 20 33 34 20 41 53 20 63 6f 6c 32  - + - 34 AS col2
19940 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
19950 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 37 0d 0a 0d 0a  r0..----..37....
19960 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
19970 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
19980 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
19990 61 62 65 6c 2d 35 36 30 0d 0a 53 45 4c 45 43 54  abel-560..SELECT
199a0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2d 20 2b   COUNT ( * ) - +
199b0 20 2d 20 33 34 20 41 53 20 63 6f 6c 32 20 46 52   - 34 AS col2 FR
199c0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
199d0 0a 2d 2d 2d 2d 0d 0a 33 37 0d 0a 0d 0a 71 75 65  .----..37....que
199e0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
199f0 4c 45 43 54 20 63 6f 6c 30 20 2b 20 63 6f 6c 30  LECT col0 + col0
19a00 20 2a 20 2b 20 2b 20 63 6f 6c 31 20 46 52 4f 4d   * + + col1 FROM
19a10 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 33   tab0..----..123
19a20 30 0d 0a 31 39 31 34 0d 0a 31 39 34 0d 0a 0d 0a  0..1914..194....
19a30 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
19a40 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
19a50 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
19a60 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
19a70 2d 35 36 32 0d 0a 53 45 4c 45 43 54 20 2b 20 2d  -562..SELECT + -
19a80 20 31 38 20 2d 20 2d 20 43 41 53 54 28 20 4e 55   18 - - CAST( NU
19a90 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 41  LL AS SIGNED ) A
19aa0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
19ab0 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e   WHERE NULL IS N
19ac0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ULL..----..NULL.
19ad0 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .NULL..NULL....s
19ae0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
19af0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
19b00 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
19b10 62 65 6c 2d 35 36 32 0d 0a 53 45 4c 45 43 54 20  bel-562..SELECT 
19b20 2b 20 2d 20 31 38 20 2d 20 2d 20 43 41 53 54 20  + - 18 - - CAST 
19b30 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
19b40 52 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  R ) AS col0 FROM
19b50 20 74 61 62 31 20 57 48 45 52 45 20 4e 55 4c 4c   tab1 WHERE NULL
19b60 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
19b70 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
19b80 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
19b90 6f 72 74 0d 0a 53 45 4c 45 43 54 20 28 20 2d 20  ort..SELECT ( - 
19ba0 63 6f 6c 30 20 29 20 2a 20 63 6f 6c 31 20 2b 20  col0 ) * col1 + 
19bb0 2b 20 2b 20 35 36 20 41 53 20 63 6f 6c 30 20 46  + + 56 AS col0 F
19bc0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
19bd0 2d 31 31 35 39 0d 0a 2d 31 37 37 31 0d 0a 2d 34  -1159..-1771..-4
19be0 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
19bf0 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
19c00 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
19c10 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
19c20 6c 61 62 65 6c 2d 35 36 34 0d 0a 53 45 4c 45 43  label-564..SELEC
19c30 54 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  T CAST( NULL AS 
19c40 53 49 47 4e 45 44 20 29 20 2b 20 2b 20 63 6f 6c  SIGNED ) + + col
19c50 32 20 2b 20 2b 20 36 38 20 2d 20 37 32 20 41 53  2 + + 68 - 72 AS
19c60 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
19c70 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
19c80 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  L..NULL....skipi
19c90 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
19ca0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
19cb0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
19cc0 35 36 34 0d 0a 53 45 4c 45 43 54 20 43 41 53 54  564..SELECT CAST
19cd0 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
19ce0 45 52 20 29 20 2b 20 2b 20 63 6f 6c 32 20 2b 20  ER ) + + col2 + 
19cf0 2b 20 36 38 20 2d 20 37 32 20 41 53 20 63 6f 6c  + 68 - 72 AS col
19d00 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
19d10 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
19d20 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ULL....query I r
19d30 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
19d40 20 33 36 20 2b 20 36 20 41 53 20 63 6f 6c 31 20   36 + 6 AS col1 
19d50 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
19d60 0a 34 32 0d 0a 34 32 0d 0a 34 32 0d 0a 0d 0a 71  .42..42..42....q
19d70 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
19d80 53 45 4c 45 43 54 20 63 6f 6c 31 20 2b 20 63 6f  SELECT col1 + co
19d90 6c 32 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20 63  l2 + + col2 AS c
19da0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
19db0 2d 2d 2d 0d 0a 31 37 35 0d 0a 31 39 39 0d 0a 34  ---..175..199..4
19dc0 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
19dd0 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
19de0 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
19df0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
19e00 6c 61 62 65 6c 2d 35 36 37 0d 0a 53 45 4c 45 43  label-567..SELEC
19e10 54 20 41 4c 4c 20 2b 20 43 41 53 54 28 20 63 6f  T ALL + CAST( co
19e20 6c 30 20 41 53 20 53 49 47 4e 45 44 20 29 20 41  l0 AS SIGNED ) A
19e30 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
19e40 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
19e50 34 36 0d 0a 36 34 0d 0a 37 35 0d 0a 0d 0a 73 6b  46..64..75....sk
19e60 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
19e70 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
19e80 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
19e90 65 6c 2d 35 36 37 0d 0a 53 45 4c 45 43 54 20 41  el-567..SELECT A
19ea0 4c 4c 20 2b 20 43 41 53 54 20 28 20 63 6f 6c 30  LL + CAST ( col0
19eb0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53   AS INTEGER ) AS
19ec0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
19ed0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34  AS cor0..----..4
19ee0 36 0d 0a 36 34 0d 0a 37 35 0d 0a 0d 0a 71 75 65  6..64..75....que
19ef0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
19f00 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
19f10 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
19f20 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f  HERE NOT NULL NO
19f30 54 20 49 4e 20 28 20 35 33 2c 20 63 6f 6c 30 20  T IN ( 53, col0 
19f40 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  )..----....onlyi
19f50 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
19f60 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
19f70 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
19f80 62 65 6c 2d 35 36 39 0d 0a 53 45 4c 45 43 54 20  bel-569..SELECT 
19f90 2d 20 28 20 4d 49 4e 28 20 2b 20 63 6f 6c 31 20  - ( MIN( + col1 
19fa0 29 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ) ) FROM tab1 AS
19fb0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 0d   cor0..----..-5.
19fc0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
19fd0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
19fe0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
19ff0 74 20 6c 61 62 65 6c 2d 35 36 39 0d 0a 53 45 4c  t label-569..SEL
1a000 45 43 54 20 2d 20 28 20 4d 49 4e 20 28 20 2b 20  ECT - ( MIN ( + 
1a010 63 6f 6c 31 20 29 20 29 20 46 52 4f 4d 20 74 61  col1 ) ) FROM ta
1a020 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
1a030 0d 0a 2d 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..-5....query II
1a040 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1a050 20 41 4c 4c 20 2d 20 28 20 2d 20 36 31 20 29 20   ALL - ( - 61 ) 
1a060 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 32 20 41 53  AS col2, col2 AS
1a070 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
1a080 0a 2d 2d 2d 2d 0d 0a 36 31 0d 0a 35 39 0d 0a 36  .----..61..59..6
1a090 31 0d 0a 36 38 0d 0a 36 31 0d 0a 39 36 0d 0a 0d  1..68..61..96...
1a0a0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1a0b0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 38  ..SELECT ALL + 8
1a0c0 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
1a0d0 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
1a0e0 61 62 30 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d  ab0 AS cor1..---
1a0f0 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
1a100 69 6e 67 20 74 6f 20 37 61 38 65 61 33 30 63 36  ing to 7a8ea30c6
1a110 38 30 33 61 65 64 64 63 35 66 63 61 35 62 35 38  803aeddc5fca5b58
1a120 32 31 64 38 32 36 37 0d 0a 0d 0a 71 75 65 72 79  21d8267....query
1a130 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1a140 43 54 20 41 4c 4c 20 2b 20 2b 20 39 39 20 46 52  CT ALL + + 99 FR
1a150 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d  OM tab0 cor0..--
1a160 2d 2d 0d 0a 39 39 0d 0a 39 39 0d 0a 39 39 0d 0a  --..99..99..99..
1a170 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1a180 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
1a190 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
1a1a0 73 6f 72 74 20 6c 61 62 65 6c 2d 35 37 33 0d 0a  sort label-573..
1a1b0 53 45 4c 45 43 54 20 2d 20 2d 20 53 55 4d 28 20  SELECT - - SUM( 
1a1c0 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 37 34 20  DISTINCT - - 74 
1a1d0 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
1a1e0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
1a1f0 2d 0d 0a 37 34 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..74....skipif 
1a200 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1a210 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1a220 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 37  rowsort label-57
1a230 33 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 53 55  3..SELECT - - SU
1a240 4d 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 2d  M ( DISTINCT - -
1a250 20 37 34 20 29 20 41 53 20 63 6f 6c 30 20 46 52   74 ) AS col0 FR
1a260 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
1a270 0a 2d 2d 2d 2d 0d 0a 37 34 0d 0a 0d 0a 6f 6e 6c  .----..74....onl
1a280 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
1a290 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
1a2a0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
1a2b0 20 6c 61 62 65 6c 2d 35 37 34 0d 0a 53 45 4c 45   label-574..SELE
1a2c0 43 54 20 2d 20 32 36 20 41 53 20 63 6f 6c 32 2c  CT - 26 AS col2,
1a2d0 20 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20 2d   MAX( DISTINCT -
1a2e0 20 63 6f 6c 30 20 29 20 2f 20 2d 20 32 30 20 46   col0 ) / - 20 F
1a2f0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
1a300 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c   WHERE NOT ( NUL
1a310 4c 20 29 20 3e 3d 20 2d 20 38 30 0d 0a 2d 2d 2d  L ) >= - 80..---
1a320 2d 0d 0a 2d 32 36 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  -..-26..NULL....
1a330 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1a340 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1a350 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
1a360 6c 61 62 65 6c 2d 35 37 34 0d 0a 53 45 4c 45 43  label-574..SELEC
1a370 54 20 2d 20 32 36 20 41 53 20 63 6f 6c 32 2c 20  T - 26 AS col2, 
1a380 4d 41 58 20 28 20 44 49 53 54 49 4e 43 54 20 2d  MAX ( DISTINCT -
1a390 20 63 6f 6c 30 20 29 20 2f 20 2d 20 32 30 20 46   col0 ) / - 20 F
1a3a0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
1a3b0 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c   WHERE NOT ( NUL
1a3c0 4c 20 29 20 3e 3d 20 2d 20 38 30 0d 0a 2d 2d 2d  L ) >= - 80..---
1a3d0 2d 0d 0a 2d 32 36 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  -..-26..NULL....
1a3e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1a3f0 0a 53 45 4c 45 43 54 20 2b 20 37 36 20 2a 20 2b  .SELECT + 76 * +
1a400 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
1a410 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
1a420 37 34 38 0d 0a 33 30 34 30 0d 0a 34 34 30 38 0d  748..3040..4408.
1a430 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
1a440 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
1a450 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1a460 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
1a470 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44  BETWEEN NULL AND
1a480 20 36 38 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65   68..----....que
1a490 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1a4a0 4c 45 43 54 20 2d 20 35 36 20 2b 20 63 6f 6c 30  LECT - 56 + col0
1a4b0 20 2a 20 2d 20 37 36 20 46 52 4f 4d 20 74 61 62   * - 76 FROM tab
1a4c0 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
1a4d0 4e 4f 54 20 63 6f 6c 30 20 3c 20 4e 55 4c 4c 0d  NOT col0 < NULL.
1a4e0 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
1a4f0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1a500 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30   DISTINCT - col0
1a510 20 2a 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 30   * col2 + - col0
1a520 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
1a530 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 39 34 37 0d  r0..----..-4947.
1a540 0a 2d 35 31 30 30 0d 0a 2d 36 32 37 39 0d 0a 0d  .-5100..-6279...
1a550 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
1a560 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
1a570 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
1a580 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20  HERE NOT ( NULL 
1a590 3c 3d 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 63 6f  <= + col2 * + co
1a5a0 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  l1 )..----....on
1a5b0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
1a5c0 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
1a5d0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
1a5e0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
1a5f0 38 30 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20  80..SELECT col1 
1a600 2a 20 28 20 2b 20 43 41 53 54 28 20 2d 20 32 39  * ( + CAST( - 29
1a610 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20 2a   AS SIGNED ) ) *
1a620 20 2b 20 63 6f 6c 32 20 2d 20 2d 20 63 6f 6c 30   + col2 - - col0
1a630 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
1a640 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
1a650 31 31 32 36 31 39 0d 0a 2d 33 33 39 37 31 0d 0a  112619..-33971..
1a660 2d 38 39 32 35 36 0d 0a 0d 0a 73 6b 69 70 69 66  -89256....skipif
1a670 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1a680 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
1a690 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
1a6a0 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
1a6b0 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
1a6c0 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
1a6d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1a6e0 74 20 6c 61 62 65 6c 2d 35 38 30 0d 0a 53 45 4c  t label-580..SEL
1a6f0 45 43 54 20 63 6f 6c 31 20 2a 20 28 20 2b 20 43  ECT col1 * ( + C
1a700 41 53 54 20 28 20 2d 20 32 39 20 41 53 20 49 4e  AST ( - 29 AS IN
1a710 54 45 47 45 52 20 29 20 29 20 2a 20 2b 20 63 6f  TEGER ) ) * + co
1a720 6c 32 20 2d 20 2d 20 63 6f 6c 30 20 63 6f 6c 30  l2 - - col0 col0
1a730 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
1a740 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 32 36 31  r0..----..-11261
1a750 39 0d 0a 2d 33 33 39 37 31 0d 0a 2d 38 39 32 35  9..-33971..-8925
1a760 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  6....query I row
1a770 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d  sort..SELECT + -
1a780 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 32 20 41   col1 * + col2 A
1a790 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
1a7a0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
1a7b0 4f 54 20 28 20 4e 4f 54 20 63 6f 6c 32 20 49 53  OT ( NOT col2 IS
1a7c0 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   NULL )..----...
1a7d0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1a7e0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1a7f0 54 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 2d 20 63  T - col0 * - - c
1a800 6f 6c 30 20 2b 20 2d 20 2d 20 33 34 20 2b 20 2b  ol0 + - - 34 + +
1a810 20 38 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   80 AS col2 FROM
1a820 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
1a830 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 49 53 20  ERE ( NULL ) IS 
1a840 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
1a850 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1a860 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
1a870 43 54 20 36 34 20 46 52 4f 4d 20 74 61 62 32 20  CT 64 FROM tab2 
1a880 57 48 45 52 45 20 63 6f 6c 30 20 3d 20 2d 20 2b  WHERE col0 = - +
1a890 20 63 6f 6c 31 20 4f 52 20 4e 4f 54 20 4e 55 4c   col1 OR NOT NUL
1a8a0 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  L IS NOT NULL..-
1a8b0 2d 2d 2d 0d 0a 36 34 0d 0a 0d 0a 6f 6e 6c 79 69  ---..64....onlyi
1a8c0 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
1a8d0 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
1a8e0 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
1a8f0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 38 34 0d  wsort label-584.
1a900 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1a910 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 28 20 2d 20   - col1 * + ( - 
1a920 63 6f 6c 31 20 29 20 44 49 56 20 2d 20 2b 20 63  col1 ) DIV - + c
1a930 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol1 AS col0 FROM
1a940 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31   tab2..----..-51
1a950 0d 0a 2d 36 37 0d 0a 2d 37 37 0d 0a 0d 0a 73 6b  ..-67..-77....sk
1a960 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1a970 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1a980 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1a990 65 6c 2d 35 38 34 0d 0a 53 45 4c 45 43 54 20 44  el-584..SELECT D
1a9a0 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31 20 2a  ISTINCT - col1 *
1a9b0 20 2b 20 28 20 2d 20 63 6f 6c 31 20 29 20 2f 20   + ( - col1 ) / 
1a9c0 2d 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30  - + col1 AS col0
1a9d0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
1a9e0 0d 0a 2d 35 31 0d 0a 2d 36 37 0d 0a 2d 37 37 0d  ..-51..-67..-77.
1a9f0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1aa00 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61  # CAST syntax: a
1aa10 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
1aa20 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d   DECIMAL type: .
1aa30 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1aa40 20 6c 61 62 65 6c 2d 35 38 35 0d 0a 53 45 4c 45   label-585..SELE
1aa50 43 54 20 2d 20 4d 41 58 28 20 44 49 53 54 49 4e  CT - MAX( DISTIN
1aa60 43 54 20 2d 20 63 6f 6c 31 20 29 20 2a 20 2b 20  CT - col1 ) * + 
1aa70 2b 20 43 4f 55 4e 54 28 20 41 4c 4c 20 2d 20 35  + COUNT( ALL - 5
1aa80 39 20 29 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a  9 ) + + COUNT( *
1aa90 20 29 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20   ) - COUNT( * ) 
1aaa0 2a 20 39 34 20 2a 20 2d 20 2d 20 43 41 53 54 28  * 94 * - - CAST(
1aab0 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c   NULL AS DECIMAL
1aac0 20 29 20 2b 20 38 30 20 46 52 4f 4d 20 74 61 62   ) + 80 FROM tab
1aad0 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  2..----..NULL...
1aae0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1aaf0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1ab00 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1ab10 6c 61 62 65 6c 2d 35 38 35 0d 0a 53 45 4c 45 43  label-585..SELEC
1ab20 54 20 2d 20 4d 41 58 20 28 20 44 49 53 54 49 4e  T - MAX ( DISTIN
1ab30 43 54 20 2d 20 63 6f 6c 31 20 29 20 2a 20 2b 20  CT - col1 ) * + 
1ab40 2b 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20 2d 20  + COUNT ( ALL - 
1ab50 35 39 20 29 20 2b 20 2b 20 43 4f 55 4e 54 20 28  59 ) + + COUNT (
1ab60 20 2a 20 29 20 2d 20 43 4f 55 4e 54 20 28 20 2a   * ) - COUNT ( *
1ab70 20 29 20 2a 20 39 34 20 2a 20 2d 20 2d 20 43 41   ) * 94 * - - CA
1ab80 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41  ST ( NULL AS REA
1ab90 4c 20 29 20 2b 20 38 30 20 46 52 4f 4d 20 74 61  L ) + 80 FROM ta
1aba0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b2..----..NULL..
1abb0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
1abc0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
1abd0 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
1abe0 54 20 2b 20 31 37 20 2b 20 63 6f 6c 31 20 2d 20  T + 17 + col1 - 
1abf0 2b 20 63 6f 6c 31 20 2f 20 28 20 63 6f 6c 30 20  + col1 / ( col0 
1ac00 29 20 3c 20 2b 20 35 32 0d 0a 2d 2d 2d 2d 0d 0a  ) < + 52..----..
1ac10 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
1ac20 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63   to 75c998aa53ac
1ac30 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64  83218cbf2feb962d
1ac40 30 61 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  0a49....onlyif m
1ac50 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
1ac60 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
1ac70 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1ac80 72 74 20 6c 61 62 65 6c 2d 35 38 37 0d 0a 53 45  rt label-587..SE
1ac90 4c 45 43 54 20 41 4c 4c 20 2b 20 31 32 20 2b 20  LECT ALL + 12 + 
1aca0 43 41 53 54 28 20 63 6f 6c 31 20 41 53 20 53 49  CAST( col1 AS SI
1acb0 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 30 20 46  GNED ) AS col0 F
1acc0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
1acd0 36 33 0d 0a 37 39 0d 0a 38 39 0d 0a 0d 0a 73 6b  63..79..89....sk
1ace0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1acf0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1ad00 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1ad10 65 6c 2d 35 38 37 0d 0a 53 45 4c 45 43 54 20 41  el-587..SELECT A
1ad20 4c 4c 20 2b 20 31 32 20 2b 20 43 41 53 54 20 28  LL + 12 + CAST (
1ad30 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45 52   col1 AS INTEGER
1ad40 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
1ad50 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 36 33 0d 0a  tab2..----..63..
1ad60 37 39 0d 0a 38 39 0d 0a 0d 0a 71 75 65 72 79 20  79..89....query 
1ad70 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1ad80 54 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 2a 20 63  T ALL + col0 * c
1ad90 6f 6c 32 20 2b 20 2d 20 37 31 20 2b 20 2b 20 2b  ol2 + - 71 + + +
1ada0 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 30 20 2a   col2 + - col0 *
1adb0 20 2b 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 32 32   + + col0 * - 22
1adc0 20 2b 20 36 37 20 2b 20 2d 20 63 6f 6c 32 20 41   + 67 + - col2 A
1add0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
1ade0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1adf0 31 36 37 33 38 34 0d 0a 32 31 36 35 39 37 0d 0a  167384..216597..
1ae00 35 36 35 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  5651....onlyif m
1ae10 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
1ae20 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65  ax: DECIMAL type
1ae30 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1ae40 6f 72 74 20 6c 61 62 65 6c 2d 35 38 39 0d 0a 53  ort label-589..S
1ae50 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
1ae60 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44   CAST( NULL AS D
1ae70 45 43 49 4d 41 4c 20 29 20 2b 20 2d 20 33 33 20  ECIMAL ) + - 33 
1ae80 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
1ae90 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  0..----..NULL...
1aea0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1aeb0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1aec0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1aed0 6c 61 62 65 6c 2d 35 38 39 0d 0a 53 45 4c 45 43  label-589..SELEC
1aee0 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 41 53  T DISTINCT + CAS
1aef0 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c  T ( NULL AS REAL
1af00 20 29 20 2b 20 2d 20 33 33 20 46 52 4f 4d 20 74   ) + - 33 FROM t
1af10 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
1af20 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79  -..NULL....query
1af30 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1af40 43 54 20 41 4c 4c 20 2b 20 39 37 20 2b 20 2d 20  CT ALL + 97 + - 
1af50 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  - col1 FROM tab1
1af60 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 32   cor0..----..102
1af70 0d 0a 31 31 31 0d 0a 31 34 34 0d 0a 0d 0a 71 75  ..111..144....qu
1af80 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1af90 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
1afa0 20 39 30 20 2b 20 39 36 20 46 52 4f 4d 20 74 61   90 + 96 FROM ta
1afb0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 36 0d 0a 0d 0a 71  b0..----..6....q
1afc0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
1afd0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
1afe0 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e  ROM tab1 WHERE N
1aff0 4f 54 20 2b 20 63 6f 6c 31 20 3c 3d 20 4e 55 4c  OT + col1 <= NUL
1b000 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  L..----....onlyi
1b010 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
1b020 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65  yntax: aggregate
1b030 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
1b040 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
1b050 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 39  rowsort label-59
1b060 33 0d 0a 53 45 4c 45 43 54 20 4d 41 58 28 20 2b  3..SELECT MAX( +
1b070 20 63 6f 6c 30 20 29 20 2b 20 2b 20 43 41 53 54   col0 ) + + CAST
1b080 28 20 2b 20 2b 20 32 39 20 41 53 20 53 49 47 4e  ( + + 29 AS SIGN
1b090 45 44 20 29 20 2a 20 2b 20 43 4f 55 4e 54 28 20  ED ) * + COUNT( 
1b0a0 2b 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61  + col1 ) FROM ta
1b0b0 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
1b0c0 0d 0a 31 36 32 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..162....skipif 
1b0d0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1b0e0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1b0f0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 39  rowsort label-59
1b100 33 0d 0a 53 45 4c 45 43 54 20 4d 41 58 20 28 20  3..SELECT MAX ( 
1b110 2b 20 63 6f 6c 30 20 29 20 2b 20 2b 20 43 41 53  + col0 ) + + CAS
1b120 54 20 28 20 2b 20 2b 20 32 39 20 41 53 20 49 4e  T ( + + 29 AS IN
1b130 54 45 47 45 52 20 29 20 2a 20 2b 20 43 4f 55 4e  TEGER ) * + COUN
1b140 54 20 28 20 2b 20 63 6f 6c 31 20 29 20 46 52 4f  T ( + col1 ) FRO
1b150 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
1b160 2d 2d 2d 2d 0d 0a 31 36 32 0d 0a 0d 0a 71 75 65  ----..162....que
1b170 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1b180 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
1b190 28 20 2b 20 31 37 20 29 20 2a 20 63 6f 6c 31 20  ( + 17 ) * col1 
1b1a0 2b 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32  + + col1 AS col2
1b1b0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
1b1c0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 39 36 0d  r0..----..-1296.
1b1d0 0a 2d 31 36 0d 0a 2d 33 33 36 0d 0a 0d 0a 6f 6e  .-16..-336....on
1b1e0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
1b1f0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
1b200 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1b210 20 6c 61 62 65 6c 2d 35 39 35 0d 0a 53 45 4c 45   label-595..SELE
1b220 43 54 20 2b 20 4d 49 4e 28 20 44 49 53 54 49 4e  CT + MIN( DISTIN
1b230 43 54 20 34 38 20 29 20 2b 20 2d 20 4d 49 4e 28  CT 48 ) + - MIN(
1b240 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 63 6f   DISTINCT + + co
1b250 6c 32 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  l2 ) AS col2 FRO
1b260 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
1b270 2d 2d 2d 2d 0d 0a 32 35 0d 0a 0d 0a 73 6b 69 70  ----..25....skip
1b280 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1b290 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1b2a0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1b2b0 2d 35 39 35 0d 0a 53 45 4c 45 43 54 20 2b 20 4d  -595..SELECT + M
1b2c0 49 4e 20 28 20 44 49 53 54 49 4e 43 54 20 34 38  IN ( DISTINCT 48
1b2d0 20 29 20 2b 20 2d 20 4d 49 4e 20 28 20 44 49 53   ) + - MIN ( DIS
1b2e0 54 49 4e 43 54 20 2b 20 2b 20 63 6f 6c 32 20 29  TINCT + + col2 )
1b2f0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
1b300 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
1b310 0d 0a 32 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..25....onlyif m
1b320 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
1b330 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
1b340 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1b350 2d 35 39 36 0d 0a 53 45 4c 45 43 54 20 2b 20 2b  -596..SELECT + +
1b360 20 37 36 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a   76 + + COUNT( *
1b370 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
1b380 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
1b390 2d 2d 0d 0a 37 39 0d 0a 0d 0a 73 6b 69 70 69 66  --..79....skipif
1b3a0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1b3b0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1b3c0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
1b3d0 39 36 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 37  96..SELECT + + 7
1b3e0 36 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  6 + + COUNT ( * 
1b3f0 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
1b400 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
1b410 2d 0d 0a 37 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -..79....onlyif 
1b420 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
1b430 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
1b440 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1b450 6c 2d 35 39 37 0d 0a 53 45 4c 45 43 54 20 41 4c  l-597..SELECT AL
1b460 4c 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b  L + COUNT( * ) +
1b470 20 2d 20 28 20 2b 20 53 55 4d 28 20 2b 20 28 20   - ( + SUM( + ( 
1b480 63 6f 6c 31 20 29 20 29 20 29 20 2a 20 2b 20 2d  col1 ) ) ) * + -
1b490 20 36 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   6 FROM tab1 AS 
1b4a0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 39 39 0d  cor0..----..399.
1b4b0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1b4c0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1b4d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1b4e0 74 20 6c 61 62 65 6c 2d 35 39 37 0d 0a 53 45 4c  t label-597..SEL
1b4f0 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 20  ECT ALL + COUNT 
1b500 28 20 2a 20 29 20 2b 20 2d 20 28 20 2b 20 53 55  ( * ) + - ( + SU
1b510 4d 20 28 20 2b 20 28 20 63 6f 6c 31 20 29 20 29  M ( + ( col1 ) )
1b520 20 29 20 2a 20 2b 20 2d 20 36 20 46 52 4f 4d 20   ) * + - 6 FROM 
1b530 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
1b540 2d 2d 0d 0a 33 39 39 0d 0a 0d 0a 6f 6e 6c 79 69  --..399....onlyi
1b550 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
1b560 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
1b570 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1b580 62 65 6c 2d 35 39 38 0d 0a 53 45 4c 45 43 54 20  bel-598..SELECT 
1b590 4d 49 4e 28 20 63 6f 6c 32 20 29 20 41 53 20 63  MIN( col2 ) AS c
1b5a0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol1 FROM tab2 co
1b5b0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 0d 0a  r0..----..23....
1b5c0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1b5d0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1b5e0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1b5f0 61 62 65 6c 2d 35 39 38 0d 0a 53 45 4c 45 43 54  abel-598..SELECT
1b600 20 4d 49 4e 20 28 20 63 6f 6c 32 20 29 20 41 53   MIN ( col2 ) AS
1b610 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
1b620 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a  cor0..----..23..
1b630 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
1b640 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
1b650 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
1b660 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
1b670 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
1b680 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
1b690 45 43 54 20 2b 20 31 35 20 63 6f 6c 31 2c 20 35  ECT + 15 col1, 5
1b6a0 37 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  7 AS col1 FROM t
1b6b0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
1b6c0 2d 0d 0a 31 35 0d 0a 35 37 0d 0a 31 35 0d 0a 35  -..15..57..15..5
1b6d0 37 0d 0a 31 35 0d 0a 35 37 0d 0a 0d 0a 71 75 65  7..15..57....que
1b6e0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1b6f0 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 63 6f 6c  LECT ALL + + col
1b700 31 20 2b 20 2d 20 2d 20 63 6f 6c 31 20 41 53 20  1 + - - col1 AS 
1b710 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
1b720 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36  S cor0..----..16
1b730 32 0d 0a 32 0d 0a 34 32 0d 0a 0d 0a 71 75 65 72  2..2..42....quer
1b740 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
1b750 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
1b760 32 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c  2 cor0 WHERE col
1b770 31 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e 55  1 NOT BETWEEN NU
1b780 4c 4c 20 41 4e 44 20 2d 20 63 6f 6c 32 20 2b 20  LL AND - col2 + 
1b790 2b 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a  + + col0..----..
1b7a0 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
1b7b0 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63   to 75c998aa53ac
1b7c0 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64  83218cbf2feb962d
1b7d0 30 61 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  0a49....onlyif m
1b7e0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
1b7f0 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
1b800 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1b810 72 74 20 6c 61 62 65 6c 2d 36 30 32 0d 0a 53 45  rt label-602..SE
1b820 4c 45 43 54 20 2b 20 63 6f 6c 30 20 2f 20 43 41  LECT + col0 / CA
1b830 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
1b840 45 44 20 29 20 2a 20 36 38 20 41 53 20 63 6f 6c  ED ) * 68 AS col
1b850 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
1b860 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
1b870 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .NULL..NULL....s
1b880 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1b890 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1b8a0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1b8b0 62 65 6c 2d 36 30 32 0d 0a 53 45 4c 45 43 54 20  bel-602..SELECT 
1b8c0 2b 20 63 6f 6c 30 20 2f 20 43 41 53 54 20 28 20  + col0 / CAST ( 
1b8d0 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
1b8e0 29 20 2a 20 36 38 20 41 53 20 63 6f 6c 31 20 46  ) * 68 AS col1 F
1b8f0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
1b900 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
1b910 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79  LL..NULL....only
1b920 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
1b930 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
1b940 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
1b950 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 30 33  owsort label-603
1b960 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1b970 54 20 2d 20 28 20 2d 20 2d 20 63 6f 6c 31 20 29  T - ( - - col1 )
1b980 20 2d 20 2b 20 63 6f 6c 31 20 2b 20 35 39 20 2b   - + col1 + 59 +
1b990 20 2b 20 63 6f 6c 31 20 44 49 56 20 36 37 20 41   + col1 DIV 67 A
1b9a0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
1b9b0 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 35 0d 0a 33 31 0d  ..----..-35..31.
1b9c0 0a 34 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .49....skipif my
1b9d0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1b9e0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1b9f0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 30 33 0d  wsort label-603.
1ba00 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1ba10 20 2d 20 28 20 2d 20 2d 20 63 6f 6c 31 20 29 20   - ( - - col1 ) 
1ba20 2d 20 2b 20 63 6f 6c 31 20 2b 20 35 39 20 2b 20  - + col1 + 59 + 
1ba30 2b 20 63 6f 6c 31 20 2f 20 36 37 20 41 53 20 63  + col1 / 67 AS c
1ba40 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
1ba50 2d 2d 2d 0d 0a 2d 33 35 0d 0a 33 31 0d 0a 34 39  ---..-35..31..49
1ba60 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1ba70 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
1ba80 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
1ba90 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1baa0 61 62 65 6c 2d 36 30 34 0d 0a 53 45 4c 45 43 54  abel-604..SELECT
1bab0 20 44 49 53 54 49 4e 43 54 20 33 38 20 2b 20 2d   DISTINCT 38 + -
1bac0 20 38 38 20 44 49 56 20 2b 20 63 6f 6c 31 20 46   88 DIV + col1 F
1bad0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
1bae0 33 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  37....skipif mys
1baf0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1bb00 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1bb10 73 6f 72 74 20 6c 61 62 65 6c 2d 36 30 34 0d 0a  sort label-604..
1bb20 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1bb30 33 38 20 2b 20 2d 20 38 38 20 2f 20 2b 20 63 6f  38 + - 88 / + co
1bb40 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
1bb50 2d 2d 0d 0a 33 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  --..37....onlyif
1bb60 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
1bb70 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
1bb80 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
1bb90 73 6f 72 74 20 6c 61 62 65 6c 2d 36 30 35 0d 0a  sort label-605..
1bba0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1bbb0 63 6f 6c 30 20 44 49 56 20 2d 20 2b 20 37 30 20  col0 DIV - + 70 
1bbc0 2d 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  - - col0 FROM ta
1bbd0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 38 36  b0..----..15..86
1bbe0 0d 0a 39 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..96....skipif m
1bbf0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1bc00 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1bc10 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 30 35  owsort label-605
1bc20 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1bc30 54 20 63 6f 6c 30 20 2f 20 2d 20 2b 20 37 30 20  T col0 / - + 70 
1bc40 2d 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  - - col0 FROM ta
1bc50 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 38 36  b0..----..15..86
1bc60 0d 0a 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..96....onlyif m
1bc70 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
1bc80 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
1bc90 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1bca0 72 74 20 6c 61 62 65 6c 2d 36 30 36 0d 0a 53 45  rt label-606..SE
1bcb0 4c 45 43 54 20 41 4c 4c 20 2d 20 28 20 2d 20 43  LECT ALL - ( - C
1bcc0 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
1bcd0 4e 45 44 20 29 20 29 20 2f 20 2d 20 63 6f 6c 32  NED ) ) / - col2
1bce0 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
1bcf0 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
1bd00 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
1bd10 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1bd20 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1bd30 73 6f 72 74 20 6c 61 62 65 6c 2d 36 30 36 0d 0a  sort label-606..
1bd40 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 28 20 2d  SELECT ALL - ( -
1bd50 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
1bd60 49 4e 54 45 47 45 52 20 29 20 29 20 2f 20 2d 20  INTEGER ) ) / - 
1bd70 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
1bd80 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
1bd90 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20  ..NULL....query 
1bda0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1bdb0 43 54 20 63 6f 6c 31 20 2a 20 63 6f 6c 31 2c 20  CT col1 * col1, 
1bdc0 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46  - col1 AS col1 F
1bdd0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
1bde0 32 36 30 31 0d 0a 2d 35 31 0d 0a 34 34 38 39 0d  2601..-51..4489.
1bdf0 0a 2d 36 37 0d 0a 35 39 32 39 0d 0a 2d 37 37 0d  .-67..5929..-77.
1be00 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1be10 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
1be20 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
1be30 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1be40 62 65 6c 2d 36 30 38 0d 0a 53 45 4c 45 43 54 20  bel-608..SELECT 
1be50 2b 20 63 6f 6c 30 20 2a 20 43 41 53 54 28 20 4e  + col0 * CAST( N
1be60 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
1be70 2b 20 36 33 20 46 52 4f 4d 20 74 61 62 32 20 41  + 63 FROM tab2 A
1be80 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
1be90 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
1bea0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1beb0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1bec0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1bed0 20 6c 61 62 65 6c 2d 36 30 38 0d 0a 53 45 4c 45   label-608..SELE
1bee0 43 54 20 2b 20 63 6f 6c 30 20 2a 20 43 41 53 54  CT + col0 * CAST
1bef0 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
1bf00 45 52 20 29 20 2b 20 36 33 20 46 52 4f 4d 20 74  ER ) + 63 FROM t
1bf10 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
1bf20 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
1bf30 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ULL....onlyif my
1bf40 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
1bf50 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
1bf60 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1bf70 36 30 39 0d 0a 53 45 4c 45 43 54 20 4d 49 4e 28  609..SELECT MIN(
1bf80 20 2d 20 2d 20 63 6f 6c 31 20 29 20 41 53 20 63   - - col1 ) AS c
1bf90 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
1bfa0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a   cor0..----..1..
1bfb0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1bfc0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1bfd0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1bfe0 20 6c 61 62 65 6c 2d 36 30 39 0d 0a 53 45 4c 45   label-609..SELE
1bff0 43 54 20 4d 49 4e 20 28 20 2d 20 2d 20 63 6f 6c  CT MIN ( - - col
1c000 31 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  1 ) AS col1 FROM
1c010 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
1c020 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 6f 6e 6c 79 69 66  ---..1....onlyif
1c030 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
1c040 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
1c050 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1c060 65 6c 2d 36 31 30 0d 0a 53 45 4c 45 43 54 20 2b  el-610..SELECT +
1c070 20 4d 41 58 28 20 41 4c 4c 20 2d 20 37 33 20 29   MAX( ALL - 73 )
1c080 20 2d 20 2b 20 34 36 20 46 52 4f 4d 20 74 61 62   - + 46 FROM tab
1c090 31 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  1 AS cor0 CROSS 
1c0a0 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63 6f 72  JOIN tab0 AS cor
1c0b0 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 39 0d 0a 0d  1..----..-119...
1c0c0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1c0d0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1c0e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1c0f0 6c 61 62 65 6c 2d 36 31 30 0d 0a 53 45 4c 45 43  label-610..SELEC
1c100 54 20 2b 20 4d 41 58 20 28 20 41 4c 4c 20 2d 20  T + MAX ( ALL - 
1c110 37 33 20 29 20 2d 20 2b 20 34 36 20 46 52 4f 4d  73 ) - + 46 FROM
1c120 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 43 52   tab1 AS cor0 CR
1c130 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53  OSS JOIN tab0 AS
1c140 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31   cor1..----..-11
1c150 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  9....onlyif mysq
1c160 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
1c170 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
1c180 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 31  rowsort label-61
1c190 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  1..SELECT ALL + 
1c1a0 53 55 4d 28 20 44 49 53 54 49 4e 43 54 20 2b 20  SUM( DISTINCT + 
1c1b0 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 32 20 46  col1 ) AS col2 F
1c1c0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
1c1d0 31 30 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  103....skipif my
1c1e0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1c1f0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1c200 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 31 31 0d  wsort label-611.
1c210 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 53 55  .SELECT ALL + SU
1c220 4d 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63  M ( DISTINCT + c
1c230 6f 6c 31 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ol1 ) AS col2 FR
1c240 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
1c250 30 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  03....query III 
1c260 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1c270 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
1c280 45 20 4e 4f 54 20 2b 20 2b 20 63 6f 6c 30 20 3e  E NOT + + col0 >
1c290 3d 20 2b 20 63 6f 6c 30 20 2d 20 2b 20 63 6f 6c  = + col0 - + col
1c2a0 31 20 2a 20 2b 20 2b 20 63 6f 6c 32 0d 0a 2d 2d  1 * + + col2..--
1c2b0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  --....query II r
1c2c0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
1c2d0 4c 4c 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 2c  LL col2 AS col0,
1c2e0 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52   col0 AS col0 FR
1c2f0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32  OM tab2..----..2
1c300 33 0d 0a 34 36 0d 0a 34 30 0d 0a 36 34 0d 0a 35  3..46..40..64..5
1c310 38 0d 0a 37 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  8..75....onlyif 
1c320 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
1c330 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
1c340 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1c350 6c 2d 36 31 34 0d 0a 53 45 4c 45 43 54 20 41 4c  l-614..SELECT AL
1c360 4c 20 2d 20 2d 20 43 4f 55 4e 54 28 20 63 6f 6c  L - - COUNT( col
1c370 30 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53  0 ) FROM tab2 AS
1c380 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   cor0..----..3..
1c390 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1c3a0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1c3b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1c3c0 20 6c 61 62 65 6c 2d 36 31 34 0d 0a 53 45 4c 45   label-614..SELE
1c3d0 43 54 20 41 4c 4c 20 2d 20 2d 20 43 4f 55 4e 54  CT ALL - - COUNT
1c3e0 20 28 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74   ( col0 ) FROM t
1c3f0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
1c400 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -..3....onlyif m
1c410 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
1c420 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
1c430 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1c440 72 74 20 6c 61 62 65 6c 2d 36 31 35 0d 0a 53 45  rt label-615..SE
1c450 4c 45 43 54 20 2d 20 2b 20 63 6f 6c 31 20 2a 20  LECT - + col1 * 
1c460 2d 20 63 6f 6c 31 20 44 49 56 20 2b 20 63 6f 6c  - col1 DIV + col
1c470 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  1 AS col1 FROM t
1c480 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
1c490 2d 0d 0a 31 34 0d 0a 34 37 0d 0a 35 0d 0a 0d 0a  -..14..47..5....
1c4a0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1c4b0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1c4c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1c4d0 61 62 65 6c 2d 36 31 35 0d 0a 53 45 4c 45 43 54  abel-615..SELECT
1c4e0 20 2d 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 63 6f   - + col1 * - co
1c4f0 6c 31 20 2f 20 2b 20 63 6f 6c 31 20 41 53 20 63  l1 / + col1 AS c
1c500 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol1 FROM tab1 AS
1c510 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d   cor0..----..14.
1c520 0a 34 37 0d 0a 35 0d 0a 0d 0a 6f 6e 6c 79 69 66  .47..5....onlyif
1c530 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
1c540 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
1c550 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1c560 65 6c 2d 36 31 36 0d 0a 53 45 4c 45 43 54 20 2d  el-616..SELECT -
1c570 20 53 55 4d 28 20 2d 20 34 39 20 29 20 46 52 4f   SUM( - 49 ) FRO
1c580 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
1c590 2d 2d 2d 2d 0d 0a 31 34 37 0d 0a 0d 0a 73 6b 69  ----..147....ski
1c5a0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1c5b0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1c5c0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1c5d0 6c 2d 36 31 36 0d 0a 53 45 4c 45 43 54 20 2d 20  l-616..SELECT - 
1c5e0 53 55 4d 20 28 20 2d 20 34 39 20 29 20 46 52 4f  SUM ( - 49 ) FRO
1c5f0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
1c600 2d 2d 2d 2d 0d 0a 31 34 37 0d 0a 0d 0a 71 75 65  ----..147....que
1c610 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
1c620 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
1c630 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
1c640 48 45 52 45 20 4e 55 4c 4c 20 3e 3d 20 28 20 2b  HERE NULL >= ( +
1c650 20 63 6f 6c 30 20 29 20 2a 20 2b 20 33 36 20 2a   col0 ) * + 36 *
1c660 20 2b 20 39 33 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   + 93..----....q
1c670 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1c680 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1c690 2d 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 2d 20 63  - + col1 * + - c
1c6a0 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol2 AS col1 FROM
1c6b0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
1c6c0 2d 2d 2d 0d 0a 31 33 34 34 0d 0a 32 39 35 0d 0a  ---..1344..295..
1c6d0 33 31 39 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49  3196....query II
1c6e0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1c6f0 20 2b 20 28 20 33 30 20 29 20 2a 20 2d 20 2d 20   + ( 30 ) * - - 
1c700 33 31 20 41 53 20 63 6f 6c 30 2c 20 63 6f 6c 31  31 AS col0, col1
1c710 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 28 20 2b 20   + col1 * - ( + 
1c720 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 32  col1 ) FROM tab2
1c730 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1c740 39 33 30 0d 0a 2d 32 35 35 30 0d 0a 39 33 30 0d  930..-2550..930.
1c750 0a 2d 34 34 32 32 0d 0a 39 33 30 0d 0a 2d 35 38  .-4422..930..-58
1c760 35 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  52....onlyif mys
1c770 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
1c780 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
1c790 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1c7a0 32 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  20..SELECT ALL +
1c7b0 20 36 34 20 2d 20 4d 49 4e 28 20 41 4c 4c 20 2b   64 - MIN( ALL +
1c7c0 20 33 34 20 29 20 41 53 20 63 6f 6c 30 20 46 52   34 ) AS col0 FR
1c7d0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
1c7e0 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20 4e  WHERE NOT col1 N
1c7f0 4f 54 20 49 4e 20 28 20 2b 20 63 6f 6c 30 20 2a  OT IN ( + col0 *
1c800 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 4e   col0 )..----..N
1c810 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
1c820 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1c830 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1c840 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32 30 0d  wsort label-620.
1c850 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 36 34  .SELECT ALL + 64
1c860 20 2d 20 4d 49 4e 20 28 20 41 4c 4c 20 2b 20 33   - MIN ( ALL + 3
1c870 34 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  4 ) AS col0 FROM
1c880 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
1c890 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20 4e 4f 54  ERE NOT col1 NOT
1c8a0 20 49 4e 20 28 20 2b 20 63 6f 6c 30 20 2a 20 63   IN ( + col0 * c
1c8b0 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c  ol0 )..----..NUL
1c8c0 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  L....query I row
1c8d0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63  sort..SELECT + c
1c8e0 6f 6c 30 20 2a 20 63 6f 6c 32 20 46 52 4f 4d 20  ol0 * col2 FROM 
1c8f0 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 63  tab0 WHERE NOT c
1c900 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ol1 IS NOT NULL.
1c910 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
1c920 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
1c930 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
1c940 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1c950 6c 2d 36 32 32 0d 0a 53 45 4c 45 43 54 20 41 4c  l-622..SELECT AL
1c960 4c 20 53 55 4d 28 20 41 4c 4c 20 33 30 20 29 20  L SUM( ALL 30 ) 
1c970 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
1c980 0a 39 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .90....skipif my
1c990 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1c9a0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1c9b0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32 32 0d  wsort label-622.
1c9c0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 53 55 4d 20  .SELECT ALL SUM 
1c9d0 28 20 41 4c 4c 20 33 30 20 29 20 46 52 4f 4d 20  ( ALL 30 ) FROM 
1c9e0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 39 30 0d 0a  tab2..----..90..
1c9f0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1ca00 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
1ca10 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
1ca20 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1ca30 65 6c 2d 36 32 33 0d 0a 53 45 4c 45 43 54 20 2b  el-623..SELECT +
1ca40 20 63 6f 6c 32 20 44 49 56 20 2d 20 63 6f 6c 31   col2 DIV - col1
1ca50 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
1ca60 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 31 31 0d 0a  .----..-1..-11..
1ca70 2d 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  -6....skipif mys
1ca80 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1ca90 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  ble..skipif post
1caa0 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
1cab0 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
1cac0 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
1cad0 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
1cae0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1caf0 62 65 6c 2d 36 32 33 0d 0a 53 45 4c 45 43 54 20  bel-623..SELECT 
1cb00 2b 20 63 6f 6c 32 20 2f 20 2d 20 63 6f 6c 31 20  + col2 / - col1 
1cb10 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col0 FROM tab1..
1cb20 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 31 31 0d 0a 2d  ----..-1..-11..-
1cb30 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
1cb40 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
1cb50 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
1cb60 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32  rowsort label-62
1cb70 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 32 38  4..SELECT ALL 28
1cb80 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53   + COUNT( * ) AS
1cb90 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
1cba0 0a 2d 2d 2d 2d 0d 0a 33 31 0d 0a 0d 0a 73 6b 69  .----..31....ski
1cbb0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1cbc0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1cbd0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1cbe0 6c 2d 36 32 34 0d 0a 53 45 4c 45 43 54 20 41 4c  l-624..SELECT AL
1cbf0 4c 20 32 38 20 2b 20 43 4f 55 4e 54 20 28 20 2a  L 28 + COUNT ( *
1cc00 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
1cc10 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 31 0d 0a  tab1..----..31..
1cc20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1cc30 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
1cc40 63 6f 6c 31 20 2b 20 2d 20 38 20 2a 20 2b 20 2d  col1 + - 8 * + -
1cc50 20 63 6f 6c 31 20 2a 20 2b 20 2b 20 36 33 20 41   col1 * + + 63 A
1cc60 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
1cc70 0d 0a 2d 2d 2d 2d 0d 0a 31 30 36 30 35 0d 0a 34  ..----..10605..4
1cc80 30 39 30 35 0d 0a 35 30 35 0d 0a 0d 0a 6f 6e 6c  0905..505....onl
1cc90 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
1cca0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
1ccb0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1ccc0 6c 61 62 65 6c 2d 36 32 36 0d 0a 53 45 4c 45 43  label-626..SELEC
1ccd0 54 20 44 49 53 54 49 4e 43 54 20 2b 20 38 38 20  T DISTINCT + 88 
1cce0 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  + COUNT( * ) AS 
1ccf0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
1cd00 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 31  S cor0..----..91
1cd10 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1cd20 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1cd30 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
1cd40 72 74 20 6c 61 62 65 6c 2d 36 32 36 0d 0a 53 45  rt label-626..SE
1cd50 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
1cd60 38 38 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29  88 + COUNT ( * )
1cd70 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
1cd80 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
1cd90 0d 0a 39 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..91....query II
1cda0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1cdb0 20 2b 20 33 34 2c 20 63 6f 6c 30 20 46 52 4f 4d   + 34, col0 FROM
1cdc0 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
1cdd0 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20  ERE NULL IS NOT 
1cde0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b  NULL..----....sk
1cdf0 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
1ce00 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
1ce10 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
1ce20 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
1ce30 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 49  lumns..query III
1ce40 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1ce50 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 2c   + col0 AS col1,
1ce60 20 2b 20 38 30 20 2a 20 2d 20 2b 20 63 6f 6c 30   + 80 * - + col0
1ce70 2c 20 2d 20 39 37 20 63 6f 6c 30 20 46 52 4f 4d  , - 97 col0 FROM
1ce80 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   tab1..----..9 v
1ce90 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
1cea0 20 64 39 66 33 32 63 37 33 65 34 35 35 65 63 31   d9f32c73e455ec1
1ceb0 32 31 65 34 34 39 30 35 33 37 37 35 65 61 35 34  21e449053775ea54
1cec0 65 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  e....onlyif mysq
1ced0 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
1cee0 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
1cef0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1cf00 6c 61 62 65 6c 2d 36 32 39 0d 0a 53 45 4c 45 43  label-629..SELEC
1cf10 54 20 41 4c 4c 20 43 41 53 54 28 20 2b 20 43 41  T ALL CAST( + CA
1cf20 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
1cf30 45 44 20 29 20 41 53 20 53 49 47 4e 45 44 20 29  ED ) AS SIGNED )
1cf40 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
1cf50 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
1cf60 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
1cf70 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1cf80 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1cf90 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32 39 0d 0a  sort label-629..
1cfa0 53 45 4c 45 43 54 20 41 4c 4c 20 43 41 53 54 20  SELECT ALL CAST 
1cfb0 28 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  ( + CAST ( NULL 
1cfc0 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20  AS INTEGER ) AS 
1cfd0 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74  INTEGER ) FROM t
1cfe0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab1..----..NULL.
1cff0 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  .NULL..NULL....q
1d000 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1d010 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1d020 2b 20 63 6f 6c 32 20 2a 20 63 6f 6c 32 20 2a 20  + col2 * col2 * 
1d030 2b 20 2d 20 63 6f 6c 32 20 2a 20 63 6f 6c 31 20  + - col2 * col1 
1d040 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
1d050 0a 2d 31 33 30 37 32 35 30 34 0d 0a 2d 34 39 32  .-13072504..-492
1d060 38 30 30 30 0d 0a 2d 36 32 30 35 31 37 0d 0a 0d  8000..-620517...
1d070 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1d080 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c  ..SELECT ALL col
1d090 31 20 2a 20 2b 20 2b 20 63 6f 6c 32 20 46 52 4f  1 * + + col2 FRO
1d0a0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
1d0b0 2d 2d 2d 2d 0d 0a 31 33 34 34 0d 0a 32 39 35 0d  ----..1344..295.
1d0c0 0a 33 31 39 36 0d 0a 0d 0a 73 6b 69 70 69 66 20  .3196....skipif 
1d0d0 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
1d0e0 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
1d0f0 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
1d100 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
1d110 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1d120 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
1d130 43 54 20 2b 20 34 33 20 63 6f 6c 32 20 46 52 4f  CT + 43 col2 FRO
1d140 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
1d150 2d 2d 2d 2d 0d 0a 34 33 0d 0a 0d 0a 71 75 65 72  ----..43....quer
1d160 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1d170 45 43 54 20 2d 20 35 34 20 2b 20 2d 20 63 6f 6c  ECT - 54 + - col
1d180 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  2 AS col2 FROM t
1d190 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
1d1a0 2d 0d 0a 2d 31 31 33 0d 0a 2d 31 32 32 0d 0a 2d  -..-113..-122..-
1d1b0 31 35 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  150....query III
1d1c0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1d1d0 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30   ALL * FROM tab0
1d1e0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b   AS cor0 WHERE +
1d1f0 20 63 6f 6c 32 20 3e 20 2b 20 63 6f 6c 30 0d 0a   col2 > + col0..
1d200 2d 2d 2d 2d 0d 0a 31 35 0d 0a 38 31 0d 0a 34 37  ----..15..81..47
1d210 0d 0a 39 37 0d 0a 31 0d 0a 39 39 0d 0a 0d 0a 6f  ..97..1..99....o
1d220 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
1d230 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
1d240 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
1d250 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1d260 36 33 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  635..SELECT ALL 
1d270 63 6f 6c 32 20 44 49 56 20 2b 20 31 32 20 2b 20  col2 DIV + 12 + 
1d280 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  - col2 FROM tab1
1d290 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1d2a0 2d 35 35 0d 0a 2d 36 33 0d 0a 2d 38 38 0d 0a 0d  -55..-63..-88...
1d2b0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1d2c0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1d2d0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1d2e0 6c 61 62 65 6c 2d 36 33 35 0d 0a 53 45 4c 45 43  label-635..SELEC
1d2f0 54 20 41 4c 4c 20 63 6f 6c 32 20 2f 20 2b 20 31  T ALL col2 / + 1
1d300 32 20 2b 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20  2 + - col2 FROM 
1d310 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
1d320 2d 2d 0d 0a 2d 35 35 0d 0a 2d 36 33 0d 0a 2d 38  --..-55..-63..-8
1d330 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  8....query I row
1d340 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
1d350 54 49 4e 43 54 20 2d 20 31 36 20 2b 20 2d 20 2d  TINCT - 16 + - -
1d360 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52   col2 AS col2 FR
1d370 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
1d380 0a 2d 2d 2d 2d 0d 0a 2d 36 0d 0a 33 31 0d 0a 38  .----..-6..31..8
1d390 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
1d3a0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
1d3b0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
1d3c0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 33  rowsort label-63
1d3d0 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f  7..SELECT ALL CO
1d3e0 55 4e 54 28 20 2a 20 29 20 2d 20 2b 20 2d 20 43  UNT( * ) - + - C
1d3f0 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2b 20 2b 20  OUNT( * ) + + + 
1d400 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20  COUNT( * ) FROM 
1d410 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d  tab2..----..9...
1d420 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1d430 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1d440 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1d450 6c 61 62 65 6c 2d 36 33 37 0d 0a 53 45 4c 45 43  label-637..SELEC
1d460 54 20 41 4c 4c 20 43 4f 55 4e 54 20 28 20 2a 20  T ALL COUNT ( * 
1d470 29 20 2d 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20  ) - + - COUNT ( 
1d480 2a 20 29 20 2b 20 2b 20 2b 20 43 4f 55 4e 54 20  * ) + + + COUNT 
1d490 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 0d  ( * ) FROM tab2.
1d4a0 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 6f 6e 6c 79  .----..9....only
1d4b0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
1d4c0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
1d4d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1d4e0 61 62 65 6c 2d 36 33 38 0d 0a 53 45 4c 45 43 54  abel-638..SELECT
1d4f0 20 41 4c 4c 20 4d 49 4e 28 20 2b 20 28 20 2d 20   ALL MIN( + ( - 
1d500 63 6f 6c 31 20 29 20 29 20 46 52 4f 4d 20 74 61  col1 ) ) FROM ta
1d510 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 37 0d 0a 0d  b2..----..-77...
1d520 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1d530 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1d540 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1d550 6c 61 62 65 6c 2d 36 33 38 0d 0a 53 45 4c 45 43  label-638..SELEC
1d560 54 20 41 4c 4c 20 4d 49 4e 20 28 20 2b 20 28 20  T ALL MIN ( + ( 
1d570 2d 20 63 6f 6c 31 20 29 20 29 20 46 52 4f 4d 20  - col1 ) ) FROM 
1d580 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 37 0d  tab2..----..-77.
1d590 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
1d5a0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
1d5b0 49 4e 43 54 20 63 6f 6c 31 2c 20 36 31 20 41 53  INCT col1, 61 AS
1d5c0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
1d5d0 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 36 31 0d 0a 36  .----..51..61..6
1d5e0 37 0d 0a 36 31 0d 0a 37 37 0d 0a 36 31 0d 0a 0d  7..61..77..61...
1d5f0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1d600 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1d610 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1d620 6f 72 74 20 6c 61 62 65 6c 2d 36 34 30 0d 0a 53  ort label-640..S
1d630 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 63 6f 6c  ELECT COUNT( col
1d640 30 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  0 ) col1 FROM ta
1d650 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73  b0..----..3....s
1d660 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1d670 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
1d680 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
1d690 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
1d6a0 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
1d6b0 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
1d6c0 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
1d6d0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 34 30  owsort label-640
1d6e0 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28  ..SELECT COUNT (
1d6f0 20 63 6f 6c 30 20 29 20 63 6f 6c 31 20 46 52 4f   col0 ) col1 FRO
1d700 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  M tab0..----..3.
1d710 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
1d720 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  ort..SELECT + co
1d730 6c 30 20 2a 20 36 35 2c 20 2b 20 63 6f 6c 30 20  l0 * 65, + col0 
1d740 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
1d750 0a 33 33 31 35 0d 0a 35 31 0d 0a 35 35 32 35 0d  .3315..51..5525.
1d760 0a 38 35 0d 0a 35 39 31 35 0d 0a 39 31 0d 0a 0d  .85..5915..91...
1d770 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1d780 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1d790 54 20 2d 20 28 20 2d 20 2d 20 63 6f 6c 31 20 29  T - ( - - col1 )
1d7a0 20 2a 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74   * + col1 FROM t
1d7b0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d  ab0..----..-1..-
1d7c0 34 34 31 0d 0a 2d 36 35 36 31 0d 0a 0d 0a 71 75  441..-6561....qu
1d7d0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1d7e0 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 30  ELECT ALL + col0
1d7f0 20 2f 20 2b 20 2d 20 39 39 20 46 52 4f 4d 20 74   / + - 99 FROM t
1d800 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 38 31  ab2 WHERE NOT 81
1d810 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d   < NULL..----...
1d820 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1d830 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1d840 54 20 34 38 20 2a 20 2b 20 2b 20 63 6f 6c 31 20  T 48 * + + col1 
1d850 2a 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  * col1 FROM tab2
1d860 0d 0a 2d 2d 2d 2d 0d 0a 31 32 34 38 34 38 0d 0a  ..----..124848..
1d870 32 31 35 34 37 32 0d 0a 32 38 34 35 39 32 0d 0a  215472..284592..
1d880 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1d890 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
1d8a0 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  x: ..query II ro
1d8b0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 34 35 0d  wsort label-645.
1d8c0 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28  .SELECT + COUNT(
1d8d0 20 2a 20 29 2c 20 37 37 20 41 53 20 63 6f 6c 32   * ), 77 AS col2
1d8e0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
1d8f0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 37 37 0d  r0..----..3..77.
1d900 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1d910 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1d920 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
1d930 72 74 20 6c 61 62 65 6c 2d 36 34 35 0d 0a 53 45  rt label-645..SE
1d940 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a  LECT + COUNT ( *
1d950 20 29 2c 20 37 37 20 41 53 20 63 6f 6c 32 20 46   ), 77 AS col2 F
1d960 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
1d970 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 37 37 0d 0a 0d  ..----..3..77...
1d980 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1d990 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 34 37 20  ..SELECT + - 47 
1d9a0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
1d9b0 30 20 57 48 45 52 45 20 2d 20 63 6f 6c 31 20 2b  0 WHERE - col1 +
1d9c0 20 2b 20 36 30 20 49 53 20 4e 55 4c 4c 20 41 4e   + 60 IS NULL AN
1d9d0 44 20 4e 4f 54 20 2b 20 63 6f 6c 32 20 42 45 54  D NOT + col2 BET
1d9e0 57 45 45 4e 20 2d 20 63 6f 6c 32 20 41 4e 44 20  WEEN - col2 AND 
1d9f0 63 6f 6c 30 20 2b 20 2b 20 2d 20 63 6f 6c 31 20  col0 + + - col1 
1da00 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  + col0..----....
1da10 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
1da20 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
1da30 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57  CT * FROM tab1 W
1da40 48 45 52 45 20 2d 20 2d 20 35 36 20 2b 20 28 20  HERE - - 56 + ( 
1da50 2d 20 63 6f 6c 31 20 29 20 49 53 20 4e 55 4c 4c  - col1 ) IS NULL
1da60 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
1da70 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
1da80 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
1da90 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
1daa0 73 6f 72 74 20 6c 61 62 65 6c 2d 36 34 38 0d 0a  sort label-648..
1dab0 53 45 4c 45 43 54 20 41 4c 4c 20 28 20 43 41 53  SELECT ALL ( CAS
1dac0 54 28 20 63 6f 6c 31 20 41 53 20 53 49 47 4e 45  T( col1 AS SIGNE
1dad0 44 20 29 20 29 20 41 53 20 63 6f 6c 32 20 46 52  D ) ) AS col2 FR
1dae0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab1..----..1
1daf0 34 0d 0a 34 37 0d 0a 35 0d 0a 0d 0a 73 6b 69 70  4..47..5....skip
1db00 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1db10 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1db20 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1db30 2d 36 34 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -648..SELECT ALL
1db40 20 28 20 43 41 53 54 20 28 20 63 6f 6c 31 20 41   ( CAST ( col1 A
1db50 53 20 49 4e 54 45 47 45 52 20 29 20 29 20 41 53  S INTEGER ) ) AS
1db60 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
1db70 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 34 37 0d 0a 35  .----..14..47..5
1db80 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
1db90 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
1dba0 49 4e 43 54 20 2d 20 2b 20 63 6f 6c 31 20 2a 20  INCT - + col1 * 
1dbb0 2d 20 31 37 20 2a 20 2b 20 63 6f 6c 31 20 46 52  - 17 * + col1 FR
1dbc0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
1dbd0 0a 2d 2d 2d 2d 0d 0a 31 31 31 35 33 37 0d 0a 31  .----..111537..1
1dbe0 37 0d 0a 37 34 39 37 0d 0a 0d 0a 71 75 65 72 79  7..7497....query
1dbf0 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
1dc00 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
1dc10 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
1dc20 4f 54 20 63 6f 6c 30 20 4e 4f 54 20 49 4e 20 28  OT col0 NOT IN (
1dc30 20 37 35 20 2b 20 2d 20 2d 20 63 6f 6c 30 20 2b   75 + - - col0 +
1dc40 20 2b 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c 31 20   + col2, + col1 
1dc50 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  )..----....query
1dc60 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1dc70 43 54 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20  CT col1 AS col1 
1dc80 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
1dc90 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30  0 WHERE NOT col0
1dca0 20 2f 20 2d 20 2d 20 63 6f 6c 32 20 49 53 20 4e   / - - col2 IS N
1dcb0 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  OT NULL..----...
1dcc0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1dcd0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1dce0 54 20 2d 20 33 38 20 41 53 20 63 6f 6c 30 20 46  T - 38 AS col0 F
1dcf0 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d  ROM tab2 cor0..-
1dd00 2d 2d 2d 0d 0a 2d 33 38 0d 0a 0d 0a 71 75 65 72  ---..-38....quer
1dd10 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1dd20 45 43 54 20 41 4c 4c 20 28 20 39 39 20 29 20 2b  ECT ALL ( 99 ) +
1dd30 20 2b 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c   + - col0 AS col
1dd40 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
1dd50 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 34  or0..----..14..4
1dd60 38 0d 0a 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  8..8....onlyif m
1dd70 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
1dd80 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
1dd90 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1dda0 2d 36 35 34 0d 0a 53 45 4c 45 43 54 20 2d 20 43  -654..SELECT - C
1ddb0 4f 55 4e 54 28 20 2a 20 29 20 2b 20 37 20 41 53  OUNT( * ) + 7 AS
1ddc0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
1ddd0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 0d 0a 0d  cor0..----..4...
1dde0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1ddf0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1de00 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1de10 6c 61 62 65 6c 2d 36 35 34 0d 0a 53 45 4c 45 43  label-654..SELEC
1de20 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  T - COUNT ( * ) 
1de30 2b 20 37 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  + 7 AS col1 FROM
1de40 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab0 cor0..----
1de50 0d 0a 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..4....onlyif my
1de60 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
1de70 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
1de80 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1de90 36 35 35 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e  655..SELECT COUN
1dea0 54 28 20 2a 20 29 20 2a 20 2d 20 2b 20 4d 49 4e  T( * ) * - + MIN
1deb0 28 20 2d 20 2b 20 32 35 20 29 20 2b 20 2b 20 43  ( - + 25 ) + + C
1dec0 4f 55 4e 54 28 20 2a 20 29 20 2a 20 33 31 20 41  OUNT( * ) * 31 A
1ded0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
1dee0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1def0 31 36 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  168....skipif my
1df00 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1df10 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1df20 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35 35 0d  wsort label-655.
1df30 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20  .SELECT COUNT ( 
1df40 2a 20 29 20 2a 20 2d 20 2b 20 4d 49 4e 20 28 20  * ) * - + MIN ( 
1df50 2d 20 2b 20 32 35 20 29 20 2b 20 2b 20 43 4f 55  - + 25 ) + + COU
1df60 4e 54 20 28 20 2a 20 29 20 2a 20 33 31 20 41 53  NT ( * ) * 31 AS
1df70 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
1df80 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
1df90 36 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  68....query I ro
1dfa0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
1dfb0 2d 20 36 31 20 2a 20 2d 20 2d 20 63 6f 6c 30 20  - 61 * - - col0 
1dfc0 2b 20 2d 20 2d 20 37 32 20 2a 20 2d 20 63 6f 6c  + - - 72 * - col
1dfd0 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  0 AS col2 FROM t
1dfe0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
1dff0 2d 0d 0a 2d 31 30 30 31 0d 0a 2d 35 36 31 0d 0a  -..-1001..-561..
1e000 2d 39 33 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -935....onlyif m
1e010 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
1e020 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
1e030 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1e040 2d 36 35 37 0d 0a 53 45 4c 45 43 54 20 2d 20 2d  -657..SELECT - -
1e050 20 34 32 20 2b 20 2d 20 4d 41 58 28 20 44 49 53   42 + - MAX( DIS
1e060 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 29 20 41  TINCT - col2 ) A
1e070 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
1e080 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1e090 35 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  52....skipif mys
1e0a0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1e0b0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1e0c0 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35 37 0d 0a  sort label-657..
1e0d0 53 45 4c 45 43 54 20 2d 20 2d 20 34 32 20 2b 20  SELECT - - 42 + 
1e0e0 2d 20 4d 41 58 20 28 20 44 49 53 54 49 4e 43 54  - MAX ( DISTINCT
1e0f0 20 2d 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c   - col2 ) AS col
1e100 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
1e110 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 32 0d 0a 0d  or0..----..52...
1e120 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1e130 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1e140 54 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30  T + col1 AS col0
1e150 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
1e160 20 4e 4f 54 20 2d 20 28 20 2d 20 2d 20 63 6f 6c   NOT - ( - - col
1e170 30 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  0 ) IS NULL..---
1e180 2d 0d 0a 31 34 0d 0a 34 37 0d 0a 35 0d 0a 0d 0a  -..14..47..5....
1e190 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
1e1a0 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72  AST syntax: aggr
1e1b0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49  egate syntax: SI
1e1c0 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
1e1d0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1e1e0 65 6c 2d 36 35 39 0d 0a 53 45 4c 45 43 54 20 44  el-659..SELECT D
1e1f0 49 53 54 49 4e 43 54 20 2d 20 43 41 53 54 28 20  ISTINCT - CAST( 
1e200 43 4f 55 4e 54 28 20 2d 20 28 20 2d 20 2d 20 43  COUNT( - ( - - C
1e210 41 53 54 28 20 2b 20 63 6f 6c 31 20 41 53 20 53  AST( + col1 AS S
1e220 49 47 4e 45 44 20 29 20 29 20 29 20 41 53 20 53  IGNED ) ) ) AS S
1e230 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62  IGNED ) FROM tab
1e240 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73  2..----..-3....s
1e250 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1e260 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1e270 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1e280 62 65 6c 2d 36 35 39 0d 0a 53 45 4c 45 43 54 20  bel-659..SELECT 
1e290 44 49 53 54 49 4e 43 54 20 2d 20 43 41 53 54 20  DISTINCT - CAST 
1e2a0 28 20 43 4f 55 4e 54 20 28 20 2d 20 28 20 2d 20  ( COUNT ( - ( - 
1e2b0 2d 20 43 41 53 54 20 28 20 2b 20 63 6f 6c 31 20  - CAST ( + col1 
1e2c0 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20 29  AS INTEGER ) ) )
1e2d0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52   AS INTEGER ) FR
1e2e0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
1e2f0 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  3....query I row
1e300 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63  sort..SELECT - c
1e310 6f 6c 31 20 2b 20 2b 20 28 20 2b 20 63 6f 6c 30  ol1 + + ( + col0
1e320 20 29 20 2a 20 2d 20 63 6f 6c 31 20 46 52 4f 4d   ) * - col1 FROM
1e330 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32   tab0..----..-12
1e340 39 36 0d 0a 2d 31 38 34 38 0d 0a 2d 39 38 0d 0a  96..-1848..-98..
1e350 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
1e360 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63  rt..SELECT ALL c
1e370 6f 6c 31 20 41 53 20 63 6f 6c 31 2c 20 34 36 20  ol1 AS col1, 46 
1e380 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
1e390 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 34 36 0d  1..----..14..46.
1e3a0 0a 34 37 0d 0a 34 36 0d 0a 35 0d 0a 34 36 0d 0a  .47..46..5..46..
1e3b0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1e3c0 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31  t..SELECT + col1
1e3d0 20 2f 20 63 6f 6c 30 20 2a 20 2d 20 34 37 20 2a   / col0 * - 47 *
1e3e0 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   - col1 FROM tab
1e3f0 32 20 57 48 45 52 45 20 2b 20 63 6f 6c 30 20 2f  2 WHERE + col0 /
1e400 20 2b 20 32 35 20 42 45 54 57 45 45 4e 20 2d 20   + 25 BETWEEN - 
1e410 32 30 20 41 4e 44 20 2d 20 35 30 0d 0a 2d 2d 2d  20 AND - 50..---
1e420 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  -....query II ro
1e430 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
1e440 4c 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32  L - col0 AS col2
1e450 2c 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  , - col0 FROM ta
1e460 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a 2d  b2..----..-46..-
1e470 34 36 0d 0a 2d 36 34 0d 0a 2d 36 34 0d 0a 2d 37  46..-64..-64..-7
1e480 35 0d 0a 2d 37 35 0d 0a 0d 0a 71 75 65 72 79 20  5..-75....query 
1e490 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
1e4a0 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ECT * FROM tab1 
1e4b0 57 48 45 52 45 20 2d 20 63 6f 6c 31 20 2b 20 37  WHERE - col1 + 7
1e4c0 33 20 2b 20 2d 20 2b 20 38 39 20 4e 4f 54 20 42  3 + - + 89 NOT B
1e4d0 45 54 57 45 45 4e 20 34 37 20 2f 20 2b 20 63 6f  ETWEEN 47 / + co
1e4e0 6c 30 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d  l0 AND NULL..---
1e4f0 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
1e500 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31  ing to c6c0a4111
1e510 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65  b36d04dbc811a11e
1e520 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79  4d54cad....query
1e530 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1e540 43 54 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20  CT col0 AS col1 
1e550 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
1e560 4e 55 4c 4c 20 3c 3d 20 63 6f 6c 32 0d 0a 2d 2d  NULL <= col2..--
1e570 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
1e580 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 33 20  wsort..SELECT 3 
1e590 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46  + col0 AS col0 F
1e5a0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
1e5b0 34 39 0d 0a 36 37 0d 0a 37 38 0d 0a 0d 0a 6f 6e  49..67..78....on
1e5c0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
1e5d0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
1e5e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1e5f0 20 6c 61 62 65 6c 2d 36 36 37 0d 0a 53 45 4c 45   label-667..SELE
1e600 43 54 20 53 55 4d 28 20 44 49 53 54 49 4e 43 54  CT SUM( DISTINCT
1e610 20 63 6f 6c 30 20 29 20 2b 20 35 31 20 46 52 4f   col0 ) + 51 FRO
1e620 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 35  M tab0..----..25
1e630 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
1e640 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1e650 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1e660 6f 72 74 20 6c 61 62 65 6c 2d 36 36 37 0d 0a 53  ort label-667..S
1e670 45 4c 45 43 54 20 53 55 4d 20 28 20 44 49 53 54  ELECT SUM ( DIST
1e680 49 4e 43 54 20 63 6f 6c 30 20 29 20 2b 20 35 31  INCT col0 ) + 51
1e690 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
1e6a0 0d 0a 32 35 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..250....onlyif 
1e6b0 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
1e6c0 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73  tax: aggregate s
1e6d0 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
1e6e0 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
1e6f0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 36 38 0d  wsort label-668.
1e700 0a 53 45 4c 45 43 54 20 2d 20 2d 20 43 4f 55 4e  .SELECT - - COUN
1e710 54 28 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 29 20  T( ALL + col2 ) 
1e720 2d 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  - - CAST( NULL A
1e730 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20  S SIGNED ) FROM 
1e740 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2d  tab0 WHERE NOT -
1e750 20 38 30 20 2a 20 2d 20 34 37 20 2a 20 63 6f 6c   80 * - 47 * col
1e760 30 20 49 53 20 4e 55 4c 4c 20 4f 52 20 4e 4f 54  0 IS NULL OR NOT
1e770 20 28 20 63 6f 6c 32 20 2d 20 2d 20 43 41 53 54   ( col2 - - CAST
1e780 28 20 2d 20 63 6f 6c 32 20 41 53 20 53 49 47 4e  ( - col2 AS SIGN
1e790 45 44 20 29 20 29 20 3e 20 2d 20 63 6f 6c 30 0d  ED ) ) > - col0.
1e7a0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
1e7b0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1e7c0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1e7d0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1e7e0 62 65 6c 2d 36 36 38 0d 0a 53 45 4c 45 43 54 20  bel-668..SELECT 
1e7f0 2d 20 2d 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20  - - COUNT ( ALL 
1e800 2b 20 63 6f 6c 32 20 29 20 2d 20 2d 20 43 41 53  + col2 ) - - CAS
1e810 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
1e820 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 30 20  GER ) FROM tab0 
1e830 57 48 45 52 45 20 4e 4f 54 20 2d 20 38 30 20 2a  WHERE NOT - 80 *
1e840 20 2d 20 34 37 20 2a 20 63 6f 6c 30 20 49 53 20   - 47 * col0 IS 
1e850 4e 55 4c 4c 20 4f 52 20 4e 4f 54 20 28 20 63 6f  NULL OR NOT ( co
1e860 6c 32 20 2d 20 2d 20 43 41 53 54 20 28 20 2d 20  l2 - - CAST ( - 
1e870 63 6f 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20  col2 AS INTEGER 
1e880 29 20 29 20 3e 20 2d 20 63 6f 6c 30 0d 0a 2d 2d  ) ) > - col0..--
1e890 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79  --..NULL....only
1e8a0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
1e8b0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
1e8c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1e8d0 61 62 65 6c 2d 36 36 39 0d 0a 53 45 4c 45 43 54  abel-669..SELECT
1e8e0 20 2d 20 32 39 20 2a 20 2b 20 43 4f 55 4e 54 28   - 29 * + COUNT(
1e8f0 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f   * ) AS col2 FRO
1e900 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
1e910 2d 2d 2d 2d 0d 0a 2d 38 37 0d 0a 0d 0a 73 6b 69  ----..-87....ski
1e920 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1e930 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1e940 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1e950 6c 2d 36 36 39 0d 0a 53 45 4c 45 43 54 20 2d 20  l-669..SELECT - 
1e960 32 39 20 2a 20 2b 20 43 4f 55 4e 54 20 28 20 2a  29 * + COUNT ( *
1e970 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
1e980 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
1e990 2d 2d 0d 0a 2d 38 37 0d 0a 0d 0a 71 75 65 72 79  --..-87....query
1e9a0 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
1e9b0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63  ECT DISTINCT - c
1e9c0 6f 6c 31 20 2b 20 2b 20 31 35 20 2b 20 2d 20 33  ol1 + + 15 + - 3
1e9d0 38 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20  8 * + - col2 AS 
1e9e0 63 6f 6c 30 2c 20 63 6f 6c 31 20 46 52 4f 4d 20  col0, col1 FROM 
1e9f0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
1ea00 2d 2d 0d 0a 32 32 35 32 0d 0a 35 0d 0a 32 35 35  --..2252..5..255
1ea10 32 0d 0a 34 37 0d 0a 33 36 34 39 0d 0a 31 34 0d  2..47..3649..14.
1ea20 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1ea30 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20 31  rt..SELECT - ( 1
1ea40 32 20 29 20 2a 20 2d 20 2b 20 63 6f 6c 32 20 41  2 ) * - + col2 A
1ea50 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
1ea60 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 38   cor0..----..118
1ea70 38 0d 0a 31 32 30 0d 0a 35 36 34 0d 0a 0d 0a 71  8..120..564....q
1ea80 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1ea90 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 63  SELECT ALL - - c
1eaa0 6f 6c 32 20 2b 20 2b 20 63 6f 6c 31 20 41 53 20  ol2 + + col1 AS 
1eab0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
1eac0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30  S cor0..----..10
1ead0 30 0d 0a 31 32 38 0d 0a 33 31 0d 0a 0d 0a 71 75  0..128..31....qu
1eae0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1eaf0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
1eb00 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 31 20 41   col0 + - col1 A
1eb10 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
1eb20 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
1eb30 4f 54 20 38 33 20 49 4e 20 28 20 2b 20 63 6f 6c  OT 83 IN ( + col
1eb40 30 20 2a 20 2b 20 36 36 2c 20 2b 20 63 6f 6c 32  0 * + 66, + col2
1eb50 20 29 0d 0a 2d 2d 2d 2d 0d 0a 33 37 0d 0a 34 34   )..----..37..44
1eb60 0d 0a 38 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..80....query II
1eb70 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1eb80 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  T * FROM tab0 co
1eb90 72 30 20 57 48 45 52 45 20 2d 20 33 36 20 49 53  r0 WHERE - 36 IS
1eba0 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
1ebb0 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
1ebc0 67 20 74 6f 20 63 34 62 34 32 37 36 35 64 66 66  g to c4b42765dff
1ebd0 39 34 65 61 61 61 34 36 30 34 30 65 35 33 37 66  94eaaa46040e537f
1ebe0 62 34 33 62 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  b43b7....onlyif 
1ebf0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
1ec00 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f  e syntax: DIV fo
1ec10 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
1ec20 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
1ec30 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 37 35 0d  wsort label-675.
1ec40 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28  .SELECT - COUNT(
1ec50 20 41 4c 4c 20 31 32 20 29 20 44 49 56 20 43 4f   ALL 12 ) DIV CO
1ec60 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31  UNT( * ) AS col1
1ec70 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
1ec80 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 0d 0a  r0..----..-1....
1ec90 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1eca0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1ecb0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1ecc0 61 62 65 6c 2d 36 37 35 0d 0a 53 45 4c 45 43 54  abel-675..SELECT
1ecd0 20 2d 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20 31   - COUNT ( ALL 1
1ece0 32 20 29 20 2f 20 43 4f 55 4e 54 20 28 20 2a 20  2 ) / COUNT ( * 
1ecf0 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
1ed00 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
1ed10 2d 0d 0a 2d 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -..-1....onlyif 
1ed20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
1ed30 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
1ed40 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
1ed50 62 65 6c 2d 36 37 36 0d 0a 53 45 4c 45 43 54 20  bel-676..SELECT 
1ed60 28 20 2d 20 4d 49 4e 28 20 2b 20 2b 20 63 6f 6c  ( - MIN( + + col
1ed70 31 20 29 20 29 2c 20 28 20 2d 20 4d 49 4e 28 20  1 ) ), ( - MIN( 
1ed80 63 6f 6c 30 20 29 20 29 20 41 53 20 63 6f 6c 32  col0 ) ) AS col2
1ed90 2c 20 4d 41 58 28 20 41 4c 4c 20 2b 20 28 20 63  , MAX( ALL + ( c
1eda0 6f 6c 32 20 29 20 29 20 41 53 20 63 6f 6c 30 20  ol2 ) ) AS col0 
1edb0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
1edc0 0a 2d 31 0d 0a 2d 31 35 0d 0a 39 39 0d 0a 0d 0a  .-1..-15..99....
1edd0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1ede0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1edf0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
1ee00 20 6c 61 62 65 6c 2d 36 37 36 0d 0a 53 45 4c 45   label-676..SELE
1ee10 43 54 20 28 20 2d 20 4d 49 4e 20 28 20 2b 20 2b  CT ( - MIN ( + +
1ee20 20 63 6f 6c 31 20 29 20 29 2c 20 28 20 2d 20 4d   col1 ) ), ( - M
1ee30 49 4e 20 28 20 63 6f 6c 30 20 29 20 29 20 41 53  IN ( col0 ) ) AS
1ee40 20 63 6f 6c 32 2c 20 4d 41 58 20 28 20 41 4c 4c   col2, MAX ( ALL
1ee50 20 2b 20 28 20 63 6f 6c 32 20 29 20 29 20 41 53   + ( col2 ) ) AS
1ee60 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
1ee70 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 31 35 0d 0a  .----..-1..-15..
1ee80 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  99....query I ro
1ee90 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
1eea0 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20 2a 20  STINCT - col0 * 
1eeb0 2b 20 2d 20 39 39 20 46 52 4f 4d 20 74 61 62 30  + - 99 FROM tab0
1eec0 0d 0a 2d 2d 2d 2d 0d 0a 31 34 38 35 0d 0a 38 36  ..----..1485..86
1eed0 31 33 0d 0a 39 36 30 33 0d 0a 0d 0a 71 75 65 72  13..9603....quer
1eee0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
1eef0 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
1ef00 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  0 WHERE NOT NULL
1ef10 20 42 45 54 57 45 45 4e 20 2b 20 63 6f 6c 30 20   BETWEEN + col0 
1ef20 41 4e 44 20 2d 20 33 35 0d 0a 2d 2d 2d 2d 0d 0a  AND - 35..----..
1ef30 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1ef40 74 0d 0a 53 45 4c 45 43 54 20 37 39 20 2a 20 2b  t..SELECT 79 * +
1ef50 20 38 34 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d   84 FROM tab0..-
1ef60 2d 2d 2d 0d 0a 36 36 33 36 0d 0a 36 36 33 36 0d  ---..6636..6636.
1ef70 0a 36 36 33 36 0d 0a 0d 0a 71 75 65 72 79 20 49  .6636....query I
1ef80 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1ef90 20 44 49 53 54 49 4e 43 54 20 31 32 20 2a 20 2b   DISTINCT 12 * +
1efa0 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   + col1 FROM tab
1efb0 31 0d 0a 2d 2d 2d 2d 0d 0a 31 36 38 0d 0a 35 36  1..----..168..56
1efc0 34 0d 0a 36 30 0d 0a 0d 0a 71 75 65 72 79 20 49  4..60....query I
1efd0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1efe0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57  CT * FROM tab1 W
1eff0 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20 49 4e  HERE NOT col0 IN
1f000 20 28 20 2d 20 2d 20 33 36 20 29 0d 0a 2d 2d 2d   ( - - 36 )..---
1f010 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
1f020 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31  ing to c6c0a4111
1f030 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65  b36d04dbc811a11e
1f040 34 64 35 34 63 61 64 0d 0a 0d 0a 73 6b 69 70 69  4d54cad....skipi
1f050 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
1f060 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
1f070 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
1f080 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
1f090 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ns..query II row
1f0a0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
1f0b0 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 2c   - col2 AS col0,
1f0c0 20 2d 20 63 6f 6c 30 20 63 6f 6c 32 20 46 52 4f   - col0 col2 FRO
1f0d0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab0..----..-1
1f0e0 30 0d 0a 2d 38 37 0d 0a 2d 34 37 0d 0a 2d 31 35  0..-87..-47..-15
1f0f0 0d 0a 2d 39 39 0d 0a 2d 39 37 0d 0a 0d 0a 71 75  ..-99..-97....qu
1f100 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
1f110 53 45 4c 45 43 54 20 63 6f 6c 31 2c 20 63 6f 6c  SELECT col1, col
1f120 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  0 AS col1 FROM t
1f130 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab0 cor0..----..
1f140 31 0d 0a 39 37 0d 0a 32 31 0d 0a 38 37 0d 0a 38  1..97..21..87..8
1f150 31 0d 0a 31 35 0d 0a 0d 0a 71 75 65 72 79 20 49  1..15....query I
1f160 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1f170 20 44 49 53 54 49 4e 43 54 20 31 38 20 46 52 4f   DISTINCT 18 FRO
1f180 4d 20 74 61 62 32 20 63 6f 72 30 20 43 52 4f 53  M tab2 cor0 CROS
1f190 53 20 4a 4f 49 4e 20 74 61 62 31 20 41 53 20 63  S JOIN tab1 AS c
1f1a0 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 31 38 0d 0a 0d  or1..----..18...
1f1b0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1f1c0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1f1d0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1f1e0 6f 72 74 20 6c 61 62 65 6c 2d 36 38 35 0d 0a 53  ort label-685..S
1f1f0 45 4c 45 43 54 20 2d 20 4d 49 4e 28 20 2b 20 63  ELECT - MIN( + c
1f200 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ol0 ) AS col0 FR
1f210 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
1f220 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 0d 0a 73 6b  .----..-15....sk
1f230 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1f240 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1f250 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1f260 65 6c 2d 36 38 35 0d 0a 53 45 4c 45 43 54 20 2d  el-685..SELECT -
1f270 20 4d 49 4e 20 28 20 2b 20 63 6f 6c 30 20 29 20   MIN ( + col0 ) 
1f280 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
1f290 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
1f2a0 0a 2d 31 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-15....onlyif m
1f2b0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
1f2c0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
1f2d0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1f2e0 2d 36 38 36 0d 0a 53 45 4c 45 43 54 20 44 49 53  -686..SELECT DIS
1f2f0 54 49 4e 43 54 20 4d 41 58 28 20 44 49 53 54 49  TINCT MAX( DISTI
1f300 4e 43 54 20 2d 20 37 34 20 29 20 41 53 20 63 6f  NCT - 74 ) AS co
1f310 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
1f320 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 34 0d  cor0..----..-74.
1f330 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1f340 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1f350 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1f360 74 20 6c 61 62 65 6c 2d 36 38 36 0d 0a 53 45 4c  t label-686..SEL
1f370 45 43 54 20 44 49 53 54 49 4e 43 54 20 4d 41 58  ECT DISTINCT MAX
1f380 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 37 34   ( DISTINCT - 74
1f390 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
1f3a0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
1f3b0 2d 2d 0d 0a 2d 37 34 0d 0a 0d 0a 6f 6e 6c 79 69  --..-74....onlyi
1f3c0 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
1f3d0 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
1f3e0 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
1f3f0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38 37 0d  wsort label-687.
1f400 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f  .SELECT ALL + co
1f410 6c 32 20 2f 20 2d 20 2b 20 43 41 53 54 28 20 4e  l2 / - + CAST( N
1f420 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
1f430 2a 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  * + CAST( NULL A
1f440 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2b 20 63  S SIGNED ) * + c
1f450 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol1 AS col2 FROM
1f460 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
1f470 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 49 4e 20  ERE ( NULL ) IN 
1f480 28 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a  ( col1 )..----..
1f490 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1f4a0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1f4b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1f4c0 20 6c 61 62 65 6c 2d 36 38 37 0d 0a 53 45 4c 45   label-687..SELE
1f4d0 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 2f 20  CT ALL + col2 / 
1f4e0 2d 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  - + CAST ( NULL 
1f4f0 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2b  AS INTEGER ) * +
1f500 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
1f510 49 4e 54 45 47 45 52 20 29 20 2a 20 2b 20 63 6f  INTEGER ) * + co
1f520 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l1 AS col2 FROM 
1f530 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
1f540 52 45 20 28 20 4e 55 4c 4c 20 29 20 49 4e 20 28  RE ( NULL ) IN (
1f550 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   col1 )..----...
1f560 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
1f570 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
1f580 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
1f590 48 45 52 45 20 2b 20 63 6f 6c 32 20 2f 20 2b 20  HERE + col2 / + 
1f5a0 2b 20 36 33 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  + 63 IS NULL..--
1f5b0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
1f5c0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
1f5d0 4c 20 2d 20 39 34 20 2b 20 2b 20 63 6f 6c 31 20  L - 94 + + col1 
1f5e0 2b 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  + + col2 FROM ta
1f5f0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
1f600 0d 0a 2d 36 33 0d 0a 33 34 0d 0a 36 0d 0a 0d 0a  ..-63..34..6....
1f610 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
1f620 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63  ..SELECT ALL + c
1f630 6f 6c 31 2c 20 63 6f 6c 32 20 2b 20 63 6f 6c 31  ol1, col2 + col1
1f640 20 2a 20 2d 20 63 6f 6c 31 20 2d 20 2d 20 33 31   * - col1 - - 31
1f650 20 2a 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74   * + col2 FROM t
1f660 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
1f670 2d 0d 0a 31 34 0d 0a 32 38 37 36 0d 0a 34 37 0d  -..14..2876..47.
1f680 0a 2d 33 33 0d 0a 35 0d 0a 31 38 36 33 0d 0a 0d  .-33..5..1863...
1f690 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1f6a0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1f6b0 54 20 2d 20 2b 20 35 34 20 2b 20 2d 20 63 6f 6c  T - + 54 + - col
1f6c0 32 20 2b 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20  2 + + + col0 AS 
1f6d0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
1f6e0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  S cor0..----..-2
1f6f0 38 0d 0a 2d 33 31 0d 0a 2d 39 39 0d 0a 0d 0a 71  8..-31..-99....q
1f700 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1f710 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 31 37 20  SELECT ALL - 17 
1f720 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
1f730 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
1f740 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20  NOT NULL NOT IN 
1f750 28 20 2d 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d  ( - col2 )..----
1f760 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1f770 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
1f780 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
1f790 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
1f7a0 20 6c 61 62 65 6c 2d 36 39 33 0d 0a 53 45 4c 45   label-693..SELE
1f7b0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41  CT * FROM tab1 A
1f7c0 53 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c  S cor0 WHERE col
1f7d0 30 20 2b 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 28  0 + - col2 * - (
1f7e0 20 2d 20 31 39 20 29 20 3e 3d 20 2d 20 43 41 53   - 19 ) >= - CAS
1f7f0 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
1f800 44 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  D )..----....ski
1f810 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1f820 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1f830 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
1f840 62 65 6c 2d 36 39 33 0d 0a 53 45 4c 45 43 54 20  bel-693..SELECT 
1f850 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  * FROM tab1 AS c
1f860 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 30 20 2b  or0 WHERE col0 +
1f870 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 28 20 2d 20   - col2 * - ( - 
1f880 31 39 20 29 20 3e 3d 20 2d 20 43 41 53 54 20 28  19 ) >= - CAST (
1f890 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
1f8a0 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79   )..----....only
1f8b0 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
1f8c0 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
1f8d0 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  ion: ..query II 
1f8e0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39  rowsort label-69
1f8f0 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  4..SELECT DISTIN
1f900 43 54 20 63 6f 6c 31 20 44 49 56 20 2d 20 63 6f  CT col1 DIV - co
1f910 6c 30 20 2b 20 2d 20 2d 20 63 6f 6c 32 20 2a 20  l0 + - - col2 * 
1f920 2d 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 2b 20 63  - + col2 + + + c
1f930 6f 6c 31 2c 20 2b 20 63 6f 6c 30 20 41 53 20 63  ol1, + col0 AS c
1f940 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
1f950 2d 2d 2d 0d 0a 2d 33 34 37 36 0d 0a 38 35 0d 0a  ---..-3476..85..
1f960 2d 34 35 37 37 0d 0a 39 31 0d 0a 2d 39 32 30 32  -4577..91..-9202
1f970 0d 0a 35 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..51....skipif m
1f980 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1f990 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
1f9a0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39  rowsort label-69
1f9b0 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  4..SELECT DISTIN
1f9c0 43 54 20 63 6f 6c 31 20 2f 20 2d 20 63 6f 6c 30  CT col1 / - col0
1f9d0 20 2b 20 2d 20 2d 20 63 6f 6c 32 20 2a 20 2d 20   + - - col2 * - 
1f9e0 2b 20 63 6f 6c 32 20 2b 20 2b 20 2b 20 63 6f 6c  + col2 + + + col
1f9f0 31 2c 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c  1, + col0 AS col
1fa00 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
1fa10 2d 0d 0a 2d 33 34 37 36 0d 0a 38 35 0d 0a 2d 34  -..-3476..85..-4
1fa20 35 37 37 0d 0a 39 31 0d 0a 2d 39 32 30 32 0d 0a  577..91..-9202..
1fa30 35 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  51....query III 
1fa40 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1fa50 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  * FROM tab1 WHER
1fa60 45 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 35 20 2a  E - col1 + + 5 *
1fa70 20 2d 20 2b 20 63 6f 6c 32 20 3e 3d 20 63 6f 6c   - + col2 >= col
1fa80 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  2..----....query
1fa90 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
1faa0 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  LECT * FROM tab2
1fab0 20 57 48 45 52 45 20 32 20 42 45 54 57 45 45 4e   WHERE 2 BETWEEN
1fac0 20 2d 20 2b 20 38 36 20 41 4e 44 20 4e 55 4c 4c   - + 86 AND NULL
1fad0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
1fae0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
1faf0 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
1fb00 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
1fb10 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39 37 0d 0a  sort label-697..
1fb20 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2a 20  SELECT + col2 * 
1fb30 63 6f 6c 31 20 2b 20 2b 20 43 41 53 54 28 20 4e  col1 + + CAST( N
1fb40 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
1fb50 2b 20 2d 20 2d 20 35 33 20 41 53 20 63 6f 6c 32  + - - 53 AS col2
1fb60 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
1fb70 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
1fb80 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
1fb90 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1fba0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1fbb0 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39 37 0d 0a  sort label-697..
1fbc0 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2a 20  SELECT + col2 * 
1fbd0 63 6f 6c 31 20 2b 20 2b 20 43 41 53 54 20 28 20  col1 + + CAST ( 
1fbe0 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
1fbf0 29 20 2b 20 2d 20 2d 20 35 33 20 41 53 20 63 6f  ) + - - 53 AS co
1fc00 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
1fc10 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
1fc20 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  NULL....onlyif m
1fc30 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
1fc40 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
1fc50 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1fc60 2d 36 39 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -698..SELECT ALL
1fc70 20 53 55 4d 28 20 2d 20 2d 20 33 35 20 29 20 46   SUM( - - 35 ) F
1fc80 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
1fc90 31 30 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  105....skipif my
1fca0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1fcb0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1fcc0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39 38 0d  wsort label-698.
1fcd0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 53 55 4d 20  .SELECT ALL SUM 
1fce0 28 20 2d 20 2d 20 33 35 20 29 20 46 52 4f 4d 20  ( - - 35 ) FROM 
1fcf0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 35 0d  tab0..----..105.
1fd00 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1fd10 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
1fd20 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65  ax: DIV for inte
1fd30 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
1fd40 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1fd50 6c 61 62 65 6c 2d 36 39 39 0d 0a 53 45 4c 45 43  label-699..SELEC
1fd60 54 20 43 4f 55 4e 54 28 20 2b 20 2b 20 63 6f 6c  T COUNT( + + col
1fd70 31 20 29 20 2b 20 2b 20 2d 20 32 20 2a 20 2d 20  1 ) + + - 2 * - 
1fd80 43 4f 55 4e 54 28 20 44 49 53 54 49 4e 43 54 20  COUNT( DISTINCT 
1fd90 35 30 20 29 20 44 49 56 20 2b 20 43 4f 55 4e 54  50 ) DIV + COUNT
1fda0 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 0d  ( * ) FROM tab1.
1fdb0 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70  .----..3....skip
1fdc0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1fdd0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1fde0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1fdf0 2d 36 39 39 0d 0a 53 45 4c 45 43 54 20 43 4f 55  -699..SELECT COU
1fe00 4e 54 20 28 20 2b 20 2b 20 63 6f 6c 31 20 29 20  NT ( + + col1 ) 
1fe10 2b 20 2b 20 2d 20 32 20 2a 20 2d 20 43 4f 55 4e  + + - 2 * - COUN
1fe20 54 20 28 20 44 49 53 54 49 4e 43 54 20 35 30 20  T ( DISTINCT 50 
1fe30 29 20 2f 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  ) / + COUNT ( * 
1fe40 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  ) FROM tab1..---
1fe50 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -..3....query I 
1fe60 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1fe70 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 63 6f 6c  DISTINCT + + col
1fe80 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  1 AS col2 FROM t
1fe90 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55  ab0 WHERE NOT NU
1fea0 4c 4c 20 3e 3d 20 2b 20 63 6f 6c 31 0d 0a 2d 2d  LL >= + col1..--
1feb0 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
1fec0 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
1fed0 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  : aggregate synt
1fee0 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
1fef0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1ff00 72 74 20 6c 61 62 65 6c 2d 37 30 31 0d 0a 53 45  rt label-701..SE
1ff10 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20  LECT COUNT( * ) 
1ff20 2a 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  * CAST( NULL AS 
1ff30 53 49 47 4e 45 44 20 29 20 2a 20 2b 20 43 4f 55  SIGNED ) * + COU
1ff40 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  NT( * ) FROM tab
1ff50 31 2c 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  1, tab0 AS cor0.
1ff60 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
1ff70 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1ff80 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1ff90 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1ffa0 62 65 6c 2d 37 30 31 0d 0a 53 45 4c 45 43 54 20  bel-701..SELECT 
1ffb0 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 43 41  COUNT ( * ) * CA
1ffc0 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
1ffd0 45 47 45 52 20 29 20 2a 20 2b 20 43 4f 55 4e 54  EGER ) * + COUNT
1ffe0 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31   ( * ) FROM tab1
1fff0 2c 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  , tab0 AS cor0..
20000 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  ----..NULL....qu
20010 65 72 79 20 49 49 49 49 49 49 20 72 6f 77 73 6f  ery IIIIII rowso
20020 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
20030 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  NCT * FROM tab1 
20040 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
20050 74 61 62 32 20 41 53 20 63 6f 72 31 20 57 48 45  tab2 AS cor1 WHE
20060 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 3c 3d  RE NOT ( NULL <=
20070 20 2b 20 34 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a   + 4 )..----....
20080 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
20090 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
200a0 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
200b0 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
200c0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
200d0 65 6c 2d 37 30 33 0d 0a 53 45 4c 45 43 54 20 2d  el-703..SELECT -
200e0 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 44 49   - COUNT( * ) DI
200f0 56 20 2b 20 38 33 20 46 52 4f 4d 20 74 61 62 32  V + 83 FROM tab2
20100 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
20110 20 74 61 62 30 20 41 53 20 63 6f 72 31 0d 0a 2d   tab0 AS cor1..-
20120 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  ---..0....skipif
20130 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
20140 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
20150 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
20160 30 33 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 43  03..SELECT - - C
20170 4f 55 4e 54 20 28 20 2a 20 29 20 2f 20 2b 20 38  OUNT ( * ) / + 8
20180 33 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  3 FROM tab2 cor0
20190 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30   CROSS JOIN tab0
201a0 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
201b0 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
201c0 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
201d0 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d   DECIMAL type: .
201e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
201f0 20 6c 61 62 65 6c 2d 37 30 34 0d 0a 53 45 4c 45   label-704..SELE
20200 43 54 20 2d 20 33 31 20 46 52 4f 4d 20 74 61 62  CT - 31 FROM tab
20210 31 20 57 48 45 52 45 20 2b 20 2d 20 63 6f 6c 32  1 WHERE + - col2
20220 20 4e 4f 54 20 49 4e 20 28 20 2b 20 63 6f 6c 32   NOT IN ( + col2
20230 20 2b 20 31 32 2c 20 2d 20 63 6f 6c 31 2c 20 63   + 12, - col1, c
20240 6f 6c 30 20 2b 20 2d 20 2d 20 63 6f 6c 32 20 2f  ol0 + - - col2 /
20250 20 2d 20 2b 20 32 35 2c 20 2d 20 43 41 53 54 28   - + 25, - CAST(
20260 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c   NULL AS DECIMAL
20270 20 29 20 2d 20 2b 20 38 35 2c 20 2d 20 2d 20 63   ) - + 85, - - c
20280 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73  ol1 )..----....s
20290 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
202a0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
202b0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
202c0 62 65 6c 2d 37 30 34 0d 0a 53 45 4c 45 43 54 20  bel-704..SELECT 
202d0 2d 20 33 31 20 46 52 4f 4d 20 74 61 62 31 20 57  - 31 FROM tab1 W
202e0 48 45 52 45 20 2b 20 2d 20 63 6f 6c 32 20 4e 4f  HERE + - col2 NO
202f0 54 20 49 4e 20 28 20 2b 20 63 6f 6c 32 20 2b 20  T IN ( + col2 + 
20300 31 32 2c 20 2d 20 63 6f 6c 31 2c 20 63 6f 6c 30  12, - col1, col0
20310 20 2b 20 2d 20 2d 20 63 6f 6c 32 20 2f 20 2d 20   + - - col2 / - 
20320 2b 20 32 35 2c 20 2d 20 43 41 53 54 20 28 20 4e  + 25, - CAST ( N
20330 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 2d 20  ULL AS REAL ) - 
20340 2b 20 38 35 2c 20 2d 20 2d 20 63 6f 6c 31 20 29  + 85, - - col1 )
20350 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
20360 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
20370 54 20 41 4c 4c 20 33 35 20 2d 20 32 32 20 41 53  T ALL 35 - 22 AS
20380 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
20390 0a 2d 2d 2d 2d 0d 0a 31 33 0d 0a 31 33 0d 0a 31  .----..13..13..1
203a0 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  3....query II ro
203b0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
203c0 53 54 49 4e 43 54 20 2b 20 39 38 2c 20 32 38 20  STINCT + 98, 28 
203d0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
203e0 31 0d 0a 2d 2d 2d 2d 0d 0a 39 38 0d 0a 32 38 0d  1..----..98..28.
203f0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
20400 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
20410 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
20420 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 30 37 0d  wsort label-707.
20430 0a 53 45 4c 45 43 54 20 41 4c 4c 20 4d 49 4e 28  .SELECT ALL MIN(
20440 20 2d 20 32 32 20 29 20 46 52 4f 4d 20 74 61 62   - 22 ) FROM tab
20450 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  2 AS cor0 CROSS 
20460 4a 4f 49 4e 20 74 61 62 32 20 41 53 20 63 6f 72  JOIN tab2 AS cor
20470 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32 0d 0a 0d 0a  1..----..-22....
20480 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
20490 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
204a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
204b0 61 62 65 6c 2d 37 30 37 0d 0a 53 45 4c 45 43 54  abel-707..SELECT
204c0 20 41 4c 4c 20 4d 49 4e 20 28 20 2d 20 32 32 20   ALL MIN ( - 22 
204d0 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  ) FROM tab2 AS c
204e0 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
204f0 61 62 32 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d  ab2 AS cor1..---
20500 2d 0d 0a 2d 32 32 0d 0a 0d 0a 73 6b 69 70 69 66  -..-22....skipif
20510 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
20520 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
20530 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
20540 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
20550 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  s..query II rows
20560 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20  ort..SELECT - - 
20570 32 2c 20 2d 20 28 20 2d 20 28 20 2b 20 39 33 20  2, - ( - ( + 93 
20580 29 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  ) ) col1 FROM ta
20590 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
205a0 0d 0a 32 0d 0a 39 33 0d 0a 32 0d 0a 39 33 0d 0a  ..2..93..2..93..
205b0 32 0d 0a 39 33 0d 0a 0d 0a 71 75 65 72 79 20 49  2..93....query I
205c0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
205d0 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20  T DISTINCT col1 
205e0 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 31 20 46 52  AS col2, col1 FR
205f0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
20600 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 35 31 0d 0a 36  .----..51..51..6
20610 37 0d 0a 36 37 0d 0a 37 37 0d 0a 37 37 0d 0a 0d  7..67..77..77...
20620 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
20630 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
20640 2b 20 35 20 41 53 20 63 6f 6c 30 2c 20 2d 20 63  + 5 AS col0, - c
20650 6f 6c 30 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 34  ol0 + col0 + + 4
20660 32 20 2b 20 28 20 63 6f 6c 30 20 29 20 2b 20 2b  2 + ( col0 ) + +
20670 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52   col2 AS col0 FR
20680 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
20690 0a 2d 2d 2d 2d 0d 0a 2d 35 0d 0a 31 30 34 0d 0a  .----..-5..104..
206a0 2d 35 0d 0a 31 33 39 0d 0a 2d 35 0d 0a 32 33 38  -5..139..-5..238
206b0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
206c0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20  ort..SELECT + + 
206d0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41  col2 FROM tab1 A
206e0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
206f0 20 28 20 4e 55 4c 4c 20 29 20 3e 3d 20 2d 20 2d   ( NULL ) >= - -
20700 20 63 6f 6c 30 20 2a 20 2b 20 2b 20 63 6f 6c 32   col0 * + + col2
20710 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
20720 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
20730 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
20740 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
20750 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 38 35 20   WHERE NOT - 85 
20760 2b 20 2d 20 63 6f 6c 32 20 3e 20 4e 55 4c 4c 0d  + - col2 > NULL.
20770 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
20780 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
20790 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
207a0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
207b0 6c 2d 37 31 33 0d 0a 53 45 4c 45 43 54 20 44 49  l-713..SELECT DI
207c0 53 54 49 4e 43 54 20 32 30 20 2a 20 2b 20 43 4f  STINCT 20 * + CO
207d0 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30  UNT( * ) AS col0
207e0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
207f0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 30 0d 0a 0d 0a  r0..----..60....
20800 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
20810 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
20820 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
20830 61 62 65 6c 2d 37 31 33 0d 0a 53 45 4c 45 43 54  abel-713..SELECT
20840 20 44 49 53 54 49 4e 43 54 20 32 30 20 2a 20 2b   DISTINCT 20 * +
20850 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
20860 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
20870 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 30  S cor0..----..60
20880 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
20890 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
208a0 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
208b0 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
208c0 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
208d0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
208e0 4c 45 43 54 20 2d 20 31 30 20 2b 20 2d 20 34 30  LECT - 10 + - 40
208f0 20 2b 20 2b 20 2d 20 28 20 2b 20 63 6f 6c 32 20   + + - ( + col2 
20900 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  ) col1 FROM tab0
20910 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20   WHERE NOT col0 
20920 2b 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a  + col0 IS NULL..
20930 2d 2d 2d 2d 0d 0a 2d 31 34 39 0d 0a 2d 36 30 0d  ----..-149..-60.
20940 0a 2d 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-97....onlyif m
20950 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
20960 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
20970 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
20980 2d 37 31 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -715..SELECT ALL
20990 20 2d 20 39 20 2b 20 43 4f 55 4e 54 28 20 2a 20   - 9 + COUNT( * 
209a0 29 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  ) FROM tab2 WHER
209b0 45 20 2d 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c  E - col0 IS NULL
209c0 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 73 6b  ..----..-9....sk
209d0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
209e0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
209f0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
20a00 65 6c 2d 37 31 35 0d 0a 53 45 4c 45 43 54 20 41  el-715..SELECT A
20a10 4c 4c 20 2d 20 39 20 2b 20 43 4f 55 4e 54 20 28  LL - 9 + COUNT (
20a20 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20 57   * ) FROM tab2 W
20a30 48 45 52 45 20 2d 20 63 6f 6c 30 20 49 53 20 4e  HERE - col0 IS N
20a40 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d  ULL..----..-9...
20a50 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
20a60 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
20a70 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
20a80 6f 72 74 20 6c 61 62 65 6c 2d 37 31 36 0d 0a 53  ort label-716..S
20a90 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28  ELECT ALL COUNT(
20aa0 20 2a 20 29 20 2a 20 2b 20 2d 20 43 4f 55 4e 54   * ) * + - COUNT
20ab0 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20  ( * ) FROM tab1 
20ac0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
20ad0 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
20ae0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
20af0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
20b00 6f 72 74 20 6c 61 62 65 6c 2d 37 31 36 0d 0a 53  ort label-716..S
20b10 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20  ELECT ALL COUNT 
20b20 28 20 2a 20 29 20 2a 20 2b 20 2d 20 43 4f 55 4e  ( * ) * + - COUN
20b30 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  T ( * ) FROM tab
20b40 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
20b50 0a 2d 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .-9....query I r
20b60 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 37  owsort..SELECT 7
20b70 38 20 2a 20 2b 20 28 20 2d 20 2b 20 35 33 20 29  8 * + ( - + 53 )
20b80 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
20b90 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 31 33 34 0d  r0..----..-4134.
20ba0 0a 2d 34 31 33 34 0d 0a 2d 34 31 33 34 0d 0a 0d  .-4134..-4134...
20bb0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
20bc0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
20bd0 54 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  T + col0 FROM ta
20be0 62 30 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  b0 cor0 WHERE NO
20bf0 54 20 28 20 2d 20 63 6f 6c 32 20 2f 20 2d 20 2b  T ( - col2 / - +
20c00 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c 20 29 0d   col0 IS NULL ).
20c10 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 38 37 0d 0a 39  .----..15..87..9
20c20 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  7....skipif post
20c30 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
20c40 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
20c50 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
20c60 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
20c70 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
20c80 45 4c 45 43 54 20 2b 20 28 20 36 34 20 29 20 2a  ELECT + ( 64 ) *
20c90 20 2d 20 63 6f 6c 31 20 63 6f 6c 31 20 46 52 4f   - col1 col1 FRO
20ca0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
20cb0 2d 2d 2d 2d 0d 0a 2d 33 32 36 34 0d 0a 2d 34 32  ----..-3264..-42
20cc0 38 38 0d 0a 2d 34 39 32 38 0d 0a 0d 0a 6f 6e 6c  88..-4928....onl
20cd0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
20ce0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
20cf0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
20d00 6c 61 62 65 6c 2d 37 32 30 0d 0a 53 45 4c 45 43  label-720..SELEC
20d10 54 20 41 4c 4c 20 2d 20 53 55 4d 28 20 44 49 53  T ALL - SUM( DIS
20d20 54 49 4e 43 54 20 2b 20 32 32 20 29 20 2a 20 43  TINCT + 22 ) * C
20d30 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c  OUNT( * ) AS col
20d40 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
20d50 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 36 0d 0a  or0..----..-66..
20d60 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
20d70 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
20d80 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
20d90 20 6c 61 62 65 6c 2d 37 32 30 0d 0a 53 45 4c 45   label-720..SELE
20da0 43 54 20 41 4c 4c 20 2d 20 53 55 4d 20 28 20 44  CT ALL - SUM ( D
20db0 49 53 54 49 4e 43 54 20 2b 20 32 32 20 29 20 2a  ISTINCT + 22 ) *
20dc0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
20dd0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
20de0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36  S cor0..----..-6
20df0 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  6....query I row
20e00 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
20e10 31 20 2b 20 2b 20 34 31 20 41 53 20 63 6f 6c 32  1 + + 41 AS col2
20e20 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20   FROM tab0 cor0 
20e30 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c  WHERE NOT ( NULL
20e40 20 4e 4f 54 20 49 4e 20 28 20 2b 20 28 20 2d 20   NOT IN ( + ( - 
20e50 2d 20 63 6f 6c 31 20 29 2c 20 2d 20 63 6f 6c 30  - col1 ), - col0
20e60 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75   ) )..----....qu
20e70 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
20e80 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 2a 20 2b  ELECT + col0 * +
20e90 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20   + col0 AS col0 
20ea0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
20eb0 0a 32 32 35 0d 0a 37 35 36 39 0d 0a 39 34 30 39  .225..7569..9409
20ec0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
20ed0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
20ee0 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
20ef0 4e 4f 54 20 2b 20 39 33 20 49 4e 20 28 20 2b 20  NOT + 93 IN ( + 
20f00 2b 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a  + col2 )..----..
20f10 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
20f20 20 74 6f 20 63 34 62 34 32 37 36 35 64 66 66 39   to c4b42765dff9
20f30 34 65 61 61 61 34 36 30 34 30 65 35 33 37 66 62  4eaaa46040e537fb
20f40 34 33 62 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20  43b7....query I 
20f50 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
20f60 41 4c 4c 20 2b 20 2b 20 63 6f 6c 32 20 2f 20 2b  ALL + + col2 / +
20f70 20 63 6f 6c 32 20 2b 20 2d 20 2d 20 28 20 2b 20   col2 + - - ( + 
20f80 63 6f 6c 31 20 29 20 2b 20 2b 20 2b 20 63 6f 6c  col1 ) + + + col
20f90 31 20 2a 20 32 30 20 41 53 20 63 6f 6c 31 20 46  1 * 20 AS col1 F
20fa0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
20fb0 20 57 48 45 52 45 20 63 6f 6c 31 20 3c 3e 20 2b   WHERE col1 <> +
20fc0 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d   + col1..----...
20fd0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
20fe0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
20ff0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
21000 6f 72 74 20 6c 61 62 65 6c 2d 37 32 35 0d 0a 53  ort label-725..S
21010 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 4d 41  ELECT ALL + + MA
21020 58 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f  X( DISTINCT + co
21030 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41  l2 ) FROM tab2 A
21040 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 38  S cor0..----..58
21050 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
21060 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
21070 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
21080 72 74 20 6c 61 62 65 6c 2d 37 32 35 0d 0a 53 45  rt label-725..SE
21090 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 4d 41 58  LECT ALL + + MAX
210a0 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f   ( DISTINCT + co
210b0 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41  l2 ) FROM tab2 A
210c0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 38  S cor0..----..58
210d0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
210e0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
210f0 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
21100 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
21110 61 62 65 6c 2d 37 32 36 0d 0a 53 45 4c 45 43 54  abel-726..SELECT
21120 20 41 4c 4c 20 2d 20 2b 20 63 6f 6c 32 20 2b 20   ALL - + col2 + 
21130 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  + CAST( NULL AS 
21140 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 30  SIGNED ) AS col0
21150 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
21160 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
21170 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  NULL..NULL....sk
21180 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
21190 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
211a0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
211b0 65 6c 2d 37 32 36 0d 0a 53 45 4c 45 43 54 20 41  el-726..SELECT A
211c0 4c 4c 20 2d 20 2b 20 63 6f 6c 32 20 2b 20 2b 20  LL - + col2 + + 
211d0 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
211e0 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 30  NTEGER ) AS col0
211f0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
21200 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
21210 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e  NULL..NULL....on
21220 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
21230 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
21240 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
21250 20 6c 61 62 65 6c 2d 37 32 37 0d 0a 53 45 4c 45   label-727..SELE
21260 43 54 20 2d 20 53 55 4d 28 20 44 49 53 54 49 4e  CT - SUM( DISTIN
21270 43 54 20 2d 20 63 6f 6c 30 20 29 20 2b 20 2d 20  CT - col0 ) + - 
21280 28 20 53 55 4d 28 20 2d 20 63 6f 6c 31 20 29 20  ( SUM( - col1 ) 
21290 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  ) FROM tab0 AS c
212a0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 30 32 0d 0a  or0..----..302..
212b0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
212c0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
212d0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
212e0 20 6c 61 62 65 6c 2d 37 32 37 0d 0a 53 45 4c 45   label-727..SELE
212f0 43 54 20 2d 20 53 55 4d 20 28 20 44 49 53 54 49  CT - SUM ( DISTI
21300 4e 43 54 20 2d 20 63 6f 6c 30 20 29 20 2b 20 2d  NCT - col0 ) + -
21310 20 28 20 53 55 4d 20 28 20 2d 20 63 6f 6c 31 20   ( SUM ( - col1 
21320 29 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ) ) FROM tab0 AS
21330 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 30 32   cor0..----..302
21340 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
21350 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
21360 49 4e 43 54 20 2d 20 63 6f 6c 32 20 2b 20 36 36  INCT - col2 + 66
21370 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
21380 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
21390 0d 0a 32 36 0d 0a 34 33 0d 0a 38 0d 0a 0d 0a 71  ..26..43..8....q
213a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
213b0 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 46 52  SELECT - col0 FR
213c0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
213d0 57 48 45 52 45 20 63 6f 6c 30 20 3c 3d 20 4e 55  WHERE col0 <= NU
213e0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  LL..----....only
213f0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
21400 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
21410 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
21420 61 62 65 6c 2d 37 33 30 0d 0a 53 45 4c 45 43 54  abel-730..SELECT
21430 20 41 4c 4c 20 2b 20 36 33 20 2b 20 2d 20 2d 20   ALL + 63 + - - 
21440 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f  COUNT( * ) AS co
21450 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  l2 FROM tab1 cor
21460 30 0d 0a 2d 2d 2d 2d 0d 0a 36 36 0d 0a 0d 0a 73  0..----..66....s
21470 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
21480 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
21490 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
214a0 62 65 6c 2d 37 33 30 0d 0a 53 45 4c 45 43 54 20  bel-730..SELECT 
214b0 41 4c 4c 20 2b 20 36 33 20 2b 20 2d 20 2d 20 43  ALL + 63 + - - C
214c0 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
214d0 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  l2 FROM tab1 cor
214e0 30 0d 0a 2d 2d 2d 2d 0d 0a 36 36 0d 0a 0d 0a 71  0..----..66....q
214f0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
21500 0a 53 45 4c 45 43 54 20 63 6f 6c 32 2c 20 37 35  .SELECT col2, 75
21510 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
21520 0d 0a 31 30 0d 0a 37 35 0d 0a 34 37 0d 0a 37 35  ..10..75..47..75
21530 0d 0a 39 39 0d 0a 37 35 0d 0a 0d 0a 6f 6e 6c 79  ..99..75....only
21540 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
21550 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20  syntax: DECIMAL 
21560 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
21570 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 33  rowsort label-73
21580 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  2..SELECT ALL - 
21590 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44 45  CAST( NULL AS DE
215a0 43 49 4d 41 4c 20 29 20 2b 20 2d 20 28 20 34 32  CIMAL ) + - ( 42
215b0 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
215c0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab1..----..NULL
215d0 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
215e0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
215f0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
21600 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
21610 61 62 65 6c 2d 37 33 32 0d 0a 53 45 4c 45 43 54  abel-732..SELECT
21620 20 41 4c 4c 20 2d 20 43 41 53 54 20 28 20 4e 55   ALL - CAST ( NU
21630 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 2b 20 2d  LL AS REAL ) + -
21640 20 28 20 34 32 20 29 20 41 53 20 63 6f 6c 30 20   ( 42 ) AS col0 
21650 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
21660 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
21670 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  L....query II ro
21680 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
21690 53 54 49 4e 43 54 20 63 6f 6c 32 20 41 53 20 63  STINCT col2 AS c
216a0 6f 6c 32 2c 20 63 6f 6c 32 20 41 53 20 63 6f 6c  ol2, col2 AS col
216b0 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
216c0 2d 0d 0a 31 30 0d 0a 31 30 0d 0a 34 37 0d 0a 34  -..10..10..47..4
216d0 37 0d 0a 39 39 0d 0a 39 39 0d 0a 0d 0a 71 75 65  7..99..99....que
216e0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
216f0 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
21700 62 30 20 57 48 45 52 45 20 39 32 20 49 53 20 4e  b0 WHERE 92 IS N
21710 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
21720 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
21730 4c 45 43 54 20 41 4c 4c 20 28 20 33 37 20 29 20  LECT ALL ( 37 ) 
21740 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
21750 32 0d 0a 2d 2d 2d 2d 0d 0a 33 37 0d 0a 33 37 0d  2..----..37..37.
21760 0a 33 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .37....onlyif my
21770 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
21780 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
21790 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
217a0 37 33 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  736..SELECT ALL 
217b0 4d 41 58 28 20 41 4c 4c 20 2b 20 2d 20 34 31 20  MAX( ALL + - 41 
217c0 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
217d0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 31 0d 0a  ab1..----..-41..
217e0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
217f0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
21800 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
21810 20 6c 61 62 65 6c 2d 37 33 36 0d 0a 53 45 4c 45   label-736..SELE
21820 43 54 20 41 4c 4c 20 4d 41 58 20 28 20 41 4c 4c  CT ALL MAX ( ALL
21830 20 2b 20 2d 20 34 31 20 29 20 41 53 20 63 6f 6c   + - 41 ) AS col
21840 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
21850 2d 0d 0a 2d 34 31 0d 0a 0d 0a 71 75 65 72 79 20  -..-41....query 
21860 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
21870 54 20 41 4c 4c 20 2b 20 36 32 20 2b 20 2d 20 63  T ALL + 62 + - c
21880 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol1 AS col1 FROM
21890 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
218a0 2d 2d 2d 0d 0a 31 35 0d 0a 34 38 0d 0a 35 37 0d  ---..15..48..57.
218b0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
218c0 72 74 0d 0a 53 45 4c 45 43 54 20 32 32 20 2d 20  rt..SELECT 22 - 
218d0 2d 20 33 36 20 46 52 4f 4d 20 74 61 62 31 20 41  - 36 FROM tab1 A
218e0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 38  S cor0..----..58
218f0 0d 0a 35 38 0d 0a 35 38 0d 0a 0d 0a 71 75 65 72  ..58..58....quer
21900 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
21910 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a  ELECT DISTINCT *
21920 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
21930 72 30 20 57 48 45 52 45 20 38 36 20 2a 20 2b 20  r0 WHERE 86 * + 
21940 32 30 20 2a 20 2d 20 63 6f 6c 32 20 2a 20 2d 20  20 * - col2 * - 
21950 37 30 20 3e 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  70 >= NULL..----
21960 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
21970 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
21980 49 4e 43 54 20 2b 20 2d 20 63 6f 6c 30 20 2b 20  INCT + - col0 + 
21990 2d 20 63 6f 6c 31 20 2a 20 2d 20 32 32 20 41 53  - col1 * - 22 AS
219a0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
219b0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  AS cor0..----..2
219c0 35 0d 0a 32 35 37 0d 0a 39 34 33 0d 0a 0d 0a 6f  5..257..943....o
219d0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
219e0 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
219f0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
21a00 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
21a10 6c 2d 37 34 31 0d 0a 53 45 4c 45 43 54 20 44 49  l-741..SELECT DI
21a20 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
21a30 62 30 20 57 48 45 52 45 20 2d 20 2d 20 43 41 53  b0 WHERE - - CAS
21a40 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
21a50 44 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  D ) IS NOT NULL.
21a60 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
21a70 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
21a80 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
21a90 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
21aa0 37 34 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  741..SELECT DIST
21ab0 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  INCT * FROM tab0
21ac0 20 57 48 45 52 45 20 2d 20 2d 20 43 41 53 54 20   WHERE - - CAST 
21ad0 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
21ae0 52 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  R ) IS NOT NULL.
21af0 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
21b00 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
21b10 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
21b20 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
21b30 6c 2d 37 34 32 0d 0a 53 45 4c 45 43 54 20 44 49  l-742..SELECT DI
21b40 53 54 49 4e 43 54 20 53 55 4d 28 20 2d 20 33 36  STINCT SUM( - 36
21b50 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
21b60 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
21b70 74 61 62 30 20 41 53 20 63 6f 72 31 0d 0a 2d 2d  tab0 AS cor1..--
21b80 2d 2d 0d 0a 2d 33 32 34 0d 0a 0d 0a 73 6b 69 70  --..-324....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 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
21bc0 2d 37 34 32 0d 0a 53 45 4c 45 43 54 20 44 49 53  -742..SELECT DIS
21bd0 54 49 4e 43 54 20 53 55 4d 20 28 20 2d 20 33 36  TINCT SUM ( - 36
21be0 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
21bf0 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
21c00 74 61 62 30 20 41 53 20 63 6f 72 31 0d 0a 2d 2d  tab0 AS cor1..--
21c10 2d 2d 0d 0a 2d 33 32 34 0d 0a 0d 0a 6f 6e 6c 79  --..-324....only
21c20 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
21c30 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20  syntax: DECIMAL 
21c40 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
21c50 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
21c60 37 34 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  743..SELECT ALL 
21c70 2a 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  * FROM tab1 cor0
21c80 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c   WHERE NOT ( NUL
21c90 4c 20 29 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  L ) NOT BETWEEN 
21ca0 4e 55 4c 4c 20 41 4e 44 20 2b 20 43 41 53 54 28  NULL AND + CAST(
21cb0 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c   NULL AS DECIMAL
21cc0 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70   )..----....skip
21cd0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
21ce0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
21cf0 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62   III rowsort lab
21d00 65 6c 2d 37 34 33 0d 0a 53 45 4c 45 43 54 20 41  el-743..SELECT A
21d10 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 63  LL * FROM tab1 c
21d20 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20  or0 WHERE NOT ( 
21d30 4e 55 4c 4c 20 29 20 4e 4f 54 20 42 45 54 57 45  NULL ) NOT BETWE
21d40 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2b 20 43 41  EN NULL AND + CA
21d50 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41  ST ( NULL AS REA
21d60 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  L )..----....que
21d70 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
21d80 4c 45 43 54 20 2d 20 28 20 2d 20 2d 20 63 6f 6c  LECT - ( - - col
21d90 30 20 29 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  0 ) FROM tab1 co
21da0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 2d  r0..----..-51..-
21db0 38 35 0d 0a 2d 39 31 0d 0a 0d 0a 6f 6e 6c 79 69  85..-91....onlyi
21dc0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
21dd0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
21de0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
21df0 62 65 6c 2d 37 34 35 0d 0a 53 45 4c 45 43 54 20  bel-745..SELECT 
21e00 41 4c 4c 20 4d 41 58 28 20 41 4c 4c 20 2d 20 37  ALL MAX( ALL - 7
21e10 32 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  2 ) AS col2 FROM
21e20 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
21e30 2d 2d 2d 0d 0a 2d 37 32 0d 0a 0d 0a 73 6b 69 70  ---..-72....skip
21e40 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
21e50 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
21e60 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
21e70 2d 37 34 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -745..SELECT ALL
21e80 20 4d 41 58 20 28 20 41 4c 4c 20 2d 20 37 32 20   MAX ( ALL - 72 
21e90 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
21ea0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
21eb0 2d 0d 0a 2d 37 32 0d 0a 0d 0a 6f 6e 6c 79 69 66  -..-72....onlyif
21ec0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
21ed0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
21ee0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
21ef0 65 6c 2d 37 34 36 0d 0a 53 45 4c 45 43 54 20 44  el-746..SELECT D
21f00 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 28  ISTINCT - COUNT(
21f10 20 2a 20 29 20 2a 20 2b 20 35 30 20 2b 20 2d 20   * ) * + 50 + - 
21f20 4d 41 58 28 20 41 4c 4c 20 63 6f 6c 32 20 29 20  MAX( ALL col2 ) 
21f30 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
21f40 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  S cor0..----..-2
21f50 30 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  08....skipif mys
21f60 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
21f70 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  ble..skipif post
21f80 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
21f90 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
21fa0 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
21fb0 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
21fc0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
21fd0 62 65 6c 2d 37 34 36 0d 0a 53 45 4c 45 43 54 20  bel-746..SELECT 
21fe0 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54  DISTINCT - COUNT
21ff0 20 28 20 2a 20 29 20 2a 20 2b 20 35 30 20 2b 20   ( * ) * + 50 + 
22000 2d 20 4d 41 58 20 28 20 41 4c 4c 20 63 6f 6c 32  - MAX ( ALL col2
22010 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   ) col0 FROM tab
22020 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
22030 0a 2d 32 30 38 0d 0a 0d 0a 71 75 65 72 79 20 49  .-208....query I
22040 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
22050 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
22060 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
22070 20 4e 4f 54 20 2b 20 31 37 20 49 53 20 4e 4f 54   NOT + 17 IS NOT
22080 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   NULL..----....o
22090 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
220a0 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
220b0 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
220c0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
220d0 37 34 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  748..SELECT ALL 
220e0 38 31 20 2a 20 2d 20 34 37 20 2d 20 28 20 2d 20  81 * - 47 - ( - 
220f0 2d 20 28 20 2d 20 2d 20 63 6f 6c 32 20 29 20 29  - ( - - col2 ) )
22100 20 44 49 56 20 2d 20 63 6f 6c 32 20 41 53 20 63   DIV - col2 AS c
22110 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
22120 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 38   cor0..----..-38
22130 30 36 0d 0a 2d 33 38 30 36 0d 0a 2d 33 38 30 36  06..-3806..-3806
22140 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
22150 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
22160 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
22170 72 74 20 6c 61 62 65 6c 2d 37 34 38 0d 0a 53 45  rt label-748..SE
22180 4c 45 43 54 20 41 4c 4c 20 38 31 20 2a 20 2d 20  LECT ALL 81 * - 
22190 34 37 20 2d 20 28 20 2d 20 2d 20 28 20 2d 20 2d  47 - ( - - ( - -
221a0 20 63 6f 6c 32 20 29 20 29 20 2f 20 2d 20 63 6f   col2 ) ) / - co
221b0 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l2 AS col0 FROM 
221c0 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
221d0 2d 2d 0d 0a 2d 33 38 30 36 0d 0a 2d 33 38 30 36  --..-3806..-3806
221e0 0d 0a 2d 33 38 30 36 0d 0a 0d 0a 71 75 65 72 79  ..-3806....query
221f0 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
22200 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 2a  ECT ALL + col0 *
22210 20 33 31 20 2a 20 63 6f 6c 31 20 41 53 20 63 6f   31 * col1 AS co
22220 6c 30 2c 20 2b 20 39 31 20 46 52 4f 4d 20 74 61  l0, + 91 FROM ta
22230 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
22240 0d 0a 31 35 32 37 36 38 0d 0a 39 31 0d 0a 31 35  ..152768..91..15
22250 35 37 37 35 0d 0a 39 31 0d 0a 37 32 37 32 36 0d  5775..91..72726.
22260 0a 39 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  .91....query III
22270 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
22280 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72   * FROM tab1 cor
22290 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30  0 WHERE NOT col0
222a0 20 2a 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e   * col2 IS NOT N
222b0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ULL..----....onl
222c0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
222d0 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c   syntax: DECIMAL
222e0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
222f0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
22300 35 31 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c  51..SELECT + col
22310 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  1 AS col2 FROM t
22320 61 62 30 20 63 6f 72 30 20 57 48 45 52 45 20 4e  ab0 cor0 WHERE N
22330 4f 54 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20  OT - CAST( NULL 
22340 41 53 20 44 45 43 49 4d 41 4c 20 29 20 49 53 20  AS DECIMAL ) IS 
22350 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b  NULL..----....sk
22360 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
22370 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
22380 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
22390 65 6c 2d 37 35 31 0d 0a 53 45 4c 45 43 54 20 2b  el-751..SELECT +
223a0 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52   col1 AS col2 FR
223b0 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45  OM tab0 cor0 WHE
223c0 52 45 20 4e 4f 54 20 2d 20 43 41 53 54 20 28 20  RE NOT - CAST ( 
223d0 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 49  NULL AS REAL ) I
223e0 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  S NULL..----....
223f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
22400 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31  .SELECT ALL col1
22410 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
22420 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
22430 20 4e 55 4c 4c 20 3d 20 63 6f 6c 31 0d 0a 2d 2d   NULL = col1..--
22440 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
22450 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
22460 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
22470 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
22480 20 6c 61 62 65 6c 2d 37 35 33 0d 0a 53 45 4c 45   label-753..SELE
22490 43 54 20 2d 20 63 6f 6c 32 20 44 49 56 20 2d 20  CT - col2 DIV - 
224a0 37 30 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  70 FROM tab1 cor
224b0 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 31  0..----..0..0..1
224c0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
224d0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
224e0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
224f0 72 74 20 6c 61 62 65 6c 2d 37 35 33 0d 0a 53 45  rt label-753..SE
22500 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2f 20 2d 20  LECT - col2 / - 
22510 37 30 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  70 FROM tab1 cor
22520 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 31  0..----..0..0..1
22530 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
22540 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
22550 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
22560 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
22570 61 62 65 6c 2d 37 35 34 0d 0a 53 45 4c 45 43 54  abel-754..SELECT
22580 20 63 6f 6c 30 20 44 49 56 20 63 6f 6c 31 20 2b   col0 DIV col1 +
22590 20 2b 20 2b 20 63 6f 6c 32 20 2d 20 2d 20 2d 20   + + col2 - - - 
225a0 63 6f 6c 30 20 2b 20 2d 20 33 33 20 41 53 20 63  col0 + - 33 AS c
225b0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48  ol2 FROM tab1 WH
225c0 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20  ERE NOT NULL IS 
225d0 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
225e0 2d 34 32 0d 0a 2d 35 35 0d 0a 31 35 0d 0a 0d 0a  -42..-55..15....
225f0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
22600 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
22610 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
22620 61 62 65 6c 2d 37 35 34 0d 0a 53 45 4c 45 43 54  abel-754..SELECT
22630 20 63 6f 6c 30 20 2f 20 63 6f 6c 31 20 2b 20 2b   col0 / col1 + +
22640 20 2b 20 63 6f 6c 32 20 2d 20 2d 20 2d 20 63 6f   + col2 - - - co
22650 6c 30 20 2b 20 2d 20 33 33 20 41 53 20 63 6f 6c  l0 + - 33 AS col
22660 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  2 FROM tab1 WHER
22670 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f  E NOT NULL IS NO
22680 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 34  T NULL..----..-4
22690 32 0d 0a 2d 35 35 0d 0a 31 35 0d 0a 0d 0a 71 75  2..-55..15....qu
226a0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
226b0 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
226c0 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f  ab0 WHERE NOT co
226d0 6c 32 20 2a 20 2b 20 2d 20 34 38 20 49 53 20 4e  l2 * + - 48 IS N
226e0 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  OT NULL..----...
226f0 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
22700 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
22710 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
22720 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
22730 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
22740 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
22750 54 20 28 20 2d 20 2d 20 63 6f 6c 32 20 29 20 2a  T ( - - col2 ) *
22760 20 2d 20 63 6f 6c 31 20 63 6f 6c 31 20 46 52 4f   - col1 col1 FRO
22770 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab1..----..-1
22780 33 34 34 0d 0a 2d 32 39 35 0d 0a 2d 33 31 39 36  344..-295..-3196
22790 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
227a0 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
227b0 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
227c0 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
227d0 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
227e0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
227f0 4c 45 43 54 20 28 20 2d 20 2b 20 63 6f 6c 31 20  LECT ( - + col1 
22800 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  ) col1 FROM tab1
22810 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
22820 2d 31 34 0d 0a 2d 34 37 0d 0a 2d 35 0d 0a 0d 0a  -14..-47..-5....
22830 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
22840 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
22850 54 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32  T + col0 AS col2
22860 2c 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  , - col2 FROM ta
22870 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
22880 0d 0a 34 36 0d 0a 2d 32 33 0d 0a 36 34 0d 0a 2d  ..46..-23..64..-
22890 34 30 0d 0a 37 35 0d 0a 2d 35 38 0d 0a 0d 0a 6f  40..75..-58....o
228a0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
228b0 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
228c0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
228d0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
228e0 37 35 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  759..SELECT DIST
228f0 49 4e 43 54 20 43 41 53 54 28 20 2d 20 38 31 20  INCT CAST( - 81 
22900 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63  AS SIGNED ) AS c
22910 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
22920 2d 2d 2d 0d 0a 2d 38 31 0d 0a 0d 0a 73 6b 69 70  ---..-81....skip
22930 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
22940 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
22950 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
22960 2d 37 35 39 0d 0a 53 45 4c 45 43 54 20 44 49 53  -759..SELECT DIS
22970 54 49 4e 43 54 20 43 41 53 54 20 28 20 2d 20 38  TINCT CAST ( - 8
22980 31 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41  1 AS INTEGER ) A
22990 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
229a0 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 31 0d 0a 0d 0a 6f  ..----..-81....o
229b0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
229c0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
229d0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
229e0 72 74 20 6c 61 62 65 6c 2d 37 36 30 0d 0a 53 45  rt label-760..SE
229f0 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20  LECT COUNT( * ) 
22a00 2a 20 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  * - + COUNT( * )
22a10 20 63 6f 6c 32 2c 20 34 35 20 41 53 20 63 6f 6c   col2, 45 AS col
22a20 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
22a30 2d 0d 0a 2d 39 0d 0a 34 35 0d 0a 0d 0a 73 6b 69  -..-9..45....ski
22a40 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
22a50 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70  compatible..skip
22a60 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
22a70 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
22a80 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
22a90 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
22aa0 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  mns..query II ro
22ab0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 36 30 0d  wsort label-760.
22ac0 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20  .SELECT COUNT ( 
22ad0 2a 20 29 20 2a 20 2d 20 2b 20 43 4f 55 4e 54 20  * ) * - + COUNT 
22ae0 28 20 2a 20 29 20 63 6f 6c 32 2c 20 34 35 20 41  ( * ) col2, 45 A
22af0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
22b00 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 34 35 0d 0a  ..----..-9..45..
22b10 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
22b20 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
22b30 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
22b40 73 6f 72 74 20 6c 61 62 65 6c 2d 37 36 31 0d 0a  sort label-761..
22b50 53 45 4c 45 43 54 20 2d 20 4d 41 58 28 20 41 4c  SELECT - MAX( AL
22b60 4c 20 2b 20 2b 20 63 6f 6c 30 20 29 20 41 53 20  L + + col0 ) AS 
22b70 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
22b80 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37  S cor0..----..-7
22b90 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  5....skipif mysq
22ba0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
22bb0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
22bc0 6f 72 74 20 6c 61 62 65 6c 2d 37 36 31 0d 0a 53  ort label-761..S
22bd0 45 4c 45 43 54 20 2d 20 4d 41 58 20 28 20 41 4c  ELECT - MAX ( AL
22be0 4c 20 2b 20 2b 20 63 6f 6c 30 20 29 20 41 53 20  L + + col0 ) AS 
22bf0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
22c00 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37  S cor0..----..-7
22c10 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  5....onlyif mysq
22c20 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
22c30 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
22c40 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
22c50 6c 61 62 65 6c 2d 37 36 32 0d 0a 53 45 4c 45 43  label-762..SELEC
22c60 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 2b 20 63  T ALL + col1 + c
22c70 6f 6c 32 20 44 49 56 20 2d 20 63 6f 6c 30 20 41  ol2 DIV - col0 A
22c80 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
22c90 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
22ca0 30 0d 0a 32 31 0d 0a 37 38 0d 0a 0d 0a 73 6b 69  0..21..78....ski
22cb0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
22cc0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
22cd0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
22ce0 6c 2d 37 36 32 0d 0a 53 45 4c 45 43 54 20 41 4c  l-762..SELECT AL
22cf0 4c 20 2b 20 63 6f 6c 31 20 2b 20 63 6f 6c 32 20  L + col1 + col2 
22d00 2f 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30  / - col0 AS col0
22d10 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
22d20 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 32 31 0d  r0..----..0..21.
22d30 0a 37 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .78....onlyif my
22d40 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
22d50 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
22d60 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
22d70 72 74 20 6c 61 62 65 6c 2d 37 36 33 0d 0a 53 45  rt label-763..SE
22d80 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 63 6f 6c  LECT ALL - - col
22d90 32 20 2b 20 2d 20 2d 20 63 6f 6c 30 20 41 53 20  2 + - - col0 AS 
22da0 63 6f 6c 31 2c 20 43 41 53 54 28 20 4e 55 4c 4c  col1, CAST( NULL
22db0 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20   AS SIGNED ) AS 
22dc0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41  col2 FROM tab1 A
22dd0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34  S cor0..----..14
22de0 34 0d 0a 4e 55 4c 4c 0d 0a 31 34 37 0d 0a 4e 55  4..NULL..147..NU
22df0 4c 4c 0d 0a 31 35 39 0d 0a 4e 55 4c 4c 0d 0a 0d  LL..159..NULL...
22e00 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
22e10 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
22e20 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
22e30 20 6c 61 62 65 6c 2d 37 36 33 0d 0a 53 45 4c 45   label-763..SELE
22e40 43 54 20 41 4c 4c 20 2d 20 2d 20 63 6f 6c 32 20  CT ALL - - col2 
22e50 2b 20 2d 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f  + - - col0 AS co
22e60 6c 31 2c 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  l1, CAST ( NULL 
22e70 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20  AS INTEGER ) AS 
22e80 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41  col2 FROM tab1 A
22e90 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34  S cor0..----..14
22ea0 34 0d 0a 4e 55 4c 4c 0d 0a 31 34 37 0d 0a 4e 55  4..NULL..147..NU
22eb0 4c 4c 0d 0a 31 35 39 0d 0a 4e 55 4c 4c 0d 0a 0d  LL..159..NULL...
22ec0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
22ed0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63  ..SELECT ALL - c
22ee0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
22ef0 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 28 20   cor0 WHERE + ( 
22f00 2d 20 2d 20 28 20 2d 20 63 6f 6c 31 20 29 20 29  - - ( - col1 ) )
22f10 20 2b 20 2d 20 32 34 20 49 53 20 4e 55 4c 4c 0d   + - 24 IS NULL.
22f20 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
22f30 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
22f40 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41  CT * FROM tab0 A
22f50 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e  S cor0 WHERE ( N
22f60 55 4c 4c 20 29 20 3e 3d 20 2b 20 2d 20 63 6f 6c  ULL ) >= + - col
22f70 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  1..----....query
22f80 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
22f90 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
22fa0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 63   AS cor0 WHERE c
22fb0 6f 6c 30 20 2b 20 2d 20 63 6f 6c 31 20 4e 4f 54  ol0 + - col1 NOT
22fc0 20 49 4e 20 28 20 32 33 2c 20 2d 20 28 20 2b 20   IN ( 23, - ( + 
22fd0 63 6f 6c 32 20 29 20 2d 20 2b 20 38 37 20 2a 20  col2 ) - + 87 * 
22fe0 36 39 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  69 )..----..9 va
22ff0 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
23000 63 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61  c4b42765dff94eaa
23010 61 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37  a46040e537fb43b7
23020 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
23030 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
23040 49 4e 43 54 20 28 20 2b 20 63 6f 6c 30 20 29 20  INCT ( + col0 ) 
23050 2b 20 33 30 20 41 53 20 63 6f 6c 31 20 46 52 4f  + 30 AS col1 FRO
23060 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
23070 2d 2d 2d 2d 0d 0a 31 31 35 0d 0a 31 32 31 0d 0a  ----..115..121..
23080 38 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  81....query I ro
23090 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
230a0 6c 32 20 2a 20 36 36 20 2b 20 34 30 20 2d 20 2d  l2 * 66 + 40 - -
230b0 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52   col2 AS col1 FR
230c0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33  OM tab1..----..3
230d0 39 39 33 0d 0a 34 35 39 36 0d 0a 36 34 37 32 0d  993..4596..6472.
230e0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
230f0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
23100 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 63  ROM tab2 WHERE c
23110 6f 6c 30 20 2a 20 2d 20 34 33 20 2a 20 2d 20 63  ol0 * - 43 * - c
23120 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ol1 IS NOT NULL.
23130 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
23140 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39  hashing to 75c99
23150 38 61 61 35 33 61 63 38 33 32 31 38 63 62 66 32  8aa53ac83218cbf2
23160 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 71  feb962d0a49....q
23170 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
23180 53 45 4c 45 43 54 20 63 6f 6c 32 20 2b 20 2b 20  SELECT col2 + + 
23190 2d 20 36 32 20 41 53 20 63 6f 6c 30 20 46 52 4f  - 62 AS col0 FRO
231a0 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  M tab1..----..-3
231b0 0d 0a 33 34 0d 0a 36 0d 0a 0d 0a 71 75 65 72 79  ..34..6....query
231c0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
231d0 43 54 20 44 49 53 54 49 4e 43 54 20 35 35 20 2d  CT DISTINCT 55 -
231e0 20 38 39 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   89 AS col1 FROM
231f0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 34   tab1..----..-34
23200 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
23210 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31  ort..SELECT col1
23220 20 2b 20 28 20 2b 20 2b 20 31 37 20 29 20 2b 20   + ( + + 17 ) + 
23230 2d 20 38 36 20 46 52 4f 4d 20 74 61 62 32 0d 0a  - 86 FROM tab2..
23240 2d 2d 2d 2d 0d 0a 2d 31 38 0d 0a 2d 32 0d 0a 38  ----..-18..-2..8
23250 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
23260 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
23270 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
23280 2b 20 63 6f 6c 30 20 4e 4f 54 20 42 45 54 57 45  + col0 NOT BETWE
23290 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2b 20 2d 20  EN NULL AND + - 
232a0 63 6f 6c 30 20 2a 20 39 35 20 2b 20 2b 20 63 6f  col0 * 95 + + co
232b0 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  l2..----..9 valu
232c0 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36  es hashing to c6
232d0 63 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63  c0a4111b36d04dbc
232e0 38 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a  811a11e4d54cad..
232f0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
23300 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
23310 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
23320 73 6f 72 74 20 6c 61 62 65 6c 2d 37 37 34 0d 0a  sort label-774..
23330 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
23340 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2b 20 2b  COUNT( * ) + + +
23350 20 4d 49 4e 28 20 2d 20 2b 20 63 6f 6c 30 20 29   MIN( - + col0 )
23360 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
23370 0d 0a 2d 38 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-88....skipif 
23380 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
23390 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
233a0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 37  rowsort label-77
233b0 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  4..SELECT DISTIN
233c0 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b  CT COUNT ( * ) +
233d0 20 2b 20 2b 20 4d 49 4e 20 28 20 2d 20 2b 20 63   + + MIN ( - + c
233e0 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 31 0d  ol0 ) FROM tab1.
233f0 0a 2d 2d 2d 2d 0d 0a 2d 38 38 0d 0a 0d 0a 71 75  .----..-88....qu
23400 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
23410 45 4c 45 43 54 20 2b 20 28 20 2b 20 35 30 20 29  ELECT + ( + 50 )
23420 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
23430 0d 0a 35 30 0d 0a 35 30 0d 0a 35 30 0d 0a 0d 0a  ..50..50..50....
23440 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
23450 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
23460 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
23470 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62   III rowsort lab
23480 65 6c 2d 37 37 36 0d 0a 53 45 4c 45 43 54 20 41  el-776..SELECT A
23490 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41  LL * FROM tab2 A
234a0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
234b0 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20 34 34   NULL BETWEEN 44
234c0 20 2a 20 2d 20 2b 20 43 41 53 54 28 20 4e 55 4c   * - + CAST( NUL
234d0 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20  L AS SIGNED ) * 
234e0 2d 20 63 6f 6c 32 20 41 4e 44 20 2b 20 2b 20 63  - col2 AND + + c
234f0 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  ol0..----....ski
23500 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
23510 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
23520 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
23530 62 65 6c 2d 37 37 36 0d 0a 53 45 4c 45 43 54 20  bel-776..SELECT 
23540 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ALL * FROM tab2 
23550 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
23560 54 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20 34  T NULL BETWEEN 4
23570 34 20 2a 20 2d 20 2b 20 43 41 53 54 20 28 20 4e  4 * - + CAST ( N
23580 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
23590 20 2a 20 2d 20 63 6f 6c 32 20 41 4e 44 20 2b 20   * - col2 AND + 
235a0 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  + col0..----....
235b0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
235c0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63  ..SELECT ALL + c
235d0 6f 6c 30 20 2a 20 2b 20 63 6f 6c 30 20 41 53 20  ol0 * + col0 AS 
235e0 63 6f 6c 30 2c 20 63 6f 6c 32 20 2b 20 2b 20 63  col0, col2 + + c
235f0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
23600 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 31   cor0..----..211
23610 36 0d 0a 37 34 0d 0a 34 30 39 36 0d 0a 31 31 37  6..74..4096..117
23620 0d 0a 35 36 32 35 0d 0a 31 32 35 0d 0a 0d 0a 6f  ..5625..125....o
23630 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
23640 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
23650 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
23660 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
23670 37 37 38 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20  778..SELECT + + 
23680 43 41 53 54 28 20 2b 20 2d 20 63 6f 6c 32 20 41  CAST( + - col2 A
23690 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f  S SIGNED ) AS co
236a0 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
236b0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d  cor0..----..-23.
236c0 0a 2d 34 30 0d 0a 2d 35 38 0d 0a 0d 0a 73 6b 69  .-40..-58....ski
236d0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
236e0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
236f0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
23700 6c 2d 37 37 38 0d 0a 53 45 4c 45 43 54 20 2b 20  l-778..SELECT + 
23710 2b 20 43 41 53 54 20 28 20 2b 20 2d 20 63 6f 6c  + CAST ( + - col
23720 32 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41  2 AS INTEGER ) A
23730 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
23740 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
23750 2d 32 33 0d 0a 2d 34 30 0d 0a 2d 35 38 0d 0a 0d  -23..-40..-58...
23760 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
23770 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20  ..SELECT - col1 
23780 2a 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c  * + col0 + + col
23790 32 20 2a 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 2b  2 * + - col0 * +
237a0 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52   col2 AS col2 FR
237b0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
237c0 0a 2d 2d 2d 2d 0d 0a 2d 31 30 37 33 32 38 0d 0a  .----..-107328..
237d0 2d 32 35 37 33 32 35 0d 0a 2d 32 36 36 38 30 0d  -257325..-26680.
237e0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
237f0 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 39  rt..SELECT + + 9
23800 34 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  4 FROM tab0 cor0
23810 0d 0a 2d 2d 2d 2d 0d 0a 39 34 0d 0a 39 34 0d 0a  ..----..94..94..
23820 39 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  94....onlyif mys
23830 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
23840 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
23850 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
23860 38 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  81..SELECT DISTI
23870 4e 43 54 20 43 4f 55 4e 54 28 20 2d 20 36 30 20  NCT COUNT( - 60 
23880 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
23890 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a  ab2..----..3....
238a0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
238b0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
238c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
238d0 61 62 65 6c 2d 37 38 31 0d 0a 53 45 4c 45 43 54  abel-781..SELECT
238e0 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 20   DISTINCT COUNT 
238f0 28 20 2d 20 36 30 20 29 20 41 53 20 63 6f 6c 31  ( - 60 ) AS col1
23900 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
23910 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ..3....query III
23920 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
23930 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 2c  ECT * FROM tab0,
23940 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
23950 45 52 45 20 4e 4f 54 20 38 39 20 49 53 20 4e 55  ERE NOT 89 IS NU
23960 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 34 20 76 61 6c  LL..----..54 val
23970 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 39  ues hashing to 9
23980 63 66 35 33 32 39 61 65 35 30 39 32 30 66 34 63  cf5329ae50920f4c
23990 36 65 32 39 37 63 39 66 35 62 36 35 32 66 64 0d  6e297c9f5b652fd.
239a0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
239b0 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 63  rt..SELECT - + c
239c0 6f 6c 32 20 2a 20 2b 20 63 6f 6c 30 20 2a 20 2d  ol2 * + col0 * -
239d0 20 2b 20 38 37 20 2d 20 39 38 20 2b 20 2b 20 63   + 87 - 98 + + c
239e0 6f 6c 31 20 2a 20 2d 20 2d 20 36 36 20 41 53 20  ol1 * - - 66 AS 
239f0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 57  col0 FROM tab0 W
23a00 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3c 20  HERE NOT NULL < 
23a10 2b 20 36 36 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  + 66..----....on
23a20 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
23a30 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
23a40 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
23a50 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
23a60 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
23a70 2d 37 38 34 0d 0a 53 45 4c 45 43 54 20 43 4f 55  -784..SELECT COU
23a80 4e 54 28 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c  NT( + CAST( NULL
23a90 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20 41   AS SIGNED ) ) A
23aa0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
23ab0 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69  ..----..0....ski
23ac0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
23ad0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
23ae0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
23af0 6c 2d 37 38 34 0d 0a 53 45 4c 45 43 54 20 43 4f  l-784..SELECT CO
23b00 55 4e 54 20 28 20 2b 20 43 41 53 54 20 28 20 4e  UNT ( + CAST ( N
23b10 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
23b20 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
23b30 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  tab0..----..0...
23b40 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
23b50 0d 0a 53 45 4c 45 43 54 20 2b 20 33 30 20 2a 20  ..SELECT + 30 * 
23b60 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 57  col0 FROM tab2 W
23b70 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3e 3d  HERE NOT NULL >=
23b80 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 39 30 0d 0a   + col0 * + 90..
23b90 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
23ba0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
23bb0 2d 20 2d 20 38 32 20 41 53 20 63 6f 6c 30 20 46  - - 82 AS col0 F
23bc0 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d  ROM tab0 cor0..-
23bd0 2d 2d 2d 0d 0a 38 32 0d 0a 38 32 0d 0a 38 32 0d  ---..82..82..82.
23be0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
23bf0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 37  sort..SELECT + 7
23c00 38 20 2a 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31  8 * col2 AS col1
23c10 2c 20 2b 20 37 39 20 2a 20 2b 20 63 6f 6c 31 20  , + 79 * + col1 
23c20 2a 20 2b 20 63 6f 6c 31 2c 20 31 38 20 41 53 20  * + col1, 18 AS 
23c30 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
23c40 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20  S cor0..----..9 
23c50 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
23c60 6f 20 62 36 62 34 31 36 36 38 33 62 38 34 62 61  o b6b416683b84ba
23c70 38 35 65 61 37 37 30 62 35 61 35 34 34 33 34 63  85ea770b5a54434c
23c80 34 66 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  4f....query III 
23c90 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
23ca0 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
23cb0 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
23cc0 52 45 20 2d 20 36 33 20 42 45 54 57 45 45 4e 20  RE - 63 BETWEEN 
23cd0 2b 20 31 31 20 41 4e 44 20 2b 20 38 38 20 2f 20  + 11 AND + 88 / 
23ce0 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  + col0..----....
23cf0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
23d00 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72  AST syntax: aggr
23d10 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49  egate syntax: SI
23d20 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
23d30 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
23d40 65 6c 2d 37 38 39 0d 0a 53 45 4c 45 43 54 20 41  el-789..SELECT A
23d50 4c 4c 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2d 20  LL + - COUNT( - 
23d60 28 20 2b 20 32 30 20 29 20 29 20 2b 20 43 41 53  ( + 20 ) ) + CAS
23d70 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
23d80 44 20 29 20 46 52 4f 4d 20 74 61 62 32 20 57 48  D ) FROM tab2 WH
23d90 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20  ERE NOT NULL IS 
23da0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  NULL..----..NULL
23db0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
23dc0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
23dd0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
23de0 72 74 20 6c 61 62 65 6c 2d 37 38 39 0d 0a 53 45  rt label-789..SE
23df0 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 43 4f 55  LECT ALL + - COU
23e00 4e 54 20 28 20 2d 20 28 20 2b 20 32 30 20 29 20  NT ( - ( + 20 ) 
23e10 29 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  ) + CAST ( NULL 
23e20 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f  AS INTEGER ) FRO
23e30 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
23e40 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d   NULL IS NULL..-
23e50 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65  ---..NULL....que
23e60 72 79 20 49 49 49 49 49 49 20 72 6f 77 73 6f 72  ry IIIIII rowsor
23e70 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
23e80 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41  CT * FROM tab2 A
23e90 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  S cor0 CROSS JOI
23ea0 4e 20 74 61 62 31 20 41 53 20 63 6f 72 31 20 57  N tab1 AS cor1 W
23eb0 48 45 52 45 20 4e 4f 54 20 28 20 2b 20 31 38 20  HERE NOT ( + 18 
23ec0 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  ) IS NULL..----.
23ed0 0a 35 34 20 76 61 6c 75 65 73 20 68 61 73 68 69  .54 values hashi
23ee0 6e 67 20 74 6f 20 33 33 61 30 34 39 33 65 37 37  ng to 33a0493e77
23ef0 62 66 38 31 35 31 36 37 36 63 39 34 38 62 30 36  bf8151676c948b06
23f00 37 36 64 36 62 39 0d 0a 0d 0a 71 75 65 72 79 20  76d6b9....query 
23f10 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
23f20 54 20 2d 20 32 39 20 2b 20 2b 20 63 6f 6c 31 20  T - 29 + + col1 
23f30 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
23f40 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
23f50 0a 32 32 0d 0a 33 38 0d 0a 34 38 0d 0a 0d 0a 71  .22..38..48....q
23f60 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
23f70 53 45 4c 45 43 54 20 2d 20 33 32 20 2b 20 2d 20  SELECT - 32 + - 
23f80 33 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  30 AS col1 FROM 
23f90 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
23fa0 2d 2d 0d 0a 2d 36 32 0d 0a 2d 36 32 0d 0a 2d 36  --..-62..-62..-6
23fb0 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  2....query I row
23fc0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 33  sort..SELECT + 3
23fd0 37 20 2b 20 2d 20 33 32 20 2a 20 34 39 20 2a 20  7 + - 32 * 49 * 
23fe0 63 6f 6c 32 20 2b 20 2d 20 32 32 20 2b 20 2b 20  col2 + - 22 + + 
23ff0 39 33 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 46 52  93 * + - col2 FR
24000 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
24010 0a 2d 2d 2d 2d 0d 0a 2d 31 36 34 34 32 34 0d 0a  .----..-164424..
24020 2d 31 36 35 39 35 0d 0a 2d 37 38 30 35 32 0d 0a  -16595..-78052..
24030 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
24040 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
24050 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  * FROM tab2 AS c
24060 6f 72 30 20 57 48 45 52 45 20 2d 20 28 20 2b 20  or0 WHERE - ( + 
24070 63 6f 6c 32 20 29 20 49 53 20 4e 4f 54 20 4e 55  col2 ) IS NOT NU
24080 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  LL..----..9 valu
24090 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35  es hashing to 75
240a0 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63  c998aa53ac83218c
240b0 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a  bf2feb962d0a49..
240c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
240d0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
240e0 43 54 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 34 37  CT - col0 + - 47
240f0 20 2a 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74   * - col1 FROM t
24100 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
24110 2d 0d 0a 32 33 35 31 0d 0a 33 30 37 34 0d 0a 33  -..2351..3074..3
24120 35 35 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  555....onlyif my
24130 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
24140 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
24150 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
24160 74 20 6c 61 62 65 6c 2d 37 39 36 0d 0a 53 45 4c  t label-796..SEL
24170 45 43 54 20 2d 20 36 38 20 2a 20 43 41 53 54 28  ECT - 68 * CAST(
24180 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
24190 29 20 2a 20 2d 20 2d 20 63 6f 6c 31 20 2b 20 2d  ) * - - col1 + -
241a0 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 32 20 41   col2 + - col2 A
241b0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
241c0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
241d0 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
241e0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
241f0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
24200 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
24210 72 74 20 6c 61 62 65 6c 2d 37 39 36 0d 0a 53 45  rt label-796..SE
24220 4c 45 43 54 20 2d 20 36 38 20 2a 20 43 41 53 54  LECT - 68 * CAST
24230 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
24240 45 52 20 29 20 2a 20 2d 20 2d 20 63 6f 6c 31 20  ER ) * - - col1 
24250 2b 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c  + - col2 + - col
24260 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  2 AS col1 FROM t
24270 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
24280 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
24290 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  ULL....skipif po
242a0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
242b0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
242c0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
242d0 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
242e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
242f0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
24300 20 2d 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 2d 20   - + col2 + - - 
24310 63 6f 6c 32 20 2a 20 2b 20 28 20 2d 20 63 6f 6c  col2 * + ( - col
24320 32 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  2 ) col2 FROM ta
24330 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
24340 0d 0a 2d 31 36 34 30 0d 0a 2d 33 34 32 32 0d 0a  ..-1640..-3422..
24350 2d 35 35 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -552....query I 
24360 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
24370 2d 20 63 6f 6c 32 20 2a 20 2b 20 2b 20 63 6f 6c  - col2 * + + col
24380 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  1 AS col0 FROM t
24390 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
243a0 2d 0d 0a 2d 32 31 30 0d 0a 2d 33 38 30 37 0d 0a  -..-210..-3807..
243b0 2d 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  -99....query I r
243c0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
243d0 4c 4c 20 2b 20 63 6f 6c 30 20 2d 20 2d 20 2b 20  LL + col0 - - + 
243e0 37 35 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  75 AS col0 FROM 
243f0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
24400 2d 2d 0d 0a 31 32 36 0d 0a 31 36 30 0d 0a 31 36  --..126..160..16
24410 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  6....query I row
24420 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
24430 20 63 6f 6c 31 20 2d 20 2d 20 2b 20 63 6f 6c 32   col1 - - + col2
24440 20 2a 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c   * + col0 AS col
24450 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
24460 2d 0d 0a 31 31 30 39 0d 0a 32 36 33 37 0d 0a 34  -..1109..2637..4
24470 34 31 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  417....onlyif my
24480 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
24490 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
244a0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
244b0 74 20 6c 61 62 65 6c 2d 38 30 31 0d 0a 53 45 4c  t label-801..SEL
244c0 45 43 54 20 41 4c 4c 20 2d 20 43 41 53 54 28 20  ECT ALL - CAST( 
244d0 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
244e0 20 2a 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c   * + col2 AS col
244f0 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  2 FROM tab1..---
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 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
24520 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
24530 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
24540 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 30 31 0d  wsort label-801.
24550 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 41  .SELECT ALL - CA
24560 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
24570 45 47 45 52 20 29 20 2a 20 2b 20 63 6f 6c 32 20  EGER ) * + col2 
24580 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
24590 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  1..----..NULL..N
245a0 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65  ULL..NULL....que
245b0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
245c0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
245d0 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
245e0 45 20 4e 4f 54 20 2b 20 63 6f 6c 31 20 3c 3e 20  E NOT + col1 <> 
245f0 2b 20 39 34 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  + 94..----....qu
24600 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
24610 45 4c 45 43 54 20 41 4c 4c 20 35 33 20 2a 20 2b  ELECT ALL 53 * +
24620 20 39 20 2a 20 63 6f 6c 32 20 41 53 20 63 6f 6c   9 * col2 AS col
24630 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
24640 2d 0d 0a 32 32 34 31 39 0d 0a 34 37 32 32 33 0d  -..22419..47223.
24650 0a 34 37 37 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .4770....onlyif 
24660 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
24670 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
24680 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
24690 6f 72 74 20 6c 61 62 65 6c 2d 38 30 34 0d 0a 53  ort label-804..S
246a0 45 4c 45 43 54 20 2b 20 43 41 53 54 28 20 4e 55  ELECT + CAST( NU
246b0 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2d  LL AS SIGNED ) -
246c0 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 31   + col2 + + col1
246d0 20 2a 20 39 34 20 46 52 4f 4d 20 74 61 62 32 0d   * 94 FROM tab2.
246e0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
246f0 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  L..NULL....skipi
24700 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
24710 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
24720 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
24730 38 30 34 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41  804..SELECT + CA
24740 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
24750 45 47 45 52 20 29 20 2d 20 2b 20 63 6f 6c 32 20  EGER ) - + col2 
24760 2b 20 2b 20 63 6f 6c 31 20 2a 20 39 34 20 46 52  + + col1 * 94 FR
24770 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab2..----..N
24780 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
24790 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
247a0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
247b0 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
247c0 52 45 20 4e 4f 54 20 63 6f 6c 32 20 2b 20 2b 20  RE NOT col2 + + 
247d0 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 31 20 3e 3d  col1 + + col1 >=
247e0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   NULL..----....o
247f0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
24800 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
24810 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
24820 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
24830 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
24840 6c 2d 38 30 36 0d 0a 53 45 4c 45 43 54 20 41 4c  l-806..SELECT AL
24850 4c 20 2b 20 2b 20 36 32 20 44 49 56 20 43 4f 55  L + + 62 DIV COU
24860 4e 54 28 20 41 4c 4c 20 2b 20 2d 20 30 20 29 20  NT( ALL + - 0 ) 
24870 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
24880 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
24890 0a 32 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .20....skipif my
248a0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
248b0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
248c0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 30 36 0d  wsort label-806.
248d0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20  .SELECT ALL + + 
248e0 36 32 20 2f 20 43 4f 55 4e 54 20 28 20 41 4c 4c  62 / COUNT ( ALL
248f0 20 2b 20 2d 20 30 20 29 20 41 53 20 63 6f 6c 30   + - 0 ) AS col0
24900 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
24910 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 30 0d 0a 0d 0a  r0..----..20....
24920 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
24930 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
24940 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
24950 72 74 20 6c 61 62 65 6c 2d 38 30 37 0d 0a 53 45  rt label-807..SE
24960 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 36 34 20  LECT ALL + + 64 
24970 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2d  + COUNT( * ) + -
24980 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52   + COUNT( * ) FR
24990 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d  OM tab2 cor0..--
249a0 2d 2d 0d 0a 36 34 0d 0a 0d 0a 73 6b 69 70 69 66  --..64....skipif
249b0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
249c0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
249d0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
249e0 30 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  07..SELECT ALL +
249f0 20 2b 20 36 34 20 2b 20 43 4f 55 4e 54 20 28 20   + 64 + COUNT ( 
24a00 2a 20 29 20 2b 20 2d 20 2b 20 43 4f 55 4e 54 20  * ) + - + COUNT 
24a10 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ( * ) FROM tab2 
24a20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 34 0d 0a  cor0..----..64..
24a30 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
24a40 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2a  t..SELECT col2 *
24a50 20 2b 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c   + + col1 AS col
24a60 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
24a70 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 34 34 0d  or0..----..1344.
24a80 0a 32 39 35 0d 0a 33 31 39 36 0d 0a 0d 0a 6f 6e  .295..3196....on
24a90 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
24aa0 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
24ab0 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
24ac0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
24ad0 38 30 39 0d 0a 53 45 4c 45 43 54 20 2b 20 37 37  809..SELECT + 77
24ae0 20 44 49 56 20 32 37 20 41 53 20 63 6f 6c 30 2c   DIV 27 AS col0,
24af0 20 37 34 20 2d 20 2d 20 37 36 20 41 53 20 63 6f   74 - - 76 AS co
24b00 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
24b10 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 0d 0a 31  cor0..----..2..1
24b20 35 30 0d 0a 32 0d 0a 31 35 30 0d 0a 32 0d 0a 31  50..2..150..2..1
24b30 35 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  50....skipif mys
24b40 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
24b50 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
24b60 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 30 39 0d  wsort label-809.
24b70 0a 53 45 4c 45 43 54 20 2b 20 37 37 20 2f 20 32  .SELECT + 77 / 2
24b80 37 20 41 53 20 63 6f 6c 30 2c 20 37 34 20 2d 20  7 AS col0, 74 - 
24b90 2d 20 37 36 20 41 53 20 63 6f 6c 30 20 46 52 4f  - 76 AS col0 FRO
24ba0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
24bb0 2d 2d 2d 2d 0d 0a 32 0d 0a 31 35 30 0d 0a 32 0d  ----..2..150..2.
24bc0 0a 31 35 30 0d 0a 32 0d 0a 31 35 30 0d 0a 0d 0a  .150..2..150....
24bd0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
24be0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
24bf0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
24c00 72 74 20 6c 61 62 65 6c 2d 38 31 30 0d 0a 53 45  rt label-810..SE
24c10 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
24c20 4d 49 4e 28 20 31 39 20 29 20 46 52 4f 4d 20 74  MIN( 19 ) FROM t
24c30 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab2 cor0..----..
24c40 2d 31 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -19....skipif my
24c50 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
24c60 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
24c70 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 31 30 0d  wsort label-810.
24c80 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
24c90 20 2d 20 4d 49 4e 20 28 20 31 39 20 29 20 46 52   - MIN ( 19 ) FR
24ca0 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d  OM tab2 cor0..--
24cb0 2d 2d 0d 0a 2d 31 39 0d 0a 0d 0a 6f 6e 6c 79 69  --..-19....onlyi
24cc0 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
24cd0 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65  yntax: aggregate
24ce0 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
24cf0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
24d00 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 31  rowsort label-81
24d10 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  1..SELECT DISTIN
24d20 43 54 20 2d 20 43 41 53 54 28 20 2b 20 2d 20 43  CT - CAST( + - C
24d30 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 53 49 47  OUNT( * ) AS SIG
24d40 4e 45 44 20 29 20 41 53 20 63 6f 6c 31 20 46 52  NED ) AS col1 FR
24d50 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 2d 20  OM tab2 WHERE - 
24d60 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  col1 IS NULL..--
24d70 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..0....skipif 
24d80 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
24d90 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
24da0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 31  rowsort label-81
24db0 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  1..SELECT DISTIN
24dc0 43 54 20 2d 20 43 41 53 54 20 28 20 2b 20 2d 20  CT - CAST ( + - 
24dd0 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 49  COUNT ( * ) AS I
24de0 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 31  NTEGER ) AS col1
24df0 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
24e00 20 2d 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d   - col1 IS NULL.
24e10 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72  .----..0....quer
24e20 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
24e30 45 43 54 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 39  ECT + + col1 * 9
24e40 38 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  8 FROM tab2 AS c
24e50 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 39 39 38 0d  or0..----..4998.
24e60 0a 36 35 36 36 0d 0a 37 35 34 36 0d 0a 0d 0a 71  .6566..7546....q
24e70 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
24e80 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
24e90 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
24ea0 52 45 20 4e 4f 54 20 2d 20 37 31 20 49 4e 20 28  RE NOT - 71 IN (
24eb0 20 63 6f 6c 32 2c 20 2d 20 63 6f 6c 32 20 2a 20   col2, - col2 * 
24ec0 2d 20 63 6f 6c 30 20 2a 20 39 35 20 29 0d 0a 2d  - col0 * 95 )..-
24ed0 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
24ee0 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31  shing to c6c0a41
24ef0 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31  11b36d04dbc811a1
24f00 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65  1e4d54cad....que
24f10 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
24f20 4c 45 43 54 20 38 33 20 2a 20 63 6f 6c 32 20 41  LECT 83 * col2 A
24f30 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
24f40 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
24f50 33 39 30 31 0d 0a 38 32 31 37 0d 0a 38 33 30 0d  3901..8217..830.
24f60 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
24f70 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
24f80 20 2b 20 32 33 20 41 53 20 63 6f 6c 32 20 46 52   + 23 AS col2 FR
24f90 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
24fa0 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a 2d 32 33 0d  .----..-23..-23.
24fb0 0a 2d 32 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-23....onlyif m
24fc0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
24fd0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
24fe0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
24ff0 2d 38 31 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -816..SELECT ALL
25000 20 2b 20 2b 20 43 4f 55 4e 54 28 20 63 6f 6c 32   + + COUNT( col2
25010 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
25020 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d  cor0..----..3...
25030 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
25040 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
25050 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
25060 6c 61 62 65 6c 2d 38 31 36 0d 0a 53 45 4c 45 43  label-816..SELEC
25070 54 20 41 4c 4c 20 2b 20 2b 20 43 4f 55 4e 54 20  T ALL + + COUNT 
25080 28 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61  ( col2 ) FROM ta
25090 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
250a0 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..3....onlyif my
250b0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
250c0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
250d0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
250e0 38 31 37 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e  817..SELECT COUN
250f0 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30  T( * ) FROM tab0
25100 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
25110 4f 54 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 63 6f  OT - col0 * + co
25120 6c 32 20 2a 20 2b 20 39 39 20 49 53 20 4e 4f 54  l2 * + 99 IS NOT
25130 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   NULL..----..0..
25140 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
25150 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
25160 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
25170 20 6c 61 62 65 6c 2d 38 31 37 0d 0a 53 45 4c 45   label-817..SELE
25180 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46  CT COUNT ( * ) F
25190 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
251a0 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c   WHERE NOT - col
251b0 30 20 2a 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 39  0 * + col2 * + 9
251c0 39 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  9 IS NOT NULL..-
251d0 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ---..0....onlyif
251e0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
251f0 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
25200 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72  e: ..query III r
25210 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 31 38  owsort label-818
25220 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
25230 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53  T * FROM tab0 AS
25240 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
25250 30 20 2b 20 2d 20 43 41 53 54 28 20 2d 20 63 6f  0 + - CAST( - co
25260 6c 30 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b  l0 AS SIGNED ) +
25270 20 2b 20 2d 20 63 6f 6c 30 20 49 53 20 4e 55 4c   + - col0 IS NUL
25280 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  L..----..9 value
25290 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62  s hashing to c4b
252a0 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36  42765dff94eaaa46
252b0 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d  040e537fb43b7...
252c0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
252d0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
252e0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
252f0 74 20 6c 61 62 65 6c 2d 38 31 38 0d 0a 53 45 4c  t label-818..SEL
25300 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
25310 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
25320 20 57 48 45 52 45 20 4e 4f 54 20 30 20 2b 20 2d   WHERE NOT 0 + -
25330 20 43 41 53 54 20 28 20 2d 20 63 6f 6c 30 20 41   CAST ( - col0 A
25340 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20 2b 20  S INTEGER ) + + 
25350 2d 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a  - col0 IS NULL..
25360 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
25370 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37  ashing to c4b427
25380 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30  65dff94eaaa46040
25390 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75  e537fb43b7....qu
253a0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
253b0 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
253c0 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 28 20  ab1 WHERE NOT ( 
253d0 2b 20 31 33 20 2a 20 2b 20 28 20 2b 20 39 33 20  + 13 * + ( + 93 
253e0 29 20 2b 20 2b 20 38 32 20 29 20 3c 3e 20 28 20  ) + + 82 ) <> ( 
253f0 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  col1 )..----....
25400 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
25410 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
25420 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
25430 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
25440 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
25450 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
25460 20 63 6f 6c 31 20 2a 20 2d 20 32 38 20 63 6f 6c   col1 * - 28 col
25470 30 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  0 FROM tab1 WHER
25480 45 20 4e 4f 54 20 4e 55 4c 4c 20 3d 20 2d 20 2b  E NOT NULL = - +
25490 20 38 39 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c   89..----....onl
254a0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
254b0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
254c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
254d0 6c 61 62 65 6c 2d 38 32 31 0d 0a 53 45 4c 45 43  label-821..SELEC
254e0 54 20 41 4c 4c 20 53 55 4d 28 20 2d 20 2b 20 33  T ALL SUM( - + 3
254f0 38 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  8 ) AS col2 FROM
25500 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31   tab1..----..-11
25510 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  4....skipif mysq
25520 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
25530 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
25540 6f 72 74 20 6c 61 62 65 6c 2d 38 32 31 0d 0a 53  ort label-821..S
25550 45 4c 45 43 54 20 41 4c 4c 20 53 55 4d 20 28 20  ELECT ALL SUM ( 
25560 2d 20 2b 20 33 38 20 29 20 41 53 20 63 6f 6c 32  - + 38 ) AS col2
25570 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
25580 0d 0a 2d 31 31 34 0d 0a 0d 0a 71 75 65 72 79 20  ..-114....query 
25590 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
255a0 54 20 2b 20 39 31 20 2a 20 2b 20 36 35 20 2a 20  T + 91 * + 65 * 
255b0 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46  - col1 AS col1 F
255c0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
255d0 2d 32 37 38 30 30 35 0d 0a 2d 32 39 35 37 35 0d  -278005..-29575.
255e0 0a 2d 38 32 38 31 30 0d 0a 0d 0a 73 6b 69 70 69  .-82810....skipi
255f0 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
25600 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
25610 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
25620 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
25630 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
25640 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 31 31  ort..SELECT + 11
25650 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
25660 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20 49  WHERE NOT col2 I
25670 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
25680 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
25690 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
256a0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
256b0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 32 34  owsort label-824
256c0 0d 0a 53 45 4c 45 43 54 20 53 55 4d 28 20 41 4c  ..SELECT SUM( AL
256d0 4c 20 2d 20 2b 20 33 39 20 29 20 46 52 4f 4d 20  L - + 39 ) FROM 
256e0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 37  tab2..----..-117
256f0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
25700 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
25710 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
25720 72 74 20 6c 61 62 65 6c 2d 38 32 34 0d 0a 53 45  rt label-824..SE
25730 4c 45 43 54 20 53 55 4d 20 28 20 41 4c 4c 20 2d  LECT SUM ( ALL -
25740 20 2b 20 33 39 20 29 20 46 52 4f 4d 20 74 61 62   + 39 ) FROM tab
25750 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 37 0d 0a 0d  2..----..-117...
25760 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
25770 0d 0a 53 45 4c 45 43 54 20 28 20 35 32 20 29 20  ..SELECT ( 52 ) 
25780 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
25790 32 0d 0a 2d 2d 2d 2d 0d 0a 35 32 0d 0a 35 32 0d  2..----..52..52.
257a0 0a 35 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .52....query I r
257b0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 38  owsort..SELECT 8
257c0 38 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  8 FROM tab1 cor0
257d0 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e   WHERE NULL IS N
257e0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 38 38 0d 0a 38  ULL..----..88..8
257f0 38 0d 0a 38 38 0d 0a 0d 0a 71 75 65 72 79 20 49  8..88....query I
25800 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
25810 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31   DISTINCT + col1
25820 20 2a 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 32   * col1 + + col2
25830 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
25840 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
25850 0d 0a 32 32 37 37 0d 0a 32 39 32 0d 0a 38 34 0d  ..2277..292..84.
25860 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
25870 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
25880 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
25890 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 32 38 0d  wsort label-828.
258a0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
258b0 20 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20 63   MAX( DISTINCT c
258c0 6f 6c 32 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20  ol2 ) col2 FROM 
258d0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
258e0 2d 2d 0d 0a 35 38 0d 0a 0d 0a 73 6b 69 70 69 66  --..58....skipif
258f0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
25900 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
25910 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
25920 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
25930 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
25940 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
25950 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
25960 74 20 6c 61 62 65 6c 2d 38 32 38 0d 0a 53 45 4c  t label-828..SEL
25970 45 43 54 20 44 49 53 54 49 4e 43 54 20 4d 41 58  ECT DISTINCT MAX
25980 20 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32   ( DISTINCT col2
25990 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   ) col2 FROM tab
259a0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
259b0 0a 35 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .58....onlyif my
259c0 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
259d0 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
259e0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
259f0 74 20 6c 61 62 65 6c 2d 38 32 39 0d 0a 53 45 4c  t label-829..SEL
25a00 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63  ECT DISTINCT + c
25a10 6f 6c 31 20 2b 20 63 6f 6c 31 20 44 49 56 20 2b  ol1 + col1 DIV +
25a20 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   + col2 FROM tab
25a30 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
25a40 0a 31 0d 0a 32 33 0d 0a 38 32 0d 0a 0d 0a 73 6b  .1..23..82....sk
25a50 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
25a60 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
25a70 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
25a80 65 6c 2d 38 32 39 0d 0a 53 45 4c 45 43 54 20 44  el-829..SELECT D
25a90 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 2b  ISTINCT + col1 +
25aa0 20 63 6f 6c 31 20 2f 20 2b 20 2b 20 63 6f 6c 32   col1 / + + col2
25ab0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
25ac0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 32 33 0d  r0..----..1..23.
25ad0 0a 38 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .82....query I r
25ae0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
25af0 4c 4c 20 2b 20 63 6f 6c 30 20 2b 20 63 6f 6c 32  LL + col0 + col2
25b00 20 2a 20 2d 20 2d 20 34 35 20 2a 20 2b 20 2d 20   * - - 45 * + - 
25b10 31 35 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  15 FROM tab2 AS 
25b20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 34  cor0..----..-154
25b30 37 39 0d 0a 2d 32 36 39 33 36 0d 0a 2d 33 39 30  79..-26936..-390
25b40 37 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  75....onlyif mys
25b50 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
25b60 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
25b70 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
25b80 33 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  31..SELECT DISTI
25b90 4e 43 54 20 43 4f 55 4e 54 28 20 2d 20 2b 20 63  NCT COUNT( - + c
25ba0 6f 6c 30 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20  ol0 ) col2 FROM 
25bb0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d  tab0..----..3...
25bc0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
25bd0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
25be0 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
25bf0 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
25c00 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
25c10 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
25c20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
25c30 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
25c40 33 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  31..SELECT DISTI
25c50 4e 43 54 20 43 4f 55 4e 54 20 28 20 2d 20 2b 20  NCT COUNT ( - + 
25c60 63 6f 6c 30 20 29 20 63 6f 6c 32 20 46 52 4f 4d  col0 ) col2 FROM
25c70 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   tab0..----..3..
25c80 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
25c90 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
25ca0 43 54 20 2d 20 2d 20 28 20 34 37 20 29 20 41 53  CT - - ( 47 ) AS
25cb0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
25cc0 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
25cd0 49 4e 20 74 61 62 31 20 63 6f 72 31 0d 0a 2d 2d  IN tab1 cor1..--
25ce0 2d 2d 0d 0a 34 37 0d 0a 0d 0a 71 75 65 72 79 20  --..47....query 
25cf0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
25d00 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  T DISTINCT - col
25d10 30 20 2a 20 2d 20 2d 20 63 6f 6c 31 20 41 53 20  0 * - - col1 AS 
25d20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col2 FROM tab2..
25d30 2d 2d 2d 2d 0d 0a 2d 32 33 34 36 0d 0a 2d 34 39  ----..-2346..-49
25d40 32 38 0d 0a 2d 35 30 32 35 0d 0a 0d 0a 6f 6e 6c  28..-5025....onl
25d50 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
25d60 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
25d70 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49  sion: ..query II
25d80 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
25d90 33 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  34..SELECT DISTI
25da0 4e 43 54 20 2d 20 28 20 2d 20 2b 20 63 6f 6c 31  NCT - ( - + col1
25db0 20 29 20 2a 20 2d 20 36 30 2c 20 63 6f 6c 30 20   ) * - 60, col0 
25dc0 44 49 56 20 2b 20 32 37 20 41 53 20 63 6f 6c 30  DIV + 27 AS col0
25dd0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
25de0 0d 0a 2d 32 38 32 30 0d 0a 33 0d 0a 2d 33 30 30  ..-2820..3..-300
25df0 0d 0a 33 0d 0a 2d 38 34 30 0d 0a 31 0d 0a 0d 0a  ..3..-840..1....
25e00 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
25e10 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
25e20 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
25e30 6c 61 62 65 6c 2d 38 33 34 0d 0a 53 45 4c 45 43  label-834..SELEC
25e40 54 20 44 49 53 54 49 4e 43 54 20 2d 20 28 20 2d  T DISTINCT - ( -
25e50 20 2b 20 63 6f 6c 31 20 29 20 2a 20 2d 20 36 30   + col1 ) * - 60
25e60 2c 20 63 6f 6c 30 20 2f 20 2b 20 32 37 20 41 53  , col0 / + 27 AS
25e70 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
25e80 0a 2d 2d 2d 2d 0d 0a 2d 32 38 32 30 0d 0a 33 0d  .----..-2820..3.
25e90 0a 2d 33 30 30 0d 0a 33 0d 0a 2d 38 34 30 0d 0a  .-300..3..-840..
25ea0 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
25eb0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
25ec0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
25ed0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33  rowsort label-83
25ee0 35 0d 0a 53 45 4c 45 43 54 20 2b 20 53 55 4d 28  5..SELECT + SUM(
25ef0 20 2d 20 63 6f 6c 31 20 29 20 2a 20 2b 20 33 31   - col1 ) * + 31
25f00 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
25f10 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 30 34 35 0d  r0..----..-6045.
25f20 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
25f30 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
25f40 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
25f50 74 20 6c 61 62 65 6c 2d 38 33 35 0d 0a 53 45 4c  t label-835..SEL
25f60 45 43 54 20 2b 20 53 55 4d 20 28 20 2d 20 63 6f  ECT + SUM ( - co
25f70 6c 31 20 29 20 2a 20 2b 20 33 31 20 46 52 4f 4d  l1 ) * + 31 FROM
25f80 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
25f90 2d 2d 2d 0d 0a 2d 36 30 34 35 0d 0a 0d 0a 6f 6e  ---..-6045....on
25fa0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
25fb0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
25fc0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
25fd0 20 6c 61 62 65 6c 2d 38 33 36 0d 0a 53 45 4c 45   label-836..SELE
25fe0 43 54 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20  CT - - COUNT( * 
25ff0 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  ) FROM tab0 AS c
26000 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 30 20 49  or0 WHERE col0 I
26010 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
26020 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..3....skipif my
26030 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
26040 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
26050 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33 36 0d  wsort label-836.
26060 0a 53 45 4c 45 43 54 20 2d 20 2d 20 43 4f 55 4e  .SELECT - - COUN
26070 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  T ( * ) FROM tab
26080 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
26090 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col0 IS NOT NULL
260a0 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65  ..----..3....que
260b0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
260c0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
260d0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
260e0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
260f0 20 28 20 4e 55 4c 4c 20 29 20 49 53 20 4e 55 4c   ( NULL ) IS NUL
26100 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  L..----....onlyi
26110 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
26120 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
26130 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
26140 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33 38 0d  wsort label-838.
26150 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
26160 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 43 41 53 54   + col2 * - CAST
26170 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
26180 20 29 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63   ) + - col2 AS c
26190 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
261a0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
261b0 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
261c0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
261d0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
261e0 6f 72 74 20 6c 61 62 65 6c 2d 38 33 38 0d 0a 53  ort label-838..S
261f0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
26200 20 63 6f 6c 32 20 2a 20 2d 20 43 41 53 54 20 28   col2 * - CAST (
26210 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
26220 20 29 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63   ) + - col2 AS c
26230 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
26240 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
26250 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  L....query I row
26260 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
26270 20 2b 20 63 6f 6c 30 20 2a 20 63 6f 6c 30 20 2b   + col0 * col0 +
26280 20 2b 20 63 6f 6c 32 20 2b 20 63 6f 6c 32 20 2b   + col2 + col2 +
26290 20 2b 20 39 30 20 2b 20 2d 20 63 6f 6c 32 20 2a   + 90 + - col2 *
262a0 20 2b 20 34 33 20 2a 20 63 6f 6c 30 20 46 52 4f   + 43 * col0 FRO
262b0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
262c0 2d 2d 2d 2d 0d 0a 2d 32 39 37 33 31 0d 0a 2d 32  ----..-29731..-2
262d0 39 39 30 36 0d 0a 2d 34 30 33 32 33 32 0d 0a 0d  9906..-403232...
262e0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
262f0 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 63 6f  t..SELECT + + co
26300 6c 30 20 2a 20 2d 20 2b 20 63 6f 6c 30 20 2b 20  l0 * - + col0 + 
26310 63 6f 6c 30 20 2b 20 63 6f 6c 31 20 2b 20 2d 20  col0 + col1 + - 
26320 63 6f 6c 31 2c 20 31 38 20 41 53 20 63 6f 6c 31  col1, 18 AS col1
26330 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
26340 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30 37 30 0d  r0..----..-2070.
26350 0a 31 38 0d 0a 2d 34 30 33 32 0d 0a 31 38 0d 0a  .18..-4032..18..
26360 2d 35 35 35 30 0d 0a 31 38 0d 0a 0d 0a 71 75 65  -5550..18....que
26370 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
26380 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 31 20  LECT ALL - col1 
26390 2a 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c  * + col1 + + col
263a0 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  0 AS col0 FROM t
263b0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
263c0 2d 0d 0a 2d 32 35 35 35 0d 0a 2d 34 34 31 34 0d  -..-2555..-4414.
263d0 0a 2d 35 38 36 35 0d 0a 0d 0a 6f 6e 6c 79 69 66  .-5865....onlyif
263e0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
263f0 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20  ntax: aggregate 
26400 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
26410 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  ype: ..query II 
26420 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34  rowsort label-84
26430 32 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 2b 20  2..SELECT + ( + 
26440 37 20 29 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  7 ) + COUNT( * )
26450 20 63 6f 6c 32 2c 20 2d 20 43 4f 55 4e 54 28 20   col2, - COUNT( 
26460 2a 20 29 20 2d 20 2d 20 2d 20 34 30 20 2b 20 2b  * ) - - - 40 + +
26470 20 43 41 53 54 28 20 2d 20 34 39 20 41 53 20 53   CAST( - 49 AS S
26480 49 47 4e 45 44 20 29 20 63 6f 6c 32 20 46 52 4f  IGNED ) col2 FRO
26490 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30  M tab0..----..10
264a0 0d 0a 2d 39 32 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-92....skipif 
264b0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
264c0 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70  atible..skipif p
264d0 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
264e0 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
264f0 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
26500 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
26510 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
26520 74 20 6c 61 62 65 6c 2d 38 34 32 0d 0a 53 45 4c  t label-842..SEL
26530 45 43 54 20 2b 20 28 20 2b 20 37 20 29 20 2b 20  ECT + ( + 7 ) + 
26540 43 4f 55 4e 54 20 28 20 2a 20 29 20 63 6f 6c 32  COUNT ( * ) col2
26550 2c 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  , - COUNT ( * ) 
26560 2d 20 2d 20 2d 20 34 30 20 2b 20 2b 20 43 41 53  - - - 40 + + CAS
26570 54 20 28 20 2d 20 34 39 20 41 53 20 49 4e 54 45  T ( - 49 AS INTE
26580 47 45 52 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20  GER ) col2 FROM 
26590 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a  tab0..----..10..
265a0 2d 39 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -92....onlyif my
265b0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
265c0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
265d0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
265e0 72 74 20 6c 61 62 65 6c 2d 38 34 33 0d 0a 53 45  rt label-843..SE
265f0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
26600 43 41 53 54 28 20 2d 20 63 6f 6c 30 20 41 53 20  CAST( - col0 AS 
26610 53 49 47 4e 45 44 20 29 20 2d 20 2d 20 63 6f 6c  SIGNED ) - - col
26620 30 20 2a 20 35 35 20 41 53 20 63 6f 6c 31 2c 20  0 * 55 AS col1, 
26630 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46  - col1 AS col0 F
26640 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
26650 34 36 39 38 0d 0a 2d 32 31 0d 0a 35 32 33 38 0d  4698..-21..5238.
26660 0a 2d 31 0d 0a 38 31 30 0d 0a 2d 38 31 0d 0a 0d  .-1..810..-81...
26670 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
26680 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
26690 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
266a0 20 6c 61 62 65 6c 2d 38 34 33 0d 0a 53 45 4c 45   label-843..SELE
266b0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 41  CT DISTINCT + CA
266c0 53 54 20 28 20 2d 20 63 6f 6c 30 20 41 53 20 49  ST ( - col0 AS I
266d0 4e 54 45 47 45 52 20 29 20 2d 20 2d 20 63 6f 6c  NTEGER ) - - col
266e0 30 20 2a 20 35 35 20 41 53 20 63 6f 6c 31 2c 20  0 * 55 AS col1, 
266f0 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46  - col1 AS col0 F
26700 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
26710 34 36 39 38 0d 0a 2d 32 31 0d 0a 35 32 33 38 0d  4698..-21..5238.
26720 0a 2d 31 0d 0a 38 31 30 0d 0a 2d 38 31 0d 0a 0d  .-1..810..-81...
26730 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
26740 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20  ..SELECT - col2 
26750 2b 20 34 30 20 2b 20 63 6f 6c 30 20 2b 20 2d 20  + 40 + col0 + - 
26760 2d 20 38 34 20 2a 20 2d 20 38 31 20 41 53 20 63  - 84 * - 81 AS c
26770 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
26780 2d 2d 2d 0d 0a 2d 36 37 34 30 0d 0a 2d 36 37 34  ---..-6740..-674
26790 31 0d 0a 2d 36 37 34 37 0d 0a 0d 0a 71 75 65 72  1..-6747....quer
267a0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
267b0 45 43 54 20 41 4c 4c 20 31 37 20 2a 20 28 20 2d  ECT ALL 17 * ( -
267c0 20 28 20 2d 20 2b 20 63 6f 6c 31 20 29 20 29 20   ( - + col1 ) ) 
267d0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
267e0 32 0d 0a 2d 2d 2d 2d 0d 0a 31 31 33 39 0d 0a 31  2..----..1139..1
267f0 33 30 39 0d 0a 38 36 37 0d 0a 0d 0a 71 75 65 72  309..867....quer
26800 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
26810 45 43 54 20 41 4c 4c 20 2b 20 32 38 20 2a 20 2b  ECT ALL + 28 * +
26820 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52   col1 AS col0 FR
26830 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab2..----..1
26840 34 32 38 0d 0a 31 38 37 36 0d 0a 32 31 35 36 0d  428..1876..2156.
26850 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
26860 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
26870 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
26880 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34 37 0d  wsort label-847.
26890 0a 53 45 4c 45 43 54 20 2b 20 39 36 20 2b 20 2b  .SELECT + 96 + +
268a0 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53   - COUNT( * ) AS
268b0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
268c0 0a 2d 2d 2d 2d 0d 0a 39 33 0d 0a 0d 0a 73 6b 69  .----..93....ski
268d0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
268e0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
268f0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
26900 6c 2d 38 34 37 0d 0a 53 45 4c 45 43 54 20 2b 20  l-847..SELECT + 
26910 39 36 20 2b 20 2b 20 2d 20 43 4f 55 4e 54 20 28  96 + + - COUNT (
26920 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   * ) AS col1 FRO
26930 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 39 33  M tab2..----..93
26940 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
26950 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
26960 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
26970 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34 38  owsort label-848
26980 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54  ..SELECT + COUNT
26990 28 20 2a 20 29 20 2a 20 2b 20 2d 20 35 34 20 41  ( * ) * + - 54 A
269a0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
269b0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 32 0d 0a 0d 0a  ..----..-162....
269c0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
269d0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
269e0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
269f0 61 62 65 6c 2d 38 34 38 0d 0a 53 45 4c 45 43 54  abel-848..SELECT
26a00 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a   + COUNT ( * ) *
26a10 20 2b 20 2d 20 35 34 20 41 53 20 63 6f 6c 31 20   + - 54 AS col1 
26a20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
26a30 0a 2d 31 36 32 0d 0a 0d 0a 71 75 65 72 79 20 49  .-162....query I
26a40 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
26a50 54 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 41 53 20  T ALL + col2 AS 
26a60 63 6f 6c 31 2c 20 2d 20 63 6f 6c 32 20 41 53 20  col1, - col2 AS 
26a70 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col2 FROM tab1..
26a80 2d 2d 2d 2d 0d 0a 35 39 0d 0a 2d 35 39 0d 0a 36  ----..59..-59..6
26a90 38 0d 0a 2d 36 38 0d 0a 39 36 0d 0a 2d 39 36 0d  8..-68..96..-96.
26aa0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
26ab0 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
26ac0 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
26ad0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
26ae0 62 65 6c 2d 38 35 30 0d 0a 53 45 4c 45 43 54 20  bel-850..SELECT 
26af0 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20  DISTINCT + col1 
26b00 44 49 56 20 2b 20 34 34 20 46 52 4f 4d 20 74 61  DIV + 44 FROM ta
26b10 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31 0d 0a  b1..----..0..1..
26b20 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
26b30 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
26b40 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
26b50 20 6c 61 62 65 6c 2d 38 35 30 0d 0a 53 45 4c 45   label-850..SELE
26b60 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f  CT DISTINCT + co
26b70 6c 31 20 2f 20 2b 20 34 34 20 46 52 4f 4d 20 74  l1 / + 44 FROM t
26b80 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31 0d  ab1..----..0..1.
26b90 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
26ba0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
26bb0 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 28 20 2b 20   - col2 * + ( + 
26bc0 2b 20 63 6f 6c 32 20 29 20 2a 20 2b 20 2d 20 38  + col2 ) * + - 8
26bd0 35 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  5 FROM tab1 cor0
26be0 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 39 35 38 38 35 0d  ..----..-295885.
26bf0 0a 2d 33 39 33 30 34 30 0d 0a 2d 37 38 33 33 36  .-393040..-78336
26c00 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
26c10 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
26c20 30 20 2b 20 2d 20 35 33 20 41 53 20 63 6f 6c 32  0 + - 53 AS col2
26c30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
26c40 0d 0a 2d 32 0d 0a 33 32 0d 0a 33 38 0d 0a 0d 0a  ..-2..32..38....
26c50 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
26c60 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
26c70 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  CT * FROM tab2 W
26c80 48 45 52 45 20 28 20 34 33 20 29 20 49 4e 20 28  HERE ( 43 ) IN (
26c90 20 2b 20 28 20 2d 20 31 33 20 29 20 2b 20 2b 20   + ( - 13 ) + + 
26ca0 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  col0 )..----....
26cb0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
26cc0 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2a 20 63  .SELECT col2 * c
26cd0 6f 6c 32 20 2b 20 2d 20 63 6f 6c 32 20 2a 20 2b  ol2 + - col2 * +
26ce0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d   col1 FROM tab0.
26cf0 0a 2d 2d 2d 2d 0d 0a 2d 31 31 30 0d 0a 2d 31 35  .----..-110..-15
26d00 39 38 0d 0a 39 37 30 32 0d 0a 0d 0a 71 75 65 72  98..9702....quer
26d10 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
26d20 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
26d30 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20   tab0 WHERE NOT 
26d40 28 20 34 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d  ( 4 ) IS NULL..-
26d50 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
26d60 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36  shing to c4b4276
26d70 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65  5dff94eaaa46040e
26d80 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65  537fb43b7....que
26d90 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
26da0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
26db0 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  l0 FROM tab1 WHE
26dc0 52 45 20 4e 4f 54 20 2d 20 38 37 20 2a 20 39 35  RE NOT - 87 * 95
26dd0 20 2b 20 32 36 20 2a 20 2b 20 38 36 20 3c 20 63   + 26 * + 86 < c
26de0 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ol1..----....que
26df0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
26e00 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
26e10 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 57  col2 FROM tab0 W
26e20 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3d 20  HERE NOT NULL = 
26e30 2d 20 63 6f 6c 31 20 2f 20 2b 20 38 32 0d 0a 2d  - col1 / + 82..-
26e40 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
26e50 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
26e60 49 53 54 49 4e 43 54 20 30 20 46 52 4f 4d 20 74  ISTINCT 0 FROM t
26e70 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 37 34  ab2 WHERE NOT 74
26e80 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
26e90 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
26ea0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
26eb0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
26ec0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 35  rowsort label-85
26ed0 39 0d 0a 53 45 4c 45 43 54 20 4d 41 58 28 20 44  9..SELECT MAX( D
26ee0 49 53 54 49 4e 43 54 20 33 38 20 29 20 41 53 20  ISTINCT 38 ) AS 
26ef0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
26f00 2d 2d 2d 2d 0d 0a 33 38 0d 0a 0d 0a 73 6b 69 70  ----..38....skip
26f10 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
26f20 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
26f30 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
26f40 2d 38 35 39 0d 0a 53 45 4c 45 43 54 20 4d 41 58  -859..SELECT MAX
26f50 20 28 20 44 49 53 54 49 4e 43 54 20 33 38 20 29   ( DISTINCT 38 )
26f60 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
26f70 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 38 0d 0a 0d 0a  b0..----..38....
26f80 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
26f90 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32  .SELECT ALL col2
26fa0 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 30   + col0 * + col0
26fb0 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
26fc0 20 4e 4f 54 20 4e 55 4c 4c 20 49 4e 20 28 20 63   NOT NULL IN ( c
26fd0 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f  ol0 )..----....o
26fe0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
26ff0 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
27000 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
27010 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
27020 38 36 31 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30  861..SELECT col0
27030 20 2a 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20   * + CAST( NULL 
27040 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63  AS SIGNED ) AS c
27050 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 57 48  ol2 FROM tab0 WH
27060 45 52 45 20 4e 4f 54 20 28 20 63 6f 6c 32 20 29  ERE NOT ( col2 )
27070 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
27080 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
27090 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
270a0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
270b0 73 6f 72 74 20 6c 61 62 65 6c 2d 38 36 31 0d 0a  sort label-861..
270c0 53 45 4c 45 43 54 20 63 6f 6c 30 20 2a 20 2b 20  SELECT col0 * + 
270d0 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
270e0 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 32  NTEGER ) AS col2
270f0 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
27100 20 4e 4f 54 20 28 20 63 6f 6c 32 20 29 20 49 53   NOT ( col2 ) IS
27110 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
27120 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
27130 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
27140 4e 43 54 20 2d 20 63 6f 6c 32 20 2a 20 28 20 63  NCT - col2 * ( c
27150 6f 6c 31 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ol1 ) AS col1 FR
27160 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
27170 32 31 30 0d 0a 2d 33 38 30 37 0d 0a 2d 39 39 0d  210..-3807..-99.
27180 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
27190 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
271a0 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 63  ROM tab2 WHERE c
271b0 6f 6c 30 20 49 4e 20 28 20 32 35 20 2f 20 2b 20  ol0 IN ( 25 / + 
271c0 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  col1 )..----....
271d0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
271e0 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2a 20 2d  .SELECT col0 * -
271f0 20 63 6f 6c 32 20 2b 20 63 6f 6c 32 20 41 53 20   col2 + col2 AS 
27200 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col2 FROM tab2..
27210 2d 2d 2d 2d 0d 0a 2d 31 30 33 35 0d 0a 2d 32 35  ----..-1035..-25
27220 32 30 0d 0a 2d 34 32 39 32 0d 0a 0d 0a 73 6b 69  20..-4292....ski
27230 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
27240 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
27250 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
27260 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
27270 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
27280 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
27290 53 54 49 4e 43 54 20 63 6f 6c 32 20 2b 20 2b 20  STINCT col2 + + 
272a0 39 20 2a 20 2d 20 63 6f 6c 31 20 63 6f 6c 30 20  9 * - col1 col0 
272b0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
272c0 0a 2d 34 33 36 0d 0a 2d 35 34 35 0d 0a 2d 36 35  .-436..-545..-65
272d0 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  3....query I row
272e0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 34 34 20  sort..SELECT 44 
272f0 2a 20 63 6f 6c 31 20 2d 20 2d 20 63 6f 6c 32 20  * col1 - - col2 
27300 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
27310 0a 31 34 33 0d 0a 33 36 31 31 0d 0a 39 33 34 0d  .143..3611..934.
27320 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
27330 72 74 0d 0a 53 45 4c 45 43 54 20 37 32 20 2a 20  rt..SELECT 72 * 
27340 2b 20 37 36 20 46 52 4f 4d 20 74 61 62 32 0d 0a  + 76 FROM tab2..
27350 2d 2d 2d 2d 0d 0a 35 34 37 32 0d 0a 35 34 37 32  ----..5472..5472
27360 0d 0a 35 34 37 32 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..5472....onlyif
27370 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
27380 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
27390 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
273a0 65 6c 2d 38 36 38 0d 0a 53 45 4c 45 43 54 20 33  el-868..SELECT 3
273b0 36 20 2a 20 2b 20 34 31 20 2b 20 43 4f 55 4e 54  6 * + 41 + COUNT
273c0 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 0d  ( * ) FROM tab0.
273d0 0a 2d 2d 2d 2d 0d 0a 31 34 37 39 0d 0a 0d 0a 73  .----..1479....s
273e0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
273f0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
27400 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
27410 62 65 6c 2d 38 36 38 0d 0a 53 45 4c 45 43 54 20  bel-868..SELECT 
27420 33 36 20 2a 20 2b 20 34 31 20 2b 20 43 4f 55 4e  36 * + 41 + COUN
27430 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  T ( * ) FROM tab
27440 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 37 39 0d 0a 0d  0..----..1479...
27450 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
27460 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
27470 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
27480 6f 72 74 20 6c 61 62 65 6c 2d 38 36 39 0d 0a 53  ort label-869..S
27490 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 28  ELECT DISTINCT (
274a0 20 2d 20 43 4f 55 4e 54 28 20 44 49 53 54 49 4e   - COUNT( DISTIN
274b0 43 54 20 2d 20 36 38 20 29 20 29 20 41 53 20 63  CT - 68 ) ) AS c
274c0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
274d0 2d 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 73 6b 69 70 69  ---..-1....skipi
274e0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
274f0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
27500 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
27510 38 36 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  869..SELECT DIST
27520 49 4e 43 54 20 28 20 2d 20 43 4f 55 4e 54 20 28  INCT ( - COUNT (
27530 20 44 49 53 54 49 4e 43 54 20 2d 20 36 38 20 29   DISTINCT - 68 )
27540 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
27550 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a  tab0..----..-1..
27560 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
27570 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
27580 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
27590 73 6f 72 74 20 6c 61 62 65 6c 2d 38 37 30 0d 0a  sort label-870..
275a0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
275b0 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f  + COUNT( * ) FRO
275c0 4d 20 74 61 62 30 20 57 48 45 52 45 20 63 6f 6c  M tab0 WHERE col
275d0 30 20 4e 4f 54 20 49 4e 20 28 20 2d 20 28 20 36  0 NOT IN ( - ( 6
275e0 30 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a  0 ) )..----..3..
275f0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
27600 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
27610 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
27620 20 6c 61 62 65 6c 2d 38 37 30 0d 0a 53 45 4c 45   label-870..SELE
27630 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 4f  CT DISTINCT + CO
27640 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
27650 61 62 30 20 57 48 45 52 45 20 63 6f 6c 30 20 4e  ab0 WHERE col0 N
27660 4f 54 20 49 4e 20 28 20 2d 20 28 20 36 30 20 29  OT IN ( - ( 60 )
27670 20 29 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71   )..----..3....q
27680 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
27690 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
276a0 74 61 62 30 20 57 48 45 52 45 20 37 37 20 49 53  tab0 WHERE 77 IS
276b0 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
276c0 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
276d0 67 20 74 6f 20 63 34 62 34 32 37 36 35 64 66 66  g to c4b42765dff
276e0 39 34 65 61 61 61 34 36 30 34 30 65 35 33 37 66  94eaaa46040e537f
276f0 62 34 33 62 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  b43b7....onlyif 
27700 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
27710 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
27720 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
27730 6f 72 74 20 6c 61 62 65 6c 2d 38 37 32 0d 0a 53  ort label-872..S
27740 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20 2a  ELECT ALL col2 *
27750 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 30   - col0 + - col0
27760 20 44 49 56 20 2b 20 63 6f 6c 31 20 41 53 20 63   DIV + col1 AS c
27770 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol0 FROM tab2..-
27780 2d 2d 2d 0d 0a 2d 31 30 35 38 0d 0a 2d 32 35 36  ---..-1058..-256
27790 30 0d 0a 2d 34 33 35 31 0d 0a 0d 0a 73 6b 69 70  0..-4351....skip
277a0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
277b0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
277c0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
277d0 2d 38 37 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -872..SELECT ALL
277e0 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 30 20 2b   col2 * - col0 +
277f0 20 2d 20 63 6f 6c 30 20 2f 20 2b 20 63 6f 6c 31   - col0 / + col1
27800 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
27810 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 35 38 0d  b2..----..-1058.
27820 0a 2d 32 35 36 30 0d 0a 2d 34 33 35 31 0d 0a 0d  .-2560..-4351...
27830 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
27840 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
27850 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  NCT * FROM tab2 
27860 57 48 45 52 45 20 2d 20 38 31 20 4e 4f 54 20 49  WHERE - 81 NOT I
27870 4e 20 28 20 2d 20 33 37 20 2a 20 2b 20 37 34 20  N ( - 37 * + 74 
27880 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  )..----..9 value
27890 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63  s hashing to 75c
278a0 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62  998aa53ac83218cb
278b0 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d  f2feb962d0a49...
278c0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
278d0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
278e0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
278f0 6f 72 74 20 6c 61 62 65 6c 2d 38 37 34 0d 0a 53  ort label-874..S
27900 45 4c 45 43 54 20 2d 20 4d 49 4e 28 20 41 4c 4c  ELECT - MIN( ALL
27910 20 2d 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c   - col1 ) AS col
27920 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  2 FROM tab2..---
27930 2d 0d 0a 37 37 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..77....skipif 
27940 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
27950 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
27960 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 37  rowsort label-87
27970 34 0d 0a 53 45 4c 45 43 54 20 2d 20 4d 49 4e 20  4..SELECT - MIN 
27980 28 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 29 20 41  ( ALL - col1 ) A
27990 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
279a0 0d 0a 2d 2d 2d 2d 0d 0a 37 37 0d 0a 0d 0a 71 75  ..----..77....qu
279b0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
279c0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
279d0 20 35 35 20 46 52 4f 4d 20 74 61 62 31 20 57 48   55 FROM tab1 WH
279e0 45 52 45 20 4e 55 4c 4c 20 3c 3d 20 2d 20 63 6f  ERE NULL <= - co
279f0 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  l2..----....only
27a00 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
27a10 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
27a20 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
27a30 61 62 65 6c 2d 38 37 36 0d 0a 53 45 4c 45 43 54  abel-876..SELECT
27a40 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 28 20 2d 20   ALL + COUNT( - 
27a50 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 32  col0 ) FROM tab2
27a60 20 57 48 45 52 45 20 28 20 2d 20 28 20 35 33 20   WHERE ( - ( 53 
27a70 29 20 2b 20 36 31 20 29 20 49 53 20 4e 55 4c 4c  ) + 61 ) IS NULL
27a80 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69  ..----..0....ski
27a90 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
27aa0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
27ab0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
27ac0 6c 2d 38 37 36 0d 0a 53 45 4c 45 43 54 20 41 4c  l-876..SELECT AL
27ad0 4c 20 2b 20 43 4f 55 4e 54 20 28 20 2d 20 63 6f  L + COUNT ( - co
27ae0 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 32 20 57  l0 ) FROM tab2 W
27af0 48 45 52 45 20 28 20 2d 20 28 20 35 33 20 29 20  HERE ( - ( 53 ) 
27b00 2b 20 36 31 20 29 20 49 53 20 4e 55 4c 4c 0d 0a  + 61 ) IS NULL..
27b10 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  ----..0....skipi
27b20 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
27b30 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
27b40 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
27b50 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
27b60 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
27b70 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
27b80 63 6f 6c 31 20 63 6f 6c 31 20 46 52 4f 4d 20 74  col1 col1 FROM t
27b90 61 62 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 3e  ab1 WHERE NULL >
27ba0 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   col0..----....q
27bb0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
27bc0 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2a 20  SELECT + col1 * 
27bd0 2b 20 63 6f 6c 31 20 2b 20 2b 20 32 36 20 46 52  + col1 + + 26 FR
27be0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32  OM tab2..----..2
27bf0 36 32 37 0d 0a 34 35 31 35 0d 0a 35 39 35 35 0d  627..4515..5955.
27c00 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
27c10 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
27c20 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
27c30 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  0 WHERE NOT NULL
27c40 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 28 20 2d   NOT BETWEEN ( -
27c50 20 34 20 29 20 41 4e 44 20 31 39 0d 0a 2d 2d 2d   4 ) AND 19..---
27c60 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
27c70 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
27c80 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
27c90 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 38  rowsort label-88
27ca0 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  0..SELECT DISTIN
27cb0 43 54 20 4d 41 58 28 20 2d 20 38 39 20 29 20 2a  CT MAX( - 89 ) *
27cc0 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52   + COUNT( * ) FR
27cd0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
27ce0 32 36 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  267....skipif my
27cf0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
27d00 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
27d10 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 38 30 0d  wsort label-880.
27d20 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
27d30 20 4d 41 58 20 28 20 2d 20 38 39 20 29 20 2a 20   MAX ( - 89 ) * 
27d40 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52  + COUNT ( * ) FR
27d50 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
27d60 32 36 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  267....skipif po
27d70 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
27d80 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
27d90 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
27da0 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
27db0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
27dc0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
27dd0 20 63 6f 6c 31 20 2b 20 32 37 20 63 6f 6c 31 20   col1 + 27 col1 
27de0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
27df0 30 0d 0a 2d 2d 2d 2d 0d 0a 33 32 0d 0a 34 31 0d  0..----..32..41.
27e00 0a 37 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  .74....query III
27e10 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
27e20 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31   ALL * FROM tab1
27e30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
27e40 55 4c 4c 20 49 4e 20 28 20 39 32 20 2a 20 2d 20  ULL IN ( 92 * - 
27e50 34 31 20 2b 20 2b 20 28 20 38 35 20 2b 20 63 6f  41 + + ( 85 + co
27e60 6c 30 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  l0 ) )..----....
27e70 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
27e80 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
27e90 20 33 36 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 63   36 + col1 * - c
27ea0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
27eb0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31   cor0..----..-11
27ec0 37 39 0d 0a 2d 31 37 39 31 0d 0a 2d 36 31 0d 0a  79..-1791..-61..
27ed0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
27ee0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
27ef0 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  INCT * FROM tab0
27f00 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
27f10 55 4c 4c 20 49 4e 20 28 20 39 32 20 29 0d 0a 2d  ULL IN ( 92 )..-
27f20 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  ---....skipif po
27f30 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
27f40 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
27f50 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
27f60 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
27f70 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
27f80 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f  .SELECT ALL + co
27f90 6c 30 20 2a 20 2b 20 63 6f 6c 31 20 2b 20 2b 20  l0 * + col1 + + 
27fa0 63 6f 6c 31 20 63 6f 6c 30 20 46 52 4f 4d 20 74  col1 col0 FROM t
27fb0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
27fc0 2d 0d 0a 34 33 30 0d 0a 34 33 32 34 0d 0a 37 32  -..430..4324..72
27fd0 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  8....query III r
27fe0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
27ff0 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 63  LL * FROM tab2 c
28000 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 35 33  or0 WHERE NOT 53
28010 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e 55 4c   NOT BETWEEN NUL
28020 4c 20 41 4e 44 20 2d 20 28 20 35 38 20 29 20 2f  L AND - ( 58 ) /
28030 20 2b 20 35 33 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   + 53..----....o
28040 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
28050 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
28060 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
28070 74 20 6c 61 62 65 6c 2d 38 38 37 0d 0a 53 45 4c  t label-887..SEL
28080 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55  ECT DISTINCT COU
28090 4e 54 28 20 2a 20 29 20 63 6f 6c 32 20 46 52 4f  NT( * ) col2 FRO
280a0 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54  M tab1 WHERE NOT
280b0 20 28 20 28 20 63 6f 6c 31 20 29 20 2d 20 63 6f   ( ( col1 ) - co
280c0 6c 30 20 29 20 3c 3e 20 63 6f 6c 30 20 2a 20 63  l0 ) <> col0 * c
280d0 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  ol2..----..0....
280e0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
280f0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73  ot compatible..s
28100 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
28110 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
28120 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
28130 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
28140 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
28150 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 38  rowsort label-88
28160 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  7..SELECT DISTIN
28170 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 63  CT COUNT ( * ) c
28180 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48  ol2 FROM tab1 WH
28190 45 52 45 20 4e 4f 54 20 28 20 28 20 63 6f 6c 31  ERE NOT ( ( col1
281a0 20 29 20 2d 20 63 6f 6c 30 20 29 20 3c 3e 20 63   ) - col0 ) <> c
281b0 6f 6c 30 20 2a 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d  ol0 * col2..----
281c0 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..0....onlyif my
281d0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
281e0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
281f0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
28200 38 38 38 0d 0a 53 45 4c 45 43 54 20 33 38 20 2b  888..SELECT 38 +
28210 20 28 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20   ( - COUNT( * ) 
28220 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
28230 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 35 0d 0a 0d  ab0..----..35...
28240 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
28250 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
28260 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
28270 6c 61 62 65 6c 2d 38 38 38 0d 0a 53 45 4c 45 43  label-888..SELEC
28280 54 20 33 38 20 2b 20 28 20 2d 20 43 4f 55 4e 54  T 38 + ( - COUNT
28290 20 28 20 2a 20 29 20 29 20 41 53 20 63 6f 6c 31   ( * ) ) AS col1
282a0 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
282b0 0d 0a 33 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..35....query II
282c0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
282d0 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
282e0 31 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 36 36  1 WHERE NOT - 66
282f0 20 2b 20 2b 20 37 38 20 49 53 20 4e 4f 54 20 4e   + + 78 IS NOT N
28300 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
28310 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
28320 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
28330 62 32 20 57 48 45 52 45 20 2b 20 28 20 2b 20 63  b2 WHERE + ( + c
28340 6f 6c 30 20 29 20 2b 20 2b 20 63 6f 6c 32 20 2a  ol0 ) + + col2 *
28350 20 33 38 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d   38 IS NULL..---
28360 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
28370 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
28380 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
28390 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
283a0 74 20 6c 61 62 65 6c 2d 38 39 31 0d 0a 53 45 4c  t label-891..SEL
283b0 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
283c0 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
283d0 45 20 35 37 20 2b 20 2b 20 28 20 2d 20 63 6f 6c  E 57 + + ( - col
283e0 31 20 29 20 42 45 54 57 45 45 4e 20 28 20 63 6f  1 ) BETWEEN ( co
283f0 6c 32 20 29 20 41 4e 44 20 63 6f 6c 31 20 2a 20  l2 ) AND col1 * 
28400 63 6f 6c 30 20 2b 20 63 6f 6c 30 20 2a 20 2b 20  col0 + col0 * + 
28410 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
28420 47 4e 45 44 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  GNED )..----....
28430 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
28440 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
28450 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
28460 20 6c 61 62 65 6c 2d 38 39 31 0d 0a 53 45 4c 45   label-891..SELE
28470 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
28480 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
28490 20 35 37 20 2b 20 2b 20 28 20 2d 20 63 6f 6c 31   57 + + ( - col1
284a0 20 29 20 42 45 54 57 45 45 4e 20 28 20 63 6f 6c   ) BETWEEN ( col
284b0 32 20 29 20 41 4e 44 20 63 6f 6c 31 20 2a 20 63  2 ) AND col1 * c
284c0 6f 6c 30 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 43  ol0 + col0 * + C
284d0 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
284e0 54 45 47 45 52 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d  TEGER )..----...
284f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
28500 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
28510 54 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c  T + col1 * + col
28520 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  1 AS col0 FROM t
28530 61 62 30 20 63 6f 72 30 20 57 48 45 52 45 20 4e  ab0 cor0 WHERE N
28540 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e  OT NULL IS NOT N
28550 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 34 34  ULL..----..1..44
28560 31 0d 0a 36 35 36 31 0d 0a 0d 0a 6f 6e 6c 79 69  1..6561....onlyi
28570 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
28580 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
28590 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
285a0 62 65 6c 2d 38 39 33 0d 0a 53 45 4c 45 43 54 20  bel-893..SELECT 
285b0 2d 20 43 4f 55 4e 54 28 20 41 4c 4c 20 63 6f 6c  - COUNT( ALL col
285c0 32 20 29 20 2a 20 36 20 46 52 4f 4d 20 74 61 62  2 ) * 6 FROM tab
285d0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
285e0 0a 2d 31 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-18....skipif m
285f0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
28600 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
28610 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 39 33  owsort label-893
28620 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54  ..SELECT - COUNT
28630 20 28 20 41 4c 4c 20 63 6f 6c 32 20 29 20 2a 20   ( ALL col2 ) * 
28640 36 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  6 FROM tab2 AS c
28650 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38 0d 0a  or0..----..-18..
28660 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
28670 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
28680 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
28690 57 48 45 52 45 20 63 6f 6c 31 20 3e 20 28 20 4e  WHERE col1 > ( N
286a0 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f  ULL )..----....o
286b0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
286c0 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
286d0 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
286e0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
286f0 38 39 35 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  895..SELECT + co
28700 6c 32 20 44 49 56 20 2b 20 34 20 41 53 20 63 6f  l2 DIV + 4 AS co
28710 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
28720 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a  cor0..----..10..
28730 31 34 0d 0a 35 0d 0a 0d 0a 73 6b 69 70 69 66 20  14..5....skipif 
28740 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
28750 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
28760 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 39  rowsort label-89
28770 35 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32  5..SELECT + col2
28780 20 2f 20 2b 20 34 20 41 53 20 63 6f 6c 31 20 46   / + 4 AS col1 F
28790 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
287a0 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 31 34 0d 0a  ..----..10..14..
287b0 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  5....query I row
287c0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63  sort..SELECT + c
287d0 6f 6c 30 20 2f 20 32 31 20 46 52 4f 4d 20 74 61  ol0 / 21 FROM ta
287e0 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
287f0 20 4e 55 4c 4c 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d   NULL < NULL..--
28800 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  --....query III 
28810 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
28820 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
28830 74 61 62 31 20 63 6f 72 30 20 57 48 45 52 45 20  tab1 cor0 WHERE 
28840 28 20 63 6f 6c 32 20 29 20 3d 20 28 20 4e 55 4c  ( col2 ) = ( NUL
28850 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  L )..----....onl
28860 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
28870 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61   syntax: aggrega
28880 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  te syntax: SIGNE
28890 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
288a0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
288b0 38 39 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  898..SELECT ALL 
288c0 2d 20 2b 20 53 55 4d 28 20 43 41 53 54 28 20 4e  - + SUM( CAST( N
288d0 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
288e0 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  ) FROM tab2 AS c
288f0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
28900 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
28910 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
28920 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
28930 74 20 6c 61 62 65 6c 2d 38 39 38 0d 0a 53 45 4c  t label-898..SEL
28940 45 43 54 20 41 4c 4c 20 2d 20 2b 20 53 55 4d 20  ECT ALL - + SUM 
28950 28 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  ( CAST ( NULL AS
28960 20 49 4e 54 45 47 45 52 20 29 20 29 20 46 52 4f   INTEGER ) ) FRO
28970 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
28980 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  ----..NULL....qu
28990 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
289a0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 28  ELECT DISTINCT (
289b0 20 2b 20 63 6f 6c 30 20 29 20 2d 20 2d 20 63 6f   + col0 ) - - co
289c0 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
289d0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 32 0d  cor0..----..102.
289e0 0a 31 37 30 0d 0a 31 38 32 0d 0a 0d 0a 6f 6e 6c  .170..182....onl
289f0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
28a00 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
28a10 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
28a20 6c 61 62 65 6c 2d 39 30 30 0d 0a 53 45 4c 45 43  label-900..SELEC
28a30 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20 41 4c 4c  T ALL COUNT( ALL
28a40 20 2b 20 39 31 20 29 20 41 53 20 63 6f 6c 31 20   + 91 ) AS col1 
28a50 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
28a60 30 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29  0 WHERE ( NULL )
28a70 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e 55 4c   NOT BETWEEN NUL
28a80 4c 20 41 4e 44 20 2d 20 38 0d 0a 2d 2d 2d 2d 0d  L AND - 8..----.
28a90 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
28aa0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
28ab0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
28ac0 73 6f 72 74 20 6c 61 62 65 6c 2d 39 30 30 0d 0a  sort label-900..
28ad0 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54  SELECT ALL COUNT
28ae0 20 28 20 41 4c 4c 20 2b 20 39 31 20 29 20 41 53   ( ALL + 91 ) AS
28af0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
28b00 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20  AS cor0 WHERE ( 
28b10 4e 55 4c 4c 20 29 20 4e 4f 54 20 42 45 54 57 45  NULL ) NOT BETWE
28b20 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2d 20 38 0d  EN NULL AND - 8.
28b30 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72  .----..0....quer
28b40 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
28b50 45 43 54 20 41 4c 4c 20 2b 20 2d 20 32 34 20 2b  ECT ALL + - 24 +
28b60 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   - col2 FROM tab
28b70 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
28b80 0a 2d 31 32 30 0d 0a 2d 38 33 0d 0a 2d 39 32 0d  .-120..-83..-92.
28b90 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
28ba0 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 33  rt..SELECT - - 3
28bb0 34 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  4 FROM tab2 cor0
28bc0 0d 0a 2d 2d 2d 2d 0d 0a 33 34 0d 0a 33 34 0d 0a  ..----..34..34..
28bd0 33 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  34....onlyif mys
28be0 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
28bf0 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
28c00 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
28c10 20 6c 61 62 65 6c 2d 39 30 33 0d 0a 53 45 4c 45   label-903..SELE
28c20 43 54 20 2d 20 28 20 43 41 53 54 28 20 4e 55 4c  CT - ( CAST( NUL
28c30 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20  L AS SIGNED ) ) 
28c40 2b 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  + + col2 FROM ta
28c50 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
28c60 20 4e 55 4c 4c 20 3e 20 28 20 63 6f 6c 31 20 29   NULL > ( col1 )
28c70 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
28c80 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
28c90 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
28ca0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
28cb0 30 33 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20 43  03..SELECT - ( C
28cc0 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
28cd0 54 45 47 45 52 20 29 20 29 20 2b 20 2b 20 63 6f  TEGER ) ) + + co
28ce0 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
28cf0 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  cor0 WHERE NULL 
28d00 3e 20 28 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d  > ( col1 )..----
28d10 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
28d20 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
28d30 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
28d40 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e 4f 54  0 WHERE NULL NOT
28d50 20 49 4e 20 28 20 33 32 20 2a 20 33 37 20 29 0d   IN ( 32 * 37 ).
28d60 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
28d70 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
28d80 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41  CT * FROM tab0 A
28d90 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 63  S cor0 WHERE + c
28da0 6f 6c 30 20 2b 20 2d 20 63 6f 6c 30 20 49 4e 20  ol0 + - col0 IN 
28db0 28 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d  ( + col1 )..----
28dc0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
28dd0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
28de0 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
28df0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
28e00 61 62 65 6c 2d 39 30 36 0d 0a 53 45 4c 45 43 54  abel-906..SELECT
28e10 20 44 49 53 54 49 4e 43 54 20 41 56 47 20 28 20   DISTINCT AVG ( 
28e20 44 49 53 54 49 4e 43 54 20 43 41 53 54 28 20 4e  DISTINCT CAST( N
28e30 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
28e40 29 20 2d 20 2d 20 39 33 20 63 6f 6c 31 20 46 52  ) - - 93 col1 FR
28e50 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d  OM tab0 cor0..--
28e60 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
28e70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
28e80 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
28e90 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
28ea0 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
28eb0 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
28ec0 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
28ed0 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
28ee0 6f 72 74 20 6c 61 62 65 6c 2d 39 30 36 0d 0a 53  ort label-906..S
28ef0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 41  ELECT DISTINCT A
28f00 56 47 20 28 20 44 49 53 54 49 4e 43 54 20 43 41  VG ( DISTINCT CA
28f10 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
28f20 45 47 45 52 20 29 20 29 20 2d 20 2d 20 39 33 20  EGER ) ) - - 93 
28f30 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63  col1 FROM tab0 c
28f40 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
28f50 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
28f60 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
28f70 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65  ax: DIV for inte
28f80 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
28f90 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
28fa0 6c 61 62 65 6c 2d 39 30 37 0d 0a 53 45 4c 45 43  label-907..SELEC
28fb0 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20 2d 20 37  T ALL COUNT( - 7
28fc0 20 29 20 44 49 56 20 35 36 20 2d 20 31 20 63 6f   ) DIV 56 - 1 co
28fd0 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
28fe0 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 73 6b 69 70 69 66  --..-1....skipif
28ff0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
29000 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
29010 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
29020 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
29030 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
29040 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
29050 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
29060 74 20 6c 61 62 65 6c 2d 39 30 37 0d 0a 53 45 4c  t label-907..SEL
29070 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20 28 20  ECT ALL COUNT ( 
29080 2d 20 37 20 29 20 2f 20 35 36 20 2d 20 31 20 63  - 7 ) / 56 - 1 c
29090 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
290a0 2d 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 71 75 65 72 79  ---..-1....query
290b0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
290c0 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 2b 20  CT ALL + col1 + 
290d0 2b 20 2b 20 38 31 20 2b 20 2b 20 63 6f 6c 30 20  + + 81 + + col0 
290e0 2a 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32  * - col0 AS col2
290f0 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
29100 0d 0a 2d 36 33 0d 0a 2d 37 34 36 37 0d 0a 2d 39  ..-63..-7467..-9
29110 33 32 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  327....query I r
29120 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
29130 4c 4c 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20  LL col2 AS col2 
29140 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
29150 2b 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55  + col2 IS NOT NU
29160 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 34 30  LL..----..23..40
29170 0d 0a 35 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..58....query I 
29180 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
29190 2b 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 32 20  + col0 + + col2 
291a0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
291b0 32 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  2 WHERE NOT NULL
291c0 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
291d0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
291e0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
291f0 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
29200 45 20 4e 4f 54 20 63 6f 6c 32 20 2a 20 2b 20 63  E NOT col2 * + c
29210 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ol0 IS NULL..---
29220 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
29230 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35 64  ing to c4b42765d
29240 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35 33  ff94eaaa46040e53
29250 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72 79  7fb43b7....query
29260 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
29270 43 54 20 41 4c 4c 20 2b 20 37 34 20 2a 20 63 6f  CT ALL + 74 * co
29280 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
29290 2d 2d 0d 0a 31 31 31 30 0d 0a 36 34 33 38 0d 0a  --..1110..6438..
292a0 37 31 37 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  7178....onlyif m
292b0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
292c0 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79  ax: aggregate sy
292d0 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
292e0 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
292f0 73 6f 72 74 20 6c 61 62 65 6c 2d 39 31 33 0d 0a  sort label-913..
29300 53 45 4c 45 43 54 20 2b 20 43 41 53 54 28 20 43  SELECT + CAST( C
29310 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 53 49 47  OUNT( * ) AS SIG
29320 4e 45 44 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20  NED ) col0 FROM 
29330 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d  tab2..----..3...
29340 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
29350 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
29360 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
29370 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
29380 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
29390 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
293a0 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
293b0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
293c0 31 33 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53  13..SELECT + CAS
293d0 54 20 28 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  T ( COUNT ( * ) 
293e0 41 53 20 49 4e 54 45 47 45 52 20 29 20 63 6f 6c  AS INTEGER ) col
293f0 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
29400 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -..3....onlyif m
29410 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
29420 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79  ax: aggregate sy
29430 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
29440 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
29450 73 6f 72 74 20 6c 61 62 65 6c 2d 39 31 34 0d 0a  sort label-914..
29460 53 45 4c 45 43 54 20 2b 20 34 39 20 2a 20 2d 20  SELECT + 49 * - 
29470 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  - CAST( NULL AS 
29480 53 49 47 4e 45 44 20 29 20 2a 20 4d 49 4e 28 20  SIGNED ) * MIN( 
29490 44 49 53 54 49 4e 43 54 20 2d 20 35 38 20 29 20  DISTINCT - 58 ) 
294a0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
294b0 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  0..----..NULL...
294c0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
294d0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
294e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
294f0 6c 61 62 65 6c 2d 39 31 34 0d 0a 53 45 4c 45 43  label-914..SELEC
29500 54 20 2b 20 34 39 20 2a 20 2d 20 2d 20 43 41 53  T + 49 * - - CAS
29510 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
29520 47 45 52 20 29 20 2a 20 4d 49 4e 20 28 20 44 49  GER ) * MIN ( DI
29530 53 54 49 4e 43 54 20 2d 20 35 38 20 29 20 46 52  STINCT - 58 ) FR
29540 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
29550 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
29560 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
29570 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
29580 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
29590 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
295a0 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
295b0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
295c0 2d 20 37 37 20 63 6f 6c 30 20 46 52 4f 4d 20 74  - 77 col0 FROM t
295d0 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
295e0 45 20 4e 4f 54 20 2b 20 63 6f 6c 32 20 2a 20 63  E NOT + col2 * c
295f0 6f 6c 32 20 42 45 54 57 45 45 4e 20 2d 20 38 20  ol2 BETWEEN - 8 
29600 2b 20 2b 20 63 6f 6c 30 20 41 4e 44 20 28 20 2b  + + col0 AND ( +
29610 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 2d   col1 )..----..-
29620 37 37 0d 0a 2d 37 37 0d 0a 2d 37 37 0d 0a 0d 0a  77..-77..-77....
29630 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
29640 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
29650 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
29660 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  0 WHERE NOT NULL
29670 20 3d 20 2b 20 63 6f 6c 31 20 2f 20 2d 20 63 6f   = + col1 / - co
29680 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  l2..----....only
29690 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
296a0 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
296b0 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
296c0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 31 37  owsort label-917
296d0 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2a 20  ..SELECT col1 * 
296e0 2b 20 2d 20 28 20 28 20 63 6f 6c 32 20 29 20 29  + - ( ( col2 ) )
296f0 20 2d 20 2d 20 63 6f 6c 31 20 44 49 56 20 63 6f   - - col1 DIV co
29700 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l1 AS col2 FROM 
29710 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
29720 2d 2d 0d 0a 2d 32 30 39 0d 0a 2d 33 38 30 36 0d  --..-209..-3806.
29730 0a 2d 39 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-98....skipif m
29740 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
29750 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
29760 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 31 37  owsort label-917
29770 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2a 20  ..SELECT col1 * 
29780 2b 20 2d 20 28 20 28 20 63 6f 6c 32 20 29 20 29  + - ( ( col2 ) )
29790 20 2d 20 2d 20 63 6f 6c 31 20 2f 20 63 6f 6c 31   - - col1 / col1
297a0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
297b0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
297c0 0d 0a 2d 32 30 39 0d 0a 2d 33 38 30 36 0d 0a 2d  ..-209..-3806..-
297d0 39 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  98....query III 
297e0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
297f0 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
29800 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 28  tab1 WHERE NOT (
29810 20 4e 4f 54 20 28 20 63 6f 6c 31 20 29 20 3c 3d   NOT ( col1 ) <=
29820 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39   col0 )..----..9
29830 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
29840 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64  to c6c0a4111b36d
29850 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34  04dbc811a11e4d54
29860 63 61 64 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  cad....onlyif my
29870 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
29880 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20  syntax: DIV for 
29890 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
298a0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
298b0 6f 72 74 20 6c 61 62 65 6c 2d 39 31 39 0d 0a 53  ort label-919..S
298c0 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28  ELECT ALL COUNT(
298d0 20 2a 20 29 20 44 49 56 20 2b 20 2d 20 43 4f 55   * ) DIV + - COU
298e0 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20  NT( * ) AS col1 
298f0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
29900 0a 2d 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .-1....skipif my
29910 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
29920 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
29930 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 31 39 0d  wsort label-919.
29940 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e  .SELECT ALL COUN
29950 54 20 28 20 2a 20 29 20 2f 20 2b 20 2d 20 43 4f  T ( * ) / + - CO
29960 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c  UNT ( * ) AS col
29970 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
29980 2d 0d 0a 2d 31 0d 0a 0d 0a 71 75 65 72 79 20 49  -..-1....query I
29990 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
299a0 20 2d 20 37 20 46 52 4f 4d 20 74 61 62 31 20 41   - 7 FROM tab1 A
299b0 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  S cor0 CROSS JOI
299c0 4e 20 74 61 62 32 20 41 53 20 63 6f 72 31 0d 0a  N tab2 AS cor1..
299d0 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
299e0 61 73 68 69 6e 67 20 74 6f 20 62 61 39 34 30 63  ashing to ba940c
299f0 64 36 36 65 32 31 65 39 34 65 39 35 61 61 64 61  d66e21e94e95aada
29a00 35 66 32 38 65 31 66 61 66 35 0d 0a 0d 0a 71 75  5f28e1faf5....qu
29a10 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
29a20 45 4c 45 43 54 20 41 4c 4c 20 2b 20 37 38 20 2a  ELECT ALL + 78 *
29a30 20 2b 20 32 36 20 46 52 4f 4d 20 74 61 62 32 0d   + 26 FROM tab2.
29a40 0a 2d 2d 2d 2d 0d 0a 32 30 32 38 0d 0a 32 30 32  .----..2028..202
29a50 38 0d 0a 32 30 32 38 0d 0a 0d 0a 6f 6e 6c 79 69  8..2028....onlyi
29a60 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
29a70 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
29a80 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
29a90 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 32 32 0d  wsort label-922.
29aa0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20  .SELECT ALL + - 
29ab0 35 37 20 44 49 56 20 2b 20 37 35 20 2a 20 35 31  57 DIV + 75 * 51
29ac0 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20   + col1 AS col2 
29ad0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
29ae0 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 36 37 0d  0..----..51..67.
29af0 0a 37 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .77....skipif my
29b00 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
29b10 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
29b20 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 32 32 0d  wsort label-922.
29b30 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20  .SELECT ALL + - 
29b40 35 37 20 2f 20 2b 20 37 35 20 2a 20 35 31 20 2b  57 / + 75 * 51 +
29b50 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52   col1 AS col2 FR
29b60 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
29b70 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 36 37 0d 0a 37  .----..51..67..7
29b80 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  7....onlyif mysq
29b90 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
29ba0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
29bb0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 32  rowsort label-92
29bc0 33 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 4d 41  3..SELECT + + MA
29bd0 58 28 20 2d 20 63 6f 6c 32 20 29 20 46 52 4f 4d  X( - col2 ) FROM
29be0 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
29bf0 2d 2d 2d 0d 0a 2d 31 30 0d 0a 0d 0a 73 6b 69 70  ---..-10....skip
29c00 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
29c10 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
29c20 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
29c30 2d 39 32 33 0d 0a 53 45 4c 45 43 54 20 2b 20 2b  -923..SELECT + +
29c40 20 4d 41 58 20 28 20 2d 20 63 6f 6c 32 20 29 20   MAX ( - col2 ) 
29c50 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
29c60 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 0d 0a  0..----..-10....
29c70 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
29c80 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
29c90 20 2b 20 2d 20 28 20 2b 20 63 6f 6c 32 20 29 20   + - ( + col2 ) 
29ca0 2a 20 2d 20 35 20 2a 20 2b 20 63 6f 6c 31 20 41  * - 5 * + col1 A
29cb0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
29cc0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
29cd0 31 34 37 35 0d 0a 31 35 39 38 30 0d 0a 36 37 32  1475..15980..672
29ce0 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
29cf0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
29d00 54 49 4e 43 54 20 63 6f 6c 31 20 41 53 20 63 6f  TINCT col1 AS co
29d10 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
29d20 63 6f 72 30 20 57 48 45 52 45 20 32 35 20 3e 20  cor0 WHERE 25 > 
29d30 39 30 20 4f 52 20 4e 55 4c 4c 20 42 45 54 57 45  90 OR NULL BETWE
29d40 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2b 20 31 35  EN NULL AND + 15
29d50 20 2a 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d   * col1..----...
29d60 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
29d70 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
29d80 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
29d90 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
29da0 6c 2d 39 32 36 0d 0a 53 45 4c 45 43 54 20 41 4c  l-926..SELECT AL
29db0 4c 20 2b 20 43 41 53 54 28 20 2b 20 2b 20 63 6f  L + CAST( + + co
29dc0 6c 30 20 41 53 20 53 49 47 4e 45 44 20 29 20 46  l0 AS SIGNED ) F
29dd0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
29de0 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 38 37 0d 0a  ..----..15..87..
29df0 39 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  97....skipif mys
29e00 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
29e10 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
29e20 73 6f 72 74 20 6c 61 62 65 6c 2d 39 32 36 0d 0a  sort label-926..
29e30 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 41 53  SELECT ALL + CAS
29e40 54 20 28 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20  T ( + + col0 AS 
29e50 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74  INTEGER ) FROM t
29e60 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
29e70 2d 0d 0a 31 35 0d 0a 38 37 0d 0a 39 37 0d 0a 0d  -..15..87..97...
29e80 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
29e90 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
29ea0 54 20 2b 20 36 36 20 2a 20 2d 20 31 32 20 41 53  T + 66 * - 12 AS
29eb0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
29ec0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
29ed0 37 39 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  792....onlyif my
29ee0 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
29ef0 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
29f00 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
29f10 74 20 6c 61 62 65 6c 2d 39 32 38 0d 0a 53 45 4c  t label-928..SEL
29f20 45 43 54 20 2b 20 63 6f 6c 31 20 44 49 56 20 2b  ECT + col1 DIV +
29f30 20 2d 20 35 36 20 41 53 20 63 6f 6c 32 20 46 52   - 56 AS col2 FR
29f40 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
29f50 31 0d 0a 2d 31 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  1..-1..0....skip
29f60 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
29f70 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
29f80 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
29f90 2d 39 32 38 0d 0a 53 45 4c 45 43 54 20 2b 20 63  -928..SELECT + c
29fa0 6f 6c 31 20 2f 20 2b 20 2d 20 35 36 20 41 53 20  ol1 / + - 56 AS 
29fb0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col2 FROM tab2..
29fc0 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 31 0d 0a 30 0d  ----..-1..-1..0.
29fd0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
29fe0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
29ff0 49 47 4e 45 44 20 74 79 70 65 3a 20 44 49 56 20  IGNED type: DIV 
2a000 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
2a010 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
2a020 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 32  rowsort label-92
2a030 39 0d 0a 53 45 4c 45 43 54 20 2d 20 31 37 20 2b  9..SELECT - 17 +
2a040 20 2b 20 38 38 20 2b 20 2d 20 28 20 2b 20 2d 20   + 88 + - ( + - 
2a050 63 6f 6c 31 20 29 20 44 49 56 20 43 41 53 54 28  col1 ) DIV CAST(
2a060 20 63 6f 6c 30 20 41 53 20 53 49 47 4e 45 44 20   col0 AS SIGNED 
2a070 29 20 44 49 56 20 2b 20 63 6f 6c 32 20 46 52 4f  ) DIV + col2 FRO
2a080 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 37 31  M tab2..----..71
2a090 0d 0a 37 31 0d 0a 37 31 0d 0a 0d 0a 73 6b 69 70  ..71..71....skip
2a0a0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2a0b0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2a0c0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2a0d0 2d 39 32 39 0d 0a 53 45 4c 45 43 54 20 2d 20 31  -929..SELECT - 1
2a0e0 37 20 2b 20 2b 20 38 38 20 2b 20 2d 20 28 20 2b  7 + + 88 + - ( +
2a0f0 20 2d 20 63 6f 6c 31 20 29 20 2f 20 43 41 53 54   - col1 ) / CAST
2a100 20 28 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47   ( col0 AS INTEG
2a110 45 52 20 29 20 2f 20 2b 20 63 6f 6c 32 20 46 52  ER ) / + col2 FR
2a120 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 37  OM tab2..----..7
2a130 31 0d 0a 37 31 0d 0a 37 31 0d 0a 0d 0a 73 6b 69  1..71..71....ski
2a140 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
2a150 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
2a160 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
2a170 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
2a180 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
2a190 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
2a1a0 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20 2a 20  STINCT + col2 * 
2a1b0 63 6f 6c 32 20 63 6f 6c 31 20 46 52 4f 4d 20 74  col2 col1 FROM t
2a1c0 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 28 20  ab2 WHERE NOT ( 
2a1d0 4e 55 4c 4c 20 29 20 49 53 20 4e 4f 54 20 4e 55  NULL ) IS NOT NU
2a1e0 4c 4c 20 41 4e 44 20 63 6f 6c 31 20 3c 20 28 20  LL AND col1 < ( 
2a1f0 2b 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a  + col0 )..----..
2a200 33 33 36 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  3364....onlyif m
2a210 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
2a220 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
2a230 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2a240 2d 39 33 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -931..SELECT ALL
2a250 20 4d 49 4e 28 20 44 49 53 54 49 4e 43 54 20 2d   MIN( DISTINCT -
2a260 20 2b 20 31 32 20 29 20 63 6f 6c 31 20 46 52 4f   + 12 ) col1 FRO
2a270 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab0..----..-1
2a280 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  2....skipif mysq
2a290 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2a2a0 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
2a2b0 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
2a2c0 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
2a2d0 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
2a2e0 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
2a2f0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2a300 65 6c 2d 39 33 31 0d 0a 53 45 4c 45 43 54 20 41  el-931..SELECT A
2a310 4c 4c 20 4d 49 4e 20 28 20 44 49 53 54 49 4e 43  LL MIN ( DISTINC
2a320 54 20 2d 20 2b 20 31 32 20 29 20 63 6f 6c 31 20  T - + 12 ) col1 
2a330 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
2a340 0a 2d 31 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .-12....query II
2a350 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2a360 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 31 35 20 41   - col1 + - 15 A
2a370 53 20 63 6f 6c 31 2c 20 2b 20 32 20 41 53 20 63  S col1, + 2 AS c
2a380 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
2a390 2d 2d 2d 0d 0a 2d 36 36 0d 0a 32 0d 0a 2d 38 32  ---..-66..2..-82
2a3a0 0d 0a 32 0d 0a 2d 39 32 0d 0a 32 0d 0a 0d 0a 71  ..2..-92..2....q
2a3b0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2a3c0 53 45 4c 45 43 54 20 2b 20 35 37 20 2b 20 63 6f  SELECT + 57 + co
2a3d0 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  l2 FROM tab1 WHE
2a3e0 52 45 20 4e 4f 54 20 28 20 32 33 20 2b 20 2d 20  RE NOT ( 23 + - 
2a3f0 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 30 20 29 20  col0 + - col0 ) 
2a400 49 53 20 4e 4f 54 20 4e 55 4c 4c 20 41 4e 44 20  IS NOT NULL AND 
2a410 28 20 37 38 20 29 20 3c 3e 20 28 20 4e 55 4c 4c  ( 78 ) <> ( NULL
2a420 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79   )..----....only
2a430 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
2a440 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
2a450 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
2a460 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33 34  owsort label-934
2a470 0d 0a 53 45 4c 45 43 54 20 31 33 20 44 49 56 20  ..SELECT 13 DIV 
2a480 2b 20 31 30 20 2b 20 2d 20 2d 20 63 6f 6c 31 20  + 10 + - - col1 
2a490 2a 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 28 20 63  * + col2 * + ( c
2a4a0 6f 6c 32 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ol2 ) AS col2 FR
2a4b0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab2..----..1
2a4c0 32 33 32 30 31 0d 0a 32 32 35 33 38 39 0d 0a 32  23201..225389..2
2a4d0 36 39 38 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  6980....skipif m
2a4e0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2a4f0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
2a500 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33 34  owsort label-934
2a510 0d 0a 53 45 4c 45 43 54 20 31 33 20 2f 20 2b 20  ..SELECT 13 / + 
2a520 31 30 20 2b 20 2d 20 2d 20 63 6f 6c 31 20 2a 20  10 + - - col1 * 
2a530 2b 20 63 6f 6c 32 20 2a 20 2b 20 28 20 63 6f 6c  + col2 * + ( col
2a540 32 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  2 ) AS col2 FROM
2a550 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 32 33   tab2..----..123
2a560 32 30 31 0d 0a 32 32 35 33 38 39 0d 0a 32 36 39  201..225389..269
2a570 38 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  80....onlyif mys
2a580 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
2a590 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
2a5a0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2a5b0 20 6c 61 62 65 6c 2d 39 33 35 0d 0a 53 45 4c 45   label-935..SELE
2a5c0 43 54 20 28 20 2d 20 43 41 53 54 28 20 4e 55 4c  CT ( - CAST( NUL
2a5d0 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20  L AS SIGNED ) ) 
2a5e0 2b 20 2d 20 33 38 20 46 52 4f 4d 20 74 61 62 32  + - 38 FROM tab2
2a5f0 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
2a600 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  LL..NULL....skip
2a610 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2a620 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2a630 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2a640 2d 39 33 35 0d 0a 53 45 4c 45 43 54 20 28 20 2d  -935..SELECT ( -
2a650 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
2a660 49 4e 54 45 47 45 52 20 29 20 29 20 2b 20 2d 20  INTEGER ) ) + - 
2a670 33 38 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  38 FROM tab2..--
2a680 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
2a690 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20  NULL....query I 
2a6a0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2a6b0 35 33 20 2b 20 2b 20 36 38 20 2b 20 2b 20 28 20  53 + + 68 + + ( 
2a6c0 2b 20 2b 20 36 20 29 20 2b 20 2d 20 34 36 20 2a  + + 6 ) + - 46 *
2a6d0 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52   col0 AS col2 FR
2a6e0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
2a6f0 32 32 31 39 0d 0a 2d 33 37 38 33 0d 0a 2d 34 30  2219..-3783..-40
2a700 35 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  59....query III 
2a710 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2a720 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  * FROM tab2 WHER
2a730 45 20 32 38 20 3e 3d 20 63 6f 6c 30 20 2a 20 63  E 28 >= col0 * c
2a740 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  ol0..----....ski
2a750 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
2a760 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
2a770 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
2a780 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
2a790 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
2a7a0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
2a7b0 53 54 49 4e 43 54 20 28 20 2d 20 39 20 29 20 63  STINCT ( - 9 ) c
2a7c0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
2a7d0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d   cor0..----..-9.
2a7e0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
2a7f0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
2a800 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
2a810 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e 55 4c  cor0 WHERE ( NUL
2a820 4c 20 49 4e 20 28 20 2d 20 63 6f 6c 32 20 2a 20  L IN ( - col2 * 
2a830 2b 20 33 38 20 2b 20 2b 20 35 37 20 29 20 29 0d  + 38 + + 57 ) ).
2a840 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
2a850 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2a860 54 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30  T + col0 AS col0
2a870 2c 20 2b 20 38 35 20 2b 20 2d 20 63 6f 6c 32 20  , + 85 + - col2 
2a880 2b 20 63 6f 6c 30 20 2a 20 63 6f 6c 32 20 46 52  + col0 * col2 FR
2a890 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
2a8a0 57 48 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 42  WHERE NULL NOT B
2a8b0 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20  ETWEEN NULL AND 
2a8c0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
2a8d0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
2a8e0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
2a8f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2a900 20 6c 61 62 65 6c 2d 39 34 31 0d 0a 53 45 4c 45   label-941..SELE
2a910 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 4f  CT DISTINCT + CO
2a920 55 4e 54 28 20 2a 20 29 20 2a 20 2d 20 43 4f 55  UNT( * ) * - COU
2a930 4e 54 28 20 2a 20 29 20 2b 20 2b 20 32 35 20 46  NT( * ) + + 25 F
2a940 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
2a950 0d 0a 2d 2d 2d 2d 0d 0a 31 36 0d 0a 0d 0a 73 6b  ..----..16....sk
2a960 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2a970 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2a980 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2a990 65 6c 2d 39 34 31 0d 0a 53 45 4c 45 43 54 20 44  el-941..SELECT D
2a9a0 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54 20  ISTINCT + COUNT 
2a9b0 28 20 2a 20 29 20 2a 20 2d 20 43 4f 55 4e 54 20  ( * ) * - COUNT 
2a9c0 28 20 2a 20 29 20 2b 20 2b 20 32 35 20 46 52 4f  ( * ) + + 25 FRO
2a9d0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
2a9e0 2d 2d 2d 2d 0d 0a 31 36 0d 0a 0d 0a 71 75 65 72  ----..16....quer
2a9f0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2aa00 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 41 53 20  ECT ALL col1 AS 
2aa10 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
2aa20 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
2aa30 20 28 20 4e 55 4c 4c 20 29 20 49 4e 20 28 20 2b   ( NULL ) IN ( +
2aa40 20 2d 20 34 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   - 41 )..----...
2aa50 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2aa60 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2aa70 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2aa80 6f 72 74 20 6c 61 62 65 6c 2d 39 34 33 0d 0a 53  ort label-943..S
2aa90 45 4c 45 43 54 20 4d 41 58 28 20 44 49 53 54 49  ELECT MAX( DISTI
2aaa0 4e 43 54 20 2b 20 37 30 20 29 20 41 53 20 63 6f  NCT + 70 ) AS co
2aab0 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l0 FROM tab2..--
2aac0 2d 2d 0d 0a 37 30 0d 0a 0d 0a 73 6b 69 70 69 66  --..70....skipif
2aad0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2aae0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2aaf0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2ab00 34 33 0d 0a 53 45 4c 45 43 54 20 4d 41 58 20 28  43..SELECT MAX (
2ab10 20 44 49 53 54 49 4e 43 54 20 2b 20 37 30 20 29   DISTINCT + 70 )
2ab20 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
2ab30 62 32 0d 0a 2d 2d 2d 2d 0d 0a 37 30 0d 0a 0d 0a  b2..----..70....
2ab40 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2ab50 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2d  .SELECT - col2 -
2ab60 20 2d 20 2d 20 39 31 20 41 53 20 63 6f 6c 30 20   - - 91 AS col0 
2ab70 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
2ab80 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 30 0d 0a 2d  0..----..-150..-
2ab90 31 35 39 0d 0a 2d 31 38 37 0d 0a 0d 0a 71 75 65  159..-187....que
2aba0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
2abb0 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
2abc0 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
2abd0 20 2d 20 63 6f 6c 30 20 3e 20 28 20 2d 20 2d 20   - col0 > ( - - 
2abe0 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 31 20 2b 20  col0 * + col1 + 
2abf0 2b 20 31 37 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d  + 17 + col1 )..-
2ac00 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ---....query III
2ac10 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2ac20 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
2ac30 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b  cor0 WHERE NOT +
2ac40 20 63 6f 6c 32 20 2b 20 63 6f 6c 30 20 42 45 54   col2 + col0 BET
2ac50 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2d 20  WEEN NULL AND - 
2ac60 33 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  31..----..9 valu
2ac70 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34  es hashing to c4
2ac80 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34  b42765dff94eaaa4
2ac90 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a  6040e537fb43b7..
2aca0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2acb0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2acc0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
2acd0 73 6f 72 74 20 6c 61 62 65 6c 2d 39 34 37 0d 0a  sort label-947..
2ace0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2acf0 4d 49 4e 28 20 39 20 29 20 41 53 20 63 6f 6c 31  MIN( 9 ) AS col1
2ad00 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
2ad10 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 73  r0..----..9....s
2ad20 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2ad30 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2ad40 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2ad50 62 65 6c 2d 39 34 37 0d 0a 53 45 4c 45 43 54 20  bel-947..SELECT 
2ad60 44 49 53 54 49 4e 43 54 20 4d 49 4e 20 28 20 39  DISTINCT MIN ( 9
2ad70 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
2ad80 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
2ad90 2d 2d 0d 0a 39 0d 0a 0d 0a 71 75 65 72 79 20 49  --..9....query I
2ada0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2adb0 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30   DISTINCT - col0
2adc0 20 2a 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   * col2 FROM tab
2add0 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
2ade0 2b 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 30 20  + col2 + + col0 
2adf0 3c 20 2d 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 36  < - + col2 + + 6
2ae00 34 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  4..----....query
2ae10 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
2ae20 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  LECT * FROM tab2
2ae30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
2ae40 4f 54 20 2b 20 36 37 20 49 53 20 4e 55 4c 4c 0d  OT + 67 IS NULL.
2ae50 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
2ae60 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39  hashing to 75c99
2ae70 38 61 61 35 33 61 63 38 33 32 31 38 63 62 66 32  8aa53ac83218cbf2
2ae80 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 71  feb962d0a49....q
2ae90 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
2aea0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2aeb0 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53  T * FROM tab1 AS
2aec0 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20 38 30   cor0 WHERE - 80
2aed0 20 2a 20 2b 20 63 6f 6c 32 20 2f 20 2b 20 63 6f   * + col2 / + co
2aee0 6c 31 20 4e 4f 54 20 49 4e 20 28 20 2d 20 2b 20  l1 NOT IN ( - + 
2aef0 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20  col2 )..----..9 
2af00 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
2af10 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64 30  o c6c0a4111b36d0
2af20 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34 63  4dbc811a11e4d54c
2af30 61 64 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  ad....onlyif mys
2af40 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
2af50 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
2af60 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
2af70 72 74 20 6c 61 62 65 6c 2d 39 35 31 0d 0a 53 45  rt label-951..SE
2af80 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  LECT * FROM tab2
2af90 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
2afa0 4f 54 20 63 6f 6c 31 20 4e 4f 54 20 42 45 54 57  OT col1 NOT BETW
2afb0 45 45 4e 20 28 20 2b 20 63 6f 6c 31 20 2b 20 2b  EEN ( + col1 + +
2afc0 20 63 6f 6c 31 20 2b 20 2d 20 43 41 53 54 28 20   col1 + - CAST( 
2afd0 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
2afe0 20 2a 20 63 6f 6c 31 20 29 20 41 4e 44 20 4e 55   * col1 ) AND NU
2aff0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70  LL..----....skip
2b000 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2b010 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2b020 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62   III rowsort lab
2b030 65 6c 2d 39 35 31 0d 0a 53 45 4c 45 43 54 20 2a  el-951..SELECT *
2b040 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
2b050 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  r0 WHERE NOT col
2b060 31 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 28 20  1 NOT BETWEEN ( 
2b070 2b 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 31 20  + col1 + + col1 
2b080 2b 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  + - CAST ( NULL 
2b090 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 63  AS INTEGER ) * c
2b0a0 6f 6c 31 20 29 20 41 4e 44 20 4e 55 4c 4c 0d 0a  ol1 ) AND NULL..
2b0b0 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
2b0c0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
2b0d0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
2b0e0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2b0f0 2d 39 35 32 0d 0a 53 45 4c 45 43 54 20 53 55 4d  -952..SELECT SUM
2b100 28 20 41 4c 4c 20 28 20 2d 20 33 35 20 29 20 29  ( ALL ( - 35 ) )
2b110 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
2b120 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 35 0d 0a  r0..----..-105..
2b130 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2b140 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2b150 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2b160 20 6c 61 62 65 6c 2d 39 35 32 0d 0a 53 45 4c 45   label-952..SELE
2b170 43 54 20 53 55 4d 20 28 20 41 4c 4c 20 28 20 2d  CT SUM ( ALL ( -
2b180 20 33 35 20 29 20 29 20 46 52 4f 4d 20 74 61 62   35 ) ) FROM tab
2b190 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
2b1a0 0a 2d 31 30 35 0d 0a 0d 0a 71 75 65 72 79 20 49  .-105....query I
2b1b0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
2b1c0 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
2b1d0 62 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 3e 3d  b1 WHERE NULL >=
2b1e0 20 33 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65   32..----....que
2b1f0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2b200 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
2b210 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 57  col1 FROM tab0 W
2b220 48 45 52 45 20 31 20 4e 4f 54 20 49 4e 20 28 20  HERE 1 NOT IN ( 
2b230 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  col2 )..----..-1
2b240 0d 0a 2d 32 31 0d 0a 2d 38 31 0d 0a 0d 0a 6f 6e  ..-21..-81....on
2b250 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
2b260 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
2b270 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2b280 20 6c 61 62 65 6c 2d 39 35 35 0d 0a 53 45 4c 45   label-955..SELE
2b290 43 54 20 2b 20 4d 41 58 28 20 44 49 53 54 49 4e  CT + MAX( DISTIN
2b2a0 43 54 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c  CT col1 ) AS col
2b2b0 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
2b2c0 2d 0d 0a 34 37 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..47....skipif 
2b2d0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2b2e0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2b2f0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 35  rowsort label-95
2b300 35 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 41 58 20  5..SELECT + MAX 
2b310 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20  ( DISTINCT col1 
2b320 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
2b330 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 34 37 0d 0a 0d  ab1..----..47...
2b340 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
2b350 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
2b360 63 6f 6c 32 2c 20 2d 20 28 20 2b 20 38 37 20 29  col2, - ( + 87 )
2b370 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
2b380 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 2d 38  b1..----..59..-8
2b390 37 0d 0a 36 38 0d 0a 2d 38 37 0d 0a 39 36 0d 0a  7..68..-87..96..
2b3a0 2d 38 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -87....onlyif my
2b3b0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
2b3c0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
2b3d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2b3e0 74 20 6c 61 62 65 6c 2d 39 35 37 0d 0a 53 45 4c  t label-957..SEL
2b3f0 45 43 54 20 2d 20 43 41 53 54 28 20 36 38 20 41  ECT - CAST( 68 A
2b400 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2d 20 36  S SIGNED ) * - 6
2b410 32 20 46 52 4f 4d 20 74 61 62 30 2c 20 74 61 62  2 FROM tab0, tab
2b420 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
2b430 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
2b440 67 20 74 6f 20 65 36 33 37 63 33 30 30 35 37 64  g to e637c30057d
2b450 35 36 31 66 64 64 38 35 39 35 33 61 35 31 31 33  561fdd85953a5113
2b460 35 37 66 66 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  57ff0....skipif 
2b470 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2b480 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2b490 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 35  rowsort label-95
2b4a0 37 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53 54  7..SELECT - CAST
2b4b0 20 28 20 36 38 20 41 53 20 49 4e 54 45 47 45 52   ( 68 AS INTEGER
2b4c0 20 29 20 2a 20 2d 20 36 32 20 46 52 4f 4d 20 74   ) * - 62 FROM t
2b4d0 61 62 30 2c 20 74 61 62 31 20 41 53 20 63 6f 72  ab0, tab1 AS cor
2b4e0 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  0..----..9 value
2b4f0 73 20 68 61 73 68 69 6e 67 20 74 6f 20 65 36 33  s hashing to e63
2b500 37 63 33 30 30 35 37 64 35 36 31 66 64 64 38 35  7c30057d561fdd85
2b510 39 35 33 61 35 31 31 33 35 37 66 66 30 0d 0a 0d  953a511357ff0...
2b520 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2b530 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2b540 54 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31  T - col0 AS col1
2b550 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
2b560 72 30 20 57 48 45 52 45 20 63 6f 6c 32 20 49 53  r0 WHERE col2 IS
2b570 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
2b580 0a 2d 31 35 0d 0a 2d 38 37 0d 0a 2d 39 37 0d 0a  .-15..-87..-97..
2b590 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
2b5a0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
2b5b0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
2b5c0 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 30  WHERE NOT + col0
2b5d0 20 2a 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 32 33   * - col0 + + 23
2b5e0 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e 55 4c   NOT BETWEEN NUL
2b5f0 4c 20 41 4e 44 20 2d 20 2d 20 63 6f 6c 32 0d 0a  L AND - - col2..
2b600 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  ----....skipif p
2b610 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
2b620 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
2b630 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
2b640 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
2b650 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2b660 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2b670 54 20 2d 20 39 33 20 63 6f 6c 32 20 46 52 4f 4d  T - 93 col2 FROM
2b680 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
2b690 2d 2d 2d 0d 0a 2d 39 33 0d 0a 0d 0a 71 75 65 72  ---..-93....quer
2b6a0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2b6b0 45 43 54 20 44 49 53 54 49 4e 43 54 20 32 20 2a  ECT DISTINCT 2 *
2b6c0 20 2d 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74   - + col0 FROM t
2b6d0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
2b6e0 2d 0d 0a 2d 31 30 32 0d 0a 2d 31 37 30 0d 0a 2d  -..-102..-170..-
2b6f0 31 38 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  182....query III
2b700 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2b710 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
2b720 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 31  cor0 WHERE NOT 1
2b730 36 20 2d 20 2b 20 38 31 20 49 53 20 4e 55 4c 4c  6 - + 81 IS NULL
2b740 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
2b750 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34   hashing to c4b4
2b760 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30  2765dff94eaaa460
2b770 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a  40e537fb43b7....
2b780 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2b790 0a 53 45 4c 45 43 54 20 28 20 32 35 20 29 20 41  .SELECT ( 25 ) A
2b7a0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
2b7b0 0d 0a 2d 2d 2d 2d 0d 0a 32 35 0d 0a 32 35 0d 0a  ..----..25..25..
2b7c0 32 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  25....onlyif mys
2b7d0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
2b7e0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
2b7f0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2b800 36 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  64..SELECT ALL -
2b810 20 53 55 4d 28 20 2d 20 32 32 20 29 20 41 53 20   SUM( - 22 ) AS 
2b820 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
2b830 2d 2d 2d 2d 0d 0a 36 36 0d 0a 0d 0a 73 6b 69 70  ----..66....skip
2b840 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2b850 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2b860 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2b870 2d 39 36 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -964..SELECT ALL
2b880 20 2d 20 53 55 4d 20 28 20 2d 20 32 32 20 29 20   - SUM ( - 22 ) 
2b890 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
2b8a0 30 0d 0a 2d 2d 2d 2d 0d 0a 36 36 0d 0a 0d 0a 6f  0..----..66....o
2b8b0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
2b8c0 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
2b8d0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
2b8e0 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
2b8f0 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
2b900 65 6c 2d 39 36 35 0d 0a 53 45 4c 45 43 54 20 2b  el-965..SELECT +
2b910 20 28 20 37 31 20 29 20 41 53 20 63 6f 6c 30 2c   ( 71 ) AS col0,
2b920 20 2b 20 4d 49 4e 28 20 41 4c 4c 20 43 41 53 54   + MIN( ALL CAST
2b930 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
2b940 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a   ) ) FROM tab1..
2b950 2d 2d 2d 2d 0d 0a 37 31 0d 0a 4e 55 4c 4c 0d 0a  ----..71..NULL..
2b960 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2b970 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2b980 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
2b990 74 20 6c 61 62 65 6c 2d 39 36 35 0d 0a 53 45 4c  t label-965..SEL
2b9a0 45 43 54 20 2b 20 28 20 37 31 20 29 20 41 53 20  ECT + ( 71 ) AS 
2b9b0 63 6f 6c 30 2c 20 2b 20 4d 49 4e 20 28 20 41 4c  col0, + MIN ( AL
2b9c0 4c 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  L CAST ( NULL AS
2b9d0 20 49 4e 54 45 47 45 52 20 29 20 29 20 46 52 4f   INTEGER ) ) FRO
2b9e0 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 37 31  M tab1..----..71
2b9f0 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20  ..NULL....query 
2ba00 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
2ba10 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
2ba20 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
2ba30 20 57 48 45 52 45 20 28 20 4e 4f 54 20 28 20 2d   WHERE ( NOT ( -
2ba40 20 34 37 20 2b 20 2b 20 36 36 20 2a 20 2b 20 63   47 + + 66 * + c
2ba50 6f 6c 30 20 2a 20 2d 20 2b 20 63 6f 6c 32 20 29  ol0 * - + col2 )
2ba60 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2d 20 63   NOT BETWEEN - c
2ba70 6f 6c 32 20 41 4e 44 20 4e 55 4c 4c 20 29 0d 0a  ol2 AND NULL )..
2ba80 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
2ba90 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2baa0 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53  T * FROM tab2 AS
2bab0 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e 55   cor0 WHERE ( NU
2bac0 4c 4c 20 29 20 42 45 54 57 45 45 4e 20 4e 55 4c  LL ) BETWEEN NUL
2bad0 4c 20 41 4e 44 20 34 32 0d 0a 2d 2d 2d 2d 0d 0a  L AND 42..----..
2bae0 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
2baf0 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
2bb00 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
2bb10 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
2bb20 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
2bb30 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2bb40 43 54 20 41 4c 4c 20 2b 20 31 37 20 2a 20 2d 20  CT ALL + 17 * - 
2bb50 63 6f 6c 32 20 63 6f 6c 31 20 46 52 4f 4d 20 74  col2 col1 FROM t
2bb60 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab2 cor0..----..
2bb70 2d 33 39 31 0d 0a 2d 36 38 30 0d 0a 2d 39 38 36  -391..-680..-986
2bb80 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2bb90 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
2bba0 49 4e 43 54 20 2d 20 2b 20 63 6f 6c 31 20 2a 20  INCT - + col1 * 
2bbb0 63 6f 6c 31 20 2b 20 2b 20 33 30 20 41 53 20 63  col1 + + 30 AS c
2bbc0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol0 FROM tab2 co
2bbd0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35 37 31 0d  r0..----..-2571.
2bbe0 0a 2d 34 34 35 39 0d 0a 2d 35 38 39 39 0d 0a 0d  .-4459..-5899...
2bbf0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2bc00 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2bc10 54 20 2d 20 2d 20 28 20 2b 20 63 6f 6c 30 20 29  T - - ( + col0 )
2bc20 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
2bc30 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
2bc40 0d 0a 35 31 0d 0a 38 35 0d 0a 39 31 0d 0a 0d 0a  ..51..85..91....
2bc50 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
2bc60 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2bc70 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2bc80 72 74 20 6c 61 62 65 6c 2d 39 37 31 0d 0a 53 45  rt label-971..SE
2bc90 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
2bca0 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20 2d  COUNT( * ) * + -
2bcb0 20 4d 49 4e 28 20 44 49 53 54 49 4e 43 54 20 2d   MIN( DISTINCT -
2bcc0 20 2b 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74   + col2 ) FROM t
2bcd0 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
2bce0 45 20 28 20 2d 20 2b 20 63 6f 6c 30 20 49 53 20  E ( - + col0 IS 
2bcf0 4e 4f 54 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d  NOT NULL )..----
2bd00 0d 0a 2d 32 38 38 0d 0a 0d 0a 73 6b 69 70 69 66  ..-288....skipif
2bd10 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2bd20 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2bd30 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2bd40 37 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  71..SELECT DISTI
2bd50 4e 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  NCT - COUNT ( * 
2bd60 29 20 2a 20 2b 20 2d 20 4d 49 4e 20 28 20 44 49  ) * + - MIN ( DI
2bd70 53 54 49 4e 43 54 20 2d 20 2b 20 63 6f 6c 32 20  STINCT - + col2 
2bd80 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
2bd90 6f 72 30 20 57 48 45 52 45 20 28 20 2d 20 2b 20  or0 WHERE ( - + 
2bda0 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col0 IS NOT NULL
2bdb0 20 29 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 38 38 0d 0a   )..----..-288..
2bdc0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
2bdd0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
2bde0 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  INCT * FROM tab0
2bdf0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
2be00 2b 20 31 31 20 2a 20 2d 20 63 6f 6c 30 20 3c 20  + 11 * - col0 < 
2be10 28 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d  ( + col1 )..----
2be20 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2be30 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
2be40 49 4e 43 54 20 2b 20 2d 20 36 39 20 2b 20 2b 20  INCT + - 69 + + 
2be50 33 37 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  37 AS col0 FROM 
2be60 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
2be70 2d 2d 0d 0a 2d 33 32 0d 0a 0d 0a 6f 6e 6c 79 69  --..-32....onlyi
2be80 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
2be90 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
2bea0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2beb0 62 65 6c 2d 39 37 34 0d 0a 53 45 4c 45 43 54 20  bel-974..SELECT 
2bec0 41 4c 4c 20 34 32 20 2b 20 2d 20 38 30 20 2a 20  ALL 42 + - 80 * 
2bed0 2d 20 2d 20 4d 49 4e 28 20 63 6f 6c 32 20 29 20  - - MIN( col2 ) 
2bee0 2a 20 39 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  * 92 FROM tab0..
2bef0 2d 2d 2d 2d 0d 0a 2d 37 33 35 35 38 0d 0a 0d 0a  ----..-73558....
2bf00 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2bf10 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2bf20 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2bf30 61 62 65 6c 2d 39 37 34 0d 0a 53 45 4c 45 43 54  abel-974..SELECT
2bf40 20 41 4c 4c 20 34 32 20 2b 20 2d 20 38 30 20 2a   ALL 42 + - 80 *
2bf50 20 2d 20 2d 20 4d 49 4e 20 28 20 63 6f 6c 32 20   - - MIN ( col2 
2bf60 29 20 2a 20 39 32 20 46 52 4f 4d 20 74 61 62 30  ) * 92 FROM tab0
2bf70 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 33 35 35 38 0d 0a  ..----..-73558..
2bf80 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
2bf90 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
2bfa0 4e 43 54 20 2b 20 30 2c 20 2b 20 31 38 20 41 53  NCT + 0, + 18 AS
2bfb0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
2bfc0 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31 38 0d 0a 0d 0a  .----..0..18....
2bfd0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
2bfe0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
2bff0 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
2c000 4e 4f 54 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c  NOT col2 * + col
2c010 32 20 49 4e 20 28 20 2b 20 2d 20 63 6f 6c 30 20  2 IN ( + - col0 
2c020 2f 20 34 31 20 2a 20 63 6f 6c 32 20 2d 20 2d 20  / 41 * col2 - - 
2c030 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20  col2 )..----..9 
2c040 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
2c050 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64 30  o c6c0a4111b36d0
2c060 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34 63  4dbc811a11e4d54c
2c070 61 64 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ad....skipif pos
2c080 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
2c090 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
2c0a0 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
2c0b0 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
2c0c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2c0d0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2c0e0 38 39 20 2a 20 63 6f 6c 30 20 2b 20 2d 20 32 31  89 * col0 + - 21
2c0f0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
2c100 0a 2d 2d 2d 2d 0d 0a 31 33 31 34 0d 0a 37 37 32  .----..1314..772
2c110 32 0d 0a 38 36 31 32 0d 0a 0d 0a 71 75 65 72 79  2..8612....query
2c120 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
2c130 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
2c140 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  tab0 WHERE NOT N
2c150 55 4c 4c 20 3e 3d 20 2b 20 28 20 2b 20 28 20 2d  ULL >= + ( + ( -
2c160 20 2d 20 39 36 20 29 20 29 20 2b 20 63 6f 6c 32   - 96 ) ) + col2
2c170 20 2a 20 2b 20 32 38 0d 0a 2d 2d 2d 2d 0d 0a 0d   * + 28..----...
2c180 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2c190 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2c1a0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2c1b0 6f 72 74 20 6c 61 62 65 6c 2d 39 37 39 0d 0a 53  ort label-979..S
2c1c0 45 4c 45 43 54 20 2d 20 2b 20 43 4f 55 4e 54 28  ELECT - + COUNT(
2c1d0 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   * ) AS col1 FRO
2c1e0 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 55 4c  M tab2 WHERE NUL
2c1f0 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2b 20  L NOT BETWEEN + 
2c200 2d 20 63 6f 6c 32 20 41 4e 44 20 63 6f 6c 30 0d  - col2 AND col0.
2c210 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .----..0....skip
2c220 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2c230 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2c240 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2c250 2d 39 37 39 0d 0a 53 45 4c 45 43 54 20 2d 20 2b  -979..SELECT - +
2c260 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
2c270 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 57  col1 FROM tab2 W
2c280 48 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 42 45  HERE NULL NOT BE
2c290 54 57 45 45 4e 20 2b 20 2d 20 63 6f 6c 32 20 41  TWEEN + - col2 A
2c2a0 4e 44 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 30  ND col0..----..0
2c2b0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2c2c0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
2c2d0 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
2c2e0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2c2f0 61 62 65 6c 2d 39 38 30 0d 0a 53 45 4c 45 43 54  abel-980..SELECT
2c300 20 43 41 53 54 28 20 2d 20 2b 20 63 6f 6c 31 20   CAST( - + col1 
2c310 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2b 20  AS SIGNED ) * + 
2c320 2d 20 28 20 2b 20 2d 20 63 6f 6c 32 20 29 20 46  - ( + - col2 ) F
2c330 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
2c340 2d 31 31 37 33 0d 0a 2d 33 30 38 30 0d 0a 2d 33  -1173..-3080..-3
2c350 38 38 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  886....skipif my
2c360 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2c370 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
2c380 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 38 30 0d  wsort label-980.
2c390 0a 53 45 4c 45 43 54 20 43 41 53 54 20 28 20 2d  .SELECT CAST ( -
2c3a0 20 2b 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47   + col1 AS INTEG
2c3b0 45 52 20 29 20 2a 20 2b 20 2d 20 28 20 2b 20 2d  ER ) * + - ( + -
2c3c0 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62   col2 ) FROM tab
2c3d0 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 37 33 0d 0a  2..----..-1173..
2c3e0 2d 33 30 38 30 0d 0a 2d 33 38 38 36 0d 0a 0d 0a  -3080..-3886....
2c3f0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
2c400 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
2c410 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  CT * FROM tab2 W
2c420 48 45 52 45 20 4e 4f 54 20 2d 20 35 32 20 2b 20  HERE NOT - 52 + 
2c430 63 6f 6c 32 20 49 4e 20 28 20 63 6f 6c 32 2c 20  col2 IN ( col2, 
2c440 28 20 2b 20 63 6f 6c 32 20 29 20 2a 20 63 6f 6c  ( + col2 ) * col
2c450 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  2 )..----..9 val
2c460 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37  ues hashing to 7
2c470 35 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38  5c998aa53ac83218
2c480 63 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d  cbf2feb962d0a49.
2c490 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2c4a0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
2c4b0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
2c4c0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 38 32 0d  wsort label-982.
2c4d0 0a 53 45 4c 45 43 54 20 2b 20 4d 41 58 28 20 44  .SELECT + MAX( D
2c4e0 49 53 54 49 4e 43 54 20 2b 20 2b 20 63 6f 6c 31  ISTINCT + + col1
2c4f0 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
2c500 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 31 0d 0a  cor0..----..81..
2c510 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2c520 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2c530 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2c540 20 6c 61 62 65 6c 2d 39 38 32 0d 0a 53 45 4c 45   label-982..SELE
2c550 43 54 20 2b 20 4d 41 58 20 28 20 44 49 53 54 49  CT + MAX ( DISTI
2c560 4e 43 54 20 2b 20 2b 20 63 6f 6c 31 20 29 20 46  NCT + + col1 ) F
2c570 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
2c580 0d 0a 2d 2d 2d 2d 0d 0a 38 31 0d 0a 0d 0a 71 75  ..----..81....qu
2c590 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2c5a0 45 4c 45 43 54 20 2d 20 35 33 20 46 52 4f 4d 20  ELECT - 53 FROM 
2c5b0 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
2c5c0 52 45 20 2d 20 63 6f 6c 32 20 49 53 20 4e 55 4c  RE - col2 IS NUL
2c5d0 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  L..----....skipi
2c5e0 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
2c5f0 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
2c600 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
2c610 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
2c620 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
2c630 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
2c640 49 4e 43 54 20 2d 20 2d 20 63 6f 6c 30 20 2a 20  INCT - - col0 * 
2c650 2d 20 2b 20 63 6f 6c 32 20 2b 20 28 20 2d 20 63  - + col2 + ( - c
2c660 6f 6c 32 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20  ol2 ) col2 FROM 
2c670 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
2c680 2d 2d 0d 0a 2d 31 30 38 31 0d 0a 2d 32 36 30 30  --..-1081..-2600
2c690 0d 0a 2d 34 34 30 38 0d 0a 0d 0a 71 75 65 72 79  ..-4408....query
2c6a0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2c6b0 43 54 20 2d 20 2b 20 39 35 20 2b 20 2d 20 63 6f  CT - + 95 + - co
2c6c0 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l0 FROM tab2 AS 
2c6d0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 31  cor0..----..-141
2c6e0 0d 0a 2d 31 35 39 0d 0a 2d 31 37 30 0d 0a 0d 0a  ..-159..-170....
2c6f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2c700 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30  .SELECT ALL col0
2c710 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 2d 20 63 6f   + col0 * + - co
2c720 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
2c730 2d 2d 0d 0a 2d 33 34 30 0d 0a 2d 34 31 38 36 0d  --..-340..-4186.
2c740 0a 2d 36 36 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  .-663....skipif 
2c750 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
2c760 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
2c770 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
2c780 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
2c790 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2c7a0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
2c7b0 2d 20 38 38 20 63 6f 6c 31 20 46 52 4f 4d 20 74  - 88 col1 FROM t
2c7c0 61 62 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53  ab2 AS cor0 CROS
2c7d0 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53 20 63  S JOIN tab2 AS c
2c7e0 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  or1..----..9 val
2c7f0 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 34  ues hashing to 4
2c800 36 37 33 30 31 66 38 38 37 36 31 34 65 62 37 62  67301f887614eb7b
2c810 65 64 61 32 32 63 35 36 31 62 30 66 61 64 32 0d  eda22c561b0fad2.
2c820 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2c830 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
2c840 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
2c850 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2c860 62 65 6c 2d 39 38 38 0d 0a 53 45 4c 45 43 54 20  bel-988..SELECT 
2c870 2d 20 63 6f 6c 32 20 44 49 56 20 2d 20 31 20 41  - col2 DIV - 1 A
2c880 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
2c890 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2c8a0 35 39 0d 0a 36 38 0d 0a 39 36 0d 0a 0d 0a 73 6b  59..68..96....sk
2c8b0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2c8c0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2c8d0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2c8e0 65 6c 2d 39 38 38 0d 0a 53 45 4c 45 43 54 20 2d  el-988..SELECT -
2c8f0 20 63 6f 6c 32 20 2f 20 2d 20 31 20 41 53 20 63   col2 / - 1 AS c
2c900 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol1 FROM tab1 AS
2c910 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d   cor0..----..59.
2c920 0a 36 38 0d 0a 39 36 0d 0a 0d 0a 71 75 65 72 79  .68..96....query
2c930 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2c940 43 54 20 41 4c 4c 20 63 6f 6c 30 20 46 52 4f 4d  CT ALL col0 FROM
2c950 20 74 61 62 31 20 63 6f 72 30 20 57 48 45 52 45   tab1 cor0 WHERE
2c960 20 4e 4f 54 20 63 6f 6c 32 20 2b 20 2d 20 2b 20   NOT col2 + - + 
2c970 63 6f 6c 32 20 4e 4f 54 20 42 45 54 57 45 45 4e  col2 NOT BETWEEN
2c980 20 4e 55 4c 4c 20 41 4e 44 20 28 20 4e 55 4c 4c   NULL AND ( NULL
2c990 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79   )..----....only
2c9a0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
2c9b0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56  gate syntax: DIV
2c9c0 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
2c9d0 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
2c9e0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2c9f0 39 30 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 43  90..SELECT - - C
2ca00 4f 55 4e 54 28 20 2a 20 29 20 44 49 56 20 35 32  OUNT( * ) DIV 52
2ca10 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
2ca20 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
2ca30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
2ca40 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2ca50 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
2ca60 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 39 30 0d  wsort label-990.
2ca70 0a 53 45 4c 45 43 54 20 2d 20 2d 20 43 4f 55 4e  .SELECT - - COUN
2ca80 54 20 28 20 2a 20 29 20 2f 20 35 32 20 41 53 20  T ( * ) / 52 AS 
2ca90 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41  col2 FROM tab1 A
2caa0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  S cor0..----..0.
2cab0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2cac0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
2cad0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72  ax: ..query II r
2cae0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 39 31  owsort label-991
2caf0 0d 0a 53 45 4c 45 43 54 20 53 55 4d 28 20 41 4c  ..SELECT SUM( AL
2cb00 4c 20 2d 20 2d 20 38 37 20 29 20 41 53 20 63 6f  L - - 87 ) AS co
2cb10 6c 31 2c 20 38 30 20 2b 20 31 35 20 2a 20 43 4f  l1, 80 + 15 * CO
2cb20 55 4e 54 28 20 63 6f 6c 32 20 29 20 41 53 20 63  UNT( col2 ) AS c
2cb30 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
2cb40 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 36 31   cor0..----..261
2cb50 0d 0a 31 32 35 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..125....skipif 
2cb60 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2cb70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
2cb80 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2cb90 39 31 0d 0a 53 45 4c 45 43 54 20 53 55 4d 20 28  91..SELECT SUM (
2cba0 20 41 4c 4c 20 2d 20 2d 20 38 37 20 29 20 41 53   ALL - - 87 ) AS
2cbb0 20 63 6f 6c 31 2c 20 38 30 20 2b 20 31 35 20 2a   col1, 80 + 15 *
2cbc0 20 43 4f 55 4e 54 20 28 20 63 6f 6c 32 20 29 20   COUNT ( col2 ) 
2cbd0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
2cbe0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
2cbf0 0a 32 36 31 0d 0a 31 32 35 0d 0a 0d 0a 71 75 65  .261..125....que
2cc00 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
2cc10 45 4c 45 43 54 20 63 6f 6c 32 2c 20 2b 20 63 6f  ELECT col2, + co
2cc20 6c 30 20 2a 20 2b 20 63 6f 6c 30 20 46 52 4f 4d  l0 * + col0 FROM
2cc30 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d   tab0..----..10.
2cc40 0a 37 35 36 39 0d 0a 34 37 0d 0a 32 32 35 0d 0a  .7569..47..225..
2cc50 39 39 0d 0a 39 34 30 39 0d 0a 0d 0a 71 75 65 72  99..9409....quer
2cc60 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
2cc70 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 32 20  LECT ALL + col2 
2cc80 41 53 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c 30 20  AS col1, + col0 
2cc90 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
2cca0 0a 32 33 0d 0a 34 36 0d 0a 34 30 0d 0a 36 34 0d  .23..46..40..64.
2ccb0 0a 35 38 0d 0a 37 35 0d 0a 0d 0a 6f 6e 6c 79 69  .58..75....onlyi
2ccc0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
2ccd0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
2cce0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2ccf0 62 65 6c 2d 39 39 34 0d 0a 53 45 4c 45 43 54 20  bel-994..SELECT 
2cd00 31 34 20 2a 20 43 4f 55 4e 54 28 20 2a 20 29 20  14 * COUNT( * ) 
2cd10 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2cd20 31 0d 0a 2d 2d 2d 2d 0d 0a 34 32 0d 0a 0d 0a 73  1..----..42....s
2cd30 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2cd40 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2cd50 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2cd60 62 65 6c 2d 39 39 34 0d 0a 53 45 4c 45 43 54 20  bel-994..SELECT 
2cd70 31 34 20 2a 20 43 4f 55 4e 54 20 28 20 2a 20 29  14 * COUNT ( * )
2cd80 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
2cd90 62 31 0d 0a 2d 2d 2d 2d 0d 0a 34 32 0d 0a 0d 0a  b1..----..42....
2cda0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
2cdb0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2cdc0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2cdd0 72 74 20 6c 61 62 65 6c 2d 39 39 35 0d 0a 53 45  rt label-995..SE
2cde0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
2cdf0 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20 2d 20  MAX( DISTINCT - 
2ce00 32 33 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a  23 ) FROM tab1..
2ce10 2d 2d 2d 2d 0d 0a 32 33 0d 0a 0d 0a 73 6b 69 70  ----..23....skip
2ce20 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2ce30 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2ce40 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2ce50 2d 39 39 35 0d 0a 53 45 4c 45 43 54 20 44 49 53  -995..SELECT DIS
2ce60 54 49 4e 43 54 20 2d 20 4d 41 58 20 28 20 44 49  TINCT - MAX ( DI
2ce70 53 54 49 4e 43 54 20 2d 20 32 33 20 29 20 46 52  STINCT - 23 ) FR
2ce80 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32  OM tab1..----..2
2ce90 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  3....query III r
2cea0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
2ceb0 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
2cec0 20 4e 55 4c 4c 20 3e 3d 20 28 20 2b 20 2d 20 28   NULL >= ( + - (
2ced0 20 2b 20 2b 20 63 6f 6c 31 20 29 20 29 0d 0a 2d   + + col1 ) )..-
2cee0 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  ---....query II 
2cef0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2cf00 63 6f 6c 30 2c 20 2b 20 34 38 20 46 52 4f 4d 20  col0, + 48 FROM 
2cf10 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
2cf20 2d 2d 0d 0a 34 36 0d 0a 34 38 0d 0a 36 34 0d 0a  --..46..48..64..
2cf30 34 38 0d 0a 37 35 0d 0a 34 38 0d 0a 0d 0a 71 75  48..75..48....qu
2cf40 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
2cf50 53 45 4c 45 43 54 20 2b 20 32 30 2c 20 2b 20 63  SELECT + 20, + c
2cf60 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
2cf70 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 30 0d   cor0..----..20.
2cf80 0a 35 39 0d 0a 32 30 0d 0a 36 38 0d 0a 32 30 0d  .59..20..68..20.
2cf90 0a 39 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  .96....skipif po
2cfa0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
2cfb0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
2cfc0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
2cfd0 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
2cfe0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2cff0 0a 53 45 4c 45 43 54 20 39 30 20 63 6f 6c 30 20  .SELECT 90 col0 
2d000 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a  FROM tab0 cor0..
2d010 2d 2d 2d 2d 0d 0a 39 30 0d 0a 39 30 0d 0a 39 30  ----..90..90..90
2d020 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
2d030 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63  sort..SELECT - c
2d040 6f 6c 30 2c 20 2d 20 63 6f 6c 32 20 2a 20 2b 20  ol0, - col2 * + 
2d050 2d 20 34 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  - 4 AS col0 FROM
2d060 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
2d070 2d 2d 2d 0d 0a 2d 35 31 0d 0a 33 38 34 0d 0a 2d  ---..-51..384..-
2d080 38 35 0d 0a 32 33 36 0d 0a 2d 39 31 0d 0a 32 37  85..236..-91..27
2d090 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  2....query I row
2d0a0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
2d0b0 20 63 6f 6c 31 20 2b 20 32 34 20 46 52 4f 4d 20   col1 + 24 FROM 
2d0c0 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
2d0d0 2d 2d 0d 0a 31 30 35 0d 0a 32 35 0d 0a 34 35 0d  --..105..25..45.
2d0e0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2d0f0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
2d100 4e 43 54 20 35 36 20 41 53 20 63 6f 6c 32 20 46  NCT 56 AS col2 F
2d110 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
2d120 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
2d130 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
2d140 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2d150 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2d160 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2d170 6f 72 74 20 6c 61 62 65 6c 2d 31 30 30 33 0d 0a  ort label-1003..
2d180 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 53  SELECT ALL + + S
2d190 55 4d 28 20 63 6f 6c 31 20 29 20 2b 20 2b 20 2b  UM( col1 ) + + +
2d1a0 20 28 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20   ( + + COUNT( * 
2d1b0 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ) ) AS col1 FROM
2d1c0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
2d1d0 2d 2d 2d 0d 0a 31 39 38 0d 0a 0d 0a 73 6b 69 70  ---..198....skip
2d1e0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2d1f0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2d200 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2d210 2d 31 30 30 33 0d 0a 53 45 4c 45 43 54 20 41 4c  -1003..SELECT AL
2d220 4c 20 2b 20 2b 20 53 55 4d 20 28 20 63 6f 6c 31  L + + SUM ( col1
2d230 20 29 20 2b 20 2b 20 2b 20 28 20 2b 20 2b 20 43   ) + + + ( + + C
2d240 4f 55 4e 54 20 28 20 2a 20 29 20 29 20 41 53 20  OUNT ( * ) ) AS 
2d250 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
2d260 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39  S cor0..----..19
2d270 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  8....query II ro
2d280 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
2d290 53 54 49 4e 43 54 20 63 6f 6c 31 2c 20 2b 20 63  STINCT col1, + c
2d2a0 6f 6c 30 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 2d  ol0 + + col2 * -
2d2b0 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52   col1 AS col2 FR
2d2c0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
2d2d0 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 2d 31 32 39 33  .----..14..-1293
2d2e0 0d 0a 34 37 0d 0a 2d 33 31 30 35 0d 0a 35 0d 0a  ..47..-3105..5..
2d2f0 2d 32 31 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -210....query I 
2d300 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2d310 2d 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  - - col1 FROM ta
2d320 62 31 20 57 48 45 52 45 20 28 20 4e 4f 54 20 2b  b1 WHERE ( NOT +
2d330 20 34 33 20 3e 3d 20 4e 55 4c 4c 20 29 0d 0a 2d   43 >= NULL )..-
2d340 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
2d350 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
2d360 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
2d370 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2d380 31 30 30 36 0d 0a 53 45 4c 45 43 54 20 43 4f 55  1006..SELECT COU
2d390 4e 54 28 20 2a 20 29 20 2b 20 2d 20 37 31 20 2b  NT( * ) + - 71 +
2d3a0 20 31 20 2a 20 2b 20 31 35 20 46 52 4f 4d 20 74   1 * + 15 FROM t
2d3b0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 33 0d 0a  ab1..----..-53..
2d3c0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2d3d0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2d3e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2d3f0 20 6c 61 62 65 6c 2d 31 30 30 36 0d 0a 53 45 4c   label-1006..SEL
2d400 45 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ECT COUNT ( * ) 
2d410 2b 20 2d 20 37 31 20 2b 20 31 20 2a 20 2b 20 31  + - 71 + 1 * + 1
2d420 35 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  5 FROM tab1..---
2d430 2d 0d 0a 2d 35 33 0d 0a 0d 0a 71 75 65 72 79 20  -..-53....query 
2d440 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2d450 54 20 41 4c 4c 20 2b 20 35 39 20 2a 20 2d 20 32  T ALL + 59 * - 2
2d460 35 20 2b 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f  5 + + col1 AS co
2d470 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
2d480 2d 2d 0d 0a 2d 31 33 39 34 0d 0a 2d 31 34 35 34  --..-1394..-1454
2d490 0d 0a 2d 31 34 37 34 0d 0a 0d 0a 6f 6e 6c 79 69  ..-1474....onlyi
2d4a0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
2d4b0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
2d4c0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2d4d0 62 65 6c 2d 31 30 30 38 0d 0a 53 45 4c 45 43 54  bel-1008..SELECT
2d4e0 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 28   DISTINCT COUNT(
2d4f0 20 2a 20 29 20 2a 20 2d 20 2d 20 4d 49 4e 28 20   * ) * - - MIN( 
2d500 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20  DISTINCT - col0 
2d510 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
2d520 2d 0d 0a 2d 32 39 31 0d 0a 0d 0a 73 6b 69 70 69  -..-291....skipi
2d530 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2d540 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2d550 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2d560 31 30 30 38 0d 0a 53 45 4c 45 43 54 20 44 49 53  1008..SELECT DIS
2d570 54 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 2a 20  TINCT COUNT ( * 
2d580 29 20 2a 20 2d 20 2d 20 4d 49 4e 20 28 20 44 49  ) * - - MIN ( DI
2d590 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20 29 20  STINCT - col0 ) 
2d5a0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
2d5b0 0a 2d 32 39 31 0d 0a 0d 0a 71 75 65 72 79 20 49  .-291....query I
2d5c0 49 49 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  IIIII rowsort..S
2d5d0 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
2d5e0 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 43 52   tab0 AS cor0 CR
2d5f0 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53  OSS JOIN tab2 AS
2d600 20 63 6f 72 31 20 57 48 45 52 45 20 33 36 20 49   cor1 WHERE 36 I
2d610 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
2d620 0d 0a 35 34 20 76 61 6c 75 65 73 20 68 61 73 68  ..54 values hash
2d630 69 6e 67 20 74 6f 20 65 61 61 33 39 34 66 31 36  ing to eaa394f16
2d640 32 37 63 38 64 35 65 35 33 34 30 36 64 39 63 61  27c8d5e53406d9ca
2d650 33 62 30 39 34 36 39 0d 0a 0d 0a 71 75 65 72 79  3b09469....query
2d660 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2d670 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 28 20  CT DISTINCT + ( 
2d680 2b 20 63 6f 6c 30 20 29 20 2b 20 2b 20 28 20 2d  + col0 ) + + ( -
2d690 20 2b 20 32 39 20 29 20 41 53 20 63 6f 6c 31 20   + 29 ) AS col1 
2d6a0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
2d6b0 0a 31 37 0d 0a 33 35 0d 0a 34 36 0d 0a 0d 0a 71  .17..35..46....q
2d6c0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
2d6d0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2d6e0 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53  T * FROM tab1 AS
2d6f0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
2d700 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20 28 20 63 6f  NULL NOT IN ( co
2d710 6c 31 20 2a 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d  l1 * col1 )..---
2d720 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
2d730 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
2d740 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
2d750 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
2d760 74 20 6c 61 62 65 6c 2d 31 30 31 32 0d 0a 53 45  t label-1012..SE
2d770 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  LECT * FROM tab2
2d780 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
2d790 4f 54 20 28 20 28 20 43 41 53 54 28 20 4e 55 4c  OT ( ( CAST( NUL
2d7a0 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 49 53  L AS SIGNED ) IS
2d7b0 20 4e 55 4c 4c 20 29 20 29 0d 0a 2d 2d 2d 2d 0d   NULL ) )..----.
2d7c0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2d7d0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2d7e0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
2d7f0 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31 32 0d 0a  ort label-1012..
2d800 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
2d810 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
2d820 20 4e 4f 54 20 28 20 28 20 43 41 53 54 20 28 20   NOT ( ( CAST ( 
2d830 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
2d840 29 20 49 53 20 4e 55 4c 4c 20 29 20 29 0d 0a 2d  ) IS NULL ) )..-
2d850 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
2d860 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
2d870 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
2d880 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2d890 74 20 6c 61 62 65 6c 2d 31 30 31 33 0d 0a 53 45  t label-1013..SE
2d8a0 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 63 6f 6c  LECT ALL + + col
2d8b0 31 20 44 49 56 20 2d 20 34 37 20 41 53 20 63 6f  1 DIV - 47 AS co
2d8c0 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l1 FROM tab0 cor
2d8d0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 30 0d 0a  0..----..-1..0..
2d8e0 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
2d8f0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2d900 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2d910 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31 33 0d 0a  ort label-1013..
2d920 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 63  SELECT ALL + + c
2d930 6f 6c 31 20 2f 20 2d 20 34 37 20 41 53 20 63 6f  ol1 / - 47 AS co
2d940 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l1 FROM tab0 cor
2d950 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 30 0d 0a  0..----..-1..0..
2d960 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  0....query II ro
2d970 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
2d980 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 41 53  STINCT + col1 AS
2d990 20 63 6f 6c 31 2c 20 63 6f 6c 30 20 41 53 20 63   col1, col0 AS c
2d9a0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
2d9b0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d   cor0..----..51.
2d9c0 0a 34 36 0d 0a 36 37 0d 0a 37 35 0d 0a 37 37 0d  .46..67..75..77.
2d9d0 0a 36 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  .64....query II 
2d9e0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2d9f0 41 4c 4c 20 2b 20 63 6f 6c 32 2c 20 2d 20 63 6f  ALL + col2, - co
2da00 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
2da10 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a  cor0..----..10..
2da20 2d 32 31 0d 0a 34 37 0d 0a 2d 38 31 0d 0a 39 39  -21..47..-81..99
2da30 0d 0a 2d 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..-1....query II
2da40 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2da50 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31   DISTINCT - col1
2da60 2c 20 34 39 20 41 53 20 63 6f 6c 32 20 46 52 4f  , 49 AS col2 FRO
2da70 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
2da80 48 45 52 45 20 4e 4f 54 20 2d 20 33 31 20 49 53  HERE NOT - 31 IS
2da90 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
2daa0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2dab0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
2dac0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
2dad0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31 37  wsort label-1017
2dae0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2daf0 54 20 2d 20 4d 41 58 28 20 2b 20 2d 20 63 6f 6c  T - MAX( + - col
2db00 30 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  0 ) AS col0 FROM
2db10 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
2db20 2d 2d 2d 0d 0a 35 31 0d 0a 0d 0a 73 6b 69 70 69  ---..51....skipi
2db30 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2db40 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2db50 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2db60 31 30 31 37 0d 0a 53 45 4c 45 43 54 20 44 49 53  1017..SELECT DIS
2db70 54 49 4e 43 54 20 2d 20 4d 41 58 20 28 20 2b 20  TINCT - MAX ( + 
2db80 2d 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30  - col0 ) AS col0
2db90 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
2dba0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 0d 0a  r0..----..51....
2dbb0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
2dbc0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2dbd0 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
2dbe0 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31 38 0d 0a  ort label-1018..
2dbf0 53 45 4c 45 43 54 20 4d 41 58 28 20 2b 20 63 6f  SELECT MAX( + co
2dc00 6c 31 20 29 2c 20 2d 20 35 20 41 53 20 63 6f 6c  l1 ), - 5 AS col
2dc10 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
2dc20 2d 0d 0a 37 37 0d 0a 2d 35 0d 0a 0d 0a 73 6b 69  -..77..-5....ski
2dc30 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2dc40 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2dc50 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
2dc60 65 6c 2d 31 30 31 38 0d 0a 53 45 4c 45 43 54 20  el-1018..SELECT 
2dc70 4d 41 58 20 28 20 2b 20 63 6f 6c 31 20 29 2c 20  MAX ( + col1 ), 
2dc80 2d 20 35 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  - 5 AS col0 FROM
2dc90 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 37 37 0d   tab2..----..77.
2dca0 0a 2d 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .-5....onlyif my
2dcb0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
2dcc0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
2dcd0 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
2dce0 2d 31 30 31 39 0d 0a 53 45 4c 45 43 54 20 41 4c  -1019..SELECT AL
2dcf0 4c 20 2b 20 43 4f 55 4e 54 28 20 2d 20 63 6f 6c  L + COUNT( - col
2dd00 31 20 29 20 41 53 20 63 6f 6c 30 2c 20 32 37 20  1 ) AS col0, 27 
2dd10 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
2dd20 2d 2d 2d 2d 0d 0a 33 0d 0a 32 37 0d 0a 0d 0a 73  ----..3..27....s
2dd30 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2dd40 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
2dd50 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
2dd60 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
2dd70 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
2dd80 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
2dd90 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20  lumns..query II 
2dda0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2ddb0 31 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  19..SELECT ALL +
2ddc0 20 43 4f 55 4e 54 20 28 20 2d 20 63 6f 6c 31 20   COUNT ( - col1 
2ddd0 29 20 41 53 20 63 6f 6c 30 2c 20 32 37 20 63 6f  ) AS col0, 27 co
2dde0 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l1 FROM tab0..--
2ddf0 2d 2d 0d 0a 33 0d 0a 32 37 0d 0a 0d 0a 71 75 65  --..3..27....que
2de00 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2de10 4c 45 43 54 20 41 4c 4c 20 2b 20 33 39 20 2a 20  LECT ALL + 39 * 
2de20 35 34 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  54 AS col1 FROM 
2de30 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 31 30 36  tab2..----..2106
2de40 0d 0a 32 31 30 36 0d 0a 32 31 30 36 0d 0a 0d 0a  ..2106..2106....
2de50 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
2de60 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
2de70 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
2de80 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2de90 2d 31 30 32 31 0d 0a 53 45 4c 45 43 54 20 2b 20  -1021..SELECT + 
2dea0 63 6f 6c 32 20 44 49 56 20 2d 20 28 20 2b 20 35  col2 DIV - ( + 5
2deb0 31 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  1 ) FROM tab1..-
2dec0 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 31 0d 0a 2d 31 0d  ---..-1..-1..-1.
2ded0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2dee0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2def0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2df00 74 20 6c 61 62 65 6c 2d 31 30 32 31 0d 0a 53 45  t label-1021..SE
2df10 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2f 20 2d 20  LECT + col2 / - 
2df20 28 20 2b 20 35 31 20 29 20 46 52 4f 4d 20 74 61  ( + 51 ) FROM ta
2df30 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 31  b1..----..-1..-1
2df40 0d 0a 2d 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..-1....onlyif m
2df50 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
2df60 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
2df70 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2df80 2d 31 30 32 32 0d 0a 53 45 4c 45 43 54 20 44 49  -1022..SELECT DI
2df90 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54 28 20  STINCT + COUNT( 
2dfa0 2a 20 29 20 2a 20 2d 20 4d 41 58 28 20 2d 20 34  * ) * - MAX( - 4
2dfb0 35 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  5 ) AS col0 FROM
2dfc0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 33 35   tab2..----..135
2dfd0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2dfe0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2dff0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
2e000 72 74 20 6c 61 62 65 6c 2d 31 30 32 32 0d 0a 53  rt label-1022..S
2e010 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
2e020 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d   COUNT ( * ) * -
2e030 20 4d 41 58 20 28 20 2d 20 34 35 20 29 20 41 53   MAX ( - 45 ) AS
2e040 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
2e050 0a 2d 2d 2d 2d 0d 0a 31 33 35 0d 0a 0d 0a 71 75  .----..135....qu
2e060 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
2e070 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
2e080 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
2e090 57 48 45 52 45 20 63 6f 6c 30 20 2f 20 2d 20 2b  WHERE col0 / - +
2e0a0 20 63 6f 6c 31 20 3c 20 2b 20 38 37 0d 0a 2d 2d   col1 < + 87..--
2e0b0 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
2e0c0 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31  hing to c6c0a411
2e0d0 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31  1b36d04dbc811a11
2e0e0 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72  e4d54cad....quer
2e0f0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2e100 45 43 54 20 2d 20 2d 20 33 37 20 41 53 20 63 6f  ECT - - 37 AS co
2e110 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l0 FROM tab2 AS 
2e120 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 37 0d 0a  cor0..----..37..
2e130 33 37 0d 0a 33 37 0d 0a 0d 0a 71 75 65 72 79 20  37..37....query 
2e140 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
2e150 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ECT * FROM tab1 
2e160 57 48 45 52 45 20 28 20 4e 4f 54 20 63 6f 6c 32  WHERE ( NOT col2
2e170 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e 55 4c   NOT BETWEEN NUL
2e180 4c 20 41 4e 44 20 2d 20 36 37 20 2d 20 63 6f 6c  L AND - 67 - col
2e190 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  1 )..----....onl
2e1a0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
2e1b0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
2e1c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2e1d0 6c 61 62 65 6c 2d 31 30 32 36 0d 0a 53 45 4c 45  label-1026..SELE
2e1e0 43 54 20 28 20 2d 20 2d 20 35 38 20 29 20 2b 20  CT ( - - 58 ) + 
2e1f0 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  - - COUNT( * ) F
2e200 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
2e210 36 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  61....skipif mys
2e220 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2e230 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2e240 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 32 36 0d  sort label-1026.
2e250 0a 53 45 4c 45 43 54 20 28 20 2d 20 2d 20 35 38  .SELECT ( - - 58
2e260 20 29 20 2b 20 2d 20 2d 20 43 4f 55 4e 54 20 28   ) + - - COUNT (
2e270 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a   * ) FROM tab2..
2e280 2d 2d 2d 2d 0d 0a 36 31 0d 0a 0d 0a 71 75 65 72  ----..61....quer
2e290 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2e2a0 45 43 54 20 28 20 63 6f 6c 30 20 29 20 41 53 20  ECT ( col0 ) AS 
2e2b0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
2e2c0 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e  S cor0 WHERE ( N
2e2d0 55 4c 4c 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d  ULL ) IS NULL..-
2e2e0 2d 2d 2d 0d 0a 34 36 0d 0a 36 34 0d 0a 37 35 0d  ---..46..64..75.
2e2f0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2e300 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
2e310 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
2e320 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2e330 62 65 6c 2d 31 30 32 38 0d 0a 53 45 4c 45 43 54  bel-1028..SELECT
2e340 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 30 20 2a   col1 + + col0 *
2e350 20 2d 20 43 41 53 54 28 20 63 6f 6c 30 20 41 53   - CAST( col0 AS
2e360 20 53 49 47 4e 45 44 20 29 20 2a 20 2d 20 43 41   SIGNED ) * - CA
2e370 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
2e380 45 44 20 29 20 2d 20 63 6f 6c 30 20 2a 20 63 6f  ED ) - col0 * co
2e390 6c 32 20 2a 20 28 20 2b 20 63 6f 6c 30 20 29 20  l2 * ( + col0 ) 
2e3a0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
2e3b0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
2e3c0 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
2e3d0 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
2e3e0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2e3f0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2e400 6f 72 74 20 6c 61 62 65 6c 2d 31 30 32 38 0d 0a  ort label-1028..
2e410 53 45 4c 45 43 54 20 63 6f 6c 31 20 2b 20 2b 20  SELECT col1 + + 
2e420 63 6f 6c 30 20 2a 20 2d 20 43 41 53 54 20 28 20  col0 * - CAST ( 
2e430 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45 52 20  col0 AS INTEGER 
2e440 29 20 2a 20 2d 20 43 41 53 54 20 28 20 4e 55 4c  ) * - CAST ( NUL
2e450 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2d  L AS INTEGER ) -
2e460 20 63 6f 6c 30 20 2a 20 63 6f 6c 32 20 2a 20 28   col0 * col2 * (
2e470 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c   + col0 ) AS col
2e480 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
2e490 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
2e4a0 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  .NULL..NULL....q
2e4b0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2e4c0 53 45 4c 45 43 54 20 2b 20 2d 20 37 38 20 2b 20  SELECT + - 78 + 
2e4d0 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  - col0 FROM tab2
2e4e0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2e4f0 2d 31 32 34 0d 0a 2d 31 34 32 0d 0a 2d 31 35 33  -124..-142..-153
2e500 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2e510 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
2e520 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
2e530 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 33  owsort label-103
2e540 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  0..SELECT DISTIN
2e550 43 54 20 2b 20 32 33 20 2b 20 2b 20 43 4f 55 4e  CT + 23 + + COUN
2e560 54 28 20 2a 20 29 20 63 6f 6c 30 20 46 52 4f 4d  T( * ) col0 FROM
2e570 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
2e580 2d 2d 2d 0d 0a 32 36 0d 0a 0d 0a 73 6b 69 70 69  ---..26....skipi
2e590 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2e5a0 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66  mpatible..skipif
2e5b0 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
2e5c0 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
2e5d0 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
2e5e0 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
2e5f0 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
2e600 72 74 20 6c 61 62 65 6c 2d 31 30 33 30 0d 0a 53  rt label-1030..S
2e610 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
2e620 20 32 33 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20   23 + + COUNT ( 
2e630 2a 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  * ) col0 FROM ta
2e640 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
2e650 0d 0a 32 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..26....query I 
2e660 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2e670 2b 20 63 6f 6c 31 20 2b 20 2b 20 2d 20 63 6f 6c  + col1 + + - col
2e680 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  1 AS col0 FROM t
2e690 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
2e6a0 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 6f 6e  -..0..0..0....on
2e6b0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
2e6c0 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41  T syntax: DECIMA
2e6d0 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  L type: ..query 
2e6e0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2e6f0 31 30 33 32 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  1032..SELECT col
2e700 30 20 2f 20 2b 20 28 20 2d 20 38 37 20 29 20 2b  0 / + ( - 87 ) +
2e710 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44   CAST( NULL AS D
2e720 45 43 49 4d 41 4c 20 29 20 2d 20 36 32 20 41 53  ECIMAL ) - 62 AS
2e730 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
2e740 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
2e750 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
2e760 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2e770 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2e780 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2e790 74 20 6c 61 62 65 6c 2d 31 30 33 32 0d 0a 53 45  t label-1032..SE
2e7a0 4c 45 43 54 20 63 6f 6c 30 20 2f 20 2b 20 28 20  LECT col0 / + ( 
2e7b0 2d 20 38 37 20 29 20 2b 20 43 41 53 54 20 28 20  - 87 ) + CAST ( 
2e7c0 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 2d  NULL AS REAL ) -
2e7d0 20 36 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   62 AS col2 FROM
2e7e0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
2e7f0 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
2e800 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
2e810 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2e820 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31   DISTINCT + col1
2e830 20 2b 20 2d 20 2b 20 38 38 20 46 52 4f 4d 20 74   + - + 88 FROM t
2e840 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
2e850 2d 0d 0a 2d 34 31 0d 0a 2d 37 34 0d 0a 2d 38 33  -..-41..-74..-83
2e860 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2e870 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
2e880 2b 20 28 20 2d 20 63 6f 6c 30 20 29 20 2a 20 2d  + ( - col0 ) * -
2e890 20 2d 20 33 20 2a 20 2d 20 32 33 20 46 52 4f 4d   - 3 * - 23 FROM
2e8a0 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
2e8b0 2d 2d 2d 0d 0a 31 30 33 35 0d 0a 36 30 30 33 0d  ---..1035..6003.
2e8c0 0a 36 36 39 33 0d 0a 0d 0a 71 75 65 72 79 20 49  .6693....query I
2e8d0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2e8e0 20 41 4c 4c 20 63 6f 6c 30 20 2b 20 2d 20 37 38   ALL col0 + - 78
2e8f0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
2e900 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
2e910 0d 0a 2d 36 33 0d 0a 31 39 0d 0a 39 0d 0a 0d 0a  ..-63..19..9....
2e920 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2e930 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 46  .SELECT - col2 F
2e940 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
2e950 20 57 48 45 52 45 20 28 20 2d 20 36 33 20 29 20   WHERE ( - 63 ) 
2e960 3c 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  <= NULL..----...
2e970 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
2e980 74 0d 0a 53 45 4c 45 43 54 20 2d 20 39 34 2c 20  t..SELECT - 94, 
2e990 28 20 2d 20 2d 20 63 6f 6c 30 20 29 20 41 53 20  ( - - col0 ) AS 
2e9a0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63  col1 FROM tab0 c
2e9b0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 34 0d 0a  or0..----..-94..
2e9c0 31 35 0d 0a 2d 39 34 0d 0a 38 37 0d 0a 2d 39 34  15..-94..87..-94
2e9d0 0d 0a 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..97....onlyif m
2e9e0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
2e9f0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
2ea00 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2ea10 2d 31 30 33 38 0d 0a 53 45 4c 45 43 54 20 2b 20  -1038..SELECT + 
2ea20 4d 49 4e 28 20 2d 20 28 20 2b 20 34 39 20 29 20  MIN( - ( + 49 ) 
2ea30 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  ) FROM tab1..---
2ea40 2d 0d 0a 2d 34 39 0d 0a 0d 0a 73 6b 69 70 69 66  -..-49....skipif
2ea50 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2ea60 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2ea70 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2ea80 30 33 38 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 49  038..SELECT + MI
2ea90 4e 20 28 20 2d 20 28 20 2b 20 34 39 20 29 20 29  N ( - ( + 49 ) )
2eaa0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
2eab0 0d 0a 2d 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-49....query I
2eac0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2ead0 54 20 35 35 20 41 53 20 63 6f 6c 30 2c 20 63 6f  T 55 AS col0, co
2eae0 6c 30 20 2b 20 2b 20 38 36 20 2a 20 63 6f 6c 32  l0 + + 86 * col2
2eaf0 20 2a 20 2d 20 34 38 20 2a 20 2d 20 2b 20 63 6f   * - 48 * - + co
2eb00 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
2eb10 2d 2d 0d 0a 35 35 0d 0a 32 39 31 30 32 35 35 0d  --..55..2910255.
2eb20 0a 35 35 0d 0a 33 35 39 31 34 34 37 0d 0a 35 35  .55..3591447..55
2eb30 0d 0a 33 39 36 34 31 32 38 31 0d 0a 0d 0a 6f 6e  ..39641281....on
2eb40 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
2eb50 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
2eb60 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
2eb70 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2eb80 30 34 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  040..SELECT DIST
2eb90 49 4e 43 54 20 33 35 20 2b 20 2d 20 2b 20 37 33  INCT 35 + - + 73
2eba0 20 2b 20 2b 20 2b 20 63 6f 6c 30 20 44 49 56 20   + + + col0 DIV 
2ebb0 63 6f 6c 31 20 2b 20 2b 20 31 33 20 41 53 20 63  col1 + + 13 AS c
2ebc0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol0 FROM tab2..-
2ebd0 2d 2d 2d 0d 0a 2d 32 34 0d 0a 2d 32 35 0d 0a 0d  ---..-24..-25...
2ebe0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2ebf0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2ec00 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2ec10 6c 61 62 65 6c 2d 31 30 34 30 0d 0a 53 45 4c 45  label-1040..SELE
2ec20 43 54 20 44 49 53 54 49 4e 43 54 20 33 35 20 2b  CT DISTINCT 35 +
2ec30 20 2d 20 2b 20 37 33 20 2b 20 2b 20 2b 20 63 6f   - + 73 + + + co
2ec40 6c 30 20 2f 20 63 6f 6c 31 20 2b 20 2b 20 31 33  l0 / col1 + + 13
2ec50 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
2ec60 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 34 0d 0a 2d  b2..----..-24..-
2ec70 32 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  25....query III 
2ec80 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2ec90 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  * FROM tab2 WHER
2eca0 45 20 4e 55 4c 4c 20 3c 20 28 20 2d 20 63 6f 6c  E NULL < ( - col
2ecb0 32 20 2a 20 2b 20 2b 20 39 34 20 29 0d 0a 2d 2d  2 * + + 94 )..--
2ecc0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
2ecd0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
2ece0 4c 20 63 6f 6c 31 20 2d 20 36 33 20 46 52 4f 4d  L col1 - 63 FROM
2ecf0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36   tab1..----..-16
2ed00 0d 0a 2d 34 39 0d 0a 2d 35 38 0d 0a 0d 0a 6f 6e  ..-49..-58....on
2ed10 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
2ed20 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
2ed30 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
2ed40 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2ed50 30 34 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  043..SELECT ALL 
2ed60 63 6f 6c 31 20 2a 20 2b 20 38 32 20 2d 20 43 41  col1 * + 82 - CA
2ed70 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
2ed80 45 44 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a  ED ) FROM tab0..
2ed90 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
2eda0 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
2edb0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2edc0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2edd0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2ede0 30 34 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  043..SELECT ALL 
2edf0 63 6f 6c 31 20 2a 20 2b 20 38 32 20 2d 20 43 41  col1 * + 82 - CA
2ee00 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
2ee10 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 30  EGER ) FROM tab0
2ee20 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
2ee30 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79  LL..NULL....only
2ee40 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
2ee50 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
2ee60 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2ee70 61 62 65 6c 2d 31 30 34 34 0d 0a 53 45 4c 45 43  abel-1044..SELEC
2ee80 54 20 41 4c 4c 20 2d 20 28 20 2b 20 4d 49 4e 28  T ALL - ( + MIN(
2ee90 20 2d 20 2d 20 63 6f 6c 30 20 29 20 29 20 46 52   - - col0 ) ) FR
2eea0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
2eeb0 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 0d 0a 73 6b  .----..-15....sk
2eec0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2eed0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2eee0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2eef0 65 6c 2d 31 30 34 34 0d 0a 53 45 4c 45 43 54 20  el-1044..SELECT 
2ef00 41 4c 4c 20 2d 20 28 20 2b 20 4d 49 4e 20 28 20  ALL - ( + MIN ( 
2ef10 2d 20 2d 20 63 6f 6c 30 20 29 20 29 20 46 52 4f  - - col0 ) ) FRO
2ef20 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
2ef30 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 0d 0a 6f 6e 6c  ----..-15....onl
2ef40 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
2ef50 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
2ef60 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
2ef70 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2ef80 34 35 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53  45..SELECT + CAS
2ef90 54 28 20 2d 20 63 6f 6c 30 20 41 53 20 53 49 47  T( - col0 AS SIG
2efa0 4e 45 44 20 29 20 2f 20 2d 20 63 6f 6c 32 20 2a  NED ) / - col2 *
2efb0 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
2efc0 49 47 4e 45 44 20 29 20 2b 20 32 34 20 46 52 4f  IGNED ) + 24 FRO
2efd0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
2efe0 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
2eff0 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
2f000 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2f010 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2f020 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2f030 30 34 35 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41  045..SELECT + CA
2f040 53 54 20 28 20 2d 20 63 6f 6c 30 20 41 53 20 49  ST ( - col0 AS I
2f050 4e 54 45 47 45 52 20 29 20 2f 20 2d 20 63 6f 6c  NTEGER ) / - col
2f060 32 20 2a 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  2 * CAST ( NULL 
2f070 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20 32  AS INTEGER ) + 2
2f080 34 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  4 FROM tab2 AS c
2f090 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
2f0a0 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  .NULL..NULL....q
2f0b0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
2f0c0 0a 53 45 4c 45 43 54 20 39 20 2a 20 2b 20 63 6f  .SELECT 9 * + co
2f0d0 6c 32 20 2a 20 63 6f 6c 30 20 2b 20 2b 20 63 6f  l2 * col0 + + co
2f0e0 6c 32 20 2b 20 2b 20 28 20 63 6f 6c 30 20 29 2c  l2 + + ( col0 ),
2f0f0 20 2b 20 34 37 20 41 53 20 63 6f 6c 30 20 46 52   + 47 AS col0 FR
2f100 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
2f110 0a 2d 2d 2d 2d 0d 0a 32 33 31 34 34 0d 0a 34 37  .----..23144..47
2f120 0d 0a 33 39 32 38 33 0d 0a 34 37 0d 0a 39 35 39  ..39283..47..959
2f130 31 0d 0a 34 37 0d 0a 0d 0a 71 75 65 72 79 20 49  1..47....query I
2f140 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
2f150 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
2f160 62 30 20 63 6f 72 30 20 57 48 45 52 45 20 31 36  b0 cor0 WHERE 16
2f170 20 42 45 54 57 45 45 4e 20 63 6f 6c 32 20 41 4e   BETWEEN col2 AN
2f180 44 20 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a  D - col0..----..
2f190 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
2f1a0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
2f1b0 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  INCT * FROM tab1
2f1c0 20 57 48 45 52 45 20 2d 20 2b 20 63 6f 6c 32 20   WHERE - + col2 
2f1d0 2b 20 2b 20 2d 20 63 6f 6c 30 20 49 53 20 4e 4f  + + - col0 IS NO
2f1e0 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20  T NULL..----..9 
2f1f0 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
2f200 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64 30  o c6c0a4111b36d0
2f210 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34 63  4dbc811a11e4d54c
2f220 61 64 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  ad....query III 
2f230 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2f240 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  * FROM tab1 WHER
2f250 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 49  E NOT NULL NOT I
2f260 4e 20 28 20 2b 20 2d 20 28 20 33 34 20 29 20 2a  N ( + - ( 34 ) *
2f270 20 2b 20 63 6f 6c 31 20 2b 20 63 6f 6c 31 2c 20   + col1 + col1, 
2f280 2d 20 33 33 20 2f 20 2b 20 32 38 20 2b 20 2b 20  - 33 / + 28 + + 
2f290 2d 20 63 6f 6c 31 20 2b 20 2b 20 36 35 2c 20 2d  - col1 + + 65, -
2f2a0 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 31   + col2 + - col1
2f2b0 20 2d 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 2b 20   - + col1 * - + 
2f2c0 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  col0 )..----....
2f2d0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
2f2e0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2f2f0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2f300 72 74 20 6c 61 62 65 6c 2d 31 30 35 30 0d 0a 53  rt label-1050..S
2f310 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
2f320 20 53 55 4d 28 20 2d 20 2b 20 63 6f 6c 30 20 29   SUM( - + col0 )
2f330 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
2f340 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
2f350 0d 0a 31 38 35 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..185....skipif 
2f360 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2f370 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2f380 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2f390 35 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  50..SELECT DISTI
2f3a0 4e 43 54 20 2d 20 53 55 4d 20 28 20 2d 20 2b 20  NCT - SUM ( - + 
2f3b0 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30 20 46  col0 ) AS col0 F
2f3c0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
2f3d0 0d 0a 2d 2d 2d 2d 0d 0a 31 38 35 0d 0a 0d 0a 71  ..----..185....q
2f3e0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2f3f0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2f400 2b 20 35 30 20 2a 20 2b 20 2d 20 63 6f 6c 30 20  + 50 * + - col0 
2f410 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2f420 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
2f430 0a 2d 32 33 30 30 0d 0a 2d 33 32 30 30 0d 0a 2d  .-2300..-3200..-
2f440 33 37 35 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  3750....onlyif m
2f450 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
2f460 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
2f470 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
2f480 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35 32 0d 0a  ort label-1052..
2f490 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 41 53  SELECT ALL + CAS
2f4a0 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
2f4b0 44 20 29 20 2a 20 2b 20 63 6f 6c 30 20 2a 20 2b  D ) * + col0 * +
2f4c0 20 63 6f 6c 31 20 2d 20 2d 20 63 6f 6c 31 20 2a   col1 - - col1 *
2f4d0 20 2d 20 63 6f 6c 31 2c 20 63 6f 6c 31 20 41 53   - col1, col1 AS
2f4e0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
2f4f0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
2f500 55 4c 4c 0d 0a 31 0d 0a 4e 55 4c 4c 0d 0a 32 31  ULL..1..NULL..21
2f510 0d 0a 4e 55 4c 4c 0d 0a 38 31 0d 0a 0d 0a 73 6b  ..NULL..81....sk
2f520 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2f530 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2f540 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
2f550 62 65 6c 2d 31 30 35 32 0d 0a 53 45 4c 45 43 54  bel-1052..SELECT
2f560 20 41 4c 4c 20 2b 20 43 41 53 54 20 28 20 4e 55   ALL + CAST ( NU
2f570 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
2f580 2a 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c  * + col0 * + col
2f590 31 20 2d 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 63  1 - - col1 * - c
2f5a0 6f 6c 31 2c 20 63 6f 6c 31 20 41 53 20 63 6f 6c  ol1, col1 AS col
2f5b0 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
2f5c0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
2f5d0 0a 31 0d 0a 4e 55 4c 4c 0d 0a 32 31 0d 0a 4e 55  .1..NULL..21..NU
2f5e0 4c 4c 0d 0a 38 31 0d 0a 0d 0a 6f 6e 6c 79 69 66  LL..81....onlyif
2f5f0 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
2f600 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
2f610 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72  n: ..query III r
2f620 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35  owsort label-105
2f630 33 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  3..SELECT * FROM
2f640 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
2f650 45 52 45 20 4e 4f 54 20 2b 20 32 34 20 3c 3d 20  ERE NOT + 24 <= 
2f660 2d 20 2d 20 63 6f 6c 32 20 44 49 56 20 37 32 20  - - col2 DIV 72 
2f670 2a 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 63  * + - col1 * - c
2f680 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 38  ol2..----..15..8
2f690 31 0d 0a 34 37 0d 0a 38 37 0d 0a 32 31 0d 0a 31  1..47..87..21..1
2f6a0 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
2f6b0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2f6c0 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  le..query III ro
2f6d0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35 33  wsort label-1053
2f6e0 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
2f6f0 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
2f700 52 45 20 4e 4f 54 20 2b 20 32 34 20 3c 3d 20 2d  RE NOT + 24 <= -
2f710 20 2d 20 63 6f 6c 32 20 2f 20 37 32 20 2a 20 2b   - col2 / 72 * +
2f720 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 32   - col1 * - col2
2f730 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 38 31 0d 0a  ..----..15..81..
2f740 34 37 0d 0a 38 37 0d 0a 32 31 0d 0a 31 30 0d 0a  47..87..21..10..
2f750 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2f760 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2f770 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
2f780 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35 34 0d  sort label-1054.
2f790 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e  .SELECT ALL COUN
2f7a0 54 28 20 2a 20 29 20 2a 20 2d 20 34 34 20 46 52  T( * ) * - 44 FR
2f7b0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
2f7c0 31 33 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  132....skipif my
2f7d0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2f7e0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
2f7f0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35 34  wsort label-1054
2f800 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55  ..SELECT ALL COU
2f810 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20 34 34 20  NT ( * ) * - 44 
2f820 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
2f830 0a 2d 31 33 32 0d 0a 0d 0a 71 75 65 72 79 20 49  .-132....query I
2f840 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2f850 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 35 39   DISTINCT + - 59
2f860 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
2f870 62 30 20 57 48 45 52 45 20 2b 20 63 6f 6c 32 20  b0 WHERE + col2 
2f880 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
2f890 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
2f8a0 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
2f8b0 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54  M tab0 WHERE NOT
2f8c0 20 2b 20 34 32 20 49 53 20 4e 4f 54 20 4e 55 4c   + 42 IS NOT NUL
2f8d0 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  L..----....onlyi
2f8e0 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
2f8f0 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
2f900 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
2f910 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35 37  wsort label-1057
2f920 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63  ..SELECT ALL - c
2f930 6f 6c 30 20 44 49 56 20 2b 20 39 33 20 46 52 4f  ol0 DIV + 93 FRO
2f940 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab2..----..0.
2f950 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  .0..0....skipif 
2f960 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2f970 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2f980 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2f990 35 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  57..SELECT ALL -
2f9a0 20 63 6f 6c 30 20 2f 20 2b 20 39 33 20 46 52 4f   col0 / + 93 FRO
2f9b0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab2..----..0.
2f9c0 0a 30 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .0..0....onlyif 
2f9d0 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
2f9e0 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70  tax: DECIMAL typ
2f9f0 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
2fa00 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35 38 0d  sort label-1058.
2fa10 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41 53 54  .SELECT ALL CAST
2fa20 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41  ( NULL AS DECIMA
2fa30 4c 20 29 20 2b 20 2b 20 2b 20 63 6f 6c 30 20 46  L ) + + + col0 F
2fa40 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
2fa50 20 57 48 45 52 45 20 2d 20 63 6f 6c 30 20 2a 20   WHERE - col0 * 
2fa60 35 36 20 2f 20 63 6f 6c 32 20 2a 20 2b 20 63 6f  56 / col2 * + co
2fa70 6c 30 20 2a 20 2d 20 63 6f 6c 31 20 2a 20 63 6f  l0 * - col1 * co
2fa80 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l1 IS NULL..----
2fa90 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2faa0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2fab0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
2fac0 72 74 20 6c 61 62 65 6c 2d 31 30 35 38 0d 0a 53  rt label-1058..S
2fad0 45 4c 45 43 54 20 41 4c 4c 20 43 41 53 54 20 28  ELECT ALL CAST (
2fae0 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20   NULL AS REAL ) 
2faf0 2b 20 2b 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20  + + + col0 FROM 
2fb00 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
2fb10 52 45 20 2d 20 63 6f 6c 30 20 2a 20 35 36 20 2f  RE - col0 * 56 /
2fb20 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 30 20 2a   col2 * + col0 *
2fb30 20 2d 20 63 6f 6c 31 20 2a 20 63 6f 6c 31 20 49   - col1 * col1 I
2fb40 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  S NULL..----....
2fb50 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2fb60 0a 53 45 4c 45 43 54 20 2b 20 28 20 31 39 20 29  .SELECT + ( 19 )
2fb70 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
2fb80 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
2fb90 0d 0a 31 39 0d 0a 31 39 0d 0a 31 39 0d 0a 0d 0a  ..19..19..19....
2fba0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2fbb0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20  .SELECT ALL + - 
2fbc0 31 34 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 2b 20  14 + col0 + - + 
2fbd0 35 38 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  58 AS col2 FROM 
2fbe0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
2fbf0 2d 2d 0d 0a 2d 32 36 0d 0a 2d 38 0d 0a 33 0d 0a  --..-26..-8..3..
2fc00 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
2fc10 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
2fc20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  * FROM tab2 AS c
2fc30 6f 72 30 20 57 48 45 52 45 20 2d 20 63 6f 6c 30  or0 WHERE - col0
2fc40 20 3e 3d 20 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d   >= - col2..----
2fc50 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2fc60 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  ort..SELECT - co
2fc70 6c 31 20 2b 20 2b 20 2d 20 33 32 20 2b 20 2b 20  l1 + + - 32 + + 
2fc80 33 35 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  35 AS col1 FROM 
2fc90 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
2fca0 2d 2d 0d 0a 2d 34 38 0d 0a 2d 36 34 0d 0a 2d 37  --..-48..-64..-7
2fcb0 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  4....query I row
2fcc0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
2fcd0 20 33 36 20 2a 20 63 6f 6c 32 20 2b 20 33 20 46   36 * col2 + 3 F
2fce0 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d  ROM tab0 cor0..-
2fcf0 2d 2d 2d 0d 0a 31 36 39 35 0d 0a 33 35 36 37 0d  ---..1695..3567.
2fd00 0a 33 36 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .363....query I 
2fd10 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2fd20 28 20 2b 20 2b 20 63 6f 6c 31 20 29 20 2a 20 2d  ( + + col1 ) * -
2fd30 20 39 34 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   94 AS col2 FROM
2fd40 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 37   tab2..----..-47
2fd50 39 34 0d 0a 2d 36 32 39 38 0d 0a 2d 37 32 33 38  94..-6298..-7238
2fd60 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2fd70 6f 72 74 0d 0a 53 45 4c 45 43 54 20 28 20 35 30  ort..SELECT ( 50
2fd80 20 29 20 2a 20 2d 20 39 38 20 46 52 4f 4d 20 74   ) * - 98 FROM t
2fd90 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 39 30 30  ab0..----..-4900
2fda0 0d 0a 2d 34 39 30 30 0d 0a 2d 34 39 30 30 0d 0a  ..-4900..-4900..
2fdb0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2fdc0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
2fdd0 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 30 20 2b 20  col0 * - col0 + 
2fde0 2b 20 34 35 20 46 52 4f 4d 20 74 61 62 30 20 41  + 45 FROM tab0 A
2fdf0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 37  S cor0..----..27
2fe00 30 0d 0a 37 36 31 34 0d 0a 39 34 35 34 0d 0a 0d  0..7614..9454...
2fe10 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2fe20 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 28  ..SELECT ALL + (
2fe30 20 2d 20 2b 20 28 20 63 6f 6c 31 20 29 20 29 20   - + ( col1 ) ) 
2fe40 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a  FROM tab1 cor0..
2fe50 2d 2d 2d 2d 0d 0a 2d 31 34 0d 0a 2d 34 37 0d 0a  ----..-14..-47..
2fe60 2d 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  -5....onlyif mys
2fe70 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
2fe80 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
2fe90 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2fea0 30 36 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  068..SELECT ALL 
2feb0 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b  + + COUNT( * ) +
2fec0 20 2b 20 2d 20 35 31 20 46 52 4f 4d 20 74 61 62   + - 51 FROM tab
2fed0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
2fee0 0a 2d 34 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-48....skipif m
2fef0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2ff00 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
2ff10 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 36  owsort label-106
2ff20 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  8..SELECT ALL + 
2ff30 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20  + COUNT ( * ) + 
2ff40 2b 20 2d 20 35 31 20 46 52 4f 4d 20 74 61 62 30  + - 51 FROM tab0
2ff50 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2ff60 2d 34 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  -48....query I r
2ff70 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
2ff80 20 63 6f 6c 32 20 2d 20 2d 20 2b 20 63 6f 6c 31   col2 - - + col1
2ff90 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
2ffa0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 37 0d 0a 31  r0..----..117..1
2ffb0 32 35 0d 0a 37 34 0d 0a 0d 0a 6f 6e 6c 79 69 66  25..74....onlyif
2ffc0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
2ffd0 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20  ntax: aggregate 
2ffe0 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
2fff0 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
30000 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 37  owsort label-107
30010 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  0..SELECT DISTIN
30020 43 54 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20  CT + CAST( NULL 
30030 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2d 20  AS SIGNED ) + - 
30040 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f  + COUNT( * ) FRO
30050 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab2 cor0..---
30060 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  -..NULL....skipi
30070 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
30080 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
30090 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
300a0 31 30 37 30 0d 0a 53 45 4c 45 43 54 20 44 49 53  1070..SELECT DIS
300b0 54 49 4e 43 54 20 2b 20 43 41 53 54 20 28 20 4e  TINCT + CAST ( N
300c0 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
300d0 20 2b 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a   + - + COUNT ( *
300e0 20 29 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72   ) FROM tab2 cor
300f0 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  0..----..NULL...
30100 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
30110 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
30120 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
30130 48 45 52 45 20 63 6f 6c 30 20 2a 20 63 6f 6c 32  HERE col0 * col2
30140 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2b 20 2b   NOT BETWEEN + +
30150 20 39 20 2d 20 2b 20 2d 20 63 6f 6c 32 20 2a 20   9 - + - col2 * 
30160 2d 20 2d 20 28 20 2d 20 2b 20 28 20 2b 20 2d 20  - - ( - + ( + - 
30170 63 6f 6c 30 20 29 20 29 20 2b 20 2d 20 2d 20 63  col0 ) ) + - - c
30180 6f 6c 31 20 41 4e 44 20 2d 20 63 6f 6c 31 0d 0a  ol1 AND - col1..
30190 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
301a0 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38  ashing to 75c998
301b0 61 61 35 33 61 63 38 33 32 31 38 63 62 66 32 66  aa53ac83218cbf2f
301c0 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 71 75  eb962d0a49....qu
301d0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
301e0 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2b 20 2b  ELECT - col1 + +
301f0 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   + col1 FROM tab
30200 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  1 cor0..----..0.
30210 0a 30 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49  .0..0....query I
30220 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
30230 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57  CT * FROM tab0 W
30240 48 45 52 45 20 2b 20 35 34 20 42 45 54 57 45 45  HERE + 54 BETWEE
30250 4e 20 4e 55 4c 4c 20 41 4e 44 20 2d 20 63 6f 6c  N NULL AND - col
30260 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  0..----....onlyi
30270 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
30280 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
30290 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
302a0 62 65 6c 2d 31 30 37 34 0d 0a 53 45 4c 45 43 54  bel-1074..SELECT
302b0 20 32 34 20 2a 20 2b 20 43 4f 55 4e 54 28 20 41   24 * + COUNT( A
302c0 4c 4c 20 2d 20 35 35 20 29 20 2b 20 35 33 20 41  LL - 55 ) + 53 A
302d0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
302e0 0d 0a 2d 2d 2d 2d 0d 0a 31 32 35 0d 0a 0d 0a 73  ..----..125....s
302f0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
30300 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
30310 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
30320 62 65 6c 2d 31 30 37 34 0d 0a 53 45 4c 45 43 54  bel-1074..SELECT
30330 20 32 34 20 2a 20 2b 20 43 4f 55 4e 54 20 28 20   24 * + COUNT ( 
30340 41 4c 4c 20 2d 20 35 35 20 29 20 2b 20 35 33 20  ALL - 55 ) + 53 
30350 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
30360 31 0d 0a 2d 2d 2d 2d 0d 0a 31 32 35 0d 0a 0d 0a  1..----..125....
30370 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
30380 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f  .SELECT ALL + co
30390 6c 30 20 2d 20 2b 20 39 35 20 46 52 4f 4d 20 74  l0 - + 95 FROM t
303a0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30 0d 0a  ab2..----..-20..
303b0 2d 33 31 0d 0a 2d 34 39 0d 0a 0d 0a 6f 6e 6c 79  -31..-49....only
303c0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
303d0 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
303e0 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
303f0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 37  owsort label-107
30400 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41  6..SELECT ALL CA
30410 53 54 28 20 2d 20 35 32 20 41 53 20 53 49 47 4e  ST( - 52 AS SIGN
30420 45 44 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a  ED ) FROM tab1..
30430 2d 2d 2d 2d 0d 0a 2d 35 32 0d 0a 2d 35 32 0d 0a  ----..-52..-52..
30440 2d 35 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -52....skipif my
30450 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
30460 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
30470 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 37 36  wsort label-1076
30480 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41 53  ..SELECT ALL CAS
30490 54 20 28 20 2d 20 35 32 20 41 53 20 49 4e 54 45  T ( - 52 AS INTE
304a0 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 31 0d  GER ) FROM tab1.
304b0 0a 2d 2d 2d 2d 0d 0a 2d 35 32 0d 0a 2d 35 32 0d  .----..-52..-52.
304c0 0a 2d 35 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-52....query I 
304d0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
304e0 41 4c 4c 20 2d 20 39 30 20 41 53 20 63 6f 6c 32  ALL - 90 AS col2
304f0 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
30500 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d   NULL IS NULL..-
30510 2d 2d 2d 0d 0a 2d 39 30 0d 0a 2d 39 30 0d 0a 2d  ---..-90..-90..-
30520 39 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  90....onlyif mys
30530 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
30540 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
30550 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
30560 20 6c 61 62 65 6c 2d 31 30 37 38 0d 0a 53 45 4c   label-1078..SEL
30570 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 36  ECT DISTINCT - 6
30580 38 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  8 FROM tab2 WHER
30590 45 20 4e 4f 54 20 39 38 20 2f 20 2d 20 2d 20 63  E NOT 98 / - - c
305a0 6f 6c 30 20 2a 20 2b 20 43 41 53 54 28 20 2b 20  ol0 * + CAST( + 
305b0 63 6f 6c 31 20 41 53 20 53 49 47 4e 45 44 20 29  col1 AS SIGNED )
305c0 20 2b 20 2b 20 63 6f 6c 30 20 2d 20 2b 20 63 6f   + + col0 - + co
305d0 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l2 IS NULL..----
305e0 0d 0a 2d 36 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-68....skipif 
305f0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
30600 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
30610 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
30620 37 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  78..SELECT DISTI
30630 4e 43 54 20 2d 20 36 38 20 46 52 4f 4d 20 74 61  NCT - 68 FROM ta
30640 62 32 20 57 48 45 52 45 20 4e 4f 54 20 39 38 20  b2 WHERE NOT 98 
30650 2f 20 2d 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 43  / - - col0 * + C
30660 41 53 54 20 28 20 2b 20 63 6f 6c 31 20 41 53 20  AST ( + col1 AS 
30670 49 4e 54 45 47 45 52 20 29 20 2b 20 2b 20 63 6f  INTEGER ) + + co
30680 6c 30 20 2d 20 2b 20 63 6f 6c 32 20 49 53 20 4e  l0 - + col2 IS N
30690 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 38 0d 0a  ULL..----..-68..
306a0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
306b0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
306c0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
306d0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 37 39 0d  sort label-1079.
306e0 0a 53 45 4c 45 43 54 20 37 36 20 2a 20 2d 20 2d  .SELECT 76 * - -
306f0 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
30700 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol2 FROM tab1..-
30710 2d 2d 2d 0d 0a 32 32 38 0d 0a 0d 0a 73 6b 69 70  ---..228....skip
30720 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
30730 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
30740 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
30750 2d 31 30 37 39 0d 0a 53 45 4c 45 43 54 20 37 36  -1079..SELECT 76
30760 20 2a 20 2d 20 2d 20 43 4f 55 4e 54 20 28 20 2a   * - - COUNT ( *
30770 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
30780 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 32 38 0d  tab1..----..228.
30790 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
307a0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
307b0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
307c0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 38 30  wsort label-1080
307d0 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 43 4f 55  ..SELECT + + COU
307e0 4e 54 28 20 44 49 53 54 49 4e 43 54 20 2b 20 35  NT( DISTINCT + 5
307f0 36 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  6 ) AS col0 FROM
30800 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
30810 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..1....skipif my
30820 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
30830 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
30840 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 38 30  wsort label-1080
30850 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 43 4f 55  ..SELECT + + COU
30860 4e 54 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20  NT ( DISTINCT + 
30870 35 36 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  56 ) AS col0 FRO
30880 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab1 cor0..---
30890 2d 0d 0a 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49  -..1....query II
308a0 49 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  IIII rowsort..SE
308b0 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
308c0 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a   AS cor0 CROSS J
308d0 4f 49 4e 20 74 61 62 31 20 41 53 20 63 6f 72 31  OIN tab1 AS cor1
308e0 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2d 20 35   WHERE NOT ( - 5
308f0 34 20 49 53 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d  4 IS NULL )..---
30900 2d 0d 0a 35 34 20 76 61 6c 75 65 73 20 68 61 73  -..54 values has
30910 68 69 6e 67 20 74 6f 20 39 63 66 35 33 32 39 61  hing to 9cf5329a
30920 65 35 30 39 32 30 66 34 63 36 65 32 39 37 63 39  e50920f4c6e297c9
30930 66 35 62 36 35 32 66 64 0d 0a 0d 0a 71 75 65 72  f5b652fd....quer
30940 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
30950 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 63 6f 6c  LECT ALL + - col
30960 32 20 41 53 20 63 6f 6c 31 2c 20 2d 20 63 6f 6c  2 AS col1, - col
30970 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  2 AS col2 FROM t
30980 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
30990 2d 0d 0a 2d 31 30 0d 0a 2d 31 30 0d 0a 2d 34 37  -..-10..-10..-47
309a0 0d 0a 2d 34 37 0d 0a 2d 39 39 0d 0a 2d 39 39 0d  ..-47..-99..-99.
309b0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
309c0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
309d0 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
309e0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
309f0 62 65 6c 2d 31 30 38 33 0d 0a 53 45 4c 45 43 54  bel-1083..SELECT
30a00 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31   DISTINCT - col1
30a10 20 2a 20 2b 20 2b 20 28 20 2d 20 43 41 53 54 28   * + + ( - CAST(
30a20 20 2b 20 63 6f 6c 32 20 41 53 20 53 49 47 4e 45   + col2 AS SIGNE
30a30 44 20 29 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20  D ) ) col2 FROM 
30a40 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
30a50 2d 2d 0d 0a 31 31 37 33 0d 0a 33 30 38 30 0d 0a  --..1173..3080..
30a60 33 38 38 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  3886....skipif m
30a70 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
30a80 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
30a90 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
30aa0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
30ab0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
30ac0 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
30ad0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
30ae0 6c 61 62 65 6c 2d 31 30 38 33 0d 0a 53 45 4c 45  label-1083..SELE
30af0 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f  CT DISTINCT - co
30b00 6c 31 20 2a 20 2b 20 2b 20 28 20 2d 20 43 41 53  l1 * + + ( - CAS
30b10 54 20 28 20 2b 20 63 6f 6c 32 20 41 53 20 49 4e  T ( + col2 AS IN
30b20 54 45 47 45 52 20 29 20 29 20 63 6f 6c 32 20 46  TEGER ) ) col2 F
30b30 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
30b40 0d 0a 2d 2d 2d 2d 0d 0a 31 31 37 33 0d 0a 33 30  ..----..1173..30
30b50 38 30 0d 0a 33 38 38 36 0d 0a 0d 0a 73 6b 69 70  80..3886....skip
30b60 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
30b70 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
30b80 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
30b90 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
30ba0 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
30bb0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d  sort..SELECT - -
30bc0 20 63 6f 6c 30 20 2a 20 2d 20 2d 20 63 6f 6c 30   col0 * - - col0
30bd0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
30be0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  AS cor0..----..2
30bf0 31 31 36 0d 0a 34 30 39 36 0d 0a 35 36 32 35 0d  116..4096..5625.
30c00 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
30c10 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c  rt..SELECT + col
30c20 32 20 2a 20 2d 20 39 34 20 41 53 20 63 6f 6c 31  2 * - 94 AS col1
30c30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
30c40 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 35 34 36 0d  r0..----..-5546.
30c50 0a 2d 36 33 39 32 0d 0a 2d 39 30 32 34 0d 0a 0d  .-6392..-9024...
30c60 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
30c70 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
30c80 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
30c90 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
30ca0 6c 2d 31 30 38 36 0d 0a 53 45 4c 45 43 54 20 41  l-1086..SELECT A
30cb0 4c 4c 20 2d 20 2d 20 34 37 20 2a 20 2b 20 2b 20  LL - - 47 * + + 
30cc0 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
30cd0 47 4e 45 44 20 29 20 63 6f 6c 32 20 46 52 4f 4d  GNED ) col2 FROM
30ce0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
30cf0 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
30d00 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
30d10 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
30d20 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70  atible..skipif p
30d30 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
30d40 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
30d50 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
30d60 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
30d70 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
30d80 20 6c 61 62 65 6c 2d 31 30 38 36 0d 0a 53 45 4c   label-1086..SEL
30d90 45 43 54 20 41 4c 4c 20 2d 20 2d 20 34 37 20 2a  ECT ALL - - 47 *
30da0 20 2b 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c   + + CAST ( NULL
30db0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 63 6f   AS INTEGER ) co
30dc0 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
30dd0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
30de0 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
30df0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
30e00 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 46 52 4f  .SELECT col2 FRO
30e10 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
30e20 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20  HERE NOT ( NULL 
30e30 29 20 3c 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  ) <= NULL..----.
30e40 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
30e50 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 33 33 20  rt..SELECT - 33 
30e60 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  + - col0 FROM ta
30e70 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b2 cor0..----..-
30e80 31 30 38 0d 0a 2d 37 39 0d 0a 2d 39 37 0d 0a 0d  108..-79..-97...
30e90 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
30ea0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
30eb0 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  : DIV for intege
30ec0 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
30ed0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
30ee0 62 65 6c 2d 31 30 38 39 0d 0a 53 45 4c 45 43 54  bel-1089..SELECT
30ef0 20 43 4f 55 4e 54 28 20 2a 20 29 20 44 49 56 20   COUNT( * ) DIV 
30f00 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 63 6f 6c  + COUNT( * ) col
30f10 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  2 FROM tab1..---
30f20 2d 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..1....skipif m
30f30 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
30f40 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
30f50 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
30f60 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
30f70 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
30f80 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
30f90 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
30fa0 6c 61 62 65 6c 2d 31 30 38 39 0d 0a 53 45 4c 45  label-1089..SELE
30fb0 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2f  CT COUNT ( * ) /
30fc0 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 63   + COUNT ( * ) c
30fd0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol2 FROM tab1..-
30fe0 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 6f 6e 6c 79 69 66  ---..1....onlyif
30ff0 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
31000 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
31010 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
31020 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 39 30 0d  sort label-1090.
31030 0a 53 45 4c 45 43 54 20 36 37 20 44 49 56 20 2b  .SELECT 67 DIV +
31040 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
31050 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 31 0d 0a  .----..0..0..1..
31060 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
31070 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
31080 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
31090 20 6c 61 62 65 6c 2d 31 30 39 30 0d 0a 53 45 4c   label-1090..SEL
310a0 45 43 54 20 36 37 20 2f 20 2b 20 63 6f 6c 30 20  ECT 67 / + col0 
310b0 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
310c0 0a 30 0d 0a 30 0d 0a 31 0d 0a 0d 0a 6f 6e 6c 79  .0..0..1....only
310d0 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
310e0 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
310f0 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
31100 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 39  owsort label-109
31110 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f  1..SELECT ALL co
31120 6c 32 20 44 49 56 20 2d 20 63 6f 6c 32 20 2b 20  l2 DIV - col2 + 
31130 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46  - col2 AS col1 F
31140 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
31150 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 34 0d 0a 2d 34 31  ..----..-24..-41
31160 0d 0a 2d 35 39 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-59....skipif 
31170 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
31180 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
31190 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
311a0 39 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63  91..SELECT ALL c
311b0 6f 6c 32 20 2f 20 2d 20 63 6f 6c 32 20 2b 20 2d  ol2 / - col2 + -
311c0 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52   col2 AS col1 FR
311d0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
311e0 0a 2d 2d 2d 2d 0d 0a 2d 32 34 0d 0a 2d 34 31 0d  .----..-24..-41.
311f0 0a 2d 35 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-59....onlyif m
31200 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
31210 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
31220 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
31230 2d 31 30 39 32 0d 0a 53 45 4c 45 43 54 20 4d 49  -1092..SELECT MI
31240 4e 28 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 29 20  N( ALL - col1 ) 
31250 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
31260 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37  S cor0..----..-7
31270 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  7....skipif mysq
31280 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
31290 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
312a0 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
312b0 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
312c0 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
312d0 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
312e0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
312f0 65 6c 2d 31 30 39 32 0d 0a 53 45 4c 45 43 54 20  el-1092..SELECT 
31300 4d 49 4e 20 28 20 41 4c 4c 20 2d 20 63 6f 6c 31  MIN ( ALL - col1
31310 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   ) col0 FROM tab
31320 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
31330 0a 2d 37 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-77....query I 
31340 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
31350 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 46 52  DISTINCT col1 FR
31360 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
31370 54 20 2d 20 37 31 20 2a 20 2d 20 33 38 20 49 53  T - 71 * - 38 IS
31380 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
31390 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
313a0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44  # CAST syntax: D
313b0 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71  ECIMAL type: ..q
313c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
313d0 61 62 65 6c 2d 31 30 39 34 0d 0a 53 45 4c 45 43  abel-1094..SELEC
313e0 54 20 2d 20 35 34 20 2a 20 2b 20 43 41 53 54 28  T - 54 * + CAST(
313f0 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c   NULL AS DECIMAL
31400 20 29 20 2b 20 2d 20 2b 20 33 32 20 46 52 4f 4d   ) + - + 32 FROM
31410 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   tab2..----..NUL
31420 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
31430 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
31440 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
31450 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
31460 6c 61 62 65 6c 2d 31 30 39 34 0d 0a 53 45 4c 45  label-1094..SELE
31470 43 54 20 2d 20 35 34 20 2a 20 2b 20 43 41 53 54  CT - 54 * + CAST
31480 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20   ( NULL AS REAL 
31490 29 20 2b 20 2d 20 2b 20 33 32 20 46 52 4f 4d 20  ) + - + 32 FROM 
314a0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab2..----..NULL
314b0 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
314c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
314d0 0a 53 45 4c 45 43 54 20 2d 20 2b 20 33 38 20 2b  .SELECT - + 38 +
314e0 20 2b 20 2b 20 35 33 20 41 53 20 63 6f 6c 31 20   + + 53 AS col1 
314f0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
31500 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 31 35 0d  0..----..15..15.
31510 0a 31 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .15....onlyif my
31520 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
31530 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
31540 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
31550 74 20 6c 61 62 65 6c 2d 31 30 39 36 0d 0a 53 45  t label-1096..SE
31560 4c 45 43 54 20 2b 20 38 31 20 44 49 56 20 2d 20  LECT + 81 DIV - 
31570 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f  col1 AS col0 FRO
31580 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
31590 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 31 0d 0a 2d 31  ----..-1..-1..-1
315a0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
315b0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
315c0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
315d0 72 74 20 6c 61 62 65 6c 2d 31 30 39 36 0d 0a 53  rt label-1096..S
315e0 45 4c 45 43 54 20 2b 20 38 31 20 2f 20 2d 20 63  ELECT + 81 / - c
315f0 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol1 AS col0 FROM
31600 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
31610 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 31 0d 0a 2d 31 0d  ---..-1..-1..-1.
31620 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
31630 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
31640 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
31650 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 39 37  wsort label-1097
31660 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 41 58 28 20  ..SELECT + MAX( 
31670 2d 20 33 20 29 20 46 52 4f 4d 20 74 61 62 30 20  - 3 ) FROM tab0 
31680 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a  cor0..----..-3..
31690 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
316a0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
316b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
316c0 20 6c 61 62 65 6c 2d 31 30 39 37 0d 0a 53 45 4c   label-1097..SEL
316d0 45 43 54 20 2b 20 4d 41 58 20 28 20 2d 20 33 20  ECT + MAX ( - 3 
316e0 29 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  ) FROM tab0 cor0
316f0 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75  ..----..-3....qu
31700 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
31710 53 45 4c 45 43 54 20 32 38 2c 20 63 6f 6c 30 20  SELECT 28, col0 
31720 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
31730 30 0d 0a 2d 2d 2d 2d 0d 0a 32 38 0d 0a 31 35 0d  0..----..28..15.
31740 0a 32 38 0d 0a 38 37 0d 0a 32 38 0d 0a 39 37 0d  .28..87..28..97.
31750 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
31760 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
31770 4e 43 54 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 2b  NCT - col2 + + +
31780 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52   col0 AS col1 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 31 37 0d 0a 32 33 0d 0a 32  .----..17..23..2
317b0 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  4....query I row
317c0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
317d0 54 49 4e 43 54 20 2d 20 39 36 20 2b 20 2b 20 63  TINCT - 96 + + c
317e0 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol2 AS col2 FROM
317f0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
31800 2d 2d 2d 0d 0a 2d 33 38 0d 0a 2d 35 36 0d 0a 2d  ---..-38..-56..-
31810 37 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  73....query I ro
31820 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
31830 53 54 49 4e 43 54 20 63 6f 6c 30 20 2d 20 63 6f  STINCT col0 - co
31840 6c 31 20 2a 20 2d 20 2d 20 31 35 20 41 53 20 63  l1 * - - 15 AS c
31850 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
31860 2d 2d 2d 0d 0a 2d 31 32 30 30 0d 0a 2d 32 32 38  ---..-1200..-228
31870 0d 0a 38 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..82....onlyif m
31880 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
31890 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
318a0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
318b0 2d 31 31 30 32 0d 0a 53 45 4c 45 43 54 20 35 38  -1102..SELECT 58
318c0 20 2d 20 28 20 2b 20 43 4f 55 4e 54 28 20 2a 20   - ( + COUNT( * 
318d0 29 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  ) ) col1 FROM ta
318e0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 35 0d 0a 0d 0a  b1..----..55....
318f0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
31900 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73  ot compatible..s
31910 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
31920 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
31930 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
31940 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
31950 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
31960 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
31970 30 32 0d 0a 53 45 4c 45 43 54 20 35 38 20 2d 20  02..SELECT 58 - 
31980 28 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ( + COUNT ( * ) 
31990 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  ) col1 FROM tab1
319a0 0d 0a 2d 2d 2d 2d 0d 0a 35 35 0d 0a 0d 0a 6f 6e  ..----..55....on
319b0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
319c0 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
319d0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
319e0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
319f0 31 30 33 0d 0a 53 45 4c 45 43 54 20 39 37 20 2a  103..SELECT 97 *
31a00 20 2d 20 43 41 53 54 28 20 2b 20 2d 20 43 41 53   - CAST( + - CAS
31a10 54 28 20 2d 20 63 6f 6c 31 20 41 53 20 53 49 47  T( - col1 AS SIG
31a20 4e 45 44 20 29 20 41 53 20 53 49 47 4e 45 44 20  NED ) AS SIGNED 
31a30 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
31a40 2d 0d 0a 2d 32 30 33 37 0d 0a 2d 37 38 35 37 0d  -..-2037..-7857.
31a50 0a 2d 39 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-97....skipif m
31a60 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
31a70 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
31a80 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 30  owsort label-110
31a90 33 0d 0a 53 45 4c 45 43 54 20 39 37 20 2a 20 2d  3..SELECT 97 * -
31aa0 20 43 41 53 54 20 28 20 2b 20 2d 20 43 41 53 54   CAST ( + - CAST
31ab0 20 28 20 2d 20 63 6f 6c 31 20 41 53 20 49 4e 54   ( - col1 AS INT
31ac0 45 47 45 52 20 29 20 41 53 20 49 4e 54 45 47 45  EGER ) AS INTEGE
31ad0 52 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  R ) FROM tab0..-
31ae0 2d 2d 2d 0d 0a 2d 32 30 33 37 0d 0a 2d 37 38 35  ---..-2037..-785
31af0 37 0d 0a 2d 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  7..-97....onlyif
31b00 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
31b10 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
31b20 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
31b30 62 65 6c 2d 31 31 30 34 0d 0a 53 45 4c 45 43 54  bel-1104..SELECT
31b40 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 53 55   DISTINCT + + SU
31b50 4d 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30  M( DISTINCT col0
31b60 20 29 20 41 53 20 63 6f 6c 32 2c 20 43 4f 55 4e   ) AS col2, COUN
31b70 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31  T( * ) FROM tab1
31b80 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
31b90 32 32 37 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66  227..3....skipif
31ba0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
31bb0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
31bc0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
31bd0 31 31 30 34 0d 0a 53 45 4c 45 43 54 20 44 49 53  1104..SELECT DIS
31be0 54 49 4e 43 54 20 2b 20 2b 20 53 55 4d 20 28 20  TINCT + + SUM ( 
31bf0 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 29 20  DISTINCT col0 ) 
31c00 41 53 20 63 6f 6c 32 2c 20 43 4f 55 4e 54 20 28  AS col2, COUNT (
31c10 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41   * ) FROM tab1 A
31c20 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 32  S cor0..----..22
31c30 37 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  7..3....onlyif m
31c40 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
31c50 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72   syntax: DIV for
31c60 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
31c70 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
31c80 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 30 35 0d  sort label-1105.
31c90 0a 53 45 4c 45 43 54 20 2d 20 2d 20 36 30 20 44  .SELECT - - 60 D
31ca0 49 56 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20  IV + COUNT( * ) 
31cb0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
31cc0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
31cd0 0a 32 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .20....skipif my
31ce0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
31cf0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
31d00 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 30 35  wsort label-1105
31d10 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 36 30 20  ..SELECT - - 60 
31d20 2f 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  / + COUNT ( * ) 
31d30 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
31d40 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
31d50 0a 32 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .20....onlyif my
31d60 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
31d70 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
31d80 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
31d90 6f 72 74 20 6c 61 62 65 6c 2d 31 31 30 36 0d 0a  ort label-1106..
31da0 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
31db0 4d 20 74 61 62 32 20 57 48 45 52 45 20 2d 20 2b  M tab2 WHERE - +
31dc0 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
31dd0 49 47 4e 45 44 20 29 20 2a 20 2d 20 39 31 20 49  IGNED ) * - 91 I
31de0 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
31df0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
31e00 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
31e10 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  e..query III row
31e20 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 30 36 0d  sort label-1106.
31e30 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
31e40 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 2d 20  OM tab2 WHERE - 
31e50 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
31e60 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2d 20 39   INTEGER ) * - 9
31e70 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  1 IS NOT NULL..-
31e80 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
31e90 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
31ea0 4c 4c 20 2d 20 36 34 20 2a 20 2b 20 63 6f 6c 30  LL - 64 * + col0
31eb0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
31ec0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
31ed0 0d 0a 2d 33 32 36 34 0d 0a 2d 35 34 34 30 0d 0a  ..-3264..-5440..
31ee0 2d 35 38 32 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -5824....onlyif 
31ef0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
31f00 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
31f10 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
31f20 6c 2d 31 31 30 38 0d 0a 53 45 4c 45 43 54 20 44  l-1108..SELECT D
31f30 49 53 54 49 4e 43 54 20 4d 41 58 28 20 41 4c 4c  ISTINCT MAX( ALL
31f40 20 2b 20 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d   + - col0 ) FROM
31f50 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
31f60 2d 2d 2d 0d 0a 2d 35 31 0d 0a 0d 0a 73 6b 69 70  ---..-51....skip
31f70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
31f80 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
31f90 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
31fa0 2d 31 31 30 38 0d 0a 53 45 4c 45 43 54 20 44 49  -1108..SELECT DI
31fb0 53 54 49 4e 43 54 20 4d 41 58 20 28 20 41 4c 4c  STINCT MAX ( ALL
31fc0 20 2b 20 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d   + - col0 ) FROM
31fd0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
31fe0 2d 2d 2d 0d 0a 2d 35 31 0d 0a 0d 0a 73 6b 69 70  ---..-51....skip
31ff0 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
32000 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
32010 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
32020 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
32030 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
32040 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63  sort..SELECT + c
32050 6f 6c 30 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  ol0 col2 FROM ta
32060 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
32070 20 4e 4f 54 20 38 34 20 2f 20 2b 20 63 6f 6c 32   NOT 84 / + col2
32080 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
32090 34 36 0d 0a 36 34 0d 0a 37 35 0d 0a 0d 0a 71 75  46..64..75....qu
320a0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
320b0 45 4c 45 43 54 20 63 6f 6c 31 20 2a 20 2d 20 31  ELECT col1 * - 1
320c0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
320d0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 32  r0..----..-1..-2
320e0 31 0d 0a 2d 38 31 0d 0a 0d 0a 73 6b 69 70 69 66  1..-81....skipif
320f0 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
32100 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
32110 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
32120 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
32130 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  s..query II rows
32140 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
32150 49 4e 43 54 20 63 6f 6c 31 20 63 6f 6c 31 2c 20  INCT col1 col1, 
32160 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  - col2 FROM tab2
32170 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
32180 4f 54 20 34 38 20 2a 20 2b 20 2b 20 63 6f 6c 32  OT 48 * + + col2
32190 20 2a 20 2b 20 28 20 63 6f 6c 31 20 29 20 49 53   * + ( col1 ) IS
321a0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d   NULL..----..51.
321b0 0a 2d 32 33 0d 0a 36 37 0d 0a 2d 35 38 0d 0a 37  .-23..67..-58..7
321c0 37 0d 0a 2d 34 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  7..-40....onlyif
321d0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
321e0 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20  ntax: aggregate 
321f0 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
32200 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
32210 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31  owsort label-111
32220 32 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e  2..SELECT - COUN
32230 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46  T( * ) AS col0 F
32240 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
32250 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c   WHERE NOT + col
32260 32 20 2a 20 2d 20 35 33 20 4e 4f 54 20 49 4e 20  2 * - 53 NOT IN 
32270 28 20 2b 20 43 41 53 54 28 20 2d 20 63 6f 6c 30  ( + CAST( - col0
32280 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 0d 0a   AS SIGNED ) )..
32290 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  ----..0....skipi
322a0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
322b0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
322c0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
322d0 31 31 31 32 0d 0a 53 45 4c 45 43 54 20 2d 20 43  1112..SELECT - C
322e0 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
322f0 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
32300 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b  cor0 WHERE NOT +
32310 20 63 6f 6c 32 20 2a 20 2d 20 35 33 20 4e 4f 54   col2 * - 53 NOT
32320 20 49 4e 20 28 20 2b 20 43 41 53 54 20 28 20 2d   IN ( + CAST ( -
32330 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45 52   col0 AS INTEGER
32340 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d   ) )..----..0...
32350 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
32360 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
32370 54 20 2d 20 28 20 2d 20 63 6f 6c 31 20 29 20 2a  T - ( - col1 ) *
32380 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 36 39 20 41   - col2 + + 69 A
32390 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
323a0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
323b0 2d 31 31 30 34 0d 0a 2d 33 30 31 31 0d 0a 2d 33  -1104..-3011..-3
323c0 38 31 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  817....onlyif my
323d0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
323e0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
323f0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
32400 31 31 31 34 0d 0a 53 45 4c 45 43 54 20 44 49 53  1114..SELECT DIS
32410 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 28 20 2b  TINCT - COUNT( +
32420 20 39 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f   9 ) AS col0 FRO
32430 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab1 cor0..---
32440 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..-3....skipif 
32450 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
32460 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
32470 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
32480 31 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  14..SELECT DISTI
32490 4e 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2b 20  NCT - COUNT ( + 
324a0 39 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  9 ) AS col0 FROM
324b0 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
324c0 0d 0a 2d 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..-3....onlyif m
324d0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
324e0 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
324f0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
32500 72 74 20 6c 61 62 65 6c 2d 31 31 31 35 0d 0a 53  rt label-1115..S
32510 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 2a  ELECT ALL col0 *
32520 20 2b 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20   + + CAST( NULL 
32530 41 53 20 53 49 47 4e 45 44 20 29 20 2f 20 2b 20  AS SIGNED ) / + 
32540 37 33 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  73 FROM tab1 cor
32550 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  0..----..NULL..N
32560 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ULL..NULL....ski
32570 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
32580 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
32590 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
325a0 6c 2d 31 31 31 35 0d 0a 53 45 4c 45 43 54 20 41  l-1115..SELECT A
325b0 4c 4c 20 63 6f 6c 30 20 2a 20 2b 20 2b 20 43 41  LL col0 * + + CA
325c0 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
325d0 45 47 45 52 20 29 20 2f 20 2b 20 37 33 20 46 52  EGER ) / + 73 FR
325e0 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d  OM tab1 cor0..--
325f0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
32600 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  NULL....onlyif m
32610 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
32620 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
32630 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
32640 2d 31 31 31 36 0d 0a 53 45 4c 45 43 54 20 44 49  -1116..SELECT DI
32650 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 28 20  STINCT - COUNT( 
32660 2d 20 31 37 20 29 20 41 53 20 63 6f 6c 30 20 46  - 17 ) AS col0 F
32670 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
32680 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  -3....skipif mys
32690 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
326a0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
326b0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31 36 0d  sort label-1116.
326c0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
326d0 20 2d 20 43 4f 55 4e 54 20 28 20 2d 20 31 37 20   - COUNT ( - 17 
326e0 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
326f0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d  ab2..----..-3...
32700 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
32710 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c  ..SELECT ALL col
32720 30 20 2a 20 2d 20 2d 20 28 20 2b 20 2d 20 63 6f  0 * - - ( + - co
32730 6c 32 20 29 20 2a 20 63 6f 6c 31 20 2d 20 2b 20  l2 ) * col1 - + 
32740 2b 20 34 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  + 42 FROM tab2..
32750 2d 2d 2d 2d 0d 0a 2d 31 39 37 31 36 32 0d 0a 2d  ----..-197162..-
32760 32 39 31 34 39 32 0d 0a 2d 35 34 30 30 30 0d 0a  291492..-54000..
32770 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
32780 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
32790 4e 43 54 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32  NCT col2 AS col2
327a0 2c 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c  , + col1 * - col
327b0 30 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30  0 - col2 AS col0
327c0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
327d0 0d 0a 32 33 0d 0a 2d 32 33 36 39 0d 0a 34 30 0d  ..23..-2369..40.
327e0 0a 2d 34 39 36 38 0d 0a 35 38 0d 0a 2d 35 30 38  .-4968..58..-508
327f0 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
32800 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
32810 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
32820 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
32830 31 39 0d 0a 53 45 4c 45 43 54 20 33 20 2b 20 2b  19..SELECT 3 + +
32840 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d   COUNT( * ) FROM
32850 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 36 0d 0a   tab0..----..6..
32860 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
32870 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
32880 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
32890 20 6c 61 62 65 6c 2d 31 31 31 39 0d 0a 53 45 4c   label-1119..SEL
328a0 45 43 54 20 33 20 2b 20 2b 20 43 4f 55 4e 54 20  ECT 3 + + COUNT 
328b0 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 0d  ( * ) FROM tab0.
328c0 0a 2d 2d 2d 2d 0d 0a 36 0d 0a 0d 0a 6f 6e 6c 79  .----..6....only
328d0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
328e0 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
328f0 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  ype: ..query II 
32900 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
32910 32 30 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 2d  20..SELECT + ( -
32920 20 2b 20 63 6f 6c 30 20 29 20 2b 20 2d 20 63 6f   + col0 ) + - co
32930 6c 31 20 2a 20 2d 20 43 41 53 54 28 20 28 20 2b  l1 * - CAST( ( +
32940 20 63 6f 6c 30 20 29 20 41 53 20 53 49 47 4e 45   col0 ) AS SIGNE
32950 44 20 29 20 41 53 20 63 6f 6c 31 2c 20 2b 20 37  D ) AS col1, + 7
32960 36 20 2b 20 2d 20 34 33 20 41 53 20 63 6f 6c 32  6 + - 43 AS col2
32970 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
32980 0d 0a 30 0d 0a 33 33 0d 0a 31 32 30 30 0d 0a 33  ..0..33..1200..3
32990 33 0d 0a 31 37 34 30 0d 0a 33 33 0d 0a 0d 0a 73  3..1740..33....s
329a0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
329b0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
329c0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
329d0 61 62 65 6c 2d 31 31 32 30 0d 0a 53 45 4c 45 43  abel-1120..SELEC
329e0 54 20 2b 20 28 20 2d 20 2b 20 63 6f 6c 30 20 29  T + ( - + col0 )
329f0 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 43 41   + - col1 * - CA
32a00 53 54 20 28 20 28 20 2b 20 63 6f 6c 30 20 29 20  ST ( ( + col0 ) 
32a10 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20  AS INTEGER ) AS 
32a20 63 6f 6c 31 2c 20 2b 20 37 36 20 2b 20 2d 20 34  col1, + 76 + - 4
32a30 33 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  3 AS col2 FROM t
32a40 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 33 33  ab0..----..0..33
32a50 0d 0a 31 32 30 30 0d 0a 33 33 0d 0a 31 37 34 30  ..1200..33..1740
32a60 0d 0a 33 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..33....onlyif m
32a70 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
32a80 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
32a90 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
32aa0 2d 31 31 32 31 0d 0a 53 45 4c 45 43 54 20 33 36  -1121..SELECT 36
32ab0 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20   + + COUNT( * ) 
32ac0 2b 20 2d 20 28 20 2b 20 43 4f 55 4e 54 28 20 2b  + - ( + COUNT( +
32ad0 20 2d 20 28 20 2d 20 36 37 20 29 20 29 20 29 20   - ( - 67 ) ) ) 
32ae0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
32af0 32 0d 0a 2d 2d 2d 2d 0d 0a 33 36 0d 0a 0d 0a 73  2..----..36....s
32b00 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
32b10 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
32b20 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
32b30 62 65 6c 2d 31 31 32 31 0d 0a 53 45 4c 45 43 54  bel-1121..SELECT
32b40 20 33 36 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20   36 + + COUNT ( 
32b50 2a 20 29 20 2b 20 2d 20 28 20 2b 20 43 4f 55 4e  * ) + - ( + COUN
32b60 54 20 28 20 2b 20 2d 20 28 20 2d 20 36 37 20 29  T ( + - ( - 67 )
32b70 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   ) ) AS col1 FRO
32b80 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 36  M tab2..----..36
32b90 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
32ba0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20  ort..SELECT + ( 
32bb0 2b 20 2d 20 63 6f 6c 31 20 29 20 2b 20 2d 20 2d  + - col1 ) + - -
32bc0 20 36 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   60 AS col1 FROM
32bd0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31   tab0..----..-21
32be0 0d 0a 33 39 0d 0a 35 39 0d 0a 0d 0a 6f 6e 6c 79  ..39..59....only
32bf0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
32c00 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74  syntax: aggregat
32c10 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  e syntax: SIGNED
32c20 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
32c30 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
32c40 31 32 33 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41  123..SELECT + CA
32c50 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
32c60 45 44 20 29 20 2b 20 2b 20 2b 20 43 4f 55 4e 54  ED ) + + + COUNT
32c70 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 0d  ( * ) FROM tab1.
32c80 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
32c90 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
32ca0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
32cb0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
32cc0 62 65 6c 2d 31 31 32 33 0d 0a 53 45 4c 45 43 54  bel-1123..SELECT
32cd0 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   + CAST ( NULL A
32ce0 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20 2b 20  S INTEGER ) + + 
32cf0 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52  + COUNT ( * ) FR
32d00 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab1..----..N
32d10 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ULL....query I r
32d20 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
32d30 49 53 54 49 4e 43 54 20 2b 20 36 33 20 41 53 20  ISTINCT + 63 AS 
32d40 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
32d50 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e  S cor0 WHERE ( N
32d60 55 4c 4c 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d  ULL ) IS NULL..-
32d70 2d 2d 2d 0d 0a 36 33 0d 0a 0d 0a 71 75 65 72 79  ---..63....query
32d80 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
32d90 43 54 20 41 4c 4c 20 2d 20 37 35 20 46 52 4f 4d  CT ALL - 75 FROM
32da0 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 43 52   tab0 AS cor0 CR
32db0 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 63 6f  OSS JOIN tab2 co
32dc0 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  r1..----..9 valu
32dd0 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 32 35  es hashing to 25
32de0 38 62 63 35 36 35 63 36 34 39 32 34 64 39 30 35  8bc565c64924d905
32df0 61 35 35 65 61 61 61 36 65 35 37 35 34 37 0d 0a  a55eaaa6e57547..
32e00 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
32e10 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
32e20 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
32e30 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
32e40 65 6c 2d 31 31 32 36 0d 0a 53 45 4c 45 43 54 20  el-1126..SELECT 
32e50 41 4c 4c 20 2b 20 63 6f 6c 32 20 44 49 56 20 2d  ALL + col2 DIV -
32e60 20 2d 20 63 6f 6c 32 20 2a 20 63 6f 6c 31 20 44   - col2 * col1 D
32e70 49 56 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c  IV - col1 AS col
32e80 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  2 FROM tab1..---
32e90 2d 0d 0a 2d 31 0d 0a 2d 31 0d 0a 2d 31 0d 0a 0d  -..-1..-1..-1...
32ea0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
32eb0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
32ec0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
32ed0 6c 61 62 65 6c 2d 31 31 32 36 0d 0a 53 45 4c 45  label-1126..SELE
32ee0 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 2f 20  CT ALL + col2 / 
32ef0 2d 20 2d 20 63 6f 6c 32 20 2a 20 63 6f 6c 31 20  - - col2 * col1 
32f00 2f 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32  / - col1 AS col2
32f10 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
32f20 0d 0a 2d 31 0d 0a 2d 31 0d 0a 2d 31 0d 0a 0d 0a  ..-1..-1..-1....
32f30 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
32f40 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
32f50 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
32f60 45 52 45 20 28 20 2b 20 35 39 20 29 20 49 53 20  ERE ( + 59 ) IS 
32f70 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
32f80 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
32f90 20 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36   to c6c0a4111b36
32fa0 64 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35  d04dbc811a11e4d5
32fb0 34 63 61 64 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  4cad....skipif p
32fc0 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
32fd0 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
32fe0 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
32ff0 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
33000 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
33010 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 39  ..SELECT ALL - 9
33020 32 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  2 col1 FROM tab2
33030 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
33040 4f 54 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20  OT NULL BETWEEN 
33050 37 32 20 41 4e 44 20 2d 20 63 6f 6c 31 0d 0a 2d  72 AND - col1..-
33060 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
33070 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
33080 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e  x: aggregate syn
33090 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
330a0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
330b0 6f 72 74 20 6c 61 62 65 6c 2d 31 31 32 39 0d 0a  ort label-1129..
330c0 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 43  SELECT ALL - + C
330d0 4f 55 4e 54 28 20 2a 20 29 20 2b 20 28 20 2d 20  OUNT( * ) + ( - 
330e0 38 20 29 20 2b 20 2b 20 43 41 53 54 28 20 2b 20  8 ) + + CAST( + 
330f0 2b 20 28 20 2d 20 2b 20 43 4f 55 4e 54 28 20 2a  + ( - + COUNT( *
33100 20 29 20 29 20 41 53 20 53 49 47 4e 45 44 20 29   ) ) AS SIGNED )
33110 20 2b 20 2b 20 28 20 2b 20 38 30 20 29 20 2a 20   + + ( + 80 ) * 
33120 2d 20 34 38 20 2a 20 2b 20 39 20 46 52 4f 4d 20  - 48 * + 9 FROM 
33130 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
33140 2d 2d 0d 0a 2d 33 34 35 37 34 0d 0a 0d 0a 73 6b  --..-34574....sk
33150 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
33160 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
33170 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
33180 65 6c 2d 31 31 32 39 0d 0a 53 45 4c 45 43 54 20  el-1129..SELECT 
33190 41 4c 4c 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20  ALL - + COUNT ( 
331a0 2a 20 29 20 2b 20 28 20 2d 20 38 20 29 20 2b 20  * ) + ( - 8 ) + 
331b0 2b 20 43 41 53 54 20 28 20 2b 20 2b 20 28 20 2d  + CAST ( + + ( -
331c0 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29   + COUNT ( * ) )
331d0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20   AS INTEGER ) + 
331e0 2b 20 28 20 2b 20 38 30 20 29 20 2a 20 2d 20 34  + ( + 80 ) * - 4
331f0 38 20 2a 20 2b 20 39 20 46 52 4f 4d 20 74 61 62  8 * + 9 FROM tab
33200 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
33210 0a 2d 33 34 35 37 34 0d 0a 0d 0a 71 75 65 72 79  .-34574....query
33220 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
33230 43 54 20 41 4c 4c 20 35 30 20 2d 20 2d 20 28 20  CT ALL 50 - - ( 
33240 2b 20 63 6f 6c 31 20 29 20 2b 20 2b 20 63 6f 6c  + col1 ) + + col
33250 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  1 AS col2 FROM t
33260 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
33270 2d 0d 0a 31 34 34 0d 0a 36 30 0d 0a 37 38 0d 0a  -..144..60..78..
33280 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
33290 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
332a0 28 20 28 20 63 6f 6c 30 20 29 20 29 20 2d 20 2d  ( ( col0 ) ) - -
332b0 20 38 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   81 AS col2 FROM
332c0 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
332d0 2d 2d 2d 0d 0a 31 36 38 0d 0a 31 37 38 0d 0a 39  ---..168..178..9
332e0 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
332f0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
33300 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49  ntax: ..query II
33310 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
33320 31 33 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  132..SELECT ALL 
33330 2d 20 36 39 2c 20 2b 20 43 4f 55 4e 54 28 20 2a  - 69, + COUNT( *
33340 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
33350 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 39 0d  tab0..----..-69.
33360 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .3....skipif mys
33370 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
33380 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
33390 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33 32  wsort label-1132
333a0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 36  ..SELECT ALL - 6
333b0 39 2c 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29  9, + COUNT ( * )
333c0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
333d0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 39 0d 0a 33  b0..----..-69..3
333e0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
333f0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63  sort..SELECT - c
33400 6f 6c 32 20 41 53 20 63 6f 6c 31 2c 20 63 6f 6c  ol2 AS col1, col
33410 31 20 2a 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  1 * col0 FROM ta
33420 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a 32  b2..----..-23..2
33430 33 34 36 0d 0a 2d 34 30 0d 0a 34 39 32 38 0d 0a  346..-40..4928..
33440 2d 35 38 0d 0a 35 30 32 35 0d 0a 0d 0a 6f 6e 6c  -58..5025....onl
33450 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
33460 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
33470 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
33480 6c 61 62 65 6c 2d 31 31 33 34 0d 0a 53 45 4c 45  label-1134..SELE
33490 43 54 20 2b 20 4d 41 58 28 20 34 33 20 29 20 41  CT + MAX( 43 ) A
334a0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
334b0 0d 0a 2d 2d 2d 2d 0d 0a 34 33 0d 0a 0d 0a 73 6b  ..----..43....sk
334c0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
334d0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
334e0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
334f0 65 6c 2d 31 31 33 34 0d 0a 53 45 4c 45 43 54 20  el-1134..SELECT 
33500 2b 20 4d 41 58 20 28 20 34 33 20 29 20 41 53 20  + MAX ( 43 ) AS 
33510 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
33520 2d 2d 2d 2d 0d 0a 34 33 0d 0a 0d 0a 6f 6e 6c 79  ----..43....only
33530 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
33540 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
33550 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
33560 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33  owsort label-113
33570 35 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2a  5..SELECT col2 *
33580 20 2d 20 2d 20 43 41 53 54 28 20 2d 20 63 6f 6c   - - CAST( - col
33590 32 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53  2 AS SIGNED ) AS
335a0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
335b0 0a 2d 2d 2d 2d 0d 0a 2d 31 30 30 0d 0a 2d 32 32  .----..-100..-22
335c0 30 39 0d 0a 2d 39 38 30 31 0d 0a 0d 0a 73 6b 69  09..-9801....ski
335d0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
335e0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
335f0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
33600 6c 2d 31 31 33 35 0d 0a 53 45 4c 45 43 54 20 63  l-1135..SELECT c
33610 6f 6c 32 20 2a 20 2d 20 2d 20 43 41 53 54 20 28  ol2 * - - CAST (
33620 20 2d 20 63 6f 6c 32 20 41 53 20 49 4e 54 45 47   - col2 AS INTEG
33630 45 52 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  ER ) AS col2 FRO
33640 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab0..----..-1
33650 30 30 0d 0a 2d 32 32 30 39 0d 0a 2d 39 38 30 31  00..-2209..-9801
33660 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
33670 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
33680 49 4e 43 54 20 63 6f 6c 31 20 2a 20 2d 20 31 20  INCT col1 * - 1 
33690 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
336a0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 32 31  0..----..-1..-21
336b0 0d 0a 2d 38 31 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-81....query I
336c0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
336d0 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
336e0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
336f0 57 48 45 52 45 20 4e 4f 54 20 28 20 28 20 4e 4f  WHERE NOT ( ( NO
33700 54 20 28 20 4e 55 4c 4c 20 29 20 49 53 20 4e 55  T ( NULL ) IS NU
33710 4c 4c 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20  LL ) )..----..9 
33720 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
33730 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64 30  o c6c0a4111b36d0
33740 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34 63  4dbc811a11e4d54c
33750 61 64 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  ad....onlyif mys
33760 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
33770 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
33780 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
33790 31 33 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  138..SELECT DIST
337a0 49 4e 43 54 20 2b 20 4d 49 4e 28 20 41 4c 4c 20  INCT + MIN( ALL 
337b0 2d 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61  - col2 ) FROM ta
337c0 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b1 cor0..----..-
337d0 39 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  96....skipif mys
337e0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
337f0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
33800 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33 38 0d  sort label-1138.
33810 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
33820 20 2b 20 4d 49 4e 20 28 20 41 4c 4c 20 2d 20 63   + MIN ( ALL - c
33830 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 31 20  ol2 ) FROM tab1 
33840 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 36 0d  cor0..----..-96.
33850 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
33860 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
33870 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
33880 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33 39  wsort label-1139
33890 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54  ..SELECT - COUNT
338a0 28 20 2a 20 29 20 2a 20 2d 20 36 36 20 2b 20 2d  ( * ) * - 66 + -
338b0 20 28 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20   ( + COUNT( * ) 
338c0 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
338d0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 35 0d 0a  or0..----..195..
338e0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
338f0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
33900 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
33910 20 6c 61 62 65 6c 2d 31 31 33 39 0d 0a 53 45 4c   label-1139..SEL
33920 45 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  ECT - COUNT ( * 
33930 29 20 2a 20 2d 20 36 36 20 2b 20 2d 20 28 20 2b  ) * - 66 + - ( +
33940 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29 20 46   COUNT ( * ) ) F
33950 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
33960 0d 0a 2d 2d 2d 2d 0d 0a 31 39 35 0d 0a 0d 0a 6f  ..----..195....o
33970 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
33980 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
33990 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
339a0 74 20 6c 61 62 65 6c 2d 31 31 34 30 0d 0a 53 45  t label-1140..SE
339b0 4c 45 43 54 20 2d 20 37 20 2b 20 2d 20 4d 49 4e  LECT - 7 + - MIN
339c0 28 20 41 4c 4c 20 2d 20 39 39 20 29 20 2b 20 2b  ( ALL - 99 ) + +
339d0 20 37 30 20 46 52 4f 4d 20 28 20 74 61 62 32 20   70 FROM ( tab2 
339e0 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
339f0 49 4e 20 74 61 62 32 20 41 53 20 63 6f 72 31 20  IN tab2 AS cor1 
33a00 29 0d 0a 2d 2d 2d 2d 0d 0a 31 36 32 0d 0a 0d 0a  )..----..162....
33a10 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
33a20 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
33a30 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
33a40 61 62 65 6c 2d 31 31 34 30 0d 0a 53 45 4c 45 43  abel-1140..SELEC
33a50 54 20 2d 20 37 20 2b 20 2d 20 4d 49 4e 20 28 20  T - 7 + - MIN ( 
33a60 41 4c 4c 20 2d 20 39 39 20 29 20 2b 20 2b 20 37  ALL - 99 ) + + 7
33a70 30 20 46 52 4f 4d 20 28 20 74 61 62 32 20 41 53  0 FROM ( tab2 AS
33a80 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
33a90 20 74 61 62 32 20 41 53 20 63 6f 72 31 20 29 0d   tab2 AS cor1 ).
33aa0 0a 2d 2d 2d 2d 0d 0a 31 36 32 0d 0a 0d 0a 6f 6e  .----..162....on
33ab0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
33ac0 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
33ad0 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
33ae0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
33af0 31 34 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  141..SELECT ALL 
33b00 2d 20 34 33 20 2b 20 2d 20 63 6f 6c 32 20 2b 20  - 43 + - col2 + 
33b10 2d 20 63 6f 6c 30 20 44 49 56 20 36 37 20 41 53  - col0 DIV 67 AS
33b20 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
33b30 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 32  cor0..----..-102
33b40 0d 0a 2d 36 36 0d 0a 2d 38 33 0d 0a 0d 0a 73 6b  ..-66..-83....sk
33b50 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
33b60 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
33b70 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
33b80 65 6c 2d 31 31 34 31 0d 0a 53 45 4c 45 43 54 20  el-1141..SELECT 
33b90 41 4c 4c 20 2d 20 34 33 20 2b 20 2d 20 63 6f 6c  ALL - 43 + - col
33ba0 32 20 2b 20 2d 20 63 6f 6c 30 20 2f 20 36 37 20  2 + - col0 / 67 
33bb0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
33bc0 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  2 cor0..----..-1
33bd0 30 32 0d 0a 2d 36 36 0d 0a 2d 38 33 0d 0a 0d 0a  02..-66..-83....
33be0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
33bf0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20  .SELECT ALL + - 
33c00 63 6f 6c 32 20 2b 20 2d 20 36 38 20 46 52 4f 4d  col2 + - 68 FROM
33c10 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
33c20 2d 2d 2d 0d 0a 2d 31 31 35 0d 0a 2d 31 36 37 0d  ---..-115..-167.
33c30 0a 2d 37 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-78....query I 
33c40 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
33c50 2d 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30  - - col1 AS col0
33c60 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
33c70 72 30 20 57 48 45 52 45 20 4e 4f 54 20 35 20 2b  r0 WHERE NOT 5 +
33c80 20 2b 20 63 6f 6c 31 20 2d 20 2b 20 38 31 20 49   + col1 - + 81 I
33c90 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
33ca0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
33cb0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 33  sort..SELECT - 3
33cc0 31 20 2b 20 2d 20 35 30 20 2b 20 2b 20 63 6f 6c  1 + - 50 + + col
33cd0 32 20 2a 20 2d 20 39 34 2c 20 63 6f 6c 31 20 2b  2 * - 94, col1 +
33ce0 20 2d 20 35 39 20 41 53 20 63 6f 6c 32 20 46 52   - 59 AS col2 FR
33cf0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
33d00 0a 2d 2d 2d 2d 0d 0a 2d 35 36 32 37 0d 0a 2d 35  .----..-5627..-5
33d10 34 0d 0a 2d 36 34 37 33 0d 0a 2d 31 32 0d 0a 2d  4..-6473..-12..-
33d20 39 31 30 35 0d 0a 2d 34 35 0d 0a 0d 0a 71 75 65  9105..-45....que
33d30 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
33d40 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 28 20  LECT DISTINCT ( 
33d50 2b 20 2b 20 63 6f 6c 31 20 29 20 41 53 20 63 6f  + + col1 ) AS co
33d60 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
33d70 2d 2d 0d 0a 31 0d 0a 32 31 0d 0a 38 31 0d 0a 0d  --..1..21..81...
33d80 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
33d90 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
33da0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
33db0 6f 72 74 20 6c 61 62 65 6c 2d 31 31 34 36 0d 0a  ort label-1146..
33dc0 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a 20  SELECT COUNT( * 
33dd0 29 20 2b 20 34 20 41 53 20 63 6f 6c 32 20 46 52  ) + 4 AS col2 FR
33de0 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 55  OM tab0 WHERE NU
33df0 4c 4c 20 3c 3d 20 2b 20 2d 20 63 6f 6c 30 0d 0a  LL <= + - col0..
33e00 2d 2d 2d 2d 0d 0a 34 0d 0a 0d 0a 73 6b 69 70 69  ----..4....skipi
33e10 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
33e20 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
33e30 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
33e40 31 31 34 36 0d 0a 53 45 4c 45 43 54 20 43 4f 55  1146..SELECT COU
33e50 4e 54 20 28 20 2a 20 29 20 2b 20 34 20 41 53 20  NT ( * ) + 4 AS 
33e60 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 57  col2 FROM tab0 W
33e70 48 45 52 45 20 4e 55 4c 4c 20 3c 3d 20 2b 20 2d  HERE NULL <= + -
33e80 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 34 0d 0a   col0..----..4..
33e90 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
33ea0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
33eb0 37 35 20 2a 20 2d 20 63 6f 6c 32 20 46 52 4f 4d  75 * - col2 FROM
33ec0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 34   tab1..----..-44
33ed0 32 35 0d 0a 2d 35 31 30 30 0d 0a 2d 37 32 30 30  25..-5100..-7200
33ee0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
33ef0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
33f00 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
33f10 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
33f20 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 31   - col2 * - col1
33f30 20 2b 20 2b 20 2b 20 63 6f 6c 32 20 49 53 20 4e   + + + col2 IS N
33f40 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  OT NULL..----..9
33f50 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
33f60 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38  to 75c998aa53ac8
33f70 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30  3218cbf2feb962d0
33f80 61 34 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  a49....skipif po
33f90 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
33fa0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
33fb0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
33fc0 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
33fd0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
33fe0 0a 53 45 4c 45 43 54 20 2b 20 2b 20 33 37 20 63  .SELECT + + 37 c
33ff0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
34000 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 37 0d   cor0..----..37.
34010 0a 33 37 0d 0a 33 37 0d 0a 0d 0a 6f 6e 6c 79 69  .37..37....onlyi
34020 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
34030 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74  yntax: DECIMAL t
34040 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
34050 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 35  owsort label-115
34060 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  0..SELECT DISTIN
34070 43 54 20 2b 20 31 34 20 2b 20 2b 20 2b 20 43 41  CT + 14 + + + CA
34080 53 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49  ST( NULL AS DECI
34090 4d 41 4c 20 29 20 41 53 20 63 6f 6c 31 20 46 52  MAL ) AS col1 FR
340a0 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d  OM tab2 cor0..--
340b0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
340c0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
340d0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
340e0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
340f0 2d 31 31 35 30 0d 0a 53 45 4c 45 43 54 20 44 49  -1150..SELECT DI
34100 53 54 49 4e 43 54 20 2b 20 31 34 20 2b 20 2b 20  STINCT + 14 + + 
34110 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
34120 20 52 45 41 4c 20 29 20 41 53 20 63 6f 6c 31 20   REAL ) AS col1 
34130 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a  FROM tab2 cor0..
34140 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e  ----..NULL....on
34150 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
34160 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
34170 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
34180 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
34190 31 31 35 31 0d 0a 53 45 4c 45 43 54 20 2d 20 63  1151..SELECT - c
341a0 6f 6c 30 20 2d 20 2d 20 63 6f 6c 32 20 2d 20 2d  ol0 - - col2 - -
341b0 20 63 6f 6c 30 2c 20 2b 20 28 20 43 41 53 54 28   col0, + ( CAST(
341c0 20 2b 20 63 6f 6c 32 20 41 53 20 53 49 47 4e 45   + col2 AS SIGNE
341d0 44 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30 20  D ) ) FROM tab0 
341e0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
341f0 30 0d 0a 31 30 0d 0a 34 37 0d 0a 34 37 0d 0a 39  0..10..47..47..9
34200 39 0d 0a 39 39 0d 0a 0d 0a 73 6b 69 70 69 66 20  9..99....skipif 
34210 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
34220 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
34230 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
34240 31 35 31 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  151..SELECT - co
34250 6c 30 20 2d 20 2d 20 63 6f 6c 32 20 2d 20 2d 20  l0 - - col2 - - 
34260 63 6f 6c 30 2c 20 2b 20 28 20 43 41 53 54 20 28  col0, + ( CAST (
34270 20 2b 20 63 6f 6c 32 20 41 53 20 49 4e 54 45 47   + col2 AS INTEG
34280 45 52 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30  ER ) ) FROM tab0
34290 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
342a0 31 30 0d 0a 31 30 0d 0a 34 37 0d 0a 34 37 0d 0a  10..10..47..47..
342b0 39 39 0d 0a 39 39 0d 0a 0d 0a 71 75 65 72 79 20  99..99....query 
342c0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
342d0 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  T DISTINCT - col
342e0 31 20 2a 20 2d 20 63 6f 6c 31 20 2d 20 2b 20 39  1 * - col1 - + 9
342f0 36 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  6 FROM tab2..---
34300 2d 0d 0a 32 35 30 35 0d 0a 34 33 39 33 0d 0a 35  -..2505..4393..5
34310 38 33 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  833....query I r
34320 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 34  owsort..SELECT 4
34330 32 20 2a 20 2d 20 39 39 20 41 53 20 63 6f 6c 30  2 * - 99 AS col0
34340 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
34350 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
34360 62 31 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39  b1 cor1..----..9
34370 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
34380 74 6f 20 37 34 37 36 36 65 62 65 63 63 64 33 66  to 74766ebeccd3f
34390 34 33 65 38 62 61 61 37 39 34 39 39 34 32 62 33  43e8baa7949942b3
343a0 65 33 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  e39....query I r
343b0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
343c0 4c 4c 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20  LL col2 AS col1 
343d0 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
343e0 4e 4f 54 20 2b 20 63 6f 6c 30 20 49 53 20 4e 4f  NOT + col0 IS NO
343f0 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  T NULL..----....
34400 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
34410 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2b  .SELECT + col1 +
34420 20 2b 20 31 20 41 53 20 63 6f 6c 30 20 46 52 4f   + 1 AS col0 FRO
34430 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
34440 48 45 52 45 20 2b 20 38 39 20 2b 20 2d 20 2b 20  HERE + 89 + - + 
34450 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col2 IS NOT NULL
34460 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 34 38 0d 0a  ..----..15..48..
34470 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  6....query I row
34480 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
34490 54 49 4e 43 54 20 63 6f 6c 32 20 2a 20 2d 20 28  TINCT col2 * - (
344a0 20 2d 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74   - col1 ) FROM t
344b0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
344c0 2d 0d 0a 31 33 34 34 0d 0a 32 39 35 0d 0a 33 31  -..1344..295..31
344d0 39 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  96....query I ro
344e0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
344f0 31 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  10 FROM tab1 AS 
34500 63 6f 72 30 20 57 48 45 52 45 20 2b 20 39 39 20  cor0 WHERE + 99 
34510 2b 20 63 6f 6c 31 20 2d 20 2b 20 63 6f 6c 31 20  + col1 - + col1 
34520 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
34530 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
34540 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
34550 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
34560 6f 72 74 20 6c 61 62 65 6c 2d 31 31 35 38 0d 0a  ort label-1158..
34570 53 45 4c 45 43 54 20 36 31 20 2a 20 4d 41 58 28  SELECT 61 * MAX(
34580 20 41 4c 4c 20 2b 20 31 33 20 29 20 46 52 4f 4d   ALL + 13 ) FROM
34590 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
345a0 0d 0a 37 39 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..793....skipif 
345b0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
345c0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
345d0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
345e0 35 38 0d 0a 53 45 4c 45 43 54 20 36 31 20 2a 20  58..SELECT 61 * 
345f0 4d 41 58 20 28 20 41 4c 4c 20 2b 20 31 33 20 29  MAX ( ALL + 13 )
34600 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d   FROM tab2 cor0.
34610 0a 2d 2d 2d 2d 0d 0a 37 39 33 0d 0a 0d 0a 6f 6e  .----..793....on
34620 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
34630 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44  regate syntax: D
34640 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
34650 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
34660 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
34670 2d 31 31 35 39 0d 0a 53 45 4c 45 43 54 20 44 49  -1159..SELECT DI
34680 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 28 20  STINCT - COUNT( 
34690 2a 20 29 20 44 49 56 20 2b 20 37 39 20 2a 20 38  * ) DIV + 79 * 8
346a0 39 20 2b 20 2d 20 2b 20 38 31 20 41 53 20 63 6f  9 + - + 81 AS co
346b0 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
346c0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 31 0d  cor0..----..-81.
346d0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
346e0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
346f0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
34700 74 20 6c 61 62 65 6c 2d 31 31 35 39 0d 0a 53 45  t label-1159..SE
34710 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
34720 43 4f 55 4e 54 20 28 20 2a 20 29 20 2f 20 2b 20  COUNT ( * ) / + 
34730 37 39 20 2a 20 38 39 20 2b 20 2d 20 2b 20 38 31  79 * 89 + - + 81
34740 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
34750 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
34760 0d 0a 2d 38 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-81....onlyif 
34770 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
34780 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
34790 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
347a0 6f 72 74 20 6c 61 62 65 6c 2d 31 31 36 30 0d 0a  ort label-1160..
347b0 53 45 4c 45 43 54 20 63 6f 6c 31 20 2a 20 2d 20  SELECT col1 * - 
347c0 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  - CAST( NULL AS 
347d0 53 49 47 4e 45 44 20 29 20 2b 20 2b 20 39 34 20  SIGNED ) + + 94 
347e0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
347f0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
34800 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
34810 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
34820 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
34830 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
34840 6f 72 74 20 6c 61 62 65 6c 2d 31 31 36 30 0d 0a  ort label-1160..
34850 53 45 4c 45 43 54 20 63 6f 6c 31 20 2a 20 2d 20  SELECT col1 * - 
34860 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
34870 20 49 4e 54 45 47 45 52 20 29 20 2b 20 2b 20 39   INTEGER ) + + 9
34880 34 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  4 AS col1 FROM t
34890 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
348a0 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
348b0 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ULL....onlyif my
348c0 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
348d0 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
348e0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
348f0 74 20 6c 61 62 65 6c 2d 31 31 36 31 0d 0a 53 45  t label-1161..SE
34900 4c 45 43 54 20 41 4c 4c 20 2b 20 33 30 20 44 49  LECT ALL + 30 DI
34910 56 20 2d 20 2d 20 33 39 20 2b 20 2b 20 2b 20 28  V - - 39 + + + (
34920 20 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74   - col0 ) FROM t
34930 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
34940 2d 0d 0a 2d 35 31 0d 0a 2d 38 35 0d 0a 2d 39 31  -..-51..-85..-91
34950 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
34960 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
34970 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
34980 72 74 20 6c 61 62 65 6c 2d 31 31 36 31 0d 0a 53  rt label-1161..S
34990 45 4c 45 43 54 20 41 4c 4c 20 2b 20 33 30 20 2f  ELECT ALL + 30 /
349a0 20 2d 20 2d 20 33 39 20 2b 20 2b 20 2b 20 28 20   - - 39 + + + ( 
349b0 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61  - col0 ) FROM ta
349c0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
349d0 0d 0a 2d 35 31 0d 0a 2d 38 35 0d 0a 2d 39 31 0d  ..-51..-85..-91.
349e0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
349f0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
34a00 20 28 20 2b 20 2d 20 63 6f 6c 32 20 29 20 46 52   ( + - col2 ) FR
34a10 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
34a20 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 34 30 0d 0a 35  .----..23..40..5
34a30 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  8....query III r
34a40 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
34a50 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41  LL * FROM tab1 A
34a60 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20 34  S cor0 WHERE - 4
34a70 35 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41  5 BETWEEN NULL A
34a80 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  ND NULL..----...
34a90 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
34aa0 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43  CAST syntax: DEC
34ab0 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65  IMAL type: ..que
34ac0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
34ad0 65 6c 2d 31 31 36 34 0d 0a 53 45 4c 45 43 54 20  el-1164..SELECT 
34ae0 44 49 53 54 49 4e 43 54 20 2b 20 43 41 53 54 28  DISTINCT + CAST(
34af0 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c   NULL AS DECIMAL
34b00 20 29 20 2a 20 2d 20 2d 20 35 34 20 46 52 4f 4d   ) * - - 54 FROM
34b10 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   tab2..----..NUL
34b20 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
34b30 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
34b40 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
34b50 6f 72 74 20 6c 61 62 65 6c 2d 31 31 36 34 0d 0a  ort label-1164..
34b60 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
34b70 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
34b80 20 52 45 41 4c 20 29 20 2a 20 2d 20 2d 20 35 34   REAL ) * - - 54
34b90 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
34ba0 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20  ..NULL....query 
34bb0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
34bc0 54 20 44 49 53 54 49 4e 43 54 20 33 20 2a 20 38  T DISTINCT 3 * 8
34bd0 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  0 AS col0 FROM t
34be0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 34 30 0d 0a  ab2..----..240..
34bf0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
34c00 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67   CAST syntax: ag
34c10 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
34c20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
34c30 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
34c40 61 62 65 6c 2d 31 31 36 36 0d 0a 53 45 4c 45 43  abel-1166..SELEC
34c50 54 20 2d 20 43 4f 55 4e 54 28 20 44 49 53 54 49  T - COUNT( DISTI
34c60 4e 43 54 20 63 6f 6c 31 20 29 20 2a 20 2b 20 43  NCT col1 ) * + C
34c70 41 53 54 28 20 2d 20 2d 20 43 4f 55 4e 54 28 20  AST( - - COUNT( 
34c80 2a 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20  * ) AS SIGNED ) 
34c90 2b 20 2b 20 43 4f 55 4e 54 28 20 2b 20 32 33 20  + + COUNT( + 23 
34ca0 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  ) col0 FROM tab0
34cb0 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 0d 0a 0d 0a 73 6b  ..----..-6....sk
34cc0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
34cd0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69   compatible..ski
34ce0 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
34cf0 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
34d00 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
34d10 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
34d20 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
34d30 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 36 36  wsort label-1166
34d40 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54  ..SELECT - COUNT
34d50 20 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31   ( DISTINCT col1
34d60 20 29 20 2a 20 2b 20 43 41 53 54 20 28 20 2d 20   ) * + CAST ( - 
34d70 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53  - COUNT ( * ) AS
34d80 20 49 4e 54 45 47 45 52 20 29 20 2b 20 2b 20 43   INTEGER ) + + C
34d90 4f 55 4e 54 20 28 20 2b 20 32 33 20 29 20 63 6f  OUNT ( + 23 ) co
34da0 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
34db0 2d 2d 0d 0a 2d 36 0d 0a 0d 0a 71 75 65 72 79 20  --..-6....query 
34dc0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
34dd0 54 20 44 49 53 54 49 4e 43 54 20 2b 20 34 37 20  T DISTINCT + 47 
34de0 2a 20 63 6f 6c 32 20 2a 20 2b 20 2d 20 28 20 63  * col2 * + - ( c
34df0 6f 6c 32 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ol2 ) AS col1 FR
34e00 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
34e10 31 35 38 31 30 38 0d 0a 2d 32 34 38 36 33 0d 0a  158108..-24863..
34e20 2d 37 35 32 30 30 0d 0a 0d 0a 73 6b 69 70 69 66  -75200....skipif
34e30 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
34e40 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
34e50 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
34e60 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
34e70 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
34e80 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  rt..SELECT - col
34e90 30 20 2a 20 37 30 20 63 6f 6c 31 20 46 52 4f 4d  0 * 70 col1 FROM
34ea0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 35   tab1..----..-35
34eb0 37 30 0d 0a 2d 35 39 35 30 0d 0a 2d 36 33 37 30  70..-5950..-6370
34ec0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
34ed0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
34ee0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
34ef0 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
34f00 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
34f10 20 6c 61 62 65 6c 2d 31 31 36 39 0d 0a 53 45 4c   label-1169..SEL
34f20 45 43 54 20 41 4c 4c 20 2d 20 43 41 53 54 28 20  ECT ALL - CAST( 
34f30 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
34f40 20 2f 20 2d 20 28 20 2d 20 2b 20 43 4f 55 4e 54   / - ( - + COUNT
34f50 28 20 2a 20 29 20 29 20 46 52 4f 4d 20 74 61 62  ( * ) ) FROM tab
34f60 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  1..----..NULL...
34f70 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
34f80 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
34f90 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
34fa0 6c 61 62 65 6c 2d 31 31 36 39 0d 0a 53 45 4c 45  label-1169..SELE
34fb0 43 54 20 41 4c 4c 20 2d 20 43 41 53 54 20 28 20  CT ALL - CAST ( 
34fc0 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
34fd0 29 20 2f 20 2d 20 28 20 2d 20 2b 20 43 4f 55 4e  ) / - ( - + COUN
34fe0 54 20 28 20 2a 20 29 20 29 20 46 52 4f 4d 20 74  T ( * ) ) FROM t
34ff0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab1..----..NULL.
35000 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
35010 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
35020 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
35030 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 37 30  wsort label-1170
35040 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
35050 54 20 4d 41 58 28 20 2d 20 33 38 20 29 20 41 53  T MAX( - 38 ) AS
35060 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
35070 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
35080 33 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  38....skipif mys
35090 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
350a0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
350b0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 37 30 0d  sort label-1170.
350c0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
350d0 20 4d 41 58 20 28 20 2d 20 33 38 20 29 20 41 53   MAX ( - 38 ) AS
350e0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
350f0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
35100 33 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  38....query II r
35110 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
35120 49 53 54 49 4e 43 54 20 34 34 20 2a 20 63 6f 6c  ISTINCT 44 * col
35130 32 2c 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c  2, + col0 AS col
35140 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
35150 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 31 32 0d  or0..----..1012.
35160 0a 34 36 0d 0a 31 37 36 30 0d 0a 36 34 0d 0a 32  .46..1760..64..2
35170 35 35 32 0d 0a 37 35 0d 0a 0d 0a 6f 6e 6c 79 69  552..75....onlyi
35180 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
35190 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
351a0 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
351b0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 37 32  wsort label-1172
351c0 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20  ..SELECT + col2 
351d0 44 49 56 20 36 34 20 2a 20 2b 20 63 6f 6c 30 20  DIV 64 * + col0 
351e0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
351f0 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 35 31 0d 0a  1..----..0..51..
35200 39 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  91....skipif mys
35210 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
35220 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
35230 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 37 32 0d  sort label-1172.
35240 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2f  .SELECT + col2 /
35250 20 36 34 20 2a 20 2b 20 63 6f 6c 30 20 41 53 20   64 * + col0 AS 
35260 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col1 FROM tab1..
35270 2d 2d 2d 2d 0d 0a 30 0d 0a 35 31 0d 0a 39 31 0d  ----..0..51..91.
35280 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
35290 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
352a0 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
352b0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
352c0 61 62 65 6c 2d 31 31 37 33 0d 0a 53 45 4c 45 43  abel-1173..SELEC
352d0 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 63  T DISTINCT - + c
352e0 6f 6c 31 20 2a 20 2d 20 63 6f 6c 31 20 2b 20 2b  ol1 * - col1 + +
352f0 20 39 31 20 63 6f 6c 30 2c 20 43 41 53 54 28 20   91 col0, CAST( 
35300 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
35310 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
35320 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 33 32 0d 0a 4e  r0..----..532..N
35330 55 4c 4c 0d 0a 36 36 35 32 0d 0a 4e 55 4c 4c 0d  ULL..6652..NULL.
35340 0a 39 32 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  .92..NULL....ski
35350 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
35360 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70  compatible..skip
35370 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
35380 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
35390 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
353a0 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
353b0 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  mns..query II ro
353c0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 37 33  wsort label-1173
353d0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
353e0 54 20 2d 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 63  T - + col1 * - c
353f0 6f 6c 31 20 2b 20 2b 20 39 31 20 63 6f 6c 30 2c  ol1 + + 91 col0,
35400 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
35410 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74  INTEGER ) FROM t
35420 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
35430 2d 0d 0a 35 33 32 0d 0a 4e 55 4c 4c 0d 0a 36 36  -..532..NULL..66
35440 35 32 0d 0a 4e 55 4c 4c 0d 0a 39 32 0d 0a 4e 55  52..NULL..92..NU
35450 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  LL....onlyif mys
35460 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
35470 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
35480 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
35490 20 6c 61 62 65 6c 2d 31 31 37 34 0d 0a 53 45 4c   label-1174..SEL
354a0 45 43 54 20 36 39 20 44 49 56 20 2b 20 63 6f 6c  ECT 69 DIV + col
354b0 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
354c0 6f 72 30 20 57 48 45 52 45 20 2d 20 63 6f 6c 30  or0 WHERE - col0
354d0 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
354e0 2d 2d 0d 0a 30 0d 0a 31 0d 0a 36 0d 0a 0d 0a 73  --..0..1..6....s
354f0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
35500 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
35510 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
35520 62 65 6c 2d 31 31 37 34 0d 0a 53 45 4c 45 43 54  bel-1174..SELECT
35530 20 36 39 20 2f 20 2b 20 63 6f 6c 32 20 46 52 4f   69 / + col2 FRO
35540 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
35550 48 45 52 45 20 2d 20 63 6f 6c 30 20 49 53 20 4e  HERE - col0 IS N
35560 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30  OT NULL..----..0
35570 0d 0a 31 0d 0a 36 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..1..6....onlyif
35580 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
35590 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
355a0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
355b0 65 6c 2d 31 31 37 35 0d 0a 53 45 4c 45 43 54 20  el-1175..SELECT 
355c0 41 4c 4c 20 4d 41 58 28 20 2b 20 2b 20 34 36 20  ALL MAX( + + 46 
355d0 29 20 2b 20 2b 20 39 38 20 41 53 20 63 6f 6c 32  ) + + 98 AS col2
355e0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
355f0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 34 0d 0a 0d  r0..----..144...
35600 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
35610 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
35620 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
35630 6c 61 62 65 6c 2d 31 31 37 35 0d 0a 53 45 4c 45  label-1175..SELE
35640 43 54 20 41 4c 4c 20 4d 41 58 20 28 20 2b 20 2b  CT ALL MAX ( + +
35650 20 34 36 20 29 20 2b 20 2b 20 39 38 20 41 53 20   46 ) + + 98 AS 
35660 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
35670 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34  S cor0..----..14
35680 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  4....onlyif mysq
35690 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
356a0 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
356b0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
356c0 6c 61 62 65 6c 2d 31 31 37 36 0d 0a 53 45 4c 45  label-1176..SELE
356d0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 33 37  CT DISTINCT + 37
356e0 20 2b 20 2d 20 2b 20 43 41 53 54 28 20 2b 20 63   + - + CAST( + c
356f0 6f 6c 32 20 41 53 20 53 49 47 4e 45 44 20 29 20  ol2 AS SIGNED ) 
35700 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
35710 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
35720 0a 2d 32 32 0d 0a 2d 33 31 0d 0a 2d 35 39 0d 0a  .-22..-31..-59..
35730 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
35740 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
35750 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
35760 20 6c 61 62 65 6c 2d 31 31 37 36 0d 0a 53 45 4c   label-1176..SEL
35770 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 33  ECT DISTINCT + 3
35780 37 20 2b 20 2d 20 2b 20 43 41 53 54 20 28 20 2b  7 + - + CAST ( +
35790 20 63 6f 6c 32 20 41 53 20 49 4e 54 45 47 45 52   col2 AS INTEGER
357a0 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
357b0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
357c0 2d 2d 0d 0a 2d 32 32 0d 0a 2d 33 31 0d 0a 2d 35  --..-22..-31..-5
357d0 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  9....query I row
357e0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
357f0 54 49 4e 43 54 20 36 36 20 2b 20 2d 20 63 6f 6c  TINCT 66 + - col
35800 32 20 2a 20 2d 20 37 37 20 2a 20 2d 20 2d 20 63  2 * - 77 * - - c
35810 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol1 FROM tab1 AS
35820 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 33   cor0..----..103
35830 35 35 34 0d 0a 32 32 37 38 31 0d 0a 32 34 36 31  554..22781..2461
35840 35 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  58....query II r
35850 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
35860 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32 2c 20  ISTINCT - col2, 
35870 2d 20 63 6f 6c 31 20 2a 20 2b 20 2b 20 28 20 39  - col1 * + + ( 9
35880 38 20 29 20 2b 20 2d 20 2b 20 63 6f 6c 31 20 2a  8 ) + - + col1 *
35890 20 2b 20 39 38 20 2a 20 2d 20 63 6f 6c 32 20 41   + 98 * - col2 A
358a0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
358b0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
358c0 2d 32 33 0d 0a 31 30 39 39 35 36 0d 0a 2d 34 30  -23..109956..-40
358d0 0d 0a 32 39 34 32 39 34 0d 0a 2d 35 38 0d 0a 33  ..294294..-58..3
358e0 37 34 32 36 32 0d 0a 0d 0a 71 75 65 72 79 20 49  74262....query I
358f0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
35900 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
35910 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
35920 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 31  WHERE NOT - col1
35930 20 2d 20 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e   - col0 IS NOT N
35940 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
35950 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
35960 4c 45 43 54 20 2b 20 37 20 2b 20 2d 20 2b 20 37  LECT + 7 + - + 7
35970 38 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  8 FROM tab0..---
35980 2d 0d 0a 2d 37 31 0d 0a 2d 37 31 0d 0a 2d 37 31  -..-71..-71..-71
35990 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
359a0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
359b0 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
359c0 4e 55 4c 4c 20 3e 20 2d 20 31 36 0d 0a 2d 2d 2d  NULL > - 16..---
359d0 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  -....query II ro
359e0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
359f0 6c 30 20 2b 20 2d 20 63 6f 6c 30 20 41 53 20 63  l0 + - col0 AS c
35a00 6f 6c 32 2c 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ol2, col2 FROM t
35a10 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31 30  ab0..----..0..10
35a20 0d 0a 30 0d 0a 34 37 0d 0a 30 0d 0a 39 39 0d 0a  ..0..47..0..99..
35a30 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
35a40 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 37 33 20  rt..SELECT + 73 
35a50 2b 20 2d 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 2b  + - + col1 * + +
35a60 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 32 20 41   col1 * - col2 A
35a70 53 20 63 6f 6c 31 2c 20 28 20 2d 20 63 6f 6c 32  S col1, ( - col2
35a80 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d   ) FROM tab1..--
35a90 2d 2d 0d 0a 31 35 30 32 38 35 0d 0a 2d 36 38 0d  --..150285..-68.
35aa0 0a 31 35 34 38 0d 0a 2d 35 39 0d 0a 31 38 38 38  .1548..-59..1888
35ab0 39 0d 0a 2d 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66  9..-96....onlyif
35ac0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
35ad0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
35ae0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
35af0 65 6c 2d 31 31 38 34 0d 0a 53 45 4c 45 43 54 20  el-1184..SELECT 
35b00 39 35 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20  95 + + COUNT( * 
35b10 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
35b20 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 39 38 0d 0a 0d  ab0..----..98...
35b30 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
35b40 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
35b50 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
35b60 6c 61 62 65 6c 2d 31 31 38 34 0d 0a 53 45 4c 45  label-1184..SELE
35b70 43 54 20 39 35 20 2b 20 2b 20 43 4f 55 4e 54 20  CT 95 + + COUNT 
35b80 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ( * ) AS col0 FR
35b90 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 39  OM tab0..----..9
35ba0 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  8....query I row
35bb0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
35bc0 20 28 20 37 34 20 29 20 2a 20 2b 20 63 6f 6c 32   ( 74 ) * + col2
35bd0 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
35be0 0d 0a 33 34 37 38 0d 0a 37 33 32 36 0d 0a 37 34  ..3478..7326..74
35bf0 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
35c00 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
35c10 31 20 2b 20 2d 20 2d 20 63 6f 6c 32 20 2b 20 2b  1 + - - col2 + +
35c20 20 28 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74   ( col0 ) FROM t
35c30 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 38 0d 0a  ab0..----..118..
35c40 31 34 33 0d 0a 31 39 37 0d 0a 0d 0a 6f 6e 6c 79  143..197....only
35c50 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
35c60 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
35c70 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  ype: ..query II 
35c80 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
35c90 38 37 0d 0a 53 45 4c 45 43 54 20 2d 20 35 33 20  87..SELECT - 53 
35ca0 2b 20 2b 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f  + + - col1 AS co
35cb0 6c 31 2c 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c  l1, col0 * - col
35cc0 31 20 2a 20 43 41 53 54 28 20 2d 20 33 34 20 41  1 * CAST( - 34 A
35cd0 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2d 20 63  S SIGNED ) * - c
35ce0 6f 6c 31 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c  ol1 + CAST( NULL
35cf0 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2b   AS SIGNED ) * +
35d00 20 36 32 20 2a 20 28 20 2b 20 2b 20 39 33 20 29   62 * ( + + 93 )
35d10 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
35d20 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 34 0d 0a  b0..----..-134..
35d30 4e 55 4c 4c 0d 0a 2d 35 34 0d 0a 4e 55 4c 4c 0d  NULL..-54..NULL.
35d40 0a 2d 37 34 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  .-74..NULL....sk
35d50 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
35d60 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
35d70 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
35d80 62 65 6c 2d 31 31 38 37 0d 0a 53 45 4c 45 43 54  bel-1187..SELECT
35d90 20 2d 20 35 33 20 2b 20 2b 20 2d 20 63 6f 6c 31   - 53 + + - col1
35da0 20 41 53 20 63 6f 6c 31 2c 20 63 6f 6c 30 20 2a   AS col1, col0 *
35db0 20 2d 20 63 6f 6c 31 20 2a 20 43 41 53 54 20 28   - col1 * CAST (
35dc0 20 2d 20 33 34 20 41 53 20 49 4e 54 45 47 45 52   - 34 AS INTEGER
35dd0 20 29 20 2a 20 2d 20 63 6f 6c 31 20 2b 20 43 41   ) * - col1 + CA
35de0 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
35df0 45 47 45 52 20 29 20 2a 20 2b 20 36 32 20 2a 20  EGER ) * + 62 * 
35e00 28 20 2b 20 2b 20 39 33 20 29 20 41 53 20 63 6f  ( + + 93 ) AS co
35e10 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l1 FROM tab0..--
35e20 2d 2d 0d 0a 2d 31 33 34 0d 0a 4e 55 4c 4c 0d 0a  --..-134..NULL..
35e30 2d 35 34 0d 0a 4e 55 4c 4c 0d 0a 2d 37 34 0d 0a  -54..NULL..-74..
35e40 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  NULL....onlyif m
35e50 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
35e60 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
35e70 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
35e80 72 74 20 6c 61 62 65 6c 2d 31 31 38 38 0d 0a 53  rt label-1188..S
35e90 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2b 20 2b  ELECT - col0 + +
35ea0 20 43 41 53 54 28 20 2b 20 63 6f 6c 31 20 41 53   CAST( + col1 AS
35eb0 20 53 49 47 4e 45 44 20 29 20 2b 20 2d 20 2d 20   SIGNED ) + - - 
35ec0 33 36 20 2b 20 2d 20 2d 20 35 39 20 2a 20 2d 20  36 + - - 59 * - 
35ed0 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  - col0 FROM tab1
35ee0 0d 0a 2d 2d 2d 2d 0d 0a 33 30 30 38 0d 0a 34 39  ..----..3008..49
35ef0 37 31 0d 0a 35 33 36 31 0d 0a 0d 0a 73 6b 69 70  71..5361....skip
35f00 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
35f10 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
35f20 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
35f30 2d 31 31 38 38 0d 0a 53 45 4c 45 43 54 20 2d 20  -1188..SELECT - 
35f40 63 6f 6c 30 20 2b 20 2b 20 43 41 53 54 20 28 20  col0 + + CAST ( 
35f50 2b 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45  + col1 AS INTEGE
35f60 52 20 29 20 2b 20 2d 20 2d 20 33 36 20 2b 20 2d  R ) + - - 36 + -
35f70 20 2d 20 35 39 20 2a 20 2d 20 2d 20 63 6f 6c 30   - 59 * - - col0
35f80 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
35f90 0d 0a 33 30 30 38 0d 0a 34 39 37 31 0d 0a 35 33  ..3008..4971..53
35fa0 36 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  61....query III 
35fb0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
35fc0 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
35fd0 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 4e  tab2 WHERE NOT N
35fe0 55 4c 4c 20 3e 3d 20 2b 20 2b 20 32 34 20 2a 20  ULL >= + + 24 * 
35ff0 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  + col0..----....
36000 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
36010 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
36020 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
36030 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
36040 6c 2d 31 31 39 30 0d 0a 53 45 4c 45 43 54 20 44  l-1190..SELECT D
36050 49 53 54 49 4e 43 54 20 2d 20 2d 20 37 39 20 2b  ISTINCT - - 79 +
36060 20 2d 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20   - - CAST( NULL 
36070 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63  AS SIGNED ) AS c
36080 6f 6c 30 2c 20 31 30 20 41 53 20 63 6f 6c 30 20  ol0, 10 AS col0 
36090 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a  FROM tab2 cor0..
360a0 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 31 30 0d 0a  ----..NULL..10..
360b0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
360c0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
360d0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
360e0 74 20 6c 61 62 65 6c 2d 31 31 39 30 0d 0a 53 45  t label-1190..SE
360f0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
36100 2d 20 37 39 20 2b 20 2d 20 2d 20 43 41 53 54 20  - 79 + - - CAST 
36110 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
36120 52 20 29 20 41 53 20 63 6f 6c 30 2c 20 31 30 20  R ) AS col0, 10 
36130 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
36140 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  2 cor0..----..NU
36150 4c 4c 0d 0a 31 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  LL..10....onlyif
36160 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
36170 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
36180 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
36190 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 39 31 0d  sort label-1191.
361a0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
361b0 20 2b 20 2d 20 43 41 53 54 28 20 2d 20 63 6f 6c   + - CAST( - col
361c0 30 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52  0 AS SIGNED ) FR
361d0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
361e0 57 48 45 52 45 20 2d 20 32 31 20 2f 20 2d 20 2b  WHERE - 21 / - +
361f0 20 37 39 20 4e 4f 54 20 49 4e 20 28 20 63 6f 6c   79 NOT IN ( col
36200 32 2c 20 2d 20 63 6f 6c 32 2c 20 2d 20 2b 20 63  2, - col2, - + c
36210 6f 6c 32 20 2a 20 2d 20 2b 20 63 6f 6c 30 20 2b  ol2 * - + col0 +
36220 20 35 33 20 2b 20 35 35 20 2a 20 2d 20 63 6f 6c   53 + 55 * - col
36230 31 20 2a 20 2d 20 63 6f 6c 30 20 2f 20 2b 20 2d  1 * - col0 / + -
36240 20 43 41 53 54 28 20 63 6f 6c 31 20 41 53 20 53   CAST( col1 AS S
36250 49 47 4e 45 44 20 29 20 29 0d 0a 2d 2d 2d 2d 0d  IGNED ) )..----.
36260 0a 34 36 0d 0a 36 34 0d 0a 37 35 0d 0a 0d 0a 73  .46..64..75....s
36270 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
36280 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
36290 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
362a0 62 65 6c 2d 31 31 39 31 0d 0a 53 45 4c 45 43 54  bel-1191..SELECT
362b0 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 43 41   DISTINCT + - CA
362c0 53 54 20 28 20 2d 20 63 6f 6c 30 20 41 53 20 49  ST ( - col0 AS I
362d0 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61  NTEGER ) FROM ta
362e0 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
362f0 20 2d 20 32 31 20 2f 20 2d 20 2b 20 37 39 20 4e   - 21 / - + 79 N
36300 4f 54 20 49 4e 20 28 20 63 6f 6c 32 2c 20 2d 20  OT IN ( col2, - 
36310 63 6f 6c 32 2c 20 2d 20 2b 20 63 6f 6c 32 20 2a  col2, - + col2 *
36320 20 2d 20 2b 20 63 6f 6c 30 20 2b 20 35 33 20 2b   - + col0 + 53 +
36330 20 35 35 20 2a 20 2d 20 63 6f 6c 31 20 2a 20 2d   55 * - col1 * -
36340 20 63 6f 6c 30 20 2f 20 2b 20 2d 20 43 41 53 54   col0 / + - CAST
36350 20 28 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47   ( col1 AS INTEG
36360 45 52 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 34 36  ER ) )..----..46
36370 0d 0a 36 34 0d 0a 37 35 0d 0a 0d 0a 71 75 65 72  ..64..75....quer
36380 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
36390 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a  ELECT DISTINCT *
363a0 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
363b0 20 2d 20 2d 20 39 31 20 3e 3d 20 2d 20 2b 20 31   - - 91 >= - + 1
363c0 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  1..----..9 value
363d0 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62  s hashing to c4b
363e0 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36  42765dff94eaaa46
363f0 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d  040e537fb43b7...
36400 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
36410 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
36420 43 54 20 63 6f 6c 32 20 2a 20 2b 20 2d 20 31 31  CT col2 * + - 11
36430 20 2d 20 2d 20 2b 20 63 6f 6c 31 2c 20 63 6f 6c   - - + col1, col
36440 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  2 FROM tab2..---
36450 2d 0d 0a 2d 32 30 32 0d 0a 32 33 0d 0a 2d 33 36  -..-202..23..-36
36460 33 0d 0a 34 30 0d 0a 2d 35 37 31 0d 0a 35 38 0d  3..40..-571..58.
36470 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
36480 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
36490 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
364a0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
364b0 62 65 6c 2d 31 31 39 34 0d 0a 53 45 4c 45 43 54  bel-1194..SELECT
364c0 20 41 4c 4c 20 43 41 53 54 28 20 4e 55 4c 4c 20   ALL CAST( NULL 
364d0 41 53 20 53 49 47 4e 45 44 20 29 20 2d 20 2b 20  AS SIGNED ) - + 
364e0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
364f0 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
36500 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
36510 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
36520 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
36530 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
36540 31 39 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  194..SELECT ALL 
36550 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
36560 4e 54 45 47 45 52 20 29 20 2d 20 2b 20 63 6f 6c  NTEGER ) - + col
36570 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
36580 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
36590 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ULL....onlyif my
365a0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
365b0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
365c0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
365d0 31 31 39 35 0d 0a 53 45 4c 45 43 54 20 44 49 53  1195..SELECT DIS
365e0 54 49 4e 43 54 20 53 55 4d 28 20 2d 20 2b 20 38  TINCT SUM( - + 8
365f0 38 20 29 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  8 ) - COUNT( * )
36600 20 2b 20 38 34 20 46 52 4f 4d 20 74 61 62 32 0d   + 84 FROM tab2.
36610 0a 2d 2d 2d 2d 0d 0a 2d 31 38 33 0d 0a 0d 0a 73  .----..-183....s
36620 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
36630 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
36640 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
36650 62 65 6c 2d 31 31 39 35 0d 0a 53 45 4c 45 43 54  bel-1195..SELECT
36660 20 44 49 53 54 49 4e 43 54 20 53 55 4d 20 28 20   DISTINCT SUM ( 
36670 2d 20 2b 20 38 38 20 29 20 2d 20 43 4f 55 4e 54  - + 88 ) - COUNT
36680 20 28 20 2a 20 29 20 2b 20 38 34 20 46 52 4f 4d   ( * ) + 84 FROM
36690 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38   tab2..----..-18
366a0 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  3....query III r
366b0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
366c0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
366d0 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 38  r0 WHERE NOT + 8
366e0 20 2b 20 28 20 2b 20 63 6f 6c 31 20 29 20 49 53   + ( + col1 ) IS
366f0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   NULL..----..9 v
36700 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
36710 20 63 36 63 30 61 34 31 31 31 62 33 36 64 30 34   c6c0a4111b36d04
36720 64 62 63 38 31 31 61 31 31 65 34 64 35 34 63 61  dbc811a11e4d54ca
36730 64 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  d....onlyif mysq
36740 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
36750 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
36760 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
36770 39 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  97..SELECT ALL +
36780 20 39 39 20 2a 20 2d 20 32 20 2a 20 43 4f 55 4e   99 * - 2 * COUN
36790 54 28 20 2a 20 29 20 2a 20 43 4f 55 4e 54 28 20  T( * ) * COUNT( 
367a0 2a 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  * ) col0 FROM ta
367b0 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
367c0 0d 0a 2d 31 37 38 32 0d 0a 0d 0a 73 6b 69 70 69  ..-1782....skipi
367d0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
367e0 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66  mpatible..skipif
367f0 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
36800 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
36810 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
36820 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
36830 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
36840 72 74 20 6c 61 62 65 6c 2d 31 31 39 37 0d 0a 53  rt label-1197..S
36850 45 4c 45 43 54 20 41 4c 4c 20 2b 20 39 39 20 2a  ELECT ALL + 99 *
36860 20 2d 20 32 20 2a 20 43 4f 55 4e 54 20 28 20 2a   - 2 * COUNT ( *
36870 20 29 20 2a 20 43 4f 55 4e 54 20 28 20 2a 20 29   ) * COUNT ( * )
36880 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
36890 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
368a0 31 37 38 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  1782....onlyif m
368b0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
368c0 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
368d0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
368e0 72 74 20 6c 61 62 65 6c 2d 31 31 39 38 0d 0a 53  rt label-1198..S
368f0 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 2a 20 63  ELECT + col0 * c
36900 6f 6c 30 20 2a 20 2b 20 63 6f 6c 32 20 2b 20 2b  ol0 * + col2 + +
36910 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 31 20 2a   col2 * - col1 *
36920 20 2b 20 31 20 2b 20 2d 20 43 41 53 54 28 20 4e   + 1 + - CAST( N
36930 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
36940 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
36950 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
36960 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
36970 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
36980 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
36990 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
369a0 6f 72 74 20 6c 61 62 65 6c 2d 31 31 39 38 0d 0a  ort label-1198..
369b0 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 2a 20  SELECT + col0 * 
369c0 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 32 20 2b 20  col0 * + col2 + 
369d0 2b 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 31 20  + col2 * - col1 
369e0 2a 20 2b 20 31 20 2b 20 2d 20 43 41 53 54 20 28  * + 1 + - CAST (
369f0 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
36a00 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
36a10 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
36a20 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
36a30 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20  NULL....query I 
36a40 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
36a50 41 4c 4c 20 35 38 20 2a 20 2d 20 63 6f 6c 30 20  ALL 58 * - col0 
36a60 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
36a70 0a 2d 32 39 35 38 0d 0a 2d 34 39 33 30 0d 0a 2d  .-2958..-4930..-
36a80 35 32 37 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20  5278....query I 
36a90 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
36aa0 41 4c 4c 20 2d 20 28 20 2b 20 35 31 20 29 20 2a  ALL - ( + 51 ) *
36ab0 20 2b 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c   + - col1 AS col
36ac0 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
36ad0 2d 0d 0a 32 36 30 31 0d 0a 33 34 31 37 0d 0a 33  -..2601..3417..3
36ae0 39 32 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  927....onlyif my
36af0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
36b00 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
36b10 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
36b20 31 32 30 31 0d 0a 53 45 4c 45 43 54 20 44 49 53  1201..SELECT DIS
36b30 54 49 4e 43 54 20 4d 49 4e 28 20 41 4c 4c 20 63  TINCT MIN( ALL c
36b40 6f 6c 32 20 29 20 2a 20 43 4f 55 4e 54 28 20 2a  ol2 ) * COUNT( *
36b50 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
36b60 2d 2d 0d 0a 33 30 0d 0a 0d 0a 73 6b 69 70 69 66  --..30....skipif
36b70 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
36b80 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
36b90 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
36ba0 32 30 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  201..SELECT DIST
36bb0 49 4e 43 54 20 4d 49 4e 20 28 20 41 4c 4c 20 63  INCT MIN ( ALL c
36bc0 6f 6c 32 20 29 20 2a 20 43 4f 55 4e 54 20 28 20  ol2 ) * COUNT ( 
36bd0 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  * ) FROM tab0..-
36be0 2d 2d 2d 0d 0a 33 30 0d 0a 0d 0a 71 75 65 72 79  ---..30....query
36bf0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
36c00 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 46 52  CT ALL - col0 FR
36c10 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 2b 20  OM tab0 WHERE + 
36c20 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col0 IS NOT NULL
36c30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 2d 38 37  ..----..-15..-87
36c40 0d 0a 2d 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-97....onlyif 
36c50 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
36c60 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
36c70 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
36c80 6c 2d 31 32 30 33 0d 0a 53 45 4c 45 43 54 20 2b  l-1203..SELECT +
36c90 20 28 20 2d 20 4d 49 4e 28 20 41 4c 4c 20 38 31   ( - MIN( ALL 81
36ca0 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a   ) ) FROM tab1..
36cb0 2d 2d 2d 2d 0d 0a 2d 38 31 0d 0a 0d 0a 73 6b 69  ----..-81....ski
36cc0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
36cd0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
36ce0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
36cf0 6c 2d 31 32 30 33 0d 0a 53 45 4c 45 43 54 20 2b  l-1203..SELECT +
36d00 20 28 20 2d 20 4d 49 4e 20 28 20 41 4c 4c 20 38   ( - MIN ( ALL 8
36d10 31 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31 0d  1 ) ) FROM tab1.
36d20 0a 2d 2d 2d 2d 0d 0a 2d 38 31 0d 0a 0d 0a 73 6b  .----..-81....sk
36d30 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
36d40 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
36d50 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
36d60 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
36d70 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
36d80 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
36d90 20 2d 20 28 20 2b 20 2b 20 38 37 20 29 20 2b 20   - ( + + 87 ) + 
36da0 2d 20 28 20 2d 20 63 6f 6c 32 20 29 20 63 6f 6c  - ( - col2 ) col
36db0 32 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  2 FROM tab2 WHER
36dc0 45 20 4e 4f 54 20 2d 20 63 6f 6c 30 20 2d 20 2b  E NOT - col0 - +
36dd0 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 32 20 49   col2 + + col2 I
36de0 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
36df0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
36e00 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
36e10 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  tax: ..query II 
36e20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
36e30 30 35 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 49 4e  05..SELECT + MIN
36e40 28 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 29 20 41  ( ALL + col1 ) A
36e50 53 20 63 6f 6c 30 2c 20 43 4f 55 4e 54 28 20 2a  S col0, COUNT( *
36e60 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d   ) FROM tab1..--
36e70 2d 2d 0d 0a 35 0d 0a 33 0d 0a 0d 0a 73 6b 69 70  --..5..3....skip
36e80 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
36e90 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
36ea0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
36eb0 6c 2d 31 32 30 35 0d 0a 53 45 4c 45 43 54 20 2b  l-1205..SELECT +
36ec0 20 4d 49 4e 20 28 20 41 4c 4c 20 2b 20 63 6f 6c   MIN ( ALL + col
36ed0 31 20 29 20 41 53 20 63 6f 6c 30 2c 20 43 4f 55  1 ) AS col0, COU
36ee0 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  NT ( * ) FROM ta
36ef0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 0d 0a 33 0d 0a  b1..----..5..3..
36f00 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
36f10 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
36f20 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
36f30 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 30 36 0d  sort label-1206.
36f40 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
36f50 20 4d 49 4e 28 20 41 4c 4c 20 2b 20 38 32 20 29   MIN( ALL + 82 )
36f60 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
36f70 20 4e 55 4c 4c 20 49 4e 20 28 20 2d 20 63 6f 6c   NULL IN ( - col
36f80 31 20 2a 20 2d 20 63 6f 6c 31 20 2d 20 2b 20 63  1 * - col1 - + c
36f90 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c  ol0 )..----..NUL
36fa0 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
36fb0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
36fc0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
36fd0 6f 72 74 20 6c 61 62 65 6c 2d 31 32 30 36 0d 0a  ort label-1206..
36fe0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
36ff0 4d 49 4e 20 28 20 41 4c 4c 20 2b 20 38 32 20 29  MIN ( ALL + 82 )
37000 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
37010 20 4e 55 4c 4c 20 49 4e 20 28 20 2d 20 63 6f 6c   NULL IN ( - col
37020 31 20 2a 20 2d 20 63 6f 6c 31 20 2d 20 2b 20 63  1 * - col1 - + c
37030 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c  ol0 )..----..NUL
37040 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  L....query II ro
37050 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
37060 4c 20 31 35 2c 20 63 6f 6c 31 20 41 53 20 63 6f  L 15, col1 AS co
37070 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l2 FROM tab1..--
37080 2d 2d 0d 0a 31 35 0d 0a 31 34 0d 0a 31 35 0d 0a  --..15..14..15..
37090 34 37 0d 0a 31 35 0d 0a 35 0d 0a 0d 0a 71 75 65  47..15..5....que
370a0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
370b0 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
370c0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
370d0 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 31 20  HERE NOT - col1 
370e0 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  = NULL..----....
370f0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
37100 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
37110 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
37120 6f 72 74 20 6c 61 62 65 6c 2d 31 32 30 39 0d 0a  ort label-1209..
37130 53 45 4c 45 43 54 20 2b 20 2b 20 38 38 20 41 53  SELECT + + 88 AS
37140 20 63 6f 6c 30 2c 20 2b 20 4d 41 58 28 20 44 49   col0, + MAX( DI
37150 53 54 49 4e 43 54 20 2d 20 36 34 20 29 20 46 52  STINCT - 64 ) FR
37160 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
37170 0a 2d 2d 2d 2d 0d 0a 38 38 0d 0a 2d 36 34 0d 0a  .----..88..-64..
37180 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
37190 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
371a0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
371b0 74 20 6c 61 62 65 6c 2d 31 32 30 39 0d 0a 53 45  t label-1209..SE
371c0 4c 45 43 54 20 2b 20 2b 20 38 38 20 41 53 20 63  LECT + + 88 AS c
371d0 6f 6c 30 2c 20 2b 20 4d 41 58 20 28 20 44 49 53  ol0, + MAX ( DIS
371e0 54 49 4e 43 54 20 2d 20 36 34 20 29 20 46 52 4f  TINCT - 64 ) FRO
371f0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
37200 2d 2d 2d 2d 0d 0a 38 38 0d 0a 2d 36 34 0d 0a 0d  ----..88..-64...
37210 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
37220 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
37230 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
37240 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
37250 6c 2d 31 32 31 30 0d 0a 53 45 4c 45 43 54 20 2d  l-1210..SELECT -
37260 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
37270 49 47 4e 45 44 20 29 20 2f 20 2b 20 63 6f 6c 32  IGNED ) / + col2
37280 20 2a 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   * col2 FROM tab
37290 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
372a0 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
372b0 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
372c0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
372d0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
372e0 6f 72 74 20 6c 61 62 65 6c 2d 31 32 31 30 0d 0a  ort label-1210..
372f0 53 45 4c 45 43 54 20 2d 20 43 41 53 54 20 28 20  SELECT - CAST ( 
37300 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
37310 29 20 2f 20 2b 20 63 6f 6c 32 20 2a 20 63 6f 6c  ) / + col2 * col
37320 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
37330 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
37340 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  .NULL..NULL....q
37350 75 65 72 79 20 49 49 49 49 49 49 20 72 6f 77 73  uery IIIIII rows
37360 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
37370 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
37380 49 4e 4e 45 52 20 4a 4f 49 4e 20 74 61 62 30 20  INNER JOIN tab0 
37390 41 53 20 63 6f 72 31 20 4f 4e 20 4e 55 4c 4c 20  AS cor1 ON NULL 
373a0 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
373b0 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
373c0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
373d0 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 2d 20 35 38   - col2 + - - 58
373e0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
373f0 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
37400 20 4e 55 4c 4c 20 3e 3d 20 4e 55 4c 4c 0d 0a 2d   NULL >= NULL..-
37410 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ---....query III
37420 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
37430 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
37440 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
37450 45 52 45 20 28 20 2d 20 2b 20 63 6f 6c 31 20 29  ERE ( - + col1 )
37460 20 2a 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 32   * col1 + - col2
37470 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
37480 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
37490 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31  hing to c6c0a411
374a0 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31  1b36d04dbc811a11
374b0 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72  e4d54cad....quer
374c0 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
374d0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
374e0 63 6f 6c 32 20 41 53 20 63 6f 6c 30 2c 20 2b 20  col2 AS col0, + 
374f0 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f  col0 AS col0 FRO
37500 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
37510 48 45 52 45 20 36 31 20 4e 4f 54 20 49 4e 20 28  HERE 61 NOT IN (
37520 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 31 20 29   col1 * + col1 )
37530 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 38 37 0d  ..----..-10..87.
37540 0a 2d 34 37 0d 0a 31 35 0d 0a 2d 39 39 0d 0a 39  .-47..15..-99..9
37550 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  7....onlyif mysq
37560 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
37570 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
37580 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
37590 6c 61 62 65 6c 2d 31 32 31 35 0d 0a 53 45 4c 45  label-1215..SELE
375a0 43 54 20 41 4c 4c 20 33 38 20 44 49 56 20 2d 20  CT ALL 38 DIV - 
375b0 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 30 20 2a 20  col0 + - col0 * 
375c0 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46  - col2 AS col1 F
375d0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
375e0 0d 0a 2d 2d 2d 2d 0d 0a 37 30 33 0d 0a 38 37 30  ..----..703..870
375f0 0d 0a 39 36 30 33 0d 0a 0d 0a 73 6b 69 70 69 66  ..9603....skipif
37600 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
37610 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
37620 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
37630 32 31 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  215..SELECT ALL 
37640 33 38 20 2f 20 2d 20 63 6f 6c 30 20 2b 20 2d 20  38 / - col0 + - 
37650 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 32 20 41 53  col0 * - col2 AS
37660 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
37670 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37  AS cor0..----..7
37680 30 33 0d 0a 38 37 30 0d 0a 39 36 30 33 0d 0a 0d  03..870..9603...
37690 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
376a0 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
376b0 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
376c0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
376d0 6c 2d 31 32 31 36 0d 0a 53 45 4c 45 43 54 20 41  l-1216..SELECT A
376e0 4c 4c 20 63 6f 6c 32 20 2b 20 32 36 20 44 49 56  LL col2 + 26 DIV
376f0 20 2b 20 31 37 20 41 53 20 63 6f 6c 32 20 46 52   + 17 AS col2 FR
37700 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
37710 0a 2d 2d 2d 2d 0d 0a 32 34 0d 0a 34 31 0d 0a 35  .----..24..41..5
37720 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
37730 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
37740 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
37750 6f 72 74 20 6c 61 62 65 6c 2d 31 32 31 36 0d 0a  ort label-1216..
37760 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20  SELECT ALL col2 
37770 2b 20 32 36 20 2f 20 2b 20 31 37 20 41 53 20 63  + 26 / + 17 AS c
37780 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
37790 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 34 0d   cor0..----..24.
377a0 0a 34 31 0d 0a 35 39 0d 0a 0d 0a 6f 6e 6c 79 69  .41..59....onlyi
377b0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
377c0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
377d0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
377e0 62 65 6c 2d 31 32 31 37 0d 0a 53 45 4c 45 43 54  bel-1217..SELECT
377f0 20 43 4f 55 4e 54 28 20 2b 20 63 6f 6c 30 20 29   COUNT( + col0 )
37800 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
37810 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73  r0..----..3....s
37820 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
37830 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
37840 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
37850 62 65 6c 2d 31 32 31 37 0d 0a 53 45 4c 45 43 54  bel-1217..SELECT
37860 20 43 4f 55 4e 54 20 28 20 2b 20 63 6f 6c 30 20   COUNT ( + col0 
37870 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
37880 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a  or0..----..3....
37890 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
378a0 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 46 52 4f  .SELECT col2 FRO
378b0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
378c0 48 45 52 45 20 2d 20 63 6f 6c 32 20 2a 20 63 6f  HERE - col2 * co
378d0 6c 30 20 3e 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l0 >= NULL..----
378e0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
378f0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20  ort..SELECT + - 
37900 28 20 2b 20 63 6f 6c 31 20 29 20 41 53 20 63 6f  ( + col1 ) AS co
37910 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  l1 FROM tab1 cor
37920 30 20 57 48 45 52 45 20 2b 20 63 6f 6c 31 20 4e  0 WHERE + col1 N
37930 4f 54 20 42 45 54 57 45 45 4e 20 2b 20 28 20 63  OT BETWEEN + ( c
37940 6f 6c 30 20 29 20 41 4e 44 20 4e 55 4c 4c 0d 0a  ol0 ) AND NULL..
37950 2d 2d 2d 2d 0d 0a 2d 31 34 0d 0a 2d 34 37 0d 0a  ----..-14..-47..
37960 2d 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  -5....query II r
37970 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
37980 4c 4c 20 31 39 20 41 53 20 63 6f 6c 30 2c 20 2b  LL 19 AS col0, +
37990 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
379a0 0a 2d 2d 2d 2d 0d 0a 31 39 0d 0a 31 30 0d 0a 31  .----..19..10..1
379b0 39 0d 0a 34 37 0d 0a 31 39 0d 0a 39 39 0d 0a 0d  9..47..19..99...
379c0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
379d0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
379e0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
379f0 6f 72 74 20 6c 61 62 65 6c 2d 31 32 32 31 0d 0a  ort label-1221..
37a00 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 53 55 4d  SELECT ALL - SUM
37a10 28 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 35  ( DISTINCT - - 5
37a20 36 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  6 ) AS col0 FROM
37a30 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 36   tab1..----..-56
37a40 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
37a50 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
37a60 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
37a70 72 74 20 6c 61 62 65 6c 2d 31 32 32 31 0d 0a 53  rt label-1221..S
37a80 45 4c 45 43 54 20 41 4c 4c 20 2d 20 53 55 4d 20  ELECT ALL - SUM 
37a90 28 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 35  ( DISTINCT - - 5
37aa0 36 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  6 ) AS col0 FROM
37ab0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 36   tab1..----..-56
37ac0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
37ad0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
37ae0 54 49 4e 43 54 20 63 6f 6c 32 20 41 53 20 63 6f  TINCT col2 AS co
37af0 6c 30 2c 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f  l0, + col0 AS co
37b00 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
37b10 2d 2d 0d 0a 35 39 0d 0a 38 35 0d 0a 36 38 0d 0a  --..59..85..68..
37b20 39 31 0d 0a 39 36 0d 0a 35 31 0d 0a 0d 0a 6f 6e  91..96..51....on
37b30 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
37b40 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
37b50 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
37b60 20 6c 61 62 65 6c 2d 31 32 32 33 0d 0a 53 45 4c   label-1223..SEL
37b70 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 36  ECT DISTINCT - 6
37b80 35 20 2b 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a  5 + + + COUNT( *
37b90 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
37ba0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 32 0d  tab0..----..-62.
37bb0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
37bc0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
37bd0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
37be0 74 20 6c 61 62 65 6c 2d 31 32 32 33 0d 0a 53 45  t label-1223..SE
37bf0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
37c00 36 35 20 2b 20 2b 20 2b 20 43 4f 55 4e 54 20 28  65 + + + COUNT (
37c10 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f   * ) AS col0 FRO
37c20 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36  M tab0..----..-6
37c30 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  2....query III r
37c40 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
37c50 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57  LL * FROM tab0 W
37c60 48 45 52 45 20 4e 4f 54 20 2b 20 2b 20 28 20 2d  HERE NOT + + ( -
37c70 20 2b 20 63 6f 6c 32 20 29 20 49 53 20 4e 55 4c   + col2 ) IS NUL
37c80 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  L..----..9 value
37c90 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62  s hashing to c4b
37ca0 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36  42765dff94eaaa46
37cb0 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d  040e537fb43b7...
37cc0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
37cd0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
37ce0 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
37cf0 20 4e 4f 54 20 2d 20 63 6f 6c 31 20 4e 4f 54 20   NOT - col1 NOT 
37d00 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44  BETWEEN NULL AND
37d10 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   NULL..----....o
37d20 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
37d30 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
37d40 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
37d50 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
37d60 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
37d70 6c 2d 31 32 32 36 0d 0a 53 45 4c 45 43 54 20 41  l-1226..SELECT A
37d80 4c 4c 20 2b 20 28 20 2d 20 2b 20 43 4f 55 4e 54  LL + ( - + COUNT
37d90 28 20 2a 20 29 20 29 20 2d 20 2d 20 43 41 53 54  ( * ) ) - - CAST
37da0 28 20 2b 20 41 56 47 20 28 20 44 49 53 54 49 4e  ( + AVG ( DISTIN
37db0 43 54 20 2b 20 2b 20 63 6f 6c 32 20 29 20 41 53  CT + + col2 ) AS
37dc0 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74   SIGNED ) FROM t
37dd0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
37de0 2d 0d 0a 33 37 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..37....skipif 
37df0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
37e00 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
37e10 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
37e20 32 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  26..SELECT ALL +
37e30 20 28 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a   ( - + COUNT ( *
37e40 20 29 20 29 20 2d 20 2d 20 43 41 53 54 20 28 20   ) ) - - CAST ( 
37e50 2b 20 41 56 47 20 28 20 44 49 53 54 49 4e 43 54  + AVG ( DISTINCT
37e60 20 2b 20 2b 20 63 6f 6c 32 20 29 20 41 53 20 49   + + col2 ) AS I
37e70 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61  NTEGER ) FROM ta
37e80 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
37e90 0d 0a 33 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..37....query I 
37ea0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
37eb0 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20  DISTINCT + col2 
37ec0 2b 20 2b 20 34 33 20 41 53 20 63 6f 6c 32 20 46  + + 43 AS col2 F
37ed0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
37ee0 0d 0a 2d 2d 2d 2d 0d 0a 31 30 31 0d 0a 36 36 0d  ..----..101..66.
37ef0 0a 38 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .83....query I r
37f00 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
37f10 6f 6c 30 20 2b 20 2b 20 28 20 2d 20 2d 20 38 20  ol0 + + ( - - 8 
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 31 30 35 0d 0a  ab0..----..105..
37f40 32 33 0d 0a 39 35 0d 0a 0d 0a 6f 6e 6c 79 69 66  23..95....onlyif
37f50 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
37f60 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
37f70 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
37f80 65 6c 2d 31 32 32 39 0d 0a 53 45 4c 45 43 54 20  el-1229..SELECT 
37f90 41 4c 4c 20 2d 20 32 39 20 2b 20 2b 20 43 4f 55  ALL - 29 + + COU
37fa0 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20  NT( * ) AS col0 
37fb0 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 43  FROM tab2 cor0 C
37fc0 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 63  ROSS JOIN tab0 c
37fd0 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30 0d 0a  or1..----..-20..
37fe0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
37ff0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
38000 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
38010 20 6c 61 62 65 6c 2d 31 32 32 39 0d 0a 53 45 4c   label-1229..SEL
38020 45 43 54 20 41 4c 4c 20 2d 20 32 39 20 2b 20 2b  ECT ALL - 29 + +
38030 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
38040 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 63  col0 FROM tab2 c
38050 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
38060 61 62 30 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a  ab0 cor1..----..
38070 2d 32 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -20....onlyif my
38080 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
38090 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20  syntax: DIV for 
380a0 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
380b0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
380c0 6f 72 74 20 6c 61 62 65 6c 2d 31 32 33 30 0d 0a  ort label-1230..
380d0 53 45 4c 45 43 54 20 2b 20 32 39 20 44 49 56 20  SELECT + 29 DIV 
380e0 2d 20 28 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  - ( + COUNT( * )
380f0 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
38100 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
38110 0a 2d 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .-9....skipif my
38120 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
38130 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
38140 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 33 30  wsort label-1230
38150 0d 0a 53 45 4c 45 43 54 20 2b 20 32 39 20 2f 20  ..SELECT + 29 / 
38160 2d 20 28 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  - ( + COUNT ( * 
38170 29 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ) ) AS col2 FROM
38180 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
38190 0d 0a 2d 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..-9....onlyif m
381a0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
381b0 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79  ax: aggregate sy
381c0 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
381d0 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
381e0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 33 31 0d  sort label-1231.
381f0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
38200 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20   COUNT( * ) * + 
38210 43 4f 55 4e 54 28 20 2b 20 43 41 53 54 28 20 2d  COUNT( + CAST( -
38220 20 31 33 20 41 53 20 53 49 47 4e 45 44 20 29 20   13 AS SIGNED ) 
38230 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  ) FROM tab0 AS c
38240 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a  or0..----..9....
38250 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
38260 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
38270 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
38280 61 62 65 6c 2d 31 32 33 31 0d 0a 53 45 4c 45 43  abel-1231..SELEC
38290 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54  T DISTINCT COUNT
382a0 20 28 20 2a 20 29 20 2a 20 2b 20 43 4f 55 4e 54   ( * ) * + COUNT
382b0 20 28 20 2b 20 43 41 53 54 20 28 20 2d 20 31 33   ( + CAST ( - 13
382c0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20   AS INTEGER ) ) 
382d0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
382e0 30 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 71 75  0..----..9....qu
382f0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
38300 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
38310 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
38320 54 20 2b 20 2b 20 37 33 20 2b 20 2b 20 63 6f 6c  T + + 73 + + col
38330 30 20 4e 4f 54 20 49 4e 20 28 20 2b 20 2b 20 63  0 NOT IN ( + + c
38340 6f 6c 32 2c 20 38 30 2c 20 2d 20 2b 20 63 6f 6c  ol2, 80, - + col
38350 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  2 )..----....que
38360 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
38370 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2a 20  LECT ALL col1 * 
38380 2b 20 31 34 20 41 53 20 63 6f 6c 30 20 46 52 4f  + 14 AS col0 FRO
38390 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 30  M tab2..----..10
383a0 37 38 0d 0a 37 31 34 0d 0a 39 33 38 0d 0a 0d 0a  78..714..938....
383b0 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
383c0 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
383d0 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
383e0 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
383f0 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
38400 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
38410 20 2b 20 63 6f 6c 31 20 2a 20 32 20 63 6f 6c 30   + col1 * 2 col0
38420 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
38430 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c   NOT NULL IS NUL
38440 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  L..----....onlyi
38450 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
38460 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20  ate syntax: DIV 
38470 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
38480 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
38490 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
384a0 33 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  35..SELECT DISTI
384b0 4e 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  NCT + COUNT( * )
384c0 20 44 49 56 20 2d 20 36 36 20 41 53 20 63 6f 6c   DIV - 66 AS col
384d0 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
384e0 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..0....skipif m
384f0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
38500 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
38510 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 33  owsort label-123
38520 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  5..SELECT DISTIN
38530 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29  CT + COUNT ( * )
38540 20 2f 20 2d 20 36 36 20 41 53 20 63 6f 6c 30 20   / - 66 AS col0 
38550 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
38560 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  .0....skipif pos
38570 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
38580 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
38590 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
385a0 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
385b0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
385c0 53 45 4c 45 43 54 20 2b 20 28 20 2b 20 2d 20 32  SELECT + ( + - 2
385d0 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   ) col0 FROM tab
385e0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 2d 32 0d  0..----..-2..-2.
385f0 0a 2d 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .-2....query I r
38600 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
38610 20 63 6f 6c 32 20 2a 20 2d 20 2d 20 33 34 20 46   col2 * - - 34 F
38620 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
38630 31 35 39 38 0d 0a 33 33 36 36 0d 0a 33 34 30 0d  1598..3366..340.
38640 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
38650 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
38660 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
38670 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
38680 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
38690 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
386a0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
386b0 6c 32 20 63 6f 6c 31 2c 20 35 32 20 41 53 20 63  l2 col1, 52 AS c
386c0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
386d0 2d 2d 2d 0d 0a 32 33 0d 0a 35 32 0d 0a 34 30 0d  ---..23..52..40.
386e0 0a 35 32 0d 0a 35 38 0d 0a 35 32 0d 0a 0d 0a 6f  .52..58..52....o
386f0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
38700 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
38710 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
38720 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
38730 6c 2d 31 32 33 39 0d 0a 53 45 4c 45 43 54 20 2a  l-1239..SELECT *
38740 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
38750 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e  r0 WHERE NOT ( N
38760 55 4c 4c 20 29 20 3c 3d 20 33 38 20 2f 20 2d 20  ULL ) <= 38 / - 
38770 2d 20 32 30 20 2d 20 2d 20 63 6f 6c 31 20 2a 20  - 20 - - col1 * 
38780 2d 20 2d 20 36 36 20 2a 20 2d 20 43 41 53 54 28  - - 66 * - CAST(
38790 20 2d 20 63 6f 6c 31 20 41 53 20 53 49 47 4e 45   - col1 AS SIGNE
387a0 44 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  D )..----....ski
387b0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
387c0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
387d0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
387e0 62 65 6c 2d 31 32 33 39 0d 0a 53 45 4c 45 43 54  bel-1239..SELECT
387f0 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
38800 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28  cor0 WHERE NOT (
38810 20 4e 55 4c 4c 20 29 20 3c 3d 20 33 38 20 2f 20   NULL ) <= 38 / 
38820 2d 20 2d 20 32 30 20 2d 20 2d 20 63 6f 6c 31 20  - - 20 - - col1 
38830 2a 20 2d 20 2d 20 36 36 20 2a 20 2d 20 43 41 53  * - - 66 * - CAS
38840 54 20 28 20 2d 20 63 6f 6c 31 20 41 53 20 49 4e  T ( - col1 AS IN
38850 54 45 47 45 52 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d  TEGER )..----...
38860 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
38870 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 37 39 20  ..SELECT + - 79 
38880 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 20 57  FROM tab1 cor0 W
38890 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 30 20  HERE NOT + col0 
388a0 3c 20 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a  < - col0..----..
388b0 2d 37 39 0d 0a 2d 37 39 0d 0a 2d 37 39 0d 0a 0d  -79..-79..-79...
388c0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
388d0 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43  CAST syntax: DEC
388e0 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65  IMAL type: ..que
388f0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
38900 61 62 65 6c 2d 31 32 34 31 0d 0a 53 45 4c 45 43  abel-1241..SELEC
38910 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53  T * FROM tab1 AS
38920 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
38930 2b 20 28 20 2b 20 35 38 20 29 20 2a 20 2d 20 28  + ( + 58 ) * - (
38940 20 2d 20 63 6f 6c 31 20 29 20 2a 20 2d 20 2b 20   - col1 ) * - + 
38950 63 6f 6c 30 20 2b 20 2b 20 37 36 20 42 45 54 57  col0 + + 76 BETW
38960 45 45 4e 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 63  EEN + col0 * - c
38970 6f 6c 31 20 41 4e 44 20 43 41 53 54 28 20 2b 20  ol1 AND CAST( + 
38980 2d 20 63 6f 6c 31 20 41 53 20 44 45 43 49 4d 41  - col1 AS DECIMA
38990 4c 20 29 20 2a 20 2d 20 38 31 20 2a 20 2d 20 2d  L ) * - 81 * - -
389a0 20 37 30 20 2d 20 34 35 20 2b 20 2d 20 63 6f 6c   70 - 45 + - col
389b0 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  2..----..9 value
389c0 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63  s hashing to c6c
389d0 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38  0a4111b36d04dbc8
389e0 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d  11a11e4d54cad...
389f0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
38a00 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
38a10 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
38a20 74 20 6c 61 62 65 6c 2d 31 32 34 31 0d 0a 53 45  t label-1241..SE
38a30 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  LECT * FROM tab1
38a40 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
38a50 4f 54 20 2b 20 28 20 2b 20 35 38 20 29 20 2a 20  OT + ( + 58 ) * 
38a60 2d 20 28 20 2d 20 63 6f 6c 31 20 29 20 2a 20 2d  - ( - col1 ) * -
38a70 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 37 36 20 42   + col0 + + 76 B
38a80 45 54 57 45 45 4e 20 2b 20 63 6f 6c 30 20 2a 20  ETWEEN + col0 * 
38a90 2d 20 63 6f 6c 31 20 41 4e 44 20 43 41 53 54 20  - col1 AND CAST 
38aa0 28 20 2b 20 2d 20 63 6f 6c 31 20 41 53 20 52 45  ( + - col1 AS RE
38ab0 41 4c 20 29 20 2a 20 2d 20 38 31 20 2a 20 2d 20  AL ) * - 81 * - 
38ac0 2d 20 37 30 20 2d 20 34 35 20 2b 20 2d 20 63 6f  - 70 - 45 + - co
38ad0 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  l2..----..9 valu
38ae0 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36  es hashing to c6
38af0 63 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63  c0a4111b36d04dbc
38b00 38 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a  811a11e4d54cad..
38b10 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
38b20 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
38b30 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
38b40 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 34 32 0d  sort label-1242.
38b50 0a 53 45 4c 45 43 54 20 41 4c 4c 20 4d 49 4e 28  .SELECT ALL MIN(
38b60 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32   DISTINCT + col2
38b70 20 29 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20   ) + COUNT( * ) 
38b80 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a  FROM tab2 cor0..
38b90 2d 2d 2d 2d 0d 0a 32 36 0d 0a 0d 0a 73 6b 69 70  ----..26....skip
38ba0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
38bb0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
38bc0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
38bd0 2d 31 32 34 32 0d 0a 53 45 4c 45 43 54 20 41 4c  -1242..SELECT AL
38be0 4c 20 4d 49 4e 20 28 20 44 49 53 54 49 4e 43 54  L MIN ( DISTINCT
38bf0 20 2b 20 63 6f 6c 32 20 29 20 2b 20 43 4f 55 4e   + col2 ) + COUN
38c00 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  T ( * ) FROM