gpt4 book ai didi

sql - 选择时的不同联合。 ntext 数据类型错误

转载 作者:行者123 更新时间:2023-12-02 12:05:49 26 4
gpt4 key购买 nike

我对 SQL 毫无用处,但我发现自己必须为非常简单的关键词搜索编写一个存储过程。

我正在尝试对名称进行简单的选择 - 使用%keyword% - 然后对描述进行另一个选择 - 相同的关键字 - 并加入(联合)这两个选择。

但是,我收到错误:

The ntext data type cannot be selected as DISTINCT because it is not comparable.

我尝试使用UNION ALL,但在某些情况下返回重复行(取决于关键字/短语)。

我还尝试使用临时表并在其上选择不同的值,但这就是我真正感到困惑的地方。

规则:

  • 我无法更改数据类型
  • 我需要“名称”上选择的行位于“描述”上选择的行上方
  • 我只能使用 1 个存储过程,并且无法更改数据适配器,因为我将其插入到我无法控制的系统中。

更多信息:

表格列(我正在使用的重要的两个是名称和描述):

ProductId   int
Name varchar(255)
Introduction varchar(255)
Description ntext
Material ntext
Colour varchar(255)
Active bit
Dimensions varchar(255)
Photo varchar(255)
Price decimal(10, 2)
DisplayOrder int
ProductReference varchar(255)
CategoryId int
FriendlyURL varchar(1000)

SQL:

(SELECT        Products.ProductId, Name, Introduction, Description, Active, 
Material, Colour, Dimensions, Photo, Price, DisplayOrder, FriendlyURL,
ProductReference, Categories_Products_Lookup.CategoryId
FROM Products INNER JOIN
Categories_Products_Lookup ON
Products.ProductId = Categories_Products_Lookup.ProductId
WHERE Active = 1 AND tProduct.Name like '%'+@Keyword+'%')
UNION
(SELECT Products.ProductId, Name, Introduction, Description, Active,
Material, Colour, Dimensions, Photo, Price, DisplayOrder, FriendlyURL,
ProductReference, Categories_Products_Lookup.CategoryId
FROM ProductsINNER JOIN
Categories_Products_Lookup ON
Products.ProductId = Categories_Products_Lookup.ProductId
WHERE Active = 1 AND Products.Description like '%'+@Keyword+'%')

任何帮助取出不同行的表将不胜感激。另外,作为外行向我解释会很棒。 :)

最佳答案

使用“cast(Description as nvarchar(2000)) as Description”之类的内容代替 ntext 字段名称。

关于sql - 选择时的不同联合。 ntext 数据类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8850290/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com