这是一个基于表现的问题,而不是" 我不理解 "或" 最佳实践 "的问题.
我在SQLServer数据库中有一个varchar字段,保证长度超过7个字符.我需要提取一个char(4)字段,该字段由varchar中的第2,第3,第4和第5个字符组成.
例如,如果varchar的值为1234567890,那么我将寻找2345部分.
在左右组合中使用子字符串是否有性能优势?
SELECT SUBSTRING(account,2,4) FROM payment
Run Code Online (Sandbox Code Playgroud)
要么
SELECT RIGHT(LEFT(account,5),4) FROM payment
Run Code Online (Sandbox Code Playgroud)
我注意到在一个有1,760,335条记录的表格上使用右键左边有一点点优势,但我不确定这是否是由于缓存查询等原因造成的.
更新
我做了更多的功课.似乎在这种情况下,右 - 左最终作为右子串执行.这是一个规则吗?或者它只是SQLServer决定皮肤这个特殊猫的方式?
