2017-09-11 2 views
0

J'ai la requête suivante:Comment éviter certains registres dans une vue en utilisant sql?

SELECT ue.id AS id, ue.id_padre AS id_institucion, ue.estado AS estatus, 
    iif(ue.codigo_unidad_ejecutora NOT LIKE '%SE%', 
    (c.codigo_capitulo + sc.codigo_sub_capitulo + daf.codigo_daf + ue.codigo_unidad_ejecutora), 
          ue.codigo_unidad_ejecutora) AS estructura 
          , c.capitulo, 
          sc.sub_capitulo, 
          daf.daf, 
          ue.unidad_ejecutora, 
           isnull(ue.rnc, '') AS rnc 
    FROM   dbo.capitulo AS c INNER JOIN 
          dbo.sub_capitulo AS sc ON c.id = sc.id_capitulo INNER JOIN 
          dbo.daf AS daf ON daf.id_sub_capitulo = sc.id INNER JOIN 
          dbo.unidad_ejecutora AS ue ON ue.id_daf = daf.id 

Donc, si vous voyez dans l'image ce que je veux est d'éviter à l'intérieur de mon nom de colonne « Estructura » les enregistrements qui commencent par « 0999 ».

Comment puis-je définir cela dans ma requête qui est aussi une vue?

enter image description here

Répondre

1

Essayez cette

where estructura not like '0999%' 
+0

Cela ne fonctionne que si estrucutra est un 'string'. Ce qui me ressemble clairement, mais cela devrait être noté dans la question. – gh9

+1

@ gh9 - eh bien, il est peu probable que ce soit un type de données numérique puisque les '0 'principaux ne sont pas conservés dans ceux-ci. –

+0

@Damien_The_Unbeliever Je suis d'accord, mais en regardant ops karma et la simplicité de la question. Je ne pensais pas que OP le saurait. Donc, je voulais juste faire en sorte que OP savait que cela ne fonctionne que sur les chaînes – gh9

0

Cela fonctionnera même, parce que votre champ est une chaîne d'où les zéros.

je serais les premiers caractères sous-chaîne à partir de 1 se terminant à 4.

where substring(estructura,1,4) != '0999' 
+0

Alors que cet extrait de code peut résoudre le problème, il n'explique pas pourquoi ou comment il répond à la question. Veuillez inclure une explication pour votre code, car cela aide vraiment à améliorer la qualité de votre message. Rappelez-vous que vous répondez à la question pour les lecteurs dans le futur, et que ces personnes pourraient ne pas connaître les raisons de votre suggestion de code. –

+0

Merci - Ajout de quelques commentaires supplémentaires :) – plaidDK