我正在爲沒有數據類型信息的表生成T-SQL SELECT語句。在這些語句中,我需要執行字符串操作操作,這些操作取決於表的列的原始值的長度。T-SQL:如何獲取字符串的確切長度?
一個實例(但不是唯一的)是插入在一個字符串在特定位置的一些文本,包括在端部以將其插入的選項:
SELECT
CASE WHEN (LEN ([t0].[Product] = 8)
THEN [t0].[Product] + 'test'
ELSE STUFF ([t0].[Product], 8, 0, 'test')
END
FROM [OrderItem] [t0]
(情況下,當+ LEN是因爲STUFF不允許我在字符串的末尾插入文本。)
問題是,LEN排除尾隨空白,這會破壞計算。 我知道我可以使用DATALENGTH,它不排除尾隨空白,但我不能將DATALENGTH返回的字節轉換爲STUFF所需的字符,因爲我不知道Product列是varchar類型還是nvarchar類型。
那麼,我怎樣才能生成一個SQL語句,它取決於字符串的確切長度,而不需要關於正在使用的字符串數據類型的預先信息?
+1適用於解決方案! – 2010-09-23 15:03:21
+1這可能是一個有用的技巧。 – 2010-09-23 15:10:10