作者lbeeon (力比恩)
看板Database
標題[SQL ] SELECT字串合併NULL值問題
時間Mon Oct 22 22:55:28 2012
大家好!!
小弟是使用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
1F:→ jimshih:1. 語法是不是打錯了? Date1? Data1?? 10/23 10:31
2F:→ jimshih:2.對Data2及Data3用isnull來轉換看看? 10/23 10:33
3F:推 pennymarkfox:不管什麼資料型態加上null都會變null 10/23 14:28
4F:→ lbeeon:是Data1抱歉 不是語法的問題 我有用過類似的語法 10/23 15:21
5F:→ lbeeon:應該說就是一樣的結構 但是遇到NULL還是會有值 但是昨天用 10/23 15:22
6F:→ lbeeon:在新的表上就變成NULL了... 10/23 15:23
以找到解決方法就是用語法
SET CONCAT_NULL_YIELDS_NULL OFF;
在查詢即可
※ 編輯: lbeeon 來自: 140.120.200.219 (10/23 15:32)
8F:→ TeemingVoid:為 off,建議依照jimshih大的意見,用ISNULL()處理。 10/23 15:53
9F:→ lbeeon:謝T大 有個小問題之前我的表在沒設定之前合併不會變NULL 10/23 16:06
10F:→ lbeeon:有可能原因? 10/23 16:06
改成
SELECT Data1,(Data2 +'/' + ISnull(Data3,'')) AS Data
FROM table
即可 謝謝幫忙
※ 編輯: lbeeon 來自: 140.120.200.219 (10/23 16:10)
11F:推 TeemingVoid:我推測單純就因為資料內容有 null 值。請用: 10/23 16:09
12F:→ TeemingVoid:select * from table where column is null; 查一下 10/23 16:10
我知道原因了
我之前的資料是用Insert(data1,data2,'')
所以裡面放的不是NULL
新增資料表裡面資料是用SQL編輯新增的
所以一個是NULL一個是空值?..
※ 編輯: lbeeon 來自: 140.120.200.219 (10/23 16:18)
13F:→ jimshih:嘿嘿嘿嘿....不錯不錯, 你知道我在說什麼 :p 10/23 23:21
14F:→ lbeeon:略懂XD 謝謝J大 10/24 00:29