SQL Server,表的结果作为“列”或“COUNT(列)”取决于参数?

发布于 2024-08-22 04:34:58 字数 228 浏览 8 评论 0原文

这是我编写的 T-SQL 代码,我想象它可以工作但没有工作:

DECLARE @Local nvarchar(20)
SET @Local = 'Yes'

SELECT 
(CASE WHEN @Local = 'Yes' THEN ID ELSE COUNT(ID) END)
FROM myTable

我做错了什么还是有其他方法可以做到这一点?

谢谢。

Here is the T-SQL code that I coded, which I imagined to work but didn't work:

DECLARE @Local nvarchar(20)
SET @Local = 'Yes'

SELECT 
(CASE WHEN @Local = 'Yes' THEN ID ELSE COUNT(ID) END)
FROM myTable

Is there something I am doing wrong or is there any other way to do that?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

瞎闹 2024-08-29 04:34:58
IF ( @Local = 'Yes' )
    SELECT ID FROM MyTable
ELSE
    SELECT COUNT(ID) FROM MyTable
IF ( @Local = 'Yes' )
    SELECT ID FROM MyTable
ELSE
    SELECT COUNT(ID) FROM MyTable
沫雨熙 2024-08-29 04:34:58

这两个查询根本不同,所以“不”,按照您发布的方式

您可以在一次调用中完成这两个查询

SELECT 
ID
FROM myTable
COMPUTE SUM(ID)

或使用 @@ROWCOUNT

或使用 AdaTheDev 的解决方案

The 2 queries are fundamentally different so "no", in the way you posted

You can do both in one call

SELECT 
ID
FROM myTable
COMPUTE SUM(ID)

Or use @@ROWCOUNT

Or use AdaTheDev's solution

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文