首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SQL--动态列名

前几天遇到一个问题,就是查询时,列名是不固定的,是动态的,是一个传递过来的变量,简写如下: select entName,entCode,province from ent_table where...province=#{province} and #{type} = 1 这个type,是这个表的列名,但是不固定,具体是哪一列,需要看前面传递过来的是什么,当时用上面的这个语句,怎么都不行,后来,...猛然想起来,在mybatis中,#和$的使用时有区别的,弄清了这个区别,就知道这个语句该怎么写了 1....因为传递的东西,被当做字符串拼接到了sql语句中,而$是在向数据库发出sql之前去拼接好sql再提交给数据库执行。 4.一般情况下推荐使用#,能用#就别用$,因为这样安全。...动态拼接sql中动态组成表名,要通过${}将表名传入sql中。  动态拼接sql中动态传入列名,要通过${}将列名传入sql中。 因此,上面的sql,根据上面的第五条,简单修改,即可。

2.2K40
您找到你想要的搜索结果了吗?
是的
没有找到

使用HUE执行多条SQL

HUE是由Cloudera贡献到apache社区的一款hadoop ui工具,可以实现对hadoop的管理,连接查询系统,例如Hive,Impala等,使用起来非常方便。...但是,当我们使用HUE提交SQL的时候,默认是只会执行最后一条SQL的。...因此,当我们执行如下的SQL的时候,就会报错: 会提示表不存在(图中的错误是Impala查询系统抛出的日志),因为HUE默认只会执行最后一条SQL。那么,如果我们要执行多条SQL怎么办呢?...很简单,只要选中对话框中的所有SQL,然后点击运行就可以顺序执行所有的SQL,如下所示: image.png 我们可以看到,3条SQL都被成功执行了,在“运行”按钮的上方可以看到显示的是3/3,表示执行进度...值得注意的是,这些批量执行SQL,都是在同一个session内完成的。也就是说,如果在第一条SQL中设置了session级别的参数,会影响后面执行SQL

2.1K40

count(1)、count(*) 与 count(列名) 的执行区别

,对表作分析之后,使用count(1)还要比使用count(*)用时多了!...所以没必要去count(1),用count(*),sql会帮你完成优化的 因此:count(1)和count(*)基本没有差别!...转自:http://www.cnblogs.com/Dhouse/p/6734837.html count(*) 和 count(1)和count(列名)区别 执行效果上: count(*)包括了所有的列...,相当于行数,在统计结果的时候,不会忽略列值为NULL count(1)包括了忽略所有列,用1代表代码行,在统计结果的时候,不会忽略列值为NULL count(列名)只包括列名那一列,在统计结果的时候...执行效率上: 列名为主键,count(列名)会比count(1)快 列名不为主键,count(1)会比count(列名)快 如果表多个列并且没有主键,则 count(1) 的执行效率优于 count

1.6K30

count(1)、count(*) 与 count (列名) 的执行区别

执行效果: 1、count(1) and count(*) 当表的数据量大些时,对表作分析之后,使用count(1)还要比使用count(*)用时多了!...所以没必要去count(1),用count(*),sql会帮你完成优化的 因此:count(1)和count(*)基本没有差别!...转自:http://www.cnblogs.com/Dhouse/p/6734837.html count(*) 和 count(1)和count(列名)区别 执行效果上: count(*)包括了所有的列...,相当于行数,在统计结果的时候,不会忽略列值为NULL count(1)包括了忽略所有列,用1代表代码行,在统计结果的时候,不会忽略列值为NULL count(列名)只包括列名那一列,在统计结果的时候...执行效率上: 列名为主键,count(列名)会比count(1)快 列名不为主键,count(1)会比count(列名)快 如果表多个列并且没有主键,则 count(1) 的执行效率优于 count

2.9K10

dolphinscheduler使用impala shell执行sql

一、背景 因为dolphinscheduler工具sql组件不支持impala数据源,只能折衷方法通过shell来执行impala sql。...【工作流定义】-【创建工作流】-【shell组件】(编辑内容&资源里选择要执行的文件)-【保存】-【上线】-【执行】 shell内容: impala-shell -f source/filename.sql...示例图片: 2.impala shell -q 'sql' 操作步骤: 【工作流定义】-【创建工作流】-【shell组件】(编辑内容)-【保存】-【上线】-【执行】 shell内容: impala-shell...正确使用姿势如下: 错误案例: impala-shell -q “select room_id,`timestamp` from db_name.table_name” 正确案例: impala-shell...-q 'select room_id,`timestamp` from db_name.table_name' 2.特殊字符转义 例如:使用双引号时`` 要转义成\`\`,执行才不会报错

25510

使用Druid监控SQL执行状态

其实,我采用Druid替换其它连接池,最关键的一个理由是Druid有对SQL执行的监控统计功能。 本文就是来看看看Druid的监控功能。...比如:无法看到SQL监控TAB上的数据。 ? URI监控TAB中,无法获取JDBC相关的SQL执行信息。 ? 如何展示出这些数据呢? 解决的办法就是配置StatFilter。...在URI监控页,可以清楚地看到执行某个动作,关联SQL有多少,请求次数、执行时间、并发数等信息。 StatFilter可以和其他的Filter配置使用,比如, 与log4j组合使用。...记录 StatFilter属性slowSqlMillis用来配置SQL慢的标准,执行时间超过slowSqlMillis的就是慢。...因为是默认状态,没有配置任何拦截的属性信息,所以,SQL执行都在白名单中展示出来了。 2.6 配置Spring和jdbc的关联 最后,还有一个Tab的内容没有展示,那就是Spring监控。

6.2K50

案例解析:count(1)、count(*) 与 count(列名) 的执行区别

1、count(1) and count(*) 当表的数据量大些时,对表作分析之后,使用count(1)还要比使用count(*)用时多了!...所以没必要去count(1),用count(),sql会帮你完成优化的 因此:count(1)和count(*)基本没有差别!...count(*) 和 count(1)和count(列名)区别 执行效果上 count(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略列值为NULL count(1)包括了忽略所有列,用1代表代码行...,在统计结果的时候,不会忽略列值为NULL count(列名)只包括列名那一列,在统计结果的时候,会忽略列值为空(这里的空不是只空字符串或者0,而是表示null)的计数,即某个字段值为NULL时,不统计...执行效率上 列名为主键,count(列名)会比count(1)快 列名不为主键,count(1)会比count(列名)快 如果表多个列并且没有主键,则 count(1) 的执行效率优于 count(*)

1.1K10

如何使用 xorm 在执行前改写 SQL

举个具体的例子:有些数据库中间件支持在 SQL 语句之前添加注释来实现读写分离 支持在SQL语句前加上/*FORCE_MASTER*/或/*FORCE_SLAVE*/强制指定这条SQL的路由方向 所以当我们使用...Hook 然后使用 BeforeProcess 方法,在执行 SQL 前,替换了 ContextHook 其中的 SQL 代码非常简单,我就不展示了,然后调试了半天,发现打印的 SQL 已经被改写了,...但实际执行却还是原来的 SQL。...问题是,Event 无法获取到需要执行SQL,事件仅能拿到需要执行的条件,而还没有解析成 SQL,所以这个方案也不行 尝试 3 Filter 于是我翻遍了源码,看看源码之前到底有什么操作能帮助我来完成这件事...我发现在 SQL 执行之前,只有它能获取到 SQL 并改写,并且改写后的 SQL 能被执行。但,你从上面的接口也看到了,Filter 除了 SQL,其他什么也没有。

27720

使用 EXPLAIN PLAN 获取SQL语句执行计划

SQL语句的执行 计划则决定了SQL语句将会采用何种方式从数据库提取数据并返回给客户端,本文描述的将是如何通过EXPLAIN PLAN 获取SQL语句执行计划来获 取SQL语句的执行计划。...一、获取SQL语句执行计划的方式      1. 使用explain plan 将执行计划加载到表plan_table,然后查询该表来获取预估的执行计划      2....启用执行计划跟踪功能,即autotrace功能      5. 使用PL/SQL Developer提供的获取执行计划方法      6....使用Toad工具来获取执行计划  下面主要讨论使用explain plan获取执行计划的方法 二、explain plan工作实质、前提及操作方法      1....语句执行计划   可以通过Oracle提供的SQl语句来获得当前会话最后一条SQL语句的执行计划    utlxpls.sql   -->用于查看串行执行计划    utlxplp.sql   --

1.1K50

执行COUNT(1)、COUNT(*) 与 COUNT(列名) 到底有什么区别?

count(1) and count(*) 从执行计划来看,count(1)和count(*)的效果是一样的。...当表的数据量大些时,对表作分析之后,使用count(1)还要比使用count(*)用时多! 当数据量在1W以内时,count(1)会比count(*)的用时少些,不过也差不了多少。...所以没必要去count(1),使用count(*),sql会帮你完成优化的 因此:在有聚集索引时count(1)和count(*)基本没有差别!...3. count(*) 和 count(1)和count(列名)区别 执行效果上: count(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略为NULL的值。...执行效率上: 列名为主键,count(列名)会比count(1)快 列名不为主键,count(1)会比count(列名)快 如果表多个列并且没有主键,则 count(1 的执行效率优于 count

69530

SQL|语句执行逻辑

01 SQL SQL,脚本查询语言,处理代码的顺序不是按照脚本语言的顺序,这点是不同于其他编程语言的最明显特征。...SQL语言常见的比如,Mysql,HiveQL,Oracle等,虽然语法上存在一些差异,但它们在解释查询脚本上,尤其是在解析语句执行顺序上具有共性。...如果将脚本语言分解为一系列的语句,那么这些语句的先后执行顺序是怎样的呢? 这篇文章,主要总结SQL语句的执行顺序。...02 Select语句执行顺序 select查询语句的执行顺序,可以看出首先执行FROM子句,最后执行ORDER BY 执行顺序: (1) FROM (2) ON (3) JOIN (4) WHERE...FROM:对FROM子句中的前两个表执行笛卡尔积(交叉联接),生成虚拟表VT1,选择相对小的表做基础表。 ON:对VT1应用ON筛选器,只有那些使为真才被插入到VT2。

3.1K80
领券