帮我看看下面的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'
相关问答:
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jas ......
我一个项目,有个插入操作,具体是这样的:
我有进货信息表。在出货时选择相应的进货信息,输入数量,选择部门后,点保存按钮,由于网络延时,点一下没有反映,于是用户就又点一下,导致一次插入了两条记录:
例:
......
我想查询出每天数据的最大的一个值。表的格式如下
表名: hisdata
字段 编号 值 状态 时间
Id value state dattime
101 32.3 0 ......
求个vb中的sql语句的写法,次sql语句的用法是分页程序
我写的如下:其中A是用来接收每页显示的记录的条数,B是用来接收显示的当前的页面.
sqltext="select top A * from log where id not in(select top ( ......
查询学生平均成绩及其名次
SELECT 1+(SELECT COUNT( distinct 平均成绩)
from (SELECT S#,AVG(score) AS 平均成绩
from SC&n ......