【发布时间】:2012-10-18 10:29:33
【问题描述】:
我有一个 POstgreSQL 8.4。 我有一个表,我想使用子查询返回的子字符串(字符变化数据类型)在该表的一行(字符变化数据类型)中找到一个字符串:
SELECT uchastki.kadnum
FROM uchastki
WHERE kadnum LIKE (
SELECT str
FROM test
WHERE str IS NOT NULL)
但是报错
ERROR: more than one row returned by a subquery used as an expression
在test.str 字段中,我在uchastki.kadnum 66:07:21 01 001:27 中有66:07:21 01 001 之类的字符串。
如何使用子查询的结果找到子字符串?
更新
表格测试:
CREATE TABLE test
(
id serial NOT NULL,
str character varying(255)
)
WITH (
OIDS=FALSE
);
ALTER TABLE test OWNER TO postgres;
表 uchastki:
CREATE TABLE uchastki
(
fid serial NOT NULL,
the_geom geometry,
id_uch integer,
num_opora character varying,
kod_lep integer,
kadnum character varying,
sq real,
kod_type_opora character varying,
num_f11s integer,
num_opisanie character varying,
CONSTRAINT uchastki_pkey PRIMARY KEY (fid),
CONSTRAINT enforce_dims_the_geom CHECK (st_ndims(the_geom) = 2)
)
WITH (
OIDS=FALSE
);
ALTER TABLE uchastki OWNER TO postgres;
【问题讨论】:
-
认识这个熟悉的评论吗? “请提及您的 PostgreSQL 版本”。你现在知道演习了。 SQL(检查)、错误消息(检查)、PostgreSQL 版本(否)、Schema 或 SQLFiddle(否)、示例数据(否)。 /沮丧
-
test.str列中究竟存储了什么?你能展示一些示例数据和预期的输出吗? -
@a_horse_with_no_name
test.str它只是一个字符串。 -
@Craig Ringer 我认为我的问题是一个基本的 SQL。
-
@KliverMax 对我来说,为自己付出一些努力是体贴的,这表明你尊重别人的时间。当然,这纯粹是我的意见,但它符合网站指南和常见问题解答。此外,虽然您认为这只是基本的 SQL,但 您是在寻求帮助,所以它可能与您的想法不同。考虑阅读stackoverflow.com/tags/postgresql/info 的“如何提出更好的问题”部分。
标签: postgresql