日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle串连接,Oracle中串连接符||的使用心得(个人见解)

發布時間:2024/7/5 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle串连接,Oracle中串连接符||的使用心得(个人见解) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Oracle中可以用串連接符||將若干個串連在一起(Oracle中也可以使用concat函數,但是它只最多連接兩個串。而MySQL中concat可以連接多個串。在SQL Server中則使用+進行串連接)。

當然,這兩個串可以是列名或字面值。例如:

select province || city from China;

這樣,查詢出的結果就類似:“遼寧丹東”,將列或串連接起來中間是沒有空格的。當然為了閱讀起來更方便,可以利用逗號或空格將province和city列連接起來,形成類似“遼寧,丹東”的效果: select province || ',' || city from China;

以上是比較正統的用法。

---------------------我是分割線----------------------------

下面是我發現的旁門左道。

最近寫一個查詢的時候,為了偷懶,想用一條語句來查詢一個或多個列(當然,前提是這多個列的類型是一樣的)中含有某一字符(即模糊查詢)的記錄。例如表T中有a、b、c、d四個列,想要將a、b、c中任意一個列或多個列中含有字符“x“的記錄查出來,可以使用如下語句:

select * from T where a || b || c like '%x%';

但個人感覺這種用法其實并不是太好,只是有時候可以偷偷懶^_^

||究竟是如何工作的不太理解,只有根據自己的實驗得到一個猜想:

像上面那個例子,應該是吧a、b、c三列的值連在了一起,然后查找‘%x%’這樣的字符。換句話來說,如果某一條記錄中abc三列的值分別為”rs“、”tx“、”yz“連在一起是”rstxyz“,而你的查詢條件是'%xy%'(想查a、b、c中一個列或多個列是否含有”xy“)。本來是沒有的,但是像類似上面例子那樣使用的話,就會查到有這樣的記錄。這點我是試過的,的確會出現這樣的情況。

當然,上面的情況也可以避免,可以在連接符||中間加上一些分隔標志,這些分隔標志必須是列中不存在的,如”,“,即 select * from T where a || ',' || b || ',' || c like '%xy%';

同時,這種用法不適合條件是”=“的精確查詢,因為a、b、c三列的值連在了一起會成為”rstxyz“,如果使用如下語句: select * from T where a || b || c = 'rstxyz';

就相當于在”rstxyz“中查找(而不是在a、b、c的一個或多個列中查找)。這樣,本來在a、b、c中一列或多列中沒有含有”rstxyz“,但是用上面的語句卻可以查詢出記錄。而如果使用這樣的語句 select * from T where a || b || c = 'tx';

按本意來說的話是應該查詢到記錄的,但是上面的語句卻無法查詢出來。

總之,這樣的用法有偷工減料的嫌疑,還是少用為好。

總結

以上是生活随笔為你收集整理的oracle串连接,Oracle中串连接符||的使用心得(个人见解)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。