Ⅰ sql语句求详细解释
整个语句结构是这样的
select case when then end from ldsysvar where sysvar = ''onerow'''
如果 (select nvl(sum(case factorcode when ''D001'' then factorvalue end),0)
from llotherfactor where feeitemtype=''D'' and clmno=''?CaseNo?'')>0 那么 least(?je_gf?,?je_gf?+(select nvl(sum(case factorcode when ''D002'' then factorvalue end),0)
from llotherfactor where feeitemtype=''D'' and clmno=''?CaseNo?''), ?amnt?-?compensatetysumpay?) 否则 least((?je_gf?+(select nvl(sum(case factorcode when ''D002'' then factorvalue end),0)
from llotherfactor where feeitemtype=''D'' and clmno=''?CaseNo?''))*0.8,?je_gf?,?amnt?-?compensatetysumpay?)
Ⅱ 在sql developer中怎样用命令查询other users中scott中的表
同个实例的直接这样:
SELECT*FROM[数据库].[dbo].[scott]
不同实例的这样:
--
--OPENROWSET支持在连接时制定查询语句,比较灵活
--OPENDATASOURCE连接字符串可用ADO的连接字符串,但不支持在连接时制定查询语句
--
--OPENROWSET:连接字符串
--Windows身份:Server=数据库服务器;Trusted_Connection=Yes;
--账号密码登录:Server=数据库服务器;PWD=密码;UID=账号;
--账号密码登录:'数据库服务器';'账号';'密码'
--
--OPENDATASOURCE:连接字符串
--Windows身份:Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=数据库服务器;DataSource=数据库名
--账号密码登录:Provider=SQLOLEDB.1;Password=密码;PersistSecurityInfo=True;UserID=账号;InitialCatalog=数据库服务器;DataSource=数据库名
--
--开启高级设置
EXECsp_configure'showadvancedoptions',1
RECONFIGURE
--开启外围设置
EXECsp_configure'AdHocDistributedQueries',1
RECONFIGURE
GO
--
--OPENROWSET
--Windows身份
--
SELECT*
FROMOPENROWSET('SQLOLEDB','Server=127.0.0.1,2434;Trusted_Connection=Yes','SELECT*FROMjfdf1.dbo.xtszUNIONALLSELECT*FROMjfdf2.dbo.xtsz')
--
--账号密码登录
--
SELECT*
FROMOPENROWSET('SQLOLEDB','Server=127.0.0.1,2434;PWD=932kj;UID=sa','SELECT*FROMjfdf1.dbo.xtsz')
--
--账号密码登录
--
SELECT*
FROMOPENROWSET('SQLOLEDB','127.0.0.1,2434';'sa';'932kj','SELECT*FROMjfdf1.dbo.xtsz')
GO
--
--OPENROWSET
--Windows身份
--
SELECT*
FROMOPENDATASOURCE('SQLOLEDB','Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=jfdf1;DataSource=127.0.0.1,2434').jfdf2.dbo.xtsz
--
--账号密码登录
--
SELECT*
FROMOPENDATASOURCE('SQLOLEDB','Provider=SQLOLEDB.1;Password=932kj;PersistSecurityInfo=True;UserID=sa;InitialCatalog=jfdf1;DataSource=127.0.0.1,2434').jfdf2.dbo.xtsz
GO
--关闭高级设置
EXECsp_configure'AdHocDistributedQueries',0
RECONFIGURE
--关闭外围设置
EXECsp_configure'showadvancedoptions',0
RECONFIGURE
GO
Ⅲ 怎样用sql语句添加数据到不同的表中
INSERT ALL是9i新增的语法,它扩充了原有的INSERT语句,使得INSERT语句从原来的只能插入到一张表发展到可以同时插入多张表,还可以根据判断条件来决定每条记录插入到哪张或哪几张表中。
下面看几个简单的例子:
SQL> CREATE TABLE TABLE_STORAGE
2 (
3 TABLE_NAME VARCHAR2(30),
4 TABLESPACE_NAME VARCHAR2(30),
5 PCT_FREE NUMBER,
6 PCT_USED NUMBER,
7 INI_TRANS NUMBER,
8 MAX_TRANS NUMBER,
9 INITIAL_EXTENT NUMBER,
10 NEXT_EXTENT NUMBER,
11 MIN_EXTENTS NUMBER,
12 MAX_EXTENTS NUMBER,
13 PCT_INCREASE NUMBER,
14 FREELISTS NUMBER,
15 FREELIST_GROUPS NUMBER
16 );
表已创建。
SQL> CREATE TABLE TABLE_STAT
2 (
3 TABLE_NAME VARCHAR2(30),
4 NUM_ROWS NUMBER,
5 BLOCKS NUMBER,
6 EMPTY_BLOCKS NUMBER,
7 AVG_SPACE NUMBER,
8 CHAIN_CNT NUMBER,
9 AVG_ROW_LEN NUMBER
10 );
表已创建。
SQL> INSERT ALL
2 INTO TABLE_STORAGE VALUES (TABLE_NAME, TABLESPACE_NAME, PCT_FREE, PCT_USED,
3 INI_TRANS, MAX_TRANS, INITIAL_EXTENT, NEXT_EXTENT, MIN_EXTENTS, MAX_EXTENTS,
4 PCT_INCREASE, FREELISTS, FREELIST_GROUPS)
5 INTO TABLE_STAT VALUES (TABLE_NAME, NUM_ROWS, BLOCKS, EMPTY_BLOCKS, AVG_SPACE,
6 CHAIN_CNT, AVG_ROW_LEN)
7 SELECT * FROM USER_TABLES;
已创建54行。
SQL> SELECT COUNT(*) FROM TABLE_STORAGE;
COUNT(*)
----------
27
SQL> SELECT COUNT(*) FROM TABLE_STAT;
COUNT(*)
----------
27
SQL> SELECT COUNT(*) FROM USER_TABLES;
COUNT(*)
----------
27
SQL> DROP TABLE TABLE_STAT;
表已丢弃。
SQL> DROP TABLE TABLE_STORAGE;
表已丢弃。
上面是最简单的INSERT ALL语句的实现,下面看看带条件的INSERT ALL语句。
SQL> CREATE TABLE TABLE_ALL (TABLE_NAME VARCHAR2(30));
表已创建。
SQL> CREATE TABLE INDEX_ALL (INDEX_NAME VARCHAR2(30));
表已创建。
SQL> CREATE TABLE OBJECT_OTHER (OBJECT_NAME VARCHAR2(30), OBJECT_TYPE VARCHAR2(30));
表已创建。
SQL> INSERT ALL
2 WHEN (OBJECT_TYPE = 'TABLE') THEN
3 INTO TABLE_ALL VALUES (OBJECT_NAME)
4 WHEN (OBJECT_TYPE = 'INDEX') THEN
5 INTO INDEX_ALL VALUES (OBJECT_NAME)
6 ELSE
7 INTO OBJECT_OTHER
8 SELECT OBJECT_NAME, OBJECT_TYPE FROM USER_OBJECTS
9 ;
已创建91行。
SQL> SELECT COUNT(*) FROM USER_OBJECTS WHERE OBJECT_TYPE = 'TABLE';
COUNT(*)
----------
27
SQL> SELECT COUNT(*) FROM USER_OBJECTS WHERE OBJECT_TYPE = 'INDEX';
COUNT(*)
----------
14
SQL> SELECT COUNT(*) FROM USER_OBJECTS
2 WHERE OBJECT_TYPE NOT IN ('TABLE', 'INDEX');
COUNT(*)
----------
50
SQL> SELECT COUNT(*) FROM TABLE_ALL;
COUNT(*)
----------
27
SQL> SELECT COUNT(*) FROM INDEX_ALL;
COUNT(*)
----------
14
SQL> SELECT COUNT(*) FROM OBJECT_OTHER;
COUNT(*)
----------
50
SQL> DROP TABLE TABLE_ALL;
表已丢弃。
SQL> DROP TABLE INDEX_ALL;
表已丢弃。
SQL> DROP TABLE OBJECT_OTHER;
表已丢弃。
下面看一下INSERT ALL和INSERT FIRST的区别:
SQL> CREATE TABLE TABLESPACE_USERS (NAME VARCHAR2(30), TYPE VARCHAR2(30));
表已创建。
SQL> CREATE TABLE TABLE_ALL (TABLE_NAME VARCHAR2(30));
表已创建。
SQL> INSERT ALL
2 WHEN (SEGMENT_TYPE = 'TABLE') THEN
3 INTO TABLE_ALL VALUES (SEGMENT_NAME)
4 WHEN (TABLESPACE_NAME = 'USERS') THEN
5 INTO TABLESPACE_USERS VALUES (SEGMENT_NAME, SEGMENT_TYPE)
6 SELECT SEGMENT_NAME, SEGMENT_TYPE, TABLESPACE_NAME
7 FROM USER_SEGMENTS;
已创建69行。
SQL> SELECT COUNT(*) FROM TABLE_ALL;
COUNT(*)
----------
21
SQL> SELECT COUNT(*) FROM TABLESPACE_USERS;
COUNT(*)
----------
48
SQL> SELECT COUNT(*) FROM TABLESPACE_USERS WHERE TYPE = 'TABLE';
COUNT(*)
----------
18
SQL> TRUNCATE TABLE TABLE_ALL;
表已截掉。
SQL> TRUNCATE TABLE TABLESPACE_USERS;
表已截掉。
SQL> INSERT FIRST
2 WHEN (SEGMENT_TYPE = 'TABLE') THEN
3 INTO TABLE_ALL VALUES (SEGMENT_NAME)
4 WHEN (TABLESPACE_NAME = 'USERS') THEN
5 INTO TABLESPACE_USERS VALUES (SEGMENT_NAME, SEGMENT_TYPE)
6 SELECT SEGMENT_NAME, SEGMENT_TYPE, TABLESPACE_NAME
7 FROM USER_SEGMENTS;
已创建51行。
SQL> SELECT COUNT(*) FROM TABLE_ALL;
COUNT(*)
----------
21
SQL> SELECT COUNT(*) FROM TABLESPACE_USERS;
COUNT(*)
----------
30
SQL> SELECT COUNT(*) FROM TABLESPACE_USERS WHERE TYPE = 'TABLE';
COUNT(*)
----------
0
最后看一下多表插入语句的限制条件:
只能对表执行多表插入语句,不能对视图或物化视图执行;
不能对远端表执行多表插入语句;
不能使用表集合表达式;
不能超过999个目标列;
在RAC环境中或目标表是索引组织表或目标表上建有BITMAP索引时,多表插入语句不能并行执行;
多表插入语句不支持执行计划稳定性;
多表插入语句中的子查询不能使用序列。
Ⅳ sql中要提取other字段是空的数据要怎么写
select * from mydb where other is null;
补充一下:查询不是空的
select * from mydb where other is not null;
---
以上,希望对你有所帮助。
Ⅳ mysql 中要查询表parter,other字段中出现字符处'简介'两次以上的所有记录sql语句该怎么写
select * from parter where other like "%简介%简介%"
Ⅵ SQL语句实现关键字查询,回答好了有追加分 C#开发 一张表 有姓名 性别 地址 一个textbox 输入关键字 点按
select * from student where 姓名 like '%textbox中的内容%' or 性别 like '%textbox中的内容%' or 地址 like '%textbox中的内容%'
这样就能得到一个模糊查询之后的结果
恩 试试吧 我所说的这个 '%textbox中的内容%' 这样是你sql里面生成的语句 在c#里面 实现的时候 是'%'+textbox.Text.Trim()+'%' 是这样的 你看看结果
比如说 写string sql="select * from student where 姓名 like '%"+textbox.Text.Trim()+"%'" 依次类推 是这样的
晕。。。俺加上。。。最近两天 感冒 头脑不清醒。。 。。哈哈 哈哈
Ⅶ 如何查询一个索引在哪些sql语句中使用
create table
(
id int identity(1, 1) not null primary key,
other_column varchar(50)
)
-- 对表设置主键的同时,数据库会自动的创建一个以主键作为名称的唯一索引的。
Ⅷ sql 2000中 select case when then 的用法
CASE WHEN condition THEN result
[WHEN ...]
[ELSE result]
END
CASE
子句可以用于任何表达式可以有效存在的地方。 condition 是一个返回boolean 的表达式。 如果结果为真,那么
CASE
表达式的结果就是符合条件的 result。 如果结果为假,那么以相同方式搜寻任何随后的 WHEN 子句。
如果没有 WHEN
condition 为真,那么 case 表达式的结果就是在
ELSE 子句里的值。
如果省略了 ELSE
子句而且没有匹配的条件, 结果为 NULL。
例子:
SELECT * FROM test;
a
---
1
2
3
SELECT a,
CASE WHEN a=1 THEN 'one'
WHEN a=2 THEN 'two'
ELSE 'other'
END
FROM test;
a | case
---+-------
1 | one
2 | two
3 | other
所有 result 表达式的数据的类型都必须可以转换成单一的输出类型。
下面这个"简单的" CASE
表达式是上面的通用形式的一个特殊的变种。
CASE expression
WHEN value THEN result
[WHEN ...]
[ELSE result]
END
先计算 expression 的值, 然后与所有在WHEN
子句里声明的 value 对比,直到找到一个相等的。 如果没有找到匹配的,则返回在
ELSE 子句里的
result (或者 NULL)。 这个类似于 C 里的
switch
语句。
上面的例子可以用简单 CASE
语法来写:
SELECT a,
CASE a WHEN 1 THEN 'one'
WHEN 2 THEN 'two'
ELSE 'other'
END
FROM test;
a | case
---+-------
1 | one
2 | two
3 | other
CASE
表达式并不计算任何对于判断结果并不需要的子表达式。 比如,下面是一个可以避免被零除的方法:
SELECT ... WHERE CASE WHEN x <> 0 THEN y/x > 1.5 ELSE false END;
Ⅸ sql多字段联查问题
tableid, uid1, uid2, other,uid, name, other这些是两个表中的字段吗?
两个表中关联的字段是uid吗?就是uid=uid1;uid=uid2吗?这样的话就不可以了耶!
Ⅹ 怎么使用SQL语句,在update中对一条记录进行加值
摘要 UPDATE mytable SET myfield='value' WHERE other_field='other_value';