SQL选择如果(a=";),则更改b值

SQL选择如果(a=";),则更改b值,sql,sql-server,if-statement,Sql,Sql Server,If Statement,这似乎是一个简单的问题,但我还没有找到答案。我基本上是在尝试这样做: SELECT * FROM table1 IF(columnA > 0) BEGIN columnB = 'Greater than 0' END 我不希望表中的值改变,我只希望它在结果中改变。有什么建议吗?这应该可以: SELECT ColumnA , case when ColumnA > 0 then 'Greater than 0' else ColumnB END AS ColumnB

这似乎是一个简单的问题,但我还没有找到答案。我基本上是在尝试这样做:

SELECT * FROM table1
IF(columnA > 0) BEGIN
columnB = 'Greater than 0'
END
我不希望表中的值改变,我只希望它在结果中改变。有什么建议吗?

这应该可以:

SELECT  ColumnA
        , case when ColumnA > 0 then 'Greater than 0' else ColumnB END AS ColumnB 
FROM    table1;
SELECT columnA, IIF(columnA > 0, 'Greater than 0', columnB)
  FROM table1;

使用表达式这是否只是将columnA从0更改为“大于0”而不是columnB?Tyler,它只是将columnA作为case语句的条件进行检查。第二列为“大于0”或ColumnB的表值。试试看。我不认为“IF”是一个需要3个参数的函数。我刚刚被告知有一个“IIF”函数。我想这就是你的意思,然后打我自己的头。请编辑以便我可以投票@NickVaccaro-参见docs@TedHopp这是一个
sql server
-标记question@TedHoppNP我更喜欢这种情况下的IIF(双关语)