我最近开始学习oracle和sql。在学习过程中,我遇到了几个问题,我的朋友在一次面试中被问到。
SELECT *
FROM Employees
WHERE NULL IS NULL;
此查询将生成Employees表中的所有行。正如我所理解的,Oracle在列中搜索数据,因此,NULL,这里是否将其视为列名?当我说Oracle在列中搜索数据时,是否正确?为什么Oracle会给出这个查询中的所有行?在WHERE子句中,条件的左侧不是必须是列名吗?它不应该抛出一个错误吗?
SELECT *
FROM Employees
WHERE NULL = NULL;
不提供选定的行。
嗯,我知
我必须编写一个对和Oracle有效的SELECT语句。我必须使用旧的客户数据库,所以我不能改变数据库设计中的任何东西.
问题是该表有一个可空列“project”,它是一个varchar,在某些情况下是由空字符串填充的-- oracle将该字符串转换为NULL。那么,如何选择所有具有非空“项目”的列?
WHERE project IS NOT NULL works for oracle
WHERE project <> '' works for MS
WHERE project IS
我想从SQL-Server 2008访问Oracle 11g数据库中的数据
我设置了一个链接服务器,当我执行
select * from [Link_server_name]..Oracle_schema.Oracle_table
Oracle_table包含Number和varchar2列,所有这些列都是例外的。
但是,当Oracle_table包含一个CLOB列时,我得到以下错误:
DB-Anbieter 'MSDAORA‘für den Verbindungsserver 'L_V407SR8T’帽子模Meldung‘不明错误’zurückgeben。
Der OLE D
在sql developer中,如果我们输入了错误的查询,例如delete from notable
它将向我们显示确切行号和列
Error starting at line : 1 in command -
delete from notable
Error at Command Line : 1 Column : 13
Error report -
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Act
是否可以在Oracle中设置硬编码或计算列的数据类型。
例如::
SELECT AccountID FROM Account
当我读完返回给.Net的记录时,我可以使用一个整数来获取accountID。
_accountID = dr.GetInteger("accountID")
但是,假设我有一个UNION查询,例如:
SELECT AccountID FROM Account
UNION
SELECT 0 as AccountID FROM Account
我得到一个错误:"Specified cast is not valid.",因为硬编码的0列只能使
我有一个列field_name和列,另一个名称是data,如果列名是Oracle,那么数据可以为Null,我不希望在查询中返回它。
我试过了,但不起作用
AND field_name = Case When field_name= 'Oracle' And Data IS Null
field_name <> 'Oracle'
Else field_name
End
我有一个表,有3列a,b和c。我想知道如何用每行中其他两列的连接来更新第三列的值。
before update
A B c
-------------
1 4
2 5
3 6
after update
A B c
-------------
1 4 1_4
2 5 2_5
3 6 3_6
我如何在oracle中做到这一点?
这是从表中读取数据然后插入表中的正确方法吗?
我试图读取最大值或rec_id来创建seq列+1,以便将我的数据记录插入到同一个表中。
//Opening the connection with Oracle Database
OracleConnection conn = new OracleConnection(oradb);
conn.Open();
//Create the oracle statment and insert data into oracle database
我想写postgres alter以在现有表中添加一列我尝试过这个脚本,它在ms sql server和oracle中也运行良好,但是在postgres sql中出现了错误。
错误:键入"AS“不存在第1行: alter添加unique_colum SET (当.
ALTER TABLE employee add unique_colum AS (case when flag = 'n' then ids else name end);
标志和ids是现有的列,我想从任何现有表中再添加一个名为的列和新列的值。
我有一个Oracle查询,它获取2500万条记录,没有pk或没有列被正确地分发成一个按列拆分的列。所以我想用ROW_number() over () as RANGEGROUP来做一个序列号。但是当我使用这个伪列时,它给了我一个错误:
由: org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:164):ORA-00904:“P”引起的:“RANGEGROUP”:oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:91).处的无效标识符
我正确地
我在Oracle中有一个简单的表,我想以某种方式对其进行分组:我希望在同一行中显示分类结果和聚合结果。以下是输入表:
with abc as
(
select 'aaa' nnn, 100 amt from dual union
select 'aaa', 20 from dual union
select 'aaa', 3 from dual union
select 'bbb', 44 from dual
)
select * from abc
我希望显示每个单独的行,每个行与
我有一个带有列SAMPLE_TABLE的BIZ_ID,当列active不等于0时,该列应该是唯一的。
在oracle数据库中,索引如下所示:
CREATE UNIQUE INDEX ACTIVE_ONLY_IDX ON SAMPLE_TABLE (CASE "ACTIVE" WHEN 0 THEN NULL ELSE "BIZ_ID" END );
这个唯一的索引在h2数据库上会是什么样的呢?
我刚收到一个网页应用程序的笔试结果。测试人员表示,他们能够使用动态SQL语句的ORDER子句检索信息。应用程序将应该排序的列的名称传递到查询中。测试人员修改了该值,使其包含一个类似于CASE WHEN ... THEN 1 ELSE 1/0 END的复杂语句。
然而,我构建了一个非常简单的测试用例。我有一个Oracle数据库和一个SQLServer。两个表都包含相同的表。我质疑
SELECT * FROM users ORDER BY 1/0
当我在Oracle中执行此操作时,查询执行得很好。在SQLServer中,我得到了一个错误8134 Divide by zero error encou
我想用oracle sql编写一个case,而不是计算列。查询如下所示。
Select trunc (Cost*100/Amt) as 'Computed_LTV',
Case
When Request_Term <19 THEN '60'
When Request_Term <=24THEN'-18'
When Computed_LTV <70.805 THEN '-20'
ELSE '-60'
END AS "Var_1"
FROM LOAN_APP