需求如下:有一张表A,三个字段id,name,isdefault
isdefault有三个值,1,0,NULL,用来表示该记录是否默认(只有一条记录会被设为默认),如果是1表示是默认记录,否则不是默认。
现在我想用一条SQL语句实现以下需求:
查询一条默认记录,如果表中没有设置默认,那么就查第一条记录作为默认记录。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
将isdefault加上默认值0
`SELECT TOP 1 *
FROM (SELECT id, name, ISNULL(isdefault, 0) AS isdefault FROM A) T
ORDER BY isdefault DESC, id ASC `