if if语句在批处理文件的for循环中

时间:2015-08-18 16:53:45

标签: sql-server for-loop

此for循环从SQL表中提取max int值,加1,然后将其设置为等于名为" Num"的变量。

如何修改for循环,以便在名为" Number"的SQL列中找不到值(或空条目)时,它会设置变量Num == 1

for /f "delims= " %%a in 
    ('sqlcmd -S SERVER -d DATABASE-Q "SET NOCOUNT ON; 
    select max(Number)+1 from TABLE"') do set Num=%%a

2 个答案:

答案 0 :(得分:2)

您可以从SQL语句执行此操作。您正在寻找的是COALESCE

来自manual

  

按顺序计算参数,并返回最初未计算为NULL的第一个表达式的当前值。

你的案例的语法是

select coalesce(max(Number)+1, 1) FROM TABLE

答案 1 :(得分:0)

Select max(isnull (number,0))+1 from table

被修改