写语句时这样就可以了 <select id="selectTotal" resultType="java.util.Map" parameterType="java.util.Map" statementType="STATEMENT"> select SUM(money_amount) as sumM,count(*) as countO from ${tableName} where the_super_id…
-- 因为定义游标所用的表名是变量,所以采用EXEC(定义语句) 的方式来声明游标set @StrSql='DECLARE Ba_Cursor CURSOR FOR (SELECT a.PhoneId from '+@TABLE+' a left JOIN tj_machine_log b on a.PhoneId=b.PhoneId where a.CreateTime BETWEEN '''+CONVERT(varchar(100), @STARTTIME, 20)+''' AND '''+…
mybatis里#{}与${}的用法: 在动态sql解析过程,#{}与${}的效果是不一样的: #{ } 解析为一个 JDBC 预编译语句(prepared statement)的参数标记符. 如以下sql语句 select * from user where name = #{name}; 会被解析为: select * from user where name = ?; 可以看到#{}被解析为一个参数占位符?. ${ } 仅仅为一个纯碎的 string 替换,在动态 SQL 解析阶段将会进行…
今天遇到个很奇葩的问题,在写一个应用程序时需要查询表的数据,但是表名是全数字的,直接查询会报错,于是想到给111的表名加一对中括号:即——>select * from [111] 刚开始还是报错,于是找同事帮忙,他用了一个语法:select * from [pd].[dbo].[111] 这个语法时完整的表名 于是解决了这个问题,后来我又去测试select * from [111] 这句话,竟然也可以用了- -…
之前在用MyBatis的时候没用过表名作为参数,最近使用到了. 基于注释使用MyBatis的Dao层代码如下: @Repository public interface Base1102Dao { @Select(value = "Select * from ${table_name} order by id") @ResultType(HashMap.class) List<HashMap> getAll(@Param("table_name") St…
ORACLE 不能使用变量来作为列名 和表名 一下是个人的一些验证: DECLARE ename1 emp.ename%TYPE ; TYPE index_emp_type ) INDEX BY PLS_INTEGER ; index_emp index_emp_type ; BEGIN index_emp() := 'e.ename'; ) ; ) || ' from emp e where e.empno=7369' into ename1 ; dbms_output.put_line(in…
原文地址:http://blog.csdn.net/business122/article/details/7528859 今天写一个对数据库做快照的存储过程,用到了动态表名,突然发现MYSQL不支持直接使用变量做表名,GOOGLE了下,采用以下方法: ); SET dbName = 'aaa'; SET @STMT :=CONCAT("CREATE TABLE ",dbName," SELECT id from gamedb;"); PREPARE STMT FR…