这是我运行的查询
select CAST(PageGuid as varchar(max)) + ',' + CAST(TenantGuid as varchar(max)) + '/' + CAST(OriginalFileGuid as varchar(max))
from Pages
这对tsql有效,但是当使用bsqldb运行时,我得到的是空行而不是结果。
我通过运行其他简单的查询来确认bsqldb可以工作。为什么这个不起作用?
这是详细的输出
bsqldb:163: Verbose operation enabled
bsqldb:212: Query:
select CAST(PageGuid as varchar(max)) + ',' + CAST(TenantGuid as varchar(max)) + '/' + CAST(OriginalFileGuid as varchar(max)) from Pages
bsqldb:186: dbsqlsend(): OK
bsqldb:194: dbsqlok(): OK
bsqldb:289: calling dbresults: OK
Result set 1
Freeing prior allocations
Allocating buffers
Allocating compute buffers
Metadata
col name source type size varies
------ ------------------------------ ------------------------------ --------------- ------ ------
1 text 64512 1
Data
Retrieving return status... none
11084 rows affected
Retrieving output parameters... none
bsqldb:615: dbresults() returned NO_MORE_RESULTS (2):
bsqldb:212: Query:
我使用的是FreeTDS 0.64RC1、FreeBSD 8和Server 2008
发布于 2011-08-26 11:00:31
我怀疑其中一个值为NULL,因此整个表达式串联为NULL。
你需要这个
CAST(ISNULL(PageGuid, '') as varchar(max)) + ',' +
CAST(ISNULL(TenantGuid, '') as varchar(max)) + '/' +
CAST(ISNULL(OriginalFileGuid, '') as varchar(max))
https://dba.stackexchange.com/questions/5069
复制相似问题