这段代码:
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='xxx'
Run Code Online (Sandbox Code Playgroud)
上面的代码抛出异常:
ORA-00900:无效的SQL语句
我做错了什么?上面的代码很久以前就可以了,我可以发誓.
我有一个表,想要检查是否存在满足某些简单条件的记录.我想知道哪个会更快:
if (select count(*) from ... where ...) > 0
要么
if exists (select top (1) from ... where ...)
.
cakephp 1.3是否存在($ id)函数,以查看表中是否存在记录?我有一个从另一台服务器同步的数据库.我的数据库有2个表,同步表,以及我已经放入同步表扩展的表.我的应用程序现在列出主(同步)表中的所有项目,当他们单击该项目时,它会将它们带到视图以添加与第二个表格不同的信息.它将ID传递给第二个表.
我想要做的是先检查第二个表,查看是否存在具有相应外键的记录,如果存在,则转到第二个表中该记录的编辑屏幕,如果没有,我想确定记录存在于第一个表中,如果存在,则将记录添加到第二个表中,并将给定的$ id作为外键.
现在考虑它,它将正确的id传递给第二个表,我只是不希望用户能够键入一个数字并假设它存在于主表中并将记录添加到第二个表中,这不会实际存在.如果没有检查的功能,我可以使用该关联进行检查吗?喜欢:
if (!$this->Table2->Table1->id) {
//if id does not exist in parent table don't create the record in the second table and print an error
} else {
//id does exist in parent table either add a new record with the foreign key being the id passed from parent or redirect to edit screen for that record in second table
}
Run Code Online (Sandbox Code Playgroud) 我生气这个.我有以下SP:
ALTER PROCEDURE [BankImport].[spBI_getIsBatchUnique]
@batchName varchar = 500
AS
BEGIN
SET NOCOUNT ON;
IF (EXISTS (SELECT 1 FROM [ACN_Main].[BankImport].[tblBI_Jobs]
WHERE [batchNumber] = @batchName))
BEGIN
SELECT 1
END
ELSE
BEGIN
SELECT 0
END
END
GO
Run Code Online (Sandbox Code Playgroud)
但无论要求是什么,我总是回到0!
我尝试用几种方法修改它但没有成功!我需要做的是检查是否有一个包含该批号的记录并返回true,否则返回false.
有提示吗?
谢谢
可能重复:
在插入之前检查重复的Insert语句
我想使用外键b_id检查问题日志表中是否存在构建ID.如果它不存在,那么我想将其添加到问题日志表中.我有下面的代码,但这只是检查问题日志表中哪些建筑物不在...我怎么能插入?非常感谢.我正在使用SQL Server 2008.
select b.b_id from building
where not exists(select b.b_id from issue_log as l where b._id = l.b_id)
Run Code Online (Sandbox Code Playgroud) 我想找到一个表中但不存在于另一个表中的记录.除了记录没有形成相同.所以我想确定我想用来比较的列.我以为我用以下代码解决了它,但它似乎没有工作(返回零记录)...
SELECT A.Name, A.Position, A.[Year]
FROM TABLE A
WHERE NOT EXISTS (
SELECT B.Name, B.Position, B.[Year]
FROM TABLE B
)
Run Code Online (Sandbox Code Playgroud)
或者我应该通过某种加入来做这件事?谢谢...
我在PostgreSQL中有一个存储过程
CREATE OR REPLACE FUNCTION show_senti_lang_setting(IN _senti_id bigint)
RETURNS TABLE(lang_code character, native_name character varying, is_active boolean) AS
$BODY$
BEGIN
RETURN QUERY
SELECT
l.lang_code,
l.native_name,
(CASE WHEN s.senti_id is NULL THEN FALSE
ELSE TRUE
END) is_active
FROM
language l
LEFT JOIN senti_lang s
ON s.lang_code=l.lang_code
AND s.senti_id=_senti_id;
END;
$BODY$
LANGUAGE plpgsql VOLATILE STRICT;
Run Code Online (Sandbox Code Playgroud)
错误是:
ERROR: syntax error at or near "$1"
LINE 1: ...HEN s.senti_id is NULL THEN FALSE ELSE TRUE END) $1 FROM l...
^
QUERY: SELECT l.lang_code, l.native_name, (CASE …
Run Code Online (Sandbox Code Playgroud) 我有三张桌子.一个是删除候选人表.该表是根据某些标准创建的,但不包括一些需要考虑的因素(系统的限制).考虑到那些"遗漏"因素,创建了另外两个表格.因此,我需要在这三个表上运行SELECT查询以获得删除列表.
我开始的是:
SELECT inactive.id
FROM inactive, renamed, returned
WHERE NOT EXISTS (inactive.id = remamed.id and inactive.id = returned.id)
Run Code Online (Sandbox Code Playgroud)
但这给了我一个错误.有人可以在这里指出我的错误吗?
谢谢
如何$this->team->playerAssignment->player
更合理地检查现有财产?现在,我像这样检查它:
if ($this->team)
if (($this->team->playerAssignment))
if (($this->team->playerAssignment->player))
Run Code Online (Sandbox Code Playgroud) 我想编写将XML exists()
函数与命名空间和IF-ELSE
构造结合使用的T-SQL代码。
从这个线程中,我知道这WITH XMLNAMESPACES
是用来使用名称空间的。我也知道该exist()
函数用于确定XML变量中是否存在节点。
到目前为止,我的用法exist()
如下:
IF ((@MyXML.exist('someNode')) = 0)
BEGIN
-- Do Something
END
ELSE
BEGIN
-- Do Something else
END
Run Code Online (Sandbox Code Playgroud)
但是,如果需要使用名称空间,我不知道如何结合使用。我尝试如下,但收到错误。
;WITH XMLNAMESPACES('http://www.sdmx.org/resources/sdmxml/schemas/v2_1/message' AS ns)
IF ((@MyXML.exist('ns:someNode')) = 0)
BEGIN
-- Do Something
END
ELSE
BEGIN
-- Do Something else
END
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
关键字“ WITH”附近的语法不正确。
因此,我的问题是:如何将T-SQL If-Else
构造与XML名称空间和XML exist()
函数结合使用?
exists ×10
sql ×3
sql-server ×3
associations ×1
c# ×1
cakephp ×1
count ×1
database ×1
laravel ×1
mysql ×1
oracle ×1
plpgsql ×1
postgresql ×1
properties ×1
select ×1
t-sql ×1
xml ×1