[英]How can I fetch non-english column names from a table in SQL Server 2008?
[英]How can I give condition on the column names in SQL Server 2008
我的數據庫具有以下列:
keyword, part1_d1, part1_d2 ........ part1_d25, part2_d26, ......part2_d34
僅供參考:d1到d34是文檔。
我如何給出查詢以獲取具有column_name之類的列,例如'%part1%'; 如下
keyword, part1_d1, part1_d2, ........ part1_d25
我嘗試查詢:
select (Select COLUMN_NAME
From INFORMATION_SCHEMA.COLUMNS
where COLumn_NAME like '%part1%')
, keyword
from sample
但這沒用...
請讓我知道該怎么辦?
SQL不支持動態列名-您必須明確聲明要使用的列名,或者使用星號“ *”表示表中的所有列。
動態SQL將允許您獲取列的列表,並在執行之前將SQL語句創建為字符串-這是最終用於嘗試查詢的條件。 我建議在進一步閱讀之前閱讀此內容-Dynamic SQL的詛咒和祝福 。
DECLARE @sql NVARCHAR(4000)
SET @sql = 'SELECT ' + STUFF((SELECT ', ' + x.column_name
FROM INFORMATION_SCHEMA.COLUMNS x
JOIN INFORMATION_SCHEMA.TABLES y ON y.object_id = x.object_id
WHERE x.column_name LIKE '%part1%'
AND y.table_name = 'sample'
GROUP BY x.column_name
FOR XML PATH ('')), 1, 2, '') + ' , keyword
FROM sample '
BEGIN
EXEC sp_executesql @sql
END
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.