HiSql 实现case语法操作

在SqlServer,Oralce,Hana,PostGreSql,MySql 这些数据都支持SQL case语法,平常在实现业务开发中也会常用到,那么HiSql对于case语法也提供了比较便捷的写法,HiSql将会自动适配不同的数据库,开发人员不用管具体哪一种的SQL语法。

这是HiSql样例写法代码

HiSql提供的语法只要开发人员本身对SQL有一定的基础,基本上上手都比较容易

    string _sql=sqlClient.Query("Hi_TabModel").Field("TabName as tabname").
Case("TabStatus")
.When("TabStatus>1").Then("'启用'")
.When("0").Then("'未激活'")
.Else("'未启用'")
.EndAs("Tabs", typeof(string))
.Field("IsSys")
.ToSql()
;

When方法中的字条件语法 (HiSql支持的库都是以下同样的写法)

  1. When("TabStatus>1") 支持的操作符 >,<,>=,<=,!=,<> 如果操作符不在此列HiSql将会检测语法错误
  2. 当是字段是字符串时 值加下加单引号如 When("TabName='TabName'")
  3. 当然也可以这样写 .When("0") 这里的意思与 When("TabStatus=0")

注意事项

  1. 当出现语法错误时HiSql会自动检测并报出错误异常
  2. Case语法不支持嵌套Case语法(日常使用这样会有性能问题)

HiSql生成的原生SqlServer 代码

select [Hi_TabModel].[TabName] as [tabname],case
when [TabStatus] > 1 then '启用'
when [TabStatus] = 0 then '未激活'
else '未启用'
end as [Tabs]
,[Hi_TabModel].[IsSys] from [Hi_TabModel] as [Hi_TabModel]

HiSql生成的原生MySql 代码

select `Hi_TabModel`.`TabName` as `tabname`,case
when `TabStatus` > 1 then '启用'
when `TabStatus` = 0 then '未激活'
else '未启用'
end as `Tabs`
,`Hi_TabModel`.`IsSys` from `Hi_TabModel` as `Hi_TabModel`

HiSql生成的原生HANA 代码

SELECT "HI_TABMODEL"."TABNAME" AS "TABNAME",CASE
WHEN "TABSTATUS" > 1 THEN '启用'
WHEN "TABSTATUS" = 0 THEN '未激活'
ELSE '未启用'
END AS "TABS"
,"HI_TABMODEL"."ISSYS" FROM "HONEBI"."HI_TABMODEL" AS "HI_TABMODEL"

HiSql生成的原生ORACLE 代码

SELECT HI_TABMODEL."TABNAME" AS "TABNAME",CASE
WHEN "TABSTATUS" > 1 THEN '启用'
WHEN "TABSTATUS" = 0 THEN '未激活'
ELSE '未启用'
END AS "TABS"
,HI_TABMODEL."ISSYS" FROM HI_TABMODEL HI_TABMODEL

HiSql生成的原生PostGreSql 代码

select "Hi_TabModel"."TabName" as "tabname",case
when "TabStatus" > 1 then '启用'
when "TabStatus" = 0 then '未激活'
else '未启用'
end as "Tabs"
,"Hi_TabModel"."IsSys" from "Hi_TabModel" as "Hi_TabModel"

HiSql 实现case语法操作 新一代无实体ORM框架的更多相关文章

  1. hisql 新一代无实体ORM使用第一步 hisql安装使用

    安装 github hisql 最新源码下载 也可以通过nuget安装 注意:HiSql仅支持.net5或以上环境 选择您需要支持的数据库对应的支持包进行安装 本例使用sqlserver进行演示,请安 ...

  2. case语法练习脚本之判断

    case语法练习脚本之判断 #!/bin/bash read -p "请输入一个字符,并按enter键确认:" key case "$key" in [a-z] ...

  3. bash 中的case语法

    CASE语法格式备忘 case $variable-name in pattern1) command1 ... .... commandN ;; pattern2|pattern3|pattern4 ...

  4. 【mybatis】mybatis查询 结果 用map接收,无实体接收 + 关联子表 一并返回主子表的结果

    如果后台程序没有实体对应mysql的数据表. 而mybatis想要查询mysql这个数据表的数据,返回给应用程序. 应用程序该如何接收? =============================== ...

  5. Shell case语法结构解析

    case ... esac 与其他语言中的 switch ... case 语句类似,是一种多分枝选择结构,每个 case 分支用右圆括号开始,用两个分号 ;; 表示 break,即执行结束,跳出整个 ...

  6. Verilog RTL优化策略(一):推荐使用assign语法替代if-else和case语法

    参考 <手把手教你设计CPU--RISC-V处理器篇> 先给出不用if-else和case的原因 Verilog中的if-else和case语法存在两大缺点: 不能传播不定态X: 会产生优 ...

  7. hisql ORM 框架研究(国内第一个支持HANA的ORM框架)

    HiSql 操作说明文档 V1.0 下一代ORM框架 国内第一个支持HANA的ORM框架 hisql源码下载 git clone https://github.com/tansar/HiSql.git ...

  8. .NET ORM框架HiSql实战-第二章-使用Hisql实现菜单管理(增删改查)

    一.引言 上一篇.NET ORM框架HiSql实战-第一章-集成HiSql 已经完成了Hisql的引入,本节就把 项目中的菜单管理改成hisql的方式实现. 菜单管理界面如图: 二.修改增删改查相关代 ...

  9. ORM框架-VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG】4.5

    摘要:VB/C#.Net实体代码生成工具(EntitysCodeGenerate)[ECG]是一款专门为.Net数据库程序开发量身定做的(ORM框架)代码生成工具,所生成的程序代码基于OO.ADO.N ...

随机推荐

  1. 【Linux】【Shell】【text】awk

    基本用法:gawk [options] 'program' FILE ...             program: PATTERN{ACTION STATEMENTS}               ...

  2. jQuery - 按回车键触发跳转

    键盘事件有三种: keyup:按键按下去,抬上来后,事件才生效 (推荐) keydown:按键按下去就生效 keypress:与 keydown 事件类似,当按钮被按下时,会发生该事件,与 keydo ...

  3. Spring Boot 自动扫描组件

    使用@ComponentScan自动扫描组件 案例准备 1.创建一个配置类,在配置类上添加 @ComponentScan 注解.该注解默认会扫描该类所在的包下所有的配置类,相当于之前的 <con ...

  4. Mysql配置文件 4c8g优化

    目录 一.说明 二.配置 一.说明 以下配置适合4核8G及以下的配置,会让性能稍微提高1/3左右. 测试语句 mysqlslap -uroot -p123456 --concurrency=100 - ...

  5. gogs报错解决合集

    目录 一.在组织中添加成员,一直显示普通用户 一.在组织中添加成员,一直显示普通用户 组织是公司,团队是公司中的不同队伍.例如A团队设置为加入就有管理员权限,那加入就有管理员. 但在组织成员那一栏中加 ...

  6. 从Rest到Graphql

    一.引言 ok,如图所示,我在去年曾经写过一篇文章<闲侃前后端分离的必要性>.嗯,我知道肯定很多人没看过.所以我做一个总结,其实啰里八嗦了一篇文章,就是想说一下现在的大型互联网项目一般是如 ...

  7. Java(运算符)

    运算符 Java语言支持的运算符: 算术运算符:+,-,*,/,%(取余.求余)[模运算],++(自增),--(自减) 赋值运算符:= 关系运算符:>,<,>=(大于等于),< ...

  8. 【web】docker复现环境踩坑

    在先知看到有师傅发了个学习 P 牛的代码审计的文章,在 github 上下下来复现环境,结果 docker 各种问题,气死 安装 docker-compose:pip install -i https ...

  9. 金山云主机centos7.4根目录挂载文件书写错误无法进入系统解决办法

    由于/etc/fstab写错,根目录无法挂载,开机提示如下 处理办法: 根据提示输入root密码: 执行mount -o remount,rw /重新挂载根目录. vim 修改挂载文件 reboot重 ...

  10. python 学生信息管理系统

    python与数据库的例子 初始化数据库 链接数据库创建库和表并插入数据 init.py import pymysql sql_base='create database school;' sql_t ...