SQL |另类报价运算符
这篇文章是 SQL 连接运算符的延续。
现在,假设我们想在字面量值中使用撇号,但我们不能直接使用它。
请参阅不正确的代码:
选择 id、first_name、last_name、salary、
名字||'有薪水'||薪水
作为“新”从一个
所以上面我们得到了错误,因为Oracle服务器认为第一个撇号是开始字面量,第二个撇号是结束字面量,那么第三个撇号呢???。这就是我们得到错误的原因。
替代报价运算符( q )
:
为了克服上述问题,Oracle 引入了一种称为替代报价运算符( q) 的运算符。
让我们看一个例子:
Query that uses Alternative Quote Operator(q)
SELECT id, first_name, last_name, salary,
first_name||q'{ has salary's }'||salary
AS "new" FROM myTable
Output:
See, we are able to use apostrophe in the
new column as a literal value of myTable
ID FIRST_NAME LAST_NAME SALARY new
3 Shane Watson 50000 Shane has salary's 50000
1 Rajat Rawat 10000 Rajat has salary's 10000
2 Geeks ForGeeks 20000 Geeks has salary's 20000
3 MS Dhoni 90000 MS has salary's 90000
在上面看到, q'{表示我们的字面量值的开始,然后我们使用}'表示我们的字面量值的结束。所以看到这里我们很容易在我们的字面量值中使用撇号(意味着我们很容易在薪水中使用's )没有任何错误,这就是为什么我们得到输出,因为 Rajat 的薪水是50000。
因此,要在字面量中使用撇号,我们首先需要使用q ,它被称为替代引号运算符,然后我们需要使用撇号' ,然后我们需要使用分隔符,在分隔符之后我们写下我们的字面量值,当我们完成编写我们的字面量值然后我们需要关闭我们之前和之后打开的分隔符,我们需要再次放置一个撇号,因此我们可以在我们的字面量值中使用撇号。这个概念被称为替代报价运算符(q)。
我们可以使用任何字符,例如{ 、 < 、 ( 、 [ 、 !或任何字符作为分隔符。这些字符被称为分隔符。
1 另一个例子
:
不使用引用运算符:
Here we get Error since we are using apostrophe in our literal value directly.
Error code below:
SELECT id, name, dept, name||' work's in '||dept||'
department' AS "work" FROM myTable2
使用引用运算符:
SELECT id, name, dept, name||q'[ work's in ']'||dept||'
部门的“工作”来自 myTable2
Output:
See, we are able to use apostrophe in the
work column as a literal value of myTable2
ID NAME DEPT work
1 RR Executive RR work's in 'Executive department
2 GFG HR GFG work's in 'HR department
3 Steve Sales Steve work's in 'Sales department
4 Bhuvi CSE Bhuvi work's in 'CSE department
在上面看到, q'[表示我们的字面量值的开始,我们使用]'表示我们的字面量值的结束。所以看到这里我们很容易在我们的字面量值中使用了撇号(意味着我们很容易在工作中使用's )没有任何错误,这就是为什么我们在执行部门得到输出为 RR work's 。]
上面我们使用[作为分隔符,所以它不是使用分隔符的限制意味着我们可以使用任何字符作为分隔符。
参考:
关于替代报价运营商,
在线执行 SQL 查询