我遇到麻烦似乎有可能解决,但我现在没有正确的想法。
我有一个包含多个列的表,列名中包含日期。这些名称将会改变,所以我可能需要一个动态代码。表格如下:
ID 2014-01-01 2014-01-02 2014-01-03 2014-01-04 2014-01-05 2014-01-06 (...) 2014-12-31
1 1 0 1 0 0 0 1
2 1 1 1 1 1 1 1
3 1 1 0 1 1 1 0
4 1 0 0 1 1 1 1
5 1 1 0 0 0 1 1
(...)
因此,存在一系列具有逻辑值0
或1
的日期。我需要的是在这个集合中添加另一列,并将这些值的序列作为字符串,例如(对于ID = 1):
101000(...)1
正如我所提到的,日期可能会改变。
在这种情况下,你能帮助我吗?答案 0 :(得分:1)
我想,你需要动态SQL:
DECLARE @sql NVARCHAR(MAX)
DECLARE @tablename NVARCHAR(128) = 'FUNKTIONEN'
SET @sql = (
SELECT 'CONVERT(NVARCHAR(max),ISNULL('+ name + ','''')) + '
FROM sys.all_columns
WHERE object_id = (
SELECT object_id
FROM sys.all_objects
WHERE object_id = object_id(@tablename)
) FOR XML PATH (''))
SET @sql = 'SELECT TOP 1 ' + LEFT(@sql,LEN(@sql)-1) + 'FROM ' + @tablename
EXECUTE sp_executesql @sql