相关疑难解决方法(0)

Select语句中的案例

我有一个SQL语句,有一个CASESELECT,我只是无法正确.你们能告诉我一个例子CASE,说明案件的条件是什么,结果来自案件.例如:

     Select xxx, yyy
     case : desc case when bbb then 'blackberry';
     when sss then 'samsung';
     end 
     from (select ???? .....
Run Code Online (Sandbox Code Playgroud)

结果显示

 name                         age       handphone
xxx1                         yyy1      blackberry
xxx2                         yyy2      blackberry
Run Code Online (Sandbox Code Playgroud)

sql sql-server case

137
推荐指数
3
解决办法
75万
查看次数

你能在SQL中使用if-then-else逻辑吗?

我需要根据某种优先级从表中选择数据,如下所示:

select product, price from table1 where project = 1

-- pseudo: if no price found, do this:
select product, price from table1 where customer = 2

-- pseudo: if still no price found, do this:
select product, price from table1 where company = 3
Run Code Online (Sandbox Code Playgroud)

也就是说,如果我找到3个基于价格的产品project = X,我不想选择customer = Y.我只想返回结果3行并完成.

你怎么在SQL中做这样的事情?对pseudo-if使用某种CASE语句?做工会还是其他聪明的事情?

编辑:我正在使用MS SQL.

谢谢!

sql sql-server

94
推荐指数
3
解决办法
36万
查看次数

具有多个值的CASE IN语句

有没有办法用IN子句制作CASE语句?

SELECT
CASE c.Number
IN ('1121231','31242323') THEN 1
IN ('234523','2342423') THEN 2
END AS Test
FROM tblClient c
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2005

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

使用if语句如何替换值

我有两张桌子,

数据库1:

表格1:

  • Id -001(int)

  • 名称-xxx(varchar)

  • 男-0(位)

  • 女1(位)

数据库2:

表2:

  • Id -1(int)

  • Ca.Name-yyy(varchar)

  • 性别 - M或F(varchar)

这些是我的表.我想将数据库2,表2中的数据更新为database1,table1.所以我创建更新查询.但是我对性别领域有疑问

Select 'UPDATE T1
 SET T1.MALE ='+ CASE WHEN r.Gender = 'M' THEN 0 ELSE 1 END

 FROM T2 As r
Run Code Online (Sandbox Code Playgroud)

在下面的代码中,我主演的内容我怀疑如何在这里使用if语句.有谁理解纠正我的问题?

sql if-statement case sql-server-2008 sql-update

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

如何在MySQL CASE表达式中使用"OR"条件?

我有一个包含CASE表达式语句的过程,如下所示:

BEGIN
....
WHILE counter < total DO
....

 CASE ranking
  WHEN 1 OR 51 OR 100 OR 167 THEN SET
   project_name = 'alpha';
  WHEN 2 THEN SET
   project_name = 'beta';
  WHEN 10 OR 31 OR 40 OR 61 THEN SET
   project_name = 'charlie';
  ....
  ELSE SET
   project_name = 'zelta';
 END CASE;

 INSERT INTO project (id, name) VALUES (LAST_INSERT_ID(), project_name);
 SET counter = counter + 1;

END WHILE;
END
$$
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)

当我调用上述过程时,OR将完全跳过包含语句的案例,或者仅匹配列表中的第一项.我究竟做错了什么?

mysql expression case conditional-statements

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

SQL CASE WHEN或IF ELSE IF

在我想知道的情况下,如果我可以使用> <而不是定义每个案例,我有多个条件可以满足

在这种情况下,当信用评级小于3时,将插入单词"NO TRADE",然后大于3,小于5则为"POOR",依此类推等等

SELECT  ClientId, 
    FirstName,
    LastName,
    Gender,
    DateOfBirth,
    CreditRating,

        CASE CreditRating

            WHEN 0 THEN 'NO TRADE'
            WHEN 1 THEN 'NO TRADE'
            WHEN 2 THEN 'NO TRADE'
            WHEN 3 THEN 'POOR'
            WHEN 4 THEN 'POOR'
            WHEN 5 THEN 'AVARAGE'
            WHEN 6 THEN 'AVARAGE'
            WHEN 7 THEN 'GOOD'
            ELSE 'PERFECT' 

            END AS RATING

    FROM dbo.client
Run Code Online (Sandbox Code Playgroud)

sql

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

SQL Server 2008 R2中的SQL开关/案例

这是我的测试T-SQL.

DECLARE @TestVal INT

SET @TestVal = 1

SELECT 
   CASE @TestVal
      WHEN (1 | 2 | 6) THEN 'First' // I would like to check 1 or 2 or 6.
      WHEN 3 THEN 'Second'
      WHEN 4 THEN 'Third'
      ELSE 'Other'
   END
Run Code Online (Sandbox Code Playgroud)

目前的结果是'其他'.

我想把结果称为'第一'.我如何在我的T-SQL中使用(OR语句).

最好的祝福

sql-server-2008-r2

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