gpt4 book ai didi

mysql - SQL CASE 比较 Text Datarow 和 Int Datarow

转载 作者:行者123 更新时间:2023-11-29 16:50:14 25 4
gpt4 key购买 nike

在我的表中,有数据行注释,它存储为文本数据类型。

我有 Datarow idPersonalstamm,它存储为 int。

我的问题是,有时来自 Personalstamm 的数据会被复制到评论中。

因此,我做了一个 case 语句,应该将两者都转换为 varchar,然后比较它们,如果 comment 等于 individualstamm,则应将 comment 设置为 Null,否则应给出该注释。

但它总是转到 else 语句。我有什么错或者我怎样才能以不同的方式实现我的目标?

整个事情是 Powershell 脚本的一部分,该脚本每周从访问者终端提取一次此查询。

> My output looks like this  
> Nr. id. Comment.
>1---2----2
> 2---3---some text
> 3---4---

> it should look like this
>Nr. id. Comment.
>1---2---
>2---3---some text
>3---4---



<pre><code>SELECT ROW_NUMBER() OVER(ORDER BY vb.Arrival ASC) AS Nr,
p.idPersonalstamm,
CASE vr.rating
WHEN 3 THEN 'Sehr Gut'
WHEN 2 THEN 'Gut'
WHEN 1 THEN 'Nicht so Gut'
ELSE 'Sonstiges'
END AS Bewertung,
<b>Case
WHEN CAST(vr.Comment as varchar (20)) = CAST(p.idPersonalstamm as varchar (20)) Then null
ELSE vr.Comment
END as Comment,</b>
vb.Arrival,
vb.Departure,
p.Name,
p.FirstName,
p.Company,
p.Stadt
From Personalstamm p
left join (
select vr.*,
row_number() over (partition by idPersonalstamm order by idPersonalstamm) as seqnum
from VisitRating vr
) vr on p.idPersonalstamm = vr.idPersonalstamm
left join (
select vb.*,
row_number() over (partition by idVisitor order by idVisitor) as seqnum
from VisitorBooking vb
) vb on p.idPersonalstamm = vb.idVisitor and vb.seqnum = vr.seqnum
where p.idPersonalstamm is not null</code></pre>

最佳答案

你能尝试一下吗:

Case 
WHEN LTRIM(CAST(vr.Comment as varchar (20))) = CAST(p.idPersonalstamm as varchar (20)) Then null
ELSE vr.Comment
END as Comment

或者: Case WHEN CAST(p.idPersonalstamm as varchar (20)) like '%' + CAST(vr.Comment as varchar (20)) + '%' 然后为 null ELSE vr.评论 作为评论结束

关于mysql - SQL CASE 比较 Text Datarow 和 Int Datarow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52851360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com