帮我看看下面的sql语句 - MS-SQL Server / 基础类
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[Test]
@sort_expression varchar(255)='Id',
@ascending varchar(20) = 'false'
AS
BEGIN
WITH
Found AS
(
select * from tablename
),
Rows AS
(
SELECT ROW_NUMBER() OVER
(
ORDER BY CASE WHEN @ascending = 'true' THEN
CASE @sort_expression
WHEN 'Id' THEN r.id
WHEN 'Name' THEN r.name
--WHEN 'Type' THEN r.type
WHEN 'ExpiryDate'THEN r.expiry_date
END
END ASC,
CASE WHEN @ascending = 'false' THEN
CASE @sort_expression
WHEN 'Id' THEN r.id
WHEN 'Name' THEN r.name
--WHEN 'Type' THEN r.type
WHEN 'ExpiryDate'THEN r.expiry_date
END
END DESC
) AS row_number, r.* from Found r
)
SELECT * from Rows
END
当我运行
exec Test 'id','true'
出错
Error converting data type varchar to float.
应该是在 WHEN 'Name' THEN r.name 这里
name字段类型是nvarchar
请问怎么改
SQL code:
CASE @sort_expression
WHEN 'Id' THEN rtrim(r.id)
WHEN 'Name'
相关问答:
可能因为工作的原因 接触数据库这块比较少,之前都是做程序这块,数据库这块都有专门的人来做 分工都很明细 所以对数据库这一块完全不了解。前段时间 去面试了几家公司 几乎都是在数据库这块挂掉的 连个简单的SQ ......
现在有两张表:文章主表A(articleId,articleTitle),文章评论表B(commentId,articleId,commentTitle)
现在我想实现这样的功能:列出文章列表,其中每篇文章标题下面列出此文章的前2个文章评论,请问sql语句怎么写啊 ......
下面是XML初始文件内容
XML code:
<upd:Update xmlns:lar="http://schemas.microsoft.com/msus/2002/12/LogicalApplicabilityRules" xmlns:cmd="http://schemas.microsoft.com/msus/2002/12/Up ......
请教高手:
以下是数据库中的三条记录,英文为字段名称
id planname TaskBeginTime Status
329 2010年03 ......