SELECT m1.id AS id, ( CASE WHEN (m2.id = 0 OR m2.id IS NULL) THEN 0 ELSE m2.id END ) AS pId, m1. NAME AS NAME, ( CASE WHEN (m2.id = 0 OR m2.id IS NULL) THEN 'true' ELSE 'false' END ) as isOpen FROM menu_daihou m1 LEFT JOIN menu_daihou m2 ON m1.pcode = m2. CODE ORDER BY m1.id ASC </select>

时间: 2024-04-06 13:29:14 浏览: 13
这是一条 SQL 查询语句,用于查询菜单表中的数据,并按照 id 升序排列。查询结果包括以下字段: - id:菜单的唯一标识符。 - pId:菜单的父级菜单的唯一标识符,如果该菜单没有父级菜单,则为 0。 - NAME:菜单的名称。 - isOpen:表示该菜单是否为父级菜单,如果是则为 true,否则为 false。 该查询语句使用了左连接(LEFT JOIN),查询菜单表(menu_daihou)中的数据,并通过 pcode 字段与自身进行关联,来获取菜单的父级菜单信息。同时,使用了 CASE WHEN 语句来判断当前菜单是否为父级菜单,并将结果返回给 isOpen 字段。最后使用 ORDER BY 子句按照 id 升序排列查询结果。
相关问题

SELECT m1.id AS id, m1.pcode as pcode, m1.icon AS icon, ( CASE WHEN (m2.id = 0 OR m2.id IS NULL) THEN 0 ELSE m2.id END ) AS parentId, m1.NAME as name, m1.url as url, m1.levels as levels, m1.ismenu as ismenu, m1.num as num FROM menu_daihou m1 LEFT JOIN menu_daihou m2 ON m1.pcode = m2. CODE INNER JOIN ( SELECT ID FROM menu_daihou WHERE ID IN ( SELECT menuid FROM relation_daihou rela WHERE rela.roleid IN <foreach collection="list" index="index" item="i" open="(" separator="," close=")"> #{i} </foreach> ) ) m3 ON m1.id = m3.id and (m1.pcode in ('mxgl','xhcd_namelist','mxtj','bmxgl','kouche') or m1.code in ('mxgl','xhcd_namelist','xhcd-mid','mxtj','bmxgl','kouche') or m1.`name` = '档案管理') where m1.ismenu = 1 order by levels,num asc </select>

这是一个 SQL 查询语句,用于在 `menu_daihou` 表和 `relation_daihou` 表中获取菜单信息,并按照 `levels` 和 `num` 排序返回结果。语句中用到了左连接、内连接和嵌套查询等 SQL 的基本操作。 具体来说,这个查询语句中的 `<foreach>` 标签是 MyBatis 框架的特殊语法,用于将 Java 中的 List 参数转换为 SQL 语句中的 IN 表达式。在这个查询中,该标签用于将传入的 `list` 参数中的值作为 `relation_daihou` 表中 `roleid` 的查询条件。 该查询语句的具体功能是:获取 `menu_daihou` 表中 `ismenu` 字段为 1 的菜单信息,同时根据传入的 `list` 参数中的 `roleid` 的值,查询关联的菜单信息。同时,还需要满足 `m1.pcode` 字段在指定的值列表中,或者 `m1.code` 字段在指定的值列表中,或者 `m1.name` 字段的值为指定的字符串。 结果中的字段包括菜单 id、菜单编码、菜单图标、父级菜单 id、菜单名称、菜单链接地址、菜单层级、是否为菜单、菜单显示顺序等。其中,`parentId` 的值是根据 `m1.pcode` 字段在 `menu_daihou` 表中查询得到的 `m2.id`,如果查询结果为空,则赋值为 0。

case when a.id='1' from

It looks like your SQL statement is incomplete. The `CASE` statement is used to conditionally return a value based on one or more conditions. However, in your example, you only have the beginning of the statement (`CASE WHEN a.id='1' FROM`). Assuming you want to return a specific value when `a.id` is equal to `'1'`, the correct syntax would be: ``` SELECT CASE WHEN a.id = '1' THEN 'Value when ID is 1' ELSE 'Value when ID is not 1' END as my_column FROM my_table a ``` In this example, the `CASE` statement checks if `a.id` is equal to `'1'`. If it is, the value `'Value when ID is 1'` is returned. If it is not, the value `'Value when ID is not 1'` is returned. The result is returned as a column named `my_column` from the table `my_table` (which you will need to replace with your actual table name).

相关推荐

最新推荐

recommend-type

Vue.js仿Select下拉框效果

主要为大家详细介绍了Vue.js仿 Select下拉框效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

SQL集合函数中case when then 使用技巧

我们都知道SQL中适用case when then来转化数据库中的信息 比如 select (case sex when 0 then '男' else '女' end) AS sex from studentInfo
recommend-type

[Oracle] dbms_metadata.get_ddl 的使用方法总结

以下是对Oracle中dbms_metadata.get_ddl的用法进行了详细的分析介绍,需要的朋友参考下
recommend-type

layui: layer.open加载窗体时出现遮罩层的解决方法

今天小编就为大家分享一篇layui: layer.open加载窗体时出现遮罩层的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
recommend-type

蜂鸣器学习笔记,描述了分类、使用

蜂鸣器学习笔记,描述了分类、使用
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB柱状图在信号处理中的应用:可视化信号特征和频谱分析

![matlab画柱状图](https://img-blog.csdnimg.cn/3f32348f1c9c4481a6f5931993732f97.png) # 1. MATLAB柱状图概述** MATLAB柱状图是一种图形化工具,用于可视化数据中不同类别或组的分布情况。它通过绘制垂直条形来表示每个类别或组中的数据值。柱状图在信号处理中广泛用于可视化信号特征和进行频谱分析。 柱状图的优点在于其简单易懂,能够直观地展示数据分布。在信号处理中,柱状图可以帮助工程师识别信号中的模式、趋势和异常情况,从而为信号分析和处理提供有价值的见解。 # 2. 柱状图在信号处理中的应用 柱状图在信号处理
recommend-type

解释这行代码 c = ((double)rand() / RAND_MAX) * (a + b - fabs(a - b)) + fabs(a - b);

这行代码是用于生成 a 和 b 之间的随机数。首先,它使用 rand() 函数生成一个 [0,1) 之间的随机小数,然后将这个小数乘以 a、b 范围内的差值,再加上 a 和 b 中的较小值。这可以确保生成的随机数大于等于 a,小于等于 b,而且不会因为 a 和 b 之间的差距过大而导致难以生成足够多的随机数。最后,使用 fabs() 函数来确保计算结果是正数。
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。