SQL Server 2000 - 按字符串长度过滤

时间:2010-04-09 18:18:42

标签: sql sql-server

我在SQL Server 2000服务器上有一个数据库。这个数据库有一个名为“Person”的表,它有一个字段调用“FullName”,它是一个VARCHAR(100)。

我正在尝试编写一个查询,允许我获取所有具有名称的记录。没有名称的记录的FullName值为null或空字符串。如何让所有Person记录都具有FullName?换句话说,我想忽略没有FullName的记录。目前我正在尝试以下方法:

SELECT
  *
FROM
  Person p
WHERE
 p.FullName IS NOT NULL AND
 LEN(p.FullName) > 0

谢谢

3 个答案:

答案 0 :(得分:3)

首先使您的数据保持一致

UPDATE Person
    SET FullName=NULL
    WHERE FullName != ''

然后查询您的数据而不用担心不一致:

SELECT 
    *
    FROM Person
    WHERE FullName IS NOT NULL

如果您不能/不能修复数据,可以使用:

SELECT 
    *
    FROM Person
    WHERE FullName != ''

答案 1 :(得分:2)

这是我想的首选方式

SELECT
    *
FROM
    Person p
WHERE
    p.FullName <> ''

答案 2 :(得分:0)

ISNULL

怎么样?
SELECT 
  * 
FROM 
  Person p 
WHERE 
 ISNULL(p.FullName,'') <> ''