sql中的错误(SELECT c.name, b.diagnose, substrb ( to_char( trunc( SYSDATE, 'yy' ), 'yyyymmdd' ), 0, 4 ) - substrb ( to_char( trunc( c.birthday, 'yy' ), 'yyyymmdd' ), 0, 4 ) "年龄", c.HOME_ADDRESS FROM "wjj_yy_yldsj_mzghxx" a, "wjj_yy_yldsj_mzgzrz" b, "wjj_yy_yldsj_grjbxxb" c WHERE a.ORG_REG_ID = b.register_id AND a.reg_class = 2 AND a.org_code = b.org_code AND a.personid = c.personid)
时间: 2024-03-06 07:50:18 浏览: 22
这段 SQL 查询语句存在语法错误,具体如下:
1. 在 substrb 函数中,第一个参数应该是要截取的字符串,而不是日期类型的值。因此,在 substrb 函数中应该使用 to_char 函数将日期类型的值转换为字符串类型的值,例如:
```
substrb( to_char( trunc( SYSDATE, 'yy' ), 'yyyymmdd' ), 1, 4 )
```
2. 在 substrb 函数中,第二个参数应该表示截取的起始位置,而不是要截取的长度。因此,在此处应该使用 1,而不是 0,例如:
```
substrb( to_char( trunc( SYSDATE, 'yy' ), 'yyyymmdd' ), 1, 4 )
```
3. 在 WHERE 子句中,多个条件之间应该使用逻辑运算符连接,例如使用 AND 连接,而不是使用逗号连接。
修改后的 SQL 查询语句如下:
```
SELECT
c.name,
b.diagnose,
substrb( to_char( trunc( SYSDATE, 'yy' ), 'yyyymmdd' ), 1, 4 ) - substrb( to_char( trunc( c.birthday, 'yy' ), 'yyyymmdd' ), 1, 4 ) "年龄",
c.HOME_ADDRESS
FROM
"wjj_yy_yldsj_mzghxx" a,
"wjj_yy_yldsj_mzgzrz" b,
"wjj_yy_yldsj_grjbxxb" c
WHERE
a.ORG_REG_ID = b.register_id
AND a.reg_class = 2
AND a.org_code = b.org_code
AND a.personid = c.personid;
```