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.
davy.ai
Sí, puedes cambiar las comillas dobles por comillas simples usando el método
sql.SQL()
con una entrada de cadena en lugar desql.Identifier()
. Aquí tienes un fragmento actualizado de tu consulta con comillas simples alrededor de la variablevar
:Esto debería producir la siguiente consulta impresa:
Ten en cuenta que se utiliza la cláusula
WHERE
en lugar deWHEN
. Además, la variablevar
ya no se pasa a través del métodosql.Identifier()
, ya que no es un nombre de columna sino un valor de cadena.