2010-06-28 24 views
2

我有這樣的(僞代碼)的SQL查詢SQL列字符串

Select ID, TEXT, 1, 2, 3, 4, 5, 6, 7 from blabla 

,但我需要的是有3列

Select ID, TEXT, STRING(1, 2, 3, 4, 5, 6, 7) from blabla 

我能做到這一點只用SQL查詢?

編輯:

額外的問題: 它不工作,如果1-7返回NULL或沒有。我如何將NULL轉換爲空字符串? (MySQL的2005)

+6

什麼數據庫系統和它的哪個版本?字符串處理是相當供應商和產品特定的... – 2010-06-28 08:47:03

+0

MySQL 2005?你的意思是MySQL(這是編號版本4,5,6)或者你的意思是Microsoft SQL Server(它有一個版本2005)..... – 2010-06-28 09:55:59

回答

2

In T-SQL/MS-SQL:

# With Space 
SELECT ID, TEXT, 
    (1 + ' ' + 2 + ' ' + 3 + ' ' + 4 ' ' + 5 + ' ' + 6 + ' ' + 7) as Merged 
FROM blabla 

# Without Space 
SELECT ID, TEXT, 
    (1 + 2 + 3 + 4 + 5 + 6 + 7) as Merged 
FROM blabla 

In My-SQL:

# With Space 
SELECT ID, TEXT, 
    CONCAT_WS(' ', 1, 2, 3 , 4, 5, 6, 7) as Merged 
FROM blabla 

# Without Space 
SELECT ID, TEXT, 
    CONCAT(1, 2, 3 , 4, 5, 6, 7) as Merged 
FROM blabla 

In PL-SQL/Oracle:

# With Space 
SELECT ID, TEXT, 
    1 || ' ' || 2 || ' ' || 3 || ' ' || 4 || ' ' || 5 || ' ' || 6 || ' ' || 7 as Merged 
FROM blabla 

# Without Space 
SELECT ID, TEXT, 
    1 || 2 || 3 || 4 || 5 || 6 || 7 as Merged 
FROM blabla 
+1

儘管你必須做CAST(1 AS nvarchar)+''+ CAST(2 AS nvarchar)+ ...在SQL Server中,只要您連接未鍵入爲字符串的值。 – erikkallen 2010-06-28 09:21:33

0

只是我們的+字符來連接字符串,假設你的1-7字符串字段:

Select ID, TEXT, 1 + ' ' + 2 + ' ' + 3 + ' ' + 
4 + ' ' + 5 + ' ' + 6 + ' ' + 7 as YourFieldName from blabla 

我已經在字段之間加入了空格,但是您也可以提供逗號或其他分隔符。

1

t-sql

Select ID, TEXT, 1 + 2 + 3 + 4 + 5 + 6 + 7 from blabla 

PL-SQL

Select ID, TEXT, 1 || 2 || 3 || 4 || 5 || 6 || 7 from blabla 

MySQL

Select ID, TEXT, CONCAT(1, 2, 3, 4, 5, 6, 7) from blabla 

轉換/石膏可以根據數據類型的列的要求1 - 7

+0

如何在MS-SQL中將NULL轉換爲''? – nickik 2010-06-28 09:25:35

+0

@nickik:使用'ISNULL(column,「」)'構造 – 2010-06-28 09:56:39

0

如果我的上司是正確的:

從blabla中選擇ID,TEXT,'1,2,3,4,5,6,7';

0

從blabla中選擇ID,TEXT,'1','2','3','4','5','6','7';

0
Select ID, 
     TEXT, 
     CONCAT_WS(',', 1, 2, 3, 4, 5, 6, 7) as Concatenated 
    from blabla 

Select ID, 
     TEXT, 
     CONCAT(1, ',', 2, ',', 3, ',', 4, ',', 5, ',', 6, ',', 7) as Concatenated 
    from blabla 
在MySQL

Select ID, 
     TEXT, 
     1 || ',' || 2 || ',' || 3 || ',' || 4 || ',' || 5 || ',' || 6 || ',' || 7) as Concatenated 
    from blabla 

在甲骨文

而是取決於你的數據庫的味道

0

我認爲它不可能使用逗號而不是加