2017-06-23 56 views
-1

好日子SQL UPDATE大写字母

我有问题,我的脚本

UPDATE [dbo].[table] 
SET 
     [columnX] = replace([columnX], 'A', 'Ľ') 

UPDATE [dbo].[table] 
SET 
     [columnX] = replace([columnX], 'ľ ', 'B') 

Select * from [dbo].[table] 

columnX 
BzzBzz 
BzzzzBBz 
BzzzzzBB 
BzzzBB 

我需要的结果是这样的:

columnX 
BzzĽzz 
ĽzzzzBBz 
BzzzzzĽB 
BzzzBĽ 

我能改变什么让我更新正确/放弃他知道关于更低和更高的字母 我不能更改顺序,因为我需要做出如此多的更新和更改顺序使其他冲突.. 谢谢你们

+0

如果您正在使用替换所有''A's然后L's不会有输出任何'A'。你可以发布现有的数据和预期的结果吗? –

+0

你的意思是用'Ľ'替换'A'没有得到任何匹配? –

+0

[MySQL](https://dev.mysql.com/doc/refman/5.7/en/)和[SQL Server](https://docs.microsoft.com/zh-cn/sql/t-sql/语言参考)是不同的,由不同公司生产的不相关的软件包。请使用正确的标签。你发布的代码是[tag:sql-server]。 – axiac

回答

-1

更新表中设置columnX = 'AzzzzBAz',其中columnX = 'AzzzzAAz'

更新表中设置columnX = 'AzzzAB',其中columnX = 'AzzzAA'

+0

我的表格有+ 1百万行.. – Luka

+0

你能解释一下更清楚吗,你想要更新什么,例如columnx有BzzBzz,它想在两个z后有变化 – Bharathi

1

使用区分sensetive核对(例如用于Latin1_General,但你应该使用自己整理):

UPDATE [dbo].[table] 
SET [columnX] = replace([columnX], 'A' collate Latin1_General_CS_AS, 'Ľ') 
0

一个简单的方法是先从

UPDATE [dbo].[table] 
SET 
     [columnX] = replace([columnX], 'ľ ', 'B') 

然后

UPDATE [dbo].[table] 
SET 
     [columnX] = replace([columnX], 'A', 'Ľ')