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就可以自动生成表的所有字段名用逗号分割