Héc*_*rez 5 sql sql-server reporting-services
我想从选定的列中取出一个值来操作下一列。例如:
SELECT CASE
WHEN ID < 4 THEN ID
ELSE 10
END
AS MY_ID,
MY_ID + 5 AS EXTRA_ID
FROM FOO
Run Code Online (Sandbox Code Playgroud)
这将输出 ID 1,2,3,4,5:
MY_ID EXTRA_ID
1 6
2 7
3 8
10 15
10 15
Run Code Online (Sandbox Code Playgroud)
如果我这样做,MY_ID + 5它会抱怨 MY_ID 不存在(它是一个别名,所以它是有意义的),并且ID + 5会读取1+5, 2+5, 3+5, 4+5, 5+5而不是在1+5, 2+5, 3+5, 4+10, 5+10它通过 ELSE 时读取。有可能做到这一点吗?我在 SSRS - 报表生成器中执行此操作,并且需要操作可能根据 CASE 子句设置为默认值的结果。
您可以为 extra_id 列重复相同的 CASE 表达式,最后加上 +5
SELECT CASE
WHEN ID < 4 THEN ID
ELSE 10
END
AS MY_ID,
CASE
WHEN ID < 4 THEN ID
ELSE 10
END + 5 AS EXTRA_ID
FROM FOO
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用表达式在 SSRS 内创建 extra_id 列值
= Fields!my_id.value + 5
| 归档时间: |
|
| 查看次数: |
1407 次 |
| 最近记录: |