标签: case

SQL Server案例声明

我试图运行此sql语句,但它生成错误"更新附近的语法不正确"

Select Case @location 

        When 'MediaFiles' Then update tblMediaFiles set mdActive=1
        When 'MediaFiles1' Then update tblMediaFiles1 set mdActive=1
        When 'MediaFiles2' Then update tblMediaFiles2 set mdActive=2
        Else update tblMediaFiles4 set mdActive=1

    End
Run Code Online (Sandbox Code Playgroud)

sql sql-server case switch-statement

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

mysql中带有case和if条件的迟到和早去查询

我正在工作的员工时间表,下面是表格。Tech Support部门及Network ie员工实行两班[ 8:00 AM to 2:00 PM ][ 1:00 PM to 7:00 PM ]

以及正常换班[ 9:00 AM to 6:00 PM ]

现在,我正在尝试获取迟到和早退人员的报告。我在服务器端代码上几乎没有逻辑,但它运行得非常慢。所以我想从数据库中制作它。

我在做什么

我正在生成一份报告,迟到早退的员工

算法

  1. 查找员工的开始时间.. 以及相应的部门.. 和相应的班次
  2. 如果员工部门是软件部门,则当天轮班一次,否则当天轮班两次
  3. 从打卡时间和下班时间..找到员工的班次。
  4. 如果员工班次在 First 班次下,则使用 intime as08:00:00 AM和 outtime as01:00:00 PM
  5. 如果员工班次在第二班次下,则使用 intime as02:00:00 PM和 outtime as07:00:00 PM
  6. 如果员工轮班属于正常轮班,则使用 intime as08:55:00 AM和 outtime as06:00:00 PM

然后找到,现在找到它的login_time和log

表格

雇员

emp_id  |   emp_name    |   emp_dept
--------------------------------------
1 …
Run Code Online (Sandbox Code Playgroud)

mysql case

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

使用 ruby​​ 的 'case'/'when' 方法和 || 或 && 运算符等

我只是尝试运行一些看起来像这样的代码

def get_proj4(srid, type=nil)
  type.downcase! if type
  case type
  when nil || "epsg"
   open("http://spatialreference.org/ref/epsg/#{srid}/proj4/").read
  when "esri"
   open("http://spatialreference.org/ref/esri/#{srid}/proj4/").read
  end
end
Run Code Online (Sandbox Code Playgroud)

而且它运行不正常,每次都返回nil。将 括nil || "epsg"在括号中也不起作用

事实证明 ruby​​ 不允许我||在此使用运算符

现在我假设 ruby​​ 采用 case/when 方法并最终将其分解为一组看起来像这样的条件

x = type
  if x == (nil || "epsg")
    y = ...runs code...
  elsif x == "esri"
    y = ...
  end
x = nil
y
Run Code Online (Sandbox Code Playgroud)

但显然事实并非如此。这里发生了什么?

谢谢

ruby case andand conditional-statements or-operator

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

PostgreSQL:如何在函数的 CASE 表达式中使用 SELECT 语句?

我们可以在函数的 CASE 条件表达式中使用 SELECT 语句吗?
我尝试了以下功能来完成上述任务。

示例:我有一个用于显示包含某些行的表的函数。

create or replace function test(n integer) 
returns table (name text,city text) as
$body$
begin
     case n when 1 then
     select * from table1

     when 2 then
     select * from table2

     when 3 then
     select * from view1

     end;
end;
$body$
language plpgsql;
Run Code Online (Sandbox Code Playgroud)

--调用函数

select * from test(1);  
/*have to show details of table1*/

select * from test(2);
/*have to show details of table2*/

select * from test(3);
/*have to display details of view1*/
Run Code Online (Sandbox Code Playgroud)

postgresql case plpgsql

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

SQL旁路REPLACE by CASE语句

我有一些数据,其中一些记录包含空行(=没有空格,没有NULL).例如:

LOCALE
en-es
en-uk

uk-uk
Run Code Online (Sandbox Code Playgroud)

当我想选择那个空行时,它很容易:

SELECT LOCALE
FROM ABC
WHERE LOCALE = ''
Run Code Online (Sandbox Code Playgroud)

但是当我尝试按如下方式替换它时,它不起作用,结果仍然是空白行:

SELECT REPLACE(LOCALE,'','WHY') AS 'LOCALE'
FROM ABC
WHERE LOCALE = ''
Run Code Online (Sandbox Code Playgroud)

但如果我用CASE声明绕过它,它的作用是:

SELECT CASE
       WHEN LOCALE LIKE '' THEN 'WHY'
       ELSE LOCALE
       END AS 'LOCALE'
FROM ABC
WHERE LOCALE = ''
Run Code Online (Sandbox Code Playgroud)

这里有什么问题?为什么REPLACE功能不起作用?

t-sql sql-server replace case sql-server-2014

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

SQL聚合函数别名

我是SQL的初学者,这是我被要求解决的问题:

说一个大城市被定义为一个place类型的city具有至少10万人口.编写一个返回(state_name,no_big_city,big_city_population)订购方案的SQL查询state_name,列出那些拥有(a)至少五个大城市或(b)至少一百万人居住在大城市的州.列state_namenamestate,no_big_city是在国家大城市的数量,并且big_city_population为生活在该州大城市的人数.

现在,据我所知,以下查询返回正确的结果:

SELECT state.name AS state_name
     , COUNT(CASE WHEN place.type = 'city' AND place.population >= 100000 THEN 1 ELSE NULL END) AS no_big_city
     , SUM(CASE WHEN place.type = 'city' AND place.population >= 100000 THEN place.population ELSE NULL END) AS big_city_population
FROM state
JOIN place
ON state.code = place.state_code
GROUP BY state_name
    HAVING
        COUNT(CASE WHEN place.type = 'city' AND place.population >= 100000 …
Run Code Online (Sandbox Code Playgroud)

sql postgresql case aggregate-functions having

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

TSQL - 对动态表使用 Case 语句(行数未知)

我在尝试创建存储过程时遇到了一些问题。我将 Microsoft SQL Server Management Studio 2017 与 T-SQL 结合使用。我有 2 张桌子,eTasks并且eStaff. 以下是每个表的列:

电子员工

StaffID | Name
Run Code Online (Sandbox Code Playgroud)

电子任务

TaskID | StaffID | Title | CreateDate
Run Code Online (Sandbox Code Playgroud)

目前,根据数据显示,所有任务都分配给 StaffID“1”。eTasks 和 eStaff 表都会使用新任务和 Staff 进行更新,或者会被删除,这些表每天都不会具有完全相同的行。有时,eTask 表中会有 1000 行,接下来可能只有 400 行。有时 eStaff 表中会有 3 名工作人员,接下来可能有 12 名。

我想要做的是,当我运行存储过程时,在当前 StaffID 之间均匀分配任务。

到目前为止,这就是我所拥有的:

CREATE PROCEDURE UpdatingeTasksTable 
AS 
    DECLARE t_rowCount INTEGER
    DECLARE s_staffIDCount INTEGER

    SET t_rowCount = SELECT COUNT(*) FROM eTasks
    SET s_staffIDCount = SELECT DISTINCT StaffID FROM eStaff

    UPDATE eTasks
    SET StaffID …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server stored-procedures case

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

Python 中 STRINGS 的 switch-case 语句

我需要做一些类似于 CASE WHEN .. OR .. THEN 从 Python 中的 SQL for STRINGS 的事情。例如,如果我说“狗”或“猫”……我的翻译是“动物”。

我不想使用 IF ELIF ELIF ..

我能看到的唯一解决方案是:

l = ['cat','dog', 'turttle']
d = {'animal': ['cat','dog', 'turttle']}
word = 'cat'
if word in l:
    for i, j in d.iteritems():
        if word in j:
            print i
        else:
            print word

animal
Run Code Online (Sandbox Code Playgroud)

它有效,但看起来很丑陋..

还有其他解决办法吗?

谢谢!

python dictionary case switch-statement type-synonyms

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

case 和 match 有什么区别?

我混淆了约之间的差异matchcase。在文件中?它提到match支持通用模式匹配。

> (define (m x)
    (match x
      [(list a b c)
       #:when (= 6 (+ a b c))
       'sum-is-six]
      [(list a b c) 'sum-is-not-six]))
> (m '(1 2 3))
'sum-is-six

> (m '(2 3 4))
'sum-is-not-six 
Run Code Online (Sandbox Code Playgroud)

对于这个例子,我想我可以使用case表达式重写它。不过好像挺复杂的。我必须获得输入的长度x,也许还需要一个 lambda 函数来获取 的元素总和x并将其与6.

所以我想我们更喜欢match做模式匹配。这是真的吗?除此之外还有什么区别吗?

case match racket

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

使用字典键和值的 Python 匹配/大小写

我正在制作一个 pygame 游戏,每当我运行我的代码时,我都会收到错误expected ':'。我知道 using[]in match/case 块可用于其他用途,但如何解决这个问题?

case pygame.KEYDOWN:

    match event.key:

        case game.controls["pan_up"]:
            world_pos[1] -= 1

        case game.controls["pan_left"]:
            world_pos[0] -= 1

        case game.controls["pan_down"]:
            world_pos[1] += 1

        case game.controls["pan_right"]:
            world_pos[0] += 1
Run Code Online (Sandbox Code Playgroud)

错误信息框

dictionary case switch-statement python-3.10

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