ORACLE sql语法的表示问题

来源:互联网 发布:mac py终端指的是什么 编辑:程序博客网 时间:2024/04/30 11:14
  • 情景一:连接情况下,||' '||可以添加我们要表示的字符和文字,但是如果字符是单引号又该怎么表示
    解决方法:用两个单引号表示单引号。
    如:select ename||”’s employee salary is ‘||sal emp_sal from emp1;

上面语句的第2 3个单引号,表示的就是字符’本身
这里写图片描述
结果显示确实含有单引号,成功。

  • 情景二:在语句 LIKE 中,怎么表示%和_
    正如我们知道的,语句
    SQL>SELECT ENAME ,JOB FROM EMP1 WHERE JOB LIKE 'S%';
    会将JOB以字母 S 开头的员工信息全部列出
    但是当员工的JOB含有% _ (如下)又怎么解决呢?
ENAME                JOB-------------------- --------------------MENG                 SALERJOHN                 SALE%_MANJAN                  SALE%_/_MANELLEN                CLERKJACK                 CLERKMARK                 MANAGERSMITH                MANAGER

解决方法:采用转义字符,

SQL> SELECT ENAME ,JOB FROM EMP1 WHERE JOB LIKE 'SALE\%%' escape '\';结果:ENAME                JOB-------------------- --------------------JOHN                 SALE%_MANJAN                  SALE%_/_MAN
语句 SELECT ENAME ,JOB FROM EMP1 WHERE JOB LIKE 'SALE\%%' escape '\';前一个 \% 表示转义字符,即该百分号就是字符串中的普通字符%,而不是修饰符了,后一个%仍然是修饰符%,表示后面还有多个字符。关键是要在后面加 escape '\',当然反斜杠\也可以换成其他字符,只要前后一致即可。不过反斜杠比较常用。下划线_同理,用转义字符。
  • 在sqlplus环境下,怎么偷懒,少敲代码?

    - 第一步:

    可以查看缓冲区,查看上一条输入的语句:L
    例如:

SQL> L      1  SELECT ENAME ,JOB ,SAL FROM EMP1      2* WHERRE ENAME='MENG'
在第二行出现的*表示该行为当前行,想要将当前行改为第一行的话只要输入数字1即可。- 第二步:改正正如我上面第二句的 WHERE写错了,那么修改格式为: N text(N为行数,text为修改后的内容)
SQL> 2 WHERE ENANME='MENG'
重新查看以确认:
SQL> L
结果为:
1  SELECT ENAME ,JOB ,SAL FROM EMP12  WHERE ENAME='MENG'
可见,已经修改了过来。

如果想要改正的地方只是当前行中的某个单词,那么可以使用C[HANGE]进行替换,
具体格式:C /原来的文本/现在的文本
如:

SQL> C /MENG/JACK  2* where ename='JACK'

可以看到MENG 已经替换成了JACK

 - 第三步:执行那么怎么执行呢。只需要输入 / 即可
SQL> /  结果:ENAME                JOB                         SAL-------------------- -------------------- ----------MENG                 SALER                      4000
所以输入出错了,不要着急着重新输入,改改就能用了。
0 0
原创粉丝点击