我有一个简单的查询返回记录,其中" column2" > 0
这是数据库中的数据
Column1 Column2
1 123456789
2 123456781
3 13-151-1513
4 alsdjf
5
6 000000000
她是查询
select column1, replace(a.Payroll_id,'-','')
from table1
where isnumeric(column2) = 1
我想退回以下内容:
Column1 Column2
1 123456789
2 123456781
3 131511513
这意味着,当列为空(或为空)时,我不会选择任何记录,如果它不是整数,则不会返回一行,并且会退出“ - ”。 ',并且不会显示第6行,因为它全部为0。
我该怎么做?
答案 0 :(得分:3)
我认为你可以使用这样的东西:
createNewUser(name,password,age)
然后你可以为空,NULL,0等应用验证
答案 1 :(得分:1)
如果您使用的是SQL2012或更高版本,您还可以使用在解析时更具选择性的TRY_PARSE
。如果无法转换记录,此函数将返回NULL
。您可以像这样使用它:
CREATE TABLE #temp
(
ID INT IDENTITY ,
VALUE VARCHAR(30)
)
INSERT INTO #temp
( VALUE )
VALUES ( '1213213' ),
( '1213213' ),
( '121-32-13' ),
( 'ASDFASF2123' ),
( '0000000' )
SELECT ParsedValue
FROM #temp
CROSS APPLY ( SELECT TRY_PARSE(
Value AS INT ) AS ParsedValue
) details
WHERE ParsedValue IS NOT NULL
AND ParsedValue>0