如果我有像
这样的字符串select field1 + N' ' + field2 + N' ' + field3 from table1
如何制作以便我可以更改或替换从第三位到第五位的字符?
我的意思是如果上面的select语句返回一个字符串ABCD EFGH IJKL
,那么我想用CD(space)
替换*
感谢。
答案 0 :(得分:1)
使用填充功能:
SELECT STUFF('ABCD EFGH IJKL', 3, 3, '*');
select STUFF(field1 + N' ' + field2 + N' ' + field3, 3, 3, '*') from table1
语法:
STUFF ( character_expression , start , length , replaceWith_expression )
答案 1 :(得分:1)
我觉得STUFF功能是最好的方法。
下面是一个关于我如何接近相同
的小例子CREATE TABLE TESTDATA
(
DATA NVARCHAR(MAX),
DATA1 NVARCHAR(MAX),
DATA2 NVARCHAR(MAX)
)
INSERT INTO TESTDATA VALUES('ABCD','HGHG','HGFD')
INSERT INTO TESTDATA VALUES('HHGG','ADFS', 'ERET')
INSERT INTO TESTDATA VALUES('JKJK','GGHG', 'TRED')
DECLARE @DATA TABLE(DATA VARCHAR(100))
INSERT INTO @DATA select STUFF(DATA + N' ',3,3,'*') + DATA1 + N' ' + DATA2 from TESTDATA
SELECT * FROM @DATA
相同的结果将是,
AB*HGHG HGFD
HH*ADFS ERET
JK*GGHG TRED
我希望上面的内容很有用
答案 2 :(得分:0)
以这种方式尝试:
select replace(field1 + N' ' + field2 + N' ' + field3, 'CD ', '*') from
table1