Java 上次添加空值时出现问题
在以下查询中添加“NULLS LAST”时,我得到以下异常: 原因:com.microsoft.sqlserver.jdbc.SQLServerException:未为参数编号11设置该值Java 上次添加空值时出现问题,java,sql-server,spring-boot,jpql,Java,Sql Server,Spring Boot,Jpql,在以下查询中添加“NULLS LAST”时,我得到以下异常: 原因:com.microsoft.sqlserver.jdbc.SQLServerException:未为参数编号11设置该值 如果我最后删除空值,一切正常 如果我删除CASE WHEN code and order,只删除一个特定列,那么它最后会使用null,但我需要CASE WHEN上的所有列 @Query(“从ClassSpecificationTableEntity c中选择c” +“左加入c.o” +“左加入c.d域” +其
@Query(“从ClassSpecificationTableEntity c中选择c”
+“左加入c.o”
+“左加入c.d域”
+其中ISNULL(c.classStructure.classification.description“”)类似于:SEARCH
+或ISNULL(c.classStructure.description“”),如:SEARCH
+或ISNULL(d.description,“”),如:SEARCH
+或ISNULL(o.description,“”),如:SEARCH
+或ISNULL(c.measurementUnit“”),如:SEARCH
+或ISNULL(c.defaultValue“”),如:SEARCH
+或ISNULL(c.dataType“”),如:SEARCH
+或ISNULL(c.工具提示“”),如:搜索
+“订购人”
+“案例:订购人”+
“当为0时,则为c.classStructure.classification.description”+
“当1时,则c.AssetTribid”+
“当2之后是c.dataType”+
“当3时,则c.measurementUnit”+
“当4之后是c.domain.description”+
“当5时,则c.owner.description”+
“当为6时,则c.defaultValue”+
“当7时,则c.工具提示”+
“结束描述最后为空”
)
Page findByLikeSearchDESC(@Param(value=“SEARCH”)最终字符串searchCrit,最终可分页Pageable,@Param(value=“ORDERBY”)最终字符串ORDERBY);
没有空值,最后的语法是T-SQL
如果要最后对NULL
值进行排序,常用的方法是使用大小写
表达式或IIF
:
——大小写表达式
当{expression}为空时,则为1,否则为0结束
--IIF function(实际上是一个简写的大小写表达式)
IIF({Expression}为空,1,0)
如果您有一个复杂的表达式,您希望将NULL
值最后排序,然后排序该表达式,并且该表达式没有出现在选择中(因此不能通过其别名引用),则可以将表达式从
移动到,以避免多次键入表达式:
FROM ...
JOIN ...
LEFT JOIN ...
...
CROSS APPLY (VALUES({Expression}))V(Alias)
WHERE ...
ORDER BY IIF(V.Alias IS NULL,1,0),
V.Alias
没有null,最后的语法是T-SQL
如果要最后对NULL
值进行排序,常用的方法是使用大小写
表达式或IIF
:
——大小写表达式
当{expression}为空时,则为1,否则为0结束
--IIF function(实际上是一个简写的大小写表达式)
IIF({Expression}为空,1,0)
如果您有一个复杂的表达式,您希望将NULL
值最后排序,然后排序该表达式,并且该表达式没有出现在选择中(因此不能通过其别名引用),则可以将表达式从
移动到,以避免多次键入表达式:
FROM ...
JOIN ...
LEFT JOIN ...
...
CROSS APPLY (VALUES({Expression}))V(Alias)
WHERE ...
ORDER BY IIF(V.Alias IS NULL,1,0),
V.Alias
你的ON
子句在哪里?你的ON
子句在哪里?谢谢你的回答,但问题是:记住你所说的一切,我如何用JPQL重写我的查询以便生成正确的T-SQL?谢谢你的回答,但问题是:记住你所说的一切,如何在JPQL中重写查询,以便生成正确的T-SQL?