【问题标题】:SQL Server: Select all rows where if any one of the 4 columns has a value of 'N'SQL Server:选择所有行,如果 4 列中的任何一列的值为“N”
【发布时间】:2014-11-28 18:13:51
【问题描述】:

这是我在表格中的数据。

**ID    webLoad transmitted transmissionRcvd    ackRcvd**
   1       Y       Y              N                N
   2       Y       N              Y                N
   3       Y       Y              Y                Y
   4       N       Y              Y                N
   5       Y       N              N                Y
   6       N       Y              Y                Y
   7       Y       Y              Y                Y
   8       Y       Y              Y                N
   9       Y       Y              Y                Y

如果上述 4 列中的任何一列的值为“N”,我希望能够选择所有行

所以结果中的行应该是 ID=1,2,4,5,6,8

注意:在某些情况下,所有列的输入都不相同。我的意思是可能存在 webLoad 的参数为 null 或其他参数为“Y”和“N”的情况。这些列中的任何一个都可能发生同样的情况。

【问题讨论】:

    标签: sql sql-server tsql select


    【解决方案1】:
    select * from your_table
    where 'N' in (webLoad, transmitted, transmissionRcvd, ackRcvd)
    

    【讨论】:

      【解决方案2】:
      SELECT * 
      FROM table
      WHERE webload = 'N' 
      OR transmitted = 'N'
      OR transmissionRcvd = 'N'
      OR ackRcvd = 'N'
      

      【讨论】:

        【解决方案3】:
        Select * from TableName a
        Where 
        a.webLoad ='N' or 
        a.transmitted ='N' or 
        a.transmissionRcvd ='N' or 
        a.ackRcvd ='N'
        

        【讨论】:

          猜你喜欢
          • 2019-04-13
          • 2023-03-13
          • 1970-01-01
          • 2021-09-13
          • 2016-07-22
          • 1970-01-01
          • 2014-12-23
          • 1970-01-01
          • 2014-08-24
          相关资源
          最近更新 更多