SQL WHERE前3个字母不是IN

时间:2016-03-11 21:44:06

标签: sql sql-server tsql

我有这个查询字符串:

declare @deadCommunityList table(community varchar(12))
    insert into @deadCommunityList (community) values ('000')
    insert into @deadCommunityList (community) values ('253')
    insert into @deadCommunityList (community) values ('COU')
    insert into @deadCommunityList (community) values ('COV')
    insert into @deadCommunityList (community) values ('D2T')
    insert into @deadCommunityList (community) values ('D3T')
    insert into @deadCommunityList (community) values ('DEW')
    insert into @deadCommunityList (community) values ('DIT')
    insert into @deadCommunityList (community) values ('E2T')
    insert into @deadCommunityList (community) values ('E3T')
    insert into @deadCommunityList (community) values ('EL2')
    insert into @deadCommunityList (community) values ('EL3')
    insert into @deadCommunityList (community) values ('ELC')
    insert into @deadCommunityList (community) values ('ELI')
    insert into @deadCommunityList (community) values ('ELT')
    insert into @deadCommunityList (community) values ('ERI')
    insert into @deadCommunityList (community) values ('FA1')
    insert into @deadCommunityList (community) values ('GRA')
    insert into @deadCommunityList (community) values ('GRD')
    insert into @deadCommunityList (community) values ('GRT')
    insert into @deadCommunityList (community) values ('HIG')
    insert into @deadCommunityList (community) values ('HIP')
    insert into @deadCommunityList (community) values ('LYN')
    insert into @deadCommunityList (community) values ('NEW')
    insert into @deadCommunityList (community) values ('PAR')
    insert into @deadCommunityList (community) values ('PMT')
    insert into @deadCommunityList (community) values ('RDT')
    insert into @deadCommunityList (community) values ('RES')
    insert into @deadCommunityList (community) values ('SCR')
    insert into @deadCommunityList (community) values ('SCT')
    insert into @deadCommunityList (community) values ('SMT')
    insert into @deadCommunityList (community) values ('SUM')
    insert into @deadCommunityList (community) values ('TB')
    insert into @deadCommunityList (community) values ('W2T')
    insert into @deadCommunityList (community) values ('WDV')
    insert into @deadCommunityList (community) values ('WE2')
    insert into @deadCommunityList (community) values ('WIC')
    insert into @deadCommunityList (community) values ('WEC')
    insert into @deadCommunityList (community) values ('WIL')
    insert into @deadCommunityList (community) values ('ZIT')

    SELECT Job_No FROM Schedule WHERE Job_No NOT IN (SELECT * FROM @deadCommunityList) ORDER BY Job_No

现在一个Job_No看起来像253DEWT,它与253不匹配,这意味着会出现一个我不想要的Job_No 253DEWT行,所以我要做的就是将前三个字符与值相对应在deadCommunityList中......我必须做些什么调整?

3 个答案:

答案 0 :(得分:2)

从列中选择前3个字母:

$.get('/templ/checknlvl.php').done(function (value) {
    if (value === "true") {
        $("#lvlupann").addClass("nlvlann");
    }
});

<?php
if (1 == 1) {
    echo 'true';
} else {
    echo 'false';
}
die;

或者,您可以使用SELECT LEFT(column_name , 3) FROM table_name; 功能:

substring

答案 1 :(得分:0)

我相信这就是你要找的东西:

SELECT
    job_no
FROM
    dbo.Schedule S
WHERE
    NOT EXISTS
    (
        SELECT *
        FROM @deadCommunityList
        WHERE community = LEFT(S.job_no, 3)
    )

答案 2 :(得分:0)

他们不是全部3

SELECT s.job_no
  FROM dbo.Schedule S
 WHERE NOT EXISTS ( SELECT 1
                      FROM @deadCommunityList
                     WHERE S.job_no like community + '%'
                  )