gpt4 book ai didi

sql - JOIN ON 子句中的 T-SQL Case 语句

转载 作者:行者123 更新时间:2023-12-02 17:03:39 25 4
gpt4 key购买 nike

我正在尝试在 JOIN ON 子句中构建 case/if 语句。

LEFT JOIN [CTSTRC] [Statuses] ON RIGHT([Statuses].[STRID], 3) = [CTE].[F61]

问题在于 [Statuses].[STRID] 列包含文本和数字。我将其与 [CTE].[F61] 进行比较的列是一个整数。

有没有办法检测列[Statuses].[STRID]是否有字符或数字,如果是字符则将其设置为0?

这是一个可以提供帮助的伪查询:

LEFT JOIN [CTSTRC] [Statuses] 
ON RIGHT((
CASE [Statuses].[STRID]
WHEN TEXT THEN 0
ELSE CAST([Statuses].[STRID] AS INT) END), 3) = [CTE].[F61]

最佳答案

您正在寻找 IsNumeric,但它并不总是有效(+、- 和 . 是数字),因此您需要使用解决方案 described by GBN即将 .0e0 添加到您的 varchar

LEFT JOIN [CTSTRC] [Statuses] ON 
(CASE WHEN ISNUMERIC(RIGHT([Statuses].[STRID], 3) + '.0e0) = 1
THEN CAST(RIGHT([Statuses].[STRID], 3) AS INT)
ELSE 0 END) = [CTE].[F61]

关于sql - JOIN ON 子句中的 T-SQL Case 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8361183/

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