复杂SQL条件判断

csk613 2009-09-10 04:59:00
我现在有表有三个列。如列名分别为: A B C D E。A是主键。自增列

数据如下:
A B C D E
1 2 3 4 5
2 5 6 2 1
3 3 4 2 2

现在有问题如下:
如何用一条SQL语句判断某一列的值,即等于X又等于Y. x,y 都是变量。
如C=3 和 C=4 ??
...全文
186 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
csk613 2009-09-11
  • 打赏
  • 举报
回复
7楼,如何保证C列的两条记录的值即等于@C又等于@D ??

我是想从两条记录里判断某一列的值,在这两条记录里都有。如在第一条记录和第三条记录中。C列的值等3和4。

如何用一条SQL语句进行判断。谢谢各位了。
csdyyr 2009-09-10
  • 打赏
  • 举报
回复
DECLARE @TB TABLE([A] INT, [B] INT, [C] INT, [D] INT, [E] INT)
INSERT @TB
SELECT 1, 2, 3, 4, 5 UNION ALL
SELECT 2, 5, 6, 2, 1 UNION ALL
SELECT 3, 3, 4, 2, 2

DECLARE @X INT, @Y INT
SET @X=3
SET @Y=4

IF (SELECT COUNT(DISTINCT C) FROM @TB WHERE C IN (@X,@Y))=2
PRINT N'符合条件'
ELSE
PRINT N'不符合条件'
limfungsuen 2009-09-10
  • 打赏
  • 举报
回复
根据楼主要求,3楼和5楼正确答案。in会使索引失效,我再补一种:

declare @c int
declare @d int
set @c=3
set @d=4
select * from tb where c=@c
union all
select * from tb where c=@d

asaaaas 2009-09-10
  • 打赏
  • 举报
回复
看来楼上的人都理解错了楼主的意思,他举例用C,是想找出哪列有2个值X,Y,而不是找行,不知我理解的对不对。解决办法没想到...
--小F-- 2009-09-10
  • 打赏
  • 举报
回复
declare @c int
declare @d int
set @c=3
set @d=4
select * from tb where c=@c or c=@d
--小F-- 2009-09-10
  • 打赏
  • 举报
回复
declare @c int
declare @d int
set @c=3
set @d=4
select * from tb where c=@c and d=@d
SQL77 2009-09-10
  • 打赏
  • 举报
回复
DECLARE @C INT
DECLARE @D INT
SELECT * FROM TB WHERE C IN(@C ,@D)
soft_wsx 2009-09-10
  • 打赏
  • 举报
回复
case
SQL77 2009-09-10
  • 打赏
  • 举报
回复
DECLARE @C INT
DECLARE @D INT
SELECT * FROM TB WHERE C=@C AND D=@D

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧