请问关于sql中distinct与order by 有关问题
请教关于sql中distinct与order by 问题
我有个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数据库,其中一个字段名是“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' go SELECT DISTINCT convert(varchar(7),CAST(jdyf + '-1' AS datetime),120) FROM jdjzjh ORDER BY 1 /* ------- 2011-06 2011-12 (2 行受影响) */ go drop table jdjzjh