![](/img/trans.png)
[英]How to select Table and Column Names from passed parameters in SQL Server?
[英]How to select specific column names in SQL Server
这是我先前有关如何在SQL Server中迭代字符串的问题:
现在如何特别选择列名称? 这是我选择列的代码:
SELECT 'Field '+CAST(ROW_NUMBER() OVER (ORDER BY ordinal_position) AS varchar(5))+': ' +
COLUMN_NAME
FROM information_schema.columns
WHERE table_Name = 'SystemDefined' and table_schema = 'schemaAsset'
这是输出:
Field 1: Asset_No
Field 2: AssetCategory
Field 3: AssetClassification
Field 4: PurchaseType
Field 5: Department
Field 6: RespPerson
Field 7: Status
Field 8: Location
选择特定的列名称时,这是我想要的输出:
Field 1: Asset_No
Field 2: AssetCategory
Field 3: AssetClassification
Field 4: PurchaseType
Field 5: Department
Field 6: RespPerson
Field 7: Status
如何使用可以在WHERE
子句上使用的NOT IN
来指定其他条件。
SELECT...
FROM..
WHERE table_Name = 'SystemDefined' AND
table_schema = 'schemaAsset' AND
COLUMN_NAME NOT IN ('Status',....) -- specify the list of names you
-- don't want to show
除非我丢失了某些内容,否则您可以使用WHERE
子句排除不想要的列:
SELECT 'Field '
+ CAST(ROW_NUMBER() OVER (ORDER BY ordinal_position) AS varchar(5))+': '
+ COLUMN_NAME
FROM information_schema.columns
WHERE table_Name = 'SystemDefined'
and table_schema = 'schemaAsset'
and COLUMN_NAME <> 'Location'
如果您有多列,则可以使用NOT IN ('Location', 'etc')
推荐sys.columns
而不是INFORMATION_SCHEMA
( 这就是原因 )。
SELECT 'Column '
+ CONVERT(VARCHAR(5), ROW_NUMBER() OVER (ORDER BY column_id))
+ ': ' + name
FROM sys.columns
WHERE [object_id] = OBJECT_ID(N'schemaAsset.SystemDefined')
AND name NOT IN ('Location' /* , ... other columns ... */)
ORDER BY column_id; -- because you never know how SQL Server might order
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.