标签: case

你如何在XQuery中打开一个字符串?

我有一个外部变量作为字符串,我想在它上面做一个开关/案例.我如何在xquery中做到这一点?

xml xquery case switch-statement

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

一个查询中的MySQL更新条件(UPDATE,SET&CASE)

我试图在可能的情况下在单个查询中更新一组记录(boolean字段).

输入来自分页无线电控件,因此给定POST的页面的ID 值为a truefalsevalue.

我试图朝这个方向前进:

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.

我假设我已经做了一些严重的语法错误,或者说我正在接近这个错误.

有关解决方案的任何想法?

mysql conditional case

12
推荐指数
2
解决办法
3万
查看次数

错误:CASE类型字符变化,数字无法匹配

我在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

sql postgresql select case

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

为什么R 3.6.0在计算表达式(“ Dogs” <“ cats”)时返回FALSE?

我有一些复杂的代码,但是我没有向您展示这一点,而是要提取问题的实质。

评估:"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")?

ascii r case

12
推荐指数
1
解决办法
250
查看次数

在 postgresql 上使用 IF 语句进行选择

我有这样的代码:

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 语句语法似乎使用正确

sql postgresql sum case aggregate-functions

12
推荐指数
2
解决办法
3万
查看次数

TSQL - 在Where子句中使用派生选择列

在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"的技巧).

sql t-sql sql-server sql-server-2005 case

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

带有UNION ALL的CASE的SQL ORDER BY

运行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)

sql postgresql union case sql-order-by

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

在mysql中的一个选择案例中的情况

我厌倦了尝试连接到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)

mysql nested case

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

如何将键映射到MySQL选择查询中单个字段的值

假设我们有一个字段状态(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状态表并像往常一样获取值.

mysql sql mapping replace case

11
推荐指数
1
解决办法
6022
查看次数

SQL,关键字'FROM'附近的CASE语句上的语法不正确

我试图让下面的代码工作,单独的两个代码(在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)

sql t-sql sql-server syntax case

11
推荐指数
5
解决办法
8276
查看次数