gpt4 book ai didi

sql-server-2008 - PATINDEX 和 CHARINDEX 返回不同的答案 SQL Server 2008

转载 作者:行者123 更新时间:2023-12-04 23:59:05 27 4
gpt4 key购买 nike

我有一个表,我希望找到其中 0 的所有实例。是 最后 字符串字段中的字符。我通过使用两种方法进行了尝试,它们各自返回了不同的结果。

第一个查询似乎实际上返回了正确答案

select * from icd
where CHARINDEX('0',icd,LEN(icd)) =LEN(icd)

这个没有捕获所有的答案
select * from icd
where PATINDEX('%0%',icd) = LEN(icd)

使用
select t.ICD as theCharIndex,x.ICD as thePatIndex from
(

select * from icd
where CHARINDEX('0',icd,LEN(icd)) =LEN(icd)
) t
left join
(
select * from icd
where PATINDEX('%0%',icd) = LEN(icd)
) x on x.ICD=t.ICD
where x.ICD is null

我找到了 CHARINDEX的数据集捡到了 PATINDEX没有。我什至做了
update icd
set ICD=RTRIM(icd)

为什么会 PATINDEX不加选择地遗漏了一些行?

最佳答案

因为你在结束之前的某个地方有一个 0。
更改 PATINDEX('%0%',icd)PATINDEX('%0',icd)

关于sql-server-2008 - PATINDEX 和 CHARINDEX 返回不同的答案 SQL Server 2008,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13034584/

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