我有个SQL数据库,其中一个字段名是“jdyf”,数据类型是“nvarchar”,保存的是年份和月份,格式是“yyyy-mm”,例如“2011-1”、“2010-10”、“2010-12”等等,我现在想把他们进行列表,语句如下:
SELECT DISTINCT jdyf
FROM jdjzjh
ORDER BY CAST(jdyf + '-1' AS datetime) DESC
运行后提示如下错误:
如果指定了SELECT DISTINCT,那么ORDER BY子句就必须出现在选择列表中
如何修改,谢谢
------解决方案--------------------
如果指定了SELECT DISTINCT,那么ORDER BY子句就必须出现在选择列表中
- SQL code
select jdyf from(select top 100 percent jdyf,CAST(jdyf + '-1' AS datetime) from jdjzjh order by 2)t
------解决方案--------------------
- SQL code
create table jdjzjh(jdyf varchar(7))insert into jdjzjh select '2011-6' union all select '2011-12'goSELECT DISTINCT convert(varchar(7),CAST(jdyf + '-1' AS datetime),120)FROM jdjzjhORDER BY 1/*-------2011-062011-12(2 行受影响)*/godrop table jdjzjh