标签: case-statement

用于Progress DB SQL的LIKE运算符

我正在尝试在Progress SQL中做这样的事情(这不是POSTGRES!)

SELECT
    CASE WHEN code LIKE '%foo%' THEN 'Y' ELSE 'N' END as foo
FROM
    bar
Run Code Online (Sandbox Code Playgroud)

但是Progress不支持LIKE运算符.INSTR看起来它可能会完成这项工作,但它是一个Progress扩展,我正在使用的数据库不支持.是否有另一种使用标准ODBC函数实现此目的的方法?

谢谢

sql progress-db case-statement openedge sql-like

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

试图在case语句中设置变量.

我正在尝试从ERP系统的会计年度表中更新日期维度表.如果我运行以下查询:

SELECT fcname FYName
      ,min(fdstart) YearStart
      ,max(fdend) YearEnd
      ,max(fnnumber) PeriodCount
FROM M2MData01.dbo.glrule GLR
GROUP BY fcname
Run Code Online (Sandbox Code Playgroud)

我得到以下数据:

FYName            YearStart                   YearEnd                 PeriodCount
FY 2000                 1/1/2000 12:00:00 AM    12/31/2000 12:00:00 AM  12
FY 2001                 1/1/2001 12:00:00 AM    12/31/2001 12:00:00 AM  12
FY 2002                 1/1/2002 12:00:00 AM    12/31/2002 12:00:00 AM  12
FY 2003                 1/1/2003 12:00:00 AM    12/31/2003 12:00:00 AM  12
FY 2004                 1/1/2004 12:00:00 AM    12/31/2004 12:00:00 AM  12
FY 2005                 1/1/2005 12:00:00 AM    12/31/2005 12:00:00 AM  12
FY 2006                 1/1/2006 12:00:00 AM …
Run Code Online (Sandbox Code Playgroud)

t-sql initialization sql-server-2000 case-statement

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

C - Tricky Switch Case工作..!

伙计们,

最近开始学习C.
陷入困境.它关于switch-case语句的工作.

这是代码:

#include<stdio.h>

int main() {
        int i=4;
        switch(i) {

                default :       
                        printf("%s","Default");
                case 0:         
                        printf("%s","Case 0");
                case 1:         
                        printf("%s","Case 1");
                case 2:         
                        printf("%s","Case 2");

        return 0;
        }
 }  
Run Code Online (Sandbox Code Playgroud)

我个人认为," Default"应该打印,因为它与任何案例值都不匹配.
但是当我在Turbo C中运行代码时,我观察到的是:

Default
Case 0
Case 1
Case 2  
Run Code Online (Sandbox Code Playgroud)

在这里观察到同样的情况:http://www.ideone.com/pFh1d

问题是什么 ?这是编译器问题或我的代码中的任何错误?


编辑:

PS:如果我必须首先编写默认案例,它会造成什么错误.有害吗?

但是一旦编译器知道它必须执行默认语句,为什么我们需要在默认情况的语句之后放置一个break语句?

c case-statement switch-statement

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

在Haskell中,如何在Dynamic TypeRef上执行case语句

我尝试了以下方法:

intType =  typeOf (5::Int)
stringType = typeOf "s"

dynFunc :: Dynamic -> IO ()
dynFunc d =
  case dynTypeRep d of
    stringType -> polyFunc ((fromDyn d "") :: String)
    intType -> polyFunc ((fromDyn d 0) :: Int)
    _      -> error "Could not coerce dynamic value"
Run Code Online (Sandbox Code Playgroud)

但它警告重叠模式匹配并且不能正常工作.它始终是第一个模式而不是正确模式.

haskell types dynamic pattern-matching case-statement

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

MySQL 使用 Case 语句连接

我在查询时遇到了一些麻烦。如果遇到案例,我想加入表格。这是我正在使用的查询。我对这些案例陈述有点陌生,因此非常感谢任何帮助!

      SELECT 
        conversation.c_id,
        conversation.user_one,
        conversation.user_two,
        users.name,
        users.lastName
      FROM `conversation` 

      CASE
        WHEN conversation.user_one = 1
        THEN
          INNER JOIN `users`
          ON conversation.two = users.id

        WHEN conversation.user_two = 1
        THEN
          INNER JOIN `users`
          ON conversation.user_one = users.id
      END CASE

      WHERE `user_one` = 1 OR `user_two` = 1
Run Code Online (Sandbox Code Playgroud)

php mysql sql case-statement

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

Elixir案例陈述和模式匹配

我正在尝试将%{{x, y} => [items]}一堵带有墙壁的房间涂成地图,并且正在使用一个案例声明来确定要绘制哪种类型的墙壁。

但是,尝试进行模式匹配并将其分配pos给左侧的值很困难。(引发illegal pattern编译错误)

我知道我可以阻止分配^,但是我该怎么办(from_y+sizey)呢?

def place_room({from_x, from_y}, {size_x, size_y}, original_map) do
  Enum.reduce from_x..(from_x + size_x-1), original_map, fn x, map ->
    Enum.reduce from_y..(from_y + size_y-1), map, fn y, map ->
      pos = {x, y}
      case pos do
        {from_x, from_y} ->
          place(map, pos, :wall, %{type: :room_wall_tl})
        {from_x, (from_y+size_y)} ->
          place(map, pos, :wall, %{type: :room_wall_tr})
        {from_x, (from_y+size_y)} ->
          place(map, pos, :wall, %{type: :room_wall_bl})
        {(from_x+size_x), (from_y+size_y)} ->
          place(map, pos, :wall, %{type: …
Run Code Online (Sandbox Code Playgroud)

elixir pattern-matching case-statement

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

在 elm (0.18) 中对 case 表达式进行分组

在 elm (0.18) 中有没有办法将一系列做同样事情的 case 表达式组合在一起?

例如:

type Character
    = Sleepy
    | Happy
    | Grumpy
    | Dopey
    | Sneezy
    | Bashful
    | Doc
    | SnowWhite
    | Queen


getKindOfCharacter : Character -> String
getKindOfCharacter character =
  case character of
    (Sleepy | Happy | Grumpy | Dopey | Sneezy | Bashful | Doc) ->
      "Dwarf"
    SnowWhite ->
      "Hero"
    Queen ->
      "Villain"
Run Code Online (Sandbox Code Playgroud)

case-statement elm

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

在 CASE 语句中使用两个 = 符号?

我正在尝试使用依赖于变量的 case 语句来确定我的 WHERE 子句的一部分,但它不喜欢我在做什么。这是我的查询(为简单起见进行了修改)

DECLARE @SalesType VARCHAR(10)

SET @SalesType = 'Bulk'

SELECT CASE 
        WHEN fwsf.Customer_Cardlock_Customer = 'True'
            THEN 'CFN'
        ELSE 'Bulk'
        END AS 'Prod Type'
FROM TABLE t
WHERE CASE 
        WHEN @SalesType = 'Bulk' then t.customer_type = 'False'
        WHEN @SalesType = 'CFN' then t.customer_type = 'True'
        End
Run Code Online (Sandbox Code Playgroud)

换句话说,我想在 WHERE 子句中声明,当 @SalesType 是给定值时,选择具有另一个值的行。

编辑:为了其他人,我意识到我有另一种情况,我可能需要选择“全部”选项。根据下面的 Shawn,他用我验证过的以下内容更正了我最初提出的解决方案:

AND t.customer_type =
CASE @SalesType
    WHEN 'Bulk' then 'False'
    WHEN 'CFN'  then 'True'
    WHEN 'All'  then t.customer_type
END
        END
Run Code Online (Sandbox Code Playgroud)

sql-server case-statement

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

Haskell - 在"无法匹配预期类型"的情况下的模式匹配

我有一个类似于的自定义数据类型:

data Token = Number Int
           | Otherthings
Run Code Online (Sandbox Code Playgroud)

我希望能够以一种方式使用"数字"而在另一种方式中使用其他东西.所以我可以成功创建一个case语句,如:

parse x = case x of
    Number y -> y
Run Code Online (Sandbox Code Playgroud)

然后成功地采取:

let x = Number 7 in parse x
Run Code Online (Sandbox Code Playgroud)

并评估为7.但是,当我尝试将"解析"功能更改为:

parse [] = []
parse (x:xs) = case x of
    Number y -> y
Run Code Online (Sandbox Code Playgroud)

我收到错误:

Couldn't match expected type `[a0]' with actual type `Int'
In the expression: y
In a case alternative: Number y -> y
In the expression: case x of { Number y -> y }
Run Code Online (Sandbox Code Playgroud)

为什么这不能以这种方式工作以及解决这个问题的正确方法是什么?非常感谢!

haskell pattern-matching case-statement

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

带SUM的CASE语句

这是我的表结构。

===================================
main_section | currency | amount
===================================

Tender           INR        2000
Bank             USD        3000
Tender           INR        1500
Tender           INR        1850
===================================
Run Code Online (Sandbox Code Playgroud)

我试图做一个CASE语句,如果'main_section = tender',它应该退还投标金额,如果银行,则应该退还该银行金额。如果有多个记录,则应求和并返回金额(此处“投标”具有多个记录)。谁能帮我这个。以下是我尝试过的案例陈述

CASE sum(com_payments.main_section 
         WHEN com_payments.main_section = 'Tender' 
         THEN main_tender = com_payments.amount
END AS maintender1)
CASE sum(com_payments.main_section 
         WHEN com_payments.main_section = 'Bank' 
         THEN main_bank = com_payments.amount
END AS mainbank1)
Run Code Online (Sandbox Code Playgroud)

mysql case case-statement

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