SQL点点滴滴_聪明的小写法(持续更新中)
1、生成序列号
SELECT number + 1 ,number FROM master..spt_values WHERE type = 'P' ORDER BY number
说明: master..spt_values相当于一个数字辅助表,在SQL中主要用到number这个字段。经常用于计算连续的日期等。
SELECT CONVERT(varchar(10),DATEADD(DAY,number,GETDATE()),120) AS [日期] FROM MASTER..spt_values WHERE TYPE='P' AND number>0
2、通过变量获取数据表的所有字段名
DECLARE @STRSQL VARCHAR(2000)
SET @STRSQL=''
SELECT @STRSQL=NAME+','+@STRSQL FROM SYSCOLUMNS WHERE OBJECT_NAME(ID)='tb_o_card_deposit'
PRINT LEFT(@STRSQL,LEN(@STRSQL)-1)
3、查询数据库中的表及列
select * from information_schema.columns
说明:当前数据库中当前用户可以访问的每一个列在该视图中占一行。INFORMATION_SCHEMA.COLUMNS 视图以 sysobjects、spt_data type_info、systypes、syscolumns、syscomments、sysconfigures 以及 syscharsets 系统表为基础。
4、中文排序混乱
select col1, col2 from table order by col1 collate Chinese_PRC_CI_AS
说明:在SQL语句中指定排序列的collation为 Chinese_PRC_CI_AS 。
排序规则由两部分构成,比如Chinese_PRC_CI_AI_WS,前半部分是指本排序规则所支持的字符集,如Chinese_PRC指对大陆简体字UNICODE的排序规则。
后半部分含义如下:
_BIN 指定使用向后兼容的二进制排序顺序。
_BIN2 指定使用SQL Server2005中引入的码位比较语义的二进制排序顺序。
_Stroke 按笔划排序
_CI(CS) 是否区分大小写,CI不区分,CS区分。
_AI(AS) 是否区分重音,AI不区分,AS区分。
_KI(KS) 是否区分假名类型,KI不区分,KS区分。
_WI(WS) 是否区分全半角,WI不区分,WS区分。