我试图在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) 我下面有代码。我正在尝试学习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:上面的代码行的工作是什么,它仅在发生错误时才触发。