上述OFFSET显示语法错误
时间: 2024-02-12 10:04:32 浏览: 40
非常抱歉,是我疏忽了,OFFSET 和 FETCH NEXT 是 SQL Server 2012 以后版本引入的分页功能,我之前的 SQL 语句可能不支持早期版本的 SQL Server。下面是一个更通用的 SQL 语句,可以在 SQL Server 2005 及以上版本中使用:
```
SELECT TOP 10
CONVERT(VARCHAR(8), NEWID()) AS 病案号,
CASE ABS(CHECKSUM(NEWID()) % 2) WHEN 0 THEN '张三' ELSE '李四' END AS 姓名,
CASE ABS(CHECKSUM(NEWID()) % 2) WHEN 0 THEN '男' ELSE '女' END AS 性别,
CONVERT(VARCHAR(8), ABS(CHECKSUM(NEWID()))) AS 省份证号,
DATEADD(day, -(ABS(CHECKSUM(NEWID())) % 30), GETDATE()) AS 入院时间,
CONVERT(VARCHAR(8), ABS(CHECKSUM(NEWID()))) AS 病床号,
CASE ABS(CHECKSUM(NEWID()) % 2) WHEN 0 THEN 'A病房' ELSE 'B病房' END AS 病房,
CASE ABS(CHECKSUM(NEWID()) % 2) WHEN 0 THEN '单人病房' ELSE '双人病房' END AS 病房类型,
'内科病区' AS 所属病区
FROM sys.objects
WHERE type = 'P'
ORDER BY NEWID();
```
这个 SQL 语句使用了 TOP 10 关键字来获取前 10 条记录,因此不需要 OFFSET 和 FETCH NEXT。