我有两个字符串,分别为@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
创建函数后,只需使用UNION
set运算符即可:
已编辑
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,因此其打印错误 我只是想知道我的想
我会如何比较以下两个日期?