国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

根據(jù)列名從多個表傳回資料的SQL方法
P粉904450959
P粉904450959 2024-02-21 19:21:21
0
1
576

我正在嘗試做一些有點奇怪的事情,但無法找出完成它的正確方法。本質(zhì)上,我試圖提取所有表/視圖和列,其中列名稱就像某個字串。除此之外,我想從該表/視圖和列組合中提取 1 行資料。第二部分是我迷失的地方。我知道我可以使用下面的 select 語句來提取必要的表/視圖和列。

SELECT      COLUMN_NAME AS 'ColumnName'
            ,TABLE_NAME AS  'TableName'
FROM        INFORMATION_SCHEMA.COLUMNS
WHERE       COLUMN_NAME LIKE '%email%'
ORDER BY    TableName,ColumnName;

這樣我就會得到類似下面的東西

|ColumnName   |TableName   |
|emailAddress |all_emails  |
           ....

但我想要得到這樣的東西:

|ColumnName   |TableName   |Example             |
|emailAddress |all_emails  |[email protected]|
                    ....

有人可以提供任何見解嗎?

P粉904450959
P粉904450959

全部回覆(1)
P粉392861047

我想不出一種簡單的方法來在查詢中執(zhí)行此操作,但這裡有一個選項......

將列和表的清單放入臨時表中,並透過循環(huán)運行它們,使用動態(tài) SQL 為每個表選擇最大行。

我在下面添加了大量評論來解釋它。

DECLARE @SQL NVARCHAR(1000)
DECLARE @TABLE NVARCHAR(1000)
DECLARE @COLUMN NVARCHAR(1000)
DECLARE @SAMPLE NVARCHAR(1000)

DROP TABLE IF EXISTS ##TABLELIST

SELECT      COLUMN_NAME AS 'ColumnName'
           ,TABLE_NAME AS  'TableName'
           ,ROW_NUMBER() OVER (ORDER BY COLUMN_NAME,TABLE_NAME)[RN]

INTO ##TABLELIST

FROM        INFORMATION_SCHEMA.COLUMNS
WHERE       COLUMN_NAME LIKE '%email%';



ALTER TABLE ##TABLELIST

ADD [Sample] NVARCHAR(1000) -- Add a column for your sample row.

DECLARE @ROWCOUNTER INT = 1 -- Add a counter for the loop to use.

WHILE @ROWCOUNTER 
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板