标签: case-when

MySql条件组

请考虑我的表(这只是一个简化版本,在我的项目中,我有600,000多条记录):

Id  TransactionId   TransactionTypeId   Description
1   1               1                   Description1
2   1               1                   Description2
3   1               2                   Description3
4   1               2                   Description4
5   1               1                   Description5
6   1               2                   Description6
7   2               1                   Description7
8   2               1                   Description8
9   2               2                   Description9
10  2               2                   Description10
Run Code Online (Sandbox Code Playgroud)

我需要做的是什么时候TransactionTypeId = 1,我需要从该表中获取最新数据.否则,什么时候TransactionTypeId <> 1,我需要得到它们.

对于这个例子,我有这个查询:

SELECT MAX(T.Id)
    , SUBSTRING_INDEX(GROUP_CONCAT(T.TransactionId ORDER BY T.Id DESC), ',', 1) AS TransactionId
    , SUBSTRING_INDEX(GROUP_CONCAT(T.TransactionTypeId ORDER BY T.Id DESC), ',', 1) AS TransactionTypeId
    , SUBSTRING_INDEX(GROUP_CONCAT(T.Description ORDER …
Run Code Online (Sandbox Code Playgroud)

mysql group-by case-when

1
推荐指数
1
解决办法
2579
查看次数

使用SQL案例何时使用日期

我在我写的查询中有一个列,如下所示.

**RCPT_DATE**
NULL
2017-01-09 00:00:00.000
NULL
NULL
1900-01-01 00:00:00.000
1900-01-01 00:00:00.000
1900-01-01 00:00:00.000
2016-09-05 00:00:00.000
Run Code Online (Sandbox Code Playgroud)

我想要做的是摆脱NULL值并显示'不可用'并显示'No Rcpt'而不是'1900-01-01 00:00:00.000'值,使其看起来更干净.

我试过下面但它没有做任何事情

CASE c.RCPT_DATE
    WHEN '1900-01-01 00:00:00.000' THEN ''
    WHEN NULL Then 'xxx'
    ELSE c.RCPT_DATE
    END AS RCPT_DATE,
Run Code Online (Sandbox Code Playgroud)

我试过了,

CASE c.RCPT_DATE
    WHEN '1900-01-01 00:00:00.000' THEN NULL
Run Code Online (Sandbox Code Playgroud)

这打印NULL而不是'1900-01-01 00:00:00.000'值,但这不是我想要的.

任何帮助赞赏

谢谢

sql sql-server case case-when

1
推荐指数
1
解决办法
2583
查看次数

添加前导零情况

如果周数小于 10,我尝试在周数中添加前导零。两种 col 类型都是smallint,并且我尝试了以下代码,但它没有产生我想要的结果。我得到的结果:“20201”与我想要的“202001”。

SELECT CONCAT(CAST(yr_num AS VARCHAR), CASE WHEN CAST(wk_num AS VARCHAR) < 10 THEN '0' + wk_num ELSE wk_num  END) as year_wk FROM sometable
Run Code Online (Sandbox Code Playgroud)

我正在使用 redshift 进行此查询。

sql case-when amazon-redshift

1
推荐指数
1
解决办法
4885
查看次数

如何在 Kotlin when 表达式中使用 isNullOrEmpty 等检查

与许多其他编程语言一样,Kotlin 提供了isNullOrEmpty等检查,它允许简单地检查myString.isNullOrEmpty().

有没有办法将这样的检查与when 表达式结合起来?默认情况下,表达式仅允许显式字符串。这样的事情可能吗?:

when (myString) {
    "1" -> print("1")
    "2" -> print("1")
    myString.isNullOrEmpty() -> print("null or empty") //This is what I am looking for
    else -> print("None of them")
}
Run Code Online (Sandbox Code Playgroud)

string case-when isnullorempty kotlin

1
推荐指数
1
解决办法
1849
查看次数

在案例中使用AND

我想CASE WHEN在以下工作语句中添加一个:

Select ...
From...
Where 
    d.name like @filter and d.flags & 0x0F <> 0
Run Code Online (Sandbox Code Playgroud)

我有一种情况,如果用户将BIT @showHidden参数设置为true ,我希望过滤.这是我尝试过的:

SELECT...        
FROM...
WHERE
d.name like 
    CASE WHEN @showHidden = 'true' THEN
        @filter
    ELSE
        @filter and d.flags & 0x0F <> 0
Run Code Online (Sandbox Code Playgroud)

我收到错误:

'和'附近的语法不正确.

是否有可能AND在一个CASE WHEN

sql sql-server case-when

0
推荐指数
1
解决办法
97
查看次数

SQL ISNULL 不起作用

我试图00001在查询结果为空但查询仍然返回空时显示。我不知道我的查询有什么问题。

编辑:

假设OBRNo123-5678-10-13-1619手段LEN(a.OBRNo) is 19

SELECT TOP 1 CASE WHEN RIGHT(a.OBRNo, 5) = NULL THEN '00001' ELSE a.OBRNo 
END as CaseWhen, 
ISNULL(a.OBRNo, '00001') as ISNULL,
RIGHT(OBRNo, 5) as OrderBy
FROM tbl_T_BMSCurrentControl as a
WHERE LEN(a.OBRNo) = 20 and a.ActionCode = 1
ORDER BY OrderBy DESC
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

sql sql-server isnull case-when

0
推荐指数
1
解决办法
1万
查看次数

SQL表值函数-根据参数值从“ WITH”返回某些数据

我试图做一个“用”来遍历一些数据(这样做很好)。但是之后,我想返回依赖于bit参数的数据。重要的是这在函数内部。下面基本上是我的代码在做什么。

WITH StuffChain 
AS (
   //initial
    union all
   //more
)
Run Code Online (Sandbox Code Playgroud)

之后,我正在尝试做类似的事情

CASE WHEN @MyParamVal = 1 THEN
      SELECT TOP (1) * FROM StuffChain
ELSE
      SELECT * FROM StuffChain
END
RETURN
Run Code Online (Sandbox Code Playgroud)

SQL不是我的强项,我仍然在学习抱歉。我也不确定是否使用内联或多语句功能

编辑:当我给案件时,我用它来解释我要返回的东西,不一定是我将要使用的东西。我用它来描述我所需要的东西,只要知道的话就知道一点。

sql sql-server function case-when

0
推荐指数
1
解决办法
54
查看次数

使用 dplyr 根据 dplyr 中每组其他列中的条件添加列,数据采用长格式

我有 3 名患者的重复测量(4 或 5 次)的长格式数据:

library(dplyr)
library(magrittr)

questiondata <- structure(list(ID = c(2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 
4), time = c("time1", "time2", "time3", "time4", "time1", "time2", 
"time3", "time4", "time5", "time1", "time2", "time3", "time4", 
"time5"), drug_use = structure(c(NA, 1L, NA, NA, NA, 2L, NA, 
NA, NA, NA, 1L, NA, NA, NA), .Label = c("no", "yes"), class = "factor")), row.names = c(NA, 
-14L), class = c("tbl_df", "tbl", "data.frame"))

# Corresponding to the following tibble: …
Run Code Online (Sandbox Code Playgroud)

r case-when dplyr

0
推荐指数
1
解决办法
775
查看次数