Depende de qual SQL do fornecedor você está usando, mas eu diria que será algo como:
SELECT * FROM table WHERE column BETWEEN value1 AND value2
como alternativa, você poderia usar
SELECT * FROM table WHERE column <= value1 AND >= value2
Sou relativamente novo no SQL e estou procurando um comando que possa ser executado para localizar todos os registros em um banco de dados dentro de 0,5 de um valor calculado.
Por exemplo:
SELECT X, (Y/Z) AS ZZ FROM Table WHERE ZZ WITHIN .5
No entanto, como WITHIN
não é um comando SQL válido, qual é o comando real em que posso substituir?
Depende de qual SQL do fornecedor você está usando, mas eu diria que será algo como:
SELECT * FROM table WHERE column BETWEEN value1 AND value2
como alternativa, você poderia usar
SELECT * FROM table WHERE column <= value1 AND >= value2
Algo parecido com isto (no SQL Server 2008 R2) o que você tem em mente?
CREATE TABLE Tab
(
X FLOAT NOT NULL,
Y FLOAT NOT NULL,
Z FLOAT NOT NULL,
ZZ AS Y / Z
);
INSERT INTO Tab
VALUES
( 1, 2, 3 ),
( 0.1, 0.2, 0.3 ),
( 0.1, 0.5, 1 ),
( 0.2, 0.4, 0.8 ),
( 0.5, 1, 1.5 );
SELECT X, Y, Z, ZZ
FROM Tab;
DECLARE @Delta FLOAT;
SET @Delta = 0.5;
SELECT X, Y, Z, ZZ, ZZ - @Delta, ZZ + @Delta
FROM Tab
WHERE X BETWEEN ZZ - @Delta AND ZZ + @Delta;
Acho que mais diretamente você está procurando ...
SELECT X, (Y/Z) AS ZZ FROM Table WHERE (Y/Z) BETWEEN (Y/Z) - .5 AND (Y/Z) + .5
Tags sql