如果结果集遵循一组条件,则返回硬编码值 (T-SQL-2000)

发布于 2024-11-17 13:28:29 字数 226 浏览 2 评论 0原文

本题涉及与MSSMS 2000兼容的T-SQL。

假设查询Q的结果集总是返回一列,其中有0、1或n条记录。如果满足以下条件,我希望超级查询 W 返回值 1:

  1. 在子查询 Q 中仅检索到一条记录
  2. 检索到的一条记录是 'c'

Q = SELECT DISTINCT status_code FROM Student

W(Q) = ?

This question refers to the T-SQL compatible with MSSMS 2000.

Suppose the result set of a query Q always returns one column with 0, 1, or n records. I want a superquery W to return a value of 1 if the following conditions hold:

  1. Only one record was retrieved in the subquery Q
  2. The one record that was retrieved is 'c'

Q = SELECT DISTINCT status_code FROM Student

W(Q) = ?

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

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

发布评论

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

评论(2

街道布景 2024-11-24 13:28:29

如果 Q 是一般查询,并且不一定是您问题中的查询,则将 status_code 而不是 column 即可:

CASE WHEN  (SELECT COUNT(*) FROM Q) = 1
       AND (SELECT COUNT(*) FROM Q WHERE column='c') = 1
     THEN 1
     ELSE 0
END

If Q is a general query and not necessarily the one in your question, the putting status_code instead of column will do:

CASE WHEN  (SELECT COUNT(*) FROM Q) = 1
       AND (SELECT COUNT(*) FROM Q WHERE column='c') = 1
     THEN 1
     ELSE 0
END
玻璃人 2024-11-24 13:28:29

试试这个:(

select if(count(*)=1 and status_code='c',1,0) as W from Student

如果有 2 行带有 status_code='c',它将返回 0。这是预期的输出吗?)

Try this:

select if(count(*)=1 and status_code='c',1,0) as W from Student

(If you have 2 rows with status_code='c', it will return 0. Is it the expected output ?)

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