问题在这里。我正在创建一个存储过程,我想确定其中一个列是否没有数据,然后它将跳过该行。
示例:表名:Employee
Employee No | Employee Name | Card No | Salary
1 | test 1 | 123 |
2 | Simon | | 2000
3 | | 456 | 4000
4 | test3 | 342 | 5000
5 | | null | 3000
它只会读取包含employeeno = 4
,name = test3
,card no = 3432
和salary = 5000
的完整数据的行。
答案 0 :(得分:1)
使用IS NOT NULL
和LEN()
。
试试这个:
SELECT *
FROM Employee
WHERE (EmployeeNo IS NOT NULL OR LEN(EmployeeNo) > 0) AND
(EmployeeName IS NOT NULL OR LEN(EmployeeName) > 0) AND
(CardNo IS NOT NULL OR LEN(CardNo) > 0) AND
(Salary IS NOT NULL OR LEN(Salary) > 0)
答案 1 :(得分:1)
你可以使用isnull(),如:
SELECT *
FROM Employee
WHERE
ISNULL(EmployeeNo,'') != ''
AND ISNULL(EmployeeName,'') != ''
AND ISNULL(CardNo, '') != ''
AND ISNULL(Salary, '') != ''
它会检查两个案例的空格和''。
答案 2 :(得分:0)
使用过滤器 如,
SELECT *
FROM Employee
WHERE EmployeeNo IS NOT NULL
AND EmployeeName IS NOT NULL
AND CardNo IS NOT NULL
AND Salary IS NOT NULL