1. sql語句怎麼循環取出一個表裡面的所有欄位,用逗號間隔
declare @str varchar(8000)
set @str=''
select @str=@str+','+Name from syscolumns where id=object_id('ERPWorkToDo')
set @str=stuff(@str,1,1,'')
select @str
--'ERPWorkToDo是表名
2. sql 如何以逗號為分隔符分割一個欄位的值
可用substring函數。
創建測試表及數據:
createtabletest
(idvarchar(10));
insertintotestvalues('123abc');
insertintotestvalues('456def');
insertintotestvalues('789ghi');
執行:
selectsubstring(id,1,3)+','+substring(id,4,3)asidfromtest
結果截圖:
也就顯示成了用逗號分隔的樣子。
3. 如何SQL調用一個欄位里用逗號分開的數據
我以前也碰到過類似的問題,不過採用的是迂迴的方法來完成,你看看有幫助不。先用EXCEL將帶逗號的數據(用其它資料庫也可以的,比如Access和SQL Server)導入,導入選擇數據項之間由逗號分隔,這樣EXCEL就把數據之間的逗號去掉了,導入完成之後就再能以數據表的形式使用了。
4. sql中怎麼把字元串根據逗號拆分
IF(OBJECT_ID('TA') IS NOT NULL) DROP TABLE TA
CREATE TABLE TA(id INT,[value] VARCHAR(100), class VARCHAR(10))
INSERT INTO TA(id,[value],class)
SELECT 1,'3,2,4,5','no' UNION ALL
SELECT 2,'5,1,1+2','yes'
--查詢結果
SELECT T.id
,SUBSTRING(T.[value],R.number,CHARINDEX(',',T.[value]+',',R.number)-R.number) AS value
,T.class
,ROW_NUMBER() OVER (PARTITION BY T.id ORDER BY T.id) AS code
FROM TA AS T
JOIN (
SELECT TOP 10 number FROM [master].dbo.spt_values
WHERE [type]='P' ORDER BY number)AS R ON (CHARINDEX(',',','+T.[value],R.number)=R.number)
5. 如何取得一個表的所有欄位名用逗號分割(SQLSERVER和ORACLE)求解答
行內容以path或者層次元素列表的形式顯示出來。
取得一個表的所有欄位名,用逗號分割。
select max(substr(SYS_CONNECT_BY_PATH(COLUMN_NAME, ','),2)) col from (
select COLUMN_NAME,column_id from user_tab_columns where table_name='&表名')
start with column_id=1
connect by column_id=rownum;
從這點上講Oracle比SQLSERVER取欄位要麻煩多了
在SQLSERVER里可以直接在SQL的查詢分析器中直接選中表右擊選select就可以自動生成表的所有欄位名用逗號分割