Я пытаюсь ЗАМЕНИТЬ несколько символов в запросе SQL Server и хочу достичь этого с помощью таблицы #temp вместо вложенного REPLACE. Я получил код SQL ниже и хочу, чтобы достичь результата, какSQL Server multiple REPLACE с таблицей #temp
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
можно добиться результата с вложенными заменить
SELECT REPLACE(REPLACE(REPLACE(t2.STRING_NAME,'_',''),'/',''),' ','') FROM #temp2 t2
, но очень хотел бы сделайте это через таблицу #temp. Пожалуйста, помогите мне в этом. Когда я пытаюсь запустить свой первый код, я получаю следующую ошибку
Msg 512, Level 16, State 1, Line 23 подзапрос возвращает более чем на 1 значение. Это не допускается, когда подзапрос следует =,! =, <, < =,
,> = или когда вложенный запрос используется в качестве выражения.
Вы пытаетесь генерировать вложенные выбрать динамически или вы пытаетесь произвести 3 (в данном случае) выберите инструкции, которые выполняются последовательно , (или что-то еще) – paulbarbin
Я в основном пытаюсь заменить '', '/', '_', если все или любые из них существуют в строке в любой ячейке столбца – kami