如何根据列值设置值select语句t-sql。比如如果0集3,如果小于4集2等等
我有一个名为photos的列,photos列的类型为tinyint,从0到8不等。我想在从表中选择数据时对列应用一个秩。想要获得的值是:如果记录有4张或更多照片,则它将收到1的排名。因为这是一个相当数量的照片,像5,6,7和8。如果记录的级别在1到3之间,则设置为2,中等级别,如果没有照片,则设置为3。有了它,我可以根据照片的数量对记录进行排序,并使我的申请保持一致。当然,您只需在订单中使用案例陈述即可。大概是这样的:如何根据列值设置值select语句t-sql。比如如果0集3,如果小于4集2等等,sql,sql-server,database,tsql,Sql,Sql Server,Database,Tsql,我有一个名为photos的列,photos列的类型为tinyint,从0到8不等。我想在从表中选择数据时对列应用一个秩。想要获得的值是:如果记录有4张或更多照片,则它将收到1的排名。因为这是一个相当数量的照片,像5,6,7和8。如果记录的级别在1到3之间,则设置为2,中等级别,如果没有照片,则设置为3。有了它,我可以根据照片的数量对记录进行排序,并使我的申请保持一致。当然,您只需在订单中使用案例陈述即可。大概是这样的: SELECT * FROM Table ORDER BY CASE
SELECT *
FROM Table
ORDER BY
CASE
WHEN photos >= 4 THEN 1
WHEN photos >= 1 THEN 2
ELSE 3
END
或者,如果希望它成为表中的实际列,可以将其添加为计算列:
ALTER TABLE mytable ADD rank AS
CASE
WHEN photos >= 4 THEN 1
WHEN photos >= 1 THEN 2
ELSE 3
END
当我看到When关键字时,不需要阅读其余的代码。我忘了这个语法。这是我想要的语法。