[SQL ] SELECT字串合併NULL值問題(解決)

看板Database作者 (力比恩)時間11年前 (2012/10/22 22:55), 編輯推噓3(3011)
留言14則, 4人參與, 最新討論串1/1
大家好!! 小弟是使用SQL server2008 配合ASP.net作為網頁開發 遇到一個問題如下 我會利用語法 SELECT Date1,(Data2 +'/' + Data3) AS Data FROM table 之前使用時候也有遇到是NULL值 選出來結果就會是 Data1 Data data1 data2/ 但是今天我新增幾個表 想要利用類似的語法時 合併的欄位卻變成NULL... 有人知道原因可以幫忙一下 感激不盡 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.120.200.219

10/23 10:31, , 1F
1. 語法是不是打錯了? Date1? Data1??
10/23 10:31, 1F

10/23 10:33, , 2F
2.對Data2及Data3用isnull來轉換看看?
10/23 10:33, 2F

10/23 14:28, , 3F
不管什麼資料型態加上null都會變null
10/23 14:28, 3F

10/23 15:21, , 4F
是Data1抱歉 不是語法的問題 我有用過類似的語法
10/23 15:21, 4F

10/23 15:22, , 5F
應該說就是一樣的結構 但是遇到NULL還是會有值 但是昨天用
10/23 15:22, 5F

10/23 15:23, , 6F
在新的表上就變成NULL了...
10/23 15:23, 6F
以找到解決方法就是用語法 SET CONCAT_NULL_YIELDS_NULL OFF; 在查詢即可 ※ 編輯: lbeeon 來自: 140.120.200.219 (10/23 15:32)

10/23 15:53, , 7F
根據官方文件 http://ppt.cc/9wqN,這個選項最好別設
10/23 15:53, 7F

10/23 15:53, , 8F
為 off,建議依照jimshih大的意見,用ISNULL()處理。
10/23 15:53, 8F

10/23 16:06, , 9F
謝T大 有個小問題之前我的表在沒設定之前合併不會變NULL
10/23 16:06, 9F

10/23 16:06, , 10F
有可能原因?
10/23 16:06, 10F
改成 SELECT Data1,(Data2 +'/' + ISnull(Data3,'')) AS Data FROM table 即可 謝謝幫忙 ※ 編輯: lbeeon 來自: 140.120.200.219 (10/23 16:10)

10/23 16:09, , 11F
我推測單純就因為資料內容有 null 值。請用:
10/23 16:09, 11F

10/23 16:10, , 12F
select * from table where column is null; 查一下
10/23 16:10, 12F
我知道原因了 我之前的資料是用Insert(data1,data2,'') 所以裡面放的不是NULL 新增資料表裡面資料是用SQL編輯新增的 所以一個是NULL一個是空值?.. ※ 編輯: lbeeon 來自: 140.120.200.219 (10/23 16:18)

10/23 23:21, , 13F
嘿嘿嘿嘿....不錯不錯, 你知道我在說什麼 :p
10/23 23:21, 13F

10/24 00:29, , 14F
略懂XD 謝謝J大
10/24 00:29, 14F
文章代碼(AID): #1GXLvaxR (Database)