- 尝试使用ORDER by by 2 SUBSTITUTION VARIABLE对数据进行排序,但不能正常工作,问题包含在主题下方。
表:用户
CREATE TABLE users
(
user_id VARCHAR(5) ,
user_name VARCHAR(30),
CONSTRAINT pk_users PRIMARY KEY(user_id)
)
/
INSERT INTO users
VALUES ('U01','User1')
/
INSERT INTO users
VALUES ('U02','User2')
/
表:staffaccount
CREATE TABLE staffaccount
(
staffaccount_id VARCHAR(5) ,
user_id VARCHAR(5) ,
CONSTRAINT pk_staffaccount PRIMARY KEY(staffaccount_id),
CONSTRAINT fk_staffaccount1 FOREIGN KEY (user_id) REFERENCES users(user_id)
)
/
INSERT INTO staffaccount
VALUES ('STF01','U01')
/
INSERT INTO staffaccount
VALUES ('STF02','U02')
/
表:位置
CREATE TABLE location
(
location_id VARCHAR(5),
location_name VARCHAR(25) NOT NULL,
CONSTRAINT pk_location PRIMARY KEY(location_id)
)
/
INSERT INTO location
VALUES ('LOC01','Staff Toilet')
/
INSERT INTO location
VALUES ('LOC02','Staff Office')
/
INSERT INTO location
VALUES ('LOC03','Staff Meeting Room')
/
INSERT INTO location
VALUES ('LOC04','Staff Hall')
/
表:bookingstaff
CREATE TABLE bookingstaff
(
staffaccount_id VARCHAR(5),
location_id VARCHAR(5),
timebooked TIMESTAMP,
usages VARCHAR(25)
)
/
INSERT INTO bookingstaff
VALUES ('STF01','LOC01',TIMESTAMP'2018-01-01 10:00:00','Pee')
/
INSERT INTO bookingstaff
VALUES ('STF02','LOC02',TIMESTAMP'2018-01-02 10:00:00','Writing')
/
INSERT INTO bookingstaff
VALUES ('STF01','LOC03',TIMESTAMP'2018-01-05 10:00:00','Meeting')
/
INSERT INTO bookingstaff
VALUES ('STF02','LOC04',TIMESTAMP'2018-01-12 10:00:00','Dancing')
/
INSERT INTO bookingstaff
VALUES ('STF01','LOC02',TIMESTAMP'2018-02-01 10:00:00','Writing')
/
INSERT INTO bookingstaff
VALUES ('STF02','LOC03',TIMESTAMP'2018-02-02 10:00:00','Meeting')
/
INSERT INTO bookingstaff
VALUES ('STF01','LOC02',TIMESTAMP'2018-02-15 10:00:00','Writing')
/
INSERT INTO bookingstaff
VALUES ('STF02','LOC04',TIMESTAMP'2018-03-01 10:00:00','Dancing')
/
INSERT INTO bookingstaff
VALUES ('STF01','LOC03',TIMESTAMP'2018-03-02 10:00:00','Meeting')
/
以上是我的所有表查询,尝试使用替换变量 显示数据。代码
SELECT u.user_name,l.location_name,b.usages,to_char(cast(b.timebooked as date),'DD-MM-YYYY')as "DATE"
FROM staffaccount s
JOIN bookingstaff b
ON b.staffaccount_id = s.staffaccount_id
LEFT OUTER JOIN users u
ON u.user_id= s.user_id
LEFT OUTER JOIN location l
ON l.location_id= b.location_id
WHERE l.location_name LIKE '%Staff%'
AND timebooked
BETWEEN date&
AND date&
使用代码,这是结果。 (第一次替换 变量:'2017-01-01',第二个替换变量:'2018-02-10')
http://prntscr.com/iztftx<结果显示myOra
但是当我尝试按用法添加ORDER时,它会显示错误。
错误:
绝不允许我输入第二个替换变量
答案 0 :(得分:0)
应该是& var而不是var&
WHERE l.location_name LIKE '%Staff%'
AND timebooked BETWEEN &date AND &date
ORDER BY usages
以获得更好的可读性
WHERE l.location_name LIKE '%Staff%'
AND timebooked BETWEEN &date1 AND &date2
ORDER BY usages