/*a.首尾單引號為字串識別標識,不做轉譯用*/
select ''||to_char('crudboy')||'' from dual;--crudboy
/*b.首尾單引號裡面如果出現的單引號,並且有多個,則相連兩個單引號轉譯為乙個字串單引號*/
select '''' || to_char('crudboy') || '''' from dual;--'crudboy'
select '''''' || to_char('crudboy') || '''''' from dual;--''crudboy''
select '''''''' || to_char('crudboy') || '''''''' from dual;--'''crudboy'''
/*c.單引號一定成對出現,否者這個字串出錯,因為字串不知道哪個單引號負責結束*/
select ' '' ' ||' ' || ' '' ' || to_char('crudboy')||' '' ' ||' ' || ' '' ' from dual;-- ' ' crudboy ' '
select ' '' ' ||' ' || ' '' ' || to_char('crudboy') from dual;-- ' ' crudboy
/*''';'同時滿足a.b*/
select ' '' ' ||' ' || ' '' ' || to_char('crudboy')||''';' from dual;-- ' ' crudboy';
oracle語句拼接應該記住的三點,同時應該靈活運用/*''';'同時滿足a.b*/ select ' '' ' ||' ' || ' '' ' || to_char('crudboy')||''';' from dual;-- ' ' crudboy';
轉譯與標識的完美結合,二者同時存在。
寫在最後
紙上得來終覺淺,絕知此事要躬行
Oracle中動態SQL拼接
1.直接用單引號,單引號的使用是就近配對,即就近原則。從第二個單引號開始被視為轉義符 v sql insert into bjtongrentangtemptb select distinct h.sellerid,h.sellercode,h.sellername,h.prodcode,h.pro...
拼接SQL語句 Oracle
因為專案需要,有一段select語句中的列,想實現可配置,因此就需要用for迴圈。但嘗試之後發現select語句中是不允許放for迴圈的。需求 select column1,column2,column3,column41,column42,column43,column44.from table1...
SQL中concat 字段拼接函式
concat函式,可以將多個字段拼接成乙個字段,如果有乙個值是null,返回的也是null concat ws函式,可以將多個字段拼接成乙個字段,並且指定分隔符 group concat 函式,將指定欄位的值列印在一行,預設 分割。此函式常用與分組之後 這樣的資料並不是我們想要的 在sparksql...