Sql 如何确保列包含一组值中的一个?

我正在创建一个类似这样的表 CREATE TABLE packages ( productCode char(2) , name nvarchar(100) , ... ) 如何确保productCode始终是两个值中的一个XJ或XD?将其作为查找表的一个值,或添加一个值来强制执行它。在这种情况下,productCode的值集似乎非常有限,并且您不希望它在可预见的未来增长,所以我倾向于同意你的答案。然而,在大多数情况下,我会按照格兰特先生的建议实施外键解决方案,因为我的客户有一个

Sql vb6中的重新查询是什么?

vb6中的重新查询是什么?怎么用那个?有人能帮忙吗?这里介绍了ADO重新查询方法,可能有帮助: 从链接页面: Requery方法通过重新执行 生成原始记录集的查询 提示:使用此方法刷新记录集的全部内容 注意:使用此方法可以在一个函数中调用Close和Open方法 嗯?做什么需要什么?我在vb6中有一个记录集。我想把它插入datbase表。我不熟悉vb6和sql。我不知道怎么做?

是否有SQL代码的开源存储库?

我发现自己正在编写SQL代码(查询或存储过程)来解决一些问题,这些问题可以定义为业务中经常出现的“模式” 每次遇到新问题(其他程序员/数据库分析师肯定已经无数次解决了这个问题),我不必绞尽脑汁,而是想知道是否有一个我可以去查看的存储库(同行评审)代码-也许偶尔会加上我的两便士。我知道不同的数据库供应商倾向于编写稍微不同的SQL格式-但仍然可能有一个包含ANSI内容和专有内容的存储库。希望这样的网站能鼓励更多人编写标准化SQL 有这样一个网站吗?如果没有-为什么没有?(其他人会对这样一个网站感兴趣

Sql varbinary到varchar w/o master.dbo.fn_varbintohextr

在MS SQL Server 2005上,没有master.dbo.fn_varbintohexstr函数,有没有办法将varbinary转换为ASCII varchar字符串(base64、md5、sha1-无所谓)?因为它不能在计算列内部使用 转换和强制转换返回非ASCII字符串 谢谢, 丹尼斯。对于md5和sha1,您可以使用。要获取base64,可以创建一个进行转换的udf,并在计算列中使用它 功能BinToBase64: create function BinToBase64(@Bin

在通过phpMyAdmin在MySQL中创建id字段时,是否必须指定整数长度?

我在教程中看到有人没有设置长度,但它专门用于计算用户总数,只是设置为自动递增。我一直习惯于指定一个长度,因为我认为这是强制性的,但我想问一下,如果不指定一个日期或pin码等,我是否可以将其留空,因为在这些地方,长度总是设置的。(如果我不确定的话,我通常会将其设置为11位或更多)当保留为空时,每个整数字段默认为11,这样您就可以保留它。不,您不必为整数指定长度。我从来没有这样做过 有不同大小的不同整型数据类型,因此您可以根据需要选择容量不同的整型数据。整数没有小数。

Sql 复制行并更改1值?

如何复制表中的整行并更改一个值 insert into user ( user_id,account_id,user_type_cd,name,e_mail_addr, login_failure_cnt,admin_user,primary_user ) select * from pnet_user where account_id='1' 但是现在我想把插入的条目的1改为2。 但是现在我想把插入的条目的1改为3。 但是现在我想把1改成。。。。在插入的条目上。 但

Squirrel SQL客户端:如何获取Null以在csv中导出,当前它正在导出,,当我需要时,Null,?

我正在使用SquirrelSQL客户机3.5.0。我正在将结果导出到sql文件中的会话/脚本/存储 我需要知道值何时为null,因为结果中返回null。如果您知道如何将其导出为“null”,请提供帮助。目前,它只是导出2个逗号,就好像字段是空的一样。我必须有一个出发点,找不到它。用这样的方法: SELECT ISNULL(thidfield,"NULL") from <sometable> WHERE <somestuff> 从其中选择ISNULL(thidfield,

Sql 来自多个表的oracle数据库合并结果

我想合并来自两个表的数据:- 表T1(id、c2、c3、开关) 表T2(id、d2、d3) 现在如果T1中的开关为“Y” 我希望输出为 joe darling sydney australia // which is fine.. 如果开关为“N” 我仍然需要基于开关的名字和姓氏,开关是“Y”,以及T2表中的其余值 joe darling sydney australia //how to achieve this. 假设每个ID只有一个Y开关,然后尝试以下操作: SELECT

IO错误:网络适配器无法与Oracle 11gR2建立连接。与SQL开发人员连接

我已经在RedHat6 linux实例上安装了Oracle 11g,通过执行“”中提到的所有步骤,我正在尝试使用sql developer从远程计算机连接到数据库。但总是以-“IO错误:网络适配器无法建立连接”” 我使用的参数是 Username: sys as sysdba Password: <oracle password> Hostname: IP address of the server on which Oracle SQL is installed. Port:

Sql IEnumerable EntityFramework集合混淆

我有一个奇怪的问题,两个我认为应该做同样事情的代码位。有人能解释一下为什么这段代码需要很长时间才能执行: IEnumerable<Account> acc_list = null; acc_list = dbContext.Accounts; acc_list = acc_list.Where(a => !a.Transactions.Any(t => t.isClosureTransaction)); int count = acc_list.Count(); IEn

Sql 交换字符串值位置

是否可以交换多个字符串位置值 这里要清楚地解释一下: 是否可以将103414823111更改为类似的823111103414 要详细说明: 我想把103414放在823111后面,而不是放在前面 某些数据的切割现在完成了,我的问题是把它移到前面 这是我的代码 [Time] = SUBSTRING('351856040667941,RA1;0500A1437.8305N12057.1792E000.0087.600.800051034148231114CEA2420018A140000000',

Sql 如何将此select语句转换为存储过程?

我有一个select语句,它显示pl/sql脚本的文本(内容): select text from DBA_source where type like '%PROCEDURE%' and name like '%JOB_HISTORY%' order by line; 我希望将其转换为存储过程,以便select语句的“name”条件应作为输入,而不应预定义为类似于显示“%job\u history%”的状态 如何做到这一点 这是一个函数,而不是存储过程: create type proc_t

SQL规范化:数学?

我正在上数据库设计课。课程主要侧重于游牧化。这些步骤和方法不言而喻,但我觉得直觉方面令人沮丧。是否有一种数学方法来处理数据规范化,在这种方法中可以分配属性并处理数学上确定的结论?在关于地址的讨论中,我将给出另一个真实世界的例子 您是架构师,负责使用包含地址信息的旧数据库重新设计旧应用程序。 DB当前有1个字段用于所有地址信息 我们的地址如下所示: Address ___________________________________ Bob Robertson 123 Broad Way Spr

Sql 如何使用Oracle以年、月、日为单位计算年龄

我尝试使用以下格式打印每个人的年龄: 例如:19年8个月13天 我在谷歌上搜索了很多,我注意到有一个特定的函数来计算日期之间的差异DATEDIFF 但是,这个函数在SQL*Plus中不存在,所以我继续尝试使用MONTHS\u-BETWEEN()和一些操作符 我的尝试: SELECT name , ' ' || FLOOR(MONTHS_BETWEEN(to_date(SYSDATE),to_date(date_of_birth))/12)||' years ' || FLO

Sql 搜索时填充Msh Flex网格/显示数据的存储过程

好的,这个问题与VB6和SQLServer2008有关。 目前,我的一个表单上有一个flexgrid,它由一个简单的存储过程填充 Create Proc [dbo].[sp_LoadGrid] As Begin Select FirstName, LastName, SEX, DOB, School from dbo.tblClients 在flex网格上方,我有两个文本框,允许用户按名字或姓氏进行搜索。我编写了一个if语句,只需获取txt框中写入的任何字母,然后搜索网格(使用“%”)。现在我

选择单值到多行oracle sql

我想选择一个值并将其检索到多行中。我试图搜索有关此案例的内容,但没有找到将其唯一化的写入方式,并且 最后为我的英语感到抱歉请尝试从表t中选择您的_值,t.*请显示一些示例数据以及您希望如何显示输出。另外,最好显示您为这个问题编写查询的尝试。实际上,您不需要t.*,因为编写从t中选择您的\u值就足以显示表中任意多行的您的\u值。

Sql 表列水平重复,并根据显示值

我的表架构(表名为record) 看起来像 ID Name 1 Mahesh 2 Mahendra 3 Kirti 4 Jatin 我想显示以下记录 Name Name Mahesh Mahendra Kirti Jatin 在SQL Server中是否可以按上述方式返回数据?在SQL Server中是否可以按上述方式返回数据? 是的,可以做到 您必须定义一个规则,用于确定哪些名称将显示在第一列上,哪些名称将显示在第二列上 with re

Sql 如果满足条件,如何使命令运行?

所以…如果我的BufferPoolCommitMemoryGB变量大于14.99,我将尝试运行clear cache语句。我的语法正确吗?提前谢谢 SET NOCOUNT ON CREATE TABLE #TempTable ( PhysicalMemoryGB Decimal (20, 2), BufferPoolCommittedMemoryGB Decimal (20, 2), BufferPoolTargetMemoryGB Decimal (20, 2), MinServerMem

Sql 如何使用Datatable中的查询从数据库中选择特定链接

我有117个分页链接=3个 http://www.shophive.com/apple?cat=22& p=2 和3个分页链接=3个类似 http://www.shophive.com/apple?cat=19&p=3 我只想通过C#sql中的数据表选择p=2的链接, “包含”和“不在查询中”不起作用您可以使用此查询获得特定的结果,我想它将帮助您解决问题 select * from tablename WHERE columnName LIKE '%&p=3%' 请

Sql 如何在combox.value中允许整数接收空值?

2)if条件不起作用。结果:“Else语句”对monthcombobox起作用;“然后声明无效。换句话说,只有“按月”组合框有效。“按月期间”没有输出。 Dim month As Integer Dim fromm As Integer Dim too As Integer If IsNumeric(monthComboBox.Value) Then month = monthComboBox.Value Else month = 0 End If '''' If IsN

基于角色和电子邮件字段检索唯一记录的SQL查询

我试图根据我的要求检索一些记录。根据当前表,商店可以有任意数量的经理和/或收银员及其各自的电子邮件地址。现在,我正在尝试检索一组新的记录,其中每个分行只有一名经理和/或一名出纳,并带有各自的电子邮件地址(没有选择特定经理出纳的标准) 当前表格: BranchName Role Email ------------------------------------------------- CA Cashier Cashier1@gmail.

在SQL Server中解析计算机生成的SQL

忍者 这有点难 我有一个基于SQL Server 2012的应用程序审计数据库。里面有一个包含NTEXT列的表,该列包含sql查询的原始文本。这些查询是机器生成的,不便于“人”阅读(列长达20000个字符,有很多别名等) 我正在寻找一种工具,它允许我分析sql查询文本,并列出查询中使用的所有列和表。 到目前为止,我们一直试图自己找出算法。但也许有一个现成的工具可以自动完成 提前谢谢你的帮助 卡斯帕创建一个新的C项目。NuGet package id=“Microsoft.SqlServer.Tr

Sql 如何在配置单元中的每个时间窗口计算不同的成员?

我有一张这样的表格,代表一位会员在一个月内购买了一种产品。这个月是从201501年到201612年。 我想得到一个包含两列的新表:一列是从201501到201612的月份,另一列是作为成员滚动的计数(不同的成员\u srl),它来自该月份前12个月的记录。 例如,新表的一条记录是“201605 123456”,数字123456是月>='201505'和月

Sql 计算总是四舍五入的

结果总是给出1,00和0,00,而不是精确的数字四舍五入到小数点后两位。如果我把100*放在目标前面,那么我会得到一个有用的结果,即百分比,但我不希望它是百分比 为了得到有用的结果,我可以做些什么 我已经使用了搜索功能,但到目前为止没有任何效果。看起来不错,但我要么不知道如何正确使用它,要么它不起作用。这有用吗: SELECT goals, games, ROUND(goals/games, 2) AS "goalspergame" FROM bgoals ORDER BY goals DESC

用于生成完整日期的Excel SQL concat字段

我们的主系统将日期存储在三个独立的部分中。我想将它们结合起来,以便在Excel中使用它们。我可以很容易地将它们组合到Excel中,但首先我希望导入的数据正确无误。主系统中的数据存储为17年、2月和22日。在select语句中,我希望它作为一个名为Date1的新字段出现,在这里它看起来是这样的:2017年2月22日,我不确定数据是存储为文本还是数字,但我认为它可能是文本 但是请注意,有些数据库内置了日期格式函数来解决这一问题……答案取决于数据库引擎,您没有指定该引擎。 SELECT month

在Oracle中,GROUPBY在SQL查询中花费了很长时间

当我在查询中使用group来获取几个列的总和时,它开始占用太多的时间 示例:- SELECT A.ID PROJECT_ID, REGION.LEVEL2_NAME REGION, A.LOCATION LOCATION, A.DEPT DEPT, REPLACE(A.ROLE_NAME, ',', '') ROLE_NAME, A.MONTH_START, TO_CHAR(A.MONTH_START,'MON YYYY') MONTH

Sql 自动终止阻塞并报告结果

如何在特定服务器实例上自动查找和终止特定数据库上的长期阻塞(假设1小时)查询,并报告结果以查看终止的阻塞查询 您可以使用查看所有服务器事务 SELECT * FROM sys.dm_exec_requests 这个只显示查询和处理时间 如果要终止阻塞进程: KILL [session_id] 很好,但这确实是很多人使用数据库监控工具的东西,因为我正在寻找创建sql作业,找到阻止并杀死它,然后发送一封包含报告的电子邮件。我仍然认为这是您需要的。查询为您提供了运行时间,您可以编写一个程序来运行查

SQL Server中具有脏数据的三个表的内部联接

我有三张桌子,T1,T2,T3 T1有A、B、C列 T2有C、D、E列 T3有E、F、G列 其思想是将所有列进行内部联接,以获得带有列A、B、C、D、E、F、G的表T 我现在已经知道如何连接三个表了,问题是应该连接T2和T3的列E非常嘈杂,它应该是一个数值,但它有各种各样的值(文本、标点符号等) 如何使用if语句进行内部联接 以下是E列的示例: 在表T2中:10000001、$4542、$1892348、2347239(噪音为$4542和“.”) 在表T3中:100000018923482

TSQL从3列中选择max,然后内部连接一列

我如何做到这一点: 在表A中,我有3列整数值:A、b、c 在表B中,我有3列整数值:x,y,z 我想选择(a,b,c)的最大值,并将x,y,z中相应的值进行内部连接 例如: a = 1, b = 2, c = 3 x = 7, y = 8, z = 9 结果: 有两列的表 firstColumn | secondColumn c | 9 说明:c是a、b、c的最大值,我们取的是名称,而不是值 第二个表中的值是我们需要的吗 提前谢谢 ps我正在使用sql ser

Oracle SQL跨组中的多列计数

具有跨列具有多个重复项的数据集 ID DATE CLIENT TEST0 TEST1 TEST2 ================================================ 1 04/12/17 123 CBC LIPID (null) 2 04/12/17 345 LIPID (null) (null) 3 04/13/17 123 BMP CB

postgres SQL状态:运行函数时出现P0001错误

博士后数据库 如果我使用query运行下面的函数,请选择sms.somefunc(),获取错误SQL状态:P0001 我调用了这个函数中的另一个函数 有人能帮我解决这个问题吗?我不知道为什么会发生这种错误 提前谢谢 --DROP FUNCTION SMS.somefunc(); CREATE FUNCTION SMS.somefunc() RETURNS void AS $BODY$ DECLARE wk_rows INT :=0; work_plan_id_val INT

SQL Server使用PatIndex查找字符的位置,只知道模式的开始和结束

是否可以使用patIndex查找字符位置,而只知道存储在varchar中的模式的开始和结束 我已尝试使用此选项,但每次都返回“0” select @emptyTag= patindex('<span%></span',@pmReportText) select@emptyTag=patindex(“一种方法是获取一个字符串拆分例程,然后拆分字符串上的所有文本”>请将示例数据作为文本而不是图像发布..我将示例作为文本添加到图像下方为什么不仅此select charindex(“

将标准sql表达式转换为旧式(字节转换为时间戳)

我目前有以下标准SQL表达式: TIMESTAMP_SECONDS(NET.IPV4_TO_INT64(substr(FROM_BASE64(replace(replace('user_id',"-","+"),"_","/")),0,4))) 但我需要用遗留SQL编写它 我已经走了这么远: LEFT(FROM_BASE64(REPLACE(Replace('V95182FFZAAnIlNQ',"-","+"),"_","/")),4) 但是无法将字节转换为时间戳。这绝对不是标准的SQL为什

Sql 多个表的一对一关系

我不熟悉使用数据库,正在尝试设计一个新的数据库,我认为我需要跨多个表的一对一关系 为了演示我的设计,假设我正在构建一个时间表数据库作为示例。我首先为具有一对多关系的人创建一个表 CREATE TABLE person ( person_id SERIAL NOT NULL, name VARCHAR, PRIMARY KEY (person_id) ); CREATE TABLE events ( event_id SERIAL NOT NULL,

在oracle sql中使用秩函数显示空值

这是另一个问题的延伸: 我有一套如下的桌子: c_id c_name c_tax 1001 Element1 1 1001 Element1 2 1001 Element2 1 1001 Element2 2 1002 Element3 null 1002 Element4 1 1002 Element4 2 c_id c_name c_tax 1001 Element1 Yes

Sql 使用Group By加上“;选择";子查询

我正在尝试按工作日对我的表进行分组,以便查看每种付款类型的计数以及按工作日划分的其他销售信息。但是,由于我使用的是子查询,所以我只得到一个重复值列表,因为子查询只能返回一个值。有没有一种简单的方法可以在工作日将其分组?我想我在其他地方读到,我可能必须为每个子查询执行一系列连接,但是因为有8个连接,所以我宁愿不这样做。我目前的代码如下: select datename(weekday, transaction_date) as [Day], (select count(tender_type) f

SQL数据建模器自动创建实体\u ID

我正在使用oraclesqldatamodeler创建一个逻辑模型。当逻辑模型被设计为关系模型时,它会自动在关系模型中创建一个新属性[ENTITY\u NAME]\u ID 该实体已具有通过域管理保证唯一的主键。我试过上网搜索,玩弄主键等等。这是一个强大的实体 我刚刚创建了一个实体,PEOPLE,具有SSN、NAME和DOB属性。SSN i标记为主UID。然后我设计了关系设计。SSN被设置为主键,并且没有生成人物ID列-因此我无法根据2屏快照重现您的场景。如果您将图片嵌入帖子本身,那么我们不必

SQL查询以查找与表中其他元素相关的最频繁元素

我有一个医院数据库,其中包含以下表格: 设备 id字符(40)不为空, 模型字符(20)不为空, serialno VARCHAR(20)不为空, 发布日期, 主键(id) 及 和其他一些桌子 表appointmetrelations描述了医院的预约情况,并将预约与使用的设备和药物联系起来 我想写一个查询,找出与他的年龄相关的使用最多的设备 appointmentrelations a1 m1 e1 a2 m2 e2 a3 m3 e3 a4 m3

使用SQL处理和加载到目标表时出错

我今天有一个场景,我有点累了。在我的源Oracle源表中有如下数据(示例数据) 现在,第二行中的工资为负值,第三行中的生日格式无效(有效格式为MM/dd/yyyy)。第二行和第三行都应转到无效的\u员工,第一条记录应转到有效的\u员工。在源文件中,日期格式为dd/mm/yyyy。我必须将其转换为MM/dd/yyyy格式,还必须检查源文件中传入的日期格式是否为dd/MM/yyyy。薪资不应低于0。源表中的所有列均为字符串,目标表中的ID为整数,名称为VARCHAR2(255),薪水为数字,生日为日

联接SQL查询中出错

我正在尝试使用以下连接查询进行搜索 SELECT comm_date, bus_prof, phone, state, display_name FROM spt_identity WHERE display_name IN ( SELECT regexp_substr(name,'[^:]+$') AS display_name FROM spt_task_result

Sql 搜索一个列值,该列值包含具有某些不同指定值的耦合记录

我有一个数据库: |id|surname|name | 1|Smith |John | 2|Smith |Mike | 3|Smith |Bob | 4|Knope |John | 5|Knope |Mike | 6|Knope |Dick | 7|Pratt |John | 8|Pratt |Jill | 9|Pratt |James 我想找到一个有约翰、迈克和鲍勃的姓。我想把它还给史密斯。或者我想寻找一个有约翰和迈克的家庭,我想把史密斯和诺普还给他们。我该怎么做 我想要得

Sql 如何设置比给定日期大小时和分钟的日期?

我需要写一个查询,返回所有记录,其中以小时和分钟表示的日期大于5:30。示例:我们有日期:2018-10-18 03:00和2018-10-18 05:40。我只需要返回第二个。我现在做的是(在“选择”部分): 问题是我需要同时满足这两个条件。我也使用了括号,但仍然不正确。基本上,它工作不好,问题出在哪里?直接使用时间如何 where cast(Table1.CreateDate as time) >= '05:30:00' 就我个人而言,如果可以,(而且你需要经常根据时间进行查询),我

使用sql如何插入数据,但如果它';已存在更新数据

我想添加它-如果存在更新或插入 所以,插入是有效的,但我只想插入新值,若这个东西已经在这里,我想更新它。我这里的代码只插入数据,不知道什么 BEGIN DECLARE das int; SELECT dasaxeleba.id INTO das FROM dasaxeleba WHERE dasaxeleba.barcode = NEW.barcode; INSERT INTO sawyobi(das_id,raodenoba,tvitgirebuleba,gasayidi1,gasayidi2

接口的SQL插入片

我正在编写一个向SQLite数据库添加一行的函数 func ManageDB(db *sqlx.DB, query string, args ...interface{}) (int64, error) { stmt, err := db.Prepare(query) if err != nil { return -1, err } defer stmt.Close() tx, err := db.Begin() if err != n

如何在Sql Server中以原子方式更新复合对象?

我有一个简单的对象,它包含其他对象,建模方式类似于SQL server中两个表的普通1-many关系 集装箱台 Id Name 1 MyContainer 项目表 Id ContainerId Data 1 1 'A' 2 1 'B' 我希望此容器对象始终以原子方式更新。现在假设有两个操作将同时启动: 将项目3添加到数据为“C”的容器中 更新两个现有项,使数据变为“AA”、“BB” 我不希望出现两个操作“混合”的情况(因此将有

Sql 自动增量ID已反转且未组织问题

这听起来可能很傻,也不会影响我的代码,但出于好奇,是什么原因导致自动递增的“ID”像那样反转,并且不能正确递增 结构: 我认为ID不是主键。如果可以将ID作为主键,则行的顺序应该正确。自动递增的ID可以。问题是查询,它大概类似于: select * from users; 此查询没有排序依据。因此,结果可以以任何顺序返回。并且顺序可以从一行更改到下一行 要按特定顺序查看结果,您始终需要在查询中包括orderby。此查询可能由工具生成,因此您无法控制它 实际上,我希望一个小表上的结果按照聚集索