我现在有表有三个列。如列名分别为:  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    ??

解决方案 »

  1.   

    DECLARE @C INT
    DECLARE @D INT
    SELECT * FROM TB WHERE C=@C AND D=@D
      

  2.   

    DECLARE @C INT
    DECLARE @D INT
    SELECT * FROM TB WHERE C IN(@C ,@D)
      

  3.   

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

  4.   

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

  5.   

    看来楼上的人都理解错了楼主的意思,他举例用C,是想找出哪列有2个值X,Y,而不是找行,不知我理解的对不对。解决办法没想到...
      

  6.   

    根据楼主要求,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
      

  7.   

    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, 2DECLARE @X INT, @Y INT
    SET @X=3
    SET @Y=4IF (SELECT COUNT(DISTINCT C) FROM @TB WHERE C IN (@X,@Y))=2 
    PRINT N'符合条件'
    ELSE 
    PRINT N'不符合条件'
      

  8.   

    7楼,如何保证C列的两条记录的值即等于@C又等于@D   ??我是想从两条记录里判断某一列的值,在这两条记录里都有。如在第一条记录和第三条记录中。C列的值等3和4。如何用一条SQL语句进行判断。谢谢各位了。