Dee*_*ons 1 sql t-sql sql-server sql-server-2005 case
我不得不对一堆存储过程进行微调,并得到一个存储过程中有一些存储过程的IF ELSE blocks插入语句.因此,我使用case建模他们发现我得到语法错误尝试下面的语句(一个简单的例子,正在做什么)但确定你会得到这个想法
DECLARE @rowcount int
SELECT @rowcount = -1
CASE WHEN @rowcount = -1 THEN
select 'I WON THE RACE'
WHEN '2'
SELECT 'WHAT A LOSER'
END
Run Code Online (Sandbox Code Playgroud)
每个案例都有不止一个陈述,所以我只是将它们包含在内部(,)但是要进入noavail.请更正我对TSQL案例的了解.(如果有帮助,使用SQl Server 2005)
您希望您的CASE语句如下所示:
DECLARE @rowcount int
SELECT @rowcount = -1;
SELECT CASE @rowcount
WHEN -1 THEN 'I WON THE RACE'
WHEN 2 THEN 'I did not win'
END AS columnName
Run Code Online (Sandbox Code Playgroud)
在CASE一个内部云SELECT声明.然后你只需看看你的价值@rowCount,并采取适当的行动.您可能想要阅读有关CASE语句的更多信息
CASE声明的第二种形式如下:
SELECT CASE
WHEN @rowcount IS NULL THEN 'Null case here'
WHEN @rowcount = -1 THEN 'I WON THE RACE'
WHEN @rowcount = 2 THEN 'I did not win'
END AS columnName
Run Code Online (Sandbox Code Playgroud)
如果要将CASE与INSERT一起使用:
DECLARE @rowcount int
SELECT @rowcount = -1;
INSERT INTO myTable(column1, column2, column3)
SELECT CASE @rowcount
WHEN -1 THEN 'I WON THE RACE'
WHEN 2 THEN 'I did not win'
END AS column1
, t.column2
, CASE
WHEN t.someColumn < someValue THEN 'thirdColumnValue'
ELSE 'someColumn is greater than specified value'
END AS column3
FROM secondTable AS t
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13050 次 |
| 最近记录: |