我会搜索但我甚至不知道如何搜索这样的东西,所以就这样了。
我在一家公司工作,我正在查看许多旧的存储过程(目前我们在sql server 2012上,我不知道他们什么时候写的,但很可能3-5 +年前)。我在选择陈述中不断遇到这些小块,它们对我来说非常困惑。最终他们都是基于数学的,所以也许这些事情的表现原因是什么?也许他们比我想象的更常见,我还没有接触到他们?
这是一个例子,想象它隐藏在SELECT子句中,从具有数字"余额的表中选择"专栏(请原谅我,如果我的伙伴完全不匹配......你会得到这个想法。)
SELECT
...
HasBalance = LEFT('Y', 1 * ABS(SIGN(SUM(balance)))) + LEFT('N', 1 * (1 -ABS(SIGN(SUM(balance)))))
...
我的意思是, 或者' N'通过连接2个字符串(' Y' +'')或('' +' N'),每个这是通过使用3个函数将值(余额)减少到1或0乘以1来生成的,以确定每个LEFT函数中要采用的字符数(最终为0或1)。
但是来吧。
这是另一个例子:
sum(x.amount * charindex('someCode', x.code) * charindex(x.code, 'someCode'))
这个本质上是说x.code必须等于某些代码'或者返回0;否则返回x.amount。如果任何一个charindex失败,它会向混合中抛出一个* 0,然后输出数学数据。
还有很多其他人,他们并不可能弄清楚他们在做什么......但我仍然需要花时间搞清楚他们在做什么。
我所认为的模糊是否模糊不清?如果是这样,是否值得权衡(假设存在权衡)?
谢谢!