when相关知识
-
Mysql-case when 使用当我们在查询数据的时候,我们可能希望对于一些数字的枚举值展示出其实际的文案值比如:性别1我们想显示男,2我们想显示女。一、case 使用场景1.1 简单函数CASE case_value WHEN when_value THEN statement_list [WHEN when_value THEN statement_list] ... [ELSE statement_list] END CASE1.2 case搜索函数CASE WHEN search_condition THEN statement_list [WHEN sea
-
case when 和 decode--这种写法存在一种问题,对于nvarchar类型的字段使用下述方式会报oracle字--符集不匹配错误,使用to_char(colName) 即可 case columnName when '**' then '**' else '**' end --这种表述方式不会出现oracle字符集不匹配的问题,在遇到nvarchar类型字段--时,且使用起来较第一种更为灵活 case when colName = '**' then '**' else '**' end decode(colName,'value','result',default)
-
SqlServer Case when then用法总结数据库存储的角色和状态值数据库中的值想要实现的转换1-超级管理员 2-普通管理员 3-普通用户0-禁用 1-启用实现目的核心代码CASE IRole_number When 1 Then '超级管理员' When 2 Then '普通管理员' When 3 Then '一般用户' End as CRole_number,Case IStatus When 0 Then '禁用' When 1 Then '启用' End as CStatus作者:乌匠链接:https://www.jianshu.com/p/573bb445b07e
-
Proc SQL: Case WhenSAS Day 16: Proc SQL 1: Case When Problem: Suppose we need to merge the SDTM.VS (Vital Sign) dataset with SDTM.SE (Subject Element) for Epoch Infomation. We will assign the EPOCH to VS if the VSDY is between SESTDY and SEENDY. Example: Usubjid=TF-001-001-001, VISIT=SCREENING, VSDY=-6, EPOCH=SCREENING Background: SAS Merge is perfect for 1 to 1 merge or many to 1 merge. Such as, 1 record in d
when相关课程
when相关教程
- 2. when 表达式 在 Kotlin 中使用 when 表达式替代了类似 C 语言的 switch-case 语句。其中最简单的形式如下:fun eval(number: Number): String = when (number) { is Int -> "this is int number" is Double -> "this is double number" is Float -> "ths is float number" is Long -> "this is long number" is Byte -> "this is byte number" is Short -> "this is Short number" else -> "invalid number"}//多种条件判断混合形式fun main(args: Array<String>) { println(descript("hello"))}fun descript(obj: Any): String = when (obj) { 1 -> "one" "hello" -> "hello word" is Long -> "long type" !is String -> "is not String" else -> { "unknown type" }}when 将它的参数与所有的分支条件顺序比较,直到某个分支满足条件。 when 既可以被当做表达式使用也可以被当做语句使用。如果它被当做表达式, 符合条件的分支的值就是整个表达式的值,如果当做语句使用, 则忽略个别分支的值。(像 if 一样,每一个分支可以是一个代码块,它的值是块中最后的表达式的值。)Tips:如果其他分支都不满足条件将会求值 else 分支。 如果 when 作为一个表达式使用,则必须有 else 分支, 除非编译器能够检测出所有的可能情况都已经覆盖了。如果很多分支需要用相同的方式处理,则可以把多个分支条件放在一起,用逗号分隔:fun eval(any: Any): String = when (any) { is Int, Double, Float, Long, Byte, Short -> "this is number" //多个分支条件放在一起,用逗号分隔 is Char -> "this is char" else -> "other"}when 也可以用来取代 if-else if 链。 如果不提供参数,所有的分支条件都是简单的布尔表达式,而当一个分支的条件为真时则执行该分支:fun eval(number: Number) { when { number.isOdd() -> { println("this is odd number") } number.isEven() -> { println("this is even number") } else -> println("this is invalid number") }}
- 3.2 Kotlin 1.3 版本之后 when fun main(args: Array<String>) { when (val value = getValue()) {//when表达式条件直接是一个表达式,并用value保存了返回值, 实际上相当于把外部那一行缩进来写 is Int -> "This is Int Type, value is $value".apply(::println) is String -> "This is String Type, value is $value".apply(::println) is Double -> "This is Double Type, value is $value".apply(::println) is Float -> "This is Float Type, value is $value".apply(::println) else -> "unknown type".apply(::println) }}fun getValue(): Any { return 100F}我们可以尝试把 kotlin 1.3 版本之后 when 表达式使用代码反编译成 Java 代码:public static final void main(@NotNull String[] args) { Intrinsics.checkParameterIsNotNull(args, "args"); Object value = getValue(); String var2; if (value instanceof Integer) { var2 = "This is Int Type, value is " + value; System.out.println(var2); } else if (value instanceof String) { var2 = "This is String Type, value is " + value; System.out.println(var2); } else if (value instanceof Double) { var2 = "This is Double Type, value is " + value; System.out.println(var2); } else if (value instanceof Float) { var2 = "This is Float Type, value is " + value; System.out.println(var2); } else { var2 = "unknown type"; System.out.println(var2); } } @NotNull public static final Object getValue() { return 100.0F; }通过对比发现,Kotlin 1.3 前后 when 表达式的增强,仅仅是把原来外部那一行代码,缩进到 when 里写,然而两次写法反编译的 Java 代码是一致的。
- 3.1 Kotlin 1.3 版本之前 when fun main(args: Array<String>) { val value = getValue() //可以看到1.3版本之前需要多出来一步 when (value) { is Int -> "This is Int Type, value is $value".apply(::println) //注意这里when中获得value不是when直接传入value,而是when外部声明value is String -> "This is String Type, value is $value".apply(::println) is Double -> "This is Double Type, value is $value".apply(::println) is Float -> "This is Float Type, value is $value".apply(::println) else -> "unknown type".apply(::println) }}fun getValue(): Any { return 100F}我们可以尝试把 kotlin 1.3 版本之前 when 表达式使用代码反编译成 Java 代码:public static final void main(@NotNull String[] args) { Intrinsics.checkParameterIsNotNull(args, "args"); Object value = getValue(); String var3; if (value instanceof Integer) { var3 = "This is Int Type, value is " + value; System.out.println(var3); } else if (value instanceof String) { var3 = "This is String Type, value is " + value; System.out.println(var3); } else if (value instanceof Double) { var3 = "This is Double Type, value is " + value; System.out.println(var3); } else if (value instanceof Float) { var3 = "This is Float Type, value is " + value; System.out.println(var3); } else { var3 = "unknown type"; System.out.println(var3); } } @NotNull public static final Object getValue() { return 100.0F; }
- 12. 条件if,when的使用 在 kotlin 中 if 的使用于 Java 相似但是在 kotin 中 if 是表达式有值的,而在 java 中是语句,可以使用kotlin 中的 if 表达式替代 Java 中的三目运算符在 kotlin 中的。when 与 switch 功能类似:fun main(args: Array<String>) { println(descript("hello"))}fun descript(obj: Any): String = when (obj) { 1 -> "one" "hello" -> "hello word" is Long -> "long type" !is String -> "is not String" else -> { "unknown type" }}
- 3. when 表达式的功能增强 自从 Kotlin1.3 版本后对 when 表达式做了一个写法上的优化,为什么这么说呢? 仅仅就是写法上的优化,实际上什么都没做. 它主要是解决什么问题呢?细心的小伙伴会发现,在 Kotlin 1.3版本之前when表达式内部是不能使用传入的值的。
- 4. 使用 when 表达式替代if表达式 和if 表达式一样,when表达式也是带有返回值的。建议对于多层条件级或嵌套条件控制的使用建议使用when替代if-else:fun eval(number: Number) { if (number is Int) { println("this is int number") } else if (number is Double) { println("this is double number") } else if (number is Float) { println("this is float number") } else if (number is Long) { println("this is long number") } else if (number is Byte) { println("this is byte number") } else if (number is Short) { println("this is Short number") } else { throw IllegalArgumentException("invalid argument") }}//多层级条件使用when表达式fun eval(number: Number): String = when (number) { is Int -> "this is int number" is Double -> "this is double number" is Float -> "ths is float number" is Long -> "this is long number" is Byte -> "this is byte number" is Short -> "this is Short number" else -> "invalid number"}
when相关搜索
-
w3cshool
w3c标准
w3c菜鸟
w3c验证
walk
wall
warn
web
web py
web service
web services
webbrowser
webgl
webmaster
webservices
webservice教程
webservice接口
webservice调用
websocket
webview