2016-01-31 22 views
5

sto passando una semplice query dove sono alla ricerca di file specifici in cui OrderID è un numero pariSelezionare Righe con id dover numero pari

SELECT * 
FROM Orders 
WHERE mod(OrderID,2) = 0; 

Errore:

(operatore mancante)

Errore di sintassi in espressione di query 'mod (OrderID, 2) = 0'.

+3

Oracle-Server o SQL-Server ?? @solankikaushik –

+1

Non sembra T-SQL (MS SQL Server) per me - non c'è la funzione 'mod' di cui ho sentito parlare. OP potrebbe fare 'SELECT * FROM Orders WHERE OrderID% 2 = 0', penso. – Tim

+0

@Malik Asif: Server Sql –

risposta

14

Non si sta utilizzando Oracle, quindi si dovrebbe utilizzare l'operatore modulo:

SELECT * FROM Orders where OrderID % 2 = 0; 

La funzione MOD() esiste in Oracle, che è la fonte della vostra confusione.

Dai uno sguardo allo this SO question che illustra il tuo problema.

0

La funzione MOD() esiste sia in Oracle e MySQL, ma non in SQL Server.

In SQL Server, provate questo:

SELECT * FROM Orders where OrderID % 2 = 0; 
0
SELECT * FROM (SELECT *, Row_Number() 
OVER(ORDER BY country_gid) AS sdfg FROM eka_mst_tcountry) t 
WHERE t.country_gid % 2 = 0 
3

SELECT * FROM Ordini dove OrderID% 2 = 0; /// questo è per i numeri pari

SELECT * FROM Ordini dove IDOrdine % 2! = 0; /// questo è per i numeri dispari