2013-04-22 27 views
6

这似乎是一个简单的问题,但我一直没能找到答案。我基本上是试图做到这一点:SQL SELECT若(a =“”),然后改变B值

SELECT * FROM table1 
IF(columnA > 0) BEGIN 
columnB = 'Greater than 0' 
END 

我不希望值,表中的改变,我只是希望它在发生变化。有什么建议么?

+0

使用[下](http://msdn.microsoft.com/en-gb/library/ms181765.aspx)表达 – Aprillion 2013-04-22 19:10:19

回答

22
SELECT ColumnA 
     , case when ColumnA > 0 then 'Greater than 0' else ColumnB END AS ColumnB 
FROM table1; 
+1

惯于这只是改变columnA从0到'大于0'而不是columnB? – 2013-04-22 19:13:08

+1

泰勒,它只是* *检查作为columnA的case语句的条件。第二列是“大于0”或ColumnB的表值。尝试一下。 – 2013-04-22 19:16:21

+0

完美!谢谢! – 2013-04-22 19:22:24

6

这应该工作:

SELECT columnA, IIF(columnA > 0, 'Greater than 0', columnB) 
    FROM table1; 
+0

我不认为“IF”是一个函数,需要3个参数。 – 2013-04-22 19:45:21

+0

我只是告知,有一个“IIF”功能。我会认为这就是你的意思,然后把自己打在脑袋里。请编辑,以便我可以upvote! – 2013-04-22 19:54:41

+0

@NickVaccaro - 参见该文档(这里)(http://dev.mysql.com/doc/refman/5.5/en/control-flow-functions.html#function_if) – 2013-04-22 19:55:06

相关问题