标签: case

在sqlite中使用Case语句,无法获得我正在寻找的结果

我在使用 SQL 查询时遇到困难。我正在使用sqlite。

我有一张桌子expenses。我正在尝试使用CASE语句来选择和求和值。以下是一些示例数据:

在此处输入图片说明

这是没有得到我想要的查询...

SELECT e.category, 
  CASE 
    WHEN e.schedule ='None' AND e.created_at > '2014-02-01 00:00:00 +0000' THEN SUM(e.amount) 
    WHEN e.schedule = 'Daily' THEN SUM(e.amount)*28.000000 
    WHEN e.schedule = 'Mon - Fri' THEN SUM(e.amount)*20 
    WHEN e.schedule = 'Weekly' THEN SUM(e.amount)*4.000000 
    WHEN e.schedule = 'Every 4 Weeks' THEN SUM(e.amount)*1.083333333333 
    WHEN e.schedule = 'Monthly' THEN SUM(e.amount)*1 
  ELSE 0 
  END 
AS totalValue FROM expenses e GROUP BY e.category ORDER BY e.category
Run Code Online (Sandbox Code Playgroud)

下面是查询返回的图片。

我想看到Housing420 的总价值,这是因为有三条记录带有category“住房”,其中一条schedule记录为“无”(记录 …

sql sqlite select sum case

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

SQL CASE WHEN 大于

我一直在搜索,在示例中一切看起来都很好,但实际上并非如此。我想根据金额计算加薪。出现缺少关键字错误。

SELECT o.operator_name,
       o.salary,
(CASE o.salary
 WHEN o.salary < 500 THEN o.salary * 1.35
 WHEN o.salary >= 500 AND o.salary < 1000 THEN o.salary * 1.15
 WHEN o.salary >= 1000 AND o.salary < 1500 THEN o.salary * 1.05 
 END) AS "Increase"
FROM operators o;
Run Code Online (Sandbox Code Playgroud)

我尝试使用 IF ELSIF,我得到“FROM 不是预期的地方”。

sql case

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

oracle case语句返回多个字符

您好,请更正我的查询


select * from table S1
WHERE  S1.stu ='12345'
AND S1.sem = (Select Case When col2 > col4 Then col2 Else col4 End From table2)
And S1.met1 in  (case when (S1.sem = 1) then ('1', 'D', 'F' )
                      when (S1.sem = 2) then ('1', '5', '7',  )
                      when (S1.sem = 3) then ('1',  'D', 'F' )
                      else s1.sem end);
Run Code Online (Sandbox Code Playgroud)

因为与表结合而应该使用case.我明白了

错误:缺少关键字

对于此查询

sql oracle case

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

插入语句检查为 NULL SQL Server 2008

我的小型 SQL 查询只是将数据从旧数据库导入到新数据库。我的新数据库不允许ProjectNo,ProjectName或者LeaderID是一个NULL值,所以我的代码需要检查该值是否是NULL,如果是,添加ProjectNameLeaderID(ProjectNo是旧表的主键,所以不能是NULL)的默认值。

据我所知,我已经正确地编写了 case 语句,但我不断收到以下错误:

无法将值 NULL 插入列“ProjectName”、表“ERP.dbo.Project”;列不允许空值。插入失败。

我也在使用 SQL Server 2008

INSERT INTO [ERP].[dbo].[Project] ([ProjectID], [ProjectName], [LeaderID])
   SELECT 
       ProjectNo, 
       CASE 
          WHEN ProjectName IS NULL THEN 'Unknown' 
       END, 
       CASE 
          WHEN ProjectLeaderID IS NULL THEN 1 
       END 
   FROM 
       Multitech.dbo.Projects
GO
Run Code Online (Sandbox Code Playgroud)

sql sql-server null insert case

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

SQL:根据 CASE 表达式添加一个新列并从另一个表中查找值

我正在尝试将一个名为 Multiplier 的新列添加到名为 Trades 的现有表中。此列的行值将取决于 Trades 表中名为 Type 的另一列。如果 Type 不是“Equity”、“Corp”或“Option”,则需要从另一个名为 ContractSize 的表中查找该值。最后,我希望 Multiplier 列的数据类型为十进制 (7,3 )我的代码是:

ALTER TABLE Portfolio.Trades
ADD Multiplier decimal(7,3) AS
(
CASE 
 WHEN Type = 'Equity' Then 1
 WHEN Type = 'Corp' Then 0.1
 WHEN Type = 'Option' Then 100
ELSE
 (SELECT ContractSize FROM Portfolio.ContractSize CS
 JOIN Portfolio.Trades T
 ON T.Identifier = CS.ContractSize)
)
Run Code Online (Sandbox Code Playgroud)

我在此代码上遇到两个错误:

消息 156,级别 15,状态 1,第 2 行 关键字“AS”附近的语法不正确。
消息 102,级别 15,状态 1,第 12 行 ')' 附近的语法不正确。

非常感谢一些指导。

sql sql-server case alter-table

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

psql:CASE 用法

我正在学习 psql,并且对 CASE 关键字非常困惑。

假设我有一张桌子“宠物”。

    name     | species |       owner        | gender |     color
-------------+---------+--------------------+--------+---------------
 Nagini      | snake   | Lord Voldemort     | female | green
 Hedwig      | owl     | Harry Potter       | female | snow white
 Scabbers    | rat     | Ron Weasley        | male   | unspecified
 Pigwidgeon  | owl     | Ron Weasley        | male   | grey
 Crookshanks | cat     | Herminone Granger  | male   | ginger
 Mrs Norris  | cat     | Argus Filch        | female | dust-coloured
 Trevor      | toad …
Run Code Online (Sandbox Code Playgroud)

sql postgresql case psql

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

mySQL:使用 CASE 过滤列

我有以下代码:

    SELECT
    t1.a
    t1.b
    CASE WHEN t1.c = Z THEN m
         WHEN t1.c = Y THEN n
         ELSE p END as m_or_n_or_p
    FROM t1
Run Code Online (Sandbox Code Playgroud)

我可以添加吗

WHERE m_or_n_or_p = m
Run Code Online (Sandbox Code Playgroud)

最后以这种方式过滤我的查询还是我必须将其全部包装在另一个 SELECT 中?

mysql sql select case where-clause

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

C#中的乘法

我是C#的新手,并尝试使用Switch进行乘法的以下程序.该程序完全通过Switch案例,但相乘的结果不会显示在控制台中.你能帮忙吗?

using System;

public class Program
{
 public static void Main(string[] args)
 {
    int _pLicense = 50;
    int _sLicense = 100;
    int _eLicense = 150;
    String lType;
    int nSeats;
Console.WriteLine("\n1.Personal License\n2.Startup License\n3.Enterprise License");
        Console.WriteLine("Enter the license type");
        lType = Console.ReadLine();
        //lType = char.Parse(Console.ReadLine());


switch(lType)
    {
        case "1":
            Console.WriteLine("Enter the number of seats");
            nSeats = int.Parse(Console.ReadLine());
            //Console.WriteLine(_pLicense);
            int Cost = _pLicense*nSeats;
            Console.WriteLine("Personal License Cost : $", +Cost);
            break;
        case "2":
            Console.WriteLine("Enter the number of seats");
            nSeats = int.Parse(Console.ReadLine());
            //Console.WriteLine(_sLicense);
            Cost = …
Run Code Online (Sandbox Code Playgroud)

c# case multiplication switch-statement

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

如果一行存在于另一个表中,如何更新 (SQL)

itemTable如果iid相关表上存在匹配的行,我正在尝试更新 a 上的列。

itemMeta是一个 NoSQL 风格的表,表上iid每一项都有重复的s,itemTable是一个关系表。

update itemTable it
set hasAttributes = (select
  case when select count(1) from itemMeta where (im.iid = it.iid) 
  then 'Y' 
  else 'N' end)
from itemMeta im
where (im.iid = it.iid)
Run Code Online (Sandbox Code Playgroud)

如何将列设置为YitemTable,如果有匹配的行iid上存在itemMeta

sql sql-server case exists sql-update

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

ORA-00904: "Good Resort": 无效标识符

我创建了以下选择查询来显示基于 if then else 使用的数据 CASE-WHEN-THEN

select id,name,
    case
     when rating between 4.0 and 5 then "very good"
     when rating between 3.0 and 3.5 the "good"
    else "Good Resort"
    end as comment
from resort
order by id;
Run Code Online (Sandbox Code Playgroud)

执行时它给出了这个

错误

ORA-00904 : "Good Resort": 无效标识符

sql oracle case ora-00904

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