<sqlid="assertSelectOne"value="SELECT 1 as a"type="MySQL,PostgreSQL,SQLServer"/>
<sqlid="assertSelectNotEqualsWithSingleTable"value="SELECT * FROM t_order_item WHERE item_id <> %s ORDER BY item_id"/>
<sqlid="assertSelectNotEqualsWithSingleTableForExclamationEqual"value="SELECT * FROM t_order_item WHERE item_id != %s ORDER BY item_id"/>
<sqlid="assertSelectNotEqualsWithSingleTableForNotIn"value="SELECT * FROM t_order_item WHERE item_id IS NOT NULL AND item_id NOT IN (%s) ORDER BY item_id"/>
<sqlid="assertSelectEqualsWithSingleTable"value="SELECT * FROM t_order WHERE user_id = %s AND order_id = %s"/>
<sqlid="assertSelectEqualsWithSameShardingColumns"value="SELECT * FROM t_order WHERE order_id = %s AND order_id = %s"/>
<sqlid="assertSelectBetweenWithSingleTable"value="SELECT * FROM t_order WHERE user_id BETWEEN %s AND %s AND order_id BETWEEN %s AND %s ORDER BY user_id, order_id"/>
<sqlid="assertSelectInWithSingleTable"value="SELECT * FROM t_order WHERE user_id IN (%s, %s, %s) AND order_id IN (%s, %s) ORDER BY user_id, order_id"/>
<sqlid="assertSelectInWithSameShardingColumns"value="SELECT * FROM t_order WHERE order_id IN (%s, %s) AND order_id IN (%s, %s) ORDER BY order_id"/>
<sqlid="assertSelectIterator"value="SELECT t.* FROM t_order_item t WHERE t.item_id IN (%s, %s)"/>
<sqlid="assertSelectNoShardingTable"value="SELECT i.* FROM t_order o JOIN t_order_item i ON o.user_id = i.user_id AND o.order_id = i.order_id ORDER BY i.item_id"/>
<sqlid="assertSelectLikeWithCount"value="SELECT count(0) as orders_count FROM `t_order` o WHERE o.status LIKE CONCAT('%%', %s, '%%') AND o.`user_id` IN (%s, %s) AND o.`order_id` BETWEEN %s AND %s"type="MySQL,H2"/>
<sqlid="assertSelectWithBindingTable"value="SELECT i.* FROM t_order o JOIN t_order_item i ON o.user_id = i.user_id AND o.order_id = i.order_id WHERE o.user_id IN (%s, %s) AND o.order_id BETWEEN %s AND %s ORDER BY i.item_id"/>
<sqlid="assertSelectWithBindingTableAndConfigTable"value="SELECT i.* FROM t_order o JOIN t_order_item i ON o.user_id = i.user_id AND o.order_id = i.order_id JOIN t_config c ON o.status = c.status WHERE o.user_id IN (%s, %s) AND o.order_id BETWEEN %s AND %s AND c.status = %s ORDER BY i.item_id"/>
<sqlid="assertSelectWithUpperCaseBindingTable"value="SELECT i.* FROM T_ORDER o JOIN T_order_item i ON o.user_id = i.user_id AND o.order_id = i.order_id WHERE o.user_id IN (%s, %s) AND o.order_id BETWEEN %s AND %s ORDER BY i.item_id"/>
<sqlid="assertSelectWithUpperCaseBindingTableAndConfigTable"value="SELECT i.*,c.status c_status FROM T_ORDER o JOIN T_order_item i ON o.user_id = i.user_id AND o.order_id = i.order_id JOIN t_config c ON o.status = c.status WHERE o.user_id IN (%s, %s) AND o.order_id BETWEEN %s AND %s AND c.status = %s ORDER BY i.item_id"/>
<sqlid="assertSelectCountWithBindingTable"value="SELECT COUNT(*) AS items_count FROM t_order o, t_order_item i WHERE o.user_id = i.user_id AND o.order_id = i.order_id AND o.user_id IN (%s, %s) AND o.order_id BETWEEN %s AND %s"/>
<sqlid="assertSelectCountWithBindingTableWithJoin"value="SELECT COUNT(*) AS items_count FROM t_order o JOIN t_order_item i ON o.user_id = i.user_id AND o.order_id = i.order_id WHERE o.user_id IN (%s, %s) AND o.order_id BETWEEN %s AND %s"/>
<sqlid="assertSelectAliasWithKeyword"value="SELECT length.item_id password FROM t_order_item length where length.item_id = %s "type="MySQL,H2,SQLServer,Oracle"/>
<sqlid="assertSelectExpressionWithSingleTable"value="SELECT o.order_id + 1 * 2 FROM t_order AS o ORDER BY o.order_id"/>
<sqlid="assertSelectDateFuncWithSingleTable"value="SELECT DATE(i.c_date) AS c_date FROM `t_order_item` AS i ORDER BY DATE(i.c_date) DESC"type="MySQL"/>
<sqlid="assertSelectCountWithExpression"value="SELECT COUNT(o.order_id) + 1^2 FROM t_order o"/>
<sqlid="assertSelectRegexpWithSingleTable"value="SELECT * FROM t_order_item t WHERE t.status REGEXP %s AND t.item_id IN (%s, %s)"type="MySQL"/>
<sqlid="assertSelectDateFuncWithGroupBy"value="SELECT date_format(c_date, '%%y-%%m-%%d') as c_date, count(*) as c_number FROM `t_order_item` WHERE order_id in (%s, %s) GROUP BY date_format(c_date, '%%y-%%m-%%d')"type="MySQL"/>
<sqlid="assertSelectSumWithGroupBy"value="SELECT SUM(order_id) AS orders_sum, user_id FROM t_order GROUP BY user_id ORDER BY user_id"/>
<sqlid="assertSelectCountWithGroupBy"value="SELECT COUNT(order_id) AS orders_count, user_id FROM t_order GROUP BY user_id ORDER BY user_id"/>
<sqlid="assertSelectMaxWithGroupBy"value="SELECT MAX(order_id) AS max_order_id, user_id FROM t_order GROUP BY user_id ORDER BY user_id"/>
<sqlid="assertSelectMinWithGroupBy"value="SELECT MIN(order_id) AS min_order_id, user_id FROM t_order GROUP BY user_id ORDER BY user_id"/>
<sqlid="assertSelectAvgWithGroupBy"value="SELECT AVG(order_id) AS orders_avg, user_id FROM t_order GROUP BY user_id ORDER BY user_id"/>
<sqlid="assertSelectOrderByDescWithGroupBy"value="SELECT SUM(order_id) AS orders_sum, user_id FROM t_order GROUP BY user_id ORDER BY orders_sum DESC"/>
<sqlid="assertSelectCountWithoutGroupedColumn"value="SELECT count(*) as items_count FROM t_order o JOIN t_order_item i ON o.user_id = i.user_id AND o.order_id = i.order_id WHERE o.user_id IN (%s, %s) AND o.order_id BETWEEN %s AND %s GROUP BY o.user_id"/>
<sqlid="assertSelectCountWithGroupByBindingTable"value="SELECT count(*) as items_count, o.user_id FROM t_order o JOIN t_order_item i ON o.user_id = i.user_id AND o.order_id = i.order_id WHERE o.user_id IN (%s, %s) AND o.order_id BETWEEN %s AND %s GROUP BY o.user_id ORDER BY o.user_id"/>
<sqlid="assertSelectWithGroupByAndLimit"value="SELECT user_id FROM t_order GROUP BY user_id ORDER BY user_id LIMIT %s"type="H2,MySQL,PostgreSQL"/>
<sqlid="assertSelectWithGroupByAndOrderByAndLimit"value="SELECT user_id, SUM(order_id) FROM t_order GROUP BY user_id ORDER BY SUM(order_id) LIMIT %s"type="H2,MySQL,PostgreSQL"/>
<sqlid="assertSelectItemWithAliasAndMatchOrderByAndGroupByItems"value="SELECT o.user_id uid FROM t_order o GROUP BY o.user_id ORDER BY o.user_id"type="H2,MySQL,SQLServer,PostgreSQL"/>
<sqlid="assertSelectGroupByWithAliasIsKeyword"value="SELECT SUM(order_id) AS orders_sum, user_id as `key` FROM t_order GROUP BY `key`"type="MySQL"/>
<sqlid="assertSelectInWithNullParameter"value="SELECT * FROM t_order WHERE sku_num IN (%s, %s) ORDER BY order_id ASC"type="MySQL,PostgreSQL,SQLServer,Oracle"/>
<sqlid="assertSelectWithOrderBy"value="SELECT * FROM t_order o ORDER BY o.order_id, 2 DESC"/>
<sqlid="assertSelectWithOrderByForIndex"value="SELECT i.* FROM t_order o, t_order_item i WHERE o.order_id = i.order_id AND o.status = 'init' ORDER BY o.order_id DESC, 1"/>
<sqlid="assertSelectWithOrderByForAlias"value="SELECT o.order_id as gen_order_id_ FROM t_order o ORDER BY o.order_id"/>
<sqlid="assertSelectWithOrderByForDate"value="SELECT i.* FROM t_order o, t_order_item i WHERE o.order_id = i.order_id AND o.status = 'init' ORDER BY i.c_date DESC, o.order_id DESC, i.item_id"/>
<sqlid="assertSelectWithOrderByForNullsFirst"value="SELECT o.order_id as gen_order_id_ FROM t_order o ORDER BY o.order_id NULLS FIRST"type="Oracle"/>
<sqlid="assertSelectWithOrderByForNullsLast"value="SELECT o.order_id as gen_order_id_ FROM t_order o ORDER BY o.order_id ASC NULLS LAST"type="Oracle"/>
<sqlid="assertSelectPaginationWithOffset"value="SELECT i.* FROM t_order o JOIN t_order_item i ON o.user_id = i.user_id AND o.order_id = i.order_id WHERE o.user_id IN (%s, %s) AND o.order_id BETWEEN %s AND %s ORDER BY i.item_id DESC OFFSET %s"type="PostgreSQL"/>
<sqlid="assertSelectPaginationWithRowCount"value="SELECT i.* FROM t_order o JOIN t_order_item i ON o.user_id = i.user_id AND o.order_id = i.order_id WHERE o.user_id IN (%s, %s) AND o.order_id BETWEEN %s AND %s ORDER BY i.item_id DESC LIMIT %s"type="MySQL,H2,PostgreSQL"/>
<sqlid="assertSelectPaginationWithTop"value="SELECT * FROM (SELECT TOP (%s) row_number() OVER (ORDER BY i.item_id DESC) AS rownum_, i.item_id, o.order_id as order_id, o.status as status, o.user_id as user_id FROM t_order o JOIN t_order_item i ON o.user_id = i.user_id AND o.order_id = i.order_id WHERE o.user_id IN (%s, %s) AND o.order_id BETWEEN %s AND %s) AS row_"type="SQLServer"/>
<sqlid="assertSelectPaginationWithRowNumber"value="SELECT * FROM (SELECT row_.*, rownum rownum_ FROM (SELECT order0_.order_id as order_id, order0_.status as status, order0_.user_id as user_id FROM t_order order0_ JOIN t_order_item i ON order0_.user_id = i.user_id AND order0_.order_id = i.order_id WHERE order0_.user_id IN (%s, %s) AND order0_.order_id BETWEEN %s AND %s ORDER BY i.item_id DESC) row_ WHERE rownum <= %s)"type="Oracle"/>
<sqlid="assertSelectPaginationWithLimit"value="SELECT i.* FROM `t_order` o JOIN `t_order_item` i ON o.user_id = i.user_id AND o.order_id = i.order_id WHERE o.`user_id` IN (%s, %s) AND o.`order_id` BETWEEN %s AND %s ORDER BY i.item_id DESC LIMIT %s, %s"type="MySQL,H2"/>
<sqlid="assertSelectSingleTablePaginationWithLimit"value="SELECT o.* FROM `t_order` o ORDER BY o.order_id DESC LIMIT %s, %s"type="MySQL,H2"/>
<sqlid="assertSelectPaginationWithOffsetAndLimit"value="SELECT i.* FROM t_order o JOIN t_order_item i ON o.user_id = i.user_id AND o.order_id = i.order_id WHERE o.user_id IN (%s, %s) AND o.order_id BETWEEN %s AND %s ORDER BY i.item_id DESC OFFSET %s LIMIT %s"type="PostgreSQL"/>
<sqlid="assertSelectPaginationWithTopAndRange"value="SELECT * FROM (SELECT TOP (%s) row_number() OVER (ORDER BY i.item_id DESC) AS rownum_, i.item_id, o.order_id as order_id, o.status as status, o.user_id as user_id FROM t_order o JOIN t_order_item i ON o.user_id = i.user_id AND o.order_id = i.order_id WHERE o.user_id IN (%s, %s) AND o.order_id BETWEEN %s AND %s) AS row_ WHERE row_.rownum_ > %s"type="SQLServer"/>
<sqlid="assertSelectPaginationWithTopAndRangeWithEqual"value="SELECT * FROM (SELECT TOP (%s) row_number() OVER (ORDER BY i.item_id DESC) AS rownum_, i.item_id, o.order_id as order_id, o.status as status, o.user_id as user_id FROM t_order o JOIN t_order_item i ON o.user_id = i.user_id AND o.order_id = i.order_id WHERE o.user_id IN (%s, %s) AND o.order_id BETWEEN %s AND %s) AS row_ WHERE row_.rownum_ >= %s"type="SQLServer"/>
<sqlid="assertSelectSingleTablePaginationWithTopAndRange"value="SELECT * FROM (SELECT TOP (%s) row_number() OVER (ORDER BY o.order_id DESC) AS rownum_, o.order_id as order_id, o.status as status, o.user_id as user_id FROM t_order o) AS row_ WHERE row_.rownum_ > %s"type="SQLServer"/>
<sqlid="assertSelectSingleTablePaginationWithTopAndRangeWithEqual"value="SELECT * FROM (SELECT TOP (%s) row_number() OVER (ORDER BY o.order_id DESC) AS rownum_, o.order_id as order_id, o.status as status, o.user_id as user_id FROM t_order o) AS row_ WHERE row_.rownum_ >= %s"type="SQLServer"/>
<sqlid="assertSelectPaginationWithRowNumberAndRange"value="SELECT * FROM (SELECT row_.*, rownum rownum_ FROM (SELECT order0_.order_id as order_id, order0_.status as status, order0_.user_id as user_id FROM t_order order0_ JOIN t_order_item i ON order0_.user_id = i.user_id AND order0_.order_id = i.order_id WHERE order0_.user_id IN (%s, %s) AND order0_.order_id BETWEEN %s AND %s ORDER BY i.item_id DESC) row_ WHERE rownum <= %s) t WHERE t.rownum_ > %s"type="Oracle"/>
<sqlid="assertSelectPaginationWithRowNumberAndRangeWithEqual"value="SELECT * FROM (SELECT row_.*, rownum rownum_ FROM (SELECT order0_.order_id as order_id, order0_.status as status, order0_.user_id as user_id FROM t_order order0_ JOIN t_order_item i ON order0_.user_id = i.user_id AND order0_.order_id = i.order_id WHERE order0_.user_id IN (%s, %s) AND order0_.order_id BETWEEN %s AND %s ORDER BY i.item_id DESC) row_ WHERE rownum <= %s) t WHERE t.rownum_ >= %s"type="Oracle"/>
<sqlid="assertSelectSingleTablePaginationWithRowNumberAndRange"value="SELECT * FROM (SELECT t.*, ROWNUM rownum_ FROM (SELECT * FROM t_order ORDER BY order_id DESC) t WHERE ROWNUM < %s) row_ WHERE row_.rownum_ > %s"type="Oracle"/>
<sqlid="assertSelectSingleTablePaginationWithRowNumberAndRangeWithEqual"value="SELECT * FROM (SELECT t.*, ROWNUM rownum_ FROM (SELECT * FROM t_order ORDER BY order_id DESC) t WHERE t.order_id <= %s AND ROWNUM <= %s) row_ WHERE row_.rownum_ >= %s"type="Oracle"/>
<sqlid="assertSelectSingleTablePaginationWithRowNumberAndRangeWithEqualDiffOrder"value="SELECT * FROM (SELECT t.*, ROWNUM rownum_ FROM (SELECT * FROM t_order ORDER BY order_id DESC) t WHERE ROWNUM <= %s AND t.order_id <= %s) row_ WHERE row_.rownum_ >= %s"type="Oracle"/>
<sqlid="assertSelectLeftJoinAndLimit"value="SELECT i.* FROM t_order o LEFT JOIN t_order_item i ON o.order_id = i.order_id WHERE 1=1 AND o.user_id = %s AND o.order_id = %s ORDER BY i.item_id LIMIT %s, %s"type="H2,MySQL"/>
<sqlid="assertSelectPaginationWithGroupByAndOrderBy"value="SELECT i.user_id FROM `t_order` o JOIN `t_order_item` i ON o.user_id = i.user_id AND o.order_id = i.order_id WHERE o.`user_id` IN (%s, %s) AND o.`order_id` BETWEEN %s AND %s GROUP BY i.item_id ORDER BY i.item_id DESC LIMIT %s, %s"type="MySQL,H2"/>
<sqlid="assertSelectPaginationWithDiffGroupByAndOrderBy"value="SELECT i.user_id FROM `t_order` o JOIN `t_order_item` i ON o.user_id = i.user_id AND o.order_id = i.order_id WHERE o.`user_id` IN (%s, %s) AND o.`order_id` BETWEEN %s AND %s GROUP BY i.user_id ORDER BY i.item_id DESC LIMIT %s, %s"type="MySQL,H2"/>
<sqlid="assertSelectPaginationWithTopAndGroupByAndOrderBy"value="SELECT * FROM (SELECT TOP %s row_number() OVER (ORDER BY i.item_id DESC) AS rownum_, i.item_id, o.order_id as order_id, o.status as status, o.user_id as user_id FROM t_order o JOIN t_order_item i ON o.user_id = i.user_id AND o.order_id = i.order_id WHERE o.user_id IN (%s, %s) AND o.order_id BETWEEN %s AND %s GROUP BY i.item_id) AS row_ WHERE row_.rownum_ > %s"type="SQLServer"/>
<sqlid="assertSelectPaginationWithTopAndGroupByAndOrderByAndParentheses"value="SELECT * FROM (SELECT TOP (%s) row_number() OVER (ORDER BY i.item_id DESC) AS rownum_, i.item_id, o.order_id as order_id, o.status as status, o.user_id as user_id FROM t_order o JOIN t_order_item i ON o.user_id = i.user_id AND o.order_id = i.order_id WHERE o.user_id IN (%s, %s) AND o.order_id BETWEEN %s AND %s GROUP BY i.item_id) AS row_ WHERE row_.rownum_ > %s"type="SQLServer"/>
<sqlid="assertSelectPaginationWithTopAndDiffGroupByAndOrderBy"value="SELECT * FROM (SELECT TOP %s row_number() OVER (ORDER BY i.item_id DESC) AS rownum_, i.item_id, o.order_id as order_id, o.status as status, o.user_id as user_id FROM t_order o JOIN t_order_item i ON o.user_id = i.user_id AND o.order_id = i.order_id WHERE o.user_id IN (%s, %s) AND o.order_id BETWEEN %s AND %s GROUP BY i.user_id ) AS row_ WHERE row_.rownum_ > %s"type="SQLServer"/>
<sqlid="assertSelectPaginationWithTopAndDiffGroupByAndOrderByAndParentheses"value="SELECT * FROM (SELECT TOP (%s) row_number() OVER (ORDER BY i.item_id DESC) AS rownum_, i.item_id, o.order_id as order_id, o.status as status, o.user_id as user_id FROM t_order o JOIN t_order_item i ON o.user_id = i.user_id AND o.order_id = i.order_id WHERE o.user_id IN (%s, %s) AND o.order_id BETWEEN %s AND %s GROUP BY i.user_id ) AS row_ WHERE row_.rownum_ > %s"type="SQLServer"/>
<sqlid="assertSelectPaginationWithRowNumberAndGroupByAndOrderBy"value="SELECT * FROM (SELECT row_.*, rownum rownum_ FROM (SELECT order0_.order_id as order_id, order0_.status as status, order0_.user_id as user_id FROM t_order order0_ JOIN t_order_item i ON order0_.user_id = i.user_id AND order0_.order_id = i.order_id WHERE order0_.user_id IN (%s, %s) AND order0_.order_id BETWEEN %s AND %s GROUP BY i.item_id ORDER BY i.item_id DESC) row_ WHERE rownum <= %s) t WHERE t.rownum_ > %s"type="Oracle"/>
<sqlid="assertSelectPaginationWithRowNumberAndDiffGroupByAndOrderBy"value="SELECT * FROM (SELECT row_.*, rownum rownum_ FROM (SELECT order0_.order_id as order_id, order0_.status as status, order0_.user_id as user_id FROM t_order order0_ JOIN t_order_item i ON order0_.user_id = i.user_id AND order0_.order_id = i.order_id WHERE order0_.user_id IN (%s, %s) AND order0_.order_id BETWEEN %s AND %s GROUP BY i.user_id ORDER BY i.item_id DESC) row_ WHERE rownum <= %s) t WHERE t.rownum_ > %s"type="Oracle"/>
<sqlid="assertSelectWithInnerJoinAndRelatedWithTableAlias"value="SELECT i.* FROM t_order o INNER JOIN t_order_item i ON o.order_id = i.order_id WHERE o.order_id = %s"/>
<sqlid="assertSelectWithInnerJoinAndRelatedWithTableName"value="SELECT t_order_item.* FROM t_order JOIN t_order_item ON t_order.order_id = t_order_item.order_id WHERE t_order.order_id = %s"/>
<sqlid="assertSelectWithJoinUsing"value="SELECT i.* FROM t_order o JOIN t_order_item i USING(order_id) WHERE o.order_id = %s"type="MySQL,PostgreSQL"/>
<sqlid="assertSelectSubQuerySingleTableWithParentheses"value="SELECT t.* FROM (SELECT o.* FROM t_order o WHERE o.order_id IN (%s, %s)) t ORDER BY t.order_id"type="MySQL,PostgreSQL,SQLServer,Oracle"/>
<!-- TODO cannot pass,add later
<sql id="assertSelectSubQueryMultiTableWithParentheses" value="SELECT t.* FROM (SELECT i.* FROM t_order o, t_order_item i WHERE o.order_id = i.order_id and o.order_id IN (%s, %s)) t ORDER BY t.item_id" type="SQLServer,Oracle" />
-->
<sqlid="assertSelectSubQueryWithOrderBy"value="SELECT COUNT(1) as orders_count FROM (SELECT * FROM t_order ORDER BY order_id desc) t"type="MySQL,PostgreSQL,Oracle"/>
<sqlid="assertSelectSubQueryWithGroupBy"value="SELECT COUNT(1) as order_items_count FROM (SELECT order_id FROM t_order_item GROUP BY order_id) t"type="MySQL,PostgreSQL,Oracle"/>
<sqlid="assertSelectDistinctWithSingleTable"value="SELECT DISTINCT item_id FROM t_order_item ORDER BY item_id"/>
<sqlid="assertSelectIntoSQL"value="SELECT * INTO t_order_new FROM t_order"/>
<sqlid="assertSelectWindow"value="SELECT * FROM t_order WINDOW w AS (PARTITION BY order_id)"type="PostgreSQL"/>
<sqlid="assertSelectFetch"value="SELECT * FROM t_order FETCH NEXT 1 ROW ONLY"type="PostgreSQL"/>
<sqlid="assertSelectFor"value="SELECT * FROM t_order FOR UPDATE OF t_order"type="PostgreSQL"/>
<sqlid="assertSelectRowNumberAndPartition"value="SELECT ROW_NUMBER() OVER(PARTITION BY user_id ORDER BY order_id ASC) AS row_, user_id, order_id FROM t_order"type="SQLServer"/>
<sqlid="assertSelectWithStartWith"value="SELECT * FROM t_order_item START WITH order_id = %s CONNECT BY NOCYCLE PRIOR item_id=item_id-1"type="Oracle"/>
<sqlid="assertSelectWithModelIn"value="SELECT order_id_value,order_item_id_value FROM (select 1001 as order_id_value, 100001 as order_item_id_value from dual) MODEL RETURN UPDATED ROWS DIMENSION BY(order_item_id_value) MEASURES(order_id_value) RULES(order_id_value[1] = 10001)"type="Oracle"/>