我是“随机化”在SQL Server表中的一些字符串做一个基本的加密他们。
我有一个嵌套的SQL替换大约35倍(AZ,1-9),基本上发生在字母和数字的每一个字母和另一个字母或数字取代它的功能。 其示例将是
Replace(Replace(Replace('a', 'c'), 'b', 'a'), 'c', 'b')
我盘算了一下,替换功能会去虽然喜欢“ABC”的字符串,并一度取代一切,并停止 - “驾驶室”。 这不!
它似乎想改变一些字符再次导致'abc'->'cab'->'ccb'
。
这是罚款,除非我有所谓的“AAC”另一个字符串,这可能导致重复的字符串,我输溯源至原来的。
谁能解释我如何能停止REPLACE()部分地回到了我的字符串?
SELECT * INTO example_temp FROM example;
Update KAP_db.dbo.example_temp Set col1 = replace(replace(replace(replace(replace(
replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(
replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(
replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(
col1, 'A', 'N'),'B', 'O'), 'C', 'P'), 'D', 'Q'), 'E', 'R'), 'F', 'S'), 'G', 'T'),
'H', 'U'), 'I', 'V'), 'J', 'W'), 'K', 'X'), 'L', 'Y'), 'M', 'Z'), 'O', 'A'), 'P', 'B'),
'Q', 'C'), 'R', 'D'),'S', 'E'),'T', 'E'),'U', 'E'),'V', 'F'),'W', 'G'),'X', 'H'),
'Y', 'I'),'Z', 'J'), '1', '9'),'2','8'),'3','7'),'4','6'),'5','5'),'6','4'),'7','3'),
'8','2'),'9','1'),' ','');
在“8EVHUAB”和“8EVHHAB”都输出“2DFEENA”上面的结果
更新------------------------------------------------- ------------------
好吧,我已经重做代码,到目前为止有:
DECLARE @Input AS VarChar(1000)
DECLARE @i AS TinyInt
Declare @Substring AS VarChar(1000)
Declare @Prestring AS VarChar(1000)
Declare @Poststring AS VarChar(1000)
Select @Input='ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789'
SELECT @i = 1
Select @Substring ='na'
WHILE @i <= LEN(@Input) BEGIN
Select @Prestring = SUBSTRING(@Input,-1,@i)
Select @Poststring = SUBSTRING(@Input,@i+1,LEN(@Input))
SELECT @Substring = replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace
(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace
(SUBSTRING(@Input,@i,1), 'A', 'N'),'B', 'O'), 'C', 'P'), 'D', 'Q'), 'E', 'R'), 'F', 'S'), 'G', 'T'), 'H', 'U'), 'I', 'V'), 'J', 'W'), 'K', 'X'), 'L', 'Y'), 'M', 'Z'), 'N', 'A'), '0', 'B'), 'P', 'C')
, 'Q', 'D'),'R', 'E'),'S', 'E'),'T', 'E'),'U', 'F'),'V', 'G'),'W', 'H'),'X', 'I'),'Y', 'J'), '1', '9'),'2','8'),'3','7'),'4','6'),'5','5'),'6','4'),'7','3'),'8','2'),'9','1'),' ','')
Select @Input = @Prestring + @Substring + @Poststring
SELECT @i = @i + 1
print 'END
'
END
这并不正常工作,虽然,代码不执行其写的,有什么建议?