摘要:select TableName = O.name,
OWNER = USER_NAME(O.uid),
FieldId = C.colid,
FieldName = C.name,
FieldType = T.name
+ CASE
WHEN T.name IN (N'decimal',N'numeric')
THEN N'(' + CAST(C.prec as varchar) + N',' + CAST(C.scale as varchar) + N')'
WHEN T.name = N'float' OR T.name like N'%char'
OR T.name like N'%binary'
THEN N'(' + CAST(C.prec as varchar) + N')'
ELSE N''
END,
阅读全文
03 2012 档案
摘要:新个税计算公式
1500 4500 9000 35000 55000 80000 =45% 13505
阅读全文
摘要:FROM T1,T2是ANSI SQL-89的旧语法,用逗号分隔FROM子句出现的表名,没有JOIN关键字,也没有ON子句,它只支持交叉联接和内联接,不支持外联接;如果没有指定联接条件就是一个交叉联接。
新的ANSI SQL-92去掉了逗号,引入了JOIN和ON,支持交叉联接、内联接和外联接。
优化器为使用上面两种语法的语句生成了相同的执行计划,性能是一样的。
阅读全文
摘要:在SQL中谓词(逻辑表达式)的可能取值有TRUE、FALSE和UNKNOWN,这就是所谓的三值逻辑。UNKNOWN逻辑通常出现在涉及NULL值的逻辑表达式中,NULL代表一种缺失的值,当把一个缺失的值和另一个值(这个值也可能是NULL)进行比较时,逻辑结果总是UNKNOWN。查询筛选器(ON WHERE HAVING)都把UNKNOWN当作FALSE处理,使筛选器取值为UNKNOWN的行会被排除在结果集之外。而 CHECK结束中的UNKNOWN被当作FALSE对待,如表中一个CHECK结束要求某列大于0,向该列插入NULL值也会成功,因为 NULL>0等于UNKNOWN。在筛选器中比较两
阅读全文