Jump to content
Querendo_ser_Nerd

Retornar apenas um valor na coluna

Recommended Posts

Boa noite,

Por favor, estou com seguinte problema, em uma coluna tenho valores de 0,2,3, porém eu preciso que minha consulta final retorne apenas o valor 0, caso no registro não tenha valor 0, retorne o valor 3.

Estou tentando com o Case mais sem sucesso. Alguem poderia me ajudar.

select p.produto,p.nome, (case when p,sequencia = 3 then 3 else 2 end) as valor

from produtos p

where p.status = 'A'

Share this post


Link to post
Share on other sites

Certo, mas no caso seria assim, se tiver um dos dois valores nunca retornar os dois valores. Por exemplo eu quero que traga sempre 0, mas se não tiver o 0 traga 1, mas nunca traga 0 e 1 no mesmo registro se não trás código duplicado.

Share this post


Link to post
Share on other sites

Certo,

Nome cidade endereço tipo_endereço

João São Paulo centro, 125 0

João São Paulo vila das flores, 190 1

Paulo Campinas salgueiro, 90 1

No cadastro acima eu quero que a consulta retorne apenas os endereço da coluna tipo_endereço = 0 (seria o principal) porém caso o cliente não tiver o endereço na coluna tipo_endereço = 0, ele vai retornar o tipo_endereço = 1 ( seria o endereço opcional). No caso do João é para ele trazer o endereço 0, já no caso do Paulo ele não tem o principal, então retorna do numero 1.

Eu pensei em fazer um If ou case.

Att,

Share this post


Link to post
Share on other sites

Eu faria um subselect com NOT EXISTS ou um subselect com MAX.

Share this post


Link to post
Share on other sites


SELECT Nome ,cidade , endereco , tipo_endereco

FROM tabela t1

where tipo_endereco = (select min(tipo_endereco)

FROM tabela t2

where t2.nome = t1.nome)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By EREGON
      Olá,
      Eu tenho uma tabela com 7 colunas. A primeira coluna tem o nome das pessoas. Da coluna 2 à coluna 7 tem valores (de 0,0 a 15,0) de MONTH_1 a MONTH_6, portanto:
      Column_1 = nome;
      Column_2 = MONTH_1;
      Column_3 = MONTH_2;
      Column_4 = MONTH_3;
       
      e assim por diante...
       
      Agora eu quero recuperar registos que tenham valor > = 0,55 em pelo menos 2 ou mais colunas desses meses.
      Como posso fazer esse cálculo?
    • By vagner.analista
      Senhores boa tarde, alguém pode me ajudar?
       
      Tenho a seguinte situação, um campo data em duas tabelas, onde caso o contrato tenha aditivo o campo data da tabela TITMCNTADITIVO,  fica preenchido. caso o contrato não tem aditivo ela fica com o valor null. Então caso o valor dessa tabela aditivo estiver null, eu gostaria de apresentar o campo data da tabela TITMCNT do contrato que tem a data fim do contrato, com o select abaixo eu consigo saber se tem aditivo ou não:
      SELECT TOP 1   (DATA + 90) AS DATAFIM              FROM TITMCNTADITIVO (NOLOCK)             WHERE 1=1             AND CODCOLIGADA = 1             AND IDCNT = 72 Neste caso este contrato não tem aditivo, então, gostaria que ele executasse outro SELECT:
      SELECT (DATAFIM + 90) AS DATA_FIM  FROM TITMCNT             WHERE IDCNT = '72'  
       
      O mais lógico que tentei foi assim, mas não dá certo:

      SELE
      CT TOP 1  (DATA + 90) AS DATAFIM, CASE (DATA) WHEN IS NULL THEN ( SELECT (DATAFIM + 90) AS DATA_FIM  FROM TITMCNT                     WHERE IDCNT = '72' ) END AS DATAFIM FROM TITMCNTADITIVO (NOLOCK) WHERE 1=1 AND CODCOLIGADA = 1 AND IDCNT = 72  
    • By ndias
      preciso fazer um select assim:
       
      Select count(CASE WHEN tbl1.dtCadastro = CURDATE() THEN '' ELSE NULL END) as qtdDia, tbl2.id
      from tbl1
      inner join tbl2 on tbl2.id = tbl1.id and tbl2.id = 123
      where tbl1.int = 190273
       
      eu quero que o Count me traga q a quantidade de registros no dia, e por por conta do tbl2.id = 123 ele está trazendo apenas um
       
      alguém pode me ajudar, por favor?
    • By alecram28
      Bom dia.
      Tenho o seguinte exercicio para fazer, comecei a fazer mas nao consigo terminar e nao sei se é bem isso. 
      Se alguem puder me ajudar, sou iniciante. Obrigado!
       
      Questao: Usando HTML, CSS e JS, escreva um algoritmo que leia o código de uma operação a partir o teclado e que realize a operação associada a esse código. O código é um valor inteiro. Os códigos
      e operações são listados abaixo:
      1 Área de um retângulo. Os valores da base e da altura do retângulo devem ser informados pelo usuário. OBS: aretângulo = base * altura.
      2 Área de um triângulo. Os valores da base e da altura do triângulo devem ser informados pelo usuário. OBS: atriângulo = (base * altura) / 2.
      3 Área de um círculo. O valor do raio do círculo deve ser informado pelo usuário. OBS: acírculo = 3,14 * (raio)2
      4 Área de um trapézio. Os valores da base maior, da base menor e da altura do trapézio devem ser informados pelo usuário. OBS: atrapézio = [(base maior + base menor) * altura] / 2.
       
       
       
      Meu código:
      html:
       
      <!DOCTYPE html>
      <html lang="pt-br">
      <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Área figuras</title>
      <link rel="stylesheet" href="pratica06exercicio04.css">
      <script src="pratica06exercicio04.js" type="text/javascript"></script>
      </head>
      <body>
      <main>
      <h1>Área de Figuras Geométricas</h1>
      <h3>Informe o número da operação desejada:</h3>
      <h4>1- Área Retângulo<br>2-Área Triângulo<br>3-Área Círculo<br>4-Área Trapézio</h4>
      <div class="numero">Código <input type="number"id="cod"></div>
      <button onclick="codigo()">OK</button>
      <div id="operandos"></div>
      <div id="resultado"></div>
      </main>
      </body>
      </html>
       
       
       
       
      js:
       
      function codigo() {
      var c = document.getElementById("cod");
      switch (c) {
      case '1':
      operandosRetangulo()
      break;
      case '2':
      operandosTriangulo()
      break;
      case '3':
      operandosCirculo()
      break;
      case '4':
      operandosTrapezio()
      break;
       
      }
      }
       
      function limparTela() {
      var operandos = document.getElementById("operandos");
      var resultado = document.getElementById("resultado");
      operandos.style.display = "none";
      resultado.style.display = "none";
      }
       
      function operandosCirculo() {
      limparTela();
      var operandos = document.getElementById("operandos");
      operandos.innerHTML = "Informe o raio: <input type='number' id='raio'>" +
      "<br/>" + "<button onclick='areaCirculo ()'>OK</button>";
      operandos.style.display = "block";
      }

       
      function operandosRetangulo() {
      limparTela();
      var operandos = document.getElementById("operandos");
      operandos.innerHTML = "Informe a base: <input type='number' id='base'>" +
      "<br/>" +
       
      "Informe a altura: <input type='number'id='altura'>" +
      "<br/>" +
      "<button onclick='areaRetangulo ()'>OK</button>";
      operandos.style.display = "block";
      }
       
      function operandosTriangulo() {
      limparTela();
      var operandos = document.getElementById("operandos");
      operandos.innerHTML = "Informe a base: <input type='number' id='baset'>" +
      "<br/>" +
       
      "Informe a altura: <input type='number'id='alturat'>" +
      "<br/>" +
      "<button onclick='areaTriangulo ()'>OK</button>";
      operandos.style.display = "block";
      }
       
      function operandosTrapezio() {
      limparTela();
      var operandos = document.getElementById("operandos");
      operandos.innerHTML = "Informe a base maior: <input type='number' id='basema'>" +
      "<br/>" +
      "Informe a base menor: <input type='number' id='baseme'>" +
      "<br/>" +
       
      "Informe a altura: <input type='number'id='alturaz'>" +
      "<br/>" +
      "<button onclick='areaTrapezio ()'>OK</button>";
      operandos.style.display = "block";
      }

       
      function areaCirculo() {
      var raioSTR = document.getElementById("raio").value;
      var raio = parseFloat(raioSTR);
      var area = 3.14 * Math.pow(raio, 2);
      var resultado = document.getElementById("resultado");
      resultado.innerHTML = area;
      resultado.style.display = "block";
      }

       
      function areaRetangulo() {
      var baseSTR = document.getElementById("base").value;
      var alturaSTR = document.getElementById("altura").value;
      var base = parseFloat(baseSTR);
      var altura = parseFloat(alturaSTR);
      var area = base * altura;
      var resultado = document.getElementById("resultado");
      resultado.innerHTML = area;
      resultado.style.display = "block";
      }
       
      function areaTriangulo() {
      var bt = document.getElementById("baset").value;
      var at = document.getElementById("alturat").value;
      var baset = parseFloat(bt);
      var alturat = parseFloat(at);
      var areat = (bt * at) / 2;
      resultado.innerHTML = areat;
      resultado.style.display = "block";
      }
       
      function areaTrapezio() {
      var bma = document.getElementById("basema").value;
      var bme = document.getElementById("baseme").value;
      var az = document.getElementById("alturaz").value;
      var areatra = ((bma + bme) * az) / 2;
      resultado.innerHTML = areatra;
      resultado.style.display = "block";
       
      }

       
       
       
       
       
    • By welwvs
      Olá povoestou tendo um problema e não estou descobrindo oque eu estou fazendo  de errado.
       
      Eu criei um var = currentUser;
       
      Em seguida no switch, dentro de um case: "LOGAR" eu queria chamar a currentUser para receber uns valores
       
      E depois em outro case: "PING2" eu queria trabalhar com os dados que salvei na currentUser.
       
      Eu percebi alguns problemas que no case: "PING2" A currentUser estava vazia, mais no case "LOGAR" ela realmente recebeu os valores usei um console.log para ter certeza que foram salvas.
       
      eu estou com duvidas se no case: "LOGAR" eu chamei o var currentUser de forma correta, porque ele só tem valores dentro dele apenas no case: "LOGAR" nos outros case ele fica vazio
       
      var shortId = require('shortid');//import shortid lib var dgram = require('dgram');// importa a biblioteca do node para sockets UDP var socket = dgram.createSocket('udp4'); var clients = [];//storage clients var clientLookup = {};// cliends search engine var sockets = {};//storage sockets var database_model = require('./Models/database_model'); database_model.connect(function (err_connect) { }); socket.on('message', function(message,datagram_info) {//"message" armazena o pacote JSON, "datagram_info" armazena o IP e a PORTA do cliente //que fez a abertura do socket (ex: 127.0.0.1 e 8080) console.log('O servidor recebeu uma messagem: '+message+' de '+datagram_info.address); var data = JSON.parse(message);//converte o conteudo do pacote JSON message var currentUser;// nao ta recebendo nada não sei porque. switch(data.id ) { //começa case "PING"://se estivessemos utlizando TCP seria socket.on('PING',function(){ //processamento do socket}); como eu faco em console.log(currentUser); console.log('[INFO] teste ping foi recebido !!! '); var response = "PONG"+','+"pong!!!"+','+"test";//formata os dados com o separador virgula para serem enviados de volta ao Sender var msg = new Buffer(response);//bufering console.log('send response to client'); //enviando para o cliente, Sending Messages Back to Sender "Socket.Emit" socket.send(msg, 0, msg.length, datagram_info.port,//port of Sender datagram_info.address//IP of Sender ); break; //termina case "LOGAR": console.log('[INFO] Player: ' + data.nome + ', ' + data.senha + ' connected!'); database_model.verify_fk1(data.nome, data.senha, function ( result) { if (result == true) { console.log("Os Dados do usuario estão corretos"); console.log('[INFO] O usuario ' + data.nome + ' conectou. Carregando informações ... !'); var response = "RespostaLOGAR"+','+"TODOS OS DADOS FORAM CARREGADOS COM SUSSESSO, você ESTA LIBERADO PARA SELEÇÃO DE PERSONAGEM"; var msg = new Buffer(response); console.log('O pacote de reposta do login com sussesso foi enviada'); socket.send(msg, 0, msg.length, datagram_info.port,//port of Sender datagram_info.address//IP of Sender ); database_model.carregardados(data.nome, function (err, rows){ if (err) { console.error(err); } console.log('[INFO] cheguei com os dados: **************'); console.log('Cli_id: '+rows[0].cli_id); console.log('cli_personagem1: '+ rows[0].cli_personagem1); console.log('cli_personagem2: '+ rows[0].cli_personagem2); console.log('cli_personagem3: '+ rows[0].cli_personagem3); console.log('cli_personagem4: '+ rows[0].cli_personagem4); console.log('[INFO] fim **************'); currentUser = { name:data.nome, id:shortId.generate(), socketID:socket.id, pass:data.senha, port:datagram_info.port, address:datagram_info.address, cliID:rows[0].cli_id, cliPERID1:rows[0].cli_personagem1, cliPERID2:rows[0].cli_personagem2, cliPERID3:rows[0].cli_personagem3, cliPERID4:rows[0].cli_personagem4 } clients.push(currentUser);//add currentUser in clients list clientLookup[currentUser.id] = currentUser;//add client in search engine sockets[currentUser.socketID] = socket;//add currentUser socket console.log('Dados armazenados no currentUser: '+currentUser.id+',' +currentUser.name+',' +currentUser.pass+',' +currentUser.cliID+',' +currentUser.cliPERID1+',' +currentUser.cliPERID2+',' +currentUser.cliPERID3+',' +currentUser.cliPERID4+','); console.log('Total players: ' + clients.length); var response = "RespostaLOGAR2"+','+currentUser.id; var msg = new Buffer(response); console.log('O pacote de reposta do login com sussesso foi enviada'); socket.send(msg, 0, msg.length, datagram_info.port,//port of Sender datagram_info.address//IP of Sender ); }); } else { console.log("Loguin ou senha incorretos"); var response = "INCORRECT_PASS"+','+"Usuario ou senha estão incorretos"; var msg = new Buffer(response); console.log('pacote de erro no loguin enviado'); socket.send(msg, 0, msg.length, datagram_info.port,//port of Sender datagram_info.address//IP of Sender ); } }); break; case "PING2": console.log(currentUser);; console.log('[INFO] nome do per foi pedido'); var response = "PONG2"+','+"casa";//aqui var msg = new Buffer(response);//bufering console.log('send response to client'); //enviando para o cliente, Sending Messages Back to Sender "Socket.Emit" socket.send(msg, 0, msg.length, datagram_info.port,//port of Sender datagram_info.address//IP of Sender ); break; }//END-SWITCH });  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.