在SQL中填充下拉列表,包括'NA'

时间:2015-03-13 16:28:30

标签: sql-server

我需要能够有一个从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

2 个答案:

答案 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中处理,但我认为你应该在前端处理它。