当前位置: 首页 > 面试题库 >

比较SQL Server中的两个字符串

陆英毅
2023-03-14
问题内容

有什么方法可以像下面这样在SQL Server 2008存储过程中比较两个字符串?

int returnval = STRCMP(str1, str2)
  • 如果字符串相同,则返回0
  • 如果根据当前的排序顺序,第一个参数小于第二个参数,则返回-1。
  • 否则返回1。

以上方法我在MySQL中找到,但在SQL Server中找不到。


问题答案:

SQL Server中没有直接的字符串比较功能

CASE
  WHEN str1 = str2 THEN 0
  WHEN str1 < str2 THEN -1
  WHEN str1 > str2 THEN 1
  ELSE NULL --one of the strings is NULL so won't compare (added on edit)
END

笔记

  • 您可以使用CREATE FUNCTION等通过UDF进行包装
  • 您可能需要NULL处理(在上面的代码中,任何NULL都将报告1)
  • str1和str2将是列名或@variables


 类似资料:
  • 问题内容: 我有一个简单的疑问。如果有人帮助我,那就太好了。 我有两个字符串: 这两个值相等,但是如何在Java中比较它们呢?我们拥有并用于比较字符串alpha值,类似地,如何比较数字值。 问题答案: 这就对了。您可以使用方法将数字字符串转换为整数,该方法将返回类型。然后比较与相同。

  • 问题内容: 我有两个字符串,分别为@CountryLocationIDs和@LocationIDs,其值分别为: 然后,我需要另一个变量中的输出为: 任何人都请帮忙…预先感谢… 问题答案: 我创建了一个表值函数,该函数接受两个参数,第一个是带有ID的字符串,第二个是字符串中的定界符。 创建函数后,只需使用set运算符即可: 已编辑 有了它,您将自动从两个字符串中获得不同的值,因此您不需要使用子句

  • 在与字符串进行比较时,我们可以使用或 在中,我们知道它检查引用,但在中它检查内容。 假设有两个字符串 字符串s=“SO”;字符串s1=“SO”; 所以在这种情况下,s1==s和s.equals(s1)都将为真。 但在这里它给了我错误 所以我假设比优先级高 所以在这种情况下 它将像(“s1)==s一样被拆分,现在“s1”将是一个新字符串,因此新字符串永远不会等于s,因此其打印错误 我只是想知道我的想

  • 我会如何比较以下两个日期?

  • 这让我总是虚伪。 我能做什么??我只希望bool在“on”时为True,在“null”时为false

  • 问题内容: 更新:我应该早点指定它,但是并非所有名称都只是浮点数。例如,其中一些以“ YT”为前缀。因此,例如“ YT1.1。所以,您遇到相同的问题,YT1.9 <YT1.11应该为真。我真的很惊讶字符串比较失败…。 您好,这应该是一个非常简单的问题,但我似乎找不到答案。我想按名称对一堆XL工作表进行排序。每个名称都是数字,但与教科书“节”的编号方式相同,这意味着第4.11节在4.10之后,在4.