代码之家  ›  专栏  ›  技术社区  ›  Andy Williams

SQL查询:返回带有空格的名字和姓氏的更好选项?

  •  0
  • Andy Williams  · 技术社区  · 6 年前

    我试图找到一个客户名单谁的名字或姓氏包含在一个空白的名字中间。这是我正在使用的当前查询。

    SELECT * FROM dbo.tblCustomers
    WHERE FirstName LIKE '% %'
           OR
          LastName LIKE '% %'
    

    Update***基本上我想返回的数据在名字的左边或右边没有空格,只是在名字中间的某个地方。

    2 回复  |  直到 6 年前
        1
  •  3
  •   Henrik Lawrence Jacob    6 年前
    SELECT *
    FROM dbo.tblCustomers
    WHERE
        TRIM(FirstName) LIKE '% %'
        OR
        TRIM(LastName) LIKE '% %'
    
        2
  •  1
  •   Error_2646    6 年前

    这应该行得通,标记DBMS并检查文档的length函数是否考虑了尾随空格。我假设使用SQL server并使用datalength。

    SELECT *
    FROM dbo.tblCustomers
    WHERE (
        FirstName LIKE '% %'
        AND DATALENGTH(TRIM(FirstName)) = DATALENGTH(FirstName)
          )
        OR
        (
        LastName LIKE '% %'
        AND DATALENGTH(TRIM(LastName)) = DATALENGTH(LastName)
          );