簡體   English   中英

如何使用 sql 通配符“%”替換?

[英]How can I Replace using the sql wildcard '%'?

所以這是我從 powershell 中提取的數據(實際上還有更多,但它們都遵循相同的模式):

Name                   : SULESRKMA  1
Location               : Leisure Services - Technology Services 2
DriverName             : KONICA MINOLTA mc4695MF PS PPD 3
Shared                 : False  4
ShareName              :    5
JobCountSinceLastReset : 0  6

我正在嘗試刪除“名稱:”和“位置:”等,但在此處使用 REPLACE 命令是我的 sql 查詢的一部分:

SELECT * FROM #ReadCmd
WHERE Result LIKE 'Name   %:%'

INSERT INTO #output(Name)
SELECT REPLACE(Result, '% %: %', '')
From #ReadCmd
WHERE Result LIKE 'Name   %:%'
SELECT * FROM #output

或者例如,這里:

IF  OBJECT_ID('tempdb..#fields') != 0
    DROP TABLE #fields

CREATE TABLE #fields (Fields varchar(256))
INSERT INTO #fields (Fields)
SELECT REPLACE(Result, ' %: %', '')
FROM #ReadCmd
Where Result Like '% %: %'

關鍵是,我想用空替換 '_____ : ',但是 REPLACE 命令讀取 sql 通配符 '%' 作為實際的百分號。 有沒有另一種方法來實現這一點?

在單獨的單元格中使用Select RIGHT(Result,CHARINDEX(': ',Result) -1)輸出:

            : SULESRKMA
         : PrimoPDF
oft XPS Document Writer
              : Fax
   : CutePDF Writer

你可以試試

SELECT * FROM #ReadCmd
WHERE Result LIKE '%:%' and Result like 'Name %';

如果您只想選擇 : 之后的信息,那么您應該使用

SUBSTRING(Result, CHARINDEX(':',Result) +2, 255)
from  #ReadCmd
WHERE Result LIKE '%:%' and Result like 'Name %';
Select RIGHT(ColumnName,CHARINDEX(':',ColumnName) -1)

請參閱SQL 字符串操作 [Get all text left of '(']以供參考。

除非我誤解了您的問題,並且您想保留 Name 和 : 並刪除空格。 如果是這樣,您的第二個和第四個非代碼行是矛盾的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM