gpt4 book ai didi

sql - 比较 2 列直到第一列 "."

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:24:06 24 4
gpt4 key购买 nike

我是 SQL 编程的新手,我正在尝试弄清楚如何获取报告以显示系统名称和 DNS 名称中的不匹配。这两列都在一个名为节点的表中。

系统名称 router-1-dc 和 DNS 将是 router-1-dc.domain 我正在尝试查找与“.”不匹配的节点在这个领域的例子之前是系统名称“router-1-datacenter”和 DNS 名称“router-1-dc.domain” 我希望此示例显示在报告页面上。

棘手的部分是有些系统名称有“.domain”,有些则没有。

这是我构建的 SQL 查询,但它似乎无法正常工作,因为我也需要它。

SELECT N. NodeID, N.Caption, N.SysName, N.DNS, N.IP_Address, N.Device_Type
FROM (
SELECT Nodes.NodeID, Nodes.Caption, Nodes.SysName, Nodes.DNS, Nodes.Device_Type, Nodes.IP_Address
FROM Nodes
WHERE CHARINDEX('.',Nodes.SysName)>0 AND CHARINDEX('.',Nodes.DNS)>0
) N
WHERE SUBSTRING(N.SysName, 1, CHARINDEX('.',N.SysName)-1) <> SUBSTRING(N.DNS, 1, CHARINDEX('.',N.DNS)-1)
AND N.Device_Type = 'UPS'

ORDER BY 5 ASC, 2 ASC

在此先感谢您的帮助

最佳答案

试试这个,或者类似的东西(我没有数据来测试它):

SELECT N.NodeID, N.Caption, N.SysName, N.DNS, N.IP_Address, N.Device_Type
from Nodes N
where left(n.sysname, charindex('.', n.sysname + '.') - 1 )
<> left(n.dns, charindex('.', n.dns + '.') - 1)
order by N.IP_Address, N.Caption

诀窍是添加一个“.”到每个字符串的末尾以进行评估。如果字符串中已经有一个句点,则这没有任何效果,否则您将获得整个字符串。

关于sql - 比较 2 列直到第一列 ".",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21634871/

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