在SQL中比较C#中的字符串

时间:2016-05-26 07:29:39

标签: c# sql-server

所有人的好日子;) 任何人都可以帮我找到算法或已经解决的解决方案来比较像SQL这样的字符串。

例如 在SQL中,我可以比较

的字符串
  

=或< =,>,<   e.t.c。

在已知的C#中,我们无法做到。

我想比较像

这样的东西

“aa”> “b”“ab”< “aa”“abc”> =“bca”等等......

另外,也许有人知道SQL的逻辑是什么吗?

2 个答案:

答案 0 :(得分:7)

字符串实施IComparable,因此您可以使用CompareTo

void Main()
{
    if ("a".CompareTo("b") < 0)
    {
        Console.WriteLine("A is less than B");
    }

    if ("a".CompareTo("b") <= 0)
    {
        Console.WriteLine("A is less than or equal to B");
    }

    if ("a".CompareTo("a") == 0)
    {
        Console.WriteLine("A equals A");
    }

    if ("c".CompareTo("b") > 0) 
    {
        Console.WriteLine("C is greater than B");
    }

    if ("c".CompareTo("b") >= 0) 
    {
        Console.WriteLine("C is greater than or equal to B");
    }
}

但是,如果您需要不区分大小写的比较,那么您将需要使用允许您忽略大小写的string.Compare重载。但逻辑是一样的。

答案 1 :(得分:3)

好吧,"aa" < "ab"等于

  bool result = String.Compare("aa", "ab") < 0;

等等:

 // "abc" >= "bca" 
 bool result = String.Compare("abc", "bca") >= 0;

"left" <=> "right"的一般模式是

 String.Compare("left", "right") <=> 0

因为String.Compare(left, right)返回

    left < right 时,
  • 否定值(例如,-123) 当left == right
  • 时,
  • 当'left&gt;时,
  • postivie 值(例如789)右'