小编kam*_*ami的帖子

使用#temp表的SQL Server多重REPLACE

我试图在SQL Server查询中替换多个字符,并希望通过#temp表而不是嵌套的REPLACE来实现.我在下面得到了SQL代码,想要实现像这样的结果

ABC
DEF
GHI

IF OBJECT_ID('tempdb..#temp') IS NOT NULL DROP TABLE #temp
IF OBJECT_ID('tempdb..#temp2') IS NOT NULL DROP TABLE #temp2

CREATE TABLE #temp
(
    STRING_TO_REPLACE NVARCHAR(5)
)
INSERT INTO #temp (STRING_TO_REPLACE)
VALUES            (' ')
                 ,('/')
                 ,('_') 

CREATE TABLE #temp2
(
    STRING_NAME NVARCHAR(5)
)

INSERT INTO #temp2 (STRING_NAME)
VALUES            ('A BC')
                 ,('D/EF')
                 ,('G_HI')

SELECT REPLACE(t2.STRING_NAME,(SELECT t1.STRING_TO_REPLACE   
                               FROM #temp t1),'') 
 FROM #temp2 t2

IF OBJECT_ID('tempdb..#temp') IS NOT NULL DROP TABLE #temp
IF OBJECT_ID('tempdb..#temp2') IS NOT NULL DROP TABLE #temp2
Run Code Online (Sandbox Code Playgroud)

我可以用嵌套替换来实现结果

SELECT …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

10
推荐指数
1
解决办法
1646
查看次数

了解Excel VBA错误处理

我下面有代码。我正在尝试学习Excel VBA中的错误处理。

Sub LoopErrorHandling()
    Dim ws As Worksheet
    Dim c  As Range

    On Error GoTo LoopErrorHandling_Err

    Set ws = ThisWorkbook.Worksheets(1)

    ws.Range("C1:C5").ClearContents
    For Each c In ws.Range("A1:A5").Cells
        c.Offset(0, 2).Value = c.Value / c.Offset(0, 1).Value
    Next c

LoopErrorHandling_Exit:
    On Error Resume Next
    Set ws = Nothing
    On Error GoTo 0
    Exit Sub

LoopErrorHandling_Err:
    MsgBox Err.Description
    Resume Next
    Resume LoopErrorHandling_Exit

End Sub
Run Code Online (Sandbox Code Playgroud)

我想在上面的代码中补充以下内容。

  • 行应该在行Set ws = Nothing之前还是之后 LoopErrorHandling_Exit:
  • 线LoopErrorHandling_Err:不够,是 LoopErrorHandling_Exit:必要的。
  • LoopErrorHandling_Exit:上面的代码行的工作是什么,它仅在发生错误时才触发。
  • 上面的代码是否涵盖了excel vba中错误处理所需的所有内容,或者是否缺少任何内容。

excel vba excel-vba

4
推荐指数
1
解决办法
415
查看次数

标签 统计

excel ×1

excel-vba ×1

sql ×1

sql-server ×1

t-sql ×1

vba ×1