我有TBV功能。这个函数得到了几个输入参数。
CREATE FUNCTION [dbo].[fn]
(
@id NVARCHAR(50),
...
...
)
例如,我想检查 @id 是否为空且不是空格。
我正在叮叮当当地做这个
SELECT * FROM [FN_Table]() WHERE
COALESCE(@Id,'') !='' AND NULLIF(@id,'') !=null AND @Id=Id
但这是一种乏味的方式,我确信在SQL中只有newbbe并且不了解最佳实践会有更优雅和有效的方式。
答案 0 :(得分:1)
如果您希望id
不为空或空格,可以使用ltrim()
:
where ltrim(@id) <> ''
这也会隐式地检查NULL
。
我不确定你为什么要与零进行比较。根据您的问题,这不是必要的。如果您传入的是数字,则不应使用字符串类型。
答案 1 :(得分:0)
试试这个,查看ISNULL
,然后获取BlankSpace Character Index
SELECT
CASE WHEN ISNULL(@ID,'')='' THEN 1
WHEN CHARINDEX(' ',@ID) >0 THEN 1
ELSE 0
END