标签: case

SQL Server 2008中"WHERE"子句中的"CASE"语句

我正在使用一个查询,其中包含"WHERE"子句中的"CASE"语句.但SQL Server 2008在执行时会出现一些错误.任何人都可以帮我正确的查询?这是查询:

SELECT
    tl.storenum 'Store #', 
    co.ccnum 'FuelFirst Card #', 
    co.dtentered 'Date Entered',
    CASE st.reasonid 
        WHEN 1 THEN 'Active' 
   WHEN 2 THEN 'Not Active' 
   WHEN 0 THEN st.ccstatustypename 
   ELSE 'Unknown' 
    END 'Status',
    CASE st.ccstatustypename 
        WHEN 'Active' THEN ' ' 
   WHEN 'Not Active' THEN ' ' 
   ELSE st.ccstatustypename 
    END 'Reason',
    UPPER(REPLACE(REPLACE(co.personentered,'RT\\\\',''),'RACETRAC\\\\','')) 'Person Entered',
    co.comments 'Comments or Notes'
FROM 
    comments co
    INNER JOIN cards cc ON co.ccnum=cc.ccnum
    INNER JOIN customerinfo ci ON cc.customerinfoid=ci.customerinfoid
    INNER JOIN ccstatustype st ON st.ccstatustypeid=cc.ccstatustypeid
    INNER JOIN …
Run Code Online (Sandbox Code Playgroud)

sql sql-server case

101
推荐指数
4
解决办法
80万
查看次数

在Haskell中防守与if-then-else对比案例

我有三个函数可以找到列表的第n个元素:

nthElement :: [a] -> Int -> Maybe a 
nthElement [] a = Nothing
nthElement (x:xs) a | a <= 0 = Nothing
                    | a == 1 = Just x
                    | a > 1 = nthElement xs (a-1)

nthElementIf :: [a] -> Int -> Maybe a
nthElementIf [] a = Nothing
nthElementIf (x:xs) a = if a <= 1
                        then if a <= 0 
                             then Nothing
                             else Just x -- a == 1
                        else nthElementIf xs (a-1)                           

nthElementCases :: [a] …
Run Code Online (Sandbox Code Playgroud)

haskell if-statement case

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

为什么我们需要突破案例陈述?

为什么编译器不会在交换机中的每个代码块之后自动放置break语句?这是出于历史原因吗?您何时需要执行多个代码块?

java language-design case break switch-statement

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

T-SQL:在UPDATE语句中使用CASE根据条件更新某些列

我想知道这是否可行.如果条件为真,我想更新列x,否则将更新列y

UPDATE table SET
     (CASE (CONDITION) WHEN TRUE THEN columnx
                       ELSE columny
      END)
= 25
Run Code Online (Sandbox Code Playgroud)

我搜索了一遍,尝试了一些东西,但无法找到解决方案.我认为这是不可能的,但我想我会问这里,看看是否有人之前做过.提前致谢.

sql case sql-update

91
推荐指数
4
解决办法
26万
查看次数

PostgreSQL CASE ... END有多个条件

这是我的表的摘录:

  gid    |    datepose    |    pvc
---------+----------------+------------
 1       |  1961          | 01
 2       |  1949          |
 3       |  1990          | 02
 1       |  1981          |
 1       |                | 03
 1       |                |
Run Code Online (Sandbox Code Playgroud)

我想用SELECT CASE下面的方法填充PVC柱:

SELECT

 gid,

 CASE
  WHEN (pvc IS NULL OR pvc = '') AND datpose < 1980) THEN '01'
  WHEN (pvc IS NULL OR pvc = '') AND datpose >= 1980) THEN '02'
  WHEN (pvc IS NULL OR pvc = '') AND (datpose IS NULL OR …
Run Code Online (Sandbox Code Playgroud)

postgresql case

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

SQL Server IIF与CASE

我最近了解了SQL Server 2012中IIF功能的可用性.我总是在查询中使用嵌套的CASE.我想知道IIF语句的确切目的,我们何时应该更喜欢在查询中使用IIF而不是CASE语句.我主要在查询中使用嵌套的CASE.

感谢所有的投入.

sql-server case iif sql-server-2012

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

案例陈述相当于R

我在数据框中有一个变量,其中一个字段通常有7-8个值.我想在数据框中的一个新变量中将它们拼写为3或4个新类别.什么是最好的方法?

如果我在类似SQL的工具中但是不确定如何在R中攻击它,我将使用CASE语句.

您将提供的任何帮助将不胜感激!

r case

72
推荐指数
10
解决办法
13万
查看次数

如何在Bash case语句中测试空字符串?

我有一个Bash脚本,它根据变量的值执行操作.case语句的一般语法是:

case ${command} in
   start)  do_start ;;
   stop)   do_stop ;;
   config) do_config ;;
   *)      do_help ;;
esac
Run Code Online (Sandbox Code Playgroud)

如果没有提供命令,我想执行默认例程,如果命令无法识别,我想执行do_help.我试着省略案例值:

case ${command} in
   )       do_default ;;
   ...
   *)      do_help ;;
esac
Run Code Online (Sandbox Code Playgroud)

结果是可以预测的,我想:

syntax error near unexpected token `)'
Run Code Online (Sandbox Code Playgroud)

然后我尝试在正则表达式中使用我最好的镜头:

case ${command} in
   ^$)     do_default ;;
   ...
   *)      do_help ;;
esac
Run Code Online (Sandbox Code Playgroud)

有了这个,空的$ {command}就会落到*case.

我想做不可能的事吗?

string bash null case

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

带有CASE或IF ELSEIF的MySQL select语句?不知道如何获得结果

我有两张桌子.一个有制造商信息,包括他们可以出售的地区.另一个有他们的产品待售.我们必须根据地区限制产品的可见性.这就像Netflix在他们的系统中有视频只能在任何地方(1),只在加拿大(2),只在美国(3).

我正在尝试进行查询,告诉我可以根据制造商表中的设置查看产品的位置.

例如,在制造商表中,有两个名为expose_new和expose_used的字段,每个字段的值为1,2或3,以限制新视频或已用视频的显示位置.

添加视频时,不会为它们分配"公开"值,这是根据当前制造商的expose_new或expose_used值将它们添加到索引时动态完成的.

我想要得到的是项目详细信息以及根据它是新的还是使用的以及为所有新产品或旧产品分配给制造商的规则/值的计算值. 我需要基于每个产品的这个单个数字来有条件地将其显示在列表中.

以下不起作用,但您将了解我正在尝试做什么.我已尝试使用CASE语句和以下错误的IF/ELSEIF语句.

任何帮助调试这个并指出我正确的方向将不胜感激.

SELECT 
t2.company_name,
t2.expose_new,  // 1,2 or 3
t2.expose_used, // 1,2 or 3
t1.title,
t1.seller,
t1.status,  //can be new or used
(SELECT 
IF(status ='New',
  (select expose_new from manufacturers where id = t1.seller),1
)
ELSEIF(t1.status ='Used',
  (select expose_used from manufacturers where id = t1.seller),1
)
END IF
) as 'expose'
FROM `products` t1
join manufacturers t2 on t2.id = t1.seller
where t1.seller = 4238
Run Code Online (Sandbox Code Playgroud)

这是一个CASE版本,实际上似乎执行但总是导致第一个值,无论发生什么情况都是真的(在这种情况下为1).我不确定在每个WHEN语句中我是否可以使用AND添加另一个测试,但它不会给出错误,只会给出错误的结果.

SELECT 
t2.company_name,
t2.expose_new,
t2.expose_used,
t1.title,
t1.status,
 CASE status
   when …
Run Code Online (Sandbox Code Playgroud)

mysql select case

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

MySQL CASE如何工作?

我知道SQL的CASE语法如下:

CASE
    WHEN search_condition THEN statement_list
    [WHEN search_condition THEN statement_list] ...
    [ELSE statement_list]
END CASE
Run Code Online (Sandbox Code Playgroud)

但是,我不明白这是如何工作的,可能是因为我把它当作一个if陈述.

user_role例如,如果我在表中有一个字段,其中包含"Manager","Part Time"等名称,那么如何role_order根据角色生成具有不同编号的字段.在此示例的情况下,"if user_role ='Manager',然后role_order = 5".

请注意我正在寻找一个教男人如何钓鱼回答而不是给男人一个鱼回答.

mysql case

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