如何检查特定属性的元素是否存在于列中?

时间:2019-08-30 13:53:39

标签: sql sql-server

我被问到一个问题,我必须在其中编写一个TSQL函数,以检查部门表中是否存在部门编号。

以下是DEPARTMENT表中存在的记录:-

DINT        DNAME                MGRSSN      MGRSTARTDATE TOTAL_SALARY
----------- -------------------- ----------- ------------ ------------
1           Headquarters         888665555   1981-06-19   55000
4           Administration       987654321   1995-01-01   98000
5           Research             333445555   1988-05-22   136000

因此,如果我通过1作为参数,则应该返回“ YES”,因为表中存在DINT = 1,如果我通过9作为参数,则应该返回“ NO”。

我真的不知道如何解决这个问题。我试图弄清楚如何在SQL SERVER中使用BIT,但没有任何结果。该功能应包含一个参数,即部门号,可以表示为DNO。

如果部门表中存在部门编号,我只希望此函数返回“ YES”,否则返回“ NO”。

4 个答案:

答案 0 :(得分:1)

SQL DEMO

CREATE FUNCTION existDept
 (
 @dno AS integer
 )
RETURNS VARCHAR(MAX)
AS
BEGIN
    DECLARE @return_value VARCHAR(MAX);
    SET @return_value = 'NO';

    SELECT @return_value = 'YES'
    FROM dept
    WHERE department_id = @dno;

    RETURN @return_value;
END;

测试

SELECT dbo.existDept(1);
SELECT dbo.existDept(7);

答案 1 :(得分:0)

在一个SQL查询中:

select IIF((select count(*) FROM DEPARTMENT where DINT=@yourParam) > 0, 'Yes', 'No') as Result

您需要用正确的参数替换@yourParam

答案 2 :(得分:0)

  

请尝试一下。

Declare @dint as int
set @dint='1'
SELECT case when count(DINT)>0 then 'Yes' else 'No' end FROM DEPARTMENT 
where DINT=@dint;

答案 3 :(得分:-1)

行数https://www.php.net/manual/en/pdostatement.rowcount.php

示例:

var pageToken = null;
// Using the NPM module 'async'
async.doWhilst(function (callback) {
  drive.files.list({
    q: "mimeType='image/jpeg'",
    fields: 'nextPageToken, files(id, name)',
    spaces: 'drive',
    pageToken: pageToken
  }, function (err, res) {
    if (err) {
      // Handle error
      console.error(err);
      callback(err)
    } else {
      res.files.forEach(function (file) {
        console.log('Found file: ', file.name, file.id);
      });
      pageToken = res.nextPageToken;
      callback();
    }
  });
}, function () {
  return !!pageToken;
}, function (err) {
  if (err) {
    // Handle error
    console.error(err);
  } else {
    // All pages fetched
  }
})

这只是一个示例,但是可以通过多种方式完成,发布您的代码,以便更好地实现