调整 SQL 表中的行
Posted
技术标签:
【中文标题】调整 SQL 表中的行【英文标题】:Adjust rows in SQL Table 【发布时间】:2021-03-17 08:11:50 【问题描述】:我们有一个字段,用户有时会输入错误的信息。直到现在,当我们尝试将信息导出到外部程序时,这都不是问题:数据导致了问题。所以现在的想法是修复具有不正确数据的行。问题是问题并不在所有领域,所以我不确定如何在不意外删除有效信息的情况下进行调整。
我想删除空格和“J”以及它后面的输入(它总是以“J”开头)。我使用Left([EU-VAT NR], InStr([EU-VAT NR], "J") - 1)
进行了查询,但问题是我仍然想要没有错误信息的“SE”和“RO”行。
RO 9999999 J11/1/1111
SE999999999
RO9999999
RO99999999 J11/11/1111
RO 99999999
我想到的是导出到 Excel,然后使用 text-to-columns 将信息拆分并删除不需要的信息,然后将更正的信息粘贴回表格中,但由于它有很多行如果出现问题,无法检测到。
【问题讨论】:
嗨,欢迎来到 SO。我看到一个问题,但我在这里没有看到问题。你能用一个问题更新你的帖子吗? 【参考方案1】:在您的查询中创建和使用小型辅助函数:
Public Function TrimSpaceJ(ByVal Value As String) As String
TrimSpaceJ = Split(Value, " J")(0)
End Function
【讨论】:
【参考方案2】:假设这是字符串中唯一的“J”,请考虑:
Trim(IIf(InStr([EU-VAT NR],"J")>0,Left([EU-VAT NR],InStr([EU-VAT NR],"J")-1),[EU-VAT NR]))
或者
Trim(IIf([EU-VAT NR] LIKE "*J*",Left([EU-VAT NR],InStr([EU-VAT NR],"J")-1),[EU-VAT NR]))
【讨论】:
以上是关于调整 SQL 表中的行的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server 2012 - 使用 LAG 从以前的行中获取数据