我想做点什么
select * from X where string.IsNullOrWhiteSpace(a)
列a不是NULL
那么T-sql中的C#string.IsNullOrWhiteSpace等同于获取列a只有空格的所有行(多个空格或制表符的组合)?
解决方法
你可以试试这个:
select * from yourtable where ltrim(rtrim(yourcolumn)) = ''
这个想法是,如果修剪值留下一个空字符串,那么你首先拥有的只是空格.
你也可以这样做:
select * from yourtable where yourcolumn like ' '
请注意,我已经在sql Server 2008 R2上测试了第二个查询,并且在@ gunr2171的评论中说明它在2014年不起作用
最后,如果您有制表符,回车符或换行符,则上述操作无效.你可以做的是首先用空字符串替换这些值,然后使用第一个查询,如下所示:
select * from yourtable where ltrim(rtrim(replace(replace(replace(yourcolumn,char(9),''),char(10),char(13),''))) = ''
char(9),char(10)和char(13)分别用于制表符,换行符和回车符.