Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 按错误合并全部、文本字段和顺序_Sql_Sql Server_Sql Order By_Union_Union All - Fatal编程技术网

Sql 按错误合并全部、文本字段和顺序

Sql 按错误合并全部、文本字段和顺序,sql,sql-server,sql-order-by,union,union-all,Sql,Sql Server,Sql Order By,Union,Union All,我有两个具有datedatetime、headlinevarchar和texttext等属性的表 现在我想合并这两个表并按日期时间排序。执行此操作时,我会得到以下错误: 工作表中只允许使用文本指针,不允许使用文本、ntext或图像列。查询处理器生成的查询计划要求工作表中有文本、ntext或image列 在反复尝试之后,我发现是文本属性导致了错误。但是怎么办呢?我试着投瓦查尔,但没有成功。这两个表在“文本”属性中都使用文本格式 此外,当删除订单时,它也可以正常工作。怎么办 下面是原始SQL查询,但

我有两个具有datedatetime、headlinevarchar和texttext等属性的表

现在我想合并这两个表并按日期时间排序。执行此操作时,我会得到以下错误:

工作表中只允许使用文本指针,不允许使用文本、ntext或图像列。查询处理器生成的查询计划要求工作表中有文本、ntext或image列

在反复尝试之后,我发现是文本属性导致了错误。但是怎么办呢?我试着投瓦查尔,但没有成功。这两个表在“文本”属性中都使用文本格式

此外,当删除订单时,它也可以正常工作。怎么办

下面是原始SQL查询,但您可以只回复上面的简化查询

SELECT     id, datetime, author, headline, intro, text, type, toppriority,
           secondpriority, comments, companyid, '1' source 
FROM     Table1
UNION ALL
SELECT     AutoID AS id, Dato AS datetime,
           ID COLLATE SQL_Latin1_General_CP1_CI_AS AS author, NULL AS headline, 
           NULL AS intro, Notat COLLATE SQL_Latin1_General_CP1_CI_AS AS text,
           CAST(NotatTypeID AS VARCHAR) AS type,
           NULL AS toppriority, NULL AS secondpriority, NULL AS comments,
           Selskabsnummer AS companyid, '2' source 
FROM     Table2
WHERE     (NotatTypeID = '5') OR (NotatTypeID = '6')
ORDER BY datetime DESC

提前感谢

一种方法是将union作为sup查询运行,然后对结果进行排序:

SELECT * FROM 
(
    SELECT     id, datetime, author, headline, intro, text, TYPE, toppriority,
            secondpriority, comments, companyid, '1' source 
    FROM     Table1
    UNION ALL
    SELECT     AutoID AS id, Dato AS datetime,
            ID COLLATE SQL_Latin1_General_CP1_CI_AS AS author, NULL AS headline, 
            NULL AS intro, Notat COLLATE SQL_Latin1_General_CP1_CI_AS AS text,
            CAST(NotatTypeID AS VARCHAR) AS TYPE,
            NULL AS toppriority, NULL AS secondpriority, NULL AS comments,
            Selskabsnummer AS companyid, '2' source 
    FROM     Table2
    WHERE     (NotatTypeID = '5') OR (NotatTypeID = '6')
) a
ORDER BY datetime DESC

将datetime字段强制转换为索引中的某个文本字段怎么样?请注意,使用“datetime”和“text”作为字段/别名可能会非常混乱,并可能导致潜在问题。

SQL、平台等的哪个版本。我认为该错误是SQL Server 2000特有的