Saltar al contenido

Devuelve el valor booleano como VERDADERO o FALSO en Seleccionar (PostgreSQL / pgAdmin)

Solución:

Si todo lo que quieres mostrar es el literal TRUE o FALSE, puede utilizar las declaraciones de casos como había propuesto. Dado que PostgreSQL trata TRUE, true, yes, on, y, t y 1 como cierto, controlaría cómo me gustaría que se viera la salida.

Donde la cláusula se puede escribir como:

select * from tablename where active
--or--
select * from tablename where active = true

(Mi recomendación es la misma que PostgreSQL: use true)

Al seleccionar, aunque puede haber dudas sobre el uso de las declaraciones de casos, todavía recomendaría hacerlo para tener control sobre su literal de cadena de salida.

Su consulta se vería así:

select 
  case when active = TRUE then 'TRUE' else 'FALSE' end as active_status,
  ...other columns...
from tablename
where active = TRUE;

Ejemplo de SQLFiddle: http://sqlfiddle.com/#!15/4764d/1

create table test (id int, fullname varchar(100), active boolean);
insert into test values (1, 'test1', FALSE), (2, 'test2', TRUE), (3, 'test3', TRUE);

select
  id,
  fullname,
  case when active = TRUE then 'TRUE' else 'FALSE' end as active_status
from test;

| id | fullname | active_status |
|----|----------|---------------|
|  1 |    test1 |         FALSE |
|  2 |    test2 |          TRUE |
|  3 |    test3 |          TRUE |

Un elenco simple para text hará el trabajo (a menos que necesite ortografía en mayúsculas):

SELECT true::text AS t, false::text AS f;

 t    | f
------+-------
 true | false

De lo contrario, la representación del texto depende de la biblioteca y el cliente que utilice para conectarse. JDBC, por ejemplo, representa boolean valores como “verdadero” https://foroayuda.es/ “falso” de todos modos:

Violín SQL.

Te encantará este cambio en Postgres 9.5 (citando las notas de la versión):

  • Utilice el comportamiento de transmisión de asignaciones para conversiones de tipos de datos en asignaciones PL / pgSQL, en lugar de convertir hacia y desde texto (Tom Lane)

    Este cambio causa conversiones de booleanos a cadenas para producir true
    o false, no t o f
    . Las conversiones de otros tipos pueden tener éxito en más casos que antes; por ejemplo, asignar un valor numérico 3.9 a una variable entera ahora se asignará 4 en lugar de fallar. Si no se define una conversión de grado de asignación para los tipos de origen y destino particulares, PL / pgSQL recurrirá a su antiguo comportamiento de conversión de E / S.

El énfasis audaz es mío.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *