SQL SELECT 如果 (a="") 则更改 b 的值

7

这似乎是一个简单的问题,但我一直找不到答案。我基本上想做这个:

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

我不想让表格中的数值改变,只想让结果中的数值改变。有什么建议吗?


使用 case 表达式 - Aprillion
2个回答

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

1
这样做不会只是将列A从0更改为“大于0”,而不是列B吗? - Tyler Mortensen
1
泰勒,它只检查列A作为Case语句的条件。第二列是“大于0”或ColumnB的表值。试一下。 - Kevin Suchlicki

7

这应该可以工作:

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

我认为“IF”不是一个带有三个参数的函数。 - Nick Vaccaro
我刚刚得知有一个"IIF"函数。我会假设这就是你的意思,然后拍自己一下脑袋。请编辑一下,这样我就可以点赞了! - Nick Vaccaro
@NickVaccaro - 请查看此处的文档(http://dev.mysql.com/doc/refman/5.5/en/control-flow-functions.html#function_if) - Ted Hopp
@TedHopp 这是一个带有 sql-server 标签的问题。 - vlad
3
没问题。在这种“情况”(pun intended)下,我更喜欢使用IIF - vlad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接