es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Quiero obtener un valor específico de una columna en una base de datos que está alojada en PSQL.

Me gustaría extraer un valor específico de una columna en una tabla, pero no puedo hacerlo porque la forma en que lo hago en Python mantiene el valor específico dentro de ” ” en lugar de ”. Entonces me preguntaba si hay alguna forma de hacerlo. A continuación, puede ver el fragmento de la consulta que he intentado.

query = sql.SQL(“SELECT {fields} FROM {table} WHEN {col_name} = {var}”).format(fields=sql.SQL(‘,’.join([sql.Identifier(cols[0]),sql.Identifier(cols[1]),])),table=sql.Identifier(table),col_name=sql.Identifier(cols[1]),var=sql.Identifier(var))

y la siguiente es la consulta impresa usando

print(query.as_string(conn))

SELECT “column1″,”column2” FROM “table” WHEN “column2” = “string_value”

Me preguntaba si podría tener algo como “column2” = ‘string_value’, lo cual resolvería mi problema.

Gracias de antemano.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, puedes cambiar las comillas dobles por comillas simples usando el método sql.SQL() con una entrada de cadena en lugar de sql.Identifier(). Aquí tienes un fragmento actualizado de tu consulta con comillas simples alrededor de la variable var:

    query = sql.SQL("SELECT {fields} FROM {table} WHERE {col_name} = '{var}'").format(fields=sql.SQL(',')
            .join([sql.Identifier(cols[0]),sql.Identifier(cols[1]),]),table=sql.Identifier(table),col_name=sql
            .Identifier(cols[1]),var=var)
    

    Esto debería producir la siguiente consulta impresa:

    SELECT "column1","column2" FROM "table" WHERE "column2" = 'valor_de_cadena'
    

    Ten en cuenta que se utiliza la cláusula WHERE en lugar de WHEN. Además, la variable var ya no se pasa a través del método sql.Identifier(), ya que no es un nombre de columna sino un valor de cadena.

Comments are closed.