mmc*_*ynn 83 t-sql sql-server sql-server-2005
其中[CastleType]在SQL Server中设置为数据类型"text",查询为:
SELECT *
FROM [Village]
WHERE [CastleType] = 'foo'
Run Code Online (Sandbox Code Playgroud)
我收到错误:
TEXT和VARCHAR数据类型在等于运算符中不兼容.
我是否可以使用WHERE子句查询此数据类型?
Mar*_*ith 95
你可以用LIKE而不是=.如果没有任何通配符,这将具有相同的效果.
DECLARE @Village TABLE
(CastleType TEXT)
INSERT INTO @Village
VALUES
(
'foo'
)
SELECT *
FROM @Village
WHERE [CastleType] LIKE 'foo'
Run Code Online (Sandbox Code Playgroud)
text已弃用.更改为varchar(max)将更容易使用.
数据可能有多大?如果您要进行相等比较,理想情况下您希望将此列编入索引.如果您将列声明为宽于900字节的任何值,则这是不可能的,但您可以添加可用于加速此类查询的计算checksum或hash列.
Emm*_*apa 18
请试试这个
SELECT *
FROM [Village]
WHERE CONVERT(VARCHAR, CastleType) = 'foo'
Run Code Online (Sandbox Code Playgroud)
小智 5
如果您不能将表本身上的数据类型更改为使用varchar(max),则将查询更改为:
SELECT *
FROM [Village]
WHERE CONVERT(VARCHAR(MAX), [CastleType]) = 'foo'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
181320 次 |
| 最近记录: |