gpt4 book ai didi

SQL 服务器 : Compare two columns

转载 作者:行者123 更新时间:2023-12-02 00:56:51 24 4
gpt4 key购买 nike

我在 SQL 表中有两列,如下所示。我需要比较这两列是否不匹配,但由于额外的小数,我得到了错误的结果。当我尝试转换第一列时出现错误

"Error converting data type varchar to numeric."

如何解决这个问题?第一列的长度不同。

Column01(varchar)   Column02(Decimal)
0.01 0.010000
0.255 0.255000

最佳答案

Column01 中的数据无法转换为 DECIMAL

对于 SQL Server 2012+ 我会使用 TRY_PARSE :

SELECT *
FROM your_table
WHERE Column02 = TRY_PARSE(Column01 AS DECIMAL(38,18));

LiveDemo

当无法安全地转换列中的值时,您会得到 NULL

对于 SQL Server 2008,您可以使用:

SELECT *
FROM #tab
WHERE (CASE
WHEN ISNUMERIC(Column01) = 1 THEN CAST(Column01 AS DECIMAL(38,18))
ELSE NULL
END) = Column02;

编辑:

如果您需要在列级别使用:

SELECT Column01, Column02,
CASE WHEN Column02 = TRY_PARSE(Column01 AS DECIMAL(38,18))
OR (Column02 IS NULL AND Column01 IS NULL)
THEN 'true'
ELSE 'false'
END AS [IsEqual]
FROM #tab;

LiveDemo2

关于SQL 服务器 : Compare two columns,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33834101/

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