我有一个外部变量作为字符串,我想在它上面做一个开关/案例.我如何在xquery中做到这一点?
我试图在可能的情况下在单个查询中更新一组记录(boolean字段).
输入来自分页无线电控件,因此给定POST的页面的ID 值为a true或falsevalue.
我试图朝这个方向前进:
UPDATE my_table
SET field = CASE
WHEN id IN (/* true ids */) THEN TRUE
WHEN id IN (/* false ids */) THEN FALSE
END
Run Code Online (Sandbox Code Playgroud)
但是这导致"true id"行被更新为true,并且所有其他行都被更新为false.
我假设我已经做了一些严重的语法错误,或者说我正在接近这个错误.
有关解决方案的任何想法?
我在Postgres写了一个select语句,其中包含如下的case语句:
,(case when all_loc.country = 'DE' then msc_si.buyer_id else msc_si.buyer_name end) as "purchasing_group_name_buyer_name" --story
,(case when all_loc.country = 'DE' then msc_si.planner_code else mscp.description end) as "mrp_controller_name" --story
Run Code Online (Sandbox Code Playgroud)
我收到以下错误.我试过IS而不是=,没有工作.没有这两个case语句,查询运行完美.
错误:CASE类型字符变化,数字不能匹配SQL状态:42804
我有一些复杂的代码,但是我没有向您展示这一点,而是要提取问题的实质。
评估:"dogs" < "cats"…应评估为FALSER 3.6。
评估:"Dogs" < "cats"…这应该评估为,TRUE因为“ D”的ASCII码为68,而“ c”的ASCII码为99。由于68 <99,因此"Dogs" < "cats"应评估为TRUE,但在R 3.6.0中不这样。然而,当我尝试使用上的控制台窗口https://datacamp.com网站,表达"Dogs" < "cats"返回TRUE和表达式"dogs" < "Cats"返回FALSE-如预期。
因此,我的问题是,为什么R 3.6.0返回FALSE("Dogs" < "cats")?
我有这样的代码:
select
tbl.person
,COUNT(distinct tbl.project)
,if (tbl.stage like '%SIGNED%') then sum(tbl.value) else '0' end if as test
from
my_table tbl
group by
1
Run Code Online (Sandbox Code Playgroud)
它返回给我该错误消息:
SQL Error [42601]: ERROR: syntax error at or near "then"
Run Code Online (Sandbox Code Playgroud)
我没明白。正如我在文档中看到的,if 语句语法似乎使用正确
在TSQL中有没有办法做这样的事情:
select a,b,c,
case
when a=1 then 5
when a=2 then 6
end as d
from some_table
where d=6
Run Code Online (Sandbox Code Playgroud)
实际的case语句真的很复杂,所以我试图避免在where子句中重复它?这有什么窍门吗?
(我认为在MySQL中使用"有d = 6"的技巧).
运行PostgreSQL(7.4和8.x),我认为这是有效的,但现在我遇到了错误.
我可以单独运行查询,它工作正常,但如果我UNION或UNION ALL它会抛出一个错误.
这个错误输出:(警告:pg_query():查询失败:错误:列"Field1"不存在... ORDER BY CASE"Field1"W ...)
SELECT "Field1" AS field_1, "Field2" AS field_2,
"Field3" AS field_3, "Field4" AS field_4
FROM "TableName"
WHERE condition
AND other_condition
UNION ALL
SELECT "Field1" AS field_1, "Field2" AS field_2,
"Field3" AS field_3, "Field4" AS field_4
FROM "TableName"
WHERE yet_another_condition
AND yet_another_other_condition
ORDER BY CASE "Field1"
WHEN 'A' THEN 1
WHEN 'B' THEN 2
WHEN 'C' THEN 3
ELSE 4
END
Run Code Online (Sandbox Code Playgroud)
这有效:
SELECT "Field1" AS field_1, "Field2" AS field_2,
"Field3" AS field_3, "Field4" AS …Run Code Online (Sandbox Code Playgroud) 我厌倦了尝试连接到MSSQL,所以我转而使用mysql.这是缓慢的进展.这是我目前的傻瓜:mssql:
create function W(m varchar(255)) returns int begin
declare @e int
set @e = (select COUNT(N) from P where N = m)
declare @t int
set @t = dbo.C(m)
return case @t
when 0 then -1
when 1 then
case @e when 0 then -1 else 1 end
when 2 then
case @e when 1 then -1 when 2 then 0 when 3 then 0 when 4 then 1 end
when 3 then
case @e when 1 then -1 when …Run Code Online (Sandbox Code Playgroud) 假设我们有一个字段状态(0对于disabled,1for enabled),我们需要直接使用MySQL获取文字值,换句话说:如果我们请求查询:
select status
from `<table>`
Run Code Online (Sandbox Code Playgroud)
我们需要列显示如下:
status
----------
disabled
enabled
Run Code Online (Sandbox Code Playgroud)
不如下:
status
--------
0
1
Run Code Online (Sandbox Code Playgroud)
知道我们没有要加入的mysql状态表并像往常一样获取值.
我试图让下面的代码工作,单独的两个代码(在WHEN部分和ELSE部分)工作,但在本CASE声明中使用时,我得到一个错误
"'CAST'附近的语法不正确,预计'AS'." 错误.
基本上,如果WHEN语句代码等于或大于24,则使用该THEN语句,如果它小于24,则使用该ELSE语句.
在尝试了几个小时之后我似乎无法让这个工作任何迹象表明我出错的地方将不胜感激.
SELECT CASE
WHEN
(convert(float,datediff(mi, start_work, end_work))/60) >= '24'
THEN
(convert(float,datediff(mi, start_work, end_work))/60)
ELSE
(CAST(convert(varchar(2), dateadd(minute, datediff(minute, start_time, end_time), 0), 114)
* 60 + RIGHT (convert(varchar(5), dateadd(minute, datediff(minute, start_time, end_time), 0), 114),
CASE WHEN CHARINDEX(':',convert(varchar(5), dateadd(minute, datediff(minute, start_time, end_time), 0), 114)) > 0
THEN LEN(convert(varchar(5), dateadd(minute, datediff(minute, start_time, end_time), 0), 114))-3
ELSE LEN(convert(varchar(5), dateadd(minute, datediff(minute, start_time, end_time), 0), 114))
END) AS decimal) / 60 …Run Code Online (Sandbox Code Playgroud) case ×10
sql ×6
mysql ×3
postgresql ×3
sql-server ×2
t-sql ×2
ascii ×1
conditional ×1
mapping ×1
nested ×1
r ×1
replace ×1
select ×1
sql-order-by ×1
sum ×1
syntax ×1
union ×1
xml ×1
xquery ×1