标签: case

SQL CASE [Column] WHEN IN('case1','case2')那么'oops'END?

有没有办法在数组中检查CASE:

SELECT CASE [Option] WHEN IN (1, 3, 99) THEN 'Wrong option' ELSE 'You go!' END
Run Code Online (Sandbox Code Playgroud)

sql sql-server syntax case

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

在C#中保持案例完整的同时替换文本

我有一组我需要用来替换的句子,例如:

abc => cde
ab df => de
...
Run Code Online (Sandbox Code Playgroud)

我有一个文本在哪里进行更改.但是我无法预先知道所述文本的情况.所以,例如,如果我有:

A bgt abc hyi. Abc Ab df h
Run Code Online (Sandbox Code Playgroud)

我必须更换并获得:

A bgt cde nyi. Cde De h
Run Code Online (Sandbox Code Playgroud)

或尽可能接近,即保持情况

编辑:因为我看到很多混乱,我会尝试澄清一点:

我问的是一种在更换之后保留帽子的方法,我不认为它通过了很好(没有很好地解释什么是thaat)所以我将使用真实的单词给出一个更现实的例子.

把它想象成一个gossary,用它们的正义代替表达式,所以如果我映射:

didn't achieve success => failled miserably
Run Code Online (Sandbox Code Playgroud)

然后我得到了作为输入的句子:

As he didn't achieve success, he was fired
Run Code Online (Sandbox Code Playgroud)

我会的

As he failled miserably, he was fired
Run Code Online (Sandbox Code Playgroud)

但是如果没有资本化,那么如果实现或成功资本化,那么就会失败,如果有任何超过1个字母的资本化,那么这将是悲惨的

我的主要可能性是(我真正想要考虑的是)

  • 只有第一个单词的首字母大写
  • 只有每个单词的第一个字母大写
  • 所有字母都大写

如果我可以处理那些已经可以接受的三个 - 我认为这是更容易的 - 当然如果可以获得更深入的解决方案会更好

有任何想法吗?

c# string replace case

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

SQL中使用带有GROUP BY的CASE的SQL.需要CASE值但获取行值

所以基本上有1个问题和1个问题:

1.问题 - 当我在一个表中有100列(并且没有设置键或uindex)并且我想加入或者选择该表时,我是否真的必须写出每个列名?

2.问题 - 下面的例子显示了1.问题和我的实际SQL语句问题

例:

A.FIELD1,
(SELECT CASE WHEN B.FIELD2 = 1 THEN B.FIELD3 ELSE null FROM TABLE B WHERE A.* = B.*) AS CASEFIELD1
(SELECT CASE WHEN B.FIELD2 = 2 THEN B.FIELD4 ELSE null FROM TABLE B WHERE A.* = B.*) AS CASEFIELD2
FROM TABLE A
GROUP BY A.FIELD1
Run Code Online (Sandbox Code Playgroud)

故事是:如果我没有将CASE放入其自己的select语句中,那么我必须将实际的rowname放入GROUP BY中,而GROUP BY不会将CASE中的NULL值分组,而是将实际值从行.因此,我必须加入或选择所有列,因为没有键,没有uindex,或者以某种方式找到另一种解决方案.

DBServer是DB2.

现在用语言和没有SQL来描述它:我有"订单项",可以分为"ZD"和"EK"(1 = ZD,2 = EK),可以按"经销商"分组.即使"订单商品"可以具有两个不同的"部分"(ZD,EK)中的一个,但是"ZD"和"EK"的字段/行始终都被填充.我需要分组来考虑"离开",并且只有当指定的"部门"(ZD或EK)正在改变时,我才想要创建一个新的组.

SELECT
(CASE WHEN TABLE.DEPARTEMENT = 1 THEN TABLE.ZD ELSE null END) AS ZD,
(CASE WHEN TABLE.DEPARTEMENT = 2 …
Run Code Online (Sandbox Code Playgroud)

sql db2 case where

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

在此查询中何处放置CASE WHEN列IS NULL

我在将MS Access查询转换为SQL时遇到了一些问题:

SELECT id, col1, col2, col3
FROM table1

LEFT OUTER JOIN table2
ON table1.id = table2.id

LEFT OUTER JOIN table3
ON table1.id = table3.id
Run Code Online (Sandbox Code Playgroud)

到目前为止一切都那么好,但这里是我被卡住的(CASE)部分:

CASE WHEN table3.col3 IS NULL THEN table2.col3 AS col4 ELSE table3.col3 as col4
Run Code Online (Sandbox Code Playgroud)

我知道上面这行不起作用,但希望它能暗示我正在努力实现的目标.谢谢!

更新:到目前为止的所有建议都导致"关键字'AS'附近的语法不正确"错误,所以也许还有其他我不知道的东西.下面是实际查询.问题是我们有两个表,都有和EUID列.如果dbo.EU_Admin3.EUID不为NULL,则它在连接中优先.如果dbo.EU_Admin3.EUID为NULL,请改用dbo.EU_Admin2.EUID.希望澄清一下.

SELECT dbo.AdminID.CountryID, dbo.AdminID.CountryName, dbo.AdminID.RegionID, 
dbo.AdminID.[Region name], dbo.AdminID.DistrictID, dbo.AdminID.DistrictName,
dbo.AdminID.ADMIN3_ID, dbo.AdminID.ADMIN3 
(CASE WHEN dbo.EU_Admin3.EUID IS NULL THEN dbo.EU_Admin2.EUID ELSE dbo.EU_Admin3.EUID END AS EUID)
FROM dbo.AdminID 

LEFT OUTER JOIN dbo.EU_Admin2
ON dbo.AdminID.DistrictID = dbo.EU_Admin2.DistrictID

LEFT OUTER JOIN dbo.EU_Admin3
ON dbo.AdminID.ADMIN3_ID = …
Run Code Online (Sandbox Code Playgroud)

sql null ms-access case

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

Ruby` when'关键字在case语句中不使用==.它有什么用?

x == User返回true,但case x语句不运行与之关联的块User.这里发生了什么事?

u = User.new
# => #<User:0x00000100a1e948>

x = u.class
# => User

x == User
# => true

case x
when User
  puts "constant"
when "User"
  puts "string"
else
  puts "nothing?"
end
# => nothing?
Run Code Online (Sandbox Code Playgroud)

ruby case

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

在SQL中使用'CASE'进行SELECT

我有一组一对一的映射A - > apple,B-> Banana和那样..我的表有一个值为A,B,C的列.

现在我正在尝试使用一个select语句,它会给我直接的结果

SELECT 
  CASE 
     WHEN FRUIT = 'A' THEN FRUIT ='APPLE' 
     ELSE WHEN FRUIT ='B' THEN FRUIT ='BANANA'     
 FROM FRUIT_TABLE;
Run Code Online (Sandbox Code Playgroud)

但我没有得到正确的结果,请帮帮我..

sql select case

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

案例陈述中的RAISERROR

你能否在T-SQL的case语句中引发错误?我总是遇到SQL case语句的问题:/

    begin try
    declare @i int 
    --set @i = (select COUNT(1) from table_name)

    select Item_Num =
        CASE (select COUNT(1) from table_name)
            when 1 then (select Item_Num from table_name)
            when 0 then (raiserror('No records in database', 0, 0))
            ELSE (raiserror('Multiple records in database', 0, 0))
        END
    from table_name

    end try
    begin catch
        declare @errormsg nvarchar(1024),
                @severity int,
                @errorstate int;

        select @errormsg = error_message(),
                @severity = error_severity(),
                @errorstate = error_state();

        raiserror(@errormsg, @severity, @errorstate);
    end catch
Run Code Online (Sandbox Code Playgroud)

t-sql case raiserror

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

如何在单个SQL CASE语句中获取多个列?

我试图从单个CASE语句中获取多个列(在这种情况下为insuredcode,insuredname).

已尝试以下查询,但它将insuredcode和insuredname连接为一列.

从这样的CASE语句中返回两列的正确语法是什么?

select
    case
        when a.policyno[2] in ('E', 'W') then c.insuredcode || c.insuredname
        else b.insuredcode || b.insuredname
    end
from prpcmain a
left join prpcinsured_1 b on b.proposalno=a.proposalno 
left join prpcinsured_2 c on c.proposalno=a.proposalno
where a.policyno in (select policyno from policyno_t);
Run Code Online (Sandbox Code Playgroud)

sql informix case

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

我们可以在没有else语句的情况下编写case语句

我有这个问题:

select case when id=1 then 'A'
when id=2 then 'B'
end 
from test
Run Code Online (Sandbox Code Playgroud)

它给了我o/p as

Id
A
B
NULL
NULL
NULL

我不希望NULL在输出中有值,我只想在A和B中进行比较,是否可能在case语句中.

sql sql-server select case sql-server-2008

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

C++ if 语句位于 switch 中的 case 之前

我的任务是为我的公司重写一些旧软件,并在源代码中发现了一个有趣的构造。

switch(X){
    if(Y==Z){
       case A: ... break;
       case B: ... break;
    }
    case C: ... break;
    default: ...;
}
Run Code Online (Sandbox Code Playgroud)

编译器警告我,if 语句中的代码将不会被执行,但在测试时似乎 if 语句未经过验证,但 case 语句却经过验证。

有没有什么原因,也许是早期的 C++ 时代,因为有些代码到现在已经有 20 多年的历史了,为什么你会编写这样的构造?它在生产代码中,所以它似乎确实做了一些事情?

如果我能像编译器那样忽略它,我将感谢任何内部原因。

编辑:它也发生了多次,所以它似乎不是一个简单的错误。这就是让我困惑的地方。

Edit2:这是我用于测试的示例。我不确定它有多大帮助,但是原始代码位于一个 1200 行的怪物函数中,因此从中创建一个基本上是不可能的。

for (int i=0; i<5;i++)
{
    switch(i)
    {
        if (i==0 || i ==1)
        {
            cout << "reached before case";
            case 0: cout << "inside case 0" << std::endl; break;
            case 1: cout << "inside case 1" << std::endl; break;
            case 2: cout << "inside case 2" …
Run Code Online (Sandbox Code Playgroud)

c++ if-statement case switch-statement

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