我需要得到最大值和最小值,但我还需要得到同一行上这些最大值或最小值的行id
SELECT MIN([Value]), MAX([Value]), id
FROM [AnalystEstimates].[dbo].[AnalystEstimateValues]
GROUP BY indicatorid
当您按ID分组时,查询将返回每个ID的最大/最小值
SELECT tblFoo.ID, tblFoo.Value
FROM tblFoo
WHERE (((tblFoo.Value)=(SEL
我有数据可以根据它们的位置获取列表。位置映射到位置映射表中。结构基本上如下所示:
listings
-id
-title
etc.
locations
-id
-location_name
etc.
location_map
-listing_id
-location_id
当我想根据清单的位置列出清单时,我使用以下SQL语句。基本上,我有位置id,然后我可以找到该位置的列表。我使用DISTINCT,这样就不会得到重复的位置结果
这是可行的,但我想知道这是
假设我有三个表的典型多对多关系
---------
--boxes--
---------
id name
---------
1 Green Box
2 Red Box
3 Yellow Box
----------
--fruits--
----------
id name
----------
id name
1 apple
2 orange
--------------
--fruitboxes--
--------------
boxID fruitID
我有一个带有code(varchar)、Name(varchar)和Active(bit)字段的表Person。当我搜索人员时,只返回活动记录,当我删除人员时,我设置active=false,这样它就不会显示在我的搜索中
问题是我在code和Name字段上添加了一个唯一的约束,因此每个人只能有一个。问题是现在用户在搜索中看不到人(因为他们的活动状态为false),并尝试添加相同的人,但唯一约束阻止了他们这样做
是否有办法保持唯一约束,并可能在活动中添加一个检查,以便在之前设置为活动=假的情况下仍
我编写了以下查询,提取当前用户部门的子部门中的所有用户。
当前用户来自客户端应用程序,但出于测试原因,我在SQL中将其标记在这里
DECLARE @UserID INT = 72
SELECT *
FROM users
WHERE Department_Id IN (
SELECT DISTINCT Id /*, idp*/
FROM departments
如果我有一个1,2,3,4,5,K的列表,并且我希望它像K,1,2,3,4,5那样排序,那么我如何在SQL中做到这一点?这些值是SQL表中唯一的值。这是MySQL中的,但也欢迎使用其他数据库。在Oracle中,您可以执行以下操作:
ORDER BY CASE WHEN column='K' THEN 0 ELSE TO_NUMBER(column) END
其他系统可能也有类似的结构。如果需要对SELECT的结果进行排序,则可以按照ORDER BY语句声明自定义排序规则
下面是一个例子:
这样
我试图运行一个脚本,它只是一系列的拖放表和创建表。它可以编译,但当它运行时,我得到以下错误:ORA-00942表或视图不存在。它们不应该存在,我正试图创造它们!有人知道为什么会这样吗?我使用的是Oracle界面,而不是命令行。我已经用Notepad++创建了代码,并将其上传到Oracle。然后在Oracle中保存并运行脚本。单击“查看结果”时,会出现错误
编辑:我现在注意到只有具有外键的表没有被创建
这是我的代码摘录:
CREATE TABLE PricePlans (
plan_id NUMB
我想确保一个人的出生日期必须小于当前日期。
所以我在一张表中声明:
staff_dob SMALLDATETIME NOT NULL CHECK (GETDATE() < staff_dob)
staff\u dob SMALLDATETIME非空检查(GETDATE()
我的存储过程如下所示:
CREATE OR REPLACE PROCEDURE Proc_SearchRequests
(
RequestedBy LONG,
FromDate DATE DEFAULT NULL,
ToDate DATE DEFAULT NULL,
RequestedByDesignation VARCHAR2 DEFAULT NULL,
TypeId INT,
CurrentStatusId INT DEFAULT NULL,
AmountFrom LONG DEF
我正在尝试为已经派生的列“Sub1”设置默认文本值,这可能吗?我已使用值0为要派生的列创建了占位符。我在Teradata工作,如果有关系的话。。。。。谢谢
select c_clm
,dt.Claimant_Name
,dt.i_ssn
,0 as "Time_Period"
,0 as "Unit_ID",
/*,idv.C_PDT AS "Product"
,er.C_FRM_POL AS "Group Product",*/
(case
when idv.c_pdt is null th
我有一张桌子
ID |客户ID |联系人|标签|电子邮件|名称
我想将名称移到ClientID列旁边
ID |客户ID |名称|联系人|标签|电子邮件
是否有我不知道的SQL查询或SQL Server存储过程可以执行此操作?
否则,我计划创建具有所需结构的新表,复制数据(很少记录)并删除原始表
谢谢。我认为您不需要改变列的顺序。事实上,这一点都不重要。表只是记录的容器。您所需要做的就是按所需顺序选择列,例如
SELECT ID, ClientID, Designation, Contact, T
标签: Sql
sql-server-2000urldecode
我需要对存储URL编码文本的旧表运行查询。我需要在我的结果中解码此文本。如何实现这一点?尝试以下方法之一:
CREATE FUNCTION dbo.UrlDecode(@url varchar(3072))
RETURNS varchar(3072)
AS
BEGIN
DECLARE @count int, @c char(1), @cenc char(2), @i int, @urlReturn varchar(3072)
SET @count = Len(@url)
我已经考虑这个问题好几个小时了,但运气不好,所以我想so上的人可能会帮上忙:)
我有一个关于商店处理量的数据表。下面显示的前三列可以从该表中查询。我想做的是添加一个第四列,它基本上是一个关于商店是否处理了>=$150的标志,如果是,将显示相应的日期。这种方式的工作原理是,商店第一次超过150美元是显示日期。在达到激活日期的第一个实例后,后续处理卷不计算在内。例如,对于Store4,只有一个激活日期的实例
store_id sales_volume date activated
我有一个SQL表,其中有一列存储xml,如下所示
<AdditionalInfo><RegistrantID>16279</RegistrantID></AdditionalInfo>
如果我把这个参数设为整数,那么我会得到到int-error的转换
请为我提供解决方案。(只是将评论扩展为答案)
您应该始终指定char或varchar字段的宽度,因为除非您执行默认设置,否则将自动生效。报告说:
在数据定义或变量声明中未指定n时
语句,默认长度为
我有一个正在转换为T-SQL的访问查询:
TRANSFORM Sum(dbo.vw_SIMP_EN_F_Tx_AccRec_8.Outstanding) AS SumOfOutstanding
SELECT dbo.vw_SIMP_EN_F_Tx_AccRec_88.To_ICJ, q_F_TX_AccRec_8.From_Reference__c,
q_F_TX_AccRec_8.[From Account]
FROM dbo.vw_SIMP_EN_F_Tx_AccRec_8
您好,关于从powershell脚本记录到SQL的错误,我有一个小问题
function Invoke-Sqlcmd {
param(
[Parameter(Position=0, Mandatory=$true ,ValueFromPipeline = $false)] [string]$ServerInstance,
[Parameter(Position=1, Mandatory=$true ,ValueFromPipeline = $false)] [string
我已经在谷歌上搜索了很多这个话题,我知道这是一个重复的问题。然而,我的问题是:
SELECT
i.tag_name, i.value, i.aggregate_id, i.aggregate_interval, i.time_stamp
FROM
OPENQUERY(odbcclient,
'Select
time_stamp, tag_name, value,
ag
如何提高此查询的性能?我在c1上有一个索引,在tb1上没有主键可供选择。我的目标是为c3的每个实例创建一个记录
select
t1.*
into tb2
from (
select
c1,
c2,
c3
from tb1
where c1 = '1'
union
select
c1,
c2,
c4
from tb1
where c1 = '1'
) as t1
where t1.c3 != ''
表定义(第9.0页):
索引:
CREATE INDEX c1_idx ON t
我有一张这样的桌子(这只是一个例子):
并希望按年份和月份列出所有打开和关闭的案例,如下所示:
+-------------+---------------+--------------+
| Year | Month | Opened Cases | Closed Cases |
+-------------+---------------+--------------+
| 2014 | 4 | 10 | 5 |
| 2014 | 3
我有一个SQL Server表,如下所示:
RESOURCE | DESCRIPTION | VALUE
Test A Name | Resource A-xyz
Test A | Height | 20
Test A | Unit | ft
Test A | Location | Site 1
Test B | Volume | 30
Test C | Width | 10
Test C
我有下表:
|fk ID|value | val id|
| 1 | val11| 1 |
| 1 | val12| 2 |
| 2 | val21| 1 |
| 2 | val22| 2 |
我想将其转换为:
| fk ID | val1Title | val2Title |
| 1 | val11 | val12 |
| 2 | val21 | val22 |
我在顶部表格中添
我有两张桌子:
1) 用户注册
2) 产品
如何从pro_id等于6的两个表中获取所有字段的值,方法如下:
SELECT * FROM user_reg FULL OUTER JOIN products ON (user_reg.user_id = products.user_id)
请看:如何连接两个表可能是SQL中最基本的问题。你在互联网上的任何地方都找不到答案?
user_id
pro_id
pro_name
pro_desc
Pro_price
SELECT * FROM user_
我很想知道Oracle DB实现中是如何提供隔离级别“READ COMMITTED”的。我已经知道DB在重做日志中进行记录,但现在我认为重做日志仅用于在事务期间发生不可预测的崩溃时重复事务。我还知道,每次填充重做日志文件时,DBWR都会写入“脏块”。但我的问题是:如果DBWR将“脏”(更改的块)写入磁盘,那么如何提供隔离级别“读取提交”。我的意思是,在写入DBWR的过程中,DBWR将数据直接写入数据文件,或者写入磁盘上某个特殊的“位置”,该位置在当前事务中可见,而在其他事务中不可见?那么在COM
我想做这样的事情:
SELECT a, b, c, d FROM someTable WHERE
WHERE a in (SELECT testA FROM otherTable);
只有我希望能够测试在2列的子选择中是否存在2列
SELECT a, b, c, d FROM someTable WHERE
WHERE a OR b in (SELECT testA, testB FROM otherTable);
我们正在使用MS SQL Server 2012试试这个
S
如果这个问题本身没有多大意义,我很抱歉,但让我解释一下
我有两张桌子:药品和捐款
医学有:
身份证医学
医学
数量
捐款包括:
身份证捐赠
身份证医学
数量
我想要的是一个查询,显示一种药品的总可用量
我有一个疑问:
SELECT Medicine.name AS 'Medicine', Medicamento.quantity + Donation.quantity AS Quantity
FROM Donation
INNER JOIN medicine ON d
我有版本为612的SQLServer2005.mdf文件,它应该在版本为655的SQLServer2008Express中打开。是否可以在较高版本(655)express中运行较低版本(612).mdf文件???一旦将版本为612的SQL Server 2005中的.mdf连接到SQL Server 2008,它将升级到内部文件版本655
所以是的-你可以从2005年到2008年-一次-但是你可以永远不回去。文件升级后,将无法再将其附加到SQL Server2005中IMHO还原/附加a.mdf
标签: Sql
many-to-manyrelationship
我有一些问题要问,希望你们能给我一些建议
我在[订单]表和[产品]表之间有多对多关系
现在的条件是,我需要一个名为[PACKAGE]table的表,它与[PRODUCT]table也有多对多关系
在这种情况下,我想将[PACKAGE]表链接到[ORDER]表。因为条件是人们可以在相同的订单中订购项目或订购包装
如果我只是将[PACKAGE]表链接到[ORDER]表,这是真的吗?这里有两个选项
第一个是引入一个名为OrderPackages的新表,该表提供了到包的链接。但是,我不喜欢这种方法,因为
我试图在SQLAlchemy中将数据插入我的数据库。我通过以下方式建立了多对多关系:
如何添加数据,使订单可以包含多个产品,产品可以包含多个订单(即维护正常的多对多连接表)?
由于order和product两列都有主键,因此我无法在一对多关系中执行通常的操作,这类似于
new_entry = Order(date='2015-06-17', product=Product(id=17, 'hardware', 12.15))
session.add(new_entry)
session.comm
我有tbl1
IDa | year | field2 |
----+------+---------
1 | 2015 | bbb |
2 | 2015 | aaa |
3 | 2015 | ccc |
---------------------
我正在使用INSERT-INTO-SELECT复制2015年的所有数据,但将年份的变化复制到2016年
INSERT INTO tbl1 (year, field2) SELECT '2016', field2 from
myTable有列Id、名称、类型、媒体名称、文件夹
blacklistTable有列Id,媒体
DELETE FROM myTable
WHERE Name = "Missing" AND Type = "Movie"
基本上,我想从myTable中删除与WHERE语句匹配的所有项目,对于每个删除的项目,我想在黑名单表中添加一列,其中包含已删除的项目Id和MediaName。有什么好方法可以做到这一点吗?您可以在删除数据之前进行选择
或者您可以使用with the the INTO子句,如
我想写一个SQL来检查FK。到目前为止,我得到了:
SELECT OWNER,
CONSTRAINT_TYPE,
TABLE_NAME,
R_OWNER,
R_CONSTRAINT_NAME
FROM ALL_CONSTRAINTS
WHERE OWNER = 'XXX'
AND TABLE_NAME = 'XXX'
AND CONSTRAINT_TYPE = 'R'
问题是:我看不到FK映射到哪
e、 感谢您的回复,并对没有澄清表示歉意-我只需要每个月的值,而不是每一天的值。@JasonC只需逐日更改即可。以一种新的方式更新moment@JasonC只是想了想。如果从2018-01-17开始,下一个值是什么?这是什么魔法?!我不知道大师..spt_的价值观,老实说,我不知道这是如何运作的,但确实如此。还要回答您的另一个问题-在这种情况下,from将始终是月初到EOM。谢谢你在这方面的帮助@JasonC master..spt_值只是SQL Server中的一个已知表,包含大约2500行数
如果子查询在外键上的非空检查之后,那么该相关子查询是否可以替换为联接?例如:
select * from TableABC as t
where
(t.label_id is null or t.label_id in ( select t1.id from Labels as t1 where t1.type = '123'))
and
(t.tag_id is null or t.tag_id in ( select t2.id from Tags as t2 where t2.type
我的数据库中有要转换为唯一数字的文本
例如,我有一个四季如冬、夏、秋、春的Column。
现在我想要冬天的数字1,比如夏天的数字2等等
有人能帮我吗?如何使用SQL解决这个问题
提前感谢使用大小写表达式,如下所示:
SELECT
CASE SeasonName
WHEN 'Summer' THEN 1
WHEN 'Winter' THEN 2
WHEN 'Spring' THEN 3
WHEN 'Fall' THEN 4
END AS SeasonNumb
考虑到星期日是一周的第一天,红移中的以下语句应返回2作为周数,而不是返回1
Mysql有一个名为的函数,我们可以在其中使用该模式来获得所需的结果。同样,红移中是否有任何函数可用于获取正确的周数
任何帮助都将不胜感激
SELECT EXTRACT(WEEK FROM TIMESTAMP '2018-01-07');
SELECT TO_CHAR(TIMESTAMP '2018-01-07','WW');
似乎没有直接的解决方案,但这里有一个解决方法:
SELECT EXTRACT(WEEK F
因此,我试图获得一个用户链接到的文件数量的计数。但是,由于某些奇怪的原因,par_row_ID(原始_表标识符)没有连接,我的结论如下:
SELECT file_count.par_row_id,
original_table.par_row_id,
file_count.count
FROM original_table original_table
left outer join (SELECT original_table.par_row_id
我在sql server和VB.net上工作
我经常在int主键上使用identity(1,1)。
但今天我想创建一个表来替换枚举。我在我的程序中使用它,就像标记可以添加什么一样(这是一个关于疾病的枚举,在我管理一些疾病之前,你可以有几个疾病……但现在我希望能够添加更多的疾病。)
我可以在我的vb代码中实现,但我更喜欢我的SQL server单独处理他的密钥。但是我找不到一种方式来表示next key=last keySQL Server没有移位运算符。
对于低至15条记录,我建议只使用tiny
我有一张这样的桌子:
id name col1 col2 col3 col4 col5 col6
----------------------------------------------
1 user b c e f g Null
我想将结果显示为col4,col5不为null,但不显示col6,因为它为null:
id name col1 col2 col3 col4
-----------------------
我有一个运行良好的MS Access查询,但我不知道如何在SQL Server中编写此查询
MS访问查询:-
SELECT lp.PortfolioID,
Count(IIf(lp.Data_Status = 'Prelim Collection', 1, Null)) AS Prelim_Collection_Cnt,
Count(IIf(lp.Data_Status = 'Final Collection', 1, Null)) AS Final_Collec
不知道能不能帮我一点忙。我对SQL还是新手,我每天都在学习如何做一些更复杂的事情
我有一个数据集,其中有重复的订单号。由此,我想做两件事:首先,我要计算唯一订单号的数量,然后,计算所有订单号的总和
我已经成功地完成了第二部分,但是我在执行不同订单号的计数时遇到了一些困难
请看下面我的查询,我知道我的连接现在不正确,因为我将在以后处理它们。我使用ODBC progress v10,使用Microsoft query manager提取代码,然后在记事本中手工编写代码,然后传输回Excel,因为目前
我很难找到一个有效的查询来比较两个具有不同属性的表。这是一个在线零售商的报告,该零售商有几十万个SKU可供销售。每个SKU都是“母”产品的变体。他们在不同的市场上销售,需要查看是否有商品在不同的市场上无法销售
有一个表包含所有母产品,另一个表包含其相应SKU的所有变化。在第三个表中,他们有每个sku(变体)的完整列表,以及sku+市场组合唯一的对应市场
数据库使用PostgreSQL
表结构如下:
产品表:
Products
id | parent_sku | vendor_id
----
我试图通过SQuirreL查询MSSQL数据库,如果我只想通过一系列时间戳查询所有数据,那么SQuirreL就可以工作。但是,我想查询一系列日期,但只查询一个时间点。我已经成功地在postgresql中执行了这种类型的查询,但我对MSSQL查询不太熟悉
从时间戳>='06/04/19 00:00:00'和
(时间值(时间戳)介于“23:40:00”和“23:55:00”之间);
如果我只选择一个日期或时间戳范围,我可以使用代码行来工作,但是一旦我添加了时间值,我就不会得到匹配的数据,即使我知道
我想用1填充列测量类型ID
我可以这样做吗
SELECT
SURVEY_ID,
SKILL_ID,
1 AS SURVEY_TYPE_ID,
From Table A
这应该是可行的:
选择
调查编号:,
技能ID,
1作为调查类型\u ID
从表A
此外,如果要在列值中填充字符串,只需添加引号
选择
调查编号:,
技能ID,
“id\u 123”作为调查类型\u id
从表A
此查询返回第三列的结
我有两个Postgres表:播放列表和曲目
我创建了播放列表和曲目之间的多对多关系
曲目包含多个列,但我看到的是artist
查询至少包含一首歌曲且艺术家名称包含(如“披头士”)的所有播放列表的最快方法是什么?我很难找到一个有效的方法来完成这项工作。您必须加入3个表并按播放列表分组,如下所示:
select p.playlistid, p.name
from playlists p
inner join playlists_tracks pt on pt.playlistid = p.play
我有两个CASE语句,我试图从一个CASE语句中减去另一个CASE语句的值,但是我无法让代码正常工作。有人对我的错误有什么建议吗
这两个案例陈述是:
case
when "D570M"."END_DATE" IS NULL then TO_CHAR(LAST_DAY(TO_CHAR(ADD_MONTHS(sysdate, -1), 'DD-MON-YYYY')))
when "D570M"."END_DATE" > (LAST_DAY(TO_CHAR(ADD_MONTHS(
我有以下数据。我想在ID上进行分区,只返回基于Datedesc的唯一OrgIDs
对于ID14,根据日期在输出中选择了include和Premier。对于ID57、include、Example和Premier被选中,因为Example属于唯一的OrgID类别
ID Num Dx Code Describe OrgID Nm1 Name Type Date
14 242 438 26994 Fractures 4534 2
我有一个列,它是一个由逗号分隔的元素组成的字符串,如statuses='Initial、Initial、Completed、InProgress。我想知道如何制作这样的状态栏:
CASE
WHEN <all statuses are 'Initial'> THEN 'Initial'
WHEN <all statuses are 'Completed'> THEN 'Completed'
ELSE 'InProgress'
END AS statu
标签: Sql
entity-relationshiper-diagrams
我有一个关于我正在做的项目的问题,希望你能提供一些帮助:)
昨天一个人被枪杀后,警方正在寻找一名谋杀嫌疑犯。唯一的线索是受害者留下了一张纸条,上面有五个人的名字,警察需要通过搜索公民数据库找到这五个人的信息(名字不是唯一的,所以可能有五个以上的结果。要唯一地识别某人,你需要公民ID)。在找到凶手后,警方需要修改凶手的犯罪记录。我想知道我该怎么做
由于实体被害人和实体谋杀嫌疑人都具有与实体公民相同的属性,我最初的计划是使被害人和谋杀嫌疑人成为共享同一超类(公民)的两个子类,也就是说,被害人是公民,
数据表:
日期
顾客
订阅
20/02/2020
A.
自由的
21/02/2020
A.
自由的
22/02/2020
A.
自由的
23/02/2020
B
自由的
23/03/2020
A.
满的
01/03/2020
B
满的
01/03/2020
A.
满的
02/03/2020
A.
满的
下面考虑一下
with temp as (
select customer, dates from (
select customer, min(dates) min_date
我使用类似regexp_的函数来搜索列上的特定模式。但是,我看到这个查询并没有使用在这个列上创建的索引,而是进行完整的表扫描。是否有任何选项可以为regexp_like创建基于函数的索引,以便我的查询使用该索引?在这里,模式SV4889不是恒定的表达式,但每次都会发生变化
select * from test where regexp_like(id,'SV4889')
是的。正则表达式不使用索引。你能做什么
如果你只是在寻找平等,那么就使用平等:
where id = 'SV4889'
这
1 2 3 4 5 6 ...
下一页 最后一页 共 6120 页