执行查询时出现此错误:
SELECT DISTINCT
sub.[IP Address],
sub.IPAddressToInteger,
bt.Subnet
FROM
(SELECT DISTINCT
[IP Address],
[dw].[IPAddressToInteger] ([IP Address]) AS IPAddressToInteger
FROM
dw.vw_Device dd
WHERE
[IP Address] <> NULL) sub
LEFT JOIN
dw.btdiamond bt ON sub.IPAddressToInteger BETWEEN bt.startipaddressinteger AND bt.endipaddressinteger
查询使用将IP地址转换为整数的函数。
这允许将IP地址与子网匹配。
我猜是这个错误的原因,也许[IP地址]包含NULL,+,-等值。
如何选择发生错误的所有行?
然后结束如何消除这些错误?
更新: 这是功能:Function
答案 0 :(得分:0)
不是100%清楚您需要什么...如果您想要一个不会积蓄意外字符的函数,则需要发布该函数代码。 如果您希望能够识别出具有意外字符的行,那么可以对其进行修复...您可以使用类似以下的内容...
SELECT
*
FROM
dbo.BaseTable bt
WHERE
bt.IP_Address LIKE '%[^0-9.]%';