Sql 如何在存储过程之间共享数据

在MS SqlServer中,有许多问题与在另一个存储过程中共享一个存储过程的数据结果有关 根据SQLServer的版本,人们会建议使用临时表、xml(SQLServer2005)或表变量(SQLServer2008) 有一篇由编写的优秀文章提供了全面的答案,并列出了不同版本SQL中可用的所有选项: 我觉得值得分享 我在建议使用时遇到了这篇文章,这是我以前并不熟悉的内容。有一篇很棒的文章,提供了全面的答案,并列出了不同版本SQL中可用的所有选项: 本文处理两个相关的问题 问题: 我

Sql 我应该如何连接这些表?

以下是表格: threads: id, date, title, text comments: id, thread_id, date, comment 如何在顶部列出最后一个已评论的线程 目前的情况如下: $threads = mysql_query("SELECT id, title FROM threads ORDER BY date ASC"); while ($thread = mysql_fetch_assoc($threads)) { echo $thread['tit

Sql 不确定在这种情况下如何使用Decode、NVL和/或isNull(或其他?)

我有一张特定产品的订单表和一张正在销售的产品表。(这不是理想的数据库结构,但这超出了我的控制范围。)我想做的是通过product number将order表与sale表进行外部联接,但我不想包含sale表中的任何特定数据,如果联接存在,我只需要一个Y,如果不在输出中,则需要N。有人能解释一下我是如何用SQL实现这一点的吗 提前谢谢 您应该能够使用该构造,它看起来像这样: select order.foo, case when sale.argle is null

Sql 如何通过不同于数据库默认排序规则的排序规则来比较符号?

对我的另一个问题的答案提出质疑: 如何明确使用不同于默认数据库排序规则的排序规则更好地比较2个(非N')符号 更新:我需要比较从数据库中提取的char()或varchar()值,并将它们放入变量@s1和@s2中 use dbName; --here I alternated different db names with different collations declare @s1 nchar(1)='à' declare @s2 nchar(1)='a' select c

SQL DB性能和短时间间隔重复查询

如果查询以很短的时间间隔(例如每5秒)不断发送到数据库,那么生成的读取次数是否会导致性能或可用性方面的问题?如果数据库是Oracle,有没有什么技巧可以用来避免性能下降?如果查询来自应用程序,有没有办法通过软件设计减少任何影响?除非您的查询非常密集或编写得很糟糕,否则每隔几秒钟运行一次不会引起任何明显的问题。对于通常以毫秒为单位的查询,这种情况并不常见 你可能仍然想优化它,因为有更好的方法。在Oracle和ADO.NET中,您可以对第一次运行查询的命令使用OracleDependency,然后订

为什么我在SQL Server中看到的字段默认值没有反映在LINQ中

SQL Server中的字段设置了默认值。现在我使用LINQ来访问/追加/修改和删除表中的记录,但我想知道为什么需要为插入时具有默认值的字段赋值。考虑这一行代码。 SQL C#使用LINQ SampleTable entity = new SampleTable(); entity.values1 = 1; entity.values2 = DateTime.Now //I do have default set on sql why do i need to do this //Do Som

如何在postgresql中从表中删除单引号?

我四处搜索了不少,如果有人能把我链接到一个解决方案或回答我的问题,那就太好了。 问题是我有一个postgresql表,其中包含很多单引号,我不知道如何去掉它们,因为很明显 update tablename set fieldname= NULL where fieldname=' ; 行不通 update tablename set fieldname= NULL where fieldname='''' ; 或 更好地利用这一点: UPDATE tbl SET col = repla

使用CTE简化SQL语句

我有一个类似以下的问题: SELECT A.a, A.b, B.c, (CASE WHEN ... THEN ... ELSE ... END) AS CalculatedValue, B.d FROM dbo.TableA A INNER JOIN dbo.TableB B ON (...) WHERE (CASE WHEN ... THEN ... ELSE ... END) BETWEEN @DayStart AND @DayEnd GROUP BY A.a, (CA

Sql 将数字id添加到表中

我的选择带来了类似以下内容: SELECT top 5 day_description, count(numberofdays) as number FROM mytable where department = 'departmentname' group by day_description 有没有一种方法可以添加一个新列,其中1-5,1是值最高的行,5是值最低的行。看起来是这样的: day description number holida

在哪里可以在SSMS中检查SQL Server 2008中的用户定义表类型?如何在其中插入新列?

我需要在SQL Server 2008中的当前用户定义表类型中添加更多的列 但我在表下的特定数据库中没有看到任何表类型 我需要检查的具体位置以及如何修改SQL Server 2008中现有用户定义表类型的设计 我正在使用SQLServer2008和SSMS 我可以在SSMS中找到该表 这样我就可以去修改表类型了 谢谢 上一个问题的答案 请任何人帮助sql更改类型表语法添加列? 如何插入任何新列。。。因为ALTER不工作。。它是禁用的 用户定义的类型在创建后无法修改,因为 更改可能使表或索引中的数

如何从SQL Server查询数据?

我在VB.NET中从数据库中查询数据以生成报表时遇到了一个问题。我使用业务对象来做报告。下面是我的示例数据: ___________________________________________________________________________ | | | | | | | | Id | Item | Unit | Unit Pri

Sql 如何在SSRS中使用Previous函数

我正在写SSRS报告 有两个主要字段CurrentMV和PreviousMV 两者都有不同的公式,但我需要更改字段PreviousMV以获取CurrentMV的值,但previous date值我正在尝试使用SSRS的previous函数 请帮帮我 字段CurrentMV具有类似=Sum(字段!CurrentMV.Value) 您应该能够使用: =Previous(Sum(Fields!CurrentMV.Value)) 或 .你说你在使用Sum。。。那么这些是组页眉/页脚行?现在有什么?你试

Sql Postgres:按日期时间优化查询

我有一个表,它有一个日期时间字段“updated_at”。我的许多查询将使用范围查询(如在>某个日期更新的行)来查询此字段 我已经在更新的_中添加了一个索引,但是我的大多数查询仍然非常慢,即使我对返回的行数有限制 我还可以做些什么来优化查询日期时间字段的查询?通常数据库优化器不会选择对开放范围使用索引,例如在某个日期更新的 但是,在许多情况下,datatime列不会超过“now”,因此您可以通过使用介于之间的将条件转换为一个范围来保留>somedate的语义,如下所示: where update

Sql 优化查询,使其不需要Top N排序

我有以下疑问 select top 25 tblSystem.systemName, tblCompany.name from tblSystem join tblCompany on tblSystem.fkCompanyID = tblCompany.pkCompanyID order by tblSystem.systemName, tblCompany.name 它生成图片中的第一个执行计划,第二个是相同的查询,没有排

Sql 如何将日期值格式更改为YYYYMMDD格式

在为某些AS400数据创建sql备份/web查看器时,必须手动清理某些数据 在此过程中,数据库中的日期最终被存储为两种格式的字符串: YYYYMMDD MM/DD/YYYY 为了保存原始数据,我想将所有的MM/DD/YYYY转换为YYYYMMDD。有没有可以解决这个问题的查询?比如: SELECT commentDate from SomeTable IF FORMAT(commentDate) LIKE '00/00/0000' commentDate = FORM

Sql 具有Max和Group By的子查询中Where的LINQ版本

您将如何使用LINQ to实体来完成以下查询 SELECT [id] ,[value1], [value2], [dateValue] FROM table WHERE dateValue IN ( SELECT MAX(dateValue) FROM table GROUP BY id ) 表中有多个具有相同id的条目,因此我只希望每个id中有一个具有最大日期值。此外,dateValue还包含一个时间组件,精确到毫秒,并且不会重复 我知道LINQ To Entitie

Sql 右联接和内联接的区别

我有一张桌子桌子1: D1----D2 123----NULL 1a3----NULL 35s----NULL tg45---NULL 如果我这样做: SELECT * FROM Table_1 A RIGHT JOIN( SELECT * FROM Table_1 B WHERE SUBSTRING(B.D1,len(B.D1)-1,100) NOT LIKE '%[^0-9]%') C ON A.D1=C.D1 WHERE CONVERT(INT,(SUBSTRING(A

Sql 使用JSONB列中的值连接表

有两个表格: 授权联系人(auth_Contacts): 联系人包含具有属性的联系人数组{contact_id,type} 讨论: ( contact_id varchar discussion_id varchar discussion_details jsonb ) 表auth_contacts至少有100k条记录,因此非JSONB类型是不合适的,因为它会使记录量增加一倍或三倍 验证联系人的示例数据: ( userid varchar contacts jsonb ) userid |

如何在postgresql中将两行转换为键值json对象?

我有一个类似于以下的数据模型,它经过简化,只显示了这个问题(SQL Fiddle底部的链接): 一个人在数据库中表示为一个元表行,该行具有一个名称和多个属性,这些属性作为键值对存储在数据表中(键和值在单独的列中) 预期结果 现在我想检索所有用户及其所有属性。属性应在单独的列中作为json对象返回。例如: name, data Florian, { "age":23, "color":"blue" } Markus, { "age":24, "color":"green" } 我的方法 现在我

酒店预订占用房间查询Sql Server

实体房间和预订 房间=房间id,Rtype,占用(位列) 预订=资源id、房间id、签入日期、签出日期 在预订表中预订房间时,如何将“占用位”列更新为1?我认为这是一个触发器。但是如何更新?代码片段,因为我对此不熟悉 有人建议将签出日期设置为空。如果为空,则将占用时间更新为1。 救命 将checkoutdate放在变量上 if checkoutdate == null then update Room set occupied = 1; 使用静态放置字段(如已占用字段)的问题在于,该值将根据您

Sql 破PL/ruby的替代方案:转换仓库日志表

升级Postgres 8.4->9.3和Ruby 1.8->2.1后,PL/Ruby无法运行。我在第一次执行任何PL/ruby函数时立即获得Postgres服务器coredump。 我正在分析stacktraces,但看起来不太好。此外,PL/ruby的维护状态看起来也不太好 因此,将焦点转移到我使用PL/ruby解决的实际数据库问题上,并考虑其他选择 问题的简化示例: 将仓库日记账作为具有以下字段的数据库表提供: 日期(日期) 货物类型(外键) 计数(数字) 考虑到仓库是在严格的先进先出模

Sql 具有多个联接的Oracle ROWNUM

我正在尝试对Oracle数据库执行查询 我的表格结构是: d--o一对一 一对多 o--m多对多(通过mtm) 我正在使用以下查询: SELECT o.id ID, ROWNUM rn /*row 1*/ FROM TABLE_D d LEFT JOIN TABLE_O o ON d.O_ID=o.ID RIGHT JOIN TABLE_R r ON r.O_ID = o.ID AND r.TYPE

经典ASP MS SQL 2014-带大小写的空字段

我有一个存储过程,它接受一个名为@UserCurrency的参数 选择ItemID, 当@UserCurrency=p.ItemCurrency时的情况 p、 项目价格 其他的 当p.ItemPrice=99999999时的情况 p、 项目价格 其他的 p、 ItemPrice*当@UserCurrency='GBP'然后是c.GBP时的情况 当@UserCurrency='USD'时,则为c.USD 当@UserCurrency='EUR'时,则为c.EUR 结束 结束 以价格结束, 来自项目

sql server联接3个表以提供多个最高日期值

我有3个表(a、b、c),它们由acc_编号(a.acc_编号、b.acc_编号、c.acc_编号)链接 我试图以一种获得最高行值的方式加入它们: a.acc_no a.seq_no b.open_dt b.close_dt c.chg_dt -------- -------- --------- ---------- ---------- 100001 500 2016-07-01 2016-07-16 201

Sql 如何从两个不同的表中选择两列的差异并计算百分比

我需要在最终结果中列出四列。收入、成本、利润和利润占收入的百分比。我已经从两个不同的表中选择了收入和成本,并将它们内部联接起来,因此如何计算利润(收入减去成本),以及利润占收入的百分比(利润除以收入)。 我假设代码应该是这样的 SELECT t.revenue, s.cost, (SELECT t.revenue minus SELECT s.cost) "profit", (("profit"/t.revenue)*100.00) AS "Q%" FROM t INNER JOIN

按分组的SQL列排序优先级

由于分组顺序不同,以下查询的结果不同。有人能解释一下这种差异的原因吗 谢谢 在内部,当RDBMS评估查询时,它对行进行排序,以便高效地执行group by,然后,由于缺少明确的order by子句,它以该内部顺序发出行 但是,你永远不能依赖这种行为。如果您关心以特定顺序返回行的查询,则必须使用order BY子句指定该顺序。如果不提供order BY子句,则GROUP BY ORDERS通常是查询结果的实际顺序(尽管这可能因RDBMS而异;并行查询可能导致结果无序) 如果需要特定的排序,则添加O

使用SQL通过中间模型返回嵌套模型

我正在使用Postgres 9.6,并试图建立一个权限模型,允许用户访问他们的项目及其项目“组件。看起来是这样的: 用户 +--------+--------+ | id | uuid | +--------+--------+ 权限 +--------+-----------+--------------+ | id | user_id | project_id | +--------+-----------+--------------+ 项目 +------

ms access时sql中的计数和顺序

我在ms access中有一个表(称为Tweets),看起来像这样 text screenName lala user1 la user2 lal user3 lalala user1 l user1 a user4 我希望最后有一个表,其中包含每个用户的文本数。对于编号为text的列,我希望它有一个特定的名称(例如newColumn),以及首先按文本数(newColumn)排序的表(降序),然后按屏幕名(升序)

DateAdd-SQL表达式

我正在尝试使用SQL创建一个表达式。表达式值正在尝试为一周中的几天指定一个值。星期天从1号到星期六7号。然后我尝试增加5天,如果是星期一,那么它在星期五降落,否则每隔一天增加7天。例如 WeekDay Inlist("2",",") DateAdd(5, "d") OR ds WeekDay Inlist("1,3,4,5,6,7",",") DateAdd(7, "d") 然而,这似乎不起作用? 所以基本上我在数据框中输入日期为2017年3月15日,也就是周三, 我们的表达式会说,如果是星期

Sql Postgres外部检查约束

是否可以对外部列应用PostgreSQL检查约束? 如果没有如下所示的外部检查约束,也可以获得相同的效果: create table a ( id serial primary key, flag boolean, unique(id, flag) ); create table b ( id serial primary key, a_id integer, yup_true boolean not null default true, foreign key (

计算SQL Server中受影响的行数

我曾经使用@@ROWCOUNT计算受影响的行数 DECLARE @TotCount INT DELETE * FROM TabA WHERE A = 'a' SET @TotCount = @TotCount + @@ROWCOUNT DELETE * FROM TabB WHERE B = 'b' SET @TotCount = @TotCount + @@ROWCOUNT UPDATE TabC SET C = 'c' WHERE C='d' SET @TotCount = @TotC

Sql 在两个表上使用左联接和order by时选择distinct id

我有两个表,我将根据两个表上的复杂的order by子句从第一个表中获得不同的id。我不知道如何使用distinct或groub by,因为它们都阻止在其他列上使用order by 使用distinct的我的代码: select distinct(shops.id) from shops left join expiration on shops.id=expiration.shopid order by shops.grade desc, expiration.startdate

sql层次查询

我有一些表,如图所示,我想实现上一个表所示的输出。是否可以在不使用SP的情况下使用sql server查询来实现它 BB您可以按照以下给定方式执行此操作。我有一些自由,因为你们之间的关系不是很清楚: IF OBJECT_ID ('role') IS NOT NULL DROP TABLE role GO CREATE TABLE role ( roid INT NULL, roname VARCHAR (20) NULL ) GO IF OBJE

Sql 创建更新查询时出现数据库异常问题

我正在尝试在oracle数据库中创建更新查询,但我已尝试解决所有问题,但仍遇到以下问题: 执行节更新查询时发生数据库异常(错误:在“=”位置或附近出现语法错误:66)。有关帮助或意见,请访问schelp.ge.com UPDATE pgsbizdim.ps_mnd_reqeng_sc_projectsummary SET (form_doc_id=to_number(:column1, '99999999999'), logged_date=to_timestamp(:colum

libpq和x27的正确行为;PQexecPrepared和SQL EXECUTE

对于postgres,有两种方法可以准备和执行准备好的语句。您可以直接从libpq使用函数和;或者您可以发出SQL语句:PREPARE和EXECUTE。语句名称在两种方法中都是相同的,因此您可以使用PQPrepare来准备语句,然后通过发出execute查询来执行语句(或者使用prepare查询,然后使用PQexecPrepared执行语句) 因此这两种方法(库函数与SQL查询)是等效的。但是,当您使用PQexecPrepared时,pg_stat_activity的query列似乎是带有占位符

Sql 通过使用索引加速使用聚合函数的查询

根据教科书,Oracle Database 12c是Bob Bryla和Kevin Loney的完整参考,“除了支持WHERE子句和联接,索引还支持ORDER by子句和MAX和MIN函数。”他们后来说,如果选择索引列的最大值或最小值,优化器可以使用索引快速查找该列的最大值或最小值 为了澄清这些引用,我们假设一个名为EMPS的表的salary列上没有索引。如果salary列上有索引,下面的查询会受益吗 select min(salary) from emps; select departmen

Sql 无法更新绑定的datagridview

我无法将数据更新回mssql,如果我使用Case When进行查询,它将保存回空白数据,而不是输入的数据。然而,像select*from表这样的普通查询不会有任何问题 我已经将我的datagridview绑定并更新回数据库 Dim adap As New SqlDataAdapter Dim cmdbl As New SqlCommandBuilder(adap) adap.Update(dt) 我的桌子结构如下 ID-int 卡式-nvarchar(50) SQL查询 选择ID,CAS

Sql 仅返回exists条件之后的行

我有一个SQL server查询 这将返回与OrderID(最终发票)相关/添加到其OrderID的产品的客户订单 这使用了一个exists条件 Select * from Orders o1 where DepartmentSpecialty = 'LivingRoom' and Exists (SELECT o2.Department FROM Orders o2 WHERE o2.Department = 'Kitchen' and o1.ID = o2.ID a

使用表中的结果进行SQL Server查询以调用函数

我的SQL Server有问题。我有一个包含机器语句的表,还有一个包含生产数据的表。两个表之间获取相应数据的时间不同。我不知道如何连接这些表。另外,我只需要从表A中筛选代码17 例如: 表a: Machine Code Time ---------------------------------- EPSX 17 2018-08-28 12:09:32 EPSA 19 2018-08-28 12:09:39 EPSC 17 2018-08-28 11

带Pivot和Unpivot的嵌套SQL左连接

我写了这段代码,走了这么远,现在我必须解开这张表。我不知道如何嵌套unpivot函数,因为左连接有点让我不舒服 您使用的是哪种数据库管理系统?(SQL Server?)作为总项目计数,@TP89…如果您提供示例数据和所需结果,您的问题会更清楚。最好不要使用数据透视,只需问一个问题即可完成整个转换。 SELECT [Table], Facility_Code, ISNULL([1],0) AS [1], ISNULL([2],0) AS [2], ISNULL([3],0) AS

Sql 配置单元如何基于列值提取数据并写入本地文件

我正在尝试从配置单元表提取数据并写入本地文件: 每列“日期”值一个输出文件。我的配置单元表将有大约2年以上的数据历史,这意味着我将需要大约700多个不同的输出文件 我目前的知识只允许我每次运行写一个文件,这是我的代码可以在配置单元命令行中运行: INSERT OVERWRITE LOCAL DIRECTORY '/local/hive/temp' ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' select date, col1, col2, col3

Sql 在执行generate_series()的大表上优化查询

在PostgreSQL 11.1中,以下查询需要7分钟以上的时间: SELECT '2019-01-19' as date, '2019-01-19'::date - generate_series(first_observed, last_observed, interval '1 day')::date as days_to_date, ROUND(AVG(price)) as price, area_id FROM table_example

Sql 解锁用户操作2009-08-24 16:47:00

DBFIDLE示例数据:这4行是在一个表中,还是只有一行?嗨,Littlefoot,上面的示例是一行。当您实际上对字符串中的数据感兴趣时,为什么要将此文本存储为单个字符串值?这似乎没有多大意义。我建议您更改数据模型。完全同意您的意见!不幸的是,虽然这是一项任务,但我被指派提取数据,而不是定义数据结构。这太令人印象深刻了!谢谢我一定会尝试一下。虽然这个解决方案看起来很棒,但我不确定它是否适合我,因为它看起来在查询中使用的值是有限的,不幸的是,到了这个日期,我不确定会有多少条注释条目,因此需要遍历所

Sql 如何从我的表中创建查询请查看图片

我想询问一下调查结果 如何实现此目标?这是您无需分组即可选择值的方法: select name, case when ket = 'dalam proses' then 1 else 0 end dalam_proses, 'selesai' then 1 else 0 end selesai from yourtable; 让我们将其用作子查询: select name, sum(dalam_proses) as dalam_proses, sum(selesai) as selesai

Sql 存储过程执行时间的剧烈变化

使用 没有输入参数 但是声明的变量很少,大多数是date类型 要插入到包含固定12行数据的临时表中的长2000行查询 启动服务器并首次执行后,大约需要10-12秒。但每次之后,相同的程序需要超过1.5分钟 尝试将与重新编译一起使用选项,但尚未找到此奇怪问题的解决方案。我们至少需要一份通过“将计划粘贴到此处”提供的执行计划副本来帮助您。我投票将此问题作为主题外的问题结束,因为它要求查询优化建议,但是,不包括所涉及对象的DDL,以及它们的索引,以及可消费格式的查询计划(例如使用)。因此,它缺少能够对