标签: case

SQL Case语句语法

我正在尝试编写一个select语句,它将选择一些字段,包括一个电子邮件字段.此表中有3个电子邮件字段,有时可以包含空值.我想看看3个领域; [电子邮件地址1],[电子邮件地址2],[电子邮件地址3]基本上我想做的是,如果[电子邮件地址3]为空,那么我想要[电子邮件地址2]中的值,如果电子邮件地址2为空,而不是我想要的值在[电子邮件地址1]

我似乎无法使语法正确,我不太确定我做错了什么.

sql-server case

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

布尔返回案例

我需要加入两个表.如果b列为空,则将在c列上完成连接.如果不是,则联接将在b列上.

这是我需要的.但是我怀疑我错过了一些东西,因为它看起来有点令人费解:

select *
from the_table t
inner join another_table a
   on
   case when a.b = '' then
      case when t.c = a.c then 1 else 0 end
   else
      case when t.b = a.b then 1 else 0 end
   end = 1
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

sql-server boolean case sql-server-2008

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

选择数据,如果重复id添加(求和)数据

我正在使用TSQL从数据库中选择数据.我想选择表中的所有数据但是如果id是重复的,则添加(sum)所有具有相同ID的列'a'并使其仅为1行.

输出中应该没有重复的ID.

    SELECT DISTINCT id,a,b FROM dbo.test WHERE 
   id not in (select id from dbo.test) CASE a WHEN a + a?? 
Run Code Online (Sandbox Code Playgroud)

例:

dbo.test
========
id  a  
1   4  
1   5 
2   3
3   2

output:

1 9 <-- two ids of 1 so column 'a' is added together.
2 3
3 2
Run Code Online (Sandbox Code Playgroud)

sql t-sql select case distinct

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

TSQL中CASE子句内的SELECT语句抛出错误

我不得不对一堆存储过程进行微调,并得到一个存储过程中有一些存储过程的IF ELSE blocks插入语句.因此,我使用case建模他们发现我得到语法错误尝试下面的语句(一个简单的例子,正在做什么)但确定你会得到这个想法

DECLARE @rowcount int
SELECT @rowcount = -1
 CASE WHEN @rowcount = -1 THEN
    select 'I WON THE RACE'
 WHEN '2' 
    SELECT 'WHAT A LOSER'
 END
Run Code Online (Sandbox Code Playgroud)

每个案例都有不止一个陈述,所以我只是将它们包含在内部(,)但是要进入noavail.请更正我对TSQL案例的了解.(如果有帮助,使用SQl Server 2005)

sql t-sql sql-server sql-server-2005 case

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

Eclipse中的重复大小写错误

public LabelsFactoryImpl() {
        super();
    }

    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public EObject create(EClass eClass) {
        switch (eClass.getClassifierID()) {
            case LabelsPackage.AREA_LABEL: return createAreaLabel();
            case LabelsPackage.AREA_LABEL_VALUE: return createAreaLabelValue();
            case LabelsPackage.COMMON_BORDER_RELATIONSHIP_LABEL: return createCommonBorderRelationshipLabel();
            case LabelsPackage.COMMON_BORDER_RELATIONSHIP_LABEL_VALUE: return createCommonBorderRelationshipLabelValue();
            case LabelsPackage.POPULATION_LABEL: return createPopulationLabel();
            case LabelsPackage.POPULATION_LABEL_VALUE: return createPopulationLabelValue();
            case LabelsPackage.RELATIVE_PHYSICAL_RELATIONSHIP_LABEL: return createRelativePhysicalRelationshipLabel();
            case LabelsPackage.RELATIVE_PHYSICAL_RELATIONSHIP_LABEL_VALUE: return createRelativePhysicalRelationshipLabelValue();
            case LabelsPackage.TRANSPORT_RELATIONSHIP_LABEL: return createTransportRelationshipLabel();
            case LabelsPackage.TRANSPORT_RELATIONSHIP_LABEL_VALUE: return createTransportRelationshipLabelValue();
            case LabelsPackage.PHYSICAL_RELATIONSHIP_LABEL_VALUE: return createPhysicalRelationshipLabelValue();
            case LabelsPackage.ROAD_TRANSPORT_RELATIONSHIP_LABEL: return createRoadTransportRelationshipLabel();
            case LabelsPackage.ROAD_TRANSPORT_RELATIONSHIP_LABEL_VALUE: return createRoadTransportRelationshipLabelValue();
            case LabelsPackage.EARTH_SCIENCE_LABEL: …
Run Code Online (Sandbox Code Playgroud)

java eclipse case duplicates

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

如果Haskell错误

我必须做一个软件来识别C中的令牌。我有以下代码:

*main = do
   x <- readFile "progc.c"
   let resultado = lexCmm X
   print resultado
lexCmm :: String -> [Tok]
  lexCmm X = case X of
    c:cs   | isSpace c     -> lexCmm cs
    c:cs   | isAlpha c     -> getId s
    c:cs   | isDigit c     -> getInt s
    c:d:cs | isSymb [c,d]  -> TS [c,d] : lexCmm cs
    c:cs   | isSymb [c]    -> TS [c]   : lexCmm cs
    _                      -> []  
   where
    getId s  = lx i : lexCmm cs where …
Run Code Online (Sandbox Code Playgroud)

haskell case

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

两个相同的代码但终端中的错误消息非常不同

这是我的第一个代码

maybe_devide :: Maybe Integer -> Maybe Integer -> Maybe Integer
maybe_devide maybeX maybeY = case (maybeX, maybeY) of
  (Just x, Just y)
    |x/=0 && y/=0 -> Just (div x y)
    |x==0 && y/=0 -> Just 0
    |x/=0 && y==0 -> Nothing
  (Nothing, Just y) -> Nothing
  (Just x, Nothing) -> Nothing
Run Code Online (Sandbox Code Playgroud)

代码1的错误消息如下所示:

[1 of 1] Compiling Main             ( test2.hs, interpreted )

test2.hs:1:246: parse error on input `->'
Failed, modules loaded: none.
Run Code Online (Sandbox Code Playgroud)

这是我的朋友Bryan Olivier写的第二个代码:

maybe_devide :: Maybe Integer -> Maybe …
Run Code Online (Sandbox Code Playgroud)

haskell case maybe

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

Java检查字符串变量长度(带子串)

我有一个String变量,每次运行时都可以有不同的长度.有了它,我会检查它的开头,例如:

 public void defineLocation(){
            if (newLocation.substring(0,2).equals("DO") || newLocation.substring(0,2).equals("30") || newLocation.substring(0,2).equals("21")) {
                locationInDc = "DOOR";
            } else if (newLocation.substring(0,2).equals("VT") || newLocation.substring(0,3).equals("MUF")) {
                locationInDc = "BLOUBLOU";
            } else if (newLocation.substring(0,3).equals("MAH")) {
                locationInDc = "BLOBLO";           
            } else if (newLocation.substring(0,7).equals("Zone 72") || newLocation.substring(0,7).equals("Zone 70")){
                locationInDc = "BLOFBLOF";
}
Run Code Online (Sandbox Code Playgroud)

我知道这不是最有效的方式,它必然会破坏,如果我的变量不在前3个检查中的任何一个但仍然具有比7更少的字符,那么它将抛出错误.

有没有更"正确"的方法来做到这一点?我应该首先检查字符串包含多少个字符,然后将其指向正确的检查/"ifs"?谢谢.

java string if-statement substring case

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

在SQL中嵌套WHEN

我想沿着这条线做一个SELECT

CASE
    WHEN Status = 'Live'
        THEN
            WHEN BookingDate = LastModifiedDateTime
                THEN
                    'New'
                ELSE
                    'Modified'
        ELSE
            Status
    END AS s
Run Code Online (Sandbox Code Playgroud)

我遇到了第二个问题 WHEN

关键字"WHEN"附近的语法不正确.

我不确定如何解决这个问题?

sql case sql-server-2008

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

SQL Server CASE语句有两个条件

我有一个样本表,其中包含帮助台呼叫中心数据.在此表中存储了呼叫日志和相关内容.该表有call_nodate_logged列和一列.

我试图使用一个案例,我可以获得给定时间段内的总呼叫数.

下面是示例代码.

SELECT
    COUNT(CASE WHEN CALLS.DATE_LOGGED BETWEEN '2018/04/06' AND '2018/04/07' 
               THEN calls.CALL_NO END) AS "CALLS LOGGED YESTERDAY"
FROM 
    LOGGED_CALLS CALLS
Run Code Online (Sandbox Code Playgroud)

这给了我系统中的调用总数,我不想在这种情况之外使用where子句.

让我们假设它再次是4月7日,我希望从前一天开始记录呼叫

t-sql sql-server select case between

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