一、http://www.cnblogs.com/weiwcn/archive/2008/03/24/1120079.html
今天看到项目代码里有这条语句,不懂select 1 from XXXXXXX里的1是何意,查了一番才知道:
1、select 1 from mytable;与select anycol(目的表集合中的任意一行) from mytable;与select * from mytable 作用上来说是没有差别的,都是查看是否有记录,一般是作条件用的。select 1 from 中的1是一常量,查到的所有行的值都是它,但从效率上来说,1>anycol>*,因为不用查字典表。
2、查看记录条数可以用select sum(1) from mytable;等价于select sum(*) from mytable;
3、实际项目SQL:
select c_insrnc_cde, c_nme_cn
from t_prd_ins a
where a.c_prod_no = '01'
and not exists
(select 1
from (select d.c_insrnc_cde, a.c_nme_cn
from t_prd_ins a,
tb_bas_ply_policy_rdr c,
tb_bas_ply_policy_rdr_list d
where a.c_insrnc_cde = d.c_insrnc_cde
and d.c_policy_id = c.c_policy_id
and d.c_seq_no = c.c_seq_no
and a.c_kind_no = '01'
and c.c_dpt_cde = '101' ----机构树中取出机构
and c.c_prod_no = '01'
and c.t_effc_tm <= TO_DATE('2007-9-5', 'YYYY-MM-DD')
and c.t_expd_tm >= TO_DATE('2007-9-5', 'YYYY-MM-DD')
and c.c_work_mode = '00501'
and c.c_reach_area = '00701'
) t
where t.c_insrnc_cde = a.c_insrnc_cde);
二、http://blog.csdn.net/wangyihust/archive/2009/02/05/3863758.aspx
测试场景:(转自网络文献)
table表是一个数据表,假设表的行数为10行。
1:select 1 from table 增加临时列,每行的列值是写在select后的数,这条sql语句中是1
2:select count(1) from table 不管count(a)的a值如何变化,得出的值总是table表的行数
3:select sum(1) from table 计算临时列的和
在SQL SERVER中用 1 测试了一下,发现结果如下:
1:测试结果,得出一个行数和table表行数一样的临时列(暂且这么叫,我也不知道该叫什么),每行的列值是1;
2:得出一个数,该数是table表的行数;
3:得出一个数,该数是table表的行数;
然后我又用“2”测试,结果如下:
1:得出一个行数和table表行数一样的临时列,每行的列值是2;
2:得出一个数,该数是table表的行数;
3:得出一个数,该数是table表的行数×2的数
然后我又用更大的数测试:
1:得出一个行数和table表行数一样的临时列,每行的列值是我写在select后的数;
2:还是得出一个数,该数是table表的行数;
3:得出一个数,该数是table表的行数×写在select后的数
综上所述:第一种的写法是增加临时列,每行的列值是写在select后的数;第二种是不管count(a)的a值如何变化,得出的值总是table表的行数;第三种是计算临时列的和。
语句if not exists(select 1 from deleted d join inserted i on d.ID=i.ID
and d.col1=1 and i.col1=2)
if not exists 如果不存在
(..)这里该是验证更新,更新前的id等于更新后的id,并且更新前col的值是1,更新后的值是2
分享到:
相关推荐
SELECT 1 FROM (VALUES(1)) WHERE NULL = NULL; ``` 查看当前连接的用户和日期时间,Oracle 使用 `USER` 和 `SYSDATE`: Oracle: ```sql SELECT user FROM dual; SELECT sysdate FROM dual; ``` SQL Server 则...
浅析多关系SQL查询 摘要:本文对多关系SQL查询进行了深入分析,介绍了多关系SQL查询的一般形式,讨论了多关系SQL查询实现中的关键问题,并提供了一些实际应用中的示例代码。 多关系SQL查询是SQL查询中一个非常重要...
但是,当我们构造的 SQL 语句为 select id, name from test_thread where kecheng=1 and grade=0 union select 1,password from test_admin 时,问题就来了。 五、防范措施 * 使用prepared statement:可以避免 ...
String sql = "SELECT * FROM foodinfo WHERE foodId = '" + id + "'"; ``` 当用户输入`id = '20'; (任意sql语句) --`时,实际执行的SQL语句可能会变成: ```sql SELECT * FROM foodinfo WHERE foodId = '20'; ...
在SELECT SQL子句浅析中提到了具体的例子,如查询课程的平均成绩,可以通过SELECT课程号,AVG(成绩) AS 平均成绩 FROM 来实现。这说明了SQL语句中可以使用函数来对数据进行处理和转换。 在实际应用中,编写SQL语句...
1.查询语句SELECT...FROM...;是小于2的锁 2.SELECT...FROM...FOR UPDATE;是2的锁 3.INSERT/UPDATE/DELETE;是3的锁 4.创建索引时也会产生3、4级别的锁 5.有主外键约束时UPDATE/DELETE;可能会产生4、5的锁 6.DDL语句时...
SELECT COUNT(*) FROM admin WHERE AdminUID='' or '1'='1' or '1'='0' AND AdminPWD='' or '1'='1' or '1'='0' ``` 由于SQL语句中包含了一个永远成立的条件 `1=1`,这将导致任何用户都被认为是合法的,从而可以...
使用小米号码归属地数据库,有两张表data1和...select location from data2 where id=(select outkey from data1 where id=”前7位手机号”) 创建数据库工具类 新建一个包xxx.db.dao 新建一个类NumberAddressUtils
在示例中,`n > ALL (select n from t1)` 与 `not exists (select 1 from t1 where n >= a.n)` 之间的差异在于处理NULL值的方式。前者因t1中的NULL值导致无法满足条件,而后者则会忽略子查询中的NULL值,但保留t2中...
2. 查询商品(SELECT):SELECT * FROM Products WHERE price ; 3. 更新商品(UPDATE):UPDATE Products SET price = 12.99 WHERE name = 'Pet Food'; 4. 删除商品(DELETE):DELETE FROM Products WHERE price ; ...
(SELECT a FROM tbl_name WHERE a=10 AND B=1) UNION (SELECT a FROM tbl_name WHERE a=11 AND B=2) ORDER BY a LIMIT 10; ``` 对于更复杂的查询,如结合 `GROUP BY` 和特定条件,可以这样编写: ```sql SELECT ...
select * from stu limit m, n; //m = (startPage-1)*pageSize,n = pageSize PS: (1)第一个参数值m表示起始行,第二个参数表示取多少行(页面大小) (2)m= (2-1)*10+1,n=10 ,表示 limit 11,10从11行开始,取10...
strExcel = "select * from [sheet1$]"; myCommand = new OleDbDataAdapter(strExcel, strConn); ds = new DataSet(); myCommand.Fill(ds, "table1"); return ds; } ``` 这段代码中包含了一些关键步骤: - ...
例如,对于索引(test_col1_col2_col3),查询`SELECT * FROM test WHERE col1=“1” AND clo2=“2”`将使用索引(col1,col2)进行数据匹配。 然而,如果查询条件只匹配了联合索引的部分左侧列,例如`SELECT * FROM ...
例如,SQL中的FROM子句解析,如`SELECT * FROM t1, t2, t3;`,在词法和语法分析阶段会被转换成一系列的内部数据结构,如`par_from_tv_list_struct`,用于表示表t1、t2和t3的列表。 5. **语义分析**:进一步处理解析...
- 查看当前字符集:使用`SELECT * FROM V$NLS_PARAMETERS`或`SELECT * FROM NLS_DATABASE_PARAMETERS`查询数据库的字符集信息。 - 修改初始化参数文件(init.ora或spfile):添加或修改NLS_CHARACTERSET参数,指定...
SELECT * FROM Account WHERE username = #value# </select> <!-- 更多SQL语句... --> ``` 在Java代码中,使用SqlMapClient接口来执行SQL和操作结果。例如,查询Account可以通过以下方式完成: ```java ...
例如,`SELECT * FROM SchemaName.TableName`和`SELECT * FROM TableName`会被视为同一查询,只要表结构和权限相同,就会共享同一个执行计划。 总之,SQL Server的执行计划缓存机制是为了提高查询性能和资源利用率...
(SELECT * FROM table1 RIGHT JOIN table2 ON table1.id = table2.id WHERE table1.id IS NULL); ``` 3. 内连接(INNER JOIN)示例: 在上面的例子中,当A.name等于B.name时,INNER JOIN返回A和B表的匹配记录。 ...