我有一个数据库,其中有很多文本都用大写字母表示,现在应该转换为普通的小写/大写形式。例如,这适用于技术性的东西
CIRCUIT BREAKER(D)480Y/277VAC,1.5A,2POL
这应该写为circuit breaker(D)480Y/277VAC,1.5A,2POL
我认为唯一的方法是拥有正确拼写的单词列表,然后执行“搜索并替换”之类的操作。
有人可以给我一个在MS SQL中解决此问题的线索吗?
答案 0 :(得分:1)
您可以做两件事之一-
编写一个简单的脚本(使用您喜欢的任何一种语言-例如php,perl,python等),该脚本都会从数据库中读取列,进行大小写转换并将值更新回数据库中
如果您不希望编写单独的脚本,第二种可能的解决方案是创建一个SQL函数,该函数读取需要更新的相应行/列,执行大小写转换和将其写/更新回数据库。
无论您对哪种方式比较满意。
答案 1 :(得分:0)
为字典创建映射表。它可以是会话中的临时表。使用值加载表,并使用此临时表进行更新。如果您希望将其作为永久的解决方案来处理传入的新行,则可以使用永久表。
CREATE TABLE #dictionaryMap(sourceValue NVARCHAR(4000), targetValue NVARCHAR(4000));
CREATE TABLE #tableForUpdate(Term NVARCHAR(4000));
INSERT INTO #dictionaryMap
VALUES ('%BREAKER%','breaker'),('%CIRCUIT%','circuit');
INSERT INTO #tableForUpdate
VALUES ('CIRCUIT BREAKER(D)480Y/277VAC,1.5A,2POL');
使用#tableForUpdate
在TSQL中使用WhileLoop对UPDATE进行#dictionaryMap
。