github.com/matrixorigin/matrixone@v0.7.0/test/distributed/cases/function/function_mid.sql (about) 1 -- @suit 2 -- @case 3 -- @test function mid(str,pos,len) 4 -- @label:bvt 5 6 -- constant test 7 SELECT mid('zhanziziefw',1,2); 8 SELECT mid('jdkajfkw83q9iwqjfeqw_7832',5,22); 9 SELECT mid('我是一只自由的鸟',1,3); 10 SELECT mid('好的fjewka鸭dfj00-=392*&*^$',-8,4); 11 SELECT mid('好的fjewka鸭dfj00-=392',0,2); 12 SELECT mid('abchfjwabcABCvshfjdrvoiewjvkmdns mndsabcAbcueiuiwqjemkvwme000',6,40); 13 SELECT mid('http://www.google.com.cn/',-2,6); 14 SELECT mid('',1,3); 15 SELECT mid(NULL,1,2); 16 SELECT mid('hduw',3,8); 17 SELECT mid('',-1,3); 18 SELECT mid('wfroiewjvre',NULL,3); 19 SELECT mid('vjdiejevfe',1,NULL); 20 SELECT mid('efjkw',NULL,NULL); 21 SELECT mid('',2,9); 22 23 24 -- @suite 25 -- @setup 26 DROP TABLE IF EXISTS mid_01; 27 CREATE TABLE mid_01(id int, 28 str1 CHAR, 29 d1 int, 30 d2 tinyint unsigned, 31 PRIMARY KEY(id)); 32 33 INSERT INTO mid_01 VALUES(1, 'h', 3, 12); 34 INSERT INTO mid_01 VALUES(2, '', -2, 32); 35 INSERT INTO mid_01 VALUES(3, '2',-2, 2); 36 INSERT into mid_01 VALUES(4, '*', NULL, 3); 37 INSERT INTO mid_01 VALUES(5, 'd', 2, NULL); 38 39 40 -- Abnormal insertion 41 INSERT INTO mid_01 VALUES(6, 'ehiuwjqnelfkw', NULL, 3); 42 INSERT INTO mid_01 VALUES(7, '2',-2147483649, 0); 43 INSERT INTO mid_01 VALUES(8, '1', 328, 258); 44 45 46 SELECT mid(str1, 1, 2) FROM mid_01; 47 SELECT mid(str1, d1, 3) FROM mid_01; 48 SELECT mid(str1, d1, d2) FROM mid_01; 49 SELECT * FROM mid_01 WHERE mid(str1,1,1) = 'h'; 50 SELECT * FROM mid_01 WHERE mid(str1,-1,2) IS NULL AND d1 IS NOT NULL; 51 SELECT d1, d2 FROM mid_01 WHERE str1 = (SELECT str1 FROM mid_01 WHERE mid(str1,-1,1) = '*'); 52 SELECT(SELECT str1 FROM mid_01 WHERE mid(str1,2,3) = NULL),d1,d2 FROM mid_01 WHERE id = 4; 53 54 55 -- string function 56 SELECT LENGTH(mid(str1, ABS(d1),d2)) FROM mid_01 WHERE str1 = '2'; 57 SELECT empty(mid(str1, d1, d2)) FROM mid_01 WHERE ABS(d2) = 3; 58 SELECT mid(str1, d1, d2) FROM mid_01; 59 SELECT mid(str1, d1, 2) FROM mid_01 WHERE ABS(d1) % 2 = 0; 60 SELECT mid(str1, d1, d2) FROM mid_01 WHERE d1 > 0; 61 62 63 -- @suite 64 -- @setup 65 DROP TABLE IF EXISTS mid_02; 66 CREATE TABLE mid_02(id int, 67 s VARCHAR(50), 68 d1 smallint, 69 d2 bigint unsigned NOT NULL, 70 PRIMARY KEY(id)); 71 72 73 INSERT INTO mid_02 VALUES(1, 'woshishei3829', 3, 12); 74 INSERT INTO mid_02 VALUES(2, '', -2, 2132); 75 INSERT INTO mid_02 VALUES(3, ' 356284o 329&***((^%$%^&',-2, 2); 76 INSERT into mid_02 VALUES(4, NULL, NULL, 3); 77 INSERT INTO mid_02 VALUES(5, NULL, 2, 4); 78 INSERT INTO mid_02 VALUES(6, 'ehwqkjf8392__+ ',NULL,6); 79 INSERT INTO mid_02 values(7, '123', 0, 2); 80 81 82 -- Abnormal insertion 83 INSERT INTO mid_02 VALUES(8, 'ehiuwjey73y8213092kjfm3e#$%^WHJfne32edwfdewvvcqeveqnelfkw', NULL, 3); 84 INSERT INTO mid_02 VALUES(9, '2',32769, 0); 85 INSERT INTO mid_02 VALUES(10, '1', 328, 18446744073709551618); 86 87 88 SELECT mid(s, NULL, NULL) FROM mid_02; 89 SELECT mid(s, NULL, 2) FROM mid_02; 90 SELECT mid(s, 1, NULL) FROM mid_02; 91 SELECT mid(s, 1, 9) FROM mid_02 WHERE mid(s, 1, 2) = 'eh'; 92 SELECT mid(s, d1, d2) FROM mid_02; 93 SELECT mid(s, d1, -3) FROM mid_02 WHERE d2 = 2; 94 95 96 -- string function 97 SELECT concat_ws('-',mid(s,2,3),mid(s,1,2)) FROM mid_02 WHERE id BETWEEN 2 AND 3; 98 SELECT find_in_set(mid(s,1 + 2,9),'woshishei') FROM mid_02 WHERE id = 1; 99 SELECT empty(mid(s,1,2)) FROM mid_02; 100 SELECT LENGTH(mid(s, -1, 7281979 % 2)) FROM mid_02; 101 SELECT lengthutf8(mid(s, -1, 3)) FROM mid_02; 102 SELECT LTRIM(mid(s, 1, 16 - 11)) FROM mid_02; 103 SELECT RTRIM(mid(s, -3, 2)) FROM mid_02 WHERE id = 6; 104 SELECT LPAD(mid(s, 1, 2),20,'*') FROM mid_02; 105 SELECT RPAD(mid(s, -8, 4), 5, '-') FROM mid_02 WHERE ABS(d1) = 0; 106 SELECT startswith(mid(s, 1, 6), 'ehwq') FROM mid_02 WHERE d2 = NULL; 107 SELECT endswith(mid(s,-1,1),' ') FROM mid_02 WHERE id = 6; 108 SELECT substring(mid(s, 3, 19),3, 10) FROM mid_02 WHERE id + 1 = 4; 109 SELECT REVERSE(mid(s, -1, 2)) FROM mid_02; 110 SELECT hex(mid(s, 1, 2)) FROM mid_02 WHERE id = 7; 111 112 113 -- subqueries 114 SELECT * FROM mid_02 WHERE s = (SELECT s FROM mid_02 WHERE mid(s,1,2) = 'wo'); 115 SELECT(SELECT s FROM mid_02 WHERE mid(s,1,3) = 'ehw'),d1,d2 FROM mid_02 WHERE id = 6; 116 SELECT * FROM mid_02 WHERE s = (SELECT s FROM mid_02 WHERE mid(s,1,10) = NULL); 117 118 119 -- @suite 120 -- @setup 121 DROP TABLE IF EXISTS mid_03; 122 DROP TABLE IF EXISTS mid_04; 123 CREATE TABLE mid_03( 124 id int, 125 d1 tinyint unsigned, 126 str1 VARCHAR(50), 127 primary key (id)); 128 129 CREATE TABLE mid_04( 130 id int, 131 d2 bigint, 132 str1 mediumtext NOT NULL, 133 primary key (id)); 134 135 136 INSERT INTO mid_03 VALUES(1, 255, 'zheshimeihaodeyitian,这是美好的一天'); 137 INSERT INTO mid_03 VALUES(2, 10, '明天更美好ehwqknjcw*^*qk67329&&*'); 138 INSERT INTO mid_03 VALUES(3, NULL, 'ewgu278wd-+ABNJDSK'); 139 INSERT INTO mid_03 VALUES(4, 1, NULL); 140 141 INSERT INTO mid_04 VALUES(1, 0, '盼望着,盼望着,东风来了,春天的脚步近了。 一切都像刚睡醒的样子,欣欣然张开了眼。山朗润起来了,水涨 起来了,太阳的脸红起来了。 小草偷偷地从土里钻出来,Choose to Be Alone on Purpose Here we are, all by ourselves, all 22 million of us by recent count, alone in our rooms'); 142 INSERT INTO mid_04 VALUES(2, -34, 'zheshimeihaodeyitian,这是美好的一天'); 143 INSERT INTO mid_04 VALUES(3, 35267192, 'ewgu278wd-+ABNJDSK'); 144 INSERT INTO mid_04 VALUES(4, NULL, 'hey32983..........,,'); 145 146 147 -- join 148 SELECT mid_03.id AS id_3,mid_04.id AS id_4 FROM mid_03,mid_04 WHERE mid(mid_03.str1,1,4) = mid(mid_04.str1,1,4); 149 SELECT mid_03.str1 AS str1_3,mid_04.str1 FROM mid_03,mid_04 WHERE mid(mid_03.str1,2,1) = mid(mid_04.str1,-1,1); 150 SELECT mid(mid_03.str1, -10, 5) FROM mid_03,mid_04 WHERE mid_03.str1 = mid_04.str1; 151 SELECT * FROM mid_03 WHERE str1 = (SELECT str1 FROM mid_04 WHERE mid(str1, 1, 19) = 'ewgu278wd-+ABNJDSK'); 152 SELECT mid(mid_03.str1, -10, 5)AS tmp, mid_04.str1 AS temp FROM mid_03 join mid_04 ON mid_03.str1 = mid_04.str1; 153 SELECT mid_03.id AS id_3,mid_04.id AS id_4 FROM mid_03 left join mid_04 ON mid(mid_03.str1,1,4) = mid(mid_04.str1,1,4); 154 SELECT mid_03.d1 AS d1_3,mid_04.d2 AS d2_4 FROM mid_03 right join mid_04 ON mid(mid_03.str1,1,4) = mid(mid_04.str1,1,4);