此case语句中是否有语法错误?语言= SQL Server

> Task :app:kaptDebugKotlin FAILED
e: .../di/component/AppComponent.java:20: error: @Component.Builder is missing setters for required modules or components: [...di.modules.AppModule]
    public static abstract interface Builder {
                           ^
w: [kapt] Incremental annotation processing requested,but support is disabled because the following processors are not incremental: dagger.internal.codegen.ComponentProcessor (NON_INCREMENTAL),dagger.android.processor.AndroidProcessor (NON_INCREMENTAL),com.bumptech.glide.annotation.compiler.GlideAnnotationProcessor (NON_INCREMENTAL).

FAILURE: Build failed with an exception.

数据类型:

case ('monthcharge' <> 0)
WHEN TRUE THEN 'monthcharge' * datediff(mm,'start','stop')
WHEN FALSE THEN case ('weekcharge' <>0)
                    WHEN TRUE THEN 'weekcharge' * datediff(ww,'stop')
                    WHEN FALSE THEN 'daycharge' * datediff(dd,'stop') 
                    ELSE 0
                    END
ELSE 0
END 'final_total'
nieodie 回答:此case语句中是否有语法错误?语言= SQL Server

问题是您要将列名放在引号中-您想将那些引号删除。

此外,您还必须为测试选择-如果仅打算使用两个选择,则无需像这样的case语句。

这是固定代码。

volatile
,

对字符串常量使用单引号。如果您有关键字作为对象名称,则应使用方括号将其转义

这是您尝试做的更好的版本

SELECT final_total = CASE 
                       WHEN monthcharge <> 0 THEN monthcharge * Datediff(mm,[start],[stop]) 
                       WHEN weekcharge <> 0 THEN weekcharge * Datediff(ww,[stop]) 
                       WHEN daycharge <> 0 THEN daycharge * Datediff(dd,[stop]) 
                       ELSE 0 
                     END 
本文链接:https://www.f2er.com/3034999.html

大家都在问