Usuário com melhor resposta
Particionando uma consulta

Pergunta
-
Fala galera!
Estou tentando usar esse tipo de particionamento em minha consulta
select * from dim_cso where mod(cso_key,6)=0
select * from dim_cso where mod(cso_key,6)=1
select * from dim_cso where mod(cso_key,6)=2
select * from dim_cso where mod(cso_key,6)=3
select * from dim_cso where mod(cso_key,6)=4
select * from dim_cso where mod(cso_key,6)=5
mas o comando MOD não funciona no SQL!
Alguem tem alguma ideia de ou sugestão?
Muito Obrigado
MCP Windows Server 2003
Respostas
-
Bom dia Vinicius,
Não sei se é o que você esta esperando mais veja se o comando % te ajuda.
exe:
select * from dim_cso where (cso_key % 6)=0; select * from dim_cso where (cso_key % 6)=1; select * from dim_cso where (cso_key % 6)=2; select * from dim_cso where (cso_key % 6)=3;
Abçs,
Adriano Nascimento
- Sugerido como Resposta Clayton Santos quarta-feira, 4 de abril de 2012 15:29
- Marcado como Resposta Vinícius Cruz Zamuner quarta-feira, 4 de abril de 2012 16:12
Todas as Respostas
-
Olá Vinícius,
Você esta querendo obter o "resto" da divisão? Se for isto o comando certo é o "%"(porcentagem).
Veja um exemplo:
create table NULL_TESTE( CODIGO INT NULL ) GO DECLARE @VAR INT SET @VAR = 1 WHILE @VAR < 50 BEGIN IF (@VAR % 2) = 1 INSERT INTO NULL_TESTE (CODIGO) VALUES (@VAR) IF (@VAR % 2) = 0 INSERT INTO NULL_TESTE (CODIGO) VALUES (NULL) SET @VAR = @VAR +1 END SELECT ISNULL(CODIGO,99999) FROM NULL_TESTE
Depende do que você precisa. Por exemplo, Você poderia usar a função RANK e a partir do número sequencial gerado por ela criar uma sub-query correlacionada e usar o between para exibir apenas um range definido de informações.
Se útil, Classifique.
Abraços.
Dhiego Piroto - MCP | MCTS SQL Server 2008 Developer | Email: dhiegopiroto@gmail.com
- Sugerido como Resposta Roberto F FonsecaModerator quarta-feira, 4 de abril de 2012 15:32
- Não Sugerido como Resposta Vinícius Cruz Zamuner quarta-feira, 4 de abril de 2012 16:16
-
Bom dia Vinicius,
Não sei se é o que você esta esperando mais veja se o comando % te ajuda.
exe:
select * from dim_cso where (cso_key % 6)=0; select * from dim_cso where (cso_key % 6)=1; select * from dim_cso where (cso_key % 6)=2; select * from dim_cso where (cso_key % 6)=3;
Abçs,
Adriano Nascimento
- Sugerido como Resposta Clayton Santos quarta-feira, 4 de abril de 2012 15:29
- Marcado como Resposta Vinícius Cruz Zamuner quarta-feira, 4 de abril de 2012 16:12
-