HiSql 实现case语法操作 新一代无实体ORM框架
2021-10-14 10:56
211 查看
HiSql 实现case语法操作
hisql.net 官网(文档编写中) 在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支持的库都是以下同样的写法)
- When("TabStatus>1") 支持的操作符 >,<,>=,<=,!=,<> 如果操作符不在此列HiSql将会检测语法错误
- 当是字段是字符串时 值加下加单引号如 When("TabName='TabName'")
- 当然也可以这样写 .When("0") 这里的意思与 When("TabStatus=0")
注意事项
- 当出现语法错误时HiSql会自动检测并报出错误异常
- 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"
相关文章推荐
- 通过SQL case when语法实现统计SQL的纵表转横向
- Python中Swithch Case语法实现
- 轻量级ORM框架Dapper应用五:使用Dapper实现Join操作
- hisql 新一代无实体ORM使用第一步 hisql安装使用
- NHibernate利用Mindscape.NHibernateModelDesigner实现数据库与实体之间的转换及操作
- 轻量级ORM框架Dapper应用二:使用Dapper实现CURD操作
- 基于半边数据结构(翼边数据结构)的Eular操作来实现扫成 通过OpenGL进行CAD实体建模 经测试可直接运行
- List(T) 的实现实体对象操作,之Find FindAll Contains ForEach Sort
- Python中Swithch Case语法实现
- Entity Framework 实体框架的形成之旅--基类接口的统一和异步操作的实现(3)
- NHibernate利用Mindscape.NHibernateModelDesigner实现数据库与实体之间的转换及操作
- Entity Framework 实体框架的形成之旅--基类接口的统一和异步操作的实现(3)
- NHibernate利用Mindscape.NHibernateModelDesigner实现数据库与实体之间的转换及操作
- 《MVC + EF实现增删改查》——操作EF实体详解与删除
- 轻量级ORM框架Dapper应用三:使用Dapper实现In操作
- Python中Swithch Case语法实现
- 客户端如何调用 Rational CM API 实现 Rational ClearCase 的相关操作
- 反射实现所有实体的增删改操作(jQuery+json)
- Python中Swithch Case语法实现
- ibatis实现对User实体的增删改查操作-第二节