1
我试图获取特定搜索的所有值,而不管字段大小写。在我们的SQL Server数据库区分大小写的情况下,我不想在可能的情况下更改它。SQL在字段中搜索具有文本数据类型的字段,而不管字段的值是什么
如果我这样做,包括LOWER()函数如下SELECT语句
SELECT COUNT(blogpostId) as blogpostcount
FROM blogposts
WHERE stateId = '1'
AND blogId = '20'
AND LOWER(blogpostContent) LIKE '%test%'
它抛出来,说错误
参数的数据类型的文本是较低的函数的参数1无效。
blogpostContent
列的数据类型为text
。如果我将其更改为nvarchar
,则此功能有效,但nvarchar
只允许最多255个字符,因此我需要更多。
是否有无论如何检查文本字段中的结果,而不考虑外壳?
在此先感谢
http://msdn.microsoft.com/en-us/library/ms143432.aspx说nvarchar的最大长度是2^31-1(几乎每个DBMS变量可以有数千个字符长)。 – Viruzzo
'NVARCHAR(MAX)'允许**高达2 GB **的文本! (在SQL Server 2005和更新版本中可用)这就是Tolstoj的*战争与和平* - 几次了!这还不够吗? 'TEXT'和'NTEXT'从SQL Server 2005开始被弃用,不应该使用 - 也因为这个问题:它们不支持很多字符串函数... –
nvarchar应该允许4000个字符,而不是255.对于SQL Server 2005+,你可以使用nvarchar(max)。 –