现在的问题是:“如何使用if值命令sql语句?”如何在ORDER BY if语句中使用ASC/DESC?
我有一个表,其中我有一个参数和使用这个参数我必须由ASC或DESC命令一个单一的列。我怎样才能实现它?我知道ASC和DESC参数不能在IF块中(并且具有像这样的结构。“IF(Type ='1',ranking,ranking)ASC/DESC”),所以这是在一个选择在基地内的命令的选择替代参数?
例
该表是这样的:
ID | RANKING | TYPE
--------------------
1 | 12 | 1
2 | 10 | 1
3 | 14 | 2
4 | 15 | 2
的类型= 1必须是一个ASC顺序和类型= 2已经成为一个DESC顺序,因此预期的结果我的选择可能是:
ID | RANKING | TYPE
--------------------
2 | 10 | 1
1 | 12 | 1
4 | 15 | 2
3 | 14 | 2
有关它的任何想法?
测试代码你的意思是你有一个参数的存储过程?它是什么样子的? – 2012-01-02 20:00:53
CREATE TABLE IF NOT EXISTS'test'( 'id' SMALLINT(5)无符号NOT NULL AUTO_INCREMENT, 'ranking' VARCHAR(15)NOT NULL, 'type' TINYINT(1)无符号NOT NULL, PRIMARY KEY( 'id') )ENGINE = InnoDB DEFAULT CHARSET = utf8 AUTO_INCREMENT = 5; INSERT INTO'test'('id','ranking','type')VALUES (1, '12',1), (2, '10',1), (3,'14 ',2), (4,'15',2); – Gabriele 2012-01-02 22:19:31