标签: case-when

如何在oracle中使用select with if条件?

我的要求是从复杂查询中获取一个数字并检查num = desiredNum.

如果它等于desiredNum,那么我必须执行另一组select语句,

有什么方法可以在查询中实现这一点而不是编写函数吗?

例如:

select case when val =2  
then select val1 from table1  
else 'false'  
from (select val from table)  
Run Code Online (Sandbox Code Playgroud)

这可能吗 ??

sql plsql case-when

8
推荐指数
2
解决办法
4万
查看次数

如何使用case时从tsql返回true或false

我试图基于CASE WHEN THEN THEN语句返回true或false,但结果面板中唯一显示的是列名"IsGeneric".

我哪里错了?

alter proc Storefront.proc_IsProjectGeneric

@ProjectID INT
AS
SET NOCOUNT ON;

SELECT 'IsGeneric'=CASE WHEN p.[GenericCatalogID] > 0 THEN CAST(1 AS BIT) ELSE CAST(0 AS BIT) END
                 FROM Storefront.Project p WITH(NOLOCK)
                 WHERE p.ID = @ProjectID;

SET NOCOUNT OFF;
Run Code Online (Sandbox Code Playgroud)

t-sql case-when

7
推荐指数
2
解决办法
2万
查看次数

Ansible Playbook:如何根据条件运行 Play?

我有一本包含多个剧本的剧本。它看起来是这样的:

- name: Play A
  hosts: localhost
  roles:
    - do task to get either B or C

- name: Play B
  hosts: Host B
  roles:
    - do necessary task

- name: Play C
  hosts: Host C
  roles:
    - do necessary task

- name: Play D
  host: localhost
  roles:
    - create_logs
Run Code Online (Sandbox Code Playgroud)

每当 playbook 被触发时,它将首先运行第一个 play 以获得 B 或 C 结果。

结果是确定运行该游戏的主机属性,例如主机的IP地址和操作系统。

之后,根据结果,例如如果结果是B,我将运行播放B并跳过播放C。

否则,如果结果是 C,我将跳过 Play B 并运行 Play C。

无论先前 Play 的结果如何,Play D 将作为最后一个 Play 运行。

我怎样才能做到这一点?我尝试过使用“when”条件,但它说它不是 Play 的属性。

case-when ansible

7
推荐指数
2
解决办法
2万
查看次数

使用CASE WHEN在postgresql中创建数据透视表的正确方法

我试图在postgresql中创建一个数据透视表类型视图,我差点就到了!这是基本查询:

select 
acc2tax_node.acc, tax_node.name, tax_node.rank 
from 
tax_node, acc2tax_node 
where 
tax_node.taxid=acc2tax_node.taxid and acc2tax_node.acc='AJ012531';
Run Code Online (Sandbox Code Playgroud)

而数据:

   acc    |          name           |     rank     
----------+-------------------------+--------------
 AJ012531 | Paromalostomum fusculum | species
 AJ012531 | Paromalostomum          | genus
 AJ012531 | Macrostomidae           | family
 AJ012531 | Macrostomida            | order
 AJ012531 | Macrostomorpha          | no rank
 AJ012531 | Turbellaria             | class
 AJ012531 | Platyhelminthes         | phylum
 AJ012531 | Acoelomata              | no rank
 AJ012531 | Bilateria               | no rank
 AJ012531 | Eumetazoa               | no rank
 AJ012531 | Metazoa                 | kingdom
 AJ012531 …
Run Code Online (Sandbox Code Playgroud)

sql postgresql pivot pivot-table case-when

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

TSQL和多穗时的情况?

我有几个条件,结果应该是相同的.我搜索网络,发现这样的东西:

CASE ProductLine
     WHEN 'R' THEN 'Road'
     WHEN 'M' THEN 'Mountain'
     WHEN 'T' THEN 'Touring'
     WHEN 'S' THEN 'Other sale items'
     ELSE 'Not for sale'
  END
Run Code Online (Sandbox Code Playgroud)

这很好,但不是我需要的,对我来说更像R,M,T和S都有相同的结果,例如A,B,C,D没有.我该怎么做?我无法与OR连接,或者至少我没有设法:).这样的事可能吗?

CASE ProductLine
     WHEN 'R' OR 'M' OR ... THEN 'Road'
     ELSE 'Not for sale'
  END
Run Code Online (Sandbox Code Playgroud)

t-sql case-when

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

如何同时使用SQL WHERE CASE与NOT IN或equals?

大家好(我在堆栈上的第一篇文章!),

这有效:

where
    Tran_date between @FromDate and @ToDate

and Range = @Range

and Store_ID =
    case when @Range = 'RangeName' then
        1234
    else
        Store_ID
    end
Run Code Online (Sandbox Code Playgroud)

但我怎么能做到这一点?:

where
    Tran_date between @FromDate and @ToDate

and Range = @Range

and Store_ID 
    case when @Range = 'RangeName' then
        not in (1234, 5678)
    else
        Store_ID
    end
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server case-when in-operator

6
推荐指数
2
解决办法
3万
查看次数

SQL Count病假日

我有一个SQL Server表,其中包含所有员工及其疾病的列表.

我需要能够计算他们在本季度患病的天数

问题是,有些人可能已经生病了一年,所以EG可以是2013-12-31,而UNTILDATE可能是2014-12-31(1年病假).但是,它应该只计算当前季度发生的疾病的天数.所以它应该是大约90天的疾病,而不是整整一年.

当前的SQL

select SUM(a.WORKDAYS) as Total
from ABSENCE a
where a.FROMDATE < GETDATE() and 

a.UNTILDATE > DATEADD(MONTH, -3, GETDATE())
and
a.ABS_REASON='SICK'
Run Code Online (Sandbox Code Playgroud)

因此,目前,从任何一个正确的日期开始,我需要考虑那些在季度开始之前已经生病但仍然生病进入当前季度的人,但应该只计算从季度开始的天数.本季度末.

任何帮助将不胜感激.

sql sql-server sum case case-when

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

CASE语句中的TSQL NVARCHAR转换错误

这个选择让我发疯.
错误是:

将nvarchar值'17 .30 h'转换为int数据类型的转换错误.

数据是:

(DateTime)   (Nvarchar)  (DateTime)
DATAINICI    DATAMANUAL  DATAFI
null         17.30 h     10/01/2015
01/01/2015   20.30 h     null
Run Code Online (Sandbox Code Playgroud)

声明是:

CASE WHEN  dbo.Activitat.DataInici is null 
THEN DATEPART(DAY,Activitat.Datafi) 
ELSE CONVERT(NVARCHAR(50), dbo.Activitat.DataManual)
END 
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server case-when

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

case_when 与 numeric(0) 的行为

我无法理解dplyr::case_when其工作原理。这里有这个非常简单的行:

library(tidyverse)
case_when(TRUE ~ 50,
          FALSE ~ numeric(0))
Run Code Online (Sandbox Code Playgroud)

显然numeric(0),TRUE 是 TRUE,所以它应该发回 50。此外,FALSE 是 FALSE,所以它永远不应该发回 numeric(0)。如果我写的话我就没有问题:

case_when(TRUE ~ 50,
      FALSE ~ NaN)
Run Code Online (Sandbox Code Playgroud)

我得到50,这是正确的。我想念什么?

r case-when dplyr

6
推荐指数
0
解决办法
417
查看次数

通过 mutate case_when 通过多个条件创建新变量

嗨,想在 dyplr、mutate 和 case_when 的特定条件下通过 2 个变量(WHR 和 sexe)创建一个新变量/列(WHRcat)。

数据:

WHR   sexe  WHRcat (new variable)
1.5    1
2.8    2
0.2    2
0.3    1
1.1    1
Run Code Online (Sandbox Code Playgroud)

我的代码:

test<- test%>% mutate(WHRcat = case_when((WHR >= 1.02 & sexe = 1) ~ 1,
                                         (WHR < 1.02 & sexe = 1) ~ 2,
                                         (WHR >= 0.85 & sexe = 2) ~ 3,
                                         (WHR < 0.85 & sexe = 2) ~ 4,
                                          TRUE ~ 0)) 
Run Code Online (Sandbox Code Playgroud)

虽然不起作用。

错误:

> test<- test%>% mutate(WHRcat = case_when((WHR >= 1.02 & …
Run Code Online (Sandbox Code Playgroud)

variables r case-when dplyr mutate

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

标签 统计

case-when ×10

sql ×4

t-sql ×4

sql-server ×3

dplyr ×2

r ×2

ansible ×1

case ×1

in-operator ×1

mutate ×1

pivot ×1

pivot-table ×1

plsql ×1

postgresql ×1

sum ×1

variables ×1