在这里,我写了一些关于预期输出的内容,但它不适用于最后一列所有字段都应以逗号结尾,不包括最后一列值我使用这样的东西我的代码如下
declare @query varchar set @Query = Left(@Query,len(@Query)-1)
SELECT '@' + COLUMN_NAME as c1,
CASE DATA_TYPE
WHEN 'NVARCHAR' then 'nvarchar(max)' + ','
WHEN 'INT' then 'int' + ','
WHEN 'DATETIME' then 'Datetime()' + ','
when 'Float' then 'float' + ','
end
as c2
from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='tbl_data'
c1 c2
@MastCode float,
@BALCO_EMP_ID float,
@MastName nvarchar(max),
@FatherName nvarchar(max),
@Department nvarchar(max),
@PlantName nvarchar(max),
@PO nvarchar(max),
@PO_START nvarchar(max),
@PO_END nvarchar(max),
@Contractor nvarchar(max),
@ContractorCode nvarchar(max)
您可以将当前的查询逻辑放入 CTE,然后使用分析函数处理最后的逗号:
WITH cte AS (
SELECT '@' + COLUMN_NAME AS c1,
CASE DATA_TYPE
WHEN 'NVARCHAR' THEN 'nvarchar(max)'
WHEN 'INT' THEN 'int'
WHEN 'DATETIME' THEN 'Datetime()'
WHEN 'Float' THEN 'float' END AS c2,
ROW_NUMBER() OVER (ORDER BY DATA_TYPE) AS rn,
COUNT(*) OVER () AS cnt
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'tbl_data'
)
SELECT
c1 As col1,
c2 + CASE WHEN rn < cnt THEN ',' ELSE '' END AS col2
FROM cte;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句