这种令人困惑的TSQL语法更有效吗?这真的令人困惑吗?

时间:2017-02-08 19:59:59

标签: sql-server

我会搜索但我甚至不知道如何搜索这样的东西,所以就这样了。

我在一家公司工作,我正在查看许多旧的存储过程(目前我们在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,然后输出数学数据。

还有很多其他人,他们并不可能弄清楚他们在做什么......但我仍然需要花时间搞清楚他们在做什么。

我所认为的模糊是否模糊不清?如果是这样,是否值得权衡(假设存在权衡)?

谢谢!

0 个答案:

没有答案