2011-11-03 2 views
6

Perché ci sono due operatori logici diversi che sembrano fare la stessa cosa (< = &!), C'è qualche situazione in cui si preferirebbe uno sull'altro?sql utilizza "minore o uguale a" & "non maggiore di"

+0

Personalmente, non ho mai visto '!>' Usato ovunque, in nessuna lingua. Quella sintassi valida è da qualche parte? –

+0

No. Quando un RDBMS ha entrambi, sono equivalenti. –

+0

http://msdn.microsoft.com/en-us/library/aa276867(v=SQL.80).aspx – harryovers

risposta

7

< = e> sono operatori di confronto, non operatori logici. ! è un operatore logico (significa NOT). Quando combini! e>, stai semplicemente invertendo un operatore di confronto, quindi il risultato finale è lo stesso.

Detto questo, < = è la forma comune, quindi direi che è preferibile, per la leggibilità se non altro. Non so se c'è un vantaggio in termini di prestazioni, ma ne dubito.

Modifica: Inoltre, non hai detto quale versione di SQL hai a che fare. Come sottolineato da @harryovers, si tratta di un operatore valido in MS-SQL, ma potrebbe non funzionare ovunque.

+0

Per riferimento: http://beginner-sql-tutorial.com/sql-operators.htm – ddrace

0

Quando si dice operatori logici logica è AND e OR non ho mai visto!> Ho visto <>

Se lei si riferisce a != e <> sono la stessa cosa.

+0

http://msdn.microsoft.com/en-us/library/aa276867(v=SQL.80).aspx – harryovers

+0

Mai usato ... strano non avrebbe mai saputo che avrebbe funzionato. Ancora non cambia il modo in cui funziona, solo un modo diverso di dare una pelle a un gatto, credo. – JonH

4

Non riesco a capire perché si utilizzerebbe l'uno sull'altro, ma lo standard !> non è conforme agli standard ISO e in base a ciò direi che <= è il metodo preferito.

1

No, non c'è differenza. L'unica ragione per cui riesco a pensare è di renderlo più leggibile in un certo contesto.

E.g. per lo stesso motivo, utilizzerei < 5 anziché <= 4 se c'era un significato per lo che rappresenta un limite nel contesto.

1

Il !=, !< e !> non sono operatori di confronto standard e sono supportati solo da pochi sistemi, SQL-Server essere uno: msdn: Comparison Operators (Transact-SQL). MySQL supporta anche lo != ma solo quello, non gli altri due.

Gli operatori di confronto SQL standard equivalenti sono <>, >= e <=.

In tutte le situazioni, preferirei lo standard. Non si sa quando è necessario migrare il codice su un'altra piattaforma (e avere meno errori da trattare).

4

Un motivo per cui l'alternaive!> Consente di semplificare l'inserimento di SQL all'interno di XML. Il segno meno che introduce introduce tag XML. Se SQL con uno < è incluso in XML o HTML, deve essere salvato come & LT ;. Un segno più grande del segno non significa nulla di speciale a meno che non sia stato preceduto da un segno meno che da un segno.