我使用的是PostgreSQL 13.7 (Debian13.7-0+ the 11u 1),并有下表:
CREATE TABLE public.meterdata (
"0.0.0" numeric(8,0) NOT NULL,
"0.9.1" numeric(7,0) NOT NULL,
"0.9.2" numeric(7,0) NOT NULL,
"1.2.0" real,
"1.6.0" real NOT NULL,
"1.8.0" real NOT NULL,
我将PostgreSQL与Python结合使用,尽管当前问题的主题似乎是纯SQL。
根据,更改列的类型应如下所示:
ALTER TABLE products ALTER COLUMN price TYPE numeric(10,2);
因此,如果我有一个名为"check_date_time“的表,其中有一个列”“,它的类型为”时间戳“,并且我希望将其更改为”时间戳“,那么,基于以上所述,应该可以这样做:
ALTER TABLE checks ALTER COLUMN check_date_time TYPE timestamptz;
但你猜怎么着。没有,我一直收到错误信息
执行SQL
我非常熟悉MySQL语法,但在PostgreSQL环境中似乎遇到了一些麻烦。在MySQL中,可以很容易地在联接子查询中引用列,但PostgreSQL中会抛出错误。
例如:
SELECT
a.userID,
b.firstname,
c.minCounter
FROM users a
JOIN users_info b ON (a.userID = b.userID)
LEFT JOIN (
SELECT
user_id,
COUNT(*) AS 'minCounter'
FROM sales
WHERE
tota
我正在尝试将一个.txt文件导入PostgreSQL。txt文件有6列:
Laboratory_Name Laboratory_ID Facility ZIP_Code City State
213排。
我试图使用\copy将该文件的内容放入一个名为doe2 in PostgreSQL的表中,使用以下命令:
\copy DOE2 FROM '/users/nathangroom/desktop/DOE_inventory5.txt' (DELIMITER(' '))
它给了我这个错误:
列“设施”缺少的数据
当我遇到这个错误时,我四
我想编写一个简单的查询来选择PostgreSQL中的许多列。然而,我不断地犯错误--我尝试了几种选择,但它们对我不起作用。目前,我正在收到以下错误:
org.postgresql.util.PSQLException:错误:“列”或“列”附近的语法错误
为了获得具有值的列,我尝试以下方法:
select * from weather_data where column like '%2010%'
有什么想法吗?
我在PostgreSQL中有这个查询,我想在我的Yii2模型中实现它:
SELECT *
FROM some_table
WHERE 1492257600 BETWEEN start AND end
start和end是some_table的属性。在我的模型中,我尝试了以下方法,但无论我如何编写,它都会抛出相同的错误。
$results = static::find()->where(['between', 1492257600, 'start', 'end'])
->all();
这是我得到的错误
我一直收到这样的错误:列引用"person“不明确。
我需要返回一个表(person整数)。当我使用SETOF integer时,它工作得很好,但在这种情况下,它不能工作。我的另一个函数recurse()很好地返回了一组整数。
CREATE OR REPLACE FUNCTION try(_group text) RETURNS TABLE (person integer) AS $$
DECLARE
_init_id integer;
_record integer;
BEGIN
SELECT id INTO _init_id FROM egroups
我对PostgreSQL很陌生,并尝试了以下两种场景:
在同一列上的数据库(Road/Highway)Using case中已经有一个正斜杠(/)的列名,与index一起选择
Select Road/Highway,
case
when index(upcase(Road/Highway), 'xturn') > 0 then 2
else 0
end as preferred_road
from abc_data;
但我得到了语法错误附近的索引和斜杠,它只是走的路。
如何在查询中找到每一行结果的表名?
我在堆栈网络上尝试了一些建议(溢出,dba)。
1个如何在PostgreSQL中使表名成为属性?
2个https://stackoverflow.com/questions/24580352/get-the-name-of-a-rows-source-table-when-querying-the-parent-it-inherits-from
模板是生成我正在搜索的所有子表的父级。当我只搜索名字和状态时,我会得到预期的结果,但它们都来自不同的表。
select first_name, last_name, state
from template
where
我想知道为什么PostgreSQL会在以下语句中产生一个不明确的引用错误:
SELECT c from A JOIN B ON A.c = B.c; -- ERROR: column reference is ambiguous
但不是这样的:
SELECT c FROM A NATURAL JOIN B; -- OK
在这两种情况下,A.c必须与B.c相同。
使用SQLAlchemy和PostgreSQL作为数据库。我有一个列超过32列的表,我得到了以下错误:
不能在索引中使用超过32列。
下面是我如何创建表的代码片段:
class Application():
__tablename__ = 'application'
id = Column(Integer, primary_key=True)
name = Column(String)
value = Column(Integer)
# ..and many other columns (45 columns in total)
SELECT
cat.CategoryID as CategoryID,
count(p.ProductID) as CountProducts
FROM
Category as cat
LEFT JOIN Products as p on p.CategoryID IN
(SELECT CategoryID FROM Category as cd
我想按小时分组,在选择列“时间”中,我想显示完整的时间格式(例如: 12:15:56 PM),但当我运行可能的代码时,显示以下错误。
错误:列'vFlowRate_hr.Time‘在选择列表中无效,因为它既未包含在聚合函数中,也未包含在GROUP BY子句中。
select Sum(Value) As FlowRateSum, Dir.PlantAddress, PlantType, FlowRateNo,vFlowRate_hr.Date , time
from vFlowRate_hr Inner Join DIR ON vFlowRate_hr.FlowRateID = DIR
首先,我得到了一个错误:
org.postgresql.util.PSQLException: ERROR: column xxxx is of type oid but expression is of type bytea
Hint: You will need to rewrite or cast the expression.
Position: 318
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2182)
...
谷歌一段时间后,我想我应该把列
我正在尝试将PostgreSQL表列从整数转换为货币,但我正在接收错误:
不能将MyColumn类型转换为money
我试过这两种说法,只是没有找到任何关于如何真正做到这一点的真正例子。
ALTER TABLE products
ALTER COLUMN price TYPE money
以及:
ALTER TABLE products
ALTER COLUMN price TYPE money USING to_char(price, '999.99')
如何将PostgreSQL列的数据类型从整数更改为货币?
我正在尝试创建一个新表,使用B表中不包含account_id的A表。但是,我遇到了一个错误:
错误:列"owner_name“不止一次指定
postgres查询:
Create table dallas_50000_2
AS SELECT * from "2018_texas_county_dallas_individuals_person" A
LEFT JOIN dallas_50000_copy B
ON A.account_id = B.account_id
WHERE B.account_id IS NULL;
简单方案:
CREATE TABLE foo (bar int);
INSERT INTO foo VALUES (42);
CREATE FUNCTION baz() RETURNS int AS $$
SELECT bar
FROM foo
$$ LANGUAGE SQL;
SELECT baz();
这是工作的,并返回42。
我不喜欢我的专栏命名,所以我重新命名它:
ALTER TABLE foo RENAME bar TO qux;
但是现在如果我再次调用这个函数:
SELECT baz();
42703错误:列"bar“不存在
内联过程中的SQL函数"baz“
我得到了以下错误,除了更改参数名称之外,似乎找不到解决方案,而我不希望这样做: ERROR: column reference "pcode" is ambiguous
LINE 2: where lower(n.pcode) = lower(pCode) pCode是plpgsql函数的参数,n.pcode是表中别名为n的列。 它看起来像这样: create or replace function func_name(
pCode text,
other_params....
)
returns json as
$$
declare
q t
这不是我遇到的实际问题,只是和同事讨论后的好奇心。
给予:
SELECT 1 as foo, 2 as foo;
如何从一列中选择值:
SELECT foo
FROM (SELECT 1 as foo, 2 as foo);
没有:
42702错误:列引用"foo“不明确
我所能想到的最好是一个CTE,您将严格地需要知道每一列及其顺序:
WITH remapped(foo, bar) AS (
SELECT 1 as foo, 2 as foo
)
SELECT *
FROM remapped;
或者可能做枢轴。