T-SQL在视图中替换或替换



我有一个T-SQL脚本,需要在其中更改返回值。它正在存储在视图中。脚本如下:

WITH live AS
(
SELECT *
, ROW_NUMBER() OVER (PARTITION BY [Customer Name] ORDER BY [DateTime] DESC) AS last_occ
, CONVERT(INT,[Count]) AS CountInt   
FROM [Database].[Table]           
)
SELECT *
FROM live

我需要挤压

REPLACE([Column_name], 'orig_string', 'new_string')

在某个地方,但每个位置都不断返回一个错误。

注意:我需要这个来适应原始字符串,所以我想知道我是否可以使用SWITCHIF函数。

所以现在我只面临剩下的任务如何将其封装到条件中

String 1 => Adjusted_String 1String 2 => Adjusted_String 2String 1 => Adjusted_String 1String 3 => Adjusted_String 3String 3 => Adjusted_String 3String 1 => Adjusted_String 1

如果不会导致意外的替换,那么只运行多次替换可能是最简单的

SELECT REPLACE(REPLACE(REPLACE(originalcolumn
,'String 1', 'Adjusted_String 1')
,'String 2', 'Adjusted_String 2')
,'String 3', 'Adjusted_String 3')

如果你想有条件地这样做:

SELECT 
CASE 
WHEN originalcolumn LIKE '%String 1%' THEN REPLACE(originalcolumn, 'String 1', 'Adjusted_String 1')
WHEN originalcolumn LIKE '%String 2%' THEN REPLACE(originalcolumn, 'String 2', 'Adjusted_String 2')
WHEN originalcolumn LIKE '%String 3%' THEN REPLACE(originalcolumn, 'String 3', 'Adjusted_String 3')
END as ...

我设法通过使其工作

WITH live AS
(
SELECT * ,

ROW_NUMBER() OVER (PARTITION BY [Customer Name] ORDER BY [DateTime] DESC) AS last_occ,
CONVERT(INT,[Count]) AS CountInt,
REPLACE([Column_name], 'orig_string', 'new_string') AS NewString    
FROM [Database].[Table]

)
SELECT * FROM live