1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          mysql uniqueidentifier,sql-如何檢查字符串是否為uniqueidentifier?

          來源:互聯網轉載 時間:2023-12-12 16:25:57

          sql-如何檢查字符串是否為uniqueidentifier?

          是否有與IsDate或IsNumeric等效的uniqueidentifier(SQL Server)?還是有等同于(C#)TryParse的東西?

          否則,我將不得不編寫自己的函數,但是我想確保自己沒有重新發明輪子。

          我要介紹的場景如下:

          SELECT something FROM table WHERE IsUniqueidentifier(column) = 1

          Benoittr asked 2020-01-23T02:27:19Z

          12個解決方案

          63 votes

          SQL Server 2012通過WHERE使這一切變得更加容易

          SELECT something

          FROM your_table

          WHERE TRY_CONVERT(UNIQUEIDENTIFIER, your_column) IS NOT NULL;

          對于早期版本的SQL Server,現有答案缺少幾點,這意味著它們可能與SQL Server實際上會毫無疑問地轉換為WHERE的字符串不匹配,或者可能最終導致無效的轉換錯誤。

          SQL Server接受包含在WHERE中或不包含在其中的GUID。

          此外,它會忽略字符串末尾的多余字符。 例如,WHERE和à都成功。

          在大多數默認歸類下,WHERE將最終匹配字符,例如à或?

          最后,如果將結果中的行強制轉換為uniqueidentifier,將強制轉換嘗試放在case表達式中非常重要,因為強制轉換可能發生在WHERE行過濾之前。

          因此(借用@ r0d30b0y的想法)可能會更健壯一些

          ;WITH T(C)

          AS (SELECT ‘5D944516-98E6-44C5-849F-9C277833C01B’

          UNION ALL

          SELECT ‘{5D944516-98E6-44C5-849F-9C277833C01B}’

          UNION ALL

          SELECT ‘5D944516-98E6-44C5-849F-9C277833C01BXXXXXXXXXXXXXXXXXXXXXXXXXXXXX’

          UNION ALL

          SELECT ‘{5D944516-98E6-44C5-849F-9C277833C01B}ssssssssss’

          UNION ALL

          SELECT ‘àD944516-98E6-44C5-849F-9C277833C01B’

          UNION ALL

          SELECT ‘fish’)

          SELECT CASE

          WHEN C LIKE expression + ‘%’

          OR C LIKE ‘{‘ + expression + ‘}%’ THEN CAST(C AS UNIQUEIDENTIFIER)

          END

          FROM T

          CROSS APPLY (SELECT REPLACE(‘00000000-0000-0000-0000-000000000000’, ‘0’, ‘[0-9a-fA-F]’) COLLATE Latin1_General_BIN) C2(expression)

          WHERE C LIKE expression + ‘%’

          OR C LIKE ‘{‘ + expression + ‘}%’

          Martin Smith answered 2020-01-23T02:27:57Z

          58 votes

          不是我的,在網上找到了這個……我想分享。

          SELECT 1 WHERE @StringToCompare LIKE

          REPLACE(‘00000000-0000-0000-0000-000000000000’, ‘0’, ‘[0-9a-fA-F]’);

          r0d30b0y answered 2020-01-23T02:28:17Z

          24 votes

          SELECT something

          FROM table1

          WHERE column1 LIKE ‘[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]-[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]-[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]-[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]-[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]’;

          更新:

          …但是我更喜歡@ r0d30b0y的答案中的方法:

          SELECT something

          FROM table1

          WHERE column1 LIKE REPLACE(‘00000000-0000-0000-0000-000000000000’, ‘0’, ‘[0-9a-fA-F]’);

          onedaywhen answered 2020-01-23T02:28:41Z

          4 votes

          我不知道您可以“開箱即用”使用任何東西-恐怕您必須自己編寫。

          如果可以:嘗試將其編寫在C#庫中并將其作為SQL-CLR程序集部署到SQL Server中-那么您可以使用像Guid.TryParse()這樣的東西,它肯定比T-SQL中的任何東西都容易使用。

          marc_s answered 2020-01-23T02:29:06Z

          2 votes

          r0d30b0y答案的一種變體是使用PATINDEX在字符串中查找…

          PATINDEX(‘%’+REPLACE(‘00000000-0000-0000-0000-000000000000’, ‘0’, ‘[0-9a-fA-F]’)+’%’,@StringToCompare) > 0

          曾用于在URL字符串中查找Guid。

          高溫超導

          戴夫

          Dave answered 2020-01-23T02:29:39Z

          2 votes

          喜歡保持簡單。 一個GUID包含四個-即使只是一個字符串也包含在內

          WHERE欄,例如’%-%-%-%-%’

          Mike answered 2020-01-23T02:30:03Z

          1 votes

          這是基于一些早期注釋概念的功能。 這個功能非???。

          CREATE FUNCTION [dbo].[IsGuid] (@input varchar(50))

          RETURNS bit AS

          BEGIN

          RETURN

          case when @input like ‘[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]-[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]-[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]-[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]-[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]’

          then 1 else 0 end

          END

          GO

          /*

          Usage:

          select [dbo].[IsGuid](‘123’) — Returns 0

          select [dbo].[IsGuid](‘ebd8aebd-7ea3-439d-a7bc-e009dee0eae0’) — Returns 1

          select * from SomeTable where dbo.IsGuid(TableField) = 0 — Returns table with all non convertable items!

          */

          Ansonmus answered 2020-01-23T02:30:23Z

          1 votes

          雖然是較早的帖子,但只是想快速測試一下…

          SELECT [A].[INPUT],

          CAST([A].[INPUT] AS [UNIQUEIDENTIFIER])

          FROM (

          SELECT ‘5D944516-98E6-44C5-849F-9C277833C01B’ Collate Latin1_General_100_BIN AS [INPUT]

          UNION ALL

          SELECT ‘{5D944516-98E6-44C5-849F-9C277833C01B}’

          UNION ALL

          SELECT ‘5D944516-98E6-44C5-849F-9C277833C01BXXXXXXXXXXXXXXXXXXXXXXXXXXXXX’

          UNION ALL

          SELECT ‘{5D944516-98E6-44C5-849F-9C277833C01B}ssssssssss’

          UNION ALL

          SELECT ‘àD944516-98E6-44C5-849F-9C277833C01B’

          UNION ALL

          SELECT ‘fish’

          ) [A]

          WHERE PATINDEX(‘[^0-9A-F-{}]%’, [A].[INPUT]) = 0

          Geary M. McIver answered 2020-01-23T02:30:43Z

          0 votes

          您可以編寫自己的UDF。 這是一個簡單的近似值,以避免使用SQL-CLR程序集。

          CREATE FUNCTION dbo.isuniqueidentifier (@ui varchar(50))

          RETURNS bit AS

          BEGIN

          RETURN case when

          substring(@ui,9,1)=’-‘ and

          substring(@ui,14,1)=’-‘ and

          substring(@ui,19,1)=’-‘ and

          substring(@ui,24,1)=’-‘ and

          len(@ui) = 36 then 1 else 0 end

          END

          GO

          然后,您可以對其進行改進,以檢查它是否僅與十六進制值有關。

          pcofre answered 2020-01-23T02:31:08Z

          0 votes

          我用 :

          ISNULL(convert(nvarchar(50), userID), ‘NULL’) = ‘NULL’

          Villie answered 2020-01-23T02:31:27Z

          0 votes

          我有一些用AutoFixture生成的Test用戶,默認情況下,這些用戶使用GUID生成字段。 我需要刪除的用戶的“我的名字”字段是GUID或uniqueidentifier。 我就是這樣結束的。

          我能夠將您的一些答案匯總到此。

          SELECT UserId FROM [Membership].[UserInfo] Where TRY_CONVERT(uniqueidentifier, FirstName) is not null

          Don Rolling answered 2020-01-23T02:31:56Z

          0 votes

          將RLIKE用于MySQL

          SELECT 1 WHERE @StringToCompare

          RLIKE REPLACE(‘00000000-0000-0000-0000-000000000000’, ‘0’, ‘[0-9a-fA-F]’);

          ks1bbk answered 2020-01-23T02:32:16Z

          標簽:MySQL-

          網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...

          在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...

          在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...

          QQ建群為什么總是顯示失??? can 不要建立一個團體。說明建群失敗的原因是等級未達到16級或者在線時間超過1500小時。這兩種情況,都是不可能建群的。求解步驟如下:1.對于普通用戶,你可以 等級達到16級才能建群,可以充值優惠券成為svip。會員用戶可以通過上述方法或在手機客戶端中額外創建4個群。2.打開手機,點擊充值中心,選擇會員進行充值。充值成功后就可以建群了。3.打開電腦版,選擇在我的群...

          表格插入圖片不能浮于文字下方?在Excel中,您可以 不要把圖片放在文字的底部,只能用插入-背景的方法。如下所示:1.打開EXCexcel中文本標注框怎么翻轉?Excel單元格中的文字是反轉的,可以通過使用文本框,旋轉180度來實現。具體步驟如下:1.打開要操作的EXCEL表格,在插入工具欄中找到,點擊 "文本框和。2.在表格中畫一個大小合適的文本框,輸入需要反轉的文本內容,然后點擊文本框上方的綠...

          360瀏覽器如何恢復歷史記錄?360瀏覽器發歷史記錄方法萬分感謝:1、簡單的方法然后打開電腦可以找到360瀏覽器,可以打開瀏覽器后直接點擊右上角的三條杠菜單選項2、再點后在自動彈出的頁面點擊你選歷史這個選項3、之后點擊左邊的日期就也可以參與恢復記錄,那樣的話完全恢復360瀏覽器歷史記錄的問題就能解決了。360瀏覽器怎么找回歷史瀏覽記錄?簡單的方法你可以打開你的360瀏覽器,然后再可以找到上方的一個...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>