我试图运行此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) 我正在工作的员工时间表,下面是表格。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 ]
现在,我正在尝试获取迟到和早退人员的报告。我在服务器端代码上几乎没有逻辑,但它运行得非常慢。所以我想从数据库中制作它。
我正在生成一份报告,迟到早退的员工
08:00:00 AM和 outtime as01:00:00 PM02:00:00 PM和 outtime as07:00:00 PM08:55:00 AM和 outtime as06:00:00 PM然后找到,现在找到它的login_time和log
emp_id | emp_name | emp_dept
--------------------------------------
1 …Run Code Online (Sandbox Code Playgroud) 我只是尝试运行一些看起来像这样的代码
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)
但显然事实并非如此。这里发生了什么?
谢谢
我们可以在函数的 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) 我有一些数据,其中一些记录包含空行(=没有空格,没有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功能不起作用?
我是SQL的初学者,这是我被要求解决的问题:
说一个大城市被定义为一个
place类型的city具有至少10万人口.编写一个返回(state_name,no_big_city,big_city_population)订购方案的SQL查询state_name,列出那些拥有(a)至少五个大城市或(b)至少一百万人居住在大城市的州.列state_name是name的state,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) 我在尝试创建存储过程时遇到了一些问题。我将 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) 我需要做一些类似于 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)
它有效,但看起来很丑陋..
还有其他解决办法吗?
谢谢!
我混淆了约之间的差异match和case。在文件中?它提到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做模式匹配。这是真的吗?除此之外还有什么区别吗?
我正在制作一个 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)
case ×10
sql-server ×3
dictionary ×2
postgresql ×2
sql ×2
t-sql ×2
andand ×1
having ×1
match ×1
mysql ×1
or-operator ×1
plpgsql ×1
python ×1
python-3.10 ×1
racket ×1
replace ×1
ruby ×1