我正在使用SQL Server 2008.假设以下列。
column1
cjd.001 306.1
cjd.001 306.2
cjd.001 306.R
现在我要替换所有'。'用' - '。但只是从第一个字符串开始,即空格之前或低于8个字符。其余字段应保持不变。
SampleOutput
cjd-001 306.1
cjd-001 306.2
cjd-001 306.R
我尝试了以下查询,但它取代了所有'。'。
UPDATE dbo.table
SET column1 = REPLACE(column1, '.', '-')
我想知道在where子句中我可以使用什么? 尝试使用子串函数,但它没有工作。
答案 0 :(得分:2)
我认为你需要一个像这样的SQL:
UPDATE yourTable
SET column1 = REPLACE(SUBSTRING(column1, 1, CHARINDEX(' ', column1)), '.', '-')
+ SUBSTRING(column1, CHARINDEX(' ', column1) + 1, LEN(column1));