select BM001,BM002,BM004,BM005 from JDEBOM1
where bm001='818-1324' group by BM001,BM002,BM004,BM005
執行上面sql 得到結果:
818-1324 000094710-9422 2.31 7.36
818-1324 000094710-9422 2.31 7.36不明白爲什麽2筆相同的記錄會出現在內,經測試后發現如果除去掉BM002
select BM001,BM004,BM005 from JDEBOM1
where bm001='818-1324' group by BM001,BM004,BM005
得到的就只有一行
818-1324 2.31 7.36但是我需要BM002字段,怎麼樣避免出現重複的。
裏面空格我也核對過,都沒一樣的。
爲什麽不是一筆而是出來兩筆
where bm001='818-1324' group by BM001,BM002,BM004,BM005
執行上面sql 得到結果:
818-1324 000094710-9422 2.31 7.36
818-1324 000094710-9422 2.31 7.36不明白爲什麽2筆相同的記錄會出現在內,經測試后發現如果除去掉BM002
select BM001,BM004,BM005 from JDEBOM1
where bm001='818-1324' group by BM001,BM004,BM005
得到的就只有一行
818-1324 2.31 7.36但是我需要BM002字段,怎麼樣避免出現重複的。
裏面空格我也核對過,都沒一樣的。
爲什麽不是一筆而是出來兩筆
where bm001='818-1324' group by BM001,BM002,BM004,BM005
執行上面sql 得到結果:
818-1324 000094710-9422 2.31 7.36
818-1324 000094710-9422 2.31 7.36-------------
应该只有一笔记录的,你贴出测试数据。
我也納悶啊!
where bm001='818-1324' group by BM001,BM002,BM004,BM005
執行上面sql 得到結果:
818-1324 000094710-9422 2.31 7.36
818-1324 000094710-9422 2.31 7.36这样的查询,得出这样的结果,确实很奇怪.
表JDEBOM1
select * from JDEBOM1 where bm001='818-1324'
結果
BM001 BM002 BM003 BM004 BM005
818-1324 000094710-9422 2.31 7.36
818-1324 000094710-9422 2.31 7.36 上面結果是原表中存在的記錄
select BM001,BM004,BM005 from JDEBOM1
where bm001='818-1324' group by BM001,BM004,BM005
跑出來就只有一筆但是我也查看過BM002字段好像沒什麽特殊的,他們的空格也是一樣的啊。怎麼會是2筆
眼花了。
上次 我也是这种情况 还以为BUG
搞半天 是数据后面多了一个 不知道是什么的空白
'000094710-9422 '
BM002字段我用REPLACE(BM002, ' ', '')
怎麼第二筆後面還有2個空格?你們的解決方法是什麽?
無效,還是2筆 後面的空格依然存在
REPLACE(BM002, char(13), '')
'000094710-9422 ' 後面依然有空格 還是會出來2筆
BM002 nchar(50) Unchecked
BM003 nchar(50) Unchecked
BM004 float Checked
BM005 float Checked這是表中字段的定義
DROP TABLE #tp
CREATE TABLE #tp
(
BM001 nchar(50) ,
BM002 nchar(50) ,
BM003 nchar(50) ,
BM004 float ,
BM005 float ,
)INSERT INTO #tp
SELECT '818-1324', '000094710-9422','333', 2.31, 7.36 UNION ALL
SELECT '818-1324', ' 000094710-9422 ','333', 2.31, 7.36select BM001,ltrim(BM002)BM002,BM004,BM005 from #tp
where bm001='818-1324' group by BM001,ltrim(BM002),BM004,BM005BM001 BM002 BM004 BM005
-------------------------------------------------- -------------------------------------------------- ---------------------- ----------------------
818-1324 000094710-9422 2.31 7.36(1 row(s) affected)
bm001='818-1324'這個料號在表中的存在2筆,
2筆的區別在與第二筆的BM002後面多2個空格,
用REPLACE(BM002, ' ', '')或者
ltrim(BM002)處理得到的結果都是2筆,第二筆後面還是回跟到2個空格
第一筆'000094710-9422'
第二筆'000094710-9422 '
按照21樓的,我自己也建臨時表測試,是可以得到一筆,
但如果我將JDEBOM1整個都導入到臨時表在做執行,
從臨時表中抓到出來的還是2筆,
后导空格应该是没有问题的,我担心是前导空格。
用下面这句看看是什么结果:
select ltrim(BM001)BM001,ltrim(BM002)BM002,ltrim(BM004)BM004,ltrim(BM005)BM005 from #tp
where bm001='818-1324'
group by ltrim(BM001),ltrim(BM002),ltrim(BM004),ltrim(BM005)
应该有值存在差异性
GROUP BY含有DISTINCT的效果
我以前遇到过这种问题 使用的函数 提示是影响多少行 按理说是改过来的
但是实际上结果还是么变
其他字段都沒問題,如果不是必須要BM002,我早把這個字段丟掉了。我怎麼看後面也是2個空格,有什麽特殊的地方爲什麽就是清除不掉占2個位置,select BM001,right(REPLACE(BM002, ' ', ''),4)as BM002,BM004,BM005,len(bm002) from ##tp
where bm001='818-1324'
我去抓後面的4個字段,
得到結果
BM002
'9422'
'22 '這是個什麽鬼空格?