Пропустить поле, если не найдено данных в хранимой процедуре - PullRequest
0 голосов
/ 15 февраля 2012

Вопрос здесь. Я создаю хранимую процедуру, которую я хочу определить, если в одном из столбцов нет данных, тогда она пропустит строку.

пример: Имя таблицы: Сотрудник

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.

Ответы [ 3 ]

1 голос
/ 15 февраля 2012

Используйте 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 голос
/ 15 февраля 2012

Вы можете использовать isnull (), например:

SELECT *
  FROM Employee
 WHERE 
   ISNULL(EmployeeNo,'') != ''
   AND ISNULL(EmployeeName,'') != ''
   AND ISNULL(CardNo, '') != ''
   AND ISNULL(Salary, '') != ''

, он проверит оба случая на наличие нуля и ''.

0 голосов
/ 15 февраля 2012

Использовать фильтр например.,

SELECT *
  FROM Employee
 WHERE EmployeeNo IS NOT NULL
   AND EmployeeName IS NOT NULL
   AND CardNo IS NOT NULL
   AND Salary IS NOT NULL
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...