select u.phone, u.email , t.to_address (error from this)
from user_accounts u
where u.id
in
(select w.user_id
from wallets w
where w.id
in
(
select t.wallet_id
from withdraws t
where t.to_address
in
('1F6o1fZZ7', 'pJDtRRnyhDN
我在PostgreSQL中有一个SQL query,它以数组的形式过滤特定的字段,使其位于bigint范围内。我想添加不过滤掉空值的可能性。对于现有查询,所有字段的空值都会被过滤掉:
select *
from table_test
where '[0,2147483647]'::int8range @> ALL(ARRAY[fields])
我想做这样的事情,只是在这里我要检查整个数组,同时我想检查每个字段:
select count(*) from dbm.inventory_source where '[0,2147483647]'::int8ran
我有一个从发票表中提取的有点复杂的SQL查询。被查询的表使用三个数字字段来创建日期(一个字段表示日、月和年)。
此查询使用TO_DATE函数内部的concat函数调用的组合。在查询的SELECT部分中没有问题,但是当我在where子句中使用相同的语句时,我得到了一个"ORA-01858: a non-numeric character the found WHERE a numeric was a numeric is expected a numeric“,它指的是第一次在WHERE子句的TO_DATE中使用concat。
那么,在where子句中使用concat和TO_DATE有什
我在PostgreSQL中创建了一个按received列分区的表(参见)。让我们以一个玩具为例:
CREATE TABLE measurement (
received timestamp without timezone PRIMARY KEY,
city_id int not null,
peaktemp int,
unitsales int
);
几年来,我已经为每个月创建了一个分区(measurement_y2012m01 . measurement_y2016m03)。
我注意到postgresq
这可能更容易首先用代码来解释,所以我目前正在使用如下所示的内容:
'A' in
(
SELECT DISTINCT b.col1
FROM table b
WHERE b.ky1 = a.ky1
AND b.ky2 = a.ky2
AND b.group = a.group
AND b.rowNum < a.rowNum
)
在where条款中。本质上,我试图查看A在外部查询指定的行之前的任何一点上是否是一个值。这是它自己的工作。问题是当
我有以下查询,它在Oracle和SQL Server2008上都运行得很好,但它似乎不能在PostgreSQL上运行。该查询旨在返回与给定条件匹配的记录计数。谁能解释一下原因,并提供一个解决方案,如何修改这个查询,使其产生预期的结果。
查询:
select count(*)
from tma_notices
where TNOT_NOTICE_TYPE ='0400'
and TNOT_NOTICE_STATUS = 'OK'
and tnot_notice_id >=
(
select NOTICE_NUM_AT_MID
我正在尝试使用另一个查询的输出来更新几行,具有像“空手道%”这样的条件。但是,我不明白Redshift抛出错误错误的原因:不能在任何查询的输出中插入NULL值到列。
以下是查询:
begin;
update lu_gestor_evento
set nombregestorevento = (select nombregestorevento from lu_gestor_evento_pro a12
where a12.id_gestorevento = lu_gestor_evento.id_gestorevento)
WHERE lu_gestor_
我有两个查询,当从PHPMyAdmin执行时,它们自己运行得相当快--在几秒钟内。
SELECT * FROM `testresults` WHERE `SCH_NAME` <> ''
SELECT AVG(pass_rate) FROM `testresults` WHERE `SCH_NAME` <> ''
但是,当我使用第二个查询作为子查询时,查询运行得非常慢,以至于我达到了最大执行时间,但什么也得不到。
SELECT
*
FROM `testresults`
WHERE pass_rate > (SELE
我最近在Heroku上部署了一些应用程序。我在我的本地开发机器上运行MySQL,并且花了一些时间更新我的一些作用域以在PostgreSQL中工作。然而,我收到了一个错误,证明很难更改。
目前,我的模型中有一个特定于数据库的case语句。我理解为什么会发生关于MySQL日期函数的错误,但我不确定这是否是最有效的解决方案。有没有人有更好的方法来实现同时适用于MySQL和PostgreSQL的修复?
case ActiveRecord::Base.connection.adapter_name
when 'PostgreSQL'
named_scope :by_yea
这只是一个SSCCE:
CREATE TABLE test(i INTEGER NOT NULL);
WITH max_i AS (SELECT MAX(i) FROM test)
SELECT * FROM test WHERE max_i - i < 2 AND max_i!=i
PostgreSQL抱怨:
ERROR: column "max_i" does not exist
我猜这是因为max_i是单个值,而不是行集,但是如何在通过复杂查询获得的查询值中只定义一次,而不必在每次使用子查询时重复子查询?
我有一个查询,它从不同的表中选择,然后使用WHERE子句过滤项。该条款如下:
WHERE allItems.NumID != (SELECT RelatedNumID FROM allRelated WHERE NumID = allItems.NumID)
当allRelated表不为空时,这很好。但是当它为空时,我从查询中得到0的结果。
我尝试使用NOT IN而不是!=。当allRelated为空时,它返回结果,但当allRelated不是空时,它不会过滤结果:
WHERE allItems.NumID NOT IN (SELECT RelatedNumID FROM allRelated
(注意:我不是在问如何将列与NULL进行比较。)
我注意到,在PostgreSQL中,如果我们执行SELECT 42 WHERE NULL,结果集是空的。因此,类似于SELECT c FROM t WHERE c > 0的东西将从t中选择所有行,其中c不是,大于零(因为当c是NULL时,条件c > 0计算为NULL)。
我不确定的是,我是否可以依赖这种行为,因为WHERE NULL似乎是一个黑客。(更合适的方法可能是使用CASE表达式。)
我正在从事的项目中,我必须将PostgreSQL查询转换为Django查询。我的问题是如何使用
select id,name, address_1, address_2, city,county,postcode,
case when fuel = 't' then 'Yes'
when fuel is null then 'No' else 'No' end as fuel,
case when food = 't' then 'Yes'
1. MySQL :
SELECT a.*,COUNT(DISTINCT b.id) AS IndianTruck,COUNT(DISTINCT d.id) AS BdTruck
FROM manifests a
JOIN truck_entry_regs b ON a.id = b.manf_id
LEFT JOIN truck_deliverys d ON a.id = d.manf_id
WHERE a.manif
我有一个视图,在这个视图中,我没有权限修改它,并且我必须执行一个SELECT查询,在列为空( empty,not null)的情况下查询其中的行。 在这个视图中,我有: Oid| Name | Email | Phone 此视图上的总记录超过980,000行。 这是我尝试过的: SELECT DISTINCT * FROM View WHERE Phone = ''
SELECT DISTINCT * FROM View WHERE datalength(Phone)<1
SELECT DISTINCT * FROM View WHERE Len(Phone
当Guild.League的成员总数为TournamentXP =0时,我试图更新它:
using (var session = sessionFactory.OpenStatelessSession())
using (var tx = session.BeginTransaction())
{
const int maxLeagues = 6;
session.CreateQuery(
@"update Guild g set g.League = g.League + 1 where g.League
在postgresql中运行以下查询时,我收到错误消息错误:不允许负子字符串长度:
select count(*) as name_matches
from table1 x
inner join
(select * from table2 where trim(last_name) <> 'unknown') y
using (id1)
where substring( trim(x.full_name), 1, (length( trim(x.full_name) ) - 2) ) = trim(y.last_name||' '||y.first
我有一个带有非空字段的表,我希望从另一个表中填充。问题是对另一个表的查询可能返回null。当查询返回null时,如何获得值(0将执行)?我的问题是:
update Packages
set PackageTypeId = (SELECT TOP 1 PackageTypeId
FROM PackageTypes
WHERE Packages.PackageTypeName = PackageTypes.Name
ORDER BY Pack
我想知道是否可以在group by中使用子查询?以sqlite为例,使用以下表格:
create table t (foo int, bar int);
insert into t values (100, 100);
insert into t values (200, 200);
然后运行以下查询:
select max(bar), foo from t group by (select 1);
返回
max(bar) foo
---------- ----------
200 200
我不确定那是什么意思?似乎无论我在group by中放入什
有人能解释一下这个查询是如何执行的吗?它是一个相关的嵌套查询吗?
select distinct id
from activity ac3
where ac3.activity_id = 151 and ac3.id in
(select ac2.id from activity ac2 where ac2.activity_id = 150)
在下面的两个查询中,哪个查询对postgresql最有效?在可读性等方面有更好的风格。
不同之处在于语句doctor.type != 'surgeon'的位置
在WHERE条款中:
SELECT practice.name, doctor.name
FROM doctor
JOIN practice ON (doctor_code = code)
WHERE doctor.name LIKE '%son'
AND (doctor.type != 'surgeon');
或在JOIN子句中:
SELECT practice.name, do
我使用的是PostgreSQL,我有以下情况:
Sales表(简写):
itemid quantity
5 10
5 12
6 1
stock表(简写):
itemid stock
5 30
6 1
我有一个复杂的查询,它还需要在其中一个列中显示每个SUM的itemid。
所以它将是:
Select other things,itemid,stock, SUM (quantity) OVER (PARTITION BY itemid) AS total_sales
from .....
sales
s
我试图过滤特定用户在讨论中的最后一次活动,所以如果用户发表了一篇文章或评论,这个讨论将成为他们个人列表中的第一个。
关系:
a has_many has_many .a Post has_many注释.a User has_many through .通过帖子进行讨论.<code>H 210</code><code>F 211</code>
我的查询基本上是有效的,但只有在讨论中同时存在来自用户的帖子和评论的情况下。
我如何调整我的查询以查找last_created帖子或last_created注释,意思是在我的.order中,如果它是空的,并且
在postgresql中插入/更新数据时,在一个事务中很容易使用。(我在这里的目标是避免对每个语句进行服务器往返,尽管事务性隔离通常很有用。)
在询问时,我不清楚这是否可能。我需要知道哪些函数将消耗每一位,以及如何将这些位分开。
connection c("dbname=test user=postgres hostaddr=127.0.0.1");
work w(c);
w.exec("SELECT a, b FROM my_table WHERE c = 3;");
w.exec("SELECT x, y, z FROM my_other_table
我已经阅读了许多来自SO的帖子,我理解where子句和on子句中过滤的区别。但这些示例中的大多数都是在右表上进行过滤(当使用左连接时)。如果我有如下查询:
select * from tableA A left join tableB B on A.ID = B.ID and A.ID = 20
返回值不是我所期望的。我认为它首先过滤左边的表,只获取ID = 20的行,然后使用tableB进行左连接。
当然,这在技术上应该与执行以下操作相同:
select * from tableA A left join table B on A.ID = B.ID where A.ID = 20
但我认为
我有一个令人费解的问题:考虑两个表mtst与字段m21_nr和mlag与字段m22_tsnr。这两个表都包含数千条记录,其中一些以“M”开头
查询
select m21_nr from mtst where m21_nr like "M%"
返回大约500个结果
SELECT m22_tsnr FROM mlag where m22_tsnr like "M%";
返回50个结果
我想在mtst中找到所有不存在的数字。
select m21_nr
from mtst
where m21_nr like "M%"
and m21_nr not in
我对左连接有点问题。每次我认为我理解他们的时候,我就会遇到一个问题。在下面的查询中,我只尝试返回PracticeTypeName = 'Facility.‘的记录。我知道一个事实,PracticeTypeID的13328和502在表A和表B中都存在,所以在这个实例中不应该有任何空值。PracticeTypeID = 502为PracticeTypeName =‘计费’,不应返回。我使用左连接来解决ID不匹配的其他情况。
Select Memberid, locationname, practicetypeid, practicetypename
From A
L
在空输入表上,PostgreSQL (12.x)对一些聚合函数(如array_agg() )返回NULL,但对其他函数(如count() )返回正常值,如下所示:
=> SELECT count(*) IS NULL FROM (SELECT 1 a) e WHERE a > 1;
?column?
----------
f
(1 row)
=> SELECT array_agg(a) IS NULL FROM (SELECT 1 a) t WHERE a > 1;
?column?
----------
t
(1 row)
为什么在输入为空的情况下,ar
我正在使用来自Yesod的persistent-postgresql库,并且我想执行以下原始查询:
SELECT * FROM utterance WHERE is_target IS NULL ORDER BY RANDOM() LIMIT 1000
选择1000个is_target为空的随机发声。但是,当我通过rawSql运行代码时,persistent会生成以下SQL
SELECT * FROM utterance WHERE is_target IS NULL ORDER BY RANDOM() LIMIT 1000"utterance"."id", &
我使用SELECT查询作为以下查询中的子查询.
SELECT COUNT (`Notification`.`id`) AS `count`
FROM `listaren_mercury_live`.`notifications` AS `Notification`
WHERE NOT FIND_IN_SET(`Notification`.`id`,(SELECT read_ids FROM read_notifications WHERE user_id = 46))
AND((notisfication_for IN("all","India"))
OR(FI
在我的表supportContacts中,我有一个名为comments的字段。我正在尝试运行一个sql查询,在字段不为空或空时更新/追加新注释。这些注释本质上来自表单中的textbox区域,当用户提交时,如果为空,查询就不应该更新DB中的字段。下面的查询给了我一个错误。
UPDATE supportContacts SET IF(comments = CONCAT(comments, "Append this comment") IS NOT NULL or comments = '', 'empty', comments) WHERE id=1
我与HikariCP一起使用Postgresql,我的查询类似于
SELECT * FROM my_table WHERE int_val = ? ...
现在,我想为我的变量设置空值-我已经尝试过了。
ps.setNull(1, Types.INTEGER); // ps is instance of PreparedStatement
try (ResultSet rs = ps.executeQuery()) {
... // get result from resultset
}
虽然我有符合条件的行(‘int_val’列为NULL ),但没有收到任何记录。
问题是(我认为)在语句生成
我有一个表格,上面列出了将来要采取的行动。我有第二个表,其中包含所有案例,包括案例的到期日。我还有第三张表,用来保存数字。
问题如下。我们的系统会自动使用将来的操作填充我们的表。但是,对于某些客户端,我们需要更改这些日期。我想为此创建一个更新查询,并让它在我们的调度程序中运行。然而,我现在有点卡住了。
到目前为止,我对代码的了解是:
UPDATE proxima_gestion p
SET fecha = (SELECT To_char(d.f_ult_vencim + c.hrem01, 'yyyyMMdd')
FROM deud
我有一个疑问:
select SQL_NO_CACHE id from users
where id>1 and id <1000
and id in ( select owner_id from comments and content_type='Some_string');
(请注意,它缺少用于我的sphinx索引的实际大型查询(表示问题))该查询大约需要3.5秒(修改范围为id =1.5000表示关于15 secs)。
users表有大约35000个条目,注释表有大约8000个条目。
对上述查询的解释:
explain select SQL_NO_