Sql server 2008 如果在存储过程中找不到数据,则跳过字段
问题在这里。我正在创建一个存储过程,我想确定其中一列是否没有数据,然后它将跳过该行 示例:表名:EmployeeSql server 2008 如果在存储过程中找不到数据,则跳过字段,sql-server-2008,tsql,stored-procedures,Sql Server 2008,Tsql,Stored Procedures,问题在这里。我正在创建一个存储过程,我想确定其中一列是否没有数据,然后它将跳过该行 示例:表名:Employee Employee No | Employee Name | Card No | Salary 1 | test 1 | 123 | 2 | Simon | | 2000 3 | | 456 | 4000 4
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
,使用过滤器
e、 g
Use
不为空
和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)
可以使用isnull()如下所示:
它将同时检查null和“”的大小写。thx以进行编辑。。如何做得像桌子,那么漂亮
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)
SELECT *
FROM Employee
WHERE
ISNULL(EmployeeNo,'') != ''
AND ISNULL(EmployeeName,'') != ''
AND ISNULL(CardNo, '') != ''
AND ISNULL(Salary, '') != ''