sql中去掉欄位的空格或多餘字元
情景:
有一個表資料,插入的資料欄位中含有空格,以至於陣列分組時出分支,原始資料如下
mydb=# select row_number() over(partition by begincity order by pubtime desc),* from bills;
row_number | id | goodsdesc | beginunit | begincity | pubtime | amount
------------+----+------------------------------------+------------+---------------+---------------------+---------
1 | 2 | 建 築 設 備 | 福 建 省 | 三 明 市 | 2015-10-05 07:21:22 | 165.29
1 | 9 | 旋 挖 附 件 39 噸 | 河 南 省 | 三 門 峽 市 | 2015-10-05 11:38:38 | 3739.03
2 | 7 | 旋 挖 附 件 38 噸 | 河 南 省 | 三 門 峽 市 | 2015-10-05 10:48:38 | 6313.45
3 | 8 | 旋 挖 附 件 35 噸 | 河 南 省 | 三 門 峽 市 | 2015-10-05 10:48:38 | 6850.54
4 | 6 | 鮮 香 菇 2000 斤 | 河 南 省 | 三 門 峽 市 | 2015-10-05 10:38:29 | 7806.61
5 | 5 | 5 0 鏟 車 , 後 八 輪 翻 鬥 車 | 河 南 省 | 三 門 峽 市 | 2015-10-05 07:53:13 | 9407.32
1 | 11 | 普 貨 40 噸 需 13 米 半 掛 一 輛 | 上 海 市 | 上 海 市 | 2015-10-05 08:13:59 | 3564.18
1 | 1 | 衣服 | 海南省 | 三亞市 | 2015-10-05 09:32:01 | 1621.47
1 | 4 | 普貨 | 福建省 | 三明市 | 2015-10-05 15:19:17 | 5409.37
2 | 3 | 裝置 | 福建省 | 三明市 | 2015-10-05 11:21:54 | 114.85
1 | 10 | 裝置 | 上海市 | 上海市 | 2015-10-05 07:59:35 | 5147.07
(11 rows)
從資料上看,福建省三明市本來是同一個的,但是由於空格關係被識別為兩組。
解決:
string 為要處理的欄位,可用到的函式有:
字元前的空格,用ltrim(string)
字元後的空格,用rtrim(string)
字元中的空格,用replace(string, ' ', ' ')
mydb=# update bills set goodsdesc=replace(goodsdesc,' ',''),beginunit=replace(beginunit,' ',''),begincity=replace(begincity,' ','');
UPDATE 11
結果:
mydb=# select row_number() over(partition by begincity order by pubtime desc),* from bills; //以begincity進行分組,按pubtime降序排序
row_number | id | goodsdesc | beginunit | begincity | pubtime | amount
------------+----+------------------------+-----------+-----------+---------------------+---------
1 | 1 | 衣服 | 海南省 | 三亞市 | 2015-10-05 09:32:01 | 1621.47
1 | 4 | 普貨 | 福建省 | 三明市 | 2015-10-05 15:19:17 | 5409.37
2 | 3 | 裝置 | 福建省 | 三明市 | 2015-10-05 11:21:54 | 114.85
3 | 2 | 建築裝置 | 福建省 | 三明市 | 2015-10-05 07:21:22 | 165.29
1 | 9 | 旋挖附件39噸 | 河南省 | 三門峽市 | 2015-10-05 11:38:38 | 3739.03
2 | 7 | 旋挖附件38噸 | 河南省 | 三門峽市 | 2015-10-05 10:48:38 | 6313.45
3 | 8 | 旋挖附件35噸 | 河南省 | 三門峽市 | 2015-10-05 10:48:38 | 6850.54
4 | 6 | 鮮香菇2000斤 | 河南省 | 三門峽市 | 2015-10-05 10:38:29 | 7806.61
5 | 5 | 50剷車,後八輪翻斗車 | 河南省 | 三門峽市 | 2015-10-05 07:53:13 | 9407.32
1 | 11 | 普貨40噸需13米半掛一輛 | 上海市 | 上海市 | 2015-10-05 08:13:59 | 3564.18
2 | 10 | 裝置 | 上海市 | 上海市 | 2015-10-05 07:59:35 | 5147.07
(11 rows)
相關推薦
sql中去掉欄位的空格或多餘字元
情景: 有一個表資料,插入的資料欄位中含有空格,以至於陣列分組時出分支,原始資料如下 mydb=# select row_number() over(partition by begincity order by pubtime desc),* from bills;
sql中去掉欄位的所有空格
字元前的空格,用ltrim(string) 字元後的空格,用rtrim(string) 字元中的空格,用replace(string, ' ', ' ') 例 update qx_users set `NAME`=rtrim(NAME) update qx_u
批量修改sql中某個欄位中的特定資訊
1.update 表名 set 欄位名=REPLACE(欄位名,'原內容','新內容') 此種寫法,會更新表中的所有資料的指定欄位,即使不含原內容,也會更新 例:將admin表中user中的所有123變為aaa update admin set user=REPLACE
Postgre SQL 中Json欄位新增資料
select json欄位名::jsonb || ‘新增欄位JSon格式’::jsonb from 表名; 例: select invoice_base_info::jsonb || '{"info"
mysql遠端可以登陸本地登陸不了(user表中host欄位的萬用字元%)
在MySQL資料庫中,使用select user();檢視當前登陸使用者。 mysql中host欄位的%與localhost不是誰包括誰的問題,是由精確到模糊進行匹配的。 說明 當用戶從客戶端請求登陸時,MySQL將授權表中的條目與客戶端所提供的條目進
(ORACLE)sql判斷一個欄位是否全數字 或含有中文及統計某個欄位中中文的個數
一、判斷一個欄位是否全數字 或含有中文update (select length(t.name), t.* -- name,length(name) from g_enterprise_info t where nvl2(tran
elasticsearch2.x中es-sql的distinct欄位和原生的cardinality使用及適用場景
場景: 使用者通過資料集dataset分組,並通過event_no欄位去重進行資料去重後統計。 使用es-sql實現等價去重查詢: SELECT dataset,count(DISTINCT
mysql去掉欄位字元中間空格 mysql去掉欄位字元中間空格
mysql去掉欄位字元中間空格 問題 : 資料庫中某一列資料欄位中有空格 ,mysql有什麼辦法批量去掉某個欄位字元中的空格?不僅是字串前後的空格,還包含字串中間的空格, 解決: 答案是 replace,使用mysql自帶的 replace 函式 (1)my
mysql中查詢欄位為null或者不為null的sql語句怎麼寫?
在mysql中,查詢某欄位為空時,切記不可用 = null,而是 is null,不為空則是 is not null select * from table where column is null; select * from table where column is not null; se
SQL Server 中系統檢視sysobjects中type欄位的說明
物件型別: AF = 聚合函式 (CLR) C = CHECK 約束 D = DEFAULT(約束或獨立) F = FOREIGN KEY 約束 FN = SQL 標量函式
oracle中使用sql查詢時欄位為空則賦值預設
oracle 通過 nvl( )函式sql 查詢時為 空值 賦預設值 oracle 函式介紹之nvl 函式宣告:nvl(col,val) 說明:當col為空時取val作為返回值,當col不為空時取col值。 用處:最主要的是格式化資料,比如計算金額時,不想出現
關於sed命令去除文本當中每個欄位前後空格及tab效率低下的解決辦法
最近使用到sed命令進行文字處理,因從資料庫中獲取到的欄位當中有個別字段中間包含空格,而最終儲存時候要保證每個欄位資料的完整性,所以預設的文字分割方式不能使用。 首先使用read讀取一行資料line_data,再根據分隔符'"'進行拆分,拆分結果儲存到split_data中,因資料的列數可以確定
sql server替換欄位中的某個字元
USE [Vocabulary ] GO --UPDATE [dbo].[table name] -- SET [en] = '' -- ,[cn] ='' -- WHERE --char(9) 水平製表符 --char(10)換行鍵 --c
Sql使用SUM和UNION ALL 查詢兩張表中指定欄位的和
1、t_test1表 t_test2表 2、查詢需求:求t_test1.num與t_test2.amount之和 方法一: SELECT
sql查詢表中某個欄位值相同,其他欄位取最大值的記錄
SELECT a.* FROM user a WHERE not EXISTS( select 1 from user where name = a.name and age > a.age ) 對user表進行掃描,編號(或姓名)相同情況下,沒有比前邊年齡大
SQL——Sql_Server中如何判斷表中某欄位是否存在
--比如說要判斷表A中的欄位C是否存在兩個方法: 一, IF EXISTS ( SELECT 1 FROM SYSOBJECTS T1 INNER JOIN SYSCOLUMNS
SQL Server : 表是否存在;表中某欄位是否存在;儲存過程是否存在;索引是否存在;
table_name --表名field_name --欄位名一、表是否存在:--如果不存在表,那麼建立IF OBJECT_ID('table_name') IS NULL BEGIN CREATE TABLE table_name([field_name] [UN
sql server 統計資料庫中某個欄位的值,剔除重複資料和查詢重複的資料
1.有的時候,在資料庫中存在一些重複的資料,但是我們又想統計某個欄位的值,重複的要剔除掉,如圖所示: 在上面的圖我們可以看到,id=2,3 id=4,5的4條資料都重複了,我們統計amount只要其
SQL語句在表中新增欄位(列)
ALTER TABLE — 更改表屬性 語法 ALTER TABLE table [ * ] ADD [ COLUMN ] column type ALTER TABLE table [ * ] ALTER [ COLUMN ] column { SET DEFAULT value
sql查詢同一表格中,不同欄位,但是兩個欄位的值相同的記錄行
比如有表格go_shoplist,欄位為id,qishu,maxqishu 查詢的記錄為.qishu與maxqishu相同的行. select * from `go_shoplist` where