[DataAnalysis]常用sql

A、portal上的映射规则编写

一、格式转换

1、数值型转换为字符型

CASE

       WHEN s1.CAI0CID IS NULL OR s1.CAI0CID  THEN ''

       ELSE CAST(s1.CAI0CID AS VARCHAR(60))

END

2、字符型转字符型(判空即可)

COALESCE(TRIM(s1.CAN0DATEO),'')

3、CHAR型转化为DATE型

CASE WHEN s1.CAN0DATEN IS NULL OR TRIM(s1.CAN0DATEN)=''THEN '${NULLDATE}'

ELSE  TransDate(TRIM(s1.CAN0DATEN),8,'${ILLDATE}') END

4、数字型转为数字型

COALESCE(s1.CAN0SXED,0)

5、当事人鉴别信息历史中修改分组2可能需要日期型转化为字符型

二、where条件

1、字段不为空

s1.CAN0DATEN IS NOT NULL AND TRIM(s1.CAN0DATEN ) <> ''

2、两个字段不为空

TRIM(s1.CA20RELAN) <> '' AND TRIM(s2.CAN0RMK1) <> ''

B、高级数据查询

1、TOP限制结果集

SELECT TOP 3 WITH TIES GoodsName, GoodsClassName, SaleUnitPrice

   FROM Table_Goods a JOIN Table_GoodsClass b

   ON a.GoodsClassID=b.GoodsClassID

   ORDER BY SaleUnitPrice DESC

使用TOP时,应该与ORDER BY子句一起使用,这样前几名才有意义。

2、对查询结果的操作:

UNION、INTERSECT

C、建表-插入数据-修改表名

1、建表语句:

CREATE MULTISET TABLE dwPre_dev.ID_CDN

     (DN CHAR(20) TITLE ' 地区代码',

     PROVINCE CHAR(30) TITLE  '省份',

     CITY CHAR(30) TITLE '市',

     DISTRICT CHAR(30) TITLE '行政区'

      )

PRIMARY INDEX ( DN );

2、插入数据:

insert into dwpre_dev.ID_CDN values('640302','宁夏','吴忠市','利通区');

insert into dwpre_dev.ID_CDN values('640323','宁夏','吴忠市','盐池县');

insert into dwpre_dev.ID_CDN values('640324','宁夏','吴忠市','同心县');

insert into dwpre_dev.ID_CDN values('640381','宁夏','青铜峡市','');

insert into dwpre_dev.ID_CDN values('640400','宁夏','固原市','');

在excel中匹配后插入语句后直接插入。

3、修改表名:

RENAME TABLE   DWPRE_DEV.ID_CDN    TO  DWPRE_DEV.T06_PTY_ID_CDN;

 

你可能感兴趣的:(SQL)