易截截图软件、单文件、免安装、纯绿色、仅160KB

再谈 Sql 两行变一行 实例

要求: 按 lct1, lct2  排序后的前两条纪录,显示为下列结果:
item_cd1   item_cd2            lct
01             a                 A01-3  B01-1
建表准备:
IF EXISTS (SELECT TABLE_NAME from INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'm_lct_service')
DROP TABLE m_lct_service
GO
CREATE TABLE m_lct_service (
 item_cd1 nvarchar(5)  NOT NULL 
 ,item_cd2 nvarchar(10)  NOT NULL 
 ,seq_no  int   NOT NULL 
 ,lct1  nvarchar(3)  NOT NULL 
 ,lct2  nvarchar(3)  NOT NULL 
 ,stk_qty numeric(15,4) 
 ,ins_emp_cd nvarchar(4)  NOT NULL 
 ,ins_date datetime  NOT NULL 
 ,upd_emp_cd nvarchar(4)  NOT NULL 
 ,upd_date datetime  NOT NULL 
 ,CONSTRAINT pk_m_lct_service PRIMARY KEY (
    item_cd1
    ,item_cd2
    ,seq_no
    ,lct1
    ,lct2
    )
)
GO
数据准备:
item_cd1 item_cd2 seq_no lct1 lct2 stk_qty ins_emp_cd ins_date upd_emp_cd upd_date
01 a 1 A01 3 20.0000 fan 2010-01-02 00:00:00.000 fan 2010-01-02 00:00:00.000
01 a 2 B01 1 20.0000 fan 2010-01-02 00:00:00.000 fan 2010-01-02 00:00:00.000
01 a 3 B01 4 20.0000 fan 2010-01-02 00:00:00.000 fan 2010-01-02 00:00:00.000
实际Sql:
select item_cd1,item_cd2,
case  when (AA <> BB)
then AA + ' ' + BB
else AA
end as lct
from(
select item_cd1,item_cd2,min(lct) as AA,


相关文档:

内联 SQL PL(Inline SQL PL)

----start
    通常SQL PL只能使用在存储过程、触发器、用户自定义函数中,但是有一部分SQL PL也可以直接在命令行编辑器或脚本中使用,它们是:
DECLARE <variable>
SET
CASE
FOR
GET DIAGNOSTICS
GOTO
IF
RETURN
SIGNAL
WHILE
ITERATE
LEAVE 
以下SQL PL不能直接在命令行编辑器或 ......

三种sql分页方法

表中主键必须为标识列,[ID] int IDENTITY (1,1)
1.分页方案一:(利用Not In和SELECT TOP分页)
语句形式: 
SELECT TOP 页记录数量 *
from 表名
WHERE (ID NOT IN
  (SELECT TOP (每页行数*(页数-1)) ID
  from 表名
  ORDER BY ID))
  ORDER BY ID
//自己还可以加上一些查询 ......

防止SQL注入

最近看到很多人的网站都被注入js,被iframe之类的。非常多。
本人曾接手过一个比较大的网站,被人家入侵了,要我收拾残局。。
1.首先我会检查一下服务器配置,重新配置一次服务器安全,可以参考
http://hi.baidu.com/zzxap/blog/item/18180000ff921516738b6564.html
2.其次,用麦咖啡自定义策略,即使网站程序有漏洞 ......

SQL递归查询数据

Tree表如下:  
    NodeId   ParentId     NodeName  
    0           -1              &nb ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号