1
resposta

[Dúvida] Campo lógico 0x01 em vez de só 1

Fazendo o exercício, fiz diferente do que o professor em alguns tópicos do exercício.

Na parte de "CREATE TABLE" o professor usou "varchar" e eu "char", não lembrei do "bit' e consultei o gabarito,só que quando coloquei 1 em VALUES e depois quando consulto ele retorna pra mim 0 x 01 em vez de apenas 1 como no exemplo do professor. Por quê?

Código do professor

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

E o meu:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade A do professor tá correta mas a minha saida em "TEM DEPENDENTE" sai 0x01 em vez de 1 como disse acima e a maneira que eu fiz pode ser considerada correta tirando essa parte do "TEM DEPENDENTE"???

1 resposta

Olá, Jean, tudo bem?

Desculpe pela demora em obter retorno.

Ao utilizar o tipo de dado "bit" em uma tabela do SQL Server, estamos criando um campo lógico que pode ter dois valores: 0 ou 1. O valor 0 representa falso e o valor 1 representa verdadeiro.

No seu código, você utilizou o valor 1 para o campo "TEM_DEPENDENTE", o que é correto. Porém, quando você consulta a tabela, está vendo o valor "0x01" ao invés de "1". Isso ocorre porque ele está exibindo o valor em formato hexadecimal.

Para exibir o valor em formato decimal, você pode utilizar a função "CONVERT" junto com o parâmetro "INT". Exemplo:

SELECT CONVERT(INT, [TEM DEPENDENTE]) FROM [VENDEDORES];

Ou ainda a cast:

SELECT CAST([TEM DEPENDENTE] AS INT) FROM [VENDEDORES]

Isso deve exibir o valor "1" ao invés de "0x01".

Deixo como sugestão de leitura a documentação.

Em relação ao uso do tipo de dado "char" ao invés de "varchar", é importante lembrar que o "char" é utilizado quando se sabe exatamente qual será o tamanho máximo do dado a ser armazenado na coluna. Já o "varchar" é utilizado quando o tamanho máximo pode variar.

No seu caso, se o tamanho máximo do campo "NOME" for de, por exemplo, 50 caracteres, você pode utilizar o tipo "char(50)" ou "varchar(50)" sem problemas. A escolha entre um ou outro vai depender da sua preferência e da necessidade do seu projeto.

Espero ter ajudado.

Qualquer dúvida, fico à disposição.

Abraços e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!