我需要能够有一个从2015年开始有100年历史的下拉列表。我已经找到了这样做的SQL代码,但是我希望将这些字符包含在内,并且可以使用NA' NA'对于没有一年的记录。我宁愿不创造一张桌子;我希望它是动态的。
下面的SQL(我在这个网站上发现了这个,顺便说一句)
DECLARE @yearStart int,@yearEnd int
SET @yearStart=1915
SET @yearEnd=2015;
WITH mycte AS(SELECT @yearStart as myYear
UNION ALL
SELECT myYear+1 FROM mycte WHERE myYear<@yearEnd)
SELECT * FROM mycte
答案 0 :(得分:1)
我的猜测是添加&#39; NA&#39;不应该在SQL中完成,但如果你愿意,那么只需UNION就可以了;
DECLARE @yearStart int,@yearEnd int
SET @yearStart=1915
SET @yearEnd=2015;
WITH mycte AS(SELECT @yearStart as myYear
UNION ALL
SELECT myYear+1 FROM mycte WHERE myYear<@yearEnd)
SELECT 'NA' as MyYear
UNION ALL
SELECT CAST(myYear AS VARCHAR(4)) FROM mycte
答案 1 :(得分:0)
DECLARE @yearStart int,@ yearEnd int
SET @yearStart=1915
SET @yearEnd=2015;
WITH mycte AS(SELECT @yearStart as myYear
UNION ALL
SELECT myYear+1 FROM mycte WHERE myYear<@yearEnd)
SELECT CAST(myYear as VARCHAR(4)) FROM mycte
UNION ALL
SELECT 'NA'
你可以添加一个UNION ALL,如果它必须在SQL中处理,但我认为你应该在前端处理它。