2024年1月19日 星期五

[研究]T-SQL 選擇 Table1 中包含 "Memo" 的欄位名稱以及相應的欄位內容

[研究]T-SQL 選擇 Table1 中包含 "Memo" 的欄位名稱以及相應的欄位內容

2024-01-19

環境:Visual Studio 2022 + ASP.NET + WebForm + Web Application + C# + SQL Server 2019 + SQL Server Management Studio ( SSMS) 19.x

********************************************************************************

TSQL, 請 SELECT 出 table1 中欄位名稱包含 Memo 的

ChatGPT

你可以使用以下的 T-SQL 查詢來選擇 table1 中欄位名稱包含 "Memo" 的所有欄位:

DECLARE @TableName NVARCHAR(MAX) = 'table1'
DECLARE @ColumnsWithMemo NVARCHAR(MAX)

-- 獲取包含 Memo 的欄位名稱
SELECT @ColumnsWithMemo = COALESCE(@ColumnsWithMemo + ', ', '') + COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @TableName AND COLUMN_NAME LIKE '%Memo%'

-- 如果找到符合條件的欄位,則輸出結果
IF @ColumnsWithMemo IS NOT NULL
BEGIN
    SELECT @ColumnsWithMemo AS Columns_With_Memo
END
ELSE
    PRINT '找不到符合條件的欄位'



和預期的不同,改一下要求。

********************************************************************************

TSQL, 請 SELECT 出 table1 中欄位名稱包含 Memo 的,其欄位內容

ChatGPT

如果你想要選擇 table1 中包含 "Memo" 的欄位名稱以及相應的欄位內容,你可以使用以下 T-SQL 查詢:

DECLARE @TableName NVARCHAR(MAX) = 'table1'
DECLARE @ColumnsWithMemo NVARCHAR(MAX)
DECLARE @SelectQuery NVARCHAR(MAX)

-- 獲取包含 Memo 的欄位名稱
SELECT @ColumnsWithMemo = COALESCE(@ColumnsWithMemo + ', ', '') + COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @TableName AND COLUMN_NAME LIKE '%Memo%'

-- 如果找到符合條件的欄位,則創建 SELECT 查詢
IF @ColumnsWithMemo IS NOT NULL
BEGIN
    SET @SelectQuery = 'SELECT ' + @ColumnsWithMemo + ' FROM ' + QUOTENAME(@TableName) + ';'
    EXEC sp_executesql @SelectQuery
END
ELSE
    PRINT '找不到符合條件的欄位'



成功。

********************************************************************************

User

T-SQL, 請提供 命令,可以產出類似下面 SQL 語法, 顯示欄位名稱包含 Memo 的欄位內容

SELECT [My1Memo]

,[My2Memo]

,[My3Memo]

FROM [Table1]

ChatGPT

以下是一個T-SQL命令,可以產生類似你提供的SQL語法,顯示Table1中欄位名稱包含 "Memo" 的欄位內容:

DECLARE @TableName NVARCHAR(MAX) = 'Table1'
DECLARE @ColumnsWithMemo NVARCHAR(MAX)
DECLARE @SelectQuery NVARCHAR(MAX)

-- 獲取包含 Memo 的欄位名稱
SELECT @ColumnsWithMemo = COALESCE(@ColumnsWithMemo + ', ', '') + QUOTENAME(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @TableName AND COLUMN_NAME LIKE '%Memo%'

-- 如果找到符合條件的欄位,則創建 SELECT 查詢
IF @ColumnsWithMemo IS NOT NULL
BEGIN
    SET @SelectQu


ery = 'SELECT ' + @ColumnsWithMemo + ' FROM ' + QUOTENAME(@TableName) + ';' --EXEC sp_executesql @SelectQuery PRINT @SelectQuery END ELSE PRINT '找不到符合條件的欄位'


成功。

(完)

相關

[研究]T-SQL 選擇 Table1 中包含 "Memo" 的欄位名稱以及相應的欄位內容
https://shaurong.blogspot.com/2024/01/t-sql-table1-memo.html

[研究]TSQL, 把 table1 中欄位名稱包含 Memo 的,欄位值都設定為 N'
'https://shaurong.blogspot.com/2024/01/tsql-table1-memo-n.html

沒有留言:

張貼留言