标签: case-when

SQL Server:CASE WHEN OREN ELSE END =>不支持OR

OR该在WHEN一个子句CASE语句不支持.我怎样才能做到这一点?

CASE ebv.db_no 
    WHEN 22978 OR 23218 OR 23219 THEN 'WECS 9500' 
    ELSE 'WECS 9520' 
END as wecs_system 
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server case case-when

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

dplyr包可以用于条件变异吗?

当突变是有条件的(取决于某些列值的值)时,是否可以使用mutate?

这个例子有助于显示我的意思.

structure(list(a = c(1, 3, 4, 6, 3, 2, 5, 1), b = c(1, 3, 4, 
2, 6, 7, 2, 6), c = c(6, 3, 6, 5, 3, 6, 5, 3), d = c(6, 2, 4, 
5, 3, 7, 2, 6), e = c(1, 2, 4, 5, 6, 7, 6, 3), f = c(2, 3, 4, 
2, 2, 7, 5, 2)), .Names = c("a", "b", "c", "d", "e", "f"), row.names = c(NA, 
8L), class = "data.frame")

  a b c …
Run Code Online (Sandbox Code Playgroud)

if-statement r case-when dplyr mutate

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

我如何使用T-SQL的Case/When?

我有一个巨大的查询,经常使用case /.现在我在这里有这个SQL,它不起作用.

 (select case when xyz.something = 1
 then
     'SOMETEXT'
 else
      (select case when xyz.somethingelse = 1)
      then
          'SOMEOTHERTEXT'
      end) 

      (select case when xyz.somethingelseagain = 2)
      then
          'SOMEOTHERTEXTGOESHERE'
      end)
 end) [ColumnName],
Run Code Online (Sandbox Code Playgroud)

造成麻烦的是xyz.somethingelseagain = 2,它说无法绑定那个表达.xyz是表的一些别名,它在查询中进一步连接.这里有什么不对?删除2个案例/小时中的一个纠正了这个,但我需要它们两个,可能更多的情况.

t-sql case-when

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

SQL Server CASE .. WHEN .. IN语句

在SQL Server 2005上,我试图查询此select语句

SELECT AlarmEventTransactionTableTable.TxnID,
       CASE AlarmEventTransactions.DeviceID
         WHEN DeviceID IN( '7', '10', '62', '58',
                           '60', '46', '48', '50',
                           '137', '139', '142', '143', '164' )
           THEN '01'
         WHEN DeviceID IN( '8', '9', '63', '59',
                           '61', '47', '49', '51',
                           '138', '140', '141', '144', '165' )
           THEN '02'
         ELSE 'NA'
       END AS clocking,
       AlarmEventTransactionTable.DateTimeOfTxn
FROM   multiMAXTxn.dbo.AlarmEventTransactionTable 
Run Code Online (Sandbox Code Playgroud)

它返回以下错误

消息156,级别15,状态1,行4关键字"IN"附近的语法不正确.

请给我一些关于我的代码可能出错的建议.

sql sql-server sql-server-2005 case-when

28
推荐指数
4
解决办法
11万
查看次数

如何在SQL Server上的CASE WHEN中选择多个列?

我已广泛搜索此网站但无法找到解决方案.

以下是我的查询示例:

SELECT 
   ActivityID,

   Hours = (CASE 
                WHEN ActivityTypeID <> 2 THEN
                     FieldName = (Some Aggregate Sub Query),
                     FieldName2 = (Some other aggregate sub query)
                WHEN ActivityTypeID = 2 THEN
                     FieldName = (Some Aggregate Sub Query with diff result),
                     FieldName2 = (Some Other Aggregate Sub Query with diff result)
           END)
Run Code Online (Sandbox Code Playgroud)

显然我遗漏了很多查询,我只想看看是否可能.

我知道我可能只做两次"CASE",但我想我会问......

sql-server select case-when

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

如何在Doctrine2中按案例排序(Symfony2)

我想在Symfony 2.3中使用Doctrine来运行此查询.但似乎Doctrine不理解CASE声明.有人可以帮忙吗?先感谢您!

SELECT max(id) id, name
FROM cards
WHERE name like '%John%'
GROUP BY name
ORDER BY CASE WHEN name like 'John %' THEN 0
           WHEN name like 'John%' THEN 1
           WHEN name like '% John%' THEN 2
           ELSE 3
      END, name
Run Code Online (Sandbox Code Playgroud)

php mysql case-when symfony doctrine-orm

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

CASE语句中WHEN子句的执行顺序

给出以下案例陈述:

1    WHEN r.code= '00'                        then 'A1'
2    WHEN r.code ='01' AND r.source = 'PXWeb' then 'A2'   <
3    WHEN r.code ='0120'                      then 'A3'
4    WHEN r.code ='01'                        then 'A4'   <
5    WHEN r.code ='1560'                      then 'A5'
6    WHEN r.code ='1530'                      then 'A6'
7    WHEN r.code ='1550'                      then 'A7'
Run Code Online (Sandbox Code Playgroud)

我假设第2行总是在第4行之前执行?然后我读了一些语句,比如' SQL是一种声明性语言,这意味着它告诉SQL引擎要做什么,而不是如何进行

SQL查询的执行顺序

并想知道这是否也与CASE声明中的执行顺序有关.基本上,我可以保留上面的代码,而不必将第4行更改为

4    WHEN r.code ='01' AND r.source != 'PXWeb' then 'A4'   
Run Code Online (Sandbox Code Playgroud)

sql sybase case case-when

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

根据日期中的排名逐行选择值

假设我有一个包含多行的数据框,如下所示:

df <- data.frame(a = c(NA,20,NA),
                 date1 = c("2016-03-01", "2016-02-01", "2016-02-01"),
                 b = c(50,NA, NA),
                 date2 = c("2016-02-01", "2016-03-01", "2016-03-01"),
                 c = c(10,10, 10),
                 date3 = c("2016-01-01","2016-01-01", "2016-01-01"))
Run Code Online (Sandbox Code Playgroud)

对于每一行,我想这不是一个最新的值NA之间a,b以及c根据dates(所以我分别来看看date1,date2或者date3和挑最近的一个).

基本上,date1给出对应于该值的日期a, date2给出对应于该值的日期b, date3给出对应于该值的日期c.

如果date1 > date2&date1 > date3,我将要取值a 但是,如果值aNA(在我的例子中是这种情况),我将比较date2date3.在我的例子中,date2 > date3 …

r rank case-when dplyr

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

如何在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万
查看次数

如何在postgresql查询中放置嵌套的case-when条件

我想在查询条件时写入嵌套大小写,以便存储将来自一个案例的条件和条件变为同一个新列时的另一个案例.为了得到这种结果,我将查询编写为:

(case when sq_name_new1 like format('%%%s%%',demo.name) THEN count(sq_name_new1) else (when demo.empcode is not null then count(demo.id) End) END) AS indivisual from res_scheduledjobs
Run Code Online (Sandbox Code Playgroud)

在上面的查询demo.name列来自CTE.so我的整个查询看起来像:

with demo(empcode,id,name) as               
(select hr_employee.emp_code,hr_employee.id,concat(resource_resource.name,' ',hr_employee.middle_name,' ',hr_employee.last_name) as name from hr_employee inner join  resource_resource on resource_resource.id=hr_employee.resource_id)
select demo.empcode,demo.name,sq_name_new1,(case when sq_name_new1 like format('%%%s%%',demo.name) THEN count(sq_name_new1) else (when demo.empcode is not null then count(demo.id) End) END) AS indivisual from res_scheduledjobs LEFT JOIN demo on demo.id=res_scheduledjobs.assigned_technician group by res_scheduledjobs.assigned_technician,sq_name_new1,demo.empcode,demo.name ;
Run Code Online (Sandbox Code Playgroud)

我只想将(sq_name_new1)列的计数存储到INDIVISUAL列中,将(demo.id)列的计数存储到同一列中,即如果第一种情况不匹配,则在INDIVISUAL中.但是,当我执行我的查询时,它会抛出一个错误.也就是说,条件语法时出现错误.

请帮我写出正确的嵌套case-when条件.

postgresql if-statement nested case-when

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