日期:2014-05-17 浏览次数:20515 次
/*
一、有两个判断:
1.判断一个数是否为正整数
2.判断一个数是否为正小数(包含正整数,小数位数不限,只能包含数字和小数点)
都可包含0
(上面的简单描述为分别找出表某列为正整数,正小数的记录)
*/
select * from [表名]
where ([字段]>0 and [字段]%1.0=0) -- 正整数
and ([字段]>0) -- 正小数(包含正整数,小数位数不限,只能包含数字和小数点)
/*
二、一个表有多列,每列的每行都有可能是NULL(除主键),我现在要更新这个表中所有为NULL的为空('')
有什么好方法?
以前只知道一列一列判断更新,想知道有没有批量的方法,毕竟表多列多,一列一列要写N多语句。
*/
update [表名]
set [字段1]=isnull([字段1],''),
[字段2]=isnull([字段2],''),
[字段3]=isnull([字段3],''),
[字段4]=isnull([字段4],''),
.
.
.
IF object_id('tempdb..#temp') IS NOT NULL DROP TABLE #temp
go
CREATE TABLE #temp (id INT NOT NULL PRIMARY KEY, field1 FLOAT, field2 DECIMAL(10,2))
INSERT #temp
SELECT 1, 2.1, 10.8 UNION ALL
SELECT 2, 2.0, 10
--1.判断一个数是否为正整数
SELECT * FROM #temp
WHERE field1 >= 0 AND FLOOR(field1) = field1
--2.判断一个数是否为正小数(包含正整数,小数位数不限,只能包含数字和小数点
SELECT * FROM #temp
WHERE field1 >= 0 AND FLOOR(field1) <> field1
--#3.更新这个表中所有为NULL的为空
DECLARE
@tablename NVARCHAR(255),
@colname NVARCHAR(255),
@sql NVARCHAR(MAX)
DECLARE cursor_name CURSOR STATIC LOCAL FORWARD_ONLY READ_ONLY
FOR
SELECT
tablename = a.name,