在我编写的测试用例中,字符串比较似乎在SQL Server/.NET CLR之间的工作方式不同.
这个C#代码:
string lesser = "SR2-A1-10-90";
string greater = "SR2-A1-100-10";
Debug.WriteLine(string.Compare("A","B"));
Debug.WriteLine(string.Compare(lesser, greater));
Run Code Online (Sandbox Code Playgroud)
将输出:
-1
1
Run Code Online (Sandbox Code Playgroud)
这个SQL Server代码:
declare @lesser varchar(20);
declare @greater varchar(20);
set @lesser = 'SR2-A1-10-90';
set @greater = 'SR2-A1-100-10';
IF @lesser < @greater
SELECT 'Less Than';
ELSE
SELECT 'Greater than';
Run Code Online (Sandbox Code Playgroud)
将输出:
Less Than
Run Code Online (Sandbox Code Playgroud)
为什么不同?