我在存储过程中有下面这行代码,我很难理解它:
REPLICATE(''*'', charindex(convert(varchar(1), o.RestrictedB), ''1'')) + op.Prefix
WHERE o.RestrictedB = 1 || 0
AND op.Prefix = 'Test'我得到了复制,我假设它会在op.Prefix前面加上x数量的***,但我对convert和charindex发生了什么感到有点困惑。
发布于 2015-02-06 05:08:06
这似乎是一个非常困难的说法:
(case when o.Restricted = 1 then '*' else '' end) + op.Prefix这个想法似乎是通过查找值在字符串“1”中的位置来检查值“0”或“1”。这将返回0或1,这是replicate()的复制因子。
如果我不得不猜测,这段代码是从某个charindex()字符串比"1“长的地方复制过来的。对单个字符的简化是令人困惑的(对于charindex()来说,使用更长的搜索字符串可能已经够让人困惑的了,但它会更有意义)。
https://stackoverflow.com/questions/28353971
复制相似问题