如何筛选列?
问题描述:
使用SQL Server 2005如何筛选列?
我要过滤的列,其中列值不等于数字
表1
Status
010203
Absent
231415
Ramesh
Suresh
...,
我想从状态栏只得到名称,如
试过查询
Select Status from table1 where status <> 'absent' and status <> numecivalue
如何提到的状态<> numericvalue
期望输出
Table
Status
Ramesh
Suresh
...,
需要查询的帮助。
答
用途:
SELECT t.status
FROM table1 t
WHERE t.status != 'absent'
AND ISNUMERIC(t.status) != 1
参考:ISNUMERIC
答
SELECT
status
FROM
table1
WHERE
status <> 'absent' AND
ISNUMERIC(status) <> 1
答
看一看这个weblos ..............
CREATE FUNCTION dbo.IsNumericEx(@value nvarchar(max))
RETURNS BIT
AS
BEGIN
DECLARE @isInt BIT
SELECT @isInt = 1
WHERE @value NOT LIKE '%[^0-9.-]%'
AND LEN(REPLACE(@value, '.', '')) >= LEN(@value) - 1
AND CHARINDEX('-', @value) IN (0, 1)
AND CHARINDEX('-', @value, 2) = 0
RETURN ISNULL(@isInt, 0)
END
GO
DECLARE @t1 TABLE (title varchar(20))
INSERT INTO @t1
SELECT '123d456' UNION ALL
SELECT '12 3456' UNION ALL
SELECT '123456' UNION ALL
SELECT '1234-56' UNION ALL
SELECT '123456-' UNION ALL
SELECT '-123456' UNION ALL
SELECT '-123-456' UNION ALL
SELECT 'dddfaf56' UNION ALL
SELECT '5532.673' UNION ALL
SELECT '5532673.' UNION ALL
SELECT '.5532.673'
SELECT *
FROM @t1
WHERE dbo.IsNumericEx(title) = 0
SELECT *
FROM @t1
WHERE dbo.IsNumericEx(title) = 1
GO
DROP FUNCTION dbo.IsNumericEx
如果您发布的代码,无论是T-SQL或什么的,请使用编辑器工具栏按钮的代码(010 101),以它们格式化为代码,使他们很好的可读性,将得到语法突出! – 2009-10-29 06:01:51