我有一个表,里面有时间列。我正在尝试创建一个存储过程(SQL Server2008),为每一行获取一个字符串,其中包含所有以前年份的上一个值和当前行值。例如,如果我有下表。
_________________ time value _________________ mar-2009 1 _________________ may-2009 2 _________________ jan-2010 3 _________________ apr-2011 4 _________________ feb-2011 5 _________________ jan-2012 6 _________________
我试图得到以下结果
____________________________________________________ time value Result ____________________________________________________ mar-2009 1 "2009,1" ____________________________________________________ may-2009 2 "2009,2" ____________________________________________________ jan-2010 3 "2009,2,2010,3" ____________________________________________________ apr-2011 4 "2009,2,2010,3,2011,4" ____________________________________________________ feb-2011 5 "2009,2,2010,3,2011,5" ____________________________________________________ jan-2012 6 "2009,2,2010,3,2011,5,2012,6" ____________________________________________________
下面是示例,但出于性能目的,对原始表进行一些更改要好得多。
-- first we need to extract months/years to get comparable and sortable values
-- otherwise we can't select "all previous years" and "last value".
;with converted as (
select
time,
right(time, 4) as year,
datepart(m, '2000-' + left(time, 3) + '-01') as month,
right(time, 4) + ',' + convert(varchar(16), value) as concatenated,
value
from
YourTableName --TODO: Replace this with your table name
)
select
time,
value,
-- using xml for string concatenation
isnull((
select
prev.concatenated + ',' as 'text()'
from
converted as prev
where
prev.year < main.year
and prev.month = (select max(month) from converted lookup where lookup.year = prev.year)
for
xml path('')
),'')
+ main.concatenated
from
converted as main
问题内容: 我已经看到了关于获取所有可能的子字符串(即相邻字符集)的许多问题,但是对于生成所有可能的字符串(包括其子字符串的组合)都没有疑问。 例如,让: 我希望输出是这样的: 要点是,我们可以删除原始字符串中不相邻的多个字符(以及相邻的字符)。 到目前为止,这是我尝试过的: 但是,这只会从原始字符串中删除相邻字符串的集合,而不会返回上例中的元素。 另一个示例是,如果我们使用字符串,则输出列表应包
问题内容: 这是我获得所有可能性的代码: 但是,如果要添加更多,则必须再添加一个循环。那么,我该如何使用递归呢?我尝试,我尝试,但是我真的做不到。请帮助并尽可能简单地发布示例。 谢谢。 问题答案: 这是一个简单的算法。从1迭代到2 count(array) -1。在每次迭代中,如果循环计数器的二进制表示形式中的第j位等于1,则在组合中包含第j个元素。 由于PHP需要能够将2个count(array
我有一个json字符串,我需要验证它,并在json字符串中找到列表以外的任何其他键。示例json字符串为 如何使用从json字符串中获取所有键
问题内容: 在我的数据集中,我有一个字段,用于存储用HTML标记的文本。通用格式如下: 我可以尝试通过以下方法解决问题: 但是,这不是严格的规则,因为 某些条目违反了W3C标准, 并且不包含标签。更糟的是, 可能会缺少结束标记 。因此,我需要为每个可能存在的开始和结束标记包括函数。 我想知道是否有比使用多个嵌套函数更好的方法来完成此任务。不幸的是,我在这种环境中只能使用的语言是SQL和Visual
我试图只得到今年的数据,但我的“where子句”似乎有问题。但当我在where子句中输入特定年份时,它就起作用了。除了where子句之外,所有的东西都在工作。 我希望你们能帮我。
本文向大家介绍通过+(字符串串联)运算符进行字符串串联。,包括了通过+(字符串串联)运算符进行字符串串联。的使用技巧和注意事项,需要的朋友参考一下 您可以使用Java的“ +”运算符来连接字符串。 示例 输出结果