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

比较SQL Server中两个字符串中的数字

郑晗日
2023-03-14
问题内容

我有两个字符串,分别为@CountryLocationIDs和@LocationIDs,其值分别为:

@CountryLocationIDs = 400,600,150,850,160,250
@LocationIDs1       = 600,150,900

然后,我需要另一个变量中的输出为:

@LocationIDs = 400,600,150,850,160,250,900

任何人都请帮忙…预先感谢…


问题答案:

我创建了一个表值函数,该函数接受两个参数,第一个是带有ID的字符串,第二个是字符串中的定界符。

CREATE FUNCTION [dbo].[Split](@String nvarchar(4000), @Delimiter char(1))       
returns @temptable TABLE (items nvarchar(4000))       
as       
begin       
    declare @idx int       
    declare @slice nvarchar(4000)

    select @idx = 1       
        if len(@String)<1 or @String is null  return

    while @idx!= 0       
    begin       
        set @idx = charindex(@Delimiter,@String)       
        if @idx!=0       
            set @slice = left(@String,@idx - 1)       
        else       
            set @slice = @String

        if(len(@slice)>0)  
            insert into @temptable(Items) values(@slice)

        set @String = right(@String,len(@String) - @idx)       
        if len(@String) = 0 break       
    end   
return       
end

创建函数后,只需使用UNIONset运算符即可:

已编辑

WITH ListCTE AS 
(
select items from dbo.split('400,600,150,850,160,250', ',')
union
select items from dbo.split('600,150,900', ',')
)
SELECT TOP 1

   MemberList = substring((SELECT ( ', ' + items )
                           FROM ListCTE t2
                           ORDER BY 
                              items
                           FOR XML PATH( '' )
                          ), 3, 1000 )FROM ListCTE t1

有了它,UNION您将自动从两个字符串中获得不同的值,因此您不需要使用DISTINCT子句



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

  • 问题内容: 有什么方法可以像下面这样在SQL Server 2008存储过程中比较两个字符串? 如果字符串相同,则返回0 如果根据当前的排序顺序,第一个参数小于第二个参数,则返回-1。 否则返回1。 以上方法我在MySQL中找到,但在SQL Server中找不到。 问题答案: SQL Server中没有直接的字符串比较功能 笔记 您可以使用CREATE FUNCTION等通过UDF进行包装 您可能

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

  • 问题内容: 我正在使用Java中的Chord协议实现简单的DHT。详细信息并不重要,但是我要坚持的事情是我需要对字符串进行哈希处理,然后查看一个哈希字符串是否“小于”另一个。 我有一些代码可以使用SHA1计算哈希,该哈希返回40位长的十六进制字符串(在Java中为String类型),例如: 但是我需要能够比较其中的两个,以便例如: 小于: 这是值的完整范围,因为40位数的字符串实际上代表01234

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

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